diff --git a/.deepsource.toml b/.deepsource.toml new file mode 100644 index 000000000..a9190199f --- /dev/null +++ b/.deepsource.toml @@ -0,0 +1,10 @@ +version = 1 + +[[analyzers]] +name = "javascript" + + [analyzers.meta] + environment = [ + "nodejs", + "vitest" + ] diff --git a/.editorconfig b/.editorconfig index c1322dc7b..f93bf89da 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,4 +9,4 @@ indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = false -insert_final_newline = false \ No newline at end of file +insert_final_newline = false diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..dd03d4fc8 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +EXTERNAL_HOST= +CERTIFICATE_FILE= +PRIVATE_KEY_FILE= +PUBLIC_KEY_FILE= diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index aa5db0d61..000000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -*.d.ts -dist -out \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index ec9f7707d..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": ["eslint:recommended", "plugin:prettier/recommended"], - "env": { - "node": true, - "es2021": true - }, - "plugins": ["prettier"], - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "rules": { - "prettier/prettier": "error", - "no-undef": "error" - } -} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..79a85db5c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,14 @@ +# Don't allow people to merge changes to these generated files, because the result +# may be invalid. You need to run "rush update" again. +pnpm-lock.yaml merge=text +shrinkwrap.yaml merge=binary +npm-shrinkwrap.json merge=binary +yarn.lock merge=binary + +# Rush's JSON config files use JavaScript-style code comments. The rule below prevents pedantic +# syntax highlighters such as GitHub's from highlighting these comments as errors. Your text editor +# may also require a special configuration to allow comments in JSON. +# +# For more information, see this issue: https://github.com/microsoft/rushstack/issues/1088 +# +*.json linguist-language=JSON-with-Comments diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 8b1378917..e69de29bb 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +0,0 @@ - diff --git a/.github/codecov.yml b/.github/codecov.yml index 050bc1f04..81fea2976 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,10 +1,21 @@ codecov: require_ci_to_pass: false +ai_pr_review: + enabled: true + comment: show_carryforward_flags: true flags: + cli: + paths: + - packages/cli/** + carryforward: true + connection: + paths: + - packages/connection/** + carryforward: true database: paths: - packages/database/** @@ -13,22 +24,18 @@ flags: paths: - packages/gateway/** carryforward: true - lobby: + mcots: paths: - - packages/lobby/** + - packages/mcots/** carryforward: true - login: + nps: paths: - - packages/login/** + - packages/nps/** carryforward: true patch: paths: - packages/patch/** carryforward: true - persona: - paths: - - packages/persona/** - carryforward: true shard: paths: - packages/shard/** @@ -37,30 +44,36 @@ flags: paths: - packages/shared/** carryforward: true - transactions: - paths: - - packages/transactions/** - carryforward: true - interfaces: + shared-packets: paths: - - packages/interfaces/** - carryforward: false - core: - paths: - - packages/core/** + - packages/shared-packets/** carryforward: true component_management: individual_components: - - component_id: components_team1 - name: Team 1 + - component_id: components_nps + name: NPS + paths: + - packages/cli/** + - packages/connection/** + - packages/database/** + - packages/gateway/** + - packages/lobby/** + - packages/login/** + - packages/nps/** + - packages/patch/** + - packages/persona/** + - packages/shard/** + - packages/shared-packets/** + - component_id: components_mcots + name: MCOTS paths: - - packages/core/** + - packages/cli/** + - packages/connection/** + - packages/database/** - packages/gateway/** - - packages/shared/** + - packages/mcots/** + - packages/shared-packets/** -coverage: - status: - project: - default: - removed_code_behavior: adjust_base +ignore: + - "**/__generated__/**" diff --git a/.github/renovate.json5 b/.github/renovate.json5 new file mode 100644 index 000000000..d69c6f8f4 --- /dev/null +++ b/.github/renovate.json5 @@ -0,0 +1,17 @@ +{ + extends: ["config:best-practices", ":automergeStableNonMajor"], + packageRules: [ + { + allowedVersions: "1.9.8", + matchDatasources: ["docker"], + matchPackageNames: [ + // Prevent automatic updates from nginx:1.9.8 + // While this image can still be found on DockerHub, + // it is also archived at https://archive.org/details/nginx_1.9.8.tar + // This is required to serve as a proxy to the [SChannel](https://web.archive.org/web/20230402130420/https://learn.microsoft.com/en-us/windows/win32/com/schannel) that Windows XP uses. + // Windows XP is required support since the legacy client can not be upgraded or modified. + "nginx", + ], + }, + ], +} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index abb02b52c..8dbfe1381 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,11 +39,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -54,7 +54,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -68,4 +68,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..0d996afe4 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,32 @@ +name: Sentry Release + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + release-sentry: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + with: + fetch-depth: 0 + + - name: Install and test using npm + run: | + npm install + export DATABASE_URL=$(npx pg-test start) + npm run test --workspaces --if-present + npx pg-test stop + + - name: Create Sentry release + uses: getsentry/action-release@586b62368d564f25d694ce05fcb9cf53de65ac4f # v1 + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + # SENTRY_URL: https://sentry.io/ + with: + environment: production diff --git a/.github/workflows/node.yml b/.github/workflows/node.yml index 3659ebfb1..d5edc71e5 100644 --- a/.github/workflows/node.yml +++ b/.github/workflows/node.yml @@ -1,52 +1,58 @@ -name: Node.js CI +name: Node.js on: push: - branches: [main] pull_request: - branches: [main] env: MCO_LOG_LEVEL: warn + EXTERNAL_HOST: mcouniverse.com + PRIVATE_KEY_FILE: thebeast/data/private_key.pem # These secrets are stored in the repository and are safe to "leak" + CERTIFICATE_FILE: thebeast/data/mcouniverse.crt # These secrets are stored in the repository and are safe to "leak" + PUBLIC_KEY_FILE: thebeast/data/pub.key # These secrets are stored in the repository and are safe to "leak" jobs: - build: + build-test: runs-on: ubuntu-latest - strategy: - matrix: - node-version: [18.x, 20.x, 21.x] - steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 with: fetch-depth: 0 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + - name: Use Node.js 22.x + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 with: - node-version: ${{ matrix.node-version }} - - run: npm ci install - - name: Test - run: npm run test:only + node-version: 22.x + - name: Install and test + run: | + npm install + export DATABASE_URL=$(npx pg-test start) + npm test + npx pg-test stop + env: + CODECOV_UPLOAD_BUNDLE_TOKEN: ${{ secrets.CODECOV_UPLOAD_BUNDLE_TOKEN }} - name: Codecov - env: # Or as an environment variable + if: ${{ always() }} # using always() to always run this step because i am uploading test results and coverage in one step + env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} run: | pip install --user pytest pip install --user codecov-cli - codecovcli --verbose create-commit --fail-on-error - codecovcli --verbose create-report --fail-on-error + codecovcli --verbose create-commit --fail-on-error + codecovcli --verbose create-report --fail-on-error + codecovcli do-upload --report-type test_results --file mcos.junit.xml + codecovcli --verbose do-upload --fail-on-error --flag cli --name cli-${{ matrix.node-version }} + codecovcli --verbose do-upload --fail-on-error --flag connection --name connection-${{ matrix.node-version }} codecovcli --verbose do-upload --fail-on-error --flag database --name database-${{ matrix.node-version }} codecovcli --verbose do-upload --fail-on-error --flag gateway --name gateway-${{ matrix.node-version }} - codecovcli --verbose do-upload --fail-on-error --flag lobby --name lobby-${{ matrix.node-version }} - codecovcli --verbose do-upload --fail-on-error --flag login --name login-${{ matrix.node-version }} + codecovcli --verbose do-upload --fail-on-error --flag mcots --name mcots-${{ matrix.node-version }} + codecovcli --verbose do-upload --fail-on-error --flag nps --name nps-${{ matrix.node-version }} codecovcli --verbose do-upload --fail-on-error --flag patch --name patch-${{ matrix.node-version }} - codecovcli --verbose do-upload --fail-on-error --flag persona --name persona-${{ matrix.node-version }} codecovcli --verbose do-upload --fail-on-error --flag shard --name shard-${{ matrix.node-version }} - codecovcli --verbose do-upload --fail-on-error --flag transactions --name transactions-${{ matrix.node-version }} - codecovcli --verbose do-upload --fail-on-error --flag core --name core-${{ matrix.node-version }} + codecovcli --verbose do-upload --fail-on-error --flag shared --name shared-${{ matrix.node-version }} + codecovcli --verbose do-upload --fail-on-error --flag shared-packets --name shared-packets-${{ matrix.node-version }} - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4 with: name: coverage_${{ matrix.node-version }} path: coverage diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..0bcd183e3 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,37 @@ +name: Release +on: + workflow_dispatch: + push: + branches: + - master + +permissions: + contents: read # for checkout + +jobs: + release: + name: Release + runs-on: ubuntu-latest + permissions: + contents: write # to be able to publish a GitHub release + issues: write # to be able to comment on released issues + pull-requests: write # to be able to comment on released pull requests + id-token: write # to enable use of OIDC for npm provenance + steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + with: + fetch-depth: 0 + - name: Setup Node.js + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 + with: + node-version: 'lts/*' + - name: Install dependencies + run: npm install + - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + run: npm audit signatures + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release diff --git a/.github/workflows/semgrep.yml b/.github/workflows/semgrep.yml index 0edee6957..c519496cd 100644 --- a/.github/workflows/semgrep.yml +++ b/.github/workflows/semgrep.yml @@ -12,12 +12,12 @@ on: jobs: semgrep: name: Scan - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 env: SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} container: - image: returntocorp/semgrep + image: returntocorp/semgrep@sha256:4614ec53294cc63f086755157dfb108121c69087d15c3e8d4c7ac603fb0eaa54 if: (github.actor != 'dependabot[bot]') steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - run: semgrep ci diff --git a/.gitignore b/.gitignore index b559f032f..84d1151cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,33 @@ -*.env -*.tsbuildinfo -logs coverage -*.log -.nyc_output - -test-reports -junit -built *.sqlite -junit.xml -.dccache -*.db -node_modules/ -.DS_Store +*.log +.env dist -# Sentry Auth Token -.sentryclirc -*.map -out/* \ No newline at end of file +*junit.xml +rm.session.sql +node_modules +dist +build +*.tar +packages/**/*.js +package-lock.json + +# Sentry Config File +.env.sentry-build-plugin + +# Sentry Config File +.env.sentry-build-plugin +meta.json + + +.nx/ + +# python ignores +*.pyc +*.pyo +*.pyd +__pycache__ +.pytest_cache/ +.coverage +*.xml diff --git a/.npmrc b/.npmrc new file mode 100644 index 000000000..c2e45296a --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +node-options="--openssl-legacy-provider" +link-workspace-packages=true diff --git a/.nvmrc b/.nvmrc index 8c60e1e54..d1c5363fe 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.5.1 +22.5.0 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..baa2bec68 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +# Add files here to ignore them from prettier formatting +/dist +/coverage +/.nx/cache diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..8db60caac --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} diff --git a/.renovaterc.json b/.renovaterc.json deleted file mode 100644 index 8a90a2740..000000000 --- a/.renovaterc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["config:base"], - "statusCheckVerify": true, - "automerge": true, - "automergeType": "branch", - "rangeStrategy": "bump", - "enabledManagers": ["npm"] -} diff --git a/.sentryclirc b/.sentryclirc deleted file mode 100644 index 6ef215a37..000000000 --- a/.sentryclirc +++ /dev/null @@ -1,2 +0,0 @@ -[auth] -token=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 diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 8ba66b166..000000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "ms-azuretools.vscode-docker", - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "ms-vscode.makefile-tools", - "usernamehw.errorlens", - "ritwickdey.LiveServer" - ] -} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index e7f2ca974..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Stop Prod", - "request": "launch", - "runtimeArgs": ["run-script", "prod:stop"], - "runtimeExecutable": "npm", - "skipFiles": ["/**"], - "type": "node" - }, - - { - "name": "Start Prod", - "request": "launch", - "runtimeArgs": ["run-script", "prod"], - "runtimeExecutable": "npm", - "skipFiles": ["/**"], - "type": "node" - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json index 81682a824..48fb8d84c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,7 @@ { - "git.enableCommitSigning": true, - "typescript.tsdk": "node_modules/typescript/lib", - "js/ts.implicitProjectConfig.checkJs": true + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + }, + "python.analysis.typeCheckingMode": "basic" } diff --git a/AUTHORS b/AUTHORS index 5d04778a2..b3bcdc423 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1 @@ -Drazi Crendraven () \ No newline at end of file +Drazi Crendraven () diff --git a/Makefile b/Makefile index 582d731be..a00ecd023 100644 --- a/Makefile +++ b/Makefile @@ -1,41 +1,20 @@ -all: - @npm install +init: + pip install --user pdm + pdm install -certs: - @openssl req -x509 -extensions v3_req -config data/mcouniverse.cnf -newkey rsa:1024 -nodes -keyout ./data/private_key.pem -out ./data/mcouniverse.pem -days 365 - @openssl rsa -in ./data/private_key.pem -outform DER -pubout | xxd -ps -c 300 | tr -d '\n' > ./data/pub.key - @cp ./data/mcouniverse.pem ./data/private_key.pem ./services/sslProxy/ - @echo "certs regenerated. remember to update pub.key for all clients" +lint: + pdm run flake8 . --exit-zero -test: - @clear - @npm test - -build: - @npm run build:dev - -start: - @EXTERNAL_HOST=mcouniverse.com PRIVATE_KEY_FILE=data/private_key.pem CERTIFICATE_FILE=data/mcouniverse.crt PUBLIC_KEY_FILE=data/pub.key LOG_LEVEL=trace npm run start:dev - -prod_node: - docker-compose --file docker-compose.yml up -d --build +format: + pdm run black . -up: - docker-compose up -d --build +setcap: + @sudo setcap cap_net_bind_service=+ep $$(readlink -f $$(pdm run which python)) -down: - docker-compose down -enable-node: - @sudo setcap cap_net_bind_service=+ep $(which node) - -docker-init: - mkdir -p log/mcos - @npm run start:docker -s - - -clean: - @rm -rf node_modules - @rm -rf dist +test: + pdm run coverage run -m pytest + pdm run coverage report -m --skip-covered + pdm run coverage xml -.PHONY: all certs test build start prod_node up down enable-node docker-init clean \ No newline at end of file +.PHONY: init lint test diff --git a/README.md b/README.md index c61b83d84..6f8269693 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,13 @@ -[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://stand-with-ukraine.pp.ua) +🍉 -# mcos - -[![Node.js CI](https://github.com/drazisil/mcos/actions/workflows/node.yml/badge.svg?branch=main)](https://github.com/drazisil/mcos/actions/workflows/node.yml) [![CodeQL](https://github.com/drazisil/mcos/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/drazisil/mcos/actions/workflows/codeql-analysis.yml?branch=main) [![codecov](https://codecov.io/gh/drazisil/mcos/branch/main/graph/badge.svg)](https://codecov.io/gh/drazisil/mcos) [![DeepScan grade](https://deepscan.io/api/teams/16083/projects/20483/branches/558507/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=16083&pid=20483&bid=558507) [![DeepSource](https://deepsource.io/gh/drazisil/mcos.svg/?label=active+issues&token=7m7JTV9V4v4VZTQ-6wxr1kzg)](https://deepsource.io/gh/drazisil/mcos/?ref=repository-badge) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) - -## About +# Rusty Motors Racing Server This is a game server, being written from scratch, for a very old and long dead game. The owners of said game have shown no interest in bringing it back, but even so all names of their IP have been avoided to prevent issues. +[![Node.js CI](https://github.com/rustymotors/server/actions/workflows/node.yml/badge.svg?branch=main)](https://github.com/rustymotors/server/actions/workflows/node.yml) [![CodeQL](https://github.com/rustymotors/server/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/rustymotors/server/actions/workflows/codeql-analysis.yml?branch=main) [![codecov](https://codecov.io/gh/rustymotors/server/branch/main/graph/badge.svg)](https://codecov.io/gh/rustymotors/server) [![DeepScan grade](https://deepscan.io/api/teams/16083/projects/20483/branches/558507/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=16083&pid=20483&bid=558507) [![DeepSource](https://deepsource.io/gh/rustymotors/server.svg/?label=active+issues&token=7m7JTV9V4v4VZTQ-6wxr1kzg)](https://deepsource.io/gh/rustymotors/server/?ref=repository-badge) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) + ## Help Wanted I'm writing this from scratch. While I'm proud of what I've done, I'm hitting the point where I need help. Therefore, I'm open-sourcing this. Any assistance you can provide, either from code help, to suggestions, to even pointing out better ways to do things are greatly appreciated. -You can [contribute on GitHub](https://github.com/drazisil/mcos/contribute) - -There's a brief explanation of the thought process here [link](https://github.com/drazisil/mcos/issues/164), and the [docs directory](./docs/) also contains some notes. - -## Server Setup - -- See [server docs](./docs/server.md) - -## Client Setup - -- See [client docs](./docs/client.md) - -## Timeline - -- March 6, 2016 - Started - -- October 12, 2023 - Connected to lobby - -![img The first non-hacked image of the MCO lobby since it was shutdown](images/2012-10-12_lobby.png) - -## Current Status - -- [TODO Issues](https://github.com/drazisil/mcos/labels/todo%20%3Aspiral_notepad%3A) +Note: Were you looking for mcos? This is still it. Only under a new name. diff --git a/STARTING.md b/STARTING.md new file mode 100644 index 000000000..b524cc54d --- /dev/null +++ b/STARTING.md @@ -0,0 +1,101 @@ +# Getting started as a user + +Documention type: Tutorial + +Last updated: 40f6623947ee7a5c2ab90f9b1f64331c40180514 + +--- + +This project isn't really geared towards a player of the game, but if you want to try it out, this is how to do so: + +## Requirements + +// TODO: Link to the install docs for each item + +- Internet +- Linux +- Git +- Docker +- Docker Compose +- NodeJS (v22.x) +- NVM +- The debug copy of the game + +## Setup + +After getting the requirements above ready, perform the following steps: + +### On the computer where you are running the server + +1. Open a terminal or command prompt +2. Type `git clone https://github.com/rustymotors/server.git rusty-server` and press enter +3. Type `cd rusty-server` and press enter +4. Type `./mcos/pull_nginx_image.sh` and press enter (this step may take a while, depending on your internet speed) +5. Type `docker-compose up -d` and press enter +6. Type `nvm install && nvm use` and press enter +7. Type `npm install` and press enter +8. Type `npm run build` and press enter +9. Type `cp .env.example .env` and press enter +10. Open the `.env` file with your favorite text editing program (the simpler the better) and edit the values as follows: + a. `EXTERNAL_HOST=` - Add the hostname or ip of the computer you are running this server on. This value MUST be reachable from where you install the game. + b. `CERTIFICATE_FILE=` - The relitive path from the `rusty-server` folder to the SSL certificate. If you want to use the one I have included with the repository (highly recomended), the value will be `data/mcouniverse.crt` + c. `PRIVATE_KEY_FILE` - The path to the private key. Use `data/private_key.pem` for the working copy + d. `PUBLIC_KEY_FILE` - The path to the public key. Use `data/pub.key` for the working copy +11. Type `npm start` and press enter +12. If the last message on your screen is `Server listening at http://0.0.0.0:3000`, then the server is running! + +### On the computer where you are running the game + +1. Open a web browser +2. In the address bar, type `/cert` where \ is the value you saved in the .env file on the server. Do not include the brackets, and press enter +3. Some text should load. The first line should contain `BEGIN CERTIFICATE` +4. Click "Save" when asked if you want to open or save +5. Select the folder you want to save in (I like the Desktop), but before you press "save", make sure to edit the file name so it says `"cert.crt"`. THE QUOTES ARE IMPORTANT +6. Sorry for the caps. Click "Save" if you haven't already +7. In the folder where you saved the certificate, you should see a file named "cert" with an icon that looks like a certificate. Double-click on it. + +--- + +## 7.5. From this point on, I'm going to tell you to do a bunch of things that Windows will warn you NOT to do. This is because in order to have the game connect to our server we have to use some very old security methods that are no longer advised to be used. If you don't trust me, that's fine. But it won't work otherwise. Let's proceed. + +8. We are looking at a windows that says "The CA Root Certificate is not trusted". Press "Install Certificate" +9. Click "Next" +10. You are now on a screen that asks where you want to save this certificate. +11. Click on the "Place all certificates in the following store" and click "browse" +12. Select "Trusted Root Certification Authorities". This should be the second one down. +13. Click "Ok" +14. Click "Next" +15. Click "Finish" + 16 You now have a window warning you that you are installing a untrusted root certificate that is unknown to Windows. Click "Yes" +16. Click "ok" and then click "Ok" again. +17. Return to your web browser. +18. In the address bar, type `/key` where \ is the value you saved in the .env file on the server. Do not include the brackets, and press enter +19. A long string of letters and numbers should load. +20. Click "Save" when asked if you want to open or save +21. Select the folder you want to save in (I like the Desktop), but before you press "save", make sure to edit the file name so it says `"pub.key"`. Again, make sure to include the quotes +22. Click "Save" +23. Copy the file you just saved to your game install folder. Tell Wndows it is ok to overwrite the existing file of the same name. +24. Return to your web browser +25. In the address bar, type `/registry` where \ is the value you saved in the .env file on the server. Do not include the brackets, and press enter +26. Some text will load. The first line should contain "Windows Registry Editor" +27. Click "Save" when asked if you want to open or save +28. Select the folder you want to save in (I like the Desktop), but before you press "save", make sure to edit the file name so it says `"client.reg"`. Again, make sure to include the quotes +29. Click "Save" + +30. This next step has a slight change, depending on what version of Windows you have installed the game under + a. If you are using Windows XP (or lower), you will need to edit this file we just save. To do so, right-click on the saved file and choose "edit" + If Windows prompts you that the file is not signed, click "open". + Every line that starts `HKEY_LOCAL_MACHINE\Software\WOW6432Node\`, change to say `HKEY_LOCAL_MACHINE\Software\`. Leve the rest of the line. Save. + b. If you are using a version of Windows that is newer then Windows XP, no action is needed here +31. Double-click on the saved file. +32. f Windows prompts you that the file is not signed, click "open". +33. Windows will ask you if you are sure you want to import this registry file. Click "yes" +34. Click "Ok" + +## Running + +If you haven't followed all the steps under the Setup section, this will probably not work well + +37. Double-click the debug copy of the game +38. These are the possible pre-created logins + a. Username: "admin", Password: "admin" - No existing profile, profile design possible, but no cars to buy so you can't create diff --git a/apps/main/package.json b/apps/main/package.json new file mode 100644 index 000000000..d79f2dfd9 --- /dev/null +++ b/apps/main/package.json @@ -0,0 +1,20 @@ +{ + "name": "rusty-motors-server", + "version": "1.0.0", + "type": "module", + "scripts": { + "start": "tsx --openssl-legacy-provider --env-file=../../.env server.ts" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "@sentry/node": "^8.0.0", + "@sentry/profiling-node": "^8.0.0", + "rusty-motors-gateway": "^1.0.0", + "rusty-motors-shared": "^1.0.0", + "tsx": "^4.10.2", + "typescript": "^5.4.5" + }, + "description": "" +} diff --git a/apps/main/server.ts b/apps/main/server.ts new file mode 100755 index 000000000..6ecb6109a --- /dev/null +++ b/apps/main/server.ts @@ -0,0 +1,112 @@ +// mcos is a game server, written from scratch, for an old game +// Copyright (C) <2017> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +import * as Sentry from "@sentry/node"; +import { nodeProfilingIntegration } from "@sentry/profiling-node"; +import { getServerLogger } from "rusty-motors-shared"; +import { verifyLegacyCipherSupport } from "rusty-motors-shared"; +import { getServerConfiguration } from "rusty-motors-shared"; +import { getGatewayServer } from "rusty-motors-gateway"; + +process.on("unhandledRejection", (reason, promise) => { + console.error("Unhandled Rejection at:", promise, "reason:", reason); + Sentry.captureException(reason); +}); + + +export default async function main() { + const coreLogger = getServerLogger({ + level: "info", + }); + + try { + verifyLegacyCipherSupport(); + } catch (err) { + coreLogger.fatal(`Error in core server: ${String(err)}`); + throw err; + } + + Sentry.init({ + dsn: "https://f4c0126e2fc35876c860dd72fc056db9@o1413557.ingest.sentry.io/4506787875061760", + + // We recommend adjusting this value in production, or using tracesSampler + // for finer control + tracesSampleRate: 1.0, + profilesSampleRate: 1.0, // Profiling sample rate is relative to tracesSampleRate + integrations: [ + nodeProfilingIntegration(), + ], + _experiments: { + metricsAggregator: true, + }, + }); + + try { + if (typeof process.env["EXTERNAL_HOST"] === "undefined") { + console.error("Please set EXTERNAL_HOST"); + process.exit(1); + } + if (typeof process.env["CERTIFICATE_FILE"] === "undefined") { + console.error("Please set CERTIFICATE_FILE"); + process.exit(1); + } + if (typeof process.env["PRIVATE_KEY_FILE"] === "undefined") { + console.error("Please set PRIVATE_KEY_FILE"); + process.exit(1); + } + if (typeof process.env["PUBLIC_KEY_FILE"] === "undefined") { + console.error("Please set PUBLIC_KEY_FILE"); + process.exit(1); + } + const config = getServerConfiguration({ + host: process.env["EXTERNAL_HOST"], + certificateFile: process.env["CERTIFICATE_FILE"], + privateKeyFile: process.env["PRIVATE_KEY_FILE"], + publicKeyFile: process.env["PUBLIC_KEY_FILE"], + }); + + const appLog = getServerLogger(); + + const listeningPortList: number[] = [ + 6660, 7003, 8228, 8226, 8227, + // I don't know what part 9000 is for, but it's in the original list + // 9000, + 9001, 9002, 9003, 9004, 9005, 9006, + 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 43200, 43300, 43400, + 53303, + ]; + + const gatewayServer = getGatewayServer({ + config, + log: appLog, + listeningPortList, + }); + + await gatewayServer.start(); + } catch (err) { + Sentry.captureException(err); + coreLogger.fatal(`Error in core server: ${String(err)}`); + throw err; + } +} + +try { + await main(); +} catch (error) { + console.error("Error in main server:", error); + process.exit(1); + +} diff --git a/data/mcouniverse.cnf b/data/mcouniverse.cnf index 69f6ce70c..0eaec5d4e 100644 --- a/data/mcouniverse.cnf +++ b/data/mcouniverse.cnf @@ -18,4 +18,4 @@ extendedKeyUsage=serverAuth,clientAuth # List of all the other DNS names that the certificate should work for. # alt_names is a name of my own invention [ alt_names ] -DNS.1 = localhost \ No newline at end of file +DNS.1 = localhost diff --git a/data/pub.key b/data/pub.key index 36919d198..db112f231 100644 --- a/data/pub.key +++ b/data/pub.key @@ -1 +1 @@ -30819f300d06092a864886f70d010101050003818d0030818902818100c4dbdf5de67a06513a98cf8c2f2e8dde07abe21ceb8ed83e7796c059c48250729a037e78ad1c865865e679437a7bb215acaaad9c5e390ce672c54dab55356650c71850f6336c4b8b9363804926892a6f8e25ff926f17550b81d361ca2bce9bcc45283c780552ea56d76d385742fe9efb9d2d47bdd80f23c59d9ee4c8069bceb90203010001 \ No newline at end of file +30819f300d06092a864886f70d010101050003818d0030818902818100c4dbdf5de67a06513a98cf8c2f2e8dde07abe21ceb8ed83e7796c059c48250729a037e78ad1c865865e679437a7bb215acaaad9c5e390ce672c54dab55356650c71850f6336c4b8b9363804926892a6f8e25ff926f17550b81d361ca2bce9bcc45283c780552ea56d76d385742fe9efb9d2d47bdd80f23c59d9ee4c8069bceb90203010001 diff --git a/docker-compose.yml b/docker-compose.yml index c4004a72d..10db16be9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,62 +7,31 @@ services: ports: - "443:443" - "80:80" + restart: always extra_hosts: - "host.docker.internal:host-gateway" -# db: -# image: postgres:14.6 -# ports: -# - "5432:5432" -# # TODO: #1182 remove before prod https://github.com/drazisil/mco-server/issues/1008 -# environment: -# POSTGRES_PASSWORD: "password" -# POSTGRES_DB: "mcos" -# pgadmin: -# image: dpage/pgadmin4:6.18 -# # TODO: #1182 remove these before prod https://github.com/drazisil/mco-server/issues/1008 -# environment: -# PGADMIN_DEFAULT_EMAIL: "admin@pgadmin.com" -# PGADMIN_DEFAULT_PASSWORD: "password" -# PGADMIN_LISTEN_PORT: "80" -# POSTGRES_DB: "mcos" -# ports: -# - "15432:80" -# volumes: -# - pgadmin:/var/lib/pgadmin -# depends_on: -# - db + db: + image: postgres:16.3@sha256:0aafd2ae7e6c391f39fb6b7621632d79f54068faebc726caf469e87bd1d301c0 + restart: always + environment: + POSTGRES_DB: rm + POSTGRES_USER: user + POSTGRES_PASSWORD: password + ports: + - "5432:5432" + volumes: + - db-data:/var/lib/postgresql/data + security_opt: + - no-new-privileges:true -# node: -# image: "node:19" -# user: "node" -# working_dir: /home/node/app -# volumes: -# - ./:/home/node/app -# environment: -# - DEBUG=mcos:* -# # TODO: #1182 remove before prod https://github.com/drazisil/mco-server/issues/1008 -# - CONNECTION_URL=postgresql://postgres:password@db:5432/mcos -# - EXTERNAL_HOST=10.10.5.20 -# - PRIVATE_KEY_FILE=data/private_key.pem -# - PUBLIC_KEY_FILE=data/pub.key -# - CERTIFICATE_FILE=data/mcouniverse.crt -# - LOG_LEVEL=debug -# command: "make docker-init" -# ports: -# - "80:80" -# - "6660:6660" -# - "8228:8228" -# - "8226:8226" -# - "7003:7003" -# - "8227:8227" -# - "43200:43200" -# - "43300:43300" -# - "43400:43400" -# - "53303:53303" -# - "9000-9014:9000-9014" -# # restart: always -# depends_on: -# - db + adminer: + image: adminer:4.8.1@sha256:34d37131366c5aa84e1693dbed48593ed6f95fb450b576c1a7a59d3a9c9e8802 + restart: always + ports: + - 8080:8080 + security_opt: + - no-new-privileges:true -# volumes: -# pgadmin: +volumes: + db-data: + driver: local diff --git a/docs/technical/domains.md b/docs/technical/domains.md new file mode 100644 index 000000000..eb11e622e --- /dev/null +++ b/docs/technical/domains.md @@ -0,0 +1,121 @@ +# Domains + +- Web +- Network +- Account +- Login +- Persona +- Lobby +- Database + +## Web + +The web service is an HTTP/HTTPS server that provides the following external endpoints: + +- A binary response to the GET patch URL +- A binary response to the GET update URL +- A POST receive of a username and password using HTTPS which returns a Ticket code if valid, and an error if not +- A response to the GET shardlist URL + +### AuthLogin + +Accept a username and password via HTTPS and requestions from the Account service if the login is valid. + +Has the following service relationships: + +- Account OUTBOUND (username, password) +- Account INBOUND (isUserValid) + +### Shard + +The shard service responds to a GET call and requests a list of online lobby servers (shards) from the Lobby service. + +Has the following service relationships: + +- Lobby OUTBOUND +- Lobby INBOUND (shardList) + +## Network + +The Network service handles all inbound and outbound non-HTTP TCP traffic between the server and clients. It has the following subdomains: + +- Socket Receive +- Socket Send +- Session Control +- Interservice Transfer + +### Socket receive + +Receives inbound TCP traffic for the Login, Persona, Lobby, and Databse services. On initial connection from a client, the Socket Receive subdomain assigns the socket a socketId value, which it stores alongside the socket in an internal table. It then passes the socketId, along with the remoteAddress and localPort to the Session Control subdomain, which assigns the socketId a sessionId, and returns the pair. + +Incoming data received on the connection (dataBuffer) is then sent to the InterService Transfer subdomain, along with the sessionId, to be routed to the correct domain for processing. + +After the downstream domain finishes with the data, it returns any responses to the Socket Send subdomain via the Interservice Transfer subdomain to reverse the lookup flow and return to the client via the Socker Send subdomain. + +Has the following service relationships: + +- Session Control OUTBOUND (socketId, remoteAddress, localPort) +- Session Control INBOUND {socketId, SessionId} +- Interservice Transfer OUTBOUND (sessionId, dataBuffer) + +### Socket Send + +Has the following service relationships: + +- Interservice Transfer INBOUND (sessionId, dataBuffer) +- Session Control OUTBOUND (sessionId) +- Session Control INBOUND (sessionId, socketId) + +### Session Control + +Has the following service relationships: + +- Socket Receive INBOUND (socketId, remoteAddress, localPort) +- Socket Receive OUTBOUND (socketId, sessionId) +- Socket Send INBOUND (sessionId) +- Socket Send OUTBOUND (sessionId, socketId) + +### Interservice Transfer + +Has the following service relationships: + +- Socket Receive INBOUND (sessionId, dataBuffer) +- Socket Send OUTBOUND (sessionId, dataBuffer) +- Login OUTBOUND (sessionId, dataBuffer) +- Login INBOUND (sessionId, dataBuffer) +- Persona OUTBOUND (sessionId, dataBuffer) +- Persona INBOUND (sessionId, dataBuffer) +- Lobby OUTBOUND (sessionId, dataBuffer) +- Lobby INBOUND (sessionId, dataBuffer) +- Database OUTBOUND (sessionId, dataBuffer) +- Database INBOUND (sessionId, dataBuffer) + +## Account + +Has the following service relationships: + +-- TODO -- + +## Login + +Has the following service relationships: + +-- TODO -- + +## Persona + +Has the following service relationships: + +-- TODO -- + +## Lobby + +Has the following service relationships: + +-- TODO -- + +## Database + +Has the following service relationships: + +-- TODO -- diff --git a/docs/technical/packets.md b/docs/technical/packets.md new file mode 100644 index 000000000..423b854d7 --- /dev/null +++ b/docs/technical/packets.md @@ -0,0 +1,26 @@ +# ENBF + +``` +0501013e010100000000013e00227a7551484364613933317558363637653337343741796d78677a3851554b786541630000010043343035314535324242444642323541313836363045323746453731464538384231453138334243314144394141433244324331444436413437393135393734423533394230453139313141353033433142384337374532424643343335464137443243333843433144333238373030344241423637443735343136393036453242413439374246454631363433363833314436424134383343433343453445393432334330423437443231303433303531324144343736463435314238453046333031363238433543453534373538464136334133434345374342413842464432394238314330364346433432313835394435323238423338353841463437000432313736fea31c19 +``` + +```ebnf + ::= + ::= + + ::= "20" | "21" | "22" | "23" | "24" | "25" | "26" | "27" | "28" | "29" | "2A" | "2a" | "2B" | "2b" | "2C" | "2c" | "2D" | "2d" | "2E" | "2e" | "2F" | "2f" | "30" | "31" | "32" | "33" | "34" | "35" | "36" | "37" | "38" | "39" | "3A" | "3a" | "3B" | "3b" | "3C" | "3c" | "3D" | "3d" | "3E" | "3e" | "3F" | "3f" | "40" | "41" | "42" | "43" | "44" | "45" | "46" | "47" | "48" | "49" | "4A" | "4a" | "4B" | "4b" | "4C" | "4c" | "4D" | "4d" | "4E" | "4e" | "4F" | "4f" | "50" | "51" | "52" | "53" | "54" | "55" | "56" | "57" | "58" | "59" | "5A" | "5a" | "5B" | "5b" | "5C" | "5c" | "5D" | "5d" | "5E" | "5e" | "5F" | "5f" | "60" | "61" | "62" | "63" | "64" | "65" | "66" | "67" | "68" | "69" | "6A" | "6a" | "6B" | "6b" | "6C" | "6c" | "6D" | "6d" | "6E" | "6e" | "6F" | "6f" | "70" | "71" | "72" | "73" | "74" | "75" | "76" | "77" | "78" | "79" | "7A" | "7a" | "7B" | "7b" | "7C" | "7c" | "7D" | "7d" | "7E" | "7e" | "7F" | "7f" + ::= + ::= | + ::= + ::= + ::= + ::= "0000" + ::= + ::= "0101" + ::= "0000" + ::= + ::= + ::= + ::= + ::= + ::= [0-9] | [A-F] | [a-f] +``` diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..a64b3cafa --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,27 @@ +// @ts-check + +import eslint from "@eslint/js"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + eslint.configs.recommended, + ...tseslint.configs.strict, + { + languageOptions: { + parserOptions: { + project: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + "@typescript-eslint/no-unused-vars": "warn", + }, + }, + { + files: ["**/*.js"], + extends: [tseslint.configs.disableTypeChecked], + }, + { + ignores: ["vite.config.ts", "dist", "node_modules"], + }, +); diff --git a/migrations/0001-createAttachmentPoint.sql b/migrations/0001-createAttachmentPoint.sql new file mode 100644 index 000000000..ef813e080 --- /dev/null +++ b/migrations/0001-createAttachmentPoint.sql @@ -0,0 +1,8 @@ +CREATE TABLE + if not exists attachment_point ( + attachment_point_id INTEGER NOT NULL, + attachment_point VARCHAR(100) NOT NULL, + CONSTRAINT SYS_PK_11761 PRIMARY KEY (attachment_point_id) + ); + +CREATE UNIQUE INDEX SYS_IDX_SYS_PK_11761_11762 ON attachment_point (attachment_point_id); \ No newline at end of file diff --git a/migrations/0002-createBrand.sql b/migrations/0002-createBrand.sql new file mode 100644 index 000000000..0ccd4f8bf --- /dev/null +++ b/migrations/0002-createBrand.sql @@ -0,0 +1,10 @@ +create table + if not exists brand ( + brand_id INTEGER NOT NULL, + brand VARCHAR(100) NULL, + pic_name VARCHAR(50) NULL, + is_stock SMALLINT default 0, + CONSTRAINT SYS_PK_11763 PRIMARY KEY (brand_id) + ); + +CREATE UNIQUE INDEX SYS_IDX_SYS_PK_11795_11796 ON brand (brand_id); \ No newline at end of file diff --git a/migrations/0003-createModel.sql b/migrations/0003-createModel.sql new file mode 100644 index 000000000..ac5aa2f45 --- /dev/null +++ b/migrations/0003-createModel.sql @@ -0,0 +1,35 @@ +CREATE TABLE + if not exists model ( + model_id INTEGER NOT NULL, + brand_id INTEGER NOT NULL, + e_model VARCHAR(100), + g_model VARCHAR(100), + f_model VARCHAR(100), + s_model VARCHAR(100), + i_model VARCHAR(100), + j_model VARCHAR(100), + sw_model VARCHAR(100), + b_model VARCHAR(100), + e_extra_info VARCHAR(100), + g_extra_info VARCHAR(100), + f_extra_info VARCHAR(100), + s_extra_info VARCHAR(100), + i_extra_info VARCHAR(100), + j_extra_info VARCHAR(100), + sw_extra_info VARCHAR(100), + b_extra_info VARCHAR(100), + e_short_model VARCHAR(50), + g_short_model VARCHAR(50), + f_short_model VARCHAR(50), + s_short_model VARCHAR(50), + i_short_model VARCHAR(50), + j_short_model VARCHAR(50), + sw_short_model VARCHAR(50), + b_short_model VARCHAR(50), + debug_string VARCHAR(255), + debug_sort_string VARCHAR(50), + CONSTRAINT SYS_PK_11927 PRIMARY KEY (model_id), + CONSTRAINT MODEL_R_172 FOREIGN KEY (brand_id) REFERENCES brand (brand_id) + ); + +CREATE INDEX SYS_IDX_MODEL_R_172_12422 ON model (brand_id); \ No newline at end of file diff --git a/migrations/0004-createAbstractPartType.sql b/migrations/0004-createAbstractPartType.sql new file mode 100644 index 000000000..512fef5ac --- /dev/null +++ b/migrations/0004-createAbstractPartType.sql @@ -0,0 +1,40 @@ +CREATE TABLE + IF NOT EXISTS abstract_part_type ( + abstract_part_type_id INTEGER NOT NULL, + parent_abstract_part_type_id INTEGER, + depends_on INTEGER, + part_filename VARCHAR(20), + eapt VARCHAR(100) NOT NULL, + gapt VARCHAR(100), + faft VARCHAR(100), + saft VARCHAR(100), + iaft VARCHAR(100), + jaft VARCHAR(100), + sw_aft VARCHAR(100), + baft VARCHAR(100), + modified_rule INTEGER DEFAULT 0, + eut TEXT, + gut TEXT, + fut TEXT, + sut TEXT, + iut TEXT, + jut TEXT, + swut TEXT, + but TEXT, + part_paired INTEGER DEFAULT 0, + schematic_picname1 VARCHAR(9), + schematic_picname2 VARCHAR(9), + block_family_compatibility INTEGER DEFAULT 0, + repair_cost_modifier NUMERIC(100, 7) DEFAULT 0, + scrap_value_modifier NUMERIC(100, 7) DEFAULT 0, + garage_category INTEGER DEFAULT 0, + CONSTRAINT sys_pk_11740 PRIMARY KEY (abstract_part_type_id), + CONSTRAINT abstractparttype_r_191 FOREIGN KEY (depends_on) REFERENCES abstract_part_type (abstract_part_type_id), + CONSTRAINT abstractparttype_r2 FOREIGN KEY (parent_abstract_part_type_id) REFERENCES abstract_part_type (abstract_part_type_id) + ); + +CREATE INDEX sys_idx_abstractparttype_r_191_15170 ON abstract_part_type (depends_on); + +CREATE INDEX sys_idx_abstractparttype_r2_15181 ON abstract_part_type (parent_abstract_part_type_id); + +CREATE UNIQUE INDEX sys_idx_sys_pk_11740_11741 ON abstract_part_type (abstract_part_type_id); \ No newline at end of file diff --git a/migrations/0005-createPartGrade.sql b/migrations/0005-createPartGrade.sql new file mode 100644 index 000000000..5a097a25a --- /dev/null +++ b/migrations/0005-createPartGrade.sql @@ -0,0 +1,11 @@ +CREATE TABLE + IF NOT EXISTS part_grade ( + part_grade_id INTEGER NOT NULL, + e_text VARCHAR(50), + g_text VARCHAR(50), + f_text VARCHAR(50), + part_grade VARCHAR(50), + CONSTRAINT sys_pk_11985 PRIMARY KEY (part_grade_id) + ); + +CREATE UNIQUE INDEX sys_idx_sys_pk_11985_11986 ON part_grade (part_grade_id); \ No newline at end of file diff --git a/migrations/0006-createPartType.sql b/migrations/0006-createPartType.sql new file mode 100644 index 000000000..46918109b --- /dev/null +++ b/migrations/0006-createPartType.sql @@ -0,0 +1,17 @@ +CREATE TABLE + IF NOT EXISTS part_type ( + part_type_id INTEGER NOT NULL, + abstract_part_type_id INTEGER NOT NULL, + part_type VARCHAR(100) NOT NULL, + part_filename VARCHAR(20), + part_grade_id INTEGER, + CONSTRAINT sys_pk_11991 PRIMARY KEY (part_type_id), + CONSTRAINT parttype_abstractparttypeparttype FOREIGN KEY (abstract_part_type_id) REFERENCES abstract_part_type (abstract_part_type_id), + CONSTRAINT parttype_partgradeparttype FOREIGN KEY (part_grade_id) REFERENCES part_grade (part_grade_id) + ); + +CREATE INDEX sys_idx_parttype_abstractparttypeparttype_12453 ON part_type (abstract_part_type_id); + +CREATE INDEX sys_idx_parttype_partgradeparttype_12463 ON part_type (part_grade_id); + +CREATE UNIQUE INDEX sys_idx_sys_pk_11991_11992 ON part_type (part_type_id); \ No newline at end of file diff --git a/migrations/0007-createBrandedPart.sql b/migrations/0007-createBrandedPart.sql new file mode 100644 index 000000000..7e974a8e7 --- /dev/null +++ b/migrations/0007-createBrandedPart.sql @@ -0,0 +1,22 @@ +CREATE TABLE + IF NOT EXISTS branded_part ( + branded_part_id INTEGER NOT NULL, + part_type_id INTEGER NOT NULL, + model_id INTEGER NOT NULL, + mfg_date TIMESTAMP NOT NULL, + qty_avail INTEGER NOT NULL, + retail_price INTEGER NOT NULL, + max_item_wear SMALLINT, + engine_block_family_id INTEGER DEFAULT 0 NOT NULL, + CONSTRAINT sys_pk_11801 PRIMARY KEY (branded_part_id), + CONSTRAINT brandedpart_modelbrandedpart FOREIGN KEY (model_id) REFERENCES model (model_id), + CONSTRAINT brandedpart_parttypebrandedpart1 FOREIGN KEY (part_type_id) REFERENCES part_type (part_type_id) + ); + +CREATE INDEX brandedpart_engineblockfamilyid ON branded_part (engine_block_family_id); + +CREATE INDEX sys_idx_brandedpart_modelbrandedpart_12255 ON branded_part (model_id); + +CREATE INDEX sys_idx_brandedpart_parttypebrandedpart1_12269 ON branded_part (part_type_id); + +CREATE UNIQUE INDEX sys_idx_sys_pk_11801_11802 ON branded_part (branded_part_id); \ No newline at end of file diff --git a/migrations/0008-createPart.sql b/migrations/0008-createPart.sql new file mode 100644 index 000000000..f52820da0 --- /dev/null +++ b/migrations/0008-createPart.sql @@ -0,0 +1,25 @@ +CREATE TABLE + IF NOT EXISTS part ( + part_id INTEGER NOT NULL, + parent_part_id INTEGER, + branded_part_id INTEGER NOT NULL, + percent_damage SMALLINT NOT NULL, + item_wear INTEGER NOT NULL, + attachment_point_id INTEGER, + owner_id INTEGER, + part_name VARCHAR(100), + repair_cost INTEGER DEFAULT 0, + scrap_value INTEGER DEFAULT 0, + CONSTRAINT sys_pk_11976 PRIMARY KEY (part_id), + CONSTRAINT part_brandedpartpart FOREIGN KEY (branded_part_id) REFERENCES branded_part (branded_part_id), + CONSTRAINT part_r25 FOREIGN KEY (parent_part_id) REFERENCES part (part_id), + CONSTRAINT part_r9 FOREIGN KEY (attachment_point_id) REFERENCES attachment_point (attachment_point_id) + ); + +CREATE INDEX sys_idx_part_brandedpartpart_12431 ON part (branded_part_id); + +CREATE INDEX sys_idx_part_r25_15192 ON part (parent_part_id); + +CREATE INDEX sys_idx_part_r9_12442 ON part (attachment_point_id); + +CREATE UNIQUE INDEX sys_idx_sys_pk_11976_11977 ON part (part_id); \ No newline at end of file diff --git a/migrations/0009-createDriverClass.sql b/migrations/0009-createDriverClass.sql new file mode 100644 index 000000000..5908af5ca --- /dev/null +++ b/migrations/0009-createDriverClass.sql @@ -0,0 +1,8 @@ +CREATE TABLE + IF NOT EXISTS driver_class ( + driver_class_id SMALLINT NOT NULL, + driver_class VARCHAR(50), + CONSTRAINT sys_pk_11831 PRIMARY KEY (driver_class_id) + ); + +CREATE UNIQUE INDEX sys_idx_sys_pk_11831_11832 ON driver_class (driver_class_id); \ No newline at end of file diff --git a/migrations/0010-createPlayerType.sql b/migrations/0010-createPlayerType.sql new file mode 100644 index 000000000..2f771a906 --- /dev/null +++ b/migrations/0010-createPlayerType.sql @@ -0,0 +1,8 @@ +CREATE TABLE + IF NOT EXISTS player_type ( + player_type_id INTEGER NOT NULL, + player_type VARCHAR(100) NOT NULL, + CONSTRAINT sys_pk_12040 PRIMARY KEY (player_type_id) + ); + + CREATE UNIQUE INDEX sys_idx_sys_pk_12040_12041 ON player_type (player_type_id); \ No newline at end of file diff --git a/migrations/0011-createPlayer.sql b/migrations/0011-createPlayer.sql new file mode 100644 index 000000000..3fd44484c --- /dev/null +++ b/migrations/0011-createPlayer.sql @@ -0,0 +1,90 @@ +CREATE TABLE + IF NOT EXISTS player ( + player_id INTEGER NOT NULL, + customer_id INTEGER NOT NULL, + player_type_id INTEGER NOT NULL, + sanctioned_score INTEGER, + challenge_score INTEGER, + last_logged_in TIMESTAMP, + times_logged_in SMALLINT, + bank_balance INTEGER NOT NULL, + num_cars_owned SMALLINT NOT NULL, + is_logged_in SMALLINT, + driver_style SMALLINT NOT NULL, + lp_code INTEGER NOT NULL, + lp_text VARCHAR(9), + car_num1 VARCHAR(2) NOT NULL, + car_num2 VARCHAR(2) NOT NULL, + car_num3 VARCHAR(2) NOT NULL, + car_num4 VARCHAR(2) NOT NULL, + car_num5 VARCHAR(2) NOT NULL, + car_num6 VARCHAR(2) NOT NULL, + dl_number VARCHAR(20), + persona VARCHAR(30) NOT NULL, + "address" VARCHAR(128), + residence VARCHAR(20), + vehicle_id INTEGER, + current_race_id INTEGER, + offline_driver_skill INTEGER, + offline_grudge INTEGER, + offline_reputation INTEGER, + total_time_played INTEGER, + car_info_setting INTEGER, + stock_classic_class SMALLINT, + stock_muscle_class SMALLINT, + modified_classic_class SMALLINT, + modified_muscle_class SMALLINT, + outlaw_class SMALLINT, + drag_class SMALLINT, + challenge_rung INTEGER, + offline_ai_car_class SMALLINT DEFAULT 0, + offline_ai_skin_id INTEGER DEFAULT 0, + offline_ai_car_bpt_id INTEGER DEFAULT 0, + offline_ai_state SMALLINT DEFAULT 0, + body_type INTEGER DEFAULT 0, + skin_color INTEGER DEFAULT 0, + hair_color INTEGER DEFAULT 0, + shirt_color INTEGER DEFAULT 0, + pants_color INTEGER DEFAULT 0, + offline_driver_style INTEGER, + offline_driver_attitude INTEGER, + evaded_fuzz INTEGER DEFAULT 0, + pinks_won INTEGER DEFAULT 0, + num_unread_mail INTEGER DEFAULT 0, + total_races_run INTEGER DEFAULT 0, + total_races_won INTEGER DEFAULT 0, + total_races_completed INTEGER DEFAULT 0, + total_winnings INTEGER DEFAULT 0, + insurance_risk_points INTEGER DEFAULT 0, + insurance_rating INTEGER DEFAULT 0, + challenge_races_run INTEGER DEFAULT 0, + challenge_races_won INTEGER DEFAULT 0, + challenge_races_completed INTEGER DEFAULT 0, + cars_lost INTEGER DEFAULT 0, + cars_won INTEGER DEFAULT 0, + CONSTRAINT sys_pk_12021 PRIMARY KEY ("player_id"), + CONSTRAINT player_driverclassplayer1 FOREIGN KEY (stock_muscle_class) REFERENCES driver_class (driver_class_id), + CONSTRAINT player_driverclassplayer2 FOREIGN KEY (modified_classic_class) REFERENCES driver_class (driver_class_id), + CONSTRAINT player_driverclassplayer3 FOREIGN KEY (modified_muscle_class) REFERENCES driver_class (driver_class_id), + CONSTRAINT player_driverclassplayer4 FOREIGN KEY (outlaw_class) REFERENCES driver_class (driver_class_id), + CONSTRAINT player_driverclassplayer5 FOREIGN KEY (drag_class) REFERENCES driver_class (driver_class_id), + CONSTRAINT player_r44 FOREIGN KEY (player_type_id) REFERENCES player_type (player_type_id) + ); + +CREATE INDEX IF NOT EXISTS player_numunreadmail ON player (num_unread_mail); + +CREATE INDEX IF NOT EXISTS player_offlinechallengecarbptid ON player (offline_ai_car_bpt_id); + +CREATE INDEX IF NOT EXISTS sys_idx_player_driverclassplayer1_12502 ON player (stock_muscle_class); + +CREATE INDEX IF NOT EXISTS sys_idx_player_driverclassplayer2_12523 ON player (modified_classic_class); + +CREATE INDEX IF NOT EXISTS sys_idx_player_driverclassplayer3_12544 ON player (modified_muscle_class); + +CREATE INDEX IF NOT EXISTS sys_idx_player_driverclassplayer4_12565 ON player (outlaw_class); + +CREATE INDEX IF NOT EXISTS sys_idx_player_driverclassplayer5_12586 ON player (drag_class); + +CREATE INDEX IF NOT EXISTS sys_idx_player_r44_12607 ON player (player_type_id); + +CREATE UNIQUE INDEX IF NOT EXISTS sys_idx_sys_pk_12021_12022 ON player (player_id); \ No newline at end of file diff --git a/migrations/0012-createSkinType.sql b/migrations/0012-createSkinType.sql new file mode 100644 index 000000000..b7e90e247 --- /dev/null +++ b/migrations/0012-createSkinType.sql @@ -0,0 +1,8 @@ +CREATE TABLE + IF NOT EXISTS skin_type ( + skin_type_id INTEGER NOT NULL, + skin_type VARCHAR(100), + CONSTRAINT sys_pk_12138 PRIMARY KEY (skin_type_id) + ); + +CREATE UNIQUE INDEX sys_idx_sys_pk_12138_12139 ON skin_type (skin_type_id); \ No newline at end of file diff --git a/migrations/0013-createPtSkin.sql b/migrations/0013-createPtSkin.sql new file mode 100644 index 000000000..a697a43f5 --- /dev/null +++ b/migrations/0013-createPtSkin.sql @@ -0,0 +1,77 @@ +CREATE TABLE + IF NOT EXISTS pt_skin ( + skin_id INTEGER NOT NULL, + creator_id INTEGER, + skin_type_id INTEGER, + part_type_id INTEGER, + e_skin VARCHAR(100), + g_skin VARCHAR(20), + f_skin VARCHAR(20), + s_skin VARCHAR(20), + i_skin VARCHAR(20), + j_skin VARCHAR(20), + sw_skin VARCHAR(20), + b_skin VARCHAR(20), + price INTEGER NOT NULL, + part_filename VARCHAR(20), + h0 SMALLINT, + s0 SMALLINT, + v0 SMALLINT, + c0 SMALLINT, + x0 SMALLINT, + y0 SMALLINT, + h1 SMALLINT, + s1 SMALLINT, + v1 SMALLINT, + c1 SMALLINT, + x1 SMALLINT, + y1 SMALLINT, + h2 SMALLINT, + s2 SMALLINT, + v2 SMALLINT, + c2 SMALLINT, + x2 SMALLINT, + y2 SMALLINT, + h3 SMALLINT, + s3 SMALLINT, + v3 SMALLINT, + c3 SMALLINT, + x3 SMALLINT, + y3 SMALLINT, + h4 SMALLINT, + s4 SMALLINT, + v4 SMALLINT, + c4 SMALLINT, + x4 SMALLINT, + y4 SMALLINT, + h5 SMALLINT, + s5 SMALLINT, + v5 SMALLINT, + c5 SMALLINT, + x5 SMALLINT, + y5 SMALLINT, + h6 SMALLINT, + s6 SMALLINT, + v6 SMALLINT, + c6 SMALLINT, + x6 SMALLINT, + y6 SMALLINT, + h7 SMALLINT, + s7 SMALLINT, + v7 SMALLINT, + c7 SMALLINT, + x7 SMALLINT, + y7 SMALLINT, + default_flag INTEGER DEFAULT 0, + creator_name VARCHAR(24), + comment_text VARCHAR(128), + CONSTRAINT sys_pk_12047 PRIMARY KEY (skin_id), + CONSTRAINT pt_skin_part_type_pt_skin FOREIGN KEY (part_type_id) REFERENCES part_type (part_type_id), + CONSTRAINT pt_skin_skin_type_pt_skin FOREIGN KEY (skin_type_id) REFERENCES skin_type (skin_type_id) + ); + +CREATE INDEX sys_idx_pt_skin_part_type_pt_skin_12628 ON pt_skin (part_type_id); + +CREATE INDEX sys_idx_pt_skin_skin_type_pt_skin_12636 ON pt_skin (skin_type_id); + +CREATE UNIQUE INDEX sys_idx_sys_pk_12047_12048 ON pt_skin (skin_id); \ No newline at end of file diff --git a/migrations/0014-createVehicle.sql b/migrations/0014-createVehicle.sql new file mode 100644 index 000000000..2af4ee5e7 --- /dev/null +++ b/migrations/0014-createVehicle.sql @@ -0,0 +1,19 @@ +CREATE TABLE + IF NOT EXISTS vehicle ( + vehicle_id INTEGER NOT NULL, + skin_id INTEGER NOT NULL, + flags INTEGER NOT NULL, + class SMALLINT NOT NULL, + info_setting SMALLINT NOT NULL, + damage_info bytea, + damage_cached INTEGER DEFAULT 0, + CONSTRAINT sys_pk_12214 PRIMARY KEY (vehicle_id), + CONSTRAINT vehicle_partvehicle FOREIGN KEY (vehicle_id) REFERENCES part (part_id) ON DELETE CASCADE, + CONSTRAINT vehicle_ptskinvehicle FOREIGN KEY (skin_id) REFERENCES pt_skin (skin_id) + ); + +CREATE UNIQUE INDEX sys_idx_sys_pk_12214_12215 ON vehicle (vehicle_id); + +CREATE INDEX sys_idx_vehicle_partvehicle_12844 ON vehicle (vehicle_id); + +CREATE INDEX sys_idx_vehicle_ptskinvehicle_12856 ON vehicle (skin_id); \ No newline at end of file diff --git a/migrations/0015-seedAttachmentPoint.sql b/migrations/0015-seedAttachmentPoint.sql new file mode 100644 index 000000000..ceddc94d9 --- /dev/null +++ b/migrations/0015-seedAttachmentPoint.sql @@ -0,0 +1,19 @@ +INSERT INTO + attachment_point (attachment_point_id, attachment_point) +VALUES + (0, '(default)'), + (1, 'Left Front'), + (2, 'Right Front'), + (3, 'Left Rear'), + (4, 'Right Rear'), + (5, 'Left'), + (6, 'Right'), + (7, 'A'), + (8, 'B'), + (9, 'C'); + +INSERT INTO + attachment_point (attachment_point_id, attachment_point) +VALUES + (10, 'Front'), + (11, 'Rear'); \ No newline at end of file diff --git a/migrations/0016-seedBrand.sql b/migrations/0016-seedBrand.sql new file mode 100644 index 000000000..e3ce44d41 --- /dev/null +++ b/migrations/0016-seedBrand.sql @@ -0,0 +1,134 @@ +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (0, 'EA', 'ea', 0), + (1, 'Ford', 'ford', 9), + (2, 'Mercury', 'merc', 9), + (3, 'Chevrolet', 'chev', 9), + (4, 'Cadillac', 'cadi', 9), + (5, 'Oldsmobile', 'olds', 9), + (6, 'Buick', 'buic', 9), + (7, 'Pontiac', 'pont', 9), + (8, 'Chrysler', 'chry', 9), + (9, 'Dodge', 'dodg', 9); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (10, 'Plymouth', 'plym', 9), + (11, 'AMC', 'amer', 9), + (12, 'AMC', NULL, 9), + (13, 'Edelbrock', 'edel', 0), + (14, 'Holley', 'holl', 0), + (15, 'GM', 'gm', 9), + (16, 'Rochester', 'roch', 0), + (17, 'Borg - Warner', 'borg', 0), + (18, 'Vich', 'vich', 0), + (19, 'Tibbits', 'tibb', 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (20, 'Lindstrom', 'lind', 0), + (21, 'Crane', 'cran', 0), + (22, 'Carter', 'cart', 0), + (23, 'Carter - Rochester', NULL, 0), + (25, 'Marinn', 'mari', 0), + (26, 'Mallory', 'mall', 0), + (27, 'Accel', 'acce', 0), + (28, 'Stromberg', 'stro', 0), + (29, 'AeroFit', 'aero', 0), + (30, 'Hooker', 'hook', 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (31, 'TFSpecial', 'tfs', 0), + (32, 'Apex', 'apex', 0), + (34, 'ProTread', 'prot', 0), + (35, 'PowerGrip', 'powe', 0), + (36, 'C & A', 'ca', 0), + (37, 'Manley', 'manl', 0), + (38, 'Offenhauser', 'offe', 0), + (39, 'Signature', 'sign', 0), + (40, 'TRW', 'trw', 0), + (41, 'JE Pistons', 'jepi', 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (42, 'Mr. Gasket', 'mrg', 0), + (43, 'Pro - Formance', NULL, 0), + (44, 'Blinsky', 'blin', 0), + (45, 'SMVintage', 'sm', 0), + (46, 'Bully', 'bull', 0), + (47, 'Hays', 'hays', 0), + (48, 'Lakewood', 'lake', 0), + (49, 'Ferrari', 'ferr', 0), + (50, 'Monarch', 'good', 0), + (53, 'Emberwood', NULL, 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (54, 'Full Gee', NULL, 0), + (56, 'BlackTop', NULL, 0), + (57, 'Monroe', NULL, 0), + (58, 'Lunati', NULL, 0), + (59, 'Coatili', NULL, 0), + (60, 'Acio', NULL, 0), + (61, 'Dana', NULL, 0), + (62, 'Potter', NULL, 0), + (63, 'Autolite', NULL, 0), + (64, 'Begren', NULL, 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (65, 'Kelsey - Hayes', NULL, 0), + (67, 'Hall', NULL, 0), + (68, 'US Radiator', NULL, 0), + (69, 'Gifford', NULL, 0), + (70, 'Shade Tree', NULL, 0), + (71, 'AC Delco', NULL, 0), + (72, 'Bendix', NULL, 0), + (73, 'Ansman', NULL, 0), + (74, 'Raven', NULL, 0), + (76, 'Panteli', NULL, 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (77, 'Reed', NULL, 0), + (78, 'Shelby', ' ', 0), + (79, 'Leland', NULL, 0), + (80, 'Dunbar', NULL, 0), + (81, 'Weiand', NULL, 0), + (82, 'Quaker', NULL, 0), + (83, 'Oldfield', NULL, 0), + (84, 'Milloy', NULL, 0), + (85, 'Quik Lift', NULL, 0), + (86, 'Duro Rod', NULL, 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (87, 'Newcomb', NULL, 0), + (88, 'Hedgely', NULL, 0), + (89, 'Fyne Grind', NULL, 0), + (90, 'Electronic Arts', ' ', 0), + (91, 'Rad Rat', NULL, 0), + (92, 'C & B', NULL, 0), + (93, 'Perfect Port', NULL, 0), + (94, 'Walter', NULL, 0), + (95, 'Percy', NULL, 0), + (96, 'Street Shark', NULL, 0); + +INSERT INTO + brand (brand_id, brand, pic_name, is_stock) +VALUES + (97, 'Pirelli', NULL, 0), + (98, 'Michelin', NULL, 0), + (99, 'Firestone', NULL, 0), + (100, 'Goodyear', NULL, 0), + (101, 'Yokohama', NULL, 0); \ No newline at end of file diff --git a/migrations/0017-seedModel.sql b/migrations/0017-seedModel.sql new file mode 100644 index 000000000..8deafac20 --- /dev/null +++ b/migrations/0017-seedModel.sql @@ -0,0 +1,96122 @@ +INSERT INTO + model ( + model_id, + brand_id, + e_model, + g_model, + f_model, + s_model, + i_model, + j_model, + sw_model, + b_model, + e_extra_info, + g_extra_info, + f_extra_info, + s_extra_info, + i_extra_info, + j_extra_info, + sw_extra_info, + b_extra_info, + e_short_model, + g_short_model, + f_short_model, + s_short_model, + i_short_model, + j_short_model, + sw_short_model, + b_short_model, + debug_string, + debug_sort_string + ) +VALUES + ( + 1, + 1, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 32 V-8 Coupe', + 'Vehicle' + ), + ( + 2, + 2, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mercury 49 Coupe', + 'Vehicle' + ), + ( + 3, + 3, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 57 Bel-Air', + 'Vehicle' + ), + ( + 4, + 4, + 'Series 62', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Series 62', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac 47 Series 62', + 'Vehicle' + ), + ( + 5, + 6, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick 55 Century', + 'Vehicle' + ), + ( + 6, + 7, + 'GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 66 GTO', + 'Vehicle' + ), + ( + 7, + 1, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 40 Coupe', + 'Vehicle' + ), + ( + 8, + 3, + 'Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 57 Corvette', + 'Vehicle' + ), + ( + 9, + 4, + 'Eldorado', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Eldorado', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac 59 Eldorado', + 'Vehicle' + ), + ( + 10, + 5, + '4-4-2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-4-2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile 69 4-4-2', + 'Vehicle' + ), + ( + 12, + 7, + 'GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 69 GTO', + 'Vehicle' + ), + ( + 14, + 1, + 'Crestline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crestline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 53 Crestline', + 'Vehicle' + ), + ( + 16, + 3, + 'Nomad', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nomad', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 57 Nomad Wagon', + 'Vehicle' + ), + ( + 20, + 7, + 'Firebird T/A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 73 Firebird T/A', + 'Vehicle' + ), + ( + 21, + 1, + 'Fairlane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fairlane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 57 Fairlane 500', + 'Vehicle' + ), + ( + 25, + 1, + 'Ranchero', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ranchero', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 57 Custom Ranchero', + 'Vehicle' + ), + ( + 26, + 3, + 'Stingray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stingray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 63 Stingray', + 'Vehicle' + ), + ( + 32, + 1, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 63 Thunderbird', + 'Vehicle' + ), + ( + 33, + 3, + 'Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 67 Chevelle', + 'Vehicle' + ), + ( + 34, + 5, + '350-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile SB V8 350', + 'Engine Block' + ), + ( + 36, + 1, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 70 Mustang Boss 302', + 'Vehicle' + ), + ( + 37, + 3, + 'Camaro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Camaro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 67 Camaro', + 'Vehicle' + ), + ( + 38, + 5, + '400-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB V8 400', + 'Engine Block' + ), + ( + 40, + 1, + 'Galaxie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Galaxie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 64 Galaxie 500', + 'Vehicle' + ), + ( + 41, + 3, + 'Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 Chevelle', + 'Vehicle' + ), + ( + 42, + 5, + '455-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB V8 455', + 'Engine Block' + ), + ( + 45, + 3, + 'El Camino', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'El Camino', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 El Camino', + 'Vehicle' + ), + ( + 46, + 3, + 'Nova', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nova', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 Nova', + 'Vehicle' + ), + ( + 47, + 1, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 57 Thunderbird', + 'Vehicle' + ), + ( + 48, + 3, + 'Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 64 Impala', + 'Vehicle' + ), + ( + 49, + 3, + 'Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 58 Impala', + 'Vehicle' + ), + ( + 52, + 7, + '389-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac V8 389', + 'Engine Block' + ), + ( + 54, + 7, + '400-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac V8 400', + 'Engine Block' + ), + ( + 56, + 7, + '428-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '42', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac V8 428', + 'Engine Block' + ), + ( + 58, + 7, + '455-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac V8 455', + 'Engine Block' + ), + ( + 76, + 3, + '265-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Fire block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '265', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB V8 265', + 'Engine Block' + ), + ( + 77, + 3, + '283-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB V8 283', + 'Engine Block' + ), + ( + 78, + 3, + '302-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB V8 302', + 'Engine Block' + ), + ( + 79, + 1, + 'Flathead 221-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '24-bolt', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '221', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead 221-V8', + 'Engine Block' + ), + ( + 80, + 3, + '307-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '307', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB V8 307', + 'Engine Block' + ), + ( + 81, + 1, + '260-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '260', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 260-V8', + 'Engine Block' + ), + ( + 82, + 1, + '272-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '272', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 272-V8', + 'Engine Block' + ), + ( + 83, + 3, + '327-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB V8 327', + 'Engine Block' + ), + ( + 85, + 1, + '292-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '292', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 292-V8', + 'Engine Block' + ), + ( + 86, + 3, + '348-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '348', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W V8 348', + 'Engine Block' + ), + ( + 87, + 3, + '350-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 350-V8', + 'Engine Block' + ), + ( + 88, + 1, + '351-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland V8-351', + 'Engine Block' + ), + ( + 89, + 1, + '390-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB V8 390', + 'Engine Block' + ), + ( + 90, + 4, + '390-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB V8 390', + 'Engine Block' + ), + ( + 91, + 1, + '406-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '406', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 406-V8', + 'Engine Block' + ), + ( + 92, + 3, + '396-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '396', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB V8 396', + 'Engine Block' + ), + ( + 93, + 3, + '400-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB V8 400', + 'Engine Block' + ), + ( + 94, + 1, + '428-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '428', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 428-V8', + 'Engine Block' + ), + ( + 95, + 3, + '409-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '409', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W V8 409', + 'Engine Block' + ), + ( + 96, + 3, + '454-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '454', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB V8 454', + 'Engine Block' + ), + ( + 97, + 1, + '352-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '352', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 352-V8', + 'Engine Block' + ), + ( + 98, + 3, + '502-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '502', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB V8 502', + 'Engine Block' + ), + ( + 99, + 18, + 'Sipper', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sipper', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sipper Air Scoop 1%', + 'Air Scoop' + ), + ( + 100, + 18, + 'Slipstream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Slipstream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Slipstream Air Scoop 2%', + 'Air Scoop' + ), + ( + 101, + 18, + 'Impeller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Impeller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Impeller Air Scoop 3%', + 'Air Scoop' + ), + ( + 102, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 103, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 104, + 1, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss 302 Rod', + 'Connecting Rods' + ), + ( + 105, + 1, + 'HD Capscrew', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD Capscrew', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HD Capscrew Connecting Rod', + 'Connecting Rods' + ), + ( + 106, + 1, + 'HP 390', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP 390', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HP 390 Rod', + 'Connecting Rods' + ), + ( + 107, + 7, + 'Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air V Connecting Rod', + 'Connecting Rods' + ), + ( + 108, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Stock CI EM', + 'Exhaust Manifold' + ), + ( + 109, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 110, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 111, + 37, + '1.625" Treated Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.625 TI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.625" Single Exhaust Pipe (Treated Iron)', + 'Exhaust Pipe' + ), + ( + 112, + 37, + '1.625" Treated Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.625 TI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.625" Dual Exhaust Pipe (Treated Iron)', + 'Exhaust Pipe' + ), + ( + 113, + 37, + '1.625" Cast Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.625 CI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.625" Single Exhaust Pipe (Cast Iron)', + 'Exhaust Pipe' + ), + ( + 114, + 37, + '1.625" Cast Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.625 CI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.625" Dual Exhaust Pipe (Cast Iron)', + 'Exhaust Pipe' + ), + ( + 115, + 59, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midas Stock Muffler', + 'Muffler' + ), + ( + 116, + 59, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midas Aluminum Stock Muffler', + 'Muffler' + ), + ( + 117, + 30, + 'Dual Tail Pipe Tip 001', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Dual Tail Pipe Tip 001', + 'Tail Pipe Tip' + ), + ( + 118, + 60, + 'Dual Tail Pipe Tip 002', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Acio Dual Tail Pipe Tip 002', + 'Tail Pipe Tip' + ), + ( + 119, + 60, + 'Single Tail Pipe Tip 001', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Acio Single Tail Pipe Tip 001', + 'Tail Pipe Tip' + ), + ( + 120, + 60, + 'Single Tail Pipe Tip (Flaming)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Acio Single Tail Pipe Tip (Flaming)', + 'Tail Pipe Tip' + ), + ( + 121, + 1, + '3-Speed Auto A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3-Speed Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3-Speed Auto (2.5/1.56/1)', + 'Transmission' + ), + ( + 122, + 1, + '3-Speed Auto (2.4/1.479/1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3-Speed Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3-Speed Auto (2.4/1.479/1)', + 'Transmission' + ), + ( + 123, + 17, + '4-Speed Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Borg-Warner 4-Speed Auto (2.741/1.568/1/0.674)', + 'Transmission' + ), + ( + 124, + 1, + '3-Speed Auto B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3-Speed Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3-Speed Auto (2.52/1.52/1) A', + 'Transmission' + ), + ( + 125, + 1, + '3-Speed Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3-Speed Auto (2.482/1.482/1)', + 'Transmission' + ), + ( + 126, + 3, + '4-Speed Auto High', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Auto High', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 4-Speed Auto (3.059/1.625/1/0.696) A', + 'Transmission' + ), + ( + 127, + 3, + '4-Speed Auto Wide', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Auto Wide', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 4-Speed Automatic (2.4/1.479/1/0.723)', + 'Transmission' + ), + ( + 128, + 3, + '4-Speed Auto Close', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Auto Close', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 4-Speed Auto (2.482/1.482/1/0.75)', + 'Transmission' + ), + ( + 129, + 1, + '4-Speed Auto (2.74/1.57/1/0.67)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4-Speed Auto (2.74/1.57/1/0.67)', + 'Transmission' + ), + ( + 130, + 1, + '4-Speed Auto (3.06/1.62/1/0.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4-Speed Auto (3.06/1.62/1/0.7)', + 'Transmission' + ), + ( + 131, + 1, + '4-Speed Auto (3.97/2.55/1.55/1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4-Speed Auto (3.97/2.55/1.55/1)', + 'Transmission' + ), + ( + 132, + 46, + '5-Speed Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '5-Speed Manual Wide', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully 5-Speed Manual (2.95/1.94/1.34/1/0.63)', + 'Transmission' + ), + ( + 133, + 46, + '5-Speed Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '5-Speed Manual Close', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully 5-Speed Manual (2.75/1.94/1.34/1/0.74)', + 'Transmission' + ), + ( + 134, + 46, + '4-Speed Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully 4-Speed Manual (2.64/1.61/1.23/1)', + 'Transmission' + ), + ( + 135, + 3, + '4-Speed Manual Close', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Manual Close', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 4-Speed Manual (2.88/1.74/1.33/1)', + 'Transmission' + ), + ( + 136, + 3, + '4-Speed Manual High', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Manual High', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 4-Speed Manual (3.44/2.28/1.46/1)', + 'Transmission' + ), + ( + 137, + 3, + '4-Speed Manual Wide', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Manual Wide', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 4-Speed Manual (2.66/1.91/1.39/1)', + 'Transmission' + ), + ( + 138, + 15, + '4-Speed Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4-Speed Manual (2.22/1.64/1.28/1) (g)', + 'Transmission' + ), + ( + 139, + 15, + '4-Speed Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4-Speed Manual (2.65/1.93/1.39/1)', + 'Transmission' + ), + ( + 140, + 61, + '2.73 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2.73', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (2.73) Differential', + 'Rear End' + ), + ( + 141, + 61, + '2.93 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2.93', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (2.93) Differential', + 'Rear End' + ), + ( + 142, + 61, + '3.00 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.00', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.00) Differential', + 'Rear End' + ), + ( + 143, + 61, + '3.23 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.23', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.23) Differential', + 'Rear End' + ), + ( + 144, + 61, + '3.31 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.31) Differential', + 'Rear End' + ), + ( + 145, + 61, + '3.42 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.42', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.42) Differential', + 'Rear End' + ), + ( + 146, + 61, + '3.50 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.50', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.50) Differential', + 'Rear End' + ), + ( + 147, + 61, + '3.54 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.54', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.54) Differential', + 'Rear End' + ), + ( + 148, + 61, + '3.55 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.55) Differential', + 'Rear End' + ), + ( + 149, + 61, + '3.64 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.64', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.64) Differential', + 'Rear End' + ), + ( + 150, + 61, + '3.70 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.70', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.70) Differential', + 'Rear End' + ), + ( + 151, + 61, + '3.77 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.77', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.77) Differential', + 'Rear End' + ), + ( + 152, + 61, + '3.9 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.9', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.9) Differential', + 'Rear End' + ), + ( + 153, + 61, + '4.10 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4.10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (4.10) Differential', + 'Rear End' + ), + ( + 154, + 61, + '4.33 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4.33', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (4.33) Differential', + 'Rear End' + ), + ( + 155, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Stock Intake Manifold', + 'Intake Manifold' + ), + ( + 156, + 63, + '4V (300 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (300 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 4V (300 cfm) Carb', + 'Carburetor' + ), + ( + 157, + 63, + '6V Carburetor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '6V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 6V Carburetor', + 'Carburetor' + ), + ( + 158, + 71, + 'Stock Oil Bath', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Economy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Economy Light Duty Air Cleaner', + 'Air Cleaner' + ), + ( + 159, + 14, + 'Hi-Tek', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hi-Tek', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Hi-Tek Air Cleaner', + 'Air Cleaner' + ), + ( + 160, + 13, + 'Pro-Flo 1000', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Flo 1000', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Pro-Flo 1000 Air Cleaner', + 'Air Cleaner' + ), + ( + 161, + 20, + 'P05', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'P05', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lindstrom P05 Blower', + 'Blower' + ), + ( + 162, + 14, + 'Pro-Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Pro-Street Blower', + 'Blower' + ), + ( + 163, + 20, + 'Little Rabbit', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Little Rabbit', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lindstrom Little Rabbit NOS', + 'Nitrous Injector' + ), + ( + 164, + 20, + 'Cheetah', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cheetah', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lindstrom Cheetah NOS', + 'Nitrous Injector' + ), + ( + 165, + 3, + 'Big Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy BB Stock Lubrication System', + 'Lubrication System' + ), + ( + 166, + 1, + 'Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (9.0) Stock CH', + 'Cylinder Head' + ), + ( + 167, + 13, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Plus Chrysler SB HP Camshaft', + 'Camshaft' + ), + ( + 168, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 169, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 172, + 11, + 'AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 69 AMX', + 'Vehicle' + ), + ( + 173, + 9, + 'Charger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Charger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dodge 69 Charger', + 'Vehicle' + ), + ( + 174, + 10, + 'Rd. Runner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Road Runner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 69 Road Runner', + 'Vehicle' + ), + ( + 175, + 10, + 'Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 70 Cuda', + 'Vehicle' + ), + ( + 176, + 10, + 'Duster', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duster', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 71 Duster', + 'Vehicle' + ), + ( + 187, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock CI Connecting Rod', + 'Connecting Rods' + ), + ( + 188, + 63, + '2V (300 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2V (300 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 2V (300 cfm) Carb', + 'Carburetor' + ), + ( + 189, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 190, + 65, + 'Cast Iron Rim', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cast Iron', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Kelsey-Hayes Cast Iron Rim', + 'Wheel Rims' + ), + ( + 192, + 0, + 'Speedline Driver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speedline Driver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Speedline Driver', + 'Driver' + ), + ( + 193, + 68, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'US Radiator Stock Normal Duty Cooling System', + 'Cooling System' + ), + ( + 194, + 25, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Stock Normal Duty Electrical System', + 'Electrical System' + ), + ( + 195, + 67, + 'Fuzzy Dice', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall Fuzzy Dice Accessory', + 'Fuzzy Dice' + ), + ( + 196, + 15, + 'Rear View Mirror', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Rear View Mirror', + 'Rear View Mirror' + ), + ( + 197, + 1, + 'Rear View Mirror', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Rear View Mirror', + 'Rear View Mirror' + ), + ( + 198, + 1, + '53 C.line Fender Skirt', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 53 C.line Fender Skirt', + 'Wheels Skirts' + ), + ( + 199, + 1, + '1955 Ford Fairlane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1955 Fairlane', + 'Wheels Skirts' + ), + ( + 200, + 1, + '1956 Ford / Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1956 Thunderbird Wheel Skirts', + 'Wheels Skirts' + ), + ( + 201, + 1, + '1957 Ford / Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1957 Thunderbird Wheel Skirts', + 'Wheels Skirts' + ), + ( + 202, + 4, + 'Cadillac Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1947 Cadillac Wheel Skirts', + 'Wheels Skirts' + ), + ( + 203, + 4, + 'Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '47 Caddy Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac 1949 Wheel Skirts', + 'Wheels Skirts' + ), + ( + 204, + 4, + 'Eldorado Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Eldorado Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac 1973 Fleetwood Eldorado Wheel Skirts', + 'Wheels Skirts' + ), + ( + 205, + 3, + 'Chevy Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1953 Bel Air', + 'Wheels Skirts' + ), + ( + 206, + 3, + 'Impala Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1967 Impala Wheel Skirts', + 'Wheels Skirts' + ), + ( + 207, + 3, + 'Chevelle Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1969 Chevelle', + 'Wheels Skirts' + ), + ( + 208, + 3, + 'Monte Carlo Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1970 Monte Carlo', + 'Wheels Skirts' + ), + ( + 209, + 1, + '18 x 5.25 BP Blackwalls', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 18 x 5.25 Bias Ply Blackwalls (2ply)', + 'Tires' + ), + ( + 220, + 1, + '40 Coupe Fender Skirt', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 40 Coupe Fender Skirt', + 'Wheels Skirts' + ), + ( + 221, + 1, + '1937 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1937 Wheel Skirts', + 'Wheels Skirts' + ), + ( + 222, + 3, + 'Chevy Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wheel Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1939 Chevrolet', + 'Wheels Skirts' + ), + ( + 223, + 10, + '1941 Plymouth', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 1941 Plymouth', + 'Wheels Skirts' + ), + ( + 224, + 11, + 'Rear View Mirror', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Rear View Mirror', + 'Rear View Mirror' + ), + ( + 225, + 8, + 'Rear View Mirror', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Rear View Mirror', + 'Rear View Mirror' + ), + ( + 226, + 0, + 'Medium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'medium window tint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Medium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Medium Window Tinting', + 'Window Tinting' + ), + ( + 227, + 3, + '2-Speed Powerglide', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2-Speed Powerglide', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 2-Speed Powerglide', + 'Transmission' + ), + ( + 228, + 1, + '1927 Ford Model T Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1927 Model T Boards', + 'Running Boards' + ), + ( + 229, + 1, + '1931 Ford Model A Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1931 Model A Boards', + 'Running Boards' + ), + ( + 230, + 3, + 'Confederate Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Running Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1932 Confederate Boards', + 'Running Boards' + ), + ( + 231, + 1, + '1934 Ford Coupe Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1934 Coupe Boards', + 'Running Boards' + ), + ( + 232, + 1, + '1937 Ford Coupe Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1937 Coupe Boards', + 'Running Boards' + ), + ( + 233, + 3, + '37 Coupe Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Running Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1937 Chevy Coupe Boards', + 'Running Boards' + ), + ( + 234, + 3, + '39 Coupe Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Running Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1939 Coupe Boards', + 'Running Boards' + ), + ( + 235, + 10, + '1941 Plymouth Coupe Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 1941 Coupe Boards', + 'Running Boards' + ), + ( + 236, + 4, + 'Sedanette Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Running Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1947 Cadillac Sedanette Running Boards', + 'Running Boards' + ), + ( + 237, + 1, + '1948 Ford Woody Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1948 Woody Boards', + 'Running Boards' + ), + ( + 238, + 0, + 'Amber', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Amber', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Amber Fog Lights', + 'Amber Fog Lights' + ), + ( + 244, + 0, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'White Fog Lights', + 'White Fog Lights' + ), + ( + 246, + 2, + '49 Coupe Fender Skirt', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mercury 49 Coupe Fender Skirt', + 'Wheels Skirts' + ), + ( + 247, + 3, + '3-Speed Stnd Ratio', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3-Speed Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1957 3-Speed Standard Ratio (Saginaw)', + 'Transmission' + ), + ( + 248, + 3, + '3-Speed Close Ratio', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3-Speed Close', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 3-Speed Close Ratio (Saginaw)', + 'Transmission' + ), + ( + 249, + 3, + '3-Speed w/ Overdrive', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3-Speed OD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1957 3-Speed w/ Overdrive (Saginaw)', + 'Transmission' + ), + ( + 250, + 17, + '4-Speed Close Ratio', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Close Ratio', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Borg-Warner 1957 4-Speed Close Ratio (Toledo)', + 'Transmission' + ), + ( + 251, + 1, + '1957 Ford Thunderbird Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1957 Thunderbird Scoop', + 'Hood' + ), + ( + 252, + 3, + 'Stingray Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hood (fake)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1963 Corvette Stingray Scoop (fake)', + 'Hood' + ), + ( + 253, + 1, + '1963 Ford Thunderbird Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1963 Thunderbird Scoop', + 'Hood' + ), + ( + 254, + 7, + 'GTO Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'fake', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 1964 GTO Scoop (fake)', + 'Hood' + ), + ( + 255, + 7, + 'GTO Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 1966 GTO Scoop', + 'Hood' + ), + ( + 256, + 3, + 'SS-396 Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hood (Fake)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1967 Camaro SS-396 Scoop (fake)', + 'Hood' + ), + ( + 257, + 3, + 'SS-396 Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'fake', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1967 Chevelle SS-396 Scoop (fake)', + 'Hood' + ), + ( + 258, + 10, + '1969 Plymouth Road Runner Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Grabber scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 1969 Road Runner Scoop ("Air Grabber" scoop)', + 'Hood' + ), + ( + 259, + 7, + '1969 Pontiac Firebird Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 1969 Firebird Scoop', + 'Hood' + ), + ( + 260, + 7, + '1969 Pontiac GTO Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air III Induction system', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 1969 GTO Scoop', + 'Hood' + ), + ( + 261, + 6, + '1970 Buick Gran Sport Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'download', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick 1970 Gran Sport Scoop (download)', + 'Hood' + ), + ( + 262, + 5, + '4-4-2 W-30 Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile 1969 4-4-2 W-30 Scoop', + 'Hood' + ), + ( + 263, + 5, + '4-4-2 Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile 1969 Hurst/Olds 4-4-2 Scoop', + 'Hood' + ), + ( + 264, + 1, + '1969 Ford Torino Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1969 Torino Scoop', + 'Hood' + ), + ( + 265, + 1, + '1969 Ford Torino GT Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air Induction system', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1969 Torino GT Scoop', + 'Hood' + ), + ( + 266, + 3, + 'Nova SS-396 Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hood (Fake)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1970 Nova SS-396 Scoop (fake)', + 'Hood' + ), + ( + 267, + 10, + '1970 Plymouth ''Cuda Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shaker hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 1970 ''Cuda Scoop ("Shaker" hood)', + 'Hood' + ), + ( + 268, + 10, + '1970 Plymouth ''Cuda Hemi Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shaker hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 1970 ''Cuda Hemi Scoop ("Shaker" hood)', + 'Hood' + ), + ( + 269, + 9, + '1970 Dodge Challenger R/T Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dodge 1970 Challenger R/T Scoop', + 'Hood' + ), + ( + 270, + 7, + '1973 Pontiac Trans-Am Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 1973 Trans-Am Scoop', + 'Hood' + ), + ( + 271, + 7, + 'Firebird Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'twin scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 1973 Firebird Scoop (twin scoop)', + 'Hood' + ), + ( + 272, + 1, + '1940 Ford Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'A Ford Spotlight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1940 Spot Light', + 'Spot Light' + ), + ( + 273, + 4, + 'Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1947 Cadillac Spot Light', + 'Spot Light' + ), + ( + 274, + 6, + '1955 Buick Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'This is a spot light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick 1955 Spot Light', + 'Spot Light' + ), + ( + 275, + 3, + 'Bel-Air Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1957 Bel-Air Spot Light', + 'Spot Light' + ), + ( + 276, + 3, + 'Wagon Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1957 Wagon Spot Light', + 'Spot Light' + ), + ( + 407, + 47, + 'Wheelie Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fits all cars', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hays Wheelie Bar Attachment', + 'Wheelie Bar' + ), + ( + 408, + 3, + 'Impala Sport Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hood (fake)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1958 Impala Sport Scoop (fake)', + 'Hood' + ), + ( + 409, + 14, + 'Street PowerCharger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street PowerCharger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Street PowerCharger Blower', + 'Blower' + ), + ( + 410, + 1, + 'Boss Ignition', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Boss XHD Electronic Ignition', + 'Electrical System' + ), + ( + 411, + 26, + 'Economy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Economy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mallory Economy Light Duty Electrical System', + 'Electrical System' + ), + ( + 412, + 11, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Group 19 HD Electrical System', + 'Electrical System' + ), + ( + 413, + 68, + 'Economy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Economy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'US Radiator Light Duty Cooling System', + 'Cooling System' + ), + ( + 414, + 68, + 'Cool-Flo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cool-Flo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'US Radiator Cool-Flo Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 415, + 68, + 'Maxi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Maxi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'US Radiator Maxi Extra Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 416, + 1, + 'Big Block Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss XHD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Boss XHD Cooling System', + 'Cooling System' + ), + ( + 417, + 7, + 'Stock CI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock CI Connecting Rod', + 'Connecting Rods' + ), + ( + 418, + 14, + '4150 4V (780 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4150 4V (780 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4150 4V (780 cfm)', + 'Carburetor' + ), + ( + 420, + 3, + 'Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Cast Iron Single Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 421, + 11, + 'AMC V8 290 Alum. Indy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'light weight aluminum block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 290 Indy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC V8 290 Aluminum Indy', + 'Engine Block' + ), + ( + 422, + 3, + 'Muncie Early (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Early Wide-Ratio (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Muncie Early Wide-Ratio (Manual) (1963-1965)', + 'Transmission' + ), + ( + 423, + 3, + 'Muncie (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Close-Ratio (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Muncie Close-Ratio (Manual) (1966-1974)', + 'Transmission' + ), + ( + 424, + 15, + 'Muncie Wide-Ratio M20', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'M20', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Muncie M20 Wide-Ratio Manual (2.52/1.88/1.46/1)', + 'Transmission' + ), + ( + 425, + 3, + 'Corvette 4-Speed Automatic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-Speed Automatic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1997 Corvette 4-Speed Automatic Transmission', + 'Transmission' + ), + ( + 426, + 0, + 'Speedliner 5-Speed Automatic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'EA Speedliner 5-Speed Automatic Transmission (Modified Diablo Manual)', + 'Transmission' + ), + ( + 427, + 3, + 'Powerglide Automatic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Powerglide Automatic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Powerglide (1963-73) Automatic(Heavy) (Aluminum, Two-speed)', + 'Transmission' + ), + ( + 428, + 3, + 'Turbo Hydra-Matic 350', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Turbo Hydra-Matic 350 (Automatic) (Equipped with 1969-1984 GM Cars)', + 'Transmission' + ), + ( + 429, + 17, + 'T-10X Comp. (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-10X', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Borg-Warner T-10X Special Competition (Manual)', + 'Transmission' + ), + ( + 430, + 17, + 'T-10W Spec. (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-10W', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Borg-Warner T-10W Special Wide-Ratio (Manual)', + 'Transmission' + ), + ( + 431, + 17, + 'T-10Y (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-10Y', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Borg-Warner T-10Y Second Design, Extra Low-Ratio (Manual)', + 'Transmission' + ), + ( + 432, + 1, + 'T+C Overdrive (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford T+C Top Loader Overdrive (Manual) (1977-78)', + 'Transmission' + ), + ( + 433, + 1, + 'T+C Overdrive2 (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford T+C Top Loader Overdrive2 (Manual) (1979-86)', + 'Transmission' + ), + ( + 434, + 16, + '2GV 2V (200 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2GV 2V (200 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester 2GV 2V (200 cfm) Carb', + 'Carburetor' + ), + ( + 435, + 1, + '4-speed All-Synchro (Manual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-speed All-Synchro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4-speed All-Synchro (Manual)', + 'Transmission' + ), + ( + 436, + 3, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB HP Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 437, + 3, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Z11 HP Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 438, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 440, + 61, + '3.10 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.10) Differential', + 'Rear End' + ), + ( + 441, + 15, + '3.40 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.40', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM (3.40) Differential', + 'Rear End' + ), + ( + 442, + 1, + '460-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '460', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 460-V8', + 'Engine Block' + ), + ( + 443, + 1, + '40 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'good, solid, durable Ford bumpers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '40 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 40 Ford Bumpers', + 'Bumpers' + ), + ( + 444, + 3, + '427-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mark IV Big Block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB V8 427', + 'Engine Block' + ), + ( + 445, + 15, + 'Dual Resonator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dual Resonator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Dual Resonator Muffler', + 'Muffler' + ), + ( + 446, + 9, + '1969 Dodge Charger RT Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dodge 1969 Charger RT Tip', + 'Tail Pipe Tip' + ), + ( + 447, + 5, + 'Trumpet Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile 1969 4-4-2 Trumpet Tip', + 'Tail Pipe Tip' + ), + ( + 448, + 1, + '1970 Ford Mustang Oval Trumpet Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 1970 Mustang Oval Trumpet Tip', + 'Tail Pipe Tip' + ), + ( + 449, + 10, + '1970 Plymouth ''Cuda Chrome Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 1970 ''Cuda Chrome Tip', + 'Tail Pipe Tip' + ), + ( + 450, + 7, + 'Firebird Chrome Extension', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 1973 Firebird Chrome Extension', + 'Tail Pipe Tip' + ), + ( + 451, + 15, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Z11 Lubrication System', + 'Lubrication System' + ), + ( + 452, + 28, + '97 2V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '97 2V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stromberg 97 2V Carburetor', + 'Carburetor' + ), + ( + 453, + 27, + 'Billetproof Breakerless', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billetproof', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Accel Billetproof HD Breakerless', + 'Electrical System' + ), + ( + 454, + 27, + 'Blueprint Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Blueprint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Accel Blueprint HD Electronic', + 'Electrical System' + ), + ( + 455, + 14, + '2300 2V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2300 2V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 2300 2V Carburetor', + 'Carburetor' + ), + ( + 456, + 45, + 'Aluminum Alloy Rim', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Alloy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SMVintage Aluminum Alloy Rim', + 'Wheel Rims' + ), + ( + 457, + 45, + 'Magnesium Rim', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Magnesium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SMVintage Magnesium Rim', + 'Wheel Rims' + ), + ( + 458, + 16, + '4G 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4G 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester 4G 4V (600 cfm) Carb', + 'Carburetor' + ), + ( + 459, + 16, + 'Monojet 2V (350 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monojet 2V (350 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Monojet 2V (350 cfm) Carb', + 'Carburetor' + ), + ( + 460, + 14, + 'PowerCharger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerCharger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley PowerCharger (20%) Blower', + 'Blower' + ), + ( + 461, + 13, + 'RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock RPM Muffler', + 'Muffler' + ), + ( + 462, + 13, + 'Victor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Victor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Victor Muffler', + 'Muffler' + ), + ( + 463, + 13, + '304', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '304', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock 304 Muffler', + 'Muffler' + ), + ( + 464, + 30, + 'Maximum Flow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Maximum Flow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Maximum Flow', + 'Muffler' + ), + ( + 465, + 30, + 'Super Competition', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Competition', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Super Competition', + 'Muffler' + ), + ( + 466, + 30, + 'Elite Glasspack', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Elite Glasspack', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Elite Glasspack', + 'Muffler' + ), + ( + 467, + 1, + 'Big Block Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Boss XHD Lubrication System', + 'Lubrication System' + ), + ( + 468, + 46, + 'XHD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully XHD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully XHD Lubrication System', + 'Lubrication System' + ), + ( + 469, + 1, + 'Cobra', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cobra', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cobra Lubrication System', + 'Lubrication System' + ), + ( + 470, + 25, + 'Marinn Large Bore Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Large Bore Tip', + 'Tail Pipe Tip' + ), + ( + 471, + 25, + 'Marinn Large Bore (Dual) Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Large Bore (Dual) Tip', + 'Tail Pipe Tip' + ), + ( + 472, + 25, + 'Large Bore Tip w/resonator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Large Bore Tip w/resonator', + 'Tail Pipe Tip' + ), + ( + 473, + 25, + 'Large Bore Tip w/resonator (Dual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Large Bore Tip w/resonator (Dual)', + 'Tail Pipe Tip' + ), + ( + 474, + 25, + 'MegaCone Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn MegaCone Tip', + 'Tail Pipe Tip' + ), + ( + 475, + 25, + 'MegaCone (Dual) Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn MegaCone (Dual) Tip', + 'Tail Pipe Tip' + ), + ( + 476, + 25, + 'Slanted Cut Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Slanted Cut Tip', + 'Tail Pipe Tip' + ), + ( + 477, + 25, + 'Slanted Cut (Dual) Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Slanted Cut (Dual) Tip', + 'Tail Pipe Tip' + ), + ( + 478, + 25, + 'Slanted Cut Tip w/resonator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Slanted Cut Tip w/resonator', + 'Tail Pipe Tip' + ), + ( + 479, + 25, + 'Slanted Cut Tip w/resonator (Dual)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marinn Slanted Cut Tip w/resonator (Dual)', + 'Tail Pipe Tip' + ), + ( + 480, + 13, + 'Angle Cut Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Angle Cut Tip', + 'Tail Pipe Tip' + ), + ( + 481, + 13, + 'Angle Cut (Dual) Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Angle Cut (Dual) Tip', + 'Tail Pipe Tip' + ), + ( + 482, + 13, + 'Flat Oval Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Flat Oval Tip', + 'Tail Pipe Tip' + ), + ( + 483, + 13, + 'Flat Oval (Dual) Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Flat Oval (Dual) Tip', + 'Tail Pipe Tip' + ), + ( + 484, + 13, + 'Round Double Wall Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Round Double Wall Tip', + 'Tail Pipe Tip' + ), + ( + 485, + 13, + 'Edelbrock Round Double Wall (Dual) Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Round Double Wall (Dual) Tip', + 'Tail Pipe Tip' + ), + ( + 486, + 13, + 'Edelbrock Round Turn-Down Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Round Turn-Down Tip', + 'Tail Pipe Tip' + ), + ( + 487, + 13, + 'Edelbrock Round Turn-Down (Dual) Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Round Turn-Down (Dual) Tip', + 'Tail Pipe Tip' + ), + ( + 488, + 30, + 'Str. Rodder Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Rodder', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Rodder Chevrolet SB Headers', + 'Exhaust Manifold' + ), + ( + 489, + 30, + 'Max Perf. Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Maximum Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Maximum Performance (Dual) Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 490, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Flat Top Cast Aluminum Piston', + 'Pistons' + ), + ( + 491, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Flat Top Cast Aluminum Piston', + 'Pistons' + ), + ( + 492, + 14, + 'Dominator 2300 2V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 2300 2V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 2300 2V Carb', + 'Carburetor' + ), + ( + 493, + 14, + '4150 4V (650 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4150 4V (650 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4150 4V (650 cfm) Carb', + 'Carburetor' + ), + ( + 494, + 13, + 'Performer 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer 4V (600 cfm) Carb', + 'Carburetor' + ), + ( + 495, + 44, + 'Hi-Pro V8 5.0L', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'experimental aluminum engine block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '5.0L', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Blinsky Hi-Pro V8 5.0L', + 'Engine Block' + ), + ( + 497, + 14, + 'MegaBlower', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'MegaBlower', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley MegaBlower (25%)', + 'Blower' + ), + ( + 498, + 2, + 'Flathead 255', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '255', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mercury Flathead 255', + 'Engine Block' + ), + ( + 499, + 46, + '727 Torqueflite', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '727 Torqueflite', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully 727 Torqueflite (Chrysler 383, 440)', + 'Transmission' + ), + ( + 500, + 46, + 'Turbo-Hydro 400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Hydro 400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully Turbo-Hydro 400 Automatic (2.48/1.48/1)', + 'Transmission' + ), + ( + 501, + 46, + 'Torqueflite HD Cooler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torqueflite HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully Torqueflite HD Transmission Cooler', + 'Transmission Cooler' + ), + ( + 502, + 46, + 'Turbo ND Cooler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo ND', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully Turbo ND Transmission Cooler', + 'Transmission Cooler' + ), + ( + 503, + 46, + 'Powerglide LD Cooler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Powerglide LD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully Powerglide LD Transmission Cooler', + 'Transmission Cooler' + ), + ( + 504, + 46, + 'C-6 XHD Cooler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C-6 XHD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully C-6 XHD Transmission Cooler', + 'Transmission Cooler' + ), + ( + 505, + 14, + 'Powershot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Powershot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley NOS Powershot', + 'Nitrous Injector' + ), + ( + 506, + 14, + 'Super Powershot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Powershot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Super Powershot', + 'Nitrous Injector' + ), + ( + 507, + 14, + 'Cheater', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cheater', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Cheater', + 'Nitrous Injector' + ), + ( + 508, + 14, + 'Sneeky Pete', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sneeky Pete', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Sneeky Pete NOS', + 'Nitrous Injector' + ), + ( + 509, + 1, + 'Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 65 Mustang', + 'Vehicle' + ), + ( + 513, + 1, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 32 V-8 Coupe - Modified', + 'Vehicle' + ), + ( + 517, + 16, + 'Ramjet Fuel Injector', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ramjet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Ramjet Fuel Injector', + 'Carburetor' + ), + ( + 518, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Flat Top Cast Aluminum Piston', + 'Pistons' + ), + ( + 525, + 20, + 'Cop Lights', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'the familiar blue and red flashing lights', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cop Lights', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lindstrom Cop Lights', + 'Cop Lights' + ), + ( + 526, + 0, + 'Traffic 2 door', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TRAFFIC', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic 2 door', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Traffic 2 door', + 'Vehicle' + ), + ( + 527, + 0, + 'Vanilla Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Vanilla Hood', + 'Hood' + ), + ( + 536, + 4, + 'Cadillac Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '47 Caddy Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac 47 Hood', + 'Hood' + ), + ( + 537, + 6, + '55 Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick 55 Century Hood', + 'Hood' + ), + ( + 538, + 3, + '57 Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 57 Bel-Air Hood w/ Scoop', + 'Hood' + ), + ( + 539, + 3, + '57 Nomad', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 57 Nomad Hood', + 'Hood' + ), + ( + 540, + 3, + '57 Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 57 Corvette Hood', + 'Hood' + ), + ( + 541, + 3, + '58 Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 58 Impala Hood', + 'Hood' + ), + ( + 542, + 4, + 'Eldorado Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Eldorado Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac 59 Eldorado Hood', + 'Hood' + ), + ( + 543, + 3, + '63 Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 63 Corvette Hood', + 'Hood' + ), + ( + 544, + 3, + '64 Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 64 Impala Hood', + 'Hood' + ), + ( + 545, + 7, + '66 GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 66 GTO Hood', + 'Hood' + ), + ( + 546, + 3, + '67 Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 67 Chevelle Hood', + 'Hood' + ), + ( + 547, + 3, + '67 Camaro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 67 Camaro Hood', + 'Hood' + ), + ( + 548, + 5, + '69 Oldsmobile 442', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile 69 442 Hood', + 'Hood' + ), + ( + 549, + 7, + '69 GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 69 GTO Hood', + 'Hood' + ), + ( + 550, + 3, + '70 El Camino', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 El Camino Hood', + 'Hood' + ), + ( + 551, + 3, + '70 Nova', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 Nova Hood', + 'Hood' + ), + ( + 552, + 3, + '70 Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 Chevelle Hood', + 'Hood' + ), + ( + 553, + 7, + '73 Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 73 Firebird Hood', + 'Hood' + ), + ( + 554, + 9, + '69 Charger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dodge 69 Charger Hood', + 'Hood' + ), + ( + 555, + 10, + '69 Road Runner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 69 Road Runner Hood', + 'Hood' + ), + ( + 556, + 11, + '69 AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 69 AMX Hood', + 'Hood' + ), + ( + 557, + 10, + '70 Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 70 Cuda Hood', + 'Hood' + ), + ( + 558, + 10, + '71 Duster', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 71 Duster Hood', + 'Hood' + ), + ( + 559, + 69, + '70 lb/in traverse', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 70 lb/in traverse spring', + 'Springs' + ), + ( + 560, + 69, + '80 lb/in traverse', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 80 lb/in traverse spring', + 'Springs' + ), + ( + 561, + 69, + '90 lb/in traverse', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 90 lb/in traverse spring', + 'Springs' + ), + ( + 562, + 69, + '100 lb/in Traverse', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 100 lb/in Traverse Springs', + 'Springs' + ), + ( + 563, + 69, + '110 lb/in traverse', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 110 lb/in traverse spring', + 'Springs' + ), + ( + 564, + 69, + '120 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 120 lb/in Coil Springs', + 'Springs' + ), + ( + 565, + 69, + '130 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 130 lb/in coil spring', + 'Springs' + ), + ( + 566, + 69, + '140 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 140 lb/in coil spring', + 'Springs' + ), + ( + 567, + 69, + '150 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 150 lb/in Coil Springs', + 'Springs' + ), + ( + 568, + 69, + '160 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 160 lb/in coil spring', + 'Springs' + ), + ( + 569, + 69, + '170 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 170 lb/in coil spring', + 'Springs' + ), + ( + 570, + 69, + '180 lb/in Leaf', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 180 lb/in leaf spring', + 'Springs' + ), + ( + 571, + 69, + '190 lb/in Leaf', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 190 lb/in leaf spring', + 'Springs' + ), + ( + 572, + 69, + '200 lb/in Leaf', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 200 lb/in leaf spring', + 'Springs' + ), + ( + 573, + 69, + '210 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 210 lb/in coil-over spring', + 'Springs' + ), + ( + 574, + 69, + '220 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 220 lb/in coil-over spring', + 'Springs' + ), + ( + 575, + 69, + '230 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 230 lb/in coil-over spring', + 'Springs' + ), + ( + 576, + 69, + '240 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 240 lb/in coil-over spring', + 'Springs' + ), + ( + 577, + 69, + '250 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 250 lb/in coil-over spring', + 'Springs' + ), + ( + 578, + 62, + '50 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '50 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 50 Nm Sway Bar', + 'Sway Bar' + ), + ( + 579, + 62, + '60 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '60 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 60 Nm Sway Bar', + 'Sway Bar' + ), + ( + 580, + 62, + '70 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '70 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 70 Nm Sway Bar', + 'Sway Bar' + ), + ( + 581, + 62, + '80 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '80 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 80 Nm Sway Bar', + 'Sway Bar' + ), + ( + 582, + 62, + '90 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '90 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 90 Nm Sway Bar', + 'Sway Bar' + ), + ( + 583, + 62, + '100 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '100 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 100 Nm Sway Bar', + 'Sway Bar' + ), + ( + 584, + 62, + '110 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '110 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 110 Nm Sway Bar', + 'Sway Bar' + ), + ( + 585, + 62, + '120 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '120 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 120 Nm Sway Bar', + 'Sway Bar' + ), + ( + 586, + 62, + '130 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '130 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 130 Nm Sway Bar', + 'Sway Bar' + ), + ( + 587, + 62, + '140 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '140 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 140 Nm Sway Bar', + 'Sway Bar' + ), + ( + 588, + 62, + '150 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '150 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 150 Nm Sway Bar', + 'Sway Bar' + ), + ( + 589, + 62, + '160 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '160 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 160 Nm Sway Bar', + 'Sway Bar' + ), + ( + 590, + 62, + '170 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '170 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 170 Nm Sway Bar', + 'Sway Bar' + ), + ( + 591, + 62, + '180 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '180 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 180 Nm Sway Bar', + 'Sway Bar' + ), + ( + 592, + 62, + '190 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '190 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 190 Nm Sway Bar', + 'Sway Bar' + ), + ( + 593, + 62, + '200 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '200 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 200 Nm Sway Bar', + 'Sway Bar' + ), + ( + 594, + 62, + '210 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '210 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 210 Nm Sway Bar', + 'Sway Bar' + ), + ( + 595, + 62, + '220 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '220 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 220 Nm Sway Bar', + 'Sway Bar' + ), + ( + 596, + 62, + '230 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '230 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 230 Nm Sway Bar', + 'Sway Bar' + ), + ( + 597, + 62, + '240 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '240 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 240 Nm Sway Bar', + 'Sway Bar' + ), + ( + 598, + 62, + '250 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '250 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 250 Nm Sway Bar', + 'Sway Bar' + ), + ( + 599, + 62, + '260 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '260 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 260 Nm Sway Bar', + 'Sway Bar' + ), + ( + 600, + 62, + '270 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '270 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 270 Nm Sway Bar', + 'Sway Bar' + ), + ( + 601, + 62, + '280 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '280 Nm', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Potter 280 Nm Sway Bar', + 'Sway Bar' + ), + ( + 602, + 69, + 'LD Traction Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford LD Traction Bar', + 'Traction Bar' + ), + ( + 603, + 69, + 'ND Traction Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'ND', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford ND Traction Bar', + 'Traction Bar' + ), + ( + 604, + 69, + 'HD Traction Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford HD Traction Bar', + 'Traction Bar' + ), + ( + 605, + 69, + 'XHD Traction Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'XHD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford XHD Traction Bar', + 'Traction Bar' + ), + ( + 606, + 43, + 'LD (0.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LD (0.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance LD (0.2) Shock', + 'Shocks' + ), + ( + 607, + 43, + 'LD (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LD (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance LD (0.3) Shock', + 'Shocks' + ), + ( + 608, + 43, + 'ND (0.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'ND (0.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance ND (0.2) Shock', + 'Shocks' + ), + ( + 609, + 43, + 'ND (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'ND (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance ND (0.3) Shock', + 'Shocks' + ), + ( + 610, + 43, + 'HD (0.24)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD (0.24)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance HD (0.24) Shock', + 'Shocks' + ), + ( + 611, + 43, + 'HD (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance HD (0.3) Shock', + 'Shocks' + ), + ( + 612, + 43, + 'XHD (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'XHD (0.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance XHD (0.3) Shock', + 'Shocks' + ), + ( + 613, + 43, + 'XHD (0.36)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'XHD (0.36)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance XHD (0.36) Shock', + 'Shocks' + ), + ( + 614, + 43, + 'XHD (0.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'XHD (0.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance XHD (0.4) Shock', + 'Shocks' + ), + ( + 615, + 71, + '10 x 2 Organic Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 10 x 2 Organic Drum Brakes', + 'Brakes' + ), + ( + 616, + 71, + '11 x 2 Organic Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 11 x 2 Organic Drum Brake', + 'Brakes' + ), + ( + 617, + 72, + '12 x 2 Organic Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 12 x 2 Organic Drum Brake', + 'Brakes' + ), + ( + 618, + 71, + '10 x 2 Org HT Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 10 x 2 Organic HT Drum Brakes', + 'Brakes' + ), + ( + 619, + 71, + '11 x 2 Org HT Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 11 x 2 Organic HT Drum Brake', + 'Brakes' + ), + ( + 620, + 71, + '10 x 2 SM Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 10 x 2 Semi-Metallic Drum Brakes', + 'Brakes' + ), + ( + 621, + 71, + '11 x 2 SM Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 11 x 2 Semi-Metallic Drum Brake', + 'Brakes' + ), + ( + 622, + 71, + '10 x 2 Org Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 10 x 2 Organic Disk Brakes', + 'Brakes' + ), + ( + 623, + 71, + '11 x 2 Org Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 11 x 2 Organic Disk Brake', + 'Brakes' + ), + ( + 624, + 72, + '12 x 2 Organic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 Organic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 12 x 2 Organic Disk Brake', + 'Brakes' + ), + ( + 625, + 71, + '10 x 2 Org HT Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 10 x 2 Organic HT Disk Brakes', + 'Brakes' + ), + ( + 626, + 71, + '11 x 2 Org HT Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 11 x 2 Organic HT Disk Brake', + 'Brakes' + ), + ( + 627, + 72, + '12 x 2 Org HT Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 12 x 2 Organic HT Disk Brake', + 'Brakes' + ), + ( + 628, + 71, + '10 x 2 SM Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 10 x 2 Semi-Metallic Disk Brakes', + 'Brakes' + ), + ( + 629, + 71, + '11 x 2 SM Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 11 x 2 Semi-Metallic Disk Brake', + 'Brakes' + ), + ( + 630, + 72, + '12 x 2 SM Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 12 x 2 Semi-Metallic Disk Brake', + 'Brakes' + ), + ( + 631, + 71, + '9 x 2 Metallic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 9 x 2 Metallic Disk Brakes', + 'Brakes' + ), + ( + 632, + 71, + '10 x 2 Metallic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 10 x 2 Metallic Disk Brakes', + 'Brakes' + ), + ( + 633, + 71, + '11 x 2 Metallic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 11 x 2 Metallic Disk Brake', + 'Brakes' + ), + ( + 634, + 72, + '12 x 2 Metallic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 12 x 2 Metallic Disk Brake', + 'Brakes' + ), + ( + 635, + 73, + '14 x 2 Metallic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 14 x 2 Metallic Disk Brake', + 'Brakes' + ), + ( + 636, + 73, + '16 x 2 Metallic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '16 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 16 x 2 Metallic Disk Brake', + 'Brakes' + ), + ( + 637, + 18, + 'Aera 25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Aera 25 kg Spoiler', + 'Chin Spoiler' + ), + ( + 638, + 18, + 'Aera 50', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 50', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Aera 50 kg Spoiler', + 'Chin Spoiler' + ), + ( + 639, + 18, + 'Aera 75', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 75', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Aera 75 kg Spoiler', + 'Chin Spoiler' + ), + ( + 640, + 18, + 'Aera 100', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 100', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Aera 100 kg Spoiler', + 'Chin Spoiler' + ), + ( + 641, + 18, + 'Boundary 125', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 125', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Boundary 125 kg Spoiler', + 'Chin Spoiler' + ), + ( + 642, + 18, + 'Boundary 150', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 150', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Boundary 150 kg Spoiler', + 'Chin Spoiler' + ), + ( + 643, + 18, + 'Boundary 175', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 175', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Boundary 175 kg Spoiler', + 'Chin Spoiler' + ), + ( + 644, + 18, + 'Boundary 200', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 200', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Boundary 200 kg Spoiler', + 'Chin Spoiler' + ), + ( + 645, + 18, + 'Boundary 225', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 225', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Boundary 225 kg Spoiler', + 'Chin Spoiler' + ), + ( + 646, + 18, + 'Boundary 250', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 250', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich Boundary 250 kg Spoiler', + 'Chin Spoiler' + ), + ( + 647, + 18, + 'Aera 25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 25 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 648, + 18, + 'Aera 50', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 50', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 50 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 649, + 18, + 'Aera 75', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 75', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 75 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 650, + 18, + 'Aera 100', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aera 100', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 100 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 651, + 18, + 'Boundary 125', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'provides significant aerodynamic downforce for improved high-speed traction and handling', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 125', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 125 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 652, + 18, + 'Boundary 150', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 150', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 150 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 653, + 18, + 'Boundary 175', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'provides significant aerodynamic downforce for improved high-speed traction and handling', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 175', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 175 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 654, + 18, + 'Boundary 200', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 200', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 200 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 655, + 18, + 'Boundary 225', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'provides significant aerodynamic downforce for improved high-speed traction and handling', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 225', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 225 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 656, + 18, + 'Boundary 250', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boundary 250', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vich 250 kg Rear Spoiler', + 'Rear Spoiler' + ), + ( + 657, + 0, + 'Cuda A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Cuda A', + 'Horn' + ), + ( + 658, + 0, + 'Cuda B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Cuda B', + 'Horn' + ), + ( + 659, + 0, + 'Cuda 2Stone', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Cuda 2Stone', + 'Horn' + ), + ( + 660, + 0, + 'El Camino A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts El Camino A', + 'Horn' + ), + ( + 661, + 0, + 'El Camino B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts El Camino B', + 'Horn' + ), + ( + 662, + 7, + 'Firebird A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Firebird A', + 'Horn' + ), + ( + 663, + 7, + 'Firebird B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Firebird B', + 'Horn' + ), + ( + 664, + 10, + 'Fury', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth Fury', + 'Horn' + ), + ( + 665, + 15, + 'GMC', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors GMC', + 'Horn' + ), + ( + 666, + 0, + 'Hillman', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Hillman', + 'Horn' + ), + ( + 667, + 3, + 'Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Impala', + 'Horn' + ), + ( + 668, + 0, + 'Metropolitan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Metropolitan', + 'Horn' + ), + ( + 669, + 0, + 'Metropolitan Siren', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Metropolitan Siren', + 'Horn' + ), + ( + 670, + 1, + '64 Ford Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 64 Mustang', + 'Horn' + ), + ( + 671, + 0, + 'Snubnose', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts Snubnose', + 'Horn' + ), + ( + 672, + 1, + 'Aoooga A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Aoooga A', + 'Horn' + ), + ( + 673, + 3, + 'Aoooga B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Aoooga B', + 'Horn' + ), + ( + 674, + 15, + 'Aoooga C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Aoooga C', + 'Horn' + ), + ( + 680, + 50, + '150/82/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 150/82/14 Bias Ply', + 'Tires' + ), + ( + 681, + 50, + '170/82/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 170/82/14 Bias Ply', + 'Tires' + ), + ( + 682, + 50, + '178/82/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 178/82/14 Bias Ply', + 'Tires' + ), + ( + 683, + 50, + '190/82/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 190/82/14 Bias Ply', + 'Tires' + ), + ( + 684, + 50, + '210/82/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 210/82/14 Bias Ply', + 'Tires' + ), + ( + 685, + 50, + '150/92/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 150/92/14 Bias Ply', + 'Tires' + ), + ( + 686, + 50, + '170/92/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 170/92/14 Bias Ply', + 'Tires' + ), + ( + 687, + 50, + '178/92/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 178/92/14 Bias Ply', + 'Tires' + ), + ( + 688, + 50, + '190/92/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 190/92/14 Bias Ply', + 'Tires' + ), + ( + 689, + 50, + '210/92/14 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 210/92/14 Bias Ply', + 'Tires' + ), + ( + 690, + 50, + '170/82/15 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 170/82/15 Bias Ply', + 'Tires' + ), + ( + 691, + 50, + '190/82/15 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 190/82/15 Bias Ply', + 'Tires' + ), + ( + 692, + 50, + '210/82/15 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 210/82/15 Bias Ply', + 'Tires' + ), + ( + 693, + 50, + '150/92/15 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 150/92/15 Bias Ply', + 'Tires' + ), + ( + 694, + 50, + '170/92/15 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 170/92/15 Bias Ply', + 'Tires' + ), + ( + 695, + 50, + '190/92/15 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 190/92/15 Bias Ply', + 'Tires' + ), + ( + 696, + 50, + '150/92/16 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 150/92/16 Bias Ply', + 'Tires' + ), + ( + 697, + 50, + '170/92/16 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 170/92/16 Bias Ply', + 'Tires' + ), + ( + 698, + 50, + '190/92/16 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 190/92/16 Bias Ply', + 'Tires' + ), + ( + 699, + 50, + '210/92/16 Bias Ply', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch 210/92/16 Bias Ply', + 'Tires' + ), + ( + 700, + 99, + '190/60/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 190/60/14 Bias Belted', + 'Tires' + ), + ( + 701, + 99, + '214/60/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 214/60/14 Bias Belted', + 'Tires' + ), + ( + 702, + 99, + '238/60/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 238/60/14 Bias Belted', + 'Tires' + ), + ( + 703, + 99, + '190/72/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 190/72/14 Bias Belted', + 'Tires' + ), + ( + 704, + 99, + '202/72/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 202/72/14 Bias Belted', + 'Tires' + ), + ( + 705, + 99, + '214/72/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 214/72/14 Bias Belted', + 'Tires' + ), + ( + 706, + 99, + '226/72/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 226/72/14 Bias Belted', + 'Tires' + ), + ( + 707, + 99, + '238/72/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 238/72/14 Bias Belted', + 'Tires' + ), + ( + 708, + 99, + '166/82/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 166/82/14 Bias Belted', + 'Tires' + ), + ( + 709, + 99, + '178/82/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 178/82/14 Bias Belted', + 'Tires' + ), + ( + 710, + 99, + '190/82/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 190/82/14 Bias Belted', + 'Tires' + ), + ( + 711, + 99, + '202/82/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 202/82/14 Bias Belted', + 'Tires' + ), + ( + 712, + 99, + '214/82/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 214/82/14 Bias Belted', + 'Tires' + ), + ( + 713, + 99, + '178/92/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 178/92/14 Bias Belted', + 'Tires' + ), + ( + 714, + 99, + '202/92/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 202/92/14 Bias Belted', + 'Tires' + ), + ( + 715, + 99, + '178/60/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 178/60/15 Bias Belted', + 'Tires' + ), + ( + 716, + 99, + '202/60/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 202/60/15 Bias Belted', + 'Tires' + ), + ( + 717, + 99, + '226/60/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 226/60/15 Bias Belted', + 'Tires' + ), + ( + 718, + 99, + '238/60/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 238/60/15 Bias Belted', + 'Tires' + ), + ( + 719, + 99, + '202/72/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 202/72/15 Bias Belted', + 'Tires' + ), + ( + 720, + 99, + '226/72/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 226/72/15 Bias Belted', + 'Tires' + ), + ( + 721, + 99, + '238/72/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 238/72/15 Bias Belted', + 'Tires' + ), + ( + 722, + 99, + '190/82/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 190/82/15 Bias Belted', + 'Tires' + ), + ( + 723, + 99, + '214/82/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 214/82/15 Bias Belted', + 'Tires' + ), + ( + 724, + 99, + '238/82/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 238/82/15 Bias Belted', + 'Tires' + ), + ( + 725, + 99, + '178/92/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 178/92/15 Bias Belted', + 'Tires' + ), + ( + 726, + 99, + '202/92/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 202/92/15 Bias Belted', + 'Tires' + ), + ( + 727, + 99, + '226/92/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 226/92/15 Bias Belted', + 'Tires' + ), + ( + 728, + 99, + '238/92/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 238/92/15 Bias Belted', + 'Tires' + ), + ( + 729, + 100, + '185/65/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 185/65/14 Radial', + 'Tires' + ), + ( + 730, + 100, + '205/65/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/65/14 Radial', + 'Tires' + ), + ( + 731, + 100, + '195/70/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/70/14 Radial', + 'Tires' + ), + ( + 732, + 100, + '215/70/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 215/70/14 Radial', + 'Tires' + ), + ( + 733, + 100, + '195/75/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/75/14 Radial', + 'Tires' + ), + ( + 734, + 100, + '205/75/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/75/14 Radial', + 'Tires' + ), + ( + 735, + 100, + '195/65/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/65/15 Radial', + 'Tires' + ), + ( + 736, + 100, + '215/65/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 215/65/15 Radial', + 'Tires' + ), + ( + 737, + 100, + '205/70/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/70/15 Radial', + 'Tires' + ), + ( + 738, + 100, + '215/70/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 215/70/15 Radial', + 'Tires' + ), + ( + 739, + 100, + '225/70/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emberwood 225/70/15 Radial', + 'Tires' + ), + ( + 740, + 100, + '205/75/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/75/15 Radial', + 'Tires' + ), + ( + 741, + 100, + '215/75/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 215/75/15 Radial', + 'Tires' + ), + ( + 742, + 100, + '235/75/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 235/75/15 Radial', + 'Tires' + ), + ( + 743, + 100, + '215/65/16 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 215/65/16 Radial', + 'Tires' + ), + ( + 744, + 100, + '215/60/16 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 215/60/16 Radial', + 'Tires' + ), + ( + 745, + 100, + '225/60/16 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 225/60/16 Radial', + 'Tires' + ), + ( + 746, + 100, + '225/55/16 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 225/55/16 Radial', + 'Tires' + ), + ( + 747, + 98, + '205/55/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/55/15 Radial Rain', + 'Tires' + ), + ( + 748, + 98, + '195/60/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 195/60/15 Radial Rain', + 'Tires' + ), + ( + 749, + 98, + '205/60/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/60/15 Radial Rain', + 'Tires' + ), + ( + 750, + 98, + '215/60/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/60/15 Radial Rain', + 'Tires' + ), + ( + 751, + 98, + '185/65/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 185/65/15 Radial Rain', + 'Tires' + ), + ( + 752, + 98, + '195/65/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 195/65/15 Radial Rain', + 'Tires' + ), + ( + 753, + 98, + '205/65/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/65/15 Radial Rain', + 'Tires' + ), + ( + 754, + 98, + '215/65/15 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/65/15 Radial Rain', + 'Tires' + ), + ( + 755, + 98, + '225/55/16 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 225/55/16 Radial Rain', + 'Tires' + ), + ( + 756, + 98, + '215/60/16 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/60/16 Radial Rain', + 'Tires' + ), + ( + 757, + 98, + '225/60/16 Radial Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 225/60/16 Radial Rain', + 'Tires' + ), + ( + 758, + 101, + '195/55/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 195/55/15VR Performance', + 'Tires' + ), + ( + 759, + 101, + '205/55/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/55/15VR Performance', + 'Tires' + ), + ( + 760, + 101, + '195/60/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 195/60/15VR Performance', + 'Tires' + ), + ( + 761, + 101, + '205/60/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/60/15VR Performance', + 'Tires' + ), + ( + 762, + 101, + '215/60/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/60/15VR Performance', + 'Tires' + ), + ( + 763, + 101, + '185/65/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 185/65/15VR Performance', + 'Tires' + ), + ( + 764, + 101, + '195/65/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 195/65/15VR Performance', + 'Tires' + ), + ( + 765, + 101, + '205/65/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/65/15VR Performance', + 'Tires' + ), + ( + 766, + 101, + '215/65/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/65/15VR Performance', + 'Tires' + ), + ( + 767, + 101, + '205/40/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/40/16VR Performance', + 'Tires' + ), + ( + 768, + 101, + '215/40/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/40/16VR Performance', + 'Tires' + ), + ( + 769, + 101, + '205/45/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/45/16VR Performance', + 'Tires' + ), + ( + 770, + 101, + '205/45/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/45/16VR Performance', + 'Tires' + ), + ( + 771, + 101, + '215/45/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/45/16VR Performance', + 'Tires' + ), + ( + 772, + 101, + '205/50/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/50/16VR Performance', + 'Tires' + ), + ( + 773, + 101, + '225/50/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 225/50/16VR Performance', + 'Tires' + ), + ( + 774, + 101, + '245/50/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 245/50/16VR Performance', + 'Tires' + ), + ( + 775, + 101, + '205/55/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/55/16VR Performance', + 'Tires' + ), + ( + 776, + 101, + '215/55/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/55/16VR Performance', + 'Tires' + ), + ( + 777, + 101, + '225/55/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 225/55/16VR Performance', + 'Tires' + ), + ( + 778, + 101, + '215/60/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/60/16VR Performance', + 'Tires' + ), + ( + 779, + 101, + '225/60/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 225/60/16VR Performance', + 'Tires' + ), + ( + 780, + 101, + '235/60/16VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 235/60/16VR Performance', + 'Tires' + ), + ( + 781, + 101, + '215/40/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/40/17VR Performance', + 'Tires' + ), + ( + 782, + 101, + '235/40/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 235/40/17VR Performance', + 'Tires' + ), + ( + 783, + 101, + '255/40/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 255/40/17VR Performance', + 'Tires' + ), + ( + 784, + 101, + '215/45/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 215/45/17VR Performance', + 'Tires' + ), + ( + 785, + 101, + '225/45/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 225/45/17VR Performance', + 'Tires' + ), + ( + 786, + 101, + '235/45/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 235/45/17VR Performance', + 'Tires' + ), + ( + 787, + 101, + '245/45/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 245/45/17VR Performance', + 'Tires' + ), + ( + 788, + 101, + '315/35/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 315/35/17VR Performance', + 'Tires' + ), + ( + 789, + 98, + '195/55/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 195/55/15VR Performance Rain', + 'Tires' + ), + ( + 790, + 98, + '205/55/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/55/15VR Performance Rain', + 'Tires' + ), + ( + 791, + 98, + '195/60/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 195/60/15VR Performance Rain', + 'Tires' + ), + ( + 792, + 98, + '205/60/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/60/15VR Performance Rain', + 'Tires' + ), + ( + 793, + 98, + '215/60/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/60/15VR Performance Rain', + 'Tires' + ), + ( + 794, + 98, + '185/65/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 185/65/15VR Performance Rain', + 'Tires' + ), + ( + 795, + 98, + '195/65/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 195/65/15VR Performance Rain', + 'Tires' + ), + ( + 796, + 98, + '205/65/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/65/15VR Performance Rain', + 'Tires' + ), + ( + 797, + 98, + '215/65/15VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/65/15VR Performance Rain', + 'Tires' + ), + ( + 798, + 98, + '205/40/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/40/16VR Performance Rain', + 'Tires' + ), + ( + 799, + 98, + '205/45/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/45/16VR Performance Rain', + 'Tires' + ), + ( + 800, + 98, + '215/45/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/45/16VR Performance Rain', + 'Tires' + ), + ( + 801, + 98, + '205/50/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/50/16VR Performance Rain', + 'Tires' + ), + ( + 802, + 98, + '225/50/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 225/50/16VR Performance Rain', + 'Tires' + ), + ( + 803, + 98, + '245/50/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 245/50/16VR Performance Rain', + 'Tires' + ), + ( + 804, + 98, + '205/55/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 205/55/16VR Performance Rain', + 'Tires' + ), + ( + 805, + 98, + '225/55/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 225/55/16VR Performance Rain', + 'Tires' + ), + ( + 806, + 98, + '215/60/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/60/16VR Performance Rain', + 'Tires' + ), + ( + 807, + 98, + '225/60/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 225/60/16VR Performance Rain', + 'Tires' + ), + ( + 808, + 98, + '235/60/16VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 235/60/16VR Performance Rain', + 'Tires' + ), + ( + 809, + 98, + '215/40/17VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/40/17VR Performance Rain', + 'Tires' + ), + ( + 810, + 98, + '235/40/17VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 235/40/17VR Performance Rain', + 'Tires' + ), + ( + 811, + 98, + '215/45/17VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 215/45/17VR Performance Rain', + 'Tires' + ), + ( + 812, + 98, + '225/45/17VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 225/45/17VR Performance Rain', + 'Tires' + ), + ( + 813, + 98, + '235/45/17VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 235/45/17VR Performance Rain', + 'Tires' + ), + ( + 814, + 98, + '245/45/17VR Perf. Rain', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Michelin 245/45/17VR Performance Rain', + 'Tires' + ), + ( + 827, + 1, + '32 Coupe Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 32 Coupe Hood', + 'Hood' + ), + ( + 828, + 1, + '32 Coupe Front Fenders', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 32 Coupe Front Fenders', + 'Fenders' + ), + ( + 829, + 1, + '32 Coupe Rear Fenders', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 32 Coupe Rear Fenders', + 'Fenders' + ), + ( + 830, + 1, + '32 Coupe Running Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 32 Coupe Running Boards', + 'Running Boards' + ), + ( + 831, + 1, + '32 Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '32 Coupe Bumpers! Put em on!', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '32 Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 32 Coupe Bumpers', + 'Bumpers' + ), + ( + 833, + 1, + '40 Coupe Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 40 Coupe Hood', + 'Hood' + ), + ( + 834, + 1, + '40 Coupe Running Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 40 Coupe Running Boards', + 'Running Boards' + ), + ( + 836, + 1, + '49 Coupe Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 49 Coupe Hood', + 'Hood' + ), + ( + 838, + 1, + '53 Crestline Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 53 Crestline Hood', + 'Hood' + ), + ( + 840, + 1, + '57 Fairlane 500 Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 57 Fairlane 500 Hood', + 'Hood' + ), + ( + 842, + 1, + '57 Ranchero Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 57 Ranchero Hood', + 'Hood' + ), + ( + 844, + 1, + '57 T-Bird Hood w/Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 57 T-Bird Hood w/Scoop', + 'Hood' + ), + ( + 846, + 1, + '63 T-Bird Hood w/Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 63 T-Bird Hood w/Scoop', + 'Hood' + ), + ( + 848, + 1, + '64 Galaxie 500 Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 64 Galaxie 500 Hood', + 'Hood' + ), + ( + 850, + 1, + '64 Mustang Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 64 Mustang Hood', + 'Hood' + ), + ( + 852, + 1, + '69 Torino Hood w/Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 69 Torino Hood w/Scoop', + 'Hood' + ), + ( + 854, + 1, + '70 Mustang Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 70 Mustang Hood', + 'Hood' + ), + ( + 856, + 65, + 'Steel Slotted Rim', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Steel Slotted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Kelsey-Hayes Steel Slotted Rim', + 'Wheel Rims' + ), + ( + 857, + 65, + 'Steel Rim', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Kelsey-Hayes Steel Rim', + 'Wheel Rims' + ), + ( + 864, + 1, + 'Early 3 spd. Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Early 3 spd. Manual (Gear Ratios)', + 'Transmission' + ), + ( + 865, + 1, + 'Ford-o-matic Auto.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic Auto.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic Auto.', + 'Transmission' + ), + ( + 866, + 17, + 'T-10 4 spd Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-10 4 spd Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Borg T-10 4 spd Manual', + 'Transmission' + ), + ( + 867, + 1, + 'C-4 Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C-4 Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford C-4 Automatic', + 'Transmission' + ), + ( + 868, + 1, + '4 spd Manual (Top)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd Manual (Top)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4 spd Manual (Top)', + 'Transmission' + ), + ( + 869, + 61, + '3.56 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.56', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.56) Differential', + 'Rear End' + ), + ( + 870, + 61, + '3.25 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.25) Differential', + 'Rear End' + ), + ( + 871, + 61, + '3.91 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.91', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana (3.91) Differential', + 'Rear End' + ), + ( + 872, + 1, + 'Late 3 spd. Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 speed m/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Late 3 spd. Manual', + 'Transmission' + ), + ( + 873, + 1, + 'Cruise-o-matic Auto.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cruise-o-matic Auto.', + 'Transmission' + ), + ( + 874, + 17, + 'T-85 3 spd Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-85 3 spd Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Borg T-85 3 spd Manual', + 'Transmission' + ), + ( + 875, + 1, + 'Flathead 239-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '239', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead 239-V8', + 'Engine Block' + ), + ( + 876, + 1, + '312-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '312', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 312-V8', + 'Engine Block' + ), + ( + 877, + 1, + '427-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 427-V8', + 'Engine Block' + ), + ( + 878, + 1, + '289-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '289', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 289-V8', + 'Engine Block' + ), + ( + 879, + 1, + '302-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 302-V8', + 'Engine Block' + ), + ( + 880, + 1, + '429-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429-V8', + 'Engine Block' + ), + ( + 881, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock TI Crankshaft', + 'Crankshaft' + ), + ( + 882, + 1, + 'Dished Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dished', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Dished Top Cast Aluminum Piston', + 'Pistons' + ), + ( + 883, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss Dual Plane Aluminum Intake Manifold', + 'Intake Manifold' + ), + ( + 884, + 1, + 'Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Aluminum Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 885, + 1, + 'Detroit Lubricator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Detroit Lubricator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Detroit Lubricator', + 'Carburetor' + ), + ( + 886, + 14, + '4100 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4100 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4100 4V (600 cfm) Carb', + 'Carburetor' + ), + ( + 887, + 1, + 'Flathead (6.15) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (6.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead (6.15) Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 888, + 2, + 'Flathead (6.8) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mercury Stock (6.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mercury Flathead (6.8) Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 889, + 1, + 'Flathead (7.2) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (7.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead (7.2) Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 890, + 1, + 'Low Riser (11.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Low Riser (11.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Low Riser (11.6)', + 'Cylinder Head' + ), + ( + 891, + 1, + 'Boss HP (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss HP (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss HP (10.5) Cylinder Head', + 'Cylinder Head' + ), + ( + 892, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Ford BB Valvetrain', + 'Valve Train' + ), + ( + 893, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss HD Solid Lifter Valve Train', + 'Valve Train' + ), + ( + 934, + 1, + '3 spd/4.10 (32-48)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/4.10 (32-48)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3 spd/4.10 (32-48)', + 'Driveline Assembly' + ), + ( + 935, + 1, + '3 spd/3.78 (32-48)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.78 (32-48)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3 spd/3.78 (32-48)', + 'Driveline Assembly' + ), + ( + 936, + 1, + '3 spd/3.90 (32-48)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.90 (32-48)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3 spd/3.90 (32-48)', + 'Driveline Assembly' + ), + ( + 937, + 1, + '3 spd/3.56 (49-62)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.56 (49-62)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3 spd/3.56 (49-62)', + 'Driveline Assembly' + ), + ( + 938, + 1, + 'Ford-o-matic/3.31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic/3.31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic/3.31', + 'Driveline Assembly' + ), + ( + 939, + 1, + 'Ford-o-matic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'rear axle ratio of 3.10 to 1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic/3.10', + 'Driveline Assembly' + ), + ( + 940, + 1, + 'Ford-o-matic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'The Ford-o-matic was first introduced on the 1957 Fairlane and has a rear axle ratio of 3.70 to 1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford-o-matic/3.70', + 'Driveline Assembly' + ), + ( + 941, + 1, + 'Cruise-o-matic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'this driveline assembly was found in many late 50''s to early 70''s Ford cars.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cruise-o-matic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cruise-o-matic/3.00 ', + 'Driveline Assembly' + ), + ( + 942, + 1, + '3 spd/(T-86)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'the relatively low final drive ratio of 3.25 allow a car to reach high top speeds', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/(T-86)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3 spd/3.25 (T-86)', + 'Driveline Assembly' + ), + ( + 943, + 1, + '3 spd/3.25 (T-85)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.25 (T-85)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 3 spd/3.25 (T-85)', + 'Driveline Assembly' + ), + ( + 944, + 1, + '4 spd/3.25 (T-10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.25 (T-10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4 spd/3.25 (T-10)', + 'Driveline Assembly' + ), + ( + 945, + 1, + 'C-4 auto/3.00', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'standard Ford transmission', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C-4 auto/3.00', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford C-4 auto/3.00', + 'Driveline Assembly' + ), + ( + 946, + 1, + '4 spd/3.50 (Top)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.50 (Top)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4 spd/3.50 (Top)', + 'Driveline Assembly' + ), + ( + 947, + 1, + 'C-4 auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'standard Ford transmission', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C-4 auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford C-4 auto/3.91', + 'Driveline Assembly' + ), + ( + 948, + 1, + 'C-6 auto/3.91 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C-6 auto/3.91 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford C-6 auto/3.91 Lock', + 'Driveline Assembly' + ), + ( + 949, + 1, + 'Flathead Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flathead Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Single', + 'Exhaust Assembly' + ), + ( + 950, + 1, + 'Passenger Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Passenger Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Passenger Single', + 'Exhaust Assembly' + ), + ( + 951, + 1, + 'Passenger Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Passenger Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Passenger Dual', + 'Exhaust Assembly' + ), + ( + 952, + 1, + 'Performance Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Performance Dual', + 'Exhaust Assembly' + ), + ( + 953, + 1, + 'Flathead 221 1V (65 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'original flathead engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '221 1V (65 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead 221 1V (65 hp)', + 'Engine Assembly' + ), + ( + 954, + 1, + 'Flathead 221 2V (85 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'flathead engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '221 2V (85 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead 221 2V (85 hp)', + 'Engine Assembly' + ), + ( + 955, + 1, + 'Flathead 255 2V (112 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'flathead engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '255 2V (112 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead 255- 2V (112 hp)', + 'Engine Assembly' + ), + ( + 956, + 1, + 'Flathead 239 2V (110 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'flathead engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '239 2V (110 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead 239 2V (110 hp)', + 'Engine Assembly' + ), + ( + 957, + 1, + '312 4V (245 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'stock with automatic transmission vehicles', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '312 4V (245 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 312 4V (245 hp)', + 'Engine Assembly' + ), + ( + 958, + 1, + '427 LR 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'performance engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 LR 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 427 LR 2x4V (425 hp)', + 'Engine Assembly' + ), + ( + 959, + 1, + '289 2V (195 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '289 2V (195 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 289 2V (195 hp)', + 'Engine Assembly' + ), + ( + 960, + 1, + '302 2V (220 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '302 2V (220 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 302-V8 2V (220 hp)', + 'Engine Assembly' + ), + ( + 961, + 1, + '429 Boss (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1969 Street Boss engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 Boss (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429 Boss (375 hp)', + 'Engine Assembly' + ), + ( + 962, + 99, + '162/68/18 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 162/68/18 Bias Belted', + 'Tires' + ), + ( + 964, + 1, + 'Fairlane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fairlane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 57 Fairlane 500', + 'Vehicle' + ), + ( + 971, + 1, + 'Boss 429', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 429', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 70 Boss 429 Mustang', + 'Vehicle' + ), + ( + 974, + 1, + 'Torino GT', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torino', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Torino GT', + 'Vehicle' + ), + ( + 980, + 11, + 'Big Bad AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 69 BigBad AMX', + 'Vehicle' + ), + ( + 990, + 10, + 'GTX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GTX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth GTX Cpe', + 'Vehicle' + ), + ( + 1002, + 8, + '4 spd/', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler 4 spd/', + 'Driveline Assembly' + ), + ( + 1003, + 8, + 'Shift-Command', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shift-Command', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Shift-Command/', + 'Driveline Assembly' + ), + ( + 1004, + 8, + '3 spd/', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler 3 spd/', + 'Driveline Assembly' + ), + ( + 1005, + 8, + '4 spd/3.55 ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler 4 spd/3.55 ', + 'Driveline Assembly' + ), + ( + 1006, + 8, + 'Torqueflite', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'The Torqueflite transmission was found in a majority of Chrysler''s cars in the 70''s.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torqueflite', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Torqueflite/3.23 ', + 'Driveline Assembly' + ), + ( + 1007, + 8, + '4 spd/3.55 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.55 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler 4 spd/3.55 Lock', + 'Driveline Assembly' + ), + ( + 1008, + 8, + 'Torqueflite/3.23 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'This version of the Torqueflite has a 3.23 to 1 rear axle ratio', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torqueflite/3.23 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Torqueflite/3.23 Lock', + 'Driveline Assembly' + ), + ( + 1009, + 8, + 'Torqueflite/3.23 Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi version of the Torqueflite Transmission', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torqueflite/3.23 Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Torqueflite/3.23 Hemi', + 'Driveline Assembly' + ), + ( + 1010, + 8, + 'Passenger Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Passenger Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Passenger Single', + 'Exhaust Assembly' + ), + ( + 1011, + 8, + 'Passenger Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Passenger Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Passenger Dual', + 'Exhaust Assembly' + ), + ( + 1012, + 8, + 'Performance Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Performance Dual', + 'Exhaust Assembly' + ), + ( + 1013, + 8, + 'High Perf. Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler High Perf. Dual', + 'Exhaust Assembly' + ), + ( + 1014, + 11, + '290 4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '290 4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 290 4V (225 hp)', + 'Engine Assembly' + ), + ( + 1015, + 11, + '343 4V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '343 4V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 343 4V (280 hp)', + 'Engine Assembly' + ), + ( + 1016, + 4, + '390 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'an innovative engine block when it first came out in 1949; smaller and lighter than previous designs', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB 390 4V (315 hp)', + 'Engine Assembly' + ), + ( + 1017, + 8, + '318 2V (230 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '318 2V (230 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB 318 2V (230 hp)', + 'Engine Assembly' + ), + ( + 1018, + 8, + '440 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '440 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 440 4V (375 hp)', + 'Engine Assembly' + ), + ( + 1019, + 8, + 'Hemi 426 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'street hemi configuration', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi 426 2x4V (425 hp)', + 'Engine Assembly' + ), + ( + 1020, + 8, + '340 3x2V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '340 3x2V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB 340 3x2V (290 hp)', + 'Engine Assembly' + ), + ( + 1021, + 8, + '340 4V (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '340 4V (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB 340 4V (275 hp)', + 'Engine Assembly' + ), + ( + 1022, + 8, + 'Hemi (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi (10.25) Cylinder Head', + 'Cylinder Head' + ), + ( + 1023, + 8, + 'AAR (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AAR (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB AAR (10.5) W/P Cylinder Head', + 'Cylinder Head' + ), + ( + 1034, + 8, + 'Shift-Command Auto', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shift-Command', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Shift-Command Automatic (2.45/1.45/1)', + 'Transmission' + ), + ( + 1035, + 8, + 'Stock Round Chrome', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Stock Round Chrome', + 'Tail Pipe Tip' + ), + ( + 1036, + 11, + '290-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '290', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 290-V8', + 'Engine Block' + ), + ( + 1037, + 11, + '343-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '343', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 343-V8', + 'Engine Block' + ), + ( + 1038, + 11, + '390-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 390-V8', + 'Engine Block' + ), + ( + 1039, + 8, + '318-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '318', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB 318-V8', + 'Engine Block' + ), + ( + 1040, + 8, + '440-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '440', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 440-V8', + 'Engine Block' + ), + ( + 1041, + 8, + '426-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '426', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 426-V8', + 'Engine Block' + ), + ( + 1042, + 8, + '340-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '340', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB 340-V8', + 'Engine Block' + ), + ( + 1043, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock Lubrication System', + 'Lubrication System' + ), + ( + 1044, + 8, + 'Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock CI/DP IM', + 'Intake Manifold' + ), + ( + 1045, + 8, + 'Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock Dual Plane Manifold', + 'Intake Manifold' + ), + ( + 1046, + 11, + 'Stock (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock (10.0) W CH', + 'Cylinder Head' + ), + ( + 1047, + 11, + 'Stock (10.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock (10.2) W CH', + 'Cylinder Head' + ), + ( + 1048, + 11, + 'SS (10.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SS (10.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC SS (10.2) HP Cylinder Head', + 'Cylinder Head' + ), + ( + 1049, + 7, + 'Stock (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock (9.2) Cylinder Head', + 'Cylinder Head' + ), + ( + 1050, + 8, + 'Stock (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock (10.5) W Cylinder Head', + 'Cylinder Head' + ), + ( + 1051, + 0, + 'TRFMONTE', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRFMONTE (Traffic)', + 'Vehicle' + ), + ( + 1052, + 0, + 'TRFDELVR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRFDELVR (Traffic)', + 'Vehicle' + ), + ( + 1053, + 0, + 'TRFBUS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRFBUS (Traffic)', + 'Vehicle' + ), + ( + 1054, + 0, + 'TRFGSX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRFGSX (Traffic)', + 'Vehicle' + ), + ( + 1055, + 0, + 'TRFSTANG', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRFSTANG (Traffic)', + 'Vehicle' + ), + ( + 1056, + 0, + 'TRFTBIRD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRFTBIRD (Traffic)', + 'Vehicle' + ), + ( + 1057, + 0, + 'TRFPUP1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRFPUP1 (Traffic)', + 'Vehicle' + ), + ( + 1058, + 0, + 'TRF2DR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Traffic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Electronic Arts TRF2DR (Traffic)', + 'Vehicle' + ), + ( + 1084, + 15, + '3 spd./3.71', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd./3.71', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd./3.71', + 'Driveline Assembly' + ), + ( + 1085, + 15, + 'Hydramatic/3.54', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hydramatic/3.54', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Hydramatic/3.54', + 'Driveline Assembly' + ), + ( + 1086, + 15, + '3 spd/3.90 (37-60)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.90 (37-60)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd/3.90 (37-60)', + 'Driveline Assembly' + ), + ( + 1087, + 15, + 'Dynaflow/3.4 (52-60)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dynaflow/3.4 (52-60)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Dynaflow/3.4 (52-60)', + 'Driveline Assembly' + ), + ( + 1088, + 15, + '3 spd/3.70', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.70', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd/3.70', + 'Driveline Assembly' + ), + ( + 1089, + 15, + 'Turboglide/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turboglide/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Turboglide/3.55', + 'Driveline Assembly' + ), + ( + 1090, + 15, + 'Powerglide/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Powerglide/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Powerglide/3.55', + 'Driveline Assembly' + ), + ( + 1091, + 15, + '3 spd/3.70 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.70 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd/3.70 Posi', + 'Driveline Assembly' + ), + ( + 1092, + 15, + 'Hydramatic/2.94', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hydramatic/2.94', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Hydramatic/2.94', + 'Driveline Assembly' + ), + ( + 1093, + 15, + '4 spd/3.70 Posi (Borg)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.70 Posi (Borg)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.70 Posi (Borg)', + 'Driveline Assembly' + ), + ( + 1094, + 15, + '3 spd/3.36 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.36 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd/3.36 Posi', + 'Driveline Assembly' + ), + ( + 1095, + 15, + 'Powerglide/3.36 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Powerglide/3.36 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Powerglide/3.36 Posi', + 'Driveline Assembly' + ), + ( + 1096, + 15, + '4 spd/3.36 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.36 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.36 Posi', + 'Driveline Assembly' + ), + ( + 1097, + 15, + '3 spd/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd/3.55', + 'Driveline Assembly' + ), + ( + 1098, + 15, + 'Powerglide/3.08 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Powerglide/3.08 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Powerglide/3.08 Posi', + 'Driveline Assembly' + ), + ( + 1099, + 15, + '3 spd/3.55 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.55 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd/3.55 Lock', + 'Driveline Assembly' + ), + ( + 1100, + 15, + 'Hydramatic/3.55 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hydramatic/3.55 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Hydramatic/3.55 Lock', + 'Driveline Assembly' + ), + ( + 1101, + 15, + '3 spd/3.73 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.73 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 spd/3.73 Posi', + 'Driveline Assembly' + ), + ( + 1102, + 15, + 'Powerglide/3.07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Powerglide/3.07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Powerglide/3.07', + 'Driveline Assembly' + ), + ( + 1103, + 15, + '4 spd/3.73 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.73 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.73 Posi', + 'Driveline Assembly' + ), + ( + 1104, + 15, + 'T-Hydramatic/2.73 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Hydramatic/2.73 Posi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors T-Hydramatic/2.73 Posi', + 'Driveline Assembly' + ), + ( + 1105, + 15, + '4 spd/3.42', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.42', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.42', + 'Driveline Assembly' + ), + ( + 1106, + 15, + 'T-Hydramatic/3.42', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Hydramatic/3.42', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors T-Hydramatic/3.42', + 'Driveline Assembly' + ), + ( + 1107, + 15, + '4 spd/3.31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.31', + 'Driveline Assembly' + ), + ( + 1108, + 15, + 'T-Hydramatic/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Hydramatic/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors T-Hydramatic/3.55', + 'Driveline Assembly' + ), + ( + 1109, + 15, + 'T-Hydramatic/3.07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Hydramatic/3.07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors T-Hydramatic/3.07', + 'Driveline Assembly' + ), + ( + 1110, + 15, + '4 spd/3.90 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.90 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.90 Lock', + 'Driveline Assembly' + ), + ( + 1111, + 15, + '4 spd/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.55', + 'Driveline Assembly' + ), + ( + 1112, + 15, + '4 spd/3.42 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd/3.42 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 4 spd/3.42 Lock', + 'Driveline Assembly' + ), + ( + 1113, + 4, + '346 2V (150 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a big chunk of iron', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '346 2V (150 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head 346 2V (150 hp)', + 'Engine Assembly' + ), + ( + 1114, + 6, + '322 4V (236 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fireball V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '322 4V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead 322 4V (236 hp)', + 'Engine Assembly' + ), + ( + 1115, + 3, + '283 FI (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'baseline FI engine; includes improved oiling and Ram''s Horn exhaust manifolds', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 FI (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 FI (250 hp)', + 'Engine Assembly' + ), + ( + 1116, + 4, + '390 3x2V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'an innovative engine block when it first came out in 1949; smaller and lighter than previous designs', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 3x2V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB 390 3x2V (345 hp)', + 'Engine Assembly' + ), + ( + 1117, + 3, + '327 4V (300 hp) (L75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'cast iron block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327 4V (300 hp) (L75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 327 4V (300 hp) (L75)', + 'Engine Assembly' + ), + ( + 1118, + 7, + '389 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 4V (335 hp)', + 'Engine Assembly' + ), + ( + 1119, + 3, + '396 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'semi-hemi combustion chambers; smooth bend port runners; a modern engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '396 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy BB 396 4V (375 hp)', + 'Engine Assembly' + ), + ( + 1120, + 7, + '400 Ram Air II (366 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'as installed on the 1968 GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air II (366 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 400 Ram Air II (366 hp)', + 'Engine Assembly' + ), + ( + 1121, + 3, + '350 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'strengthened block to accomdate new bore and stroke; mainstay during the 70''s and 80''s', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy SB 350 4V (300 hp)', + 'Engine Assembly' + ), + ( + 1122, + 5, + '455 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 455 4V (375 hp)', + 'Engine Assembly' + ), + ( + 1123, + 7, + '455 SD 4V (310 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Duty; this version of the engine never quite reached production due to emissions requirements', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 SD 4V (310 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 455 4V (310 hp)', + 'Engine Assembly' + ), + ( + 1124, + 7, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Wedge (10.5) W CH', + 'Cylinder Head' + ), + ( + 1125, + 5, + '(10.25) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB (10.25) Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 1126, + 7, + 'Wedge (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.75) W Cylinder Head', + 'Cylinder Head' + ), + ( + 1127, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Chevrolet BB IM', + 'Intake Manifold' + ), + ( + 1128, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Chevrolet SB IM', + 'Intake Manifold' + ), + ( + 1129, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Chrysler BB IM', + 'Intake Manifold' + ), + ( + 1130, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Chrysler SB IM', + 'Intake Manifold' + ), + ( + 1131, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Ford BB IM', + 'Intake Manifold' + ), + ( + 1132, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Ford SB IM', + 'Intake Manifold' + ), + ( + 1133, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Olds BB IM', + 'Intake Manifold' + ), + ( + 1134, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Olds SB IM', + 'Intake Manifold' + ), + ( + 1135, + 8, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi IM', + 'Intake Manifold' + ), + ( + 1136, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Pontiac IM', + 'Intake Manifold' + ), + ( + 1137, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'high flow tunnel ram aluminum alloy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Tunnel Ram Pontiac IM', + 'Intake Manifold' + ), + ( + 1138, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chevrolet BB Dual Plane IM', + 'Intake Manifold' + ), + ( + 1139, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chevrolet SB Dual Plane IM', + 'Intake Manifold' + ), + ( + 1140, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chrysler BB Dual Plane IM', + 'Intake Manifold' + ), + ( + 1141, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chrysler SB Dual Plane IM', + 'Intake Manifold' + ), + ( + 1142, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Ford BB IM', + 'Intake Manifold' + ), + ( + 1143, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Ford SB Dual Plane IM', + 'Intake Manifold' + ), + ( + 1144, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Olds BB Dual Plane IM', + 'Intake Manifold' + ), + ( + 1145, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Olds SB Dual Plane IM', + 'Intake Manifold' + ), + ( + 1146, + 70, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree CI DP IM', + 'Intake Manifold' + ), + ( + 1147, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Pontiac Dual Plane IM', + 'Intake Manifold' + ), + ( + 1148, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Chevrolet BB IM', + 'Intake Manifold' + ), + ( + 1149, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Chevrolet SB IM', + 'Intake Manifold' + ), + ( + 1150, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Chrysler BB IM', + 'Intake Manifold' + ), + ( + 1151, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Chrysler SB IM', + 'Intake Manifold' + ), + ( + 1152, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Ford BB IM', + 'Intake Manifold' + ), + ( + 1153, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Ford SB IM', + 'Intake Manifold' + ), + ( + 1154, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Olds BB IM', + 'Intake Manifold' + ), + ( + 1155, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Olds SB IM', + 'Intake Manifold' + ), + ( + 1156, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Pontiac IM', + 'Intake Manifold' + ), + ( + 1157, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Single Plane Pontiac IM', + 'Intake Manifold' + ), + ( + 1158, + 15, + '3 spd Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd Manual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors GM 3 spd Manual (A)', + 'Transmission' + ), + ( + 1159, + 15, + 'M22 4 Speed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'M22', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM M22 Close Ratio 4 Spd Manual', + 'Transmission' + ), + ( + 1160, + 15, + '3.71 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.71', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM (3.71) Differential', + 'Rear End' + ), + ( + 1161, + 4, + '346-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '346', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head 346-V8', + 'Engine Block' + ), + ( + 1162, + 6, + '322-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'cast iron block with two-bolt main bearing cap', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '322', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead 322-V8', + 'Engine Block' + ), + ( + 1172, + 71, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Normal Duty Air Cleaner', + 'Air Cleaner' + ), + ( + 1173, + 5, + '(9.0) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile SB (9.0) Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 1174, + 3, + 'Wedge (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB (9.5) W Cylinder Head', + 'Cylinder Head' + ), + ( + 1175, + 3, + 'Canted (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Canted (11.0) Cylinder Head', + 'Cylinder Head' + ), + ( + 1176, + 7, + '350-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac V8 350', + 'Engine Block' + ), + ( + 1177, + 7, + '421-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac V8 421', + 'Engine Block' + ), + ( + 1184, + 15, + 'Camaro Sidepipes', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sidepipes', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Camaro Sidepipes', + 'Muffler' + ), + ( + 1185, + 15, + 'Hood Mod Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Hood Mod Bel-Air', + 'Hood' + ), + ( + 1186, + 15, + '3 spd M/3.70 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd M/3.70 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 Spd M/3.70 Lock', + 'Driveline Assembly' + ), + ( + 1187, + 15, + '3 spd M/3.36 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd M/3.36 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors 3 Spd M/3.36 Lock', + 'Driveline Assembly' + ), + ( + 1188, + 46, + 'T-Hydro 400/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Hydro 400/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully T-Hydro 400/3.55', + 'Driveline Assembly' + ), + ( + 1189, + 15, + 'Hydramatic/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hydramatic/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'General Motors Hydramatic/3.55', + 'Driveline Assembly' + ), + ( + 1190, + 7, + 'T-Hydramatic/3.07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Hydramatic/3.07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac T-Hydramatic/12-bolt 3.07', + 'Driveline Assembly' + ), + ( + 1191, + 11, + 'Shift-Command', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'This automatic transmission was found in the AMX in 69 and had a rear axle ratio of 3.54 to 1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shift-Command', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Shift-Command/3.54', + 'Driveline Assembly' + ), + ( + 1192, + 10, + '3 spd/3.9 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.9 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 3 Spd/3.9 Lock', + 'Driveline Assembly' + ), + ( + 1193, + 1, + 'Cruise-o-matic/3.10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cruise-o-matic/3.10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cruise-o-matic/3.10', + 'Driveline Assembly' + ), + ( + 1194, + 46, + 'Cool T-Hydro 400/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Driveline Assembly', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cool T-Hydro 400/3.55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully Cool T-Hydro 400/3.55', + 'Driveline Assembly' + ), + ( + 1195, + 3, + '4 spd Synchro M/4.10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd Synchro M/4.10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 4 Spd Synchro M/4.10', + 'Driveline Assembly' + ), + ( + 1196, + 3, + '3 spd/3.77 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.77 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 3 Spd/3.77 Lock', + 'Driveline Assembly' + ), + ( + 1197, + 3, + '3 spd/3.31 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.31 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 3 spd/3.31 Lock', + 'Driveline Assembly' + ), + ( + 1198, + 1, + '4 spd M/3.91', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 spd M/3.91', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 4 Spd M/3.91', + 'Driveline Assembly' + ), + ( + 1199, + 67, + '3 spd/3.42 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/3.42 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall 3 Speed/3.42 Lock', + 'Driveline Assembly' + ), + ( + 1200, + 8, + '3 spd/4.10 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 spd/4.10 Lock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler 3 Spd/4.10 Lock', + 'Driveline Assembly' + ), + ( + 1202, + 6, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick 55 Century', + 'Vehicle' + ), + ( + 1203, + 3, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 57 Bel-Air', + 'Vehicle' + ), + ( + 1230, + 7, + 'GTO Judge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 69 GTO Judge', + 'Vehicle' + ), + ( + 1243, + 1, + 'FH (7.5) Denver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Denver (7.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead (7.5) Denver Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 1244, + 5, + '(8.5) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB (8.5) Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 1245, + 3, + '(10.25) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W (10.25) 2.07i/1.72e CH', + 'Cylinder Head' + ), + ( + 1246, + 3, + 'L72', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'L72', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB (11.0) L72 HP Canted Cylinder Head', + 'Cylinder Head' + ), + ( + 1247, + 3, + 'L88 Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'L88', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB L88 Aluminum Canted Cylinder Head', + 'Cylinder Head' + ), + ( + 1248, + 3, + 'L89 Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'L89', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB L89 Aluminum Canted Cylinder Head', + 'Cylinder Head' + ), + ( + 1249, + 1, + '1957 (9.0) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1957 Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 1957 (9.0) Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 1250, + 1, + 'Canted (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Canted (8.5) Cylinder Head', + 'Cylinder Head' + ), + ( + 1251, + 1, + 'Canted (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Canted (11.0) Cylinder Head', + 'Cylinder Head' + ), + ( + 1252, + 1, + 'HO HP (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HO HP (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland HO (9.2) Canted CH', + 'Cylinder Head' + ), + ( + 1253, + 1, + 'Wedge (9.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB (9.6) Wedge CH', + 'Cylinder Head' + ), + ( + 1254, + 1, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cammer HP CH', + 'Cylinder Head' + ), + ( + 1255, + 1, + 'Wedge HP (11.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge HP (11.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HP (11.4) W/P CH', + 'Cylinder Head' + ), + ( + 1256, + 1, + 'High Riser (11.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'High Riser (11.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB High Riser (11.5) W/F Cylinder Head', + 'Cylinder Head' + ), + ( + 1257, + 1, + '(10.5) Canted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 (10.5) Canted CH', + 'Cylinder Head' + ), + ( + 1258, + 1, + 'Cobrajet (11.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cobrajet (11.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford (11.3) CJ HP CH', + 'Cylinder Head' + ), + ( + 1260, + 7, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.0) W/P Cylinder Head', + 'Cylinder Head' + ), + ( + 1261, + 8, + 'Max Wedge I (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge I (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge I (11.0) Cylinder Head', + 'Cylinder Head' + ), + ( + 1262, + 8, + 'Max Wedge I (13.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge I (13.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge I (13.5) Cylinder Head', + 'Cylinder Head' + ), + ( + 1282, + 8, + 'Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Tunnel Ram Intake Manifold', + 'Intake Manifold' + ), + ( + 1283, + 3, + 'Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Aluminum Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1284, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Stock Intake Manifold', + 'Intake Manifold' + ), + ( + 1285, + 3, + ' Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Z11 Aluminum Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1286, + 1, + 'Cobrajet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cobrajet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cobrajet Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1287, + 38, + 'Offenhauser Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Offenhauser Chrysler Hemi Dual Plane Magnesium IM', + 'Intake Manifold' + ), + ( + 1288, + 1, + 'Cobrajet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cobrajet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cobrajet HP Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1289, + 8, + 'Max Wedge Cross-Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge Aluminum Cross-Ram Intake Manifold', + 'Intake Manifold' + ), + ( + 1290, + 22, + 'Tri-Pwr 3x2V (780 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tri-Power 3x2V (780 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter Tri-Power 3x2V Carburetor', + 'Carburetor' + ), + ( + 1291, + 16, + 'Q-Jet 2x4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quadrajet 2x4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Quadrajet 2x4V (800 cfm) Carb', + 'Carburetor' + ), + ( + 1292, + 1, + 'Ford 385 Valve Cover', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Cast Iron Valve Cover', + 'Valve Cover' + ), + ( + 1293, + 3, + 'Chevy W Valve Cover', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy W Cast Iron Valve Cover', + 'Valve Cover' + ), + ( + 1294, + 3, + 'Hi-Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hi-Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Hi-Lift Hydraulic Valve Train', + 'Valve Train' + ), + ( + 1295, + 1, + 'Tri-Y Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tri-Y Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Tri-Y Steel Tube Headers', + 'Exhaust Manifold' + ), + ( + 1299, + 8, + 'Max Wedge III', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge III', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge III Valve Train', + 'Valve Train' + ), + ( + 1307, + 13, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker-Plus Chrysler SB DP Camshaft', + 'Camshaft' + ), + ( + 1308, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Stock Camshaft', + 'Camshaft' + ), + ( + 1309, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stock Camshaft', + 'Camshaft' + ), + ( + 1310, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Stock Camshaft', + 'Camshaft' + ), + ( + 1311, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'bone stock; low idle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock Camshaft', + 'Camshaft' + ), + ( + 1312, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Stock Camshaft', + 'Camshaft' + ), + ( + 1313, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock Camshaft', + 'Camshaft' + ), + ( + 1314, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Stock Camshaft', + 'Camshaft' + ), + ( + 1315, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Stock Camshaft', + 'Camshaft' + ), + ( + 1316, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Stock Camshaft', + 'Camshaft' + ), + ( + 1317, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock Camshaft', + 'Camshaft' + ), + ( + 1318, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock Camshaft', + 'Camshaft' + ), + ( + 1319, + 8, + 'Barracuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Barracuda Stock Camshaft', + 'Camshaft' + ), + ( + 1320, + 3, + 'Stock Hi-Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock Hi-Lift Camshaft', + 'Camshaft' + ), + ( + 1321, + 3, + 'HP Duntov', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP Duntov', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB HP Duntov Camshaft', + 'Camshaft' + ), + ( + 1322, + 3, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB HP Camshaft', + 'Camshaft' + ), + ( + 1323, + 3, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB HP Camshaft', + 'Camshaft' + ), + ( + 1324, + 3, + 'HP LS7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB HP LS7 Camshaft', + 'Camshaft' + ), + ( + 1325, + 6, + '1968 Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1968 Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB 1968 Stage I Camshaft', + 'Camshaft' + ), + ( + 1326, + 6, + '1969 Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1969 Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB 1969 Stage I Camshaft', + 'Camshaft' + ), + ( + 1327, + 6, + 'Stage II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'midway between a stock cam and a true high performance cam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stage II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stage II Camshaft', + 'Camshaft' + ), + ( + 1328, + 5, + 'W-31 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W-31 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile SB W31 HP Camshaft', + 'Camshaft' + ), + ( + 1329, + 5, + 'W-30 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W-30 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB W30 HP Camshaft', + 'Camshaft' + ), + ( + 1330, + 7, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac SD DP Camshaft', + 'Camshaft' + ), + ( + 1331, + 7, + 'Ram Air I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air I HP Camshaft', + 'Camshaft' + ), + ( + 1332, + 7, + 'Ram Air IV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air IV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air IV HP Camshaft', + 'Camshaft' + ), + ( + 1333, + 7, + 'HO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac HO HP Camshaft', + 'Camshaft' + ), + ( + 1334, + 7, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac SD HP Camshaft', + 'Camshaft' + ), + ( + 1335, + 13, + 'Perf. Q-Jet (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Q-Jet (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Q-Jet (600 cfm) Carb', + 'Carburetor' + ), + ( + 1336, + 1, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Truck Camshaft', + 'Camshaft' + ), + ( + 1337, + 13, + 'Performer RPM (9.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM (9.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM (9.25) Chevy SB CH', + 'Cylinder Head' + ), + ( + 1338, + 13, + 'Performer RPM (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM (10.5) Chevy SB CH', + 'Cylinder Head' + ), + ( + 1339, + 13, + 'Performer (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer (10.5) Chevy SB CH', + 'Cylinder Head' + ), + ( + 1340, + 13, + 'Performer (9.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer (9.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer (9.25) Chevy SB CH', + 'Cylinder Head' + ), + ( + 1341, + 13, + 'Perf. 454-O (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM 454-O (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM 454-O (9.5) Chevrolet BB Cylinder Head', + 'Cylinder Head' + ), + ( + 1342, + 13, + 'Performer 454-O (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer 454-O (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer 454-O (9.5) Chevrolet BB Head', + 'Cylinder Head' + ), + ( + 1343, + 13, + 'Perf. 454-R (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM 454-R (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM 454-R (9.5) Chevrolet BB Cylinder Head', + 'Cylinder Head' + ), + ( + 1344, + 13, + 'Perf. RPM (11.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM (11.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM (11.5) Chevy SB CH', + 'Cylinder Head' + ), + ( + 1345, + 1, + 'HO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HO (DP) Camshaft', + 'Camshaft' + ), + ( + 1346, + 1, + 'HO Mild', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP Mild', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HO Mild (HP) Camshaft', + 'Camshaft' + ), + ( + 1347, + 1, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cammer (DP+) Camshaft', + 'Camshaft' + ), + ( + 1348, + 1, + 'PI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB PI (HP) Camshaft', + 'Camshaft' + ), + ( + 1349, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss (DP) Camshaft', + 'Camshaft' + ), + ( + 1350, + 13, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker Buick BB Intake Manifold', + 'Intake Manifold' + ), + ( + 1351, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Buick BB Intake Manifold', + 'Intake Manifold' + ), + ( + 1352, + 13, + 'Torker II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker II Buick BB Intake Manifold', + 'Intake Manifold' + ), + ( + 1353, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Buick BB Tunnel Ram Intake Manifold', + 'Intake Manifold' + ), + ( + 1354, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1355, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1356, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1357, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1358, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB CI/DP IM', + 'Intake Manifold' + ), + ( + 1359, + 8, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB HP Camshaft', + 'Camshaft' + ), + ( + 1360, + 8, + 'Max Wedge I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge I (HP) Camshaft', + 'Camshaft' + ), + ( + 1361, + 8, + 'Max Wedge III', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge III', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge III (DP)Camshaft', + 'Camshaft' + ), + ( + 1362, + 8, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi (DP+) Camshaft', + 'Camshaft' + ), + ( + 1363, + 8, + 'AAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB AAR (HP) Camshaft', + 'Camshaft' + ), + ( + 1364, + 11, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Group 19 (HP+) Camshaft', + 'Camshaft' + ), + ( + 1365, + 11, + 'SS/AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SS/AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC SS/AMX (DP) Camshaft', + 'Camshaft' + ), + ( + 1367, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax HP Cadillac BB Camshaft', + 'Camshaft' + ), + ( + 1368, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax HP Buick BB Camshaft', + 'Camshaft' + ), + ( + 1369, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax HP Buick SB Camshaft', + 'Camshaft' + ), + ( + 1370, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax HP Chevrolet BB Camshaft', + 'Camshaft' + ), + ( + 1371, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax HP Chevrolet SB Camshaft', + 'Camshaft' + ), + ( + 1372, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Chrysler BB Camshaft', + 'Camshaft' + ), + ( + 1373, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Ford BB Camshaft', + 'Camshaft' + ), + ( + 1374, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Ford SB Camshaft', + 'Camshaft' + ), + ( + 1375, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Olds BB Camshaft', + 'Camshaft' + ), + ( + 1376, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Olds SB Camshaft', + 'Camshaft' + ), + ( + 1377, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Pontiac Camshaft', + 'Camshaft' + ), + ( + 1378, + 70, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Hemi Camshaft', + 'Camshaft' + ), + ( + 1379, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Chrysler BB Camshaft', + 'Camshaft' + ), + ( + 1380, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Buick BB Camshaft', + 'Camshaft' + ), + ( + 1381, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Buick SB Camshaft', + 'Camshaft' + ), + ( + 1382, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Chevrolet BB Camshaft', + 'Camshaft' + ), + ( + 1383, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Chevrolet SB Camshaft', + 'Camshaft' + ), + ( + 1384, + 74, + 'Sportsman', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Sportsman Ford SB Connecting Rod', + 'Connecting Rods' + ), + ( + 1385, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Ford BB Camshaft', + 'Camshaft' + ), + ( + 1386, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Ford SB Camshaft', + 'Camshaft' + ), + ( + 1387, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Olds BB Camshaft', + 'Camshaft' + ), + ( + 1389, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Ford SB Connecting Rod', + 'Connecting Rods' + ), + ( + 1390, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Olds SB Camshaft', + 'Camshaft' + ), + ( + 1391, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Pontiac Camshaft', + 'Camshaft' + ), + ( + 1392, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special Chevy W Camshaft', + 'Camshaft' + ), + ( + 1393, + 13, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Plus Chevrolet SB Stock+ Camshaft', + 'Camshaft' + ), + ( + 1394, + 13, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Plus Ford SB Stock+ Camshaft', + 'Camshaft' + ), + ( + 1395, + 74, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Titanium Ford BB Connecting Rod', + 'Connecting Rods' + ), + ( + 1396, + 13, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Plus Ford BB Stock+ Camshaft', + 'Camshaft' + ), + ( + 1397, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chrysler BB HP Camshaft', + 'Camshaft' + ), + ( + 1398, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Buick BB HP Camshaft', + 'Camshaft' + ), + ( + 1399, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chevrolet BB HP Camshaft', + 'Camshaft' + ), + ( + 1400, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chevrolet SB HP Camshaft', + 'Camshaft' + ), + ( + 1401, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Ford BB HP Camshaft', + 'Camshaft' + ), + ( + 1402, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Ford SB HP Camshaft', + 'Camshaft' + ), + ( + 1404, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Olds SB HP Camshaft', + 'Camshaft' + ), + ( + 1405, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Pontiac HP Camshaft', + 'Camshaft' + ), + ( + 1407, + 74, + 'Pure-Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pure-Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Pure-Stock Chevrolet SB Crankshaft', + 'Crankshaft' + ), + ( + 1408, + 74, + 'Stock-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Stock-Plus Crankshaft', + 'Crankshaft' + ), + ( + 1409, + 74, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Enduro Chevrolet SB Crankshaft', + 'Crankshaft' + ), + ( + 1410, + 13, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker-Plus Chrysler BB DP Camshaft', + 'Camshaft' + ), + ( + 1412, + 13, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker-Plus Chevrolet BB DP Camshaft', + 'Camshaft' + ), + ( + 1413, + 13, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker-Plus Chevrolet SB DP Camshaft', + 'Camshaft' + ), + ( + 1414, + 13, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker-Plus Ford BB DP Camshaft', + 'Camshaft' + ), + ( + 1415, + 13, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker-Plus Ford SB DP Camshaft', + 'Camshaft' + ), + ( + 1418, + 13, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker-Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker-Plus Pontiac DP Camshaft', + 'Camshaft' + ), + ( + 1420, + 1, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1421, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1422, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1423, + 74, + 'Ultra-Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ultra-Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Ultra-Light Chevrolet SB Crankshaft', + 'Crankshaft' + ), + ( + 1424, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1425, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 1426, + 3, + 'RPO411 Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RPO411', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB RPO411 Aluminum Intake Manifold', + 'Intake Manifold' + ), + ( + 1427, + 3, + 'High Rise Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'High Rise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB High Rise Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1428, + 3, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1429, + 6, + '350-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'cast iron block with two-bolt main bearing cap; similar to previous small-blocks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB V8 350', + 'Engine Block' + ), + ( + 1430, + 6, + '455-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'cast iron block with thick two-bolt main bearing cap', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB V8 455', + 'Engine Block' + ), + ( + 1431, + 74, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Standard Chevrolet SB Crankshaft', + 'Crankshaft' + ), + ( + 1432, + 74, + 'Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Chevrolet BB Crankshaft', + 'Crankshaft' + ), + ( + 1433, + 3, + 'High Rise Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'High Rise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB High Rise Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1434, + 3, + 'LS6 Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Low Rise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB LS6 Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1435, + 6, + 'Stock 322 Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock 322 Dual Plane IM', + 'Intake Manifold' + ), + ( + 1436, + 13, + 'Stage II Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stage II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Stage II Buick BB Aluminum IM', + 'Intake Manifold' + ), + ( + 1437, + 5, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1438, + 5, + 'W-31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W-31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB W-31 HP Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1439, + 5, + 'W-30 IM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W-30', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB W-30 HP Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1440, + 7, + 'Ram Air IV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air IV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air IV HP Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1441, + 7, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1442, + 1, + '1957 Large Port', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'larger than normal ports', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock 1957', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 1957 Stock Dual Plane IM', + 'Intake Manifold' + ), + ( + 1443, + 13, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Aluminum Dual Plane Ford SB IM', + 'Intake Manifold' + ), + ( + 1444, + 1, + 'Small Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Stock Lubrication System', + 'Lubrication System' + ), + ( + 1445, + 1, + 'HR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'High Riser', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HR Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1446, + 1, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cammer HP Aluminum IM', + 'Intake Manifold' + ), + ( + 1447, + 1, + 'Sidewinder', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sidewinder', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Sidewinder Aluminum Single Plane IM', + 'Intake Manifold' + ), + ( + 1448, + 1, + 'Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cast Iron Single Plane IM', + 'Intake Manifold' + ), + ( + 1449, + 38, + 'Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Offenhauser Magnesium Single Plane Ford 385 IM', + 'Intake Manifold' + ), + ( + 1450, + 8, + 'High Riser', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'High Riser', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB High Rise Dual Plane IM', + 'Intake Manifold' + ), + ( + 1451, + 8, + 'Stock Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1452, + 8, + 'Long Ram IM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Long Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Long Ram IM', + 'Intake Manifold' + ), + ( + 1453, + 8, + 'Short Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Short Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Short Ram IM', + 'Intake Manifold' + ), + ( + 1454, + 13, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Aluminum Dual Plane Chrysler BB IM', + 'Intake Manifold' + ), + ( + 1455, + 3, + '427-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 W', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W V8 427', + 'Engine Block' + ), + ( + 1456, + 8, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 1457, + 11, + 'Rebel Machine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rebel Machine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Rebel Machine Dual Plane IM', + 'Intake Manifold' + ), + ( + 1458, + 13, + 'R4B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'R4B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock R4B AMC Block Dual Plane IM', + 'Intake Manifold' + ), + ( + 1459, + 1, + '400-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland 400-V8', + 'Engine Block' + ), + ( + 1460, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Flat Top Cast Aluminum Piston', + 'Pistons' + ), + ( + 1461, + 11, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Group 19 Piston', + 'Pistons' + ), + ( + 1462, + 13, + 'Super Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Super Dual Ford Flathead IM', + 'Intake Manifold' + ), + ( + 1463, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Cadillac BB IM', + 'Intake Manifold' + ), + ( + 1464, + 1, + '351-V8 Windsor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351 Windsor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 351-V8 Windsor', + 'Engine Block' + ), + ( + 1465, + 21, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Ford BB Valvetrain', + 'Valve Train' + ), + ( + 1466, + 21, + 'Fireball XR700', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fireball XR700', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Fireball XR700 Ignition System', + 'Electrical System' + ), + ( + 1467, + 21, + 'Fireball XR3000', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fireball XR3000', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Fireball XR3000 Ignition System', + 'Electrical System' + ), + ( + 1468, + 77, + 'TM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Reed TM Hydraulic Ford BB Valvetrain', + 'Valve Train' + ), + ( + 1469, + 77, + 'T-UL', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-UL', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Reed T-UL Solid Lifter Ford BB Valvetrain', + 'Valve Train' + ), + ( + 1470, + 77, + 'R-ULX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'R-ULX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Reed R-ULX Roller Ford BB Valvetrain', + 'Valve Train' + ), + ( + 1471, + 41, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Domed Top Forged Aluminum', + 'Pistons' + ), + ( + 1472, + 6, + '322 4V (255 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fireball V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '322 4V (255 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead 322 4V (255 hp)', + 'Engine Assembly' + ), + ( + 1473, + 41, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford SB Domed Top Forged Aluminum', + 'Pistons' + ), + ( + 1474, + 3, + '265 2V (162 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '265 2V (162 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 265 2V (162 hp)', + 'Engine Assembly' + ), + ( + 1475, + 3, + '265 4V (180 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '265 4V (180 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 265 4V (180 hp)', + 'Engine Assembly' + ), + ( + 1476, + 3, + '265 4V (195 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '265 4V (195 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 265 4V (195 hp)', + 'Engine Assembly' + ), + ( + 1477, + 3, + '283 2V (185 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 2V (185 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 2V (185 hp)', + 'Engine Assembly' + ), + ( + 1478, + 3, + '283 4V (220 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 4V (220 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 4V (220 hp)', + 'Engine Assembly' + ), + ( + 1479, + 3, + '283 2x4V (245 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 2x4V (245 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 2x4V (245 hp)', + 'Engine Assembly' + ), + ( + 1480, + 3, + '283 2x4V (270 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'includes improved oiling and Ram''s Horn exhaust manifolds', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 2x4V (270 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 2x4V (270 hp)', + 'Engine Assembly' + ), + ( + 1481, + 3, + '283 FI (283 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 FI (283 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 FI (283 hp)', + 'Engine Assembly' + ), + ( + 1482, + 3, + '283 FI (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 FI (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 FI (290 hp)', + 'Engine Assembly' + ), + ( + 1483, + 3, + '283 FI (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 FI (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 FI (275 hp)', + 'Engine Assembly' + ), + ( + 1484, + 3, + '283 FI (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '283 FI (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 283 FI (315 hp)', + 'Engine Assembly' + ), + ( + 1485, + 3, + '265 2x4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RPO 411 package', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2x4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 265 2x4V (225 hp)', + 'Engine Assembly' + ), + ( + 1486, + 3, + '327 4V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327 4V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 327 4V (250 hp)', + 'Engine Assembly' + ), + ( + 1487, + 3, + '327 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'equipped with large valve cylinder head', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 327 4V (300 hp)', + 'Engine Assembly' + ), + ( + 1488, + 3, + '327 4V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327 4V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 327 4V (340 hp)', + 'Engine Assembly' + ), + ( + 1489, + 3, + '327 FI (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327 FI (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 327 FI (360 hp)', + 'Engine Assembly' + ), + ( + 1490, + 3, + '327 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 327 4V (365 hp)', + 'Engine Assembly' + ), + ( + 1491, + 3, + '327 FI (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '327 FI (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 327 FI (375 hp)', + 'Engine Assembly' + ), + ( + 1492, + 3, + '302 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z28 Camaro engine specially built to compete in the SCCA Trans Am Series; high RPM power', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '302 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 302 4V (290 hp)', + 'Engine Assembly' + ), + ( + 1493, + 3, + '350 4V (295 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'strengthened block to accomdate new bore and stroke; mainstay during the 70''s and 80''s', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350 4V (295 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 350 4V (295 hp)', + 'Engine Assembly' + ), + ( + 1494, + 3, + '350 4V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'strengthened block to accomdate new bore and stroke; mainstay during the 70''s and 80''s', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350 4V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 350 4V (250 hp)', + 'Engine Assembly' + ), + ( + 1495, + 3, + '350 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a remarkable 1 hp per cubic inch', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 350 4V (350 hp)', + 'Engine Assembly' + ), + ( + 1496, + 3, + '350 4V (360 hp) Z28', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Camaro version; updated Z28 302 engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + ' 4V (360 hp) Z28', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 350 4V (360 hp) Z/28', + 'Engine Assembly' + ), + ( + 1497, + 3, + '350 4V (370 hp) LT-1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Corvette version; updated Z28 302 engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '350 4V (370 hp) LT-1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 350 4V (370 hp) LT-1', + 'Engine Assembly' + ), + ( + 1498, + 3, + '400 4V (265 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'the largest small block made; siamesed cylinder walls', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (265 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 400 4V (265 hp)', + 'Engine Assembly' + ), + ( + 1499, + 6, + 'Stock (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stock (10.0) CH', + 'Cylinder Head' + ), + ( + 1500, + 3, + '348 4V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB- W 348 4V (250 hp)', + 'Engine Assembly' + ), + ( + 1501, + 3, + '348 3x2V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 348 3x2V (280 hp)', + 'Engine Assembly' + ), + ( + 1502, + 3, + '348 4V (305 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (305 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB- W 348 4V (305 hp)', + 'Engine Assembly' + ), + ( + 1503, + 3, + '348 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine; used on Police Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '348 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB- W 348 4V (315 hp)', + 'Engine Assembly' + ), + ( + 1504, + 3, + '348 3x2V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 348 3x2V (315 hp)', + 'Engine Assembly' + ), + ( + 1505, + 3, + '348 4V (320 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (320 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB- W 348 4V (320 hp)', + 'Engine Assembly' + ), + ( + 1506, + 3, + '348 3x2V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB- W 348 3x2V (335 hp)', + 'Engine Assembly' + ), + ( + 1507, + 3, + '348 4V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine RPO 590', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB- W 348 4V (340 hp)', + 'Engine Assembly' + ), + ( + 1508, + 3, + '348 3x2V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine RPO 573B', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 348 3x2V (350 hp)', + 'Engine Assembly' + ), + ( + 1509, + 3, + '409 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine RPO 580', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 409 4V (360 hp)', + 'Engine Assembly' + ), + ( + 1510, + 3, + '409 4V (380 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (380 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 409 4V (380 hp)', + 'Engine Assembly' + ), + ( + 1511, + 3, + '409 2x4V (409 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2x4V (409 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 409 2x4V (409 hp)', + 'Engine Assembly' + ), + ( + 1512, + 3, + '409 4V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2x4V (409 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 409 4V (340 hp)', + 'Engine Assembly' + ), + ( + 1513, + 3, + '409 4V (400 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (400 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 409 4V (400 hp)', + 'Engine Assembly' + ), + ( + 1514, + 3, + '409 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 409 2x4V (425 hp)', + 'Engine Assembly' + ), + ( + 1515, + 3, + '427 2x4V (430 hp) Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Thrust engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2x4V (430 hp) Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W 427 2x4V (430 hp) Z11', + 'Engine Assembly' + ), + ( + 1516, + 3, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Z11 (3.25) Piston', + 'Pistons' + ), + ( + 1517, + 22, + 'AFB 2x4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AFB 2x4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter AFB 2x4V (800 cfm) Carb', + 'Carburetor' + ), + ( + 1518, + 3, + '396 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '396 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 396 4V (325 hp)', + 'Engine Assembly' + ), + ( + 1519, + 3, + '396 4V (350 hp) L34', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine L34', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '396 4V (350 hp) L34', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 396 4V (350 hp)', + 'Engine Assembly' + ), + ( + 1520, + 3, + '396 4V (425 hp) L78', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine L78', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '396 4V (425 hp) L78', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 396 4V (425 hp)', + 'Engine Assembly' + ), + ( + 1521, + 16, + 'Quadrajet 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quadrajet 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Quadrajet 4V (600 cfm) Carb', + 'Carburetor' + ), + ( + 1522, + 3, + '396 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '396 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 396 4V (360 hp)', + 'Engine Assembly' + ), + ( + 1523, + 3, + '427 4V (390 hp) L36', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine L36', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '396 4V (390 hp) L36', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 427 4V (390 hp)', + 'Engine Assembly' + ), + ( + 1524, + 3, + '427 4V (425 hp) L72', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine L72', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 4V (425 hp) L72', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 427 4V (425 hp)', + 'Engine Assembly' + ), + ( + 1525, + 3, + '427 3x2V (400 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 4V (400 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 427 3x2V (400 hp)', + 'Engine Assembly' + ), + ( + 1526, + 3, + '427 4V (430 hp) L88', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine all-aluminum engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 4V (430 hp) L88', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 427 4V (430 hp) L88', + 'Engine Assembly' + ), + ( + 1527, + 3, + '427 3x2V (435 hp) L89', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet all-aluminum engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 3x2V (435 hp) L89', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 427 3x2V (435 hp) L89', + 'Engine Assembly' + ), + ( + 1528, + 3, + '427 3x2V (435 hp) L71', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 3x2V (435 hp) L71', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 427 3x2V (435 hp) L71', + 'Engine Assembly' + ), + ( + 1529, + 3, + '402 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet 400 L35 engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '402 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 402 4V (325 hp)', + 'Engine Assembly' + ), + ( + 1530, + 3, + '402-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '402', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB V8 402', + 'Engine Block' + ), + ( + 1531, + 3, + '454 4V (345 hp) LS4', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine; low performance model for full-size cars', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '454 4V (345 hp) LS4', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 454 4V (345 hp) LS4', + 'Engine Assembly' + ), + ( + 1532, + 3, + '454 4V (360 hp) LS5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine; Chevelle version of the medium-performance big-block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '454 4V (360 hp) LS5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 454 4V (360 hp) LS5', + 'Engine Assembly' + ), + ( + 1533, + 3, + '454 4V (390 hp) LS5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine; Corvette version of the medium-performance big-block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '454 4V (390 hp) LS5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 454 4V (390 hp) LS5', + 'Engine Assembly' + ), + ( + 1534, + 3, + '454 4V (425 hp) LS6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine; Corvette version of the high-performance big-block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '454 4V (425 hp) LS6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 454 4V (425 hp) LS6', + 'Engine Assembly' + ), + ( + 1535, + 3, + '454 4V (450 hp) LS6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine; Chevelle version of the high-performance big-block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '454 4V (450 hp) LS6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 454 4V (450 hp) LS6', + 'Engine Assembly' + ), + ( + 1536, + 3, + '454 4V (465 hp) LS7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet Engine phantom engine; never actually produced', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '454 4V (465 hp) LS7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 454 4V (465 hp) LS7', + 'Engine Assembly' + ), + ( + 1537, + 5, + '455 2V (310 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 2V (310 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 455 2V (310 hp)', + 'Engine Assembly' + ), + ( + 1538, + 1, + '18 x 6.4 Bias Belted Wheel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '18 x 6.4 Bias Belted Wheel', + 'Wheel Assemblies' + ), + ( + 1539, + 5, + '455 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 455 4V (365 hp)', + 'Engine Assembly' + ), + ( + 1540, + 5, + '455 4V (375 hp) A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 455 4V (375 hp) A', + 'Engine Assembly' + ), + ( + 1541, + 5, + '455 4V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8; 1968 Hurst', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 4V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 455 4V (390 hp)', + 'Engine Assembly' + ), + ( + 1542, + 5, + '455 4V (400 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 4V (400 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 455 4V (400 hp)', + 'Engine Assembly' + ), + ( + 1543, + 5, + '400 4V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 4V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 400 4V (345 hp)', + 'Engine Assembly' + ), + ( + 1544, + 22, + 'AFB 4V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AFB 4V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter AFB 4V (400 cfm) Carb', + 'Carburetor' + ), + ( + 1545, + 5, + '400 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 400 4V (350 hp)', + 'Engine Assembly' + ), + ( + 1546, + 5, + '400 3x2V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 3x2V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 400 3x2V (365 hp)', + 'Engine Assembly' + ), + ( + 1547, + 5, + '400 2V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 2V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 400 2V (300 hp)', + 'Engine Assembly' + ), + ( + 1548, + 5, + '400 4V W30', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rocket V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 4V W30', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB 400 4V W30', + 'Engine Assembly' + ), + ( + 1549, + 14, + 'Hilborn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hilborn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Hilborn Air Scoop 4%', + 'Air Scoop' + ), + ( + 1550, + 7, + '389 2V (215 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'baseline Strato-Streak engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 2V (215 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 2V (215 hp)', + 'Engine Assembly' + ), + ( + 1551, + 7, + '389 2V (245 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strato-Streak baseline engine for use with manual transmissions', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 2V (245 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 2V (245 hp)', + 'Engine Assembly' + ), + ( + 1552, + 7, + '389 4V (260 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strato-Streak baseline engine for use with manual transmissions', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 4V (260 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 4V (260 hp)', + 'Engine Assembly' + ), + ( + 1553, + 7, + '389 2V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 2V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 2V (280 hp)', + 'Engine Assembly' + ), + ( + 1554, + 7, + '389 4V (303 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 4V (303 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 4V (303 hp)', + 'Engine Assembly' + ), + ( + 1555, + 7, + '389 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Trophy engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 Trophy 4V (300 hp)', + 'Engine Assembly' + ), + ( + 1556, + 7, + '389 3x2V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Trophy engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 3x2V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 Trophy 3x2V (315 hp)', + 'Engine Assembly' + ), + ( + 1557, + 7, + '389 SD 4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 SD 4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 SD 4V (330 hp)', + 'Engine Assembly' + ), + ( + 1558, + 7, + '389 SD 3x2V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'super duty race engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 SD 3x2V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 SD 3x2V (345 hp)', + 'Engine Assembly' + ), + ( + 1559, + 10, + 'F70 X 14', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'F70 X 14', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cuda F70 X 14', + 'Wheel Assemblies' + ), + ( + 1560, + 10, + 'F60 X 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'F60 X 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cuda F60 X 15', + 'Wheel Assemblies' + ), + ( + 1561, + 10, + 'G60 X 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'as installed on the AAR Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'G60 X 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AAR Cuda G60 X 15', + 'Wheel Assemblies' + ), + ( + 1562, + 7, + '389 3x2V (333 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Trophy engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 3x2V (333 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 Trophy 3x2V (333 hp)', + 'Engine Assembly' + ), + ( + 1563, + 7, + '389 4V (318 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Trophy engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 4V (318 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 Trophy 4V (318 hp)', + 'Engine Assembly' + ), + ( + 1564, + 7, + '389 SD 3x2V (363 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '389 SD 3x2V (363 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 389 SD 3x2V (363 hp)', + 'Engine Assembly' + ), + ( + 1565, + 0, + 'Generic Exh Assembly', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Exh Assembly', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Exh Assembly', + 'Exhaust Assembly' + ), + ( + 1566, + 7, + '421 SD 2x4V (373 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'over the counter version of the Super Duty engine for drag-strip use', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421 SD 2x4V (373 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 421 SD 2x4V (373 hp)', + 'Engine Assembly' + ), + ( + 1567, + 7, + '421 4V (320 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421 4V (320 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 421 4V (320 hp)', + 'Engine Assembly' + ), + ( + 1568, + 7, + '421 SD 2x4V (405 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'drag-strip Super Duty engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421 SD 2x4V (405 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 421 SD 2x4V (405 hp)', + 'Engine Assembly' + ), + ( + 1569, + 7, + '421 HO 4V (353 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421 HO 4V (353 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 421 HO 4V (353 hp)', + 'Engine Assembly' + ), + ( + 1570, + 7, + '421 HO 3x2V (370 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421 HO 3x2V (370 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 421 HO 3x2V (370 hp)', + 'Engine Assembly' + ), + ( + 1571, + 7, + '421 SD 4V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'stock car Super Duty engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421 SD 4V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 421 SD 4V (390 hp)', + 'Engine Assembly' + ), + ( + 1572, + 7, + '421 SD 2x4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'drag-strip Super Duty engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '421 SD 2x4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 421 SD 2x4V (410 hp)', + 'Engine Assembly' + ), + ( + 1573, + 7, + 'Wedge (12.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (12.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Wedge (12.0) CH', + 'Cylinder Head' + ), + ( + 1574, + 7, + 'Wedge (13.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (13.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Wedge (13.0) CH', + 'Cylinder Head' + ), + ( + 1575, + 7, + '400 2V (255 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 2V (255 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 400 2V (255 hp)', + 'Engine Assembly' + ), + ( + 1576, + 7, + '400 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 400 4V (290 hp)', + 'Engine Assembly' + ), + ( + 1577, + 7, + '400 Ram Air I (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'as installed on the 1967 Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air I (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 400 Ram Air I (325 hp)', + 'Engine Assembly' + ), + ( + 1578, + 14, + 'MegaScoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'MegaScoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley MegaScoop Air Scoop 5%', + 'Air Scoop' + ), + ( + 1579, + 7, + '400 Ram Air II (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V; as installed on the 1968 Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air II (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 400 Ram Air II', + 'Engine Assembly' + ), + ( + 1580, + 7, + 'Ram Air II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air II Cylinder Head', + 'Cylinder Head' + ), + ( + 1581, + 7, + '400 Ram Air IV (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'as installed on the 1970 Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air IV (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 400 Ram Air IV (345 hp)', + 'Engine Assembly' + ), + ( + 1582, + 7, + 'Ram Air IV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air IV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air IV Piston', + 'Pistons' + ), + ( + 1583, + 7, + '455 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 455 4V (360 hp)', + 'Engine Assembly' + ), + ( + 1584, + 7, + '455 4V (370 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 4V (370 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 455 4V (370 hp)', + 'Engine Assembly' + ), + ( + 1585, + 7, + '455 HO 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 HO 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 455 HO 4V (335 hp)', + 'Engine Assembly' + ), + ( + 1586, + 7, + '455 SD 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'this is the (downrated) version that actually reached production', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '455 SD 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 455 SD 4V (290 hp)', + 'Engine Assembly' + ), + ( + 1587, + 1, + '292 4V (193 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'used on manual transmission cars', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '292 4V (193 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 292 4V (193 hp)', + 'Engine Assembly' + ), + ( + 1588, + 1, + '292 4V (198 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'used on automatic transmission cars', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '292 4V (198 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 292 4V (198 hp)', + 'Engine Assembly' + ), + ( + 1589, + 1, + '292 4V (212 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '292 4V (212 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 292 4V (212 hp)', + 'Engine Assembly' + ), + ( + 1590, + 1, + '312 4V (210 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '312 4V (210 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 312 4V (210 hp)', + 'Engine Assembly' + ), + ( + 1592, + 1, + '312 4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '312 4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 312 4V (225 hp)', + 'Engine Assembly' + ), + ( + 1593, + 1, + '312 2x4V (265 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '312 2x4V (265 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 312 2x4V (265 hp)', + 'Engine Assembly' + ), + ( + 1594, + 1, + '352 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '352 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 352 4V (300 hp)', + 'Engine Assembly' + ), + ( + 1595, + 1, + '352 HP 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '352 HP 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 352 HP 4V (360 hp)', + 'Engine Assembly' + ), + ( + 1596, + 1, + '352 2V (220 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '352 2V (220 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 352 2V (220 hp)', + 'Engine Assembly' + ), + ( + 1597, + 1, + '390 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 4V (300 hp)', + 'Engine Assembly' + ), + ( + 1598, + 1, + '390 HP 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'thicker main-bearing webs and caps; additional reinforcing ribs; oil pressure relief', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 HP 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 HP 4V (375 hp)', + 'Engine Assembly' + ), + ( + 1599, + 1, + '390 HP 3x2V (401 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 HP 3x2V (401 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 HP 3x2V (401 hp)', + 'Engine Assembly' + ), + ( + 1600, + 14, + '3x2V (680 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (680 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 3x2V (680 cfm) Carb', + 'Carburetor' + ), + ( + 1601, + 1, + '390 PI 4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Police Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 PI 4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 PI 4V (330 hp)', + 'Engine Assembly' + ), + ( + 1602, + 1, + '390 3x2V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'detuned HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 3x2V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 3x2V (340 hp)', + 'Engine Assembly' + ), + ( + 1603, + 1, + '390 2V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 2V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 2V (250 hp)', + 'Engine Assembly' + ), + ( + 1604, + 1, + '390 2V (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 2V (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 2V (275 hp)', + 'Engine Assembly' + ), + ( + 1605, + 1, + '390 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 4V (315 hp)', + 'Engine Assembly' + ), + ( + 1606, + 1, + '390 GT 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'available for GT cars, 1966-1969', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 GT 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 390 GT 4V (335 hp)', + 'Engine Assembly' + ), + ( + 1607, + 1, + '406 4V (385 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '406 4V (385 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 406 4V (385 hp)', + 'Engine Assembly' + ), + ( + 1608, + 1, + '406 3x2V (405 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '406 3x2V (405 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 406 3x2V (405 hp)', + 'Engine Assembly' + ), + ( + 1609, + 14, + '4300 2x4V (1000 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4300 2x4V (1000 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4300 2x4V (1000 cfm) Carb', + 'Carburetor' + ), + ( + 1610, + 1, + '427 LR 4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 LR 4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 427 LR 4V (410 hp)', + 'Engine Assembly' + ), + ( + 1611, + 1, + '427 MR 4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'performance engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 MR 4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 427 MR 4V (410 hp)', + 'Engine Assembly' + ), + ( + 1612, + 1, + '427 MR 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'performance engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 MR 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 427 MR 2x4V (425 hp)', + 'Engine Assembly' + ), + ( + 1613, + 1, + 'Medium Riser (11.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Medium Riser (11.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Medium Riser (11.6) Cylinder Head', + 'Cylinder Head' + ), + ( + 1614, + 1, + '427 SOHC 4V (615 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'the ultimate configuration of the FE-series big-block engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '427 SOHC 4V (615 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 427 SOHC 4V (615 hp)', + 'Engine Assembly' + ), + ( + 1615, + 1, + 'Cammer Pop-up', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cammer Pop-up Piston', + 'Pistons' + ), + ( + 1616, + 1, + '428 4V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '428 4V (345 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 428 4V (345 hp)', + 'Engine Assembly' + ), + ( + 1617, + 1, + '428 4V (360 hp) PI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Police Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '428 4V (360 hp) PI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 428 4V (360 hp) PI', + 'Engine Assembly' + ), + ( + 1618, + 1, + '428 CJ 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cobrajet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '428 CJ 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 428 CJ 4V (335 hp)', + 'Engine Assembly' + ), + ( + 1619, + 1, + '428 SCJ 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Cobrajet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '428 SCJ 4V (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 428 SCJ 4V (335 hp)', + 'Engine Assembly' + ), + ( + 1620, + 1, + '260 2V (164 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '260 2V (164 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 260 2V (164 hp)', + 'Engine Assembly' + ), + ( + 1621, + 1, + '289 HP 4V (271 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '289 HP 4V (271 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 289 HP 4V (271 hp)', + 'Engine Assembly' + ), + ( + 1622, + 1, + '289 4V (210 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '289 4V (210 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 289 4V (210 hp)', + 'Engine Assembly' + ), + ( + 1623, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Flat Top CA Piston', + 'Pistons' + ), + ( + 1624, + 1, + 'Wedge (10.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Wedge/P (10.6) CH', + 'Cylinder Head' + ), + ( + 1625, + 1, + '289 4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '289 4V (225 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 289 4V (225 hp)', + 'Engine Assembly' + ), + ( + 1626, + 1, + '302 2V (210 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '302 2V (210 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 302 2V (210 hp)', + 'Engine Assembly' + ), + ( + 1627, + 1, + '302 4V (230 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '302 4V (230 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 302 4V (230 hp)', + 'Engine Assembly' + ), + ( + 1628, + 1, + '302 Boss 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '290 hp', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 302 Boss 4V (290 hp)', + 'Engine Assembly' + ), + ( + 1629, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss FAL Piston', + 'Pistons' + ), + ( + 1630, + 1, + '351W 2V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351W 2V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 351W 2V (250 hp)', + 'Engine Assembly' + ), + ( + 1631, + 1, + '351W 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351W 4V (290 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 351W 4V (290 hp)', + 'Engine Assembly' + ), + ( + 1632, + 1, + '351W 2V (240 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351W 2V (240 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 351W 2V (240 hp)', + 'Engine Assembly' + ), + ( + 1633, + 1, + '351 2V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C; two-barrel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351 2V (250 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 351C 2V (250 hp)', + 'Engine Assembly' + ), + ( + 1634, + 1, + '351 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C; higher compression', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351 4V (300 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 351C 4V (300 hp)', + 'Engine Assembly' + ), + ( + 1635, + 1, + '351 CJ 4V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'open chamber heads with large valves', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351 CJ 4V (280 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 351C CJ 4V (280 hp)', + 'Engine Assembly' + ), + ( + 1636, + 1, + '351 Boss 4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'available only on 1971 Boss 351 Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351 Boss 4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 351C Boss 4V (330 hp)', + 'Engine Assembly' + ), + ( + 1637, + 1, + '351 HO 4V (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'renamed and modified Boss 351', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351 HO 4V (275 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 351C HO 4V (275 hp)', + 'Engine Assembly' + ), + ( + 1638, + 1, + '351 2V (177 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C; two-barrel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '351 2V (177 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 351C 2V (177 hp)', + 'Engine Assembly' + ), + ( + 1639, + 1, + '400 2V (260 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'basically a stopgap engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 2V (260 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 400C 2V (260 hp)', + 'Engine Assembly' + ), + ( + 1640, + 1, + '400 2V (172 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'basically a stopgap engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 2V (172 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 400C 2V (172 hp)', + 'Engine Assembly' + ), + ( + 1641, + 1, + '429 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'optional engine on Ford and Mercury cars from 1968-1973', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 4V (360 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429 4V (360 hp)', + 'Engine Assembly' + ), + ( + 1642, + 1, + '429 2V (320 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'optional engine on Ford and Mercury cars from 1968-1973', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 2V (320 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429 2V (320 hp)', + 'Engine Assembly' + ), + ( + 1643, + 1, + '429 SCJ 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Cobrajet; available on Ford and Mercury performance intermediates', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 SCJ 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429 SCJ 4V (375 hp)', + 'Engine Assembly' + ), + ( + 1644, + 1, + '429 CJ 4V (370 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cobrajet; available on Ford and Mercury performance intermediates', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 CJ 4V (370 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429 CJ 4V (370 hp)', + 'Engine Assembly' + ), + ( + 1645, + 1, + '429 4V (212 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'lower compression engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 4V (212 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429 4V (212 hp)', + 'Engine Assembly' + ), + ( + 1646, + 1, + '429 NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'race version of the 429 Boss engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429 NASCAR', + 'Engine Assembly' + ), + ( + 1647, + 1, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 NASCAR Head', + 'Cylinder Head' + ), + ( + 1648, + 1, + '460 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '460 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 460 4V (365 hp)', + 'Engine Assembly' + ), + ( + 1649, + 1, + '460 4V (224 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '460 4V (224 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 460 4V (224 hp)', + 'Engine Assembly' + ), + ( + 1650, + 1, + '460 PI 4V (274 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'police interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '460 PI 4V (274 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 460 PI 4V (274 hp)', + 'Engine Assembly' + ), + ( + 1651, + 8, + '383 2V (305 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '383 2V (305 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 383 2V (305 hp)', + 'Engine Assembly' + ), + ( + 1652, + 8, + '383 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '383 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 383 4V (325 hp)', + 'Engine Assembly' + ), + ( + 1653, + 8, + '383 2V (270 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '383 2V (270 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 383 2V (270 hp)', + 'Engine Assembly' + ), + ( + 1654, + 8, + '383 2x4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1960 Super D-500 Package', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2x4V (330 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 383 2x4V (330 hp)', + 'Engine Assembly' + ), + ( + 1655, + 8, + '383-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '383', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 383-V8', + 'Engine Block' + ), + ( + 1656, + 8, + '400 2V (190 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 2V (190 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 400 2V (190 hp)', + 'Engine Assembly' + ), + ( + 1657, + 8, + '400 4V (255 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 4V (255 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 400 4V (255 hp)', + 'Engine Assembly' + ), + ( + 1658, + 8, + '400 4V (205 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400 4V (205 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 400 4V (205 hp)', + 'Engine Assembly' + ), + ( + 1659, + 8, + '400-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 400-V8', + 'Engine Block' + ), + ( + 1660, + 8, + '413 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '413 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 4V (350 hp)', + 'Engine Assembly' + ), + ( + 1661, + 8, + '413 2x4V (380 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '413 2x4V (380 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 2x4V (380 hp)', + 'Engine Assembly' + ), + ( + 1662, + 8, + '413 Long Ram 2x4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Long Ram 413', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 Long Ram 2x4V (375 hp)', + 'Engine Assembly' + ), + ( + 1663, + 8, + '413 Short Ram 2x4V (400 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Short Ram 413', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 Short Ram 2x4V (400 hp)', + 'Engine Assembly' + ), + ( + 1664, + 8, + '413 Max Wedge 2x4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'officially known as the RamCharger 413 or Super Stock 413', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge 2x4V (410 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 Max Wedge 2x4V (410 hp)', + 'Engine Assembly' + ), + ( + 1665, + 8, + '413 Max Wedge 2x4V (420 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'officially known as the RamCharger 413 or Super Stock 413', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge 2x4V (420 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 Max Wedge 2x4V (420 hp)', + 'Engine Assembly' + ), + ( + 1666, + 8, + '413 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '413 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 4V (365 hp)', + 'Engine Assembly' + ), + ( + 1667, + 8, + '413 2x4V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '413 2x4V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413 2x4V (390 hp)', + 'Engine Assembly' + ), + ( + 1668, + 8, + '426 Max Wedge III 2x4V (415 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge III 2x4V (415 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 426 Max Wedge III 2x4V (415 hp)', + 'Engine Assembly' + ), + ( + 1669, + 8, + '426 Max Wedge III 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge III 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 426 Max Wedge III 2x4V (425 hp)', + 'Engine Assembly' + ), + ( + 1670, + 8, + '413-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '413', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 413-V8', + 'Engine Block' + ), + ( + 1671, + 8, + 'Max Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1672, + 8, + '426 Max Wedge 2x4V (415 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge 2x4V (415 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 426 Max Wedge 2x4V (415 hp)', + 'Engine Assembly' + ), + ( + 1673, + 8, + '426 Max Wedge 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge 2x4V (425 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 426 Max Wedge 2x4V (425 hp)', + 'Engine Assembly' + ), + ( + 1674, + 8, + '426 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'used mostly on trucks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '426 4V (365 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 426 4V (365 hp)', + 'Engine Assembly' + ), + ( + 1675, + 8, + 'Max Wedge III (12.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge III (12.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge III (12.5) Cylinder Head', + 'Cylinder Head' + ), + ( + 1676, + 8, + '440 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'non-performance engine for use on heavy passenger cars', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '440 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 440 4V (350 hp)', + 'Engine Assembly' + ), + ( + 1677, + 8, + '440 3x2V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'known as the "Six Pack" or "Six Barrel" engine; used on the ''Cuda, Road Runner, and Charger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (390 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 440 3x2V (390 hp)', + 'Engine Assembly' + ), + ( + 1678, + 87, + 'Wedge Top (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + ' Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Wedge Top Piston', + 'Pistons' + ), + ( + 1679, + 11, + '343 2V (235 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '343 2V (235 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 343 2V (235 hp)', + 'Engine Assembly' + ), + ( + 1680, + 11, + '390 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 4V (315 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 390 4V (315 hp)', + 'Engine Assembly' + ), + ( + 1681, + 11, + '390 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 4V (325 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 390 4V (325 hp)', + 'Engine Assembly' + ), + ( + 1682, + 11, + '390 4V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rebel Machine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 4V (340 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 390 4V Rebel Machine (340 hp)', + 'Engine Assembly' + ), + ( + 1683, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Flat Top CA Piston', + 'Pistons' + ), + ( + 1684, + 11, + 'Rebel Machine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rebel Machine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Rebel Machine Dual', + 'Exhaust Manifold' + ), + ( + 1685, + 13, + 'TES Exhaust Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Exhaust Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Chevrolet BB Exhaust Headers', + 'Exhaust Manifold' + ), + ( + 1687, + 0, + 'Big Tire (Mod)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stunt Tire', + 'Tires' + ), + ( + 1716, + 71, + '9 x 2 Organic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 9 x 2 Organic Disk Brake', + 'Brakes' + ), + ( + 1717, + 71, + '9 x 2 Org HT Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 9 x 2 Organic HT Disk Brakes', + 'Brakes' + ), + ( + 1718, + 71, + '9 x 2 Organic Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 9 x 2 Organic Drum Brake', + 'Brakes' + ), + ( + 1719, + 71, + '9 x 2 Org HT Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 9 x 2 Organic HT Drum Brake', + 'Brakes' + ), + ( + 1720, + 72, + '12 x 2 Org HT Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 12 x 2 Organic HT Drum Brake', + 'Brakes' + ), + ( + 1721, + 72, + '12 x 2 SM Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 12 x 2 Semi-Metallic Drum Brake', + 'Brakes' + ), + ( + 1722, + 73, + '10 x 2 Metal Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10 x 2 Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 10 x 2 Metallic Disk ABS Brake', + 'Brakes' + ), + ( + 1723, + 73, + '12 x 2 Metal Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12 x 2 ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 12 x 2 Metallic Disk ABS Brake', + 'Brakes' + ), + ( + 1724, + 73, + '14 x 2 Metal Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14 x 2 Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 14 x 2 Metallic Disk ABS Brake', + 'Brakes' + ), + ( + 1725, + 73, + '16 x 2 Metal Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '16 x 2 Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 16 x 2 Metallic Disk ABS Brake', + 'Brakes' + ), + ( + 1726, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Stock Camshaft', + 'Camshaft' + ), + ( + 1727, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock Camshaft', + 'Camshaft' + ), + ( + 1728, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock Camshaft', + 'Camshaft' + ), + ( + 1729, + 13, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer RPM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer RPM Chrysler SB HP Camshaft', + 'Camshaft' + ), + ( + 1730, + 77, + 'TorqueMaster', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TorqueMaster', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Reed TorqueMaster Chrysler SB HP Camshaft', + 'Camshaft' + ), + ( + 1731, + 77, + 'XLH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'XLH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Reed XLH Chrysler SB DP Camshaft', + 'Camshaft' + ), + ( + 1732, + 21, + 'Sat. Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Saturday Night Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Saturday Night Special DP Chrysler SB Camshaft', + 'Camshaft' + ), + ( + 1733, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax HP Chrysler SB Camshaft', + 'Camshaft' + ), + ( + 1734, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Ford SB Connecting Rod', + 'Connecting Rods' + ), + ( + 1735, + 74, + 'Maxi-Light 93', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Maxi-Light 93', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Maxi-Light 93 Ford SB Connecting Rod', + 'Connecting Rods' + ), + ( + 1736, + 30, + 'Street Racer Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Racer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Street Racer Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 1737, + 30, + 'Performance Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Performance Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 1738, + 30, + 'Street Shaker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shaker', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hooker Street Shaker Muffler', + 'Muffler' + ), + ( + 1739, + 46, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bully HD Lubrication System', + 'Lubrication System' + ), + ( + 1740, + 43, + 'HD (0.36)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD (0.36)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance HD (0.36) Shock', + 'Shocks' + ), + ( + 1742, + 71, + 'Generic Visible Parts Assembly', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Visible Parts Assembly', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Visible Parts Assembly', + 'Visibile Parts' + ), + ( + 1743, + 97, + '245/50/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 245/50/16ZR High Performance', + 'Tires' + ), + ( + 1746, + 17, + 'T56 6-Speed Automatic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T56', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Borg-Warner T56 6 Speed Automatic', + 'Transmission' + ), + ( + 1752, + 73, + '11 x 2 Metal Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '11 x 2 ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 11 x 2 Metallic Disk ABS Brake', + 'Brakes' + ), + ( + 1763, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Flat Top Piston', + 'Pistons' + ), + ( + 1764, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Flat Top Piston', + 'Pistons' + ), + ( + 1765, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Flat Top Piston', + 'Pistons' + ), + ( + 1766, + 1, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Flat Top Piston', + 'Pistons' + ), + ( + 1767, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Flat Top Piston', + 'Pistons' + ), + ( + 1768, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Flat Top Piston', + 'Pistons' + ), + ( + 1769, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Flat Top CA Piston', + 'Pistons' + ), + ( + 1770, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Flat Top CA Piston', + 'Pistons' + ), + ( + 1771, + 3, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Flat Top Forged Aluminum Piston', + 'Pistons' + ), + ( + 1772, + 6, + 'Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stage I Piston', + 'Pistons' + ), + ( + 1773, + 6, + 'Stage II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stage II', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stage II Piston', + 'Pistons' + ), + ( + 1774, + 7, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Flat Top Forged Aluminum Piston', + 'Pistons' + ), + ( + 1775, + 1, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Flat Top Forged Aluminum Piston', + 'Pistons' + ), + ( + 1776, + 8, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Flat Top Forged Aluminum Piston', + 'Pistons' + ), + ( + 1777, + 3, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Domed Top (0.75) FA Piston', + 'Pistons' + ), + ( + 1778, + 41, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Wedge Top Ford SB Piston', + 'Pistons' + ), + ( + 1779, + 41, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Wedge Top Chevrolet SB Piston', + 'Pistons' + ), + ( + 1780, + 41, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Wedge Top Chevrolet BB Piston', + 'Pistons' + ), + ( + 1781, + 41, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Wedge Top Buick BB Piston', + 'Pistons' + ), + ( + 1782, + 41, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Wedge Top Olds BB Piston', + 'Pistons' + ), + ( + 1783, + 41, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Domed Top Chevrolet SB Piston', + 'Pistons' + ), + ( + 1784, + 41, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Domed Top Chevrolet BB Piston', + 'Pistons' + ), + ( + 1785, + 41, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top Forged', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Wedge Top Chrysler BB Piston', + 'Pistons' + ), + ( + 1786, + 41, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Domed Top Chrysler BB Piston', + 'Pistons' + ), + ( + 1787, + 41, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Domed Top Buick BB Piston', + 'Pistons' + ), + ( + 1788, + 41, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Domed Top Olds BB Piston', + 'Pistons' + ), + ( + 1789, + 1, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Dual Plane Aluminum IM', + 'Intake Manifold' + ), + ( + 1790, + 1, + 'Single Plane Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Single Plane Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Single Plane Aluminum IM', + 'Intake Manifold' + ), + ( + 1791, + 63, + '4V (350 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (350 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 4V (350 cfm)', + 'Carburetor' + ), + ( + 1792, + 63, + '4V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 4V (400 cfm)', + 'Carburetor' + ), + ( + 1793, + 14, + '4100 4V (780 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4100 4V (780 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4100 4V (780 cfm)', + 'Carburetor' + ), + ( + 1794, + 3, + 'Corvette Cross-Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cross-Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Corvette Cross-Fire Fuel Injection', + 'Carburetor' + ), + ( + 1795, + 14, + '4100 4V (850 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4100 4V (850 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4100 4V (850 cfm)', + 'Carburetor' + ), + ( + 1796, + 4, + 'EFI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'EFI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac EFI', + 'Carburetor' + ), + ( + 1797, + 4, + 'Tri-Pwr 3x2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tri-Power 3x2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac Tri-Power 3x2V (600 cfm)', + 'Carburetor' + ), + ( + 1798, + 16, + 'Tri-Pwr 3x2V (650 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tri-Power 3x2V (650 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Tri-Power 3x2V (650 cfm)', + 'Carburetor' + ), + ( + 1799, + 3, + 'T- Thrust 4V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo Thrust 4V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Turbo Thrust 4V (400 cfm)', + 'Carburetor' + ), + ( + 1800, + 14, + '4300 2x4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4300 2x4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4300 2x4V (800 cfm)', + 'Carburetor' + ), + ( + 1801, + 14, + '4100 4V (735 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4100 4V (735 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4100 4V (735 cfm)', + 'Carburetor' + ), + ( + 1802, + 22, + 'AVS 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AVS 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter AVS 4V (600 cfm)', + 'Carburetor' + ), + ( + 1803, + 63, + '4100 4V (480 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4100 4V (480 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 4100 4V (480 cfm)', + 'Carburetor' + ), + ( + 1804, + 63, + '4100 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4100 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 4100 4V (600 cfm)', + 'Carburetor' + ), + ( + 1805, + 63, + '4300 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4300 4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 4300 4V (600 cfm)', + 'Carburetor' + ), + ( + 1806, + 63, + '4300D 4V (715 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4300D 4V (715 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 4300D 4V (715 cfm)', + 'Carburetor' + ), + ( + 1807, + 14, + '3x2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 3x2V (600 cfm)', + 'Carburetor' + ), + ( + 1808, + 14, + '4160 4V (1000 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4160 4V (1000 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 4160 4V (1000 cfm)', + 'Carburetor' + ), + ( + 1809, + 63, + '2100 2V (356 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2100 2V (356 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 2100 2V (356 cfm)', + 'Carburetor' + ), + ( + 1810, + 63, + '2100 2V (424 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2100 2V (424 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 2100 2V (424 cfm)', + 'Carburetor' + ), + ( + 1811, + 16, + 'Quadrajet 4V (715 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quadrajet 4V (715 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Quadrajet 4V (715 cfm)', + 'Carburetor' + ), + ( + 1812, + 14, + 'Dominator 2V (550 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 2V (550 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 2V (550 cfm)', + 'Carburetor' + ), + ( + 1813, + 14, + 'Dominator 2V (650 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 2V (650 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 2V (650 cfm)', + 'Carburetor' + ), + ( + 1814, + 14, + 'Dominator 2V (675 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 2V (675 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 2V (675 cfm)', + 'Carburetor' + ), + ( + 1815, + 14, + 'Dominator 4V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 4V (1050 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 4V (1050 cfm)', + 'Carburetor' + ), + ( + 1816, + 14, + 'Dominator 4V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 4V (1150 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 4V (1150 cfm)', + 'Carburetor' + ), + ( + 1817, + 14, + 'Dominator 2x4V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 2x4V (1150 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 2x4V (1150 cfm)', + 'Carburetor' + ), + ( + 1818, + 14, + 'Dominator 2x4V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 2x4V (1250 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 2x4V (1250 cfm)', + 'Carburetor' + ), + ( + 1819, + 14, + 'Dominator 4V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator 4V (1250 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator 4V (1250 cfm)', + 'Carburetor' + ), + ( + 1820, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stock Rod', + 'Connecting Rods' + ), + ( + 1821, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock FS Rod', + 'Connecting Rods' + ), + ( + 1822, + 4, + 'Stock BB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1823, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1824, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1825, + 8, + 'Stock Rod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1826, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1827, + 1, + 'Stock Rod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1828, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1829, + 1, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Stock CI Rod', + 'Connecting Rods' + ), + ( + 1830, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Stock FS Rod', + 'Connecting Rods' + ), + ( + 1831, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Stock Rod', + 'Connecting Rods' + ), + ( + 1832, + 11, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'used on the larger-displacement engines', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Group 19 FS Rod', + 'Connecting Rods' + ), + ( + 1833, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock FS Rod', + 'Connecting Rods' + ), + ( + 1834, + 1, + 'Le Mans Capscrew', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Le Mans Capscrew', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB LeMans Capscrew Rod', + 'Connecting Rods' + ), + ( + 1835, + 1, + 'PI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB PI Rod', + 'Connecting Rods' + ), + ( + 1836, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss Rod', + 'Connecting Rods' + ), + ( + 1837, + 1, + '820-S', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '820-S', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss 820-S Rod', + 'Connecting Rods' + ), + ( + 1838, + 1, + '820-T', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '820-T', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss 820-T Rod', + 'Connecting Rods' + ), + ( + 1839, + 8, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB HD FS Rod', + 'Connecting Rods' + ), + ( + 1840, + 74, + 'Sportsman', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Sportsman Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1841, + 74, + 'Sportsman', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman Chevrolet SB Connecting Rod', + 'Connecting Rods' + ), + ( + 1842, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1843, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Chevrolet BB Rod', + 'Connecting Rods' + ), + ( + 1844, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Buick BB Rod', + 'Connecting Rods' + ), + ( + 1845, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Olds BB Rod', + 'Connecting Rods' + ), + ( + 1846, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Pontiac Rod', + 'Connecting Rods' + ), + ( + 1847, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Ford BB Rod', + 'Connecting Rods' + ), + ( + 1848, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Steel Pontiac Rod', + 'Connecting Rods' + ), + ( + 1849, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Steel Olds BB Rod', + 'Connecting Rods' + ), + ( + 1850, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Steel Ford BB Rod', + 'Connecting Rods' + ), + ( + 1851, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Steel Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1852, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Steel Chevrolet BB Rod', + 'Connecting Rods' + ), + ( + 1853, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Steel Buick BB Rod', + 'Connecting Rods' + ), + ( + 1854, + 74, + 'Maxi-Light 93', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Maxi-Light 93', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Maxi-Light 93 Billet Steel Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1855, + 74, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Titanium Buick BB Connecting Rod', + 'Connecting Rods' + ), + ( + 1856, + 74, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Titanium Chevrolet BB Connecting Rod', + 'Connecting Rods' + ), + ( + 1857, + 74, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Titanium Chevrolet BB Connecting Rod', + 'Connecting Rods' + ), + ( + 1858, + 58, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Sportsman H-Beam Pontiac Rod', + 'Connecting Rods' + ), + ( + 1859, + 58, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Sportsman H-Beam Chrysler BB Rod', + 'Connecting Rods' + ), + ( + 1860, + 58, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Sportsman H-Beam Ford SB Rod', + 'Connecting Rods' + ), + ( + 1861, + 58, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Sportsman H-Beam Ford BB Rod', + 'Connecting Rods' + ), + ( + 1862, + 58, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Sportsman H-Beam Chevrolet BB Rod', + 'Connecting Rods' + ), + ( + 1863, + 58, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Sportsman H-Beam Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1864, + 58, + 'Pro Mod BB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Pro Mod Chevrolet BB Rod', + 'Connecting Rods' + ), + ( + 1865, + 58, + 'Pro Mod SB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Pro Mod Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1866, + 58, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Pro Billet Chevrolet BB Rod', + 'Connecting Rods' + ), + ( + 1867, + 58, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Pro Billet Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1868, + 58, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Pro Billet Ford SB Rod', + 'Connecting Rods' + ), + ( + 1869, + 58, + 'Street Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Street Race Chevrolet BB Rod', + 'Connecting Rods' + ), + ( + 1870, + 58, + 'Street Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Street Race Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1871, + 58, + 'Street Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Street Race Ford SB Rod', + 'Connecting Rods' + ), + ( + 1872, + 58, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Forged Aluminum Chevrolet BB Rod', + 'Connecting Rods' + ), + ( + 1873, + 58, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Forged Aluminum Chevrolet SB Rod', + 'Connecting Rods' + ), + ( + 1874, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB StockTI Crankshaft', + 'Crankshaft' + ), + ( + 1875, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Stock TI Crankshaft', + 'Crankshaft' + ), + ( + 1876, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1877, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB FS Crankshaft', + 'Crankshaft' + ), + ( + 1878, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 1879, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 1880, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 1881, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1882, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1883, + 1, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1884, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 1885, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile SB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1886, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock TI Crankshaft', + 'Crankshaft' + ), + ( + 1887, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1888, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile SB Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 1889, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1890, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB Stock TI Crankshaft', + 'Crankshaft' + ), + ( + 1891, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 1892, + 7, + 'Armasteel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Armasteel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Armasteel (TI) Crankshaft', + 'Crankshaft' + ), + ( + 1893, + 7, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac SD FS Crankshaft', + 'Crankshaft' + ), + ( + 1894, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Stock TI Crankshaft', + 'Crankshaft' + ), + ( + 1895, + 1, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Truck FS Crankshaft', + 'Crankshaft' + ), + ( + 1896, + 1, + '427 MR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'MR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 427 MR FS Crankshaft', + 'Crankshaft' + ), + ( + 1897, + 1, + 'Police Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Police Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Police Interceptor (TI) Crankshaft', + 'Crankshaft' + ), + ( + 1898, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss FS Crankshaft', + 'Crankshaft' + ), + ( + 1899, + 1, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HD FS Crankshaft', + 'Crankshaft' + ), + ( + 1900, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1901, + 8, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi (FS) Crankshaft', + 'Crankshaft' + ), + ( + 1902, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock CI Crankshaft', + 'Crankshaft' + ), + ( + 1903, + 74, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Enduro Chevrolet BB Crankshaft', + 'Crankshaft' + ), + ( + 1904, + 74, + 'Ultra-Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ultra-Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Ultra-Light Chevrolet BB Crankshaft', + 'Crankshaft' + ), + ( + 1905, + 74, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Enduro Ford SB Crankshaft', + 'Crankshaft' + ), + ( + 1906, + 74, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Standard Ford SB Crankshaft', + 'Crankshaft' + ), + ( + 1907, + 74, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Enduro Ford BB Crankshaft', + 'Crankshaft' + ), + ( + 1908, + 74, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Standard Ford BB Crankshaft', + 'Crankshaft' + ), + ( + 1909, + 74, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Enduro Chrysler BB Crankshaft', + 'Crankshaft' + ), + ( + 1910, + 74, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Enduro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Enduro Chrysler SB Crankshaft', + 'Crankshaft' + ), + ( + 1911, + 74, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Standard Chrysler BB Crankshaft', + 'Crankshaft' + ), + ( + 1912, + 74, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Standard Chrysler SB Crankshaft', + 'Crankshaft' + ), + ( + 1913, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1914, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1915, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock Valvetrain', + 'Valve Train' + ), + ( + 1916, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1918, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1919, + 1, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1920, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1921, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1922, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1923, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 1924, + 3, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 1925, + 3, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 1926, + 3, + 'SS Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB SS Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 1927, + 7, + 'Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air V Mechanical Lifter Valvetrain', + 'Valve Train' + ), + ( + 1928, + 1, + 'Truck Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Truck Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 1929, + 1, + 'Stock Mechanical Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Mechanical', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Stock Mechanical Lifter Valvetrain', + 'Valve Train' + ), + ( + 1930, + 1, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 1931, + 1, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cammer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Cammer Valvetrain', + 'Valve Train' + ), + ( + 1932, + 1, + 'SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB SCJ Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 1933, + 8, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Solid Lifter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 1934, + 8, + 'Stock Mechanical', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Mechanical', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock Mechanical Lifter Valvetrain', + 'Valve Train' + ), + ( + 1935, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1936, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Stock CI EM', + 'Exhaust Manifold' + ), + ( + 1937, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1938, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1939, + 8, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1940, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'light; known to have cracking problems', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Stock CI EM', + 'Exhaust Manifold' + ), + ( + 1941, + 1, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1942, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1943, + 5, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1944, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'log-type cast iron exhaust manifold with outlets toward the rear of the engine, pointing downward', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 1945, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock CI EM', + 'Exhaust Manifold' + ), + ( + 1946, + 3, + 'Ram''s Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram''s Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Ram''s Horn EM', + 'Exhaust Manifold' + ), + ( + 1947, + 6, + 'Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stage I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stage I EM', + 'Exhaust Manifold' + ), + ( + 1948, + 6, + 'Mickey Thompson Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mickey Thompson', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Mickey Thompson Headers', + 'Exhaust Manifold' + ), + ( + 1949, + 5, + 'Divider', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Divider', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Divider EM', + 'Exhaust Manifold' + ), + ( + 1950, + 7, + 'Ram Air I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air I EM', + 'Exhaust Manifold' + ), + ( + 1951, + 7, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac HP EM', + 'Exhaust Manifold' + ), + ( + 1952, + 1, + 'Stock 312', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1957 Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y 1957 Manifold', + 'Exhaust Manifold' + ), + ( + 1953, + 1, + 'CJ/SCJ HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'CJ/SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB CJ/SCJ HP EM', + 'Exhaust Manifold' + ), + ( + 1954, + 1, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 NASCAR EM', + 'Exhaust Manifold' + ), + ( + 1955, + 8, + 'Max Wedge I Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge I Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge I Headers', + 'Exhaust Manifold' + ), + ( + 1956, + 8, + '440 Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '440 Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 440 Stock EM', + 'Exhaust Manifold' + ), + ( + 1957, + 8, + 'Tri-Y Max Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tri-Y Max Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Tri-Y Max Wedge EM', + 'Exhaust Manifold' + ), + ( + 1958, + 8, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB HP EM', + 'Exhaust Manifold' + ), + ( + 1959, + 8, + 'Improved Flow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Improved Flow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Improved Flow EM', + 'Exhaust Manifold' + ), + ( + 1961, + 3, + 'Stock (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W (10.25) 1.94i/1.65e CH', + 'Cylinder Head' + ), + ( + 1962, + 1, + 'Boss 351 (11.7) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 351 (11.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Boss 351 (11.7) CH', + 'Cylinder Head' + ), + ( + 1963, + 1, + 'Domed Top (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Domed Top (.5) Piston', + 'Pistons' + ), + ( + 1965, + 6, + 'Nailhead Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Wedge (8.5)', + 'Cylinder Head' + ), + ( + 1966, + 1, + 'HP (10.5) Large Valve', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP (10.5) Large Valve', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (10.5) LV HP Wedge CH', + 'Cylinder Head' + ), + ( + 1968, + 6, + 'Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Wedge (8.5)', + 'Cylinder Head' + ), + ( + 1969, + 6, + 'Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Wedge (8.5)', + 'Cylinder Head' + ), + ( + 1970, + 6, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Wedge (9.0)', + 'Cylinder Head' + ), + ( + 1971, + 6, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Wedge (10.25)', + 'Cylinder Head' + ), + ( + 1972, + 4, + 'Stock (9.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock (9.1)', + 'Cylinder Head' + ), + ( + 1973, + 4, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock (10.5) W CH', + 'Cylinder Head' + ), + ( + 1974, + 3, + 'Wedge (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (8.0)', + 'Cylinder Head' + ), + ( + 1975, + 3, + 'Wedge (9.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (9.25)', + 'Cylinder Head' + ), + ( + 1976, + 3, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (10.5)', + 'Cylinder Head' + ), + ( + 1977, + 3, + 'Wedge (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (11.0)', + 'Cylinder Head' + ), + ( + 1978, + 3, + 'Wedge (11.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (11.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (11.25)', + 'Cylinder Head' + ), + ( + 1979, + 3, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (9.0)', + 'Cylinder Head' + ), + ( + 1980, + 3, + 'Canted (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Canted (10.25)', + 'Cylinder Head' + ), + ( + 1981, + 3, + ' ZL1 (12.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'ZL1 (12.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Canted ZL1 (12.0)', + 'Cylinder Head' + ), + ( + 1982, + 3, + 'LS6 (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LS6 (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Canted LS6 (9.0)', + 'Cylinder Head' + ), + ( + 1983, + 5, + 'Stock (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB (10.25) Stock CH', + 'Cylinder Head' + ), + ( + 1984, + 5, + 'W-31 (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W-31 (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB (10.5) W-31 CH', + 'Cylinder Head' + ), + ( + 1985, + 5, + 'Stock (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB (10.5) Stock CH', + 'Cylinder Head' + ), + ( + 1986, + 5, + 'Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB (9.0) Stock CH', + 'Cylinder Head' + ), + ( + 1987, + 5, + '(10.25) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB (10.25) Stock CH', + 'Cylinder Head' + ), + ( + 1988, + 5, + 'W-30 (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W-30 (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB (10.5) W-30 CH', + 'Cylinder Head' + ), + ( + 1989, + 7, + 'Wedge (8.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (8.6) Stock W CH', + 'Cylinder Head' + ), + ( + 1990, + 7, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.0) Stock W CH', + 'Cylinder Head' + ), + ( + 1991, + 7, + 'SD Wedge (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD Wedge (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (11.0) SD W CH', + 'Cylinder Head' + ), + ( + 1992, + 7, + 'HO Wedge (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HO Wedge (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.75) HO W CH', + 'Cylinder Head' + ), + ( + 1993, + 7, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.5) W CH', + 'Cylinder Head' + ), + ( + 1994, + 7, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.25) W CH', + 'Cylinder Head' + ), + ( + 1995, + 7, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.0) Stock W CH', + 'Cylinder Head' + ), + ( + 1996, + 7, + 'SD Wedge (8.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD Wedge (8.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (8.4) SD W CH', + 'Cylinder Head' + ), + ( + 1997, + 1, + 'Stock (7.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (7.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (7.6) Stock CH', + 'Cylinder Head' + ), + ( + 1998, + 1, + 'Stock (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (8.5) Stock CH', + 'Cylinder Head' + ), + ( + 1999, + 1, + 'Stock (8.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (8.1) Stock CH', + 'Cylinder Head' + ), + ( + 2000, + 1, + 'Stock (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (8.0) Stock CH', + 'Cylinder Head' + ), + ( + 2001, + 1, + 'Stock (8.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (8.4) Stock CH', + 'Cylinder Head' + ), + ( + 2002, + 1, + 'Stock (8.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (8.6) Stock CH', + 'Cylinder Head' + ), + ( + 2003, + 1, + 'Stock (9.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (9.7) Stock CH', + 'Cylinder Head' + ), + ( + 2004, + 1, + 'Stock (8.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (8.3) Stock CH', + 'Cylinder Head' + ), + ( + 2005, + 1, + 'Stock (8.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (8.8) Stock CH', + 'Cylinder Head' + ), + ( + 2006, + 1, + 'Stock (9.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y (9.6) Stock CH', + 'Cylinder Head' + ), + ( + 2007, + 1, + 'Wedge (12.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (12.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB (12.1) Wedge CH', + 'Cylinder Head' + ), + ( + 2008, + 1, + 'Wedge (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB (11.0) Wedge CH', + 'Cylinder Head' + ), + ( + 2009, + 1, + 'Wedge (10.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB (10.1) Wedge CH', + 'Cylinder Head' + ), + ( + 2010, + 1, + 'Wedge (9.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB (9.4) Wedge CH', + 'Cylinder Head' + ), + ( + 2011, + 1, + 'Canted (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland (9.5) CH', + 'Cylinder Head' + ), + ( + 2012, + 1, + 'HP Canted (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP Canted (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland (11.0) HP CH', + 'Cylinder Head' + ), + ( + 2013, + 1, + '(9.0) Canted CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland (9.0) CH', + 'Cylinder Head' + ), + ( + 2014, + 1, + 'Canted (8.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (8.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland (8.6) CH', + 'Cylinder Head' + ), + ( + 2016, + 1, + 'Canted (10.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Canted (10.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 (10.2) Canted CH', + 'Cylinder Head' + ), + ( + 2017, + 8, + 'Wedge (10.0) Lrg Port', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LP Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB (10.0) Large Port W CH', + 'Cylinder Head' + ), + ( + 2018, + 8, + 'Wedge (9.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB (9.6) W CH', + 'Cylinder Head' + ), + ( + 2019, + 8, + 'Wedge (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB (9.2) W CH', + 'Cylinder Head' + ), + ( + 2020, + 8, + 'Wedge (8.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB (8.8) Stock W CH', + 'Cylinder Head' + ), + ( + 2021, + 8, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB (10.5) Stock W CH', + 'Cylinder Head' + ), + ( + 2022, + 8, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB (9.0) Stock W CH', + 'Cylinder Head' + ), + ( + 2023, + 8, + 'Wedge (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB (9.2) Stock W CH', + 'Cylinder Head' + ), + ( + 2024, + 1, + 'LR Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB LR Domed (0.4) Piston', + 'Pistons' + ), + ( + 2025, + 1, + 'Recessed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Recessed (-0.1) Piston', + 'Pistons' + ), + ( + 2026, + 8, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Wedge (0.1) Piston', + 'Pistons' + ), + ( + 2027, + 0, + 'Generic Suspension', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Suspension', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Suspension', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Suspension', + 'Chassis Assembly' + ), + ( + 2028, + 0, + 'Generic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Body', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Body', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Body', + 'Body Assembly' + ), + ( + 2029, + 0, + 'Generic Driveline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Driveline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Driveline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Driveline', + 'Driveline Assembly' + ), + ( + 2030, + 0, + 'Generic Brake Set', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Brake Set', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Brake Set', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Brake Set', + 'Brake Assembly' + ), + ( + 2031, + 0, + 'Generic Wheels', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Wheels', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Wheels', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Wheels', + 'Wheel Assembly' + ), + ( + 2032, + 0, + 'Generic Engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic Engine', + 'Engine Assembly' + ), + ( + 2033, + 22, + '2V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter 2V (400 cfm) Carb', + 'Carburetor' + ), + ( + 2034, + 8, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB (10.0) Wedge CH', + 'Cylinder Head' + ), + ( + 2035, + 8, + '440 Magnum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '440 Magnum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB 440 Magnum IM', + 'Intake Manifold' + ), + ( + 2036, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2037, + 3, + 'Lrg Valve Wedg (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LV Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Large Valve Wedge (10.5) CH', + 'Cylinder Head' + ), + ( + 2038, + 22, + 'AFB 4V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AFB 4V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter AFB 4V (500 cfm) Carb', + 'Carburetor' + ), + ( + 2039, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2040, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Flat Top Forged Aluminum Piston', + 'Pistons' + ), + ( + 2041, + 7, + 'Ram Air Induction', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air (3%) Induction System', + 'Air Scoop' + ), + ( + 2042, + 3, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (10.25) CH', + 'Cylinder Head' + ), + ( + 2043, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 2044, + 16, + 'Monojet 2V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monojet 2V (400 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Monojet 2V (400 cfm) Carb', + 'Carburetor' + ), + ( + 2045, + 16, + 'Q-Jet 2x4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quadrajet 2x4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Quadrajet 2x4V (600 cfm) Carb', + 'Carburetor' + ), + ( + 2046, + 3, + '265 4V (205 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB 265 4V (205 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 265 4V (205 hp)', + 'Engine Assembly' + ), + ( + 2047, + 16, + 'Quadrajet 4V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quadrajet 4V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Quadrajet 4V (500 cfm) Carb', + 'Carburetor' + ), + ( + 2048, + 3, + 'Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Wedge (8.5) CH', + 'Cylinder Head' + ), + ( + 2049, + 16, + 'Ramjet F.I. RPO 579D', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ramjet RPO 579D', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Ramjet Fuel Injector RPO 579D', + 'Carburetor' + ), + ( + 2050, + 3, + 'Lrg Valve Wdge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Large Valve Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Large Valve Wedge (10.5) CH', + 'Cylinder Head' + ), + ( + 2051, + 3, + 'Lrg Valve Wdge (11.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Large Valve Wedge (11.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Large Valve Wedge (11.25) CH', + 'Cylinder Head' + ), + ( + 2052, + 3, + 'Z28 Recessed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z28', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Z28 Recessed Top Piston', + 'Pistons' + ), + ( + 2053, + 3, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB CI/HP EM', + 'Exhaust Manifold' + ), + ( + 2054, + 3, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB 400 FS Rod', + 'Connecting Rods' + ), + ( + 2055, + 3, + '(10.25) HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W (10.25) 2.19i/1.73e CH', + 'Cylinder Head' + ), + ( + 2056, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Recessed (-0.75) CA Piston', + 'Pistons' + ), + ( + 2057, + 3, + 'Domed Top HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Domed Top (1.0) FA HP Piston', + 'Pistons' + ), + ( + 2058, + 3, + 'HD FS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W HD FS Rod', + 'Connecting Rods' + ), + ( + 2059, + 3, + 'Recessed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Recessed (-0.25) FA Piston', + 'Pistons' + ), + ( + 2060, + 3, + 'L36 Canted (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'L36 Canted (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB L36 Canted/Pocket (10.25) CH', + 'Cylinder Head' + ), + ( + 2061, + 3, + '402 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet 400 L34 engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB 402 4V (350 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 402 4V (350 hp)', + 'Engine Assembly' + ), + ( + 2062, + 3, + '402 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Turbo-Jet 400 L78 engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '402 4V (375 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB 402 4V (375 hp)', + 'Engine Assembly' + ), + ( + 2063, + 3, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Wedge Top (0.25) FA Piston', + 'Pistons' + ), + ( + 2064, + 16, + 'Monojet 2V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monojet 2V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Monojet 2V (500 cfm) Carb', + 'Carburetor' + ), + ( + 2065, + 5, + 'HP Hurst', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP Hurst', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB HP Camshaft', + 'Camshaft' + ), + ( + 2066, + 5, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Wedge Top (0.25) FA Piston', + 'Pistons' + ), + ( + 2067, + 5, + 'W30 Forced Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W30 Forced Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W30 Forced Air Induction System', + 'Air Scoop' + ), + ( + 2068, + 7, + 'm/t Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac m/t Stock (HP) Camshaft', + 'Camshaft' + ), + ( + 2069, + 16, + 'Monojet 2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monojet 2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Monojet 2V (600 cfm)', + 'Carburetor' + ), + ( + 2070, + 7, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.25) Stock W CH', + 'Cylinder Head' + ), + ( + 2071, + 16, + 'Quadrajet 4V (660 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quadrajet 4V (660 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester Quadrajet 4V (660 cfm)', + 'Carburetor' + ), + ( + 2072, + 7, + 'Trophy (HP)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Trophy HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Trophy (HP) Camshaft', + 'Camshaft' + ), + ( + 2073, + 7, + 'Trophy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Trophy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Trophy HP CI EM', + 'Exhaust Manifold' + ), + ( + 2074, + 7, + 'SD Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac SD Aluminum IM', + 'Intake Manifold' + ), + ( + 2075, + 8, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi Flat Top FA Piston', + 'Pistons' + ), + ( + 2076, + 7, + 'Wedge SD (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge SD (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac SD (10.75) W/P CH', + 'Cylinder Head' + ), + ( + 2077, + 11, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Group 19 Mechanical Lifter Valvetrain', + 'Valve Train' + ), + ( + 2078, + 7, + 'Wedge (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (10.75) W CH', + 'Cylinder Head' + ), + ( + 2079, + 7, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac SD Mechanical Lifter Valvetrain', + 'Valve Train' + ), + ( + 2080, + 7, + 'SD Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac SD Aluminum Single Plane IM', + 'Intake Manifold' + ), + ( + 2081, + 7, + 'SD Large Valve (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD Large Valve (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (11.0) SD 2.02i/1.76e W CH', + 'Cylinder Head' + ), + ( + 2082, + 7, + '400 Ram Air III (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'as installed on the 1969 Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air III (335 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 400 Ram Air III (335 hp)', + 'Engine Assembly' + ), + ( + 2083, + 7, + '400 Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'planned for installation on the 1970 Firebird, but never actually made it into production', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB 400 Ram Air V', + 'Engine Assembly' + ), + ( + 2084, + 7, + 'Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ram Air V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Ram Air V Cylinder Head', + 'Cylinder Head' + ), + ( + 2085, + 63, + '2x4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2x4V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 2x4V (600 cfm) Carb', + 'Carburetor' + ), + ( + 2086, + 1, + 'Ford (10.2) Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB (10.2) Wedge CH', + 'Cylinder Head' + ), + ( + 2087, + 63, + '2100 2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2100 2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 2100 2V (600 cfm) Carb', + 'Carburetor' + ), + ( + 2088, + 1, + 'Wedge (8.9)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB (8.9) Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB (8.9) Wedge CH', + 'Cylinder Head' + ), + ( + 2089, + 1, + '352 4V (235 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '352 4V (235 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB 352 2V (235 hp)', + 'Engine Assembly' + ), + ( + 2090, + 1, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HP CI EM', + 'Exhaust Manifold' + ), + ( + 2091, + 1, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB HD CI Crankshaft', + 'Crankshaft' + ), + ( + 2092, + 63, + '3x2V (860 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (860 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Autolite 3x2V (860 cfm) Carb', + 'Carburetor' + ), + ( + 2093, + 14, + '3x2V (840 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V (840 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley 3x2V (840 cfm) Carb', + 'Carburetor' + ), + ( + 2094, + 1, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Wedge (10.5) CH', + 'Cylinder Head' + ), + ( + 2095, + 1, + 'CJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'CJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB CJ TI Crankshaft', + 'Crankshaft' + ), + ( + 2096, + 1, + 'Wedge (8.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (8.7) Wedge CH', + 'Cylinder Head' + ), + ( + 2097, + 1, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'additional counterweights for better high rpm balancing', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB HP TI Crankshaft', + 'Crankshaft' + ), + ( + 2098, + 1, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (10.5) Wedge CH', + 'Cylinder Head' + ), + ( + 2099, + 1, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB HP Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 2100, + 1, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB HP Camshaft', + 'Camshaft' + ), + ( + 2101, + 1, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (9.0) 1.67i/1.45e Wedge CH', + 'Cylinder Head' + ), + ( + 2102, + 1, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (10.0) Wedge CH', + 'Cylinder Head' + ), + ( + 2103, + 1, + 'Boss 302 (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss 302 (10.5) 2.23/1.72 Canted CH', + 'Cylinder Head' + ), + ( + 2104, + 1, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'known for weak side-skirts, which caused cracking and even breaking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss 302 FA Piston', + 'Pistons' + ), + ( + 2105, + 1, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss 302 EM', + 'Exhaust Manifold' + ), + ( + 2106, + 1, + 'Wedge (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (9.5) Wedge CH', + 'Cylinder Head' + ), + ( + 2107, + 1, + 'Wedge (10.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.7)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (10.7) Wedge CH', + 'Cylinder Head' + ), + ( + 2108, + 22, + '2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter 2V (600 cfm) Carb', + 'Carburetor' + ), + ( + 2109, + 22, + 'AVS 4V (700 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AVS 4V (700 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter AVS 4V (700 cfm) Carb', + 'Carburetor' + ), + ( + 2110, + 8, + 'Wedge (8.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB (8.2) W CH', + 'Cylinder Head' + ), + ( + 2111, + 22, + 'AVS 4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AVS 4V (800 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Carter AVS 4V (800 cfm) Carb', + 'Carburetor' + ), + ( + 2112, + 8, + 'Max Wedge III (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Max Wedge III (11.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Max Wedge III (11.0) CH', + 'Cylinder Head' + ), + ( + 2113, + 8, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB (10.5) Wedge CH', + 'Cylinder Head' + ), + ( + 2114, + 0, + 'Horn La Cooca', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Specialty la coor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sp. Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Specialty la coor', + 'Horn' + ), + ( + 2149, + 0, + 'Horn Reville', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Spec. Reville', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sp Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Reville', + 'Horn' + ), + ( + 2150, + 0, + 'Horn Dixie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Spec. Dixie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sp Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Spec. Dixie', + 'Horn' + ), + ( + 2151, + 0, + 'Horn Charge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Spec. Charge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sp Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Horn Spec. Charge', + 'Horn' + ), + ( + 2152, + 61, + '3.07 Locking', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'locking;normal driving applications', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3.07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dana Differential (3.07) L', + 'Rear End' + ), + ( + 2153, + 78, + 'Cobra 427 S/C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'm/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shelby Cobra', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shelby 66 Cobra 427 S/C', + 'Vehicle' + ), + ( + 2154, + 78, + '65 Shelby Cobra Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '65 Shelby Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '65 Shelby Hood', + 'Hood' + ), + ( + 2156, + 78, + '65 Shelby Cobra Bumpers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '65 Shelby Bumpers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '65 Shelby Bumpers', + 'Bumpers' + ), + ( + 2157, + 0, + 'Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'light window tint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Light Window Tinting', + 'Window Tinting' + ), + ( + 2158, + 0, + 'Dark', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'dark window tint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dark', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dark Window Tinting', + 'Window Tinting' + ), + ( + 2159, + 0, + 'Very Dark', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a very dark window tint, so dark as to be nearly opaque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Very Dark', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Very Dark Window Tinting', + 'Window Tinting' + ), + ( + 2160, + 0, + 'Horn Charge Short', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Spec Horn Charge Short', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sp Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Spec Horn Charge Short', + 'Horn' + ), + ( + 2161, + 0, + 'Hardtop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hardtop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hardtop', + 'Top Style' + ), + ( + 2162, + 0, + 'Chopped Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chopped Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chopped Top', + 'Top Style' + ), + ( + 2163, + 0, + 'Convertible Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Convertible Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Convertible Top', + 'Top Style' + ), + ( + 2164, + 0, + 'Vinyl Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vinyl Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vinyl Top', + 'Top Style' + ), + ( + 2179, + 1, + 'Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 70 Mustang', + 'Vehicle' + ), + ( + 2180, + 1, + 'Torino Cobra', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torino Cobra', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 69 Torino GT Cobra', + 'Vehicle' + ), + ( + 2181, + 1, + 'Mach 1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mach 1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 70 Mustang Mach 1', + 'Vehicle' + ), + ( + 2182, + 10, + 'Hemi Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 70 Hemi Cuda', + 'Vehicle' + ), + ( + 2183, + 10, + '440 Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '440 Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 70 440 Cuda', + 'Vehicle' + ), + ( + 2184, + 10, + 'AAR Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AAR Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 70 AAR Cuda', + 'Vehicle' + ), + ( + 2185, + 10, + '340 Duster', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '340 Duster', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Plymouth 71 340 Duster', + 'Vehicle' + ), + ( + 2186, + 3, + 'Impala SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Impala SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 64 Impala SS', + 'Vehicle' + ), + ( + 2187, + 3, + 'Chevelle SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevelle SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 67 Chevelle SS', + 'Vehicle' + ), + ( + 2188, + 3, + 'Camaro RS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Camaro RS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 67 Camaro RS', + 'Vehicle' + ), + ( + 2189, + 3, + 'Camaro Z-28', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Camaro Z-28', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 67 Camaro Z-28', + 'Vehicle' + ), + ( + 2190, + 3, + 'Chevelle SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevelle SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 Chevelle SS', + 'Vehicle' + ), + ( + 2191, + 3, + 'El Camino SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'El Camino SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 El Camino SS', + 'Vehicle' + ), + ( + 2192, + 3, + 'Nova SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nova SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 70 Nova SS', + 'Vehicle' + ), + ( + 2193, + 5, + '4-4-2 W-30', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '442 W-30', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile 69 442 W-30', + 'Vehicle' + ), + ( + 2194, + 5, + 'Hurst 4-4-2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hurst 4-4-2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile 69 Hurst 442', + 'Vehicle' + ), + ( + 2195, + 1, + '4.10 Banjo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'banjo carrier; used on very early Fords', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '(4.10) Banjo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford (4.10) Banjo Differential LD', + 'Rear End' + ), + ( + 2196, + 7, + 'Firebird Formula', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firebird Formula', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 73 Firebird Formula', + 'Vehicle' + ), + ( + 2197, + 7, + 'Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'a/t', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firebird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac 73 Firebird', + 'Vehicle' + ), + ( + 2198, + 1, + '3.90 Banjo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'banjo carrier; used on very early Fords', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '(3.90) Banjo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford (3.90) Banjo Differential LD', + 'Rear End' + ), + ( + 2199, + 1, + '3.31 Banjo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'banjo carrier; used on very early Fords', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '(3.31) Banjo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford (3.31) Banjo Differential LD', + 'Rear End' + ), + ( + 2200, + 43, + 'ND (0.3) 12.5"', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'high travel limit shock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'ND (0.3) 12.5"', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Formance ND (0.3) Shock', + 'Shocks' + ), + ( + 2201, + 69, + '100 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 100 lb/in Coil Springs', + 'Springs' + ), + ( + 2202, + 69, + '110 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 110 lb/in Coil Springs', + 'Springs' + ), + ( + 2203, + 69, + '150 lb/in Leaf', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 150 lb/in leaf spring', + 'Springs' + ), + ( + 2204, + 69, + '160 lb/in Leaf', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 160 lb/in leaf spring', + 'Springs' + ), + ( + 2205, + 69, + '170 lb/in Leaf', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 170 lb/in leaf spring', + 'Springs' + ), + ( + 2206, + 69, + '200 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 200 lb/in coil-over spring', + 'Springs' + ), + ( + 2207, + 69, + '190 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 190 lb/in coil-over spring', + 'Springs' + ), + ( + 2208, + 69, + '180 lb/in Coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 180 lb/in coil-over spring', + 'Springs' + ), + ( + 2209, + 69, + '170 lb/in coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 170 lb/in coil-over spring', + 'Spring' + ), + ( + 2210, + 69, + '160 lb/in coil-over', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 160 lb/in coil-over spring', + 'Spring' + ), + ( + 2211, + 69, + '140 lb/in leaf spring', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 140 lb/in leaf spring', + 'Spring' + ), + ( + 2212, + 69, + '130 lb/in leaf spring', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 130 lb/in leaf spring', + 'Spring' + ), + ( + 2213, + 69, + '120 lb/in leaf spring', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 120 lb/in leaf spring', + 'Spring' + ), + ( + 2214, + 69, + '110 lb/in leaf spring', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Gifford 110 lb/in leaf spring', + 'Spring' + ), + ( + 2215, + 5, + '4-4-2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-4-2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4-4-2', + 'Vehicle' + ), + ( + 2216, + 3, + '70 Chevelle SS Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1970 Chevelle SS Hood', + 'Hood' + ), + ( + 2217, + 3, + 'Camaro SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Camaro SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet 1967 Camaro SS', + 'Vehicle' + ), + ( + 2218, + 6, + 'Stage I (10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stage I (10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stage I (10) CH', + 'Cylinder Head' + ), + ( + 2219, + 65, + '47 Cadillac', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-00', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-00', + 'Wheel Rims' + ), + ( + 2220, + 65, + '49 Mercury', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-01', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-01', + 'Wheel Rims' + ), + ( + 2221, + 65, + '53 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-02', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-02', + 'Wheel Rims' + ), + ( + 2222, + 65, + '55 Buick', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-03', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-03', + 'Wheel Rims' + ), + ( + 2223, + 65, + 'Red Center Spinner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-04', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-04', + 'Wheel Rims' + ), + ( + 2224, + 65, + '57 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-05', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-05', + 'Wheel Rims' + ), + ( + 2225, + 65, + 'Twist Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-06', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-06', + 'Wheel Rims' + ), + ( + 2226, + 65, + '57 Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-07', + 'Wheel Rims' + ), + ( + 2227, + 65, + '58 Chevy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-08', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-08', + 'Wheel Rims' + ), + ( + 2228, + 65, + 'Sun Burst', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-09', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-09', + 'Wheel Rims' + ), + ( + 2229, + 65, + 'Spoke Spinner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-10', + 'Wheel Rims' + ), + ( + 2230, + 65, + '64 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-11', + 'Wheel Rims' + ), + ( + 2231, + 65, + '64 Chevy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-12', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-12', + 'Wheel Rims' + ), + ( + 2232, + 65, + 'Hypnotic Star 6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-13', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-13', + 'Wheel Rims' + ), + ( + 2233, + 65, + 'Rippled Orb', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-14', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-14', + 'Wheel Rims' + ), + ( + 2234, + 65, + '59 Dodge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-15', + 'Wheel Rims' + ), + ( + 2235, + 65, + '57 Chrysler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-16', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-16', + 'Wheel Rims' + ), + ( + 2236, + 65, + '57 Chevy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-17', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-17', + 'Wheel Rims' + ), + ( + 2237, + 65, + '57 Nomad', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-18', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-18', + 'Wheel Rims' + ), + ( + 2238, + 65, + 'Twist Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-19', + 'Wheel Rims' + ), + ( + 2239, + 65, + 'Sun Burst', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-20', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-20', + 'Wheel Rims' + ), + ( + 2240, + 65, + '59 Plymouth', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-21', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-21', + 'Wheel Rims' + ), + ( + 2241, + 65, + '59 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-22', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-22', + 'Wheel Rims' + ), + ( + 2242, + 65, + 'Ford Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-23', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-23', + 'Wheel Rims' + ), + ( + 2243, + 65, + '59 Pontiac', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-24', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-24', + 'Wheel Rims' + ), + ( + 2244, + 65, + '60 Chrysler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-25', + 'Wheel Rims' + ), + ( + 2245, + 65, + '60 Edsel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-26', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-26', + 'Wheel Rims' + ), + ( + 2246, + 65, + '60 Chevy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-27', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-27', + 'Wheel Rims' + ), + ( + 2247, + 65, + '61 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-28', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-28', + 'Wheel Rims' + ), + ( + 2248, + 65, + '61 Chevy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-29', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-29', + 'Wheel Rims' + ), + ( + 2249, + 65, + '62 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-30', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-30', + 'Wheel Rims' + ), + ( + 2250, + 65, + '63 Buick', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-31', + 'Wheel Rims' + ), + ( + 2251, + 65, + '63 Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-32', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-32', + 'Wheel Rims' + ), + ( + 2252, + 65, + 'Spoke Tower', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-33', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-33', + 'Wheel Rims' + ), + ( + 2253, + 65, + '64 Plymouth', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-34', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-34', + 'Wheel Rims' + ), + ( + 2254, + 65, + '64 Dodge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-35', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-35', + 'Wheel Rims' + ), + ( + 2255, + 65, + 'Super Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-36', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-36', + 'Wheel Rims' + ), + ( + 2256, + 65, + '65 Chrysler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-37', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-37', + 'Wheel Rims' + ), + ( + 2257, + 65, + '65 Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-38', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-38', + 'Wheel Rims' + ), + ( + 2258, + 65, + '65 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-39', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-39', + 'Wheel Rims' + ), + ( + 2259, + 65, + '65 Olds', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-40', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-40', + 'Wheel Rims' + ), + ( + 2260, + 65, + '65 Corvair', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-41', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-41', + 'Wheel Rims' + ), + ( + 2261, + 65, + 'Fake Spinner Covered', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-42', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-42', + 'Wheel Rims' + ), + ( + 2262, + 65, + '55 Chrysler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-43', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-43', + 'Wheel Rims' + ), + ( + 2263, + 65, + 'Knock Off Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-44', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-44', + 'Wheel Rims' + ), + ( + 2264, + 65, + '67 Shelby', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-45', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-45', + 'Wheel Rims' + ), + ( + 2265, + 65, + '66 Chevy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-46', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-46', + 'Wheel Rims' + ), + ( + 2266, + 65, + '67 Chevy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-47', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-47', + 'Wheel Rims' + ), + ( + 2267, + 65, + 'Blue Dot Spoke Spinner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-48', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-48', + 'Wheel Rims' + ), + ( + 2268, + 65, + 'Disc Cover', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-49', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-49', + 'Wheel Rims' + ), + ( + 2269, + 65, + '40 Spoke', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-50', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-50', + 'Wheel Rims' + ), + ( + 2270, + 65, + 'Blue Dot Spoke Spinner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-51', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-51', + 'Wheel Rims' + ), + ( + 2271, + 65, + 'Accordian Full Cover', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-52', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-52', + 'Wheel Rims' + ), + ( + 2272, + 65, + 'Full Moon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-53', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-53', + 'Wheel Rims' + ), + ( + 2273, + 65, + '55 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-54', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-54', + 'Wheel Rims' + ), + ( + 2274, + 65, + 'Rallye Slot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-55', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-55', + 'Wheel Rims' + ), + ( + 2275, + 65, + 'Classic Cadillac', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-56', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-56', + 'Wheel Rims' + ), + ( + 2276, + 65, + 'Compass Full Cover', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-57', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-57', + 'Wheel Rims' + ), + ( + 2277, + 65, + '57 Classic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-58', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HS-58', + 'Wheel Rims' + ), + ( + 2278, + 45, + 'Slot 11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-00', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-00', + 'Wheel Rims' + ), + ( + 2279, + 45, + 'Double Layer Spoke', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-01', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-01', + 'Wheel Rims' + ), + ( + 2280, + 45, + 'Twistar 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-02', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-02', + 'Wheel Rims' + ), + ( + 2281, + 45, + 'Super Slot 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-03', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-03', + 'Wheel Rims' + ), + ( + 2282, + 45, + 'Teardrop Slot 8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-04', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-04', + 'Wheel Rims' + ), + ( + 2283, + 45, + 'Twistar 7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-05', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-05', + 'Wheel Rims' + ), + ( + 2284, + 45, + 'Slot 9', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-06', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-06', + 'Wheel Rims' + ), + ( + 2285, + 45, + 'Fan Slot 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-07', + 'Wheel Rims' + ), + ( + 2286, + 45, + 'Mild Twist Slot 7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-08', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-08', + 'Wheel Rims' + ), + ( + 2287, + 45, + 'Twistar 11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-09', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-09', + 'Wheel Rims' + ), + ( + 2288, + 45, + 'Cheese Grater 8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-10', + 'Wheel Rims' + ), + ( + 2289, + 45, + 'Bull Star 10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-11', + 'Wheel Rims' + ), + ( + 2290, + 45, + 'Chrome Twistar 7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-12', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-12', + 'Wheel Rims' + ), + ( + 2291, + 45, + 'Twisted Fan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-13', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-13', + 'Wheel Rims' + ), + ( + 2292, + 45, + 'Twistar 9', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-14', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-14', + 'Wheel Rims' + ), + ( + 2293, + 45, + 'Power Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-15', + 'Wheel Rims' + ), + ( + 2294, + 45, + 'Twisted Super Grater', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-16', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-16', + 'Wheel Rims' + ), + ( + 2295, + 45, + 'Twisted Split Star 7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-17', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-17', + 'Wheel Rims' + ), + ( + 2296, + 45, + 'Twisted Split Star 7 Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-18', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-18', + 'Wheel Rims' + ), + ( + 2297, + 45, + 'Mega Grater', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-19', + 'Wheel Rims' + ), + ( + 2298, + 45, + 'Classy Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-20', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-20', + 'Wheel Rims' + ), + ( + 2299, + 45, + 'Fan Grater', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-21', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-21', + 'Wheel Rims' + ), + ( + 2300, + 45, + 'Super Star 10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-22', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-22', + 'Wheel Rims' + ), + ( + 2301, + 45, + 'Fat Star 6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-23', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-23', + 'Wheel Rims' + ), + ( + 2302, + 45, + 'Split Star 6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-24', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-24', + 'Wheel Rims' + ), + ( + 2303, + 45, + 'Split Twist 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-25', + 'Wheel Rims' + ), + ( + 2304, + 45, + 'Split Star 7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-26', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-26', + 'Wheel Rims' + ), + ( + 2305, + 45, + 'Mega Slot Twist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-27', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HA-27', + 'Wheel Rims' + ), + ( + 2308, + 65, + '63 Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-00', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-00', + 'Wheel Rims' + ), + ( + 2309, + 65, + 'Rallye Super Slot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-01', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-01', + 'Wheel Rims' + ), + ( + 2310, + 65, + 'Classic 5 Slot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-02', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-02', + 'Wheel Rims' + ), + ( + 2311, + 65, + 'Pin Star', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-03', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-03', + 'Wheel Rims' + ), + ( + 2312, + 65, + 'Near Magnum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-04', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-04', + 'Wheel Rims' + ), + ( + 2313, + 65, + 'Rally Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-05', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-05', + 'Wheel Rims' + ), + ( + 2314, + 65, + 'Classic Sport', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-06', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-06', + 'Wheel Rims' + ), + ( + 2315, + 65, + 'Gold 4-4-2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-07', + 'Wheel Rims' + ), + ( + 2316, + 65, + 'Fordy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-08', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-08', + 'Wheel Rims' + ), + ( + 2317, + 65, + 'Magnum Star', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-09', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-09', + 'Wheel Rims' + ), + ( + 2318, + 65, + 'Honeycomb', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-10', + 'Wheel Rims' + ), + ( + 2319, + 65, + '40 Ford', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-11', + 'Wheel Rims' + ), + ( + 2320, + 65, + 'Ringed Moon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-12', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RS-12', + 'Wheel Rims' + ), + ( + 2321, + 73, + 'Slot 8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-00', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-00', + 'Wheel Rims' + ), + ( + 2322, + 73, + 'Round 8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-01', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-01', + 'Wheel Rims' + ), + ( + 2323, + 73, + 'Star Seven', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-02', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-02', + 'Wheel Rims' + ), + ( + 2324, + 73, + 'Star Burst 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-03', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-03', + 'Wheel Rims' + ), + ( + 2325, + 73, + 'Split Twist 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-04', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-04', + 'Wheel Rims' + ), + ( + 2326, + 73, + 'Split Twist 5 Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-05', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-05', + 'Wheel Rims' + ), + ( + 2327, + 73, + 'Big Spoke 12', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-06', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-06', + 'Wheel Rims' + ), + ( + 2328, + 73, + 'Triple Blade', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-07', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-07', + 'Wheel Rims' + ), + ( + 2329, + 73, + 'Hex Center Wire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-08', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-08', + 'Wheel Rims' + ), + ( + 2330, + 73, + 'Fine Diamond Spoke', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-09', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-09', + 'Wheel Rims' + ), + ( + 2331, + 73, + 'Diamond Spoke Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-10', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-10', + 'Wheel Rims' + ), + ( + 2332, + 73, + 'Web 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-11', + 'Wheel Rims' + ), + ( + 2333, + 73, + 'Split Fat Star 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-12', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-12', + 'Wheel Rims' + ), + ( + 2334, + 73, + 'Narrow Split Twist 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-13', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-13', + 'Wheel Rims' + ), + ( + 2335, + 73, + 'Two Tone Star Slot 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-14', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-14', + 'Wheel Rims' + ), + ( + 2336, + 73, + 'Twist Star 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-15', + 'Wheel Rims' + ), + ( + 2337, + 73, + 'Slot Star 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-16', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-16', + 'Wheel Rims' + ), + ( + 2338, + 73, + 'Black Rally Star 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-17', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-17', + 'Wheel Rims' + ), + ( + 2339, + 73, + 'Twisted Cheese Grater', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-18', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-18', + 'Wheel Rims' + ), + ( + 2340, + 73, + 'Spoke Black Star 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-19', + 'Wheel Rims' + ), + ( + 2341, + 73, + 'Chrome Slot Star 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-20', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-20', + 'Wheel Rims' + ), + ( + 2342, + 73, + 'Centerline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-21', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-21', + 'Wheel Rims' + ), + ( + 2343, + 73, + 'Baby Moon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-22', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-22', + 'Wheel Rims' + ), + ( + 2344, + 73, + 'Chrome Reversed 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-23', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-23', + 'Wheel Rims' + ), + ( + 2345, + 73, + 'Gold Reversed 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-24', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-24', + 'Wheel Rims' + ), + ( + 2346, + 73, + 'SS Rally Chrome', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-25', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-25', + 'Wheel Rims' + ), + ( + 2347, + 73, + 'SS Rally Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-26', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-26', + 'Wheel Rims' + ), + ( + 2348, + 73, + 'Five Slot Spinner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-27', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-27', + 'Wheel Rims' + ), + ( + 2349, + 73, + 'Five Slot', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-28', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-28', + 'Wheel Rims' + ), + ( + 2350, + 73, + 'Torq-Thrust', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-29', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'RA-29', + 'Wheel Rims' + ), + ( + 2351, + 67, + 'Flow-rite', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flow-rite', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall Flow-rite Air Cleaner', + 'Air Cleaner' + ), + ( + 2352, + 60, + 'Flared Velocity Stack', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flared Stack', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flared Velocity Stack', + 'Air Scoop' + ), + ( + 2353, + 60, + 'Highboy VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flared Stack (tall)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tall Flared Velocity Stack', + 'Air Scoop' + ), + ( + 2354, + 60, + 'Classic VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Straight Stack', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Straight Velocity Stack', + 'Air Scoop' + ), + ( + 2355, + 60, + 'Dual Flared VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2 Flared Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dual Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2356, + 60, + 'Dual Highboy VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2 Flared Stacks (tall)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dual Tall Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2357, + 60, + 'Dual Classic VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2 Straight Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dual Straight Velocity Stacks', + 'Air Scoop' + ), + ( + 2358, + 60, + 'Triple Flared VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 Flared Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Triple Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2359, + 60, + 'Triple Highboy VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 Flared Stacks (tall)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Triple Tall Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2360, + 60, + 'Triple Classic VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3 Straight Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Triple Straight Velocity Stacks', + 'Air Scoop' + ), + ( + 2361, + 60, + 'Quad Flared VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 Flared Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quad Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2362, + 60, + 'Quad Highboy VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 Flared Stacks (tall)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quad Tall Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2363, + 60, + 'Quad Classic VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4 Straight Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quad Straight Velocity Stacks', + 'Air Scoop' + ), + ( + 2364, + 60, + '"8-barrel" Flared VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8 Flared Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Eight Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2365, + 60, + '"8-barrel" Highboy VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8 Flared Stacks (tall)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Eight Tall Flared Velocity Stacks', + 'Air Scoop' + ), + ( + 2366, + 60, + '"8-barrel" Classic VS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8 Straight Stacks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Eight Straight Velocity Stacks', + 'Air Scoop' + ), + ( + 2367, + 1, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Bird (arcade)', + 'Vehicle' + ), + ( + 2369, + 3, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '57 Chevy (arcade)', + 'Vehicle' + ), + ( + 2370, + 6, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Bomber (arcade)', + 'Vehicle' + ), + ( + 2371, + 1, + 'Crestline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crestline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Vic (arcade)', + 'Vehicle' + ), + ( + 2375, + 0, + 'Roll Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'roll bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Generic roll bar', + 'Roll Bar' + ), + ( + 2376, + 7, + 'GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1969 Pontiac GTO modified for arcade Pro Racing', + 'Vehicle' + ), + ( + 2377, + 1, + 'Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1964 Ford Mustang modified for arcade Street Racing', + 'Vehicle' + ), + ( + 2378, + 1, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1957 Ford Thunderbird modified for arcade Pro Racing', + 'Vehicle' + ), + ( + 2379, + 6, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1955 Buick Century modified for arcade Pro Racing', + 'Vehicle' + ), + ( + 2380, + 3, + 'Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1970 Chevrolet Chevelle modified for arcade Pro Racing', + 'Vehicle' + ), + ( + 2381, + 1, + 'Galaxie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Galaxie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1964 Ford Galaxie modified for arcade Pro Racing', + 'Vehicle' + ), + ( + 2382, + 9, + 'Charger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Charger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1969 Dodge Charger modified for arcade Pro Racing', + 'Vehicle' + ), + ( + 2383, + 3, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1957 Chevrolet Bel-Air modified for arcade Street Racing', + 'Vehicle' + ), + ( + 2384, + 1, + 'Crestline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crestline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1953 Ford Crestline modified for arcade Street Racing', + 'Vehicle' + ), + ( + 2385, + 11, + 'AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMX', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1969 AMC AMX modified for arcade Street Racing', + 'Vehicle' + ), + ( + 2386, + 1, + 'Ranchero', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ranchero', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1957 Ford Ranchero modified for arcade Street Racing', + 'Vehicle' + ), + ( + 2387, + 3, + 'Camaro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Camaro', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1967 Chevrolet Camaro modified for arcade Street Racing', + 'Vehicle' + ), + ( + 2388, + 7, + 'Wedge (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac (8.0) Stock W CH', + 'Cylinder Head' + ), + ( + 2389, + 99, + '195/60/15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Firestone 195/60/15 Bias Belted', + 'Tires' + ), + ( + 2390, + 73, + '220 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 220 lb/in coil spring', + 'Springs' + ), + ( + 2391, + 73, + '230 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 230 lb/in coil spring', + 'Springs' + ), + ( + 2392, + 73, + '240 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 240 lb/in coil spring', + 'Springs' + ), + ( + 2393, + 73, + '250 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 250 lb/in coil spring', + 'Springs' + ), + ( + 2394, + 73, + '260 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 260 lb/in coil spring', + 'Springs' + ), + ( + 2395, + 73, + '270 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 270 lb/in coil spring', + 'Springs' + ), + ( + 2396, + 73, + '280 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 280 lb/in coil spring', + 'Springs' + ), + ( + 2397, + 73, + '290 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 290 lb/in coil spring', + 'Springs' + ), + ( + 2398, + 73, + '300 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 300 lb/in coil spring', + 'Springs' + ), + ( + 2399, + 73, + '310 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 310 lb/in coil spring', + 'Springs' + ), + ( + 2400, + 73, + '320 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 320 lb/in coil spring', + 'Springs' + ), + ( + 2401, + 73, + '330 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 330 lb/in coil spring', + 'Springs' + ), + ( + 2402, + 73, + '340 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 340 lb/in coil spring', + 'Springs' + ), + ( + 2403, + 73, + '350 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 350 lb/in coil spring', + 'Springs' + ), + ( + 2404, + 73, + '360 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 360 lb/in coil spring', + 'Springs' + ), + ( + 2405, + 73, + '370 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 370 lb/in coil spring', + 'Springs' + ), + ( + 2406, + 73, + '380 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 380 lb/in coil spring', + 'Springs' + ), + ( + 2407, + 73, + '390 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 390 lb/in coil spring', + 'Springs' + ), + ( + 2408, + 73, + '400 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 400 lb/in coil spring', + 'Springs' + ), + ( + 2409, + 73, + '410 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 410 lb/in coil spring', + 'Springs' + ), + ( + 2410, + 73, + '420 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 420 lb/in coil spring', + 'Springs' + ), + ( + 2411, + 73, + '430 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 430 lb/in coil spring', + 'Springs' + ), + ( + 2412, + 73, + '440 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 440 lb/in coil spring', + 'Springs' + ), + ( + 2413, + 73, + '450 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 450 lb/in coil spring', + 'Springs' + ), + ( + 2414, + 73, + '460 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 460 lb/in coil spring', + 'Springs' + ), + ( + 2415, + 73, + '470 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 470 lb/in coil spring', + 'Springs' + ), + ( + 2416, + 73, + '480 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 480 lb/in coil spring', + 'Springs' + ), + ( + 2417, + 73, + '490 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 490 lb/in coil spring', + 'Springs' + ), + ( + 2418, + 73, + '500 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 500 lb/in coil spring', + 'Springs' + ), + ( + 2419, + 73, + '510 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 510 lb/in coil spring', + 'Springs' + ), + ( + 2420, + 73, + '180 lb/in Coil', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 180 lb/in coil spring', + 'Springs' + ), + ( + 2421, + 1, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'performs about halfway between a bone-stock camshaft and a high performance camshaft', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Special Stock Camshaft', + 'Camshaft' + ), + ( + 2422, + 0, + '295/80/22.5 Bus Tire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bus Tire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '295/80/22.5 Bus Tire', + 'Tires' + ), + ( + 2424, + 3, + '(8.5) Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'used in light trucks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB (8.5) Stock', + 'Cylinder Head' + ), + ( + 2425, + 2, + 'Mod Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mod Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1949 Mercury Coupe (modified for QA use)', + 'Vehicle' + ), + ( + 2426, + 3, + 'Mod Bel Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mod Bel-Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1957 Chevrolet Bel-Air (modified for QA use)', + 'Vehicle' + ), + ( + 2427, + 7, + 'Mod GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mod GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1966 Pontiac GTO (modified for QA use)', + 'Vehicle' + ), + ( + 2428, + 4, + 'Mod Eldorado', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mod Eldorado', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1959 Cadillac Eldorado (modified for Qa use)', + 'Vehicle' + ), + ( + 2429, + 3, + 'Mod Stingray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mod Stingray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1963 Chevrolet Stingray (modified for QA use)', + 'Vehicle' + ), + ( + 2430, + 1, + 'Mod Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mod Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1964 Ford Mustang (modified for QA use)', + 'Vehicle' + ), + ( + 2431, + 10, + 'Mod Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Mod Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1970 Plymouth Cuda (modified for QA use)', + 'Vehicle' + ), + ( + 2432, + 1, + 'Power', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'good mid-range power cam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Power', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Power (HP) Camshaft', + 'Camshaft' + ), + ( + 2433, + 64, + '207/70/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 207/70/14 (D70-14) Bias Belted', + 'Tires' + ), + ( + 2434, + 64, + '212/70/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 212/70/14 (E70-14) Bias Belted', + 'Tires' + ), + ( + 2435, + 64, + '221/70/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 221/70/14 (F70-14) Bias Belted', + 'Tires' + ), + ( + 2436, + 64, + '232/70/14 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 232/70/14 (G70-14) Bias Belted', + 'Tires' + ), + ( + 2437, + 64, + '210/70/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 210/70/15 (E70-15) Bias Belted', + 'Tires' + ), + ( + 2438, + 64, + '216/70/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 216/70/15 (F70-15) Bias Belted', + 'Tires' + ), + ( + 2439, + 64, + '227/70/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 227/70/15 (G70-15) Bias Belted', + 'Tires' + ), + ( + 2440, + 64, + '231/60/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 231/60/15 (F60-15) Bias Belted', + 'Tires' + ), + ( + 2441, + 64, + '243/60/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 243/60/15 (G60-15) Bias Belted', + 'Tires' + ), + ( + 2442, + 64, + '224/60/15 Bias Belted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Begren 224/60/15 (E60-15) Bias Belted', + 'Tires' + ), + ( + 2443, + 6, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'improved low end torque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Special Stock Camshaft', + 'Camshaft' + ), + ( + 2444, + 4, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'provides good low and midrange torque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Midrange Camshaft', + 'Camshaft' + ), + ( + 2445, + 3, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'improves low range torque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB Midrange Camshaft', + 'Camshaft' + ), + ( + 2446, + 3, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'improves low range torque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet SB Special Stock Camshaft', + 'Camshaft' + ), + ( + 2447, + 8, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'improves low and midrange torque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Midrange Camshaft', + 'Camshaft' + ), + ( + 2448, + 5, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'improves low range torque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Special Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB Special Stock Camshaft', + 'Camshaft' + ), + ( + 2449, + 7, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'improves low and midrange torque', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midrange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Midrange Camshaft', + 'Camshaft' + ), + ( + 2450, + 0, + 'Heavy Truck (22.5")', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Heavy Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Heavy Truck Rim (22.5")', + 'Wheel Rims' + ), + ( + 2451, + 70, + '265-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'budget replacement block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '265', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Chevrolet SB V8 265', + 'Engine Block' + ), + ( + 2452, + 70, + 'Stock (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'budget replacement cylinder head', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Chevrolet SB Wedge (8.0)', + 'Cylinder Head' + ), + ( + 2453, + 70, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'budget replacement camshaft', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Chevrolet SB Stock Camshaft', + 'Camshaft' + ), + ( + 2454, + 70, + '265 2V (140 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'budget replacement engine assembly', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '265 2V (140 hp)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Chevrolet SB 265 2V (140 hp)', + 'Engine Assembly' + ), + ( + 2455, + 11, + 'Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock (9.0) W CH', + 'Cylinder Head' + ), + ( + 2456, + 11, + 'Stock (9.0) LV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.0) LV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock (9.0) Large Valve W CH', + 'Cylinder Head' + ), + ( + 2457, + 11, + 'Stock (10.0) LV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.0) LV', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock (10.0) Large Valve W CH', + 'Cylinder Head' + ), + ( + 2458, + 11, + 'Dog Leg (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'improved flow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dog Leg (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Dog Leg (10.0) W CH', + 'Cylinder Head' + ), + ( + 2459, + 11, + '360-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '360', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 360-V8', + 'Engine Block' + ), + ( + 2460, + 11, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock TI Rod', + 'Connecting Rods' + ), + ( + 2461, + 11, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Group 19', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Group 19 FS Crankshaft', + 'Crankshaft' + ), + ( + 2462, + 8, + '426-V8 Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi 426-V8', + 'Engine Block' + ), + ( + 2463, + 70, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Flat Top CA Piston', + 'Pistons' + ), + ( + 2464, + 8, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi Special FS Rod', + 'Connecting Rods' + ), + ( + 2465, + 70, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Hemi FS Rod', + 'Connecting Rods' + ), + ( + 2466, + 70, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Hemi Crankshaft', + 'Crankshaft' + ), + ( + 2467, + 70, + 'Hemi (10.25) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Hemi (10.25) Cylinder Head', + 'Cylinder Head' + ), + ( + 2468, + 8, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi Solid Lifter Valvetrain', + 'Valve Train' + ), + ( + 2469, + 70, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Chyrsler Hemi Valvetrain', + 'Valve Train' + ), + ( + 2470, + 8, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 2471, + 70, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Shade Tree Chrysler Hemi Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 2472, + 8, + 'Hemi Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2473, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Intake Manifold', + 'Intake Manifold' + ), + ( + 2474, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Camshaft', + 'Camshaft' + ), + ( + 2475, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Piston', + 'Pistons' + ), + ( + 2476, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Rods', + 'Connecting Rods' + ), + ( + 2477, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Crankshaft', + 'Crankshaft' + ), + ( + 2478, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Valvetrain', + 'Valve Train' + ), + ( + 2479, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 2480, + 4, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Cylinder Head', + 'Cylinder Head' + ), + ( + 2481, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB CI Stock Rod', + 'Connecting Rods' + ), + ( + 2482, + 6, + 'Stock 322', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock 322', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock 322 Camshaft', + 'Camshaft' + ), + ( + 2483, + 6, + 'Recesssed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Recessed Piston', + 'Pistons' + ), + ( + 2484, + 6, + 'Flat Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flat Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Flat Top Piston', + 'Pistons' + ), + ( + 2485, + 6, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Wedge Top Piston', + 'Pistons' + ), + ( + 2486, + 6, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Domed Top Piston', + 'Pistons' + ), + ( + 2487, + 6, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 2488, + 8, + '273-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '273', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB 273-V8', + 'Engine Block' + ), + ( + 2489, + 8, + '360-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '360', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB 360-V8', + 'Engine Block' + ), + ( + 2490, + 41, + 'Flat Top CSB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flat Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Flat Top Chrysler SB Piston', + 'Pistons' + ), + ( + 2491, + 1, + '390-V8 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'thicker main-bearing webs and caps; more reinforcing ribs; enlarged oil passages', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '390 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB V8 390 HP', + 'Engine Block' + ), + ( + 2492, + 1, + 'Stock CB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 2493, + 1, + 'Aluminum CB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Aluminum Dual Plane Intake Manifold', + 'Intake Manifold' + ), + ( + 2494, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Stock Camshaft', + 'Camshaft' + ), + ( + 2495, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Boss Camshaft', + 'Camshaft' + ), + ( + 2496, + 1, + 'HO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block HO Camshaft', + 'Camshaft' + ), + ( + 2497, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Stock Piston', + 'Pistons' + ), + ( + 2498, + 1, + 'Forged Aluminum C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Flat Top FA Piston', + 'Pistons' + ), + ( + 2499, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Stock FS Rod', + 'Connecting Rods' + ), + ( + 2500, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Boss Rod', + 'Connecting Rods' + ), + ( + 2501, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Stock Crankshaft', + 'Crankshaft' + ), + ( + 2502, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Boss Crankshaft', + 'Crankshaft' + ), + ( + 2503, + 1, + 'Stock C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2504, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Boss Valvetrain', + 'Valve Train' + ), + ( + 2505, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block Stock EM', + 'Exhaust Manifold' + ), + ( + 2506, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock CI DP IM', + 'Intake Manifold' + ), + ( + 2507, + 1, + 'CJ/SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'better flow through larger passages', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'CJ/SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 CJ/SCJ CI DP IM', + 'Intake Manifold' + ), + ( + 2508, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock Camshaft', + 'Camshaft' + ), + ( + 2509, + 1, + 'Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Special Camshaft', + 'Camshaft' + ), + ( + 2510, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock Piston', + 'Pistons' + ), + ( + 2511, + 1, + 'CJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'CJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 CJ FA Piston', + 'Pistons' + ), + ( + 2512, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock Connecting Rod', + 'Connecting Rods' + ), + ( + 2513, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock Crankshaft', + 'Crankshaft' + ), + ( + 2514, + 1, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss Crankshaft', + 'Crankshaft' + ), + ( + 2515, + 1, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 NASCAR Crankshaft', + 'Crankshaft' + ), + ( + 2516, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock Valve Train', + 'Valve Train' + ), + ( + 2517, + 1, + 'Boss Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Boss Hydraulic Valve Train', + 'Valve Train' + ), + ( + 2518, + 1, + 'SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 SCJ Valve Train', + 'Valve Train' + ), + ( + 2519, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock EM', + 'Exhaust Manifold' + ), + ( + 2520, + 1, + 'CJ/SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'CJ/SCJ', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 CJ/SCJ EM', + 'Exhaust Manifold' + ), + ( + 2521, + 1, + '429-V8 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'reinforced; high nodularity iron', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429-V8 Boss', + 'Engine Block' + ), + ( + 2522, + 1, + 'HP SB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'used on 289 HP engine; beefier, with thicker rod bolts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB HP Rod', + 'Connecting Rods' + ), + ( + 2523, + 1, + '289-V8 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'higher nodularity iron with additional supports', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '289 HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 289-V8 HP', + 'Engine Block' + ), + ( + 2524, + 1, + '302-V8 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'higher nodularity iron with additional supports and four-bolt main bearing cap', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '302-V8 Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB 302-V8 Boss', + 'Engine Block' + ), + ( + 2525, + 1, + 'HP SB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB CI EM', + 'Exhaust Manifold' + ), + ( + 2526, + 1, + 'Cross Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cross Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Cross Boss DP IM', + 'Intake Manifold' + ), + ( + 2527, + 1, + 'Stock Economy Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock 2V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Stock Intake Manifold', + 'Intake Manifold' + ), + ( + 2528, + 13, + 'Tri-Power', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tri-Power', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Ford Y Tri-Power IM', + 'Intake Manifold' + ), + ( + 2529, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Stock Camshaft', + 'Camshaft' + ), + ( + 2530, + 1, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Truck Crankshaft', + 'Crankshaft' + ), + ( + 2531, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Stock Piston', + 'Pistons' + ), + ( + 2532, + 1, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Stock Connecting Rods', + 'Connecting Rods' + ), + ( + 2533, + 1, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Truck', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Truck Connecting Rods', + 'Connecting Rods' + ), + ( + 2534, + 1, + 'Stock Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Stock Solid Valve Train', + 'Valve Train' + ), + ( + 2535, + 1, + 'Stock 272/292', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Stock Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 2536, + 6, + '400-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB V8 400', + 'Engine Block' + ), + ( + 2537, + 6, + '430-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '430', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB V8 430', + 'Engine Block' + ), + ( + 2538, + 6, + 'Stock (10.25) BB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Stock (10.25) CH', + 'Cylinder Head' + ), + ( + 2539, + 3, + '427-V8 ZL1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'all-aluminum block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'ZL1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet BB V8 427 ZL1', + 'Engine Block' + ), + ( + 2540, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W CI DP Intake Manifold', + 'Intake Manifold' + ), + ( + 2541, + 3, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Aluminum DP Intake Manifold', + 'Intake Manifold' + ), + ( + 2542, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Stock Camshaft', + 'Camshaft' + ), + ( + 2543, + 3, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W HP Camshaft', + 'Camshaft' + ), + ( + 2544, + 3, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Z11 Camshaft', + 'Camshaft' + ), + ( + 2545, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Stock FS Crankshaft', + 'Crankshaft' + ), + ( + 2546, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Stock Valve Train', + 'Valve Train' + ), + ( + 2547, + 3, + 'Super Turbo-Thrust', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'STT', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W STT Solid Lifter Valve Train', + 'Valve Train' + ), + ( + 2548, + 3, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Stock EM', + 'Exhaust Manifold' + ), + ( + 2549, + 3, + 'Z11 W', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Z11', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Z11 Cylinder Head', + 'Cylinder Head' + ), + ( + 2550, + 6, + '364-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '364', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead 364-V8', + 'Engine Block' + ), + ( + 2551, + 6, + '401-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead 401-V8', + 'Engine Block' + ), + ( + 2552, + 6, + '425-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '425', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead 425-V8', + 'Engine Block' + ), + ( + 2553, + 6, + '300-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '300', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB V8 300', + 'Engine Block' + ), + ( + 2554, + 6, + '340-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '340', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB V8 340', + 'Engine Block' + ), + ( + 2555, + 4, + '365-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '365', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB V8 365', + 'Engine Block' + ), + ( + 2556, + 4, + '429-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB V8 429', + 'Engine Block' + ), + ( + 2557, + 3, + 'HP W', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W HP Exhaust Manifold', + 'Exhaust Manifold' + ), + ( + 2558, + 1, + 'HP C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Block HP EM', + 'Exhaust Manifold' + ), + ( + 2559, + 79, + 'Compressor (7.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Compressor (7.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Compressor (7.5) Cylinder Head', + 'Cylinder Head' + ), + ( + 2560, + 79, + 'Compressor Extra (7.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Compressor (7.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Compressor (7.8) Cylinder Head', + 'Cylinder Head' + ), + ( + 2561, + 79, + 'Compressor Chief (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Compressor Chief (8.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Compressor Chief (8.0) Cylinder Head', + 'Cylinder Head' + ), + ( + 2562, + 79, + 'Compressor King (8.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Compressor King (8.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Compressor King (8.2) Cylinder Head', + 'Cylinder Head' + ), + ( + 2563, + 6, + 'Nailhead (8.75) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead (8.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead (8.75) Cylinder Head', + 'Cylinder Head' + ), + ( + 2564, + 6, + 'Nailhead (9.0) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead (9.0) Cylinder Head', + 'Cylinder Head' + ), + ( + 2565, + 6, + 'Nailhead (10.25) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead (10.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead (10.25) Cylinder Head', + 'Cylinder Head' + ), + ( + 2566, + 6, + 'Nailhead (10.5) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead (10.5) Cylinder Head', + 'Cylinder Head' + ), + ( + 2567, + 4, + 'Stock (9.75) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac (9.75) Wedge Cylinder Head', + 'Cylinder Head' + ), + ( + 2568, + 4, + 'Stock (10.0) CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac (10.0) Wedge Cylinder Head', + 'Cylinder Head' + ), + ( + 2569, + 50, + 'Hemi (10.5) Canted CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch Hemi (10.5) Canted Cylinder Head', + 'Cylinder Head' + ), + ( + 2570, + 50, + 'Hemi (10.75) Canted CH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi (10.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch Hemi (10.75) Canted Cylinder Head', + 'Cylinder Head' + ), + ( + 2571, + 80, + 'Breezer Aluminum DP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Breezer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Breezer Aluminum DP IM', + 'Intake Manifold' + ), + ( + 2572, + 80, + 'Tornado Aluminum SP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tornado', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Tornado Aluminum SP IM', + 'Intake Manifold' + ), + ( + 2573, + 80, + 'Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum DP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick SB Aluminum DP IM', + 'Intake Manifold' + ), + ( + 2574, + 79, + 'Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Alumimum DP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac L-Head Aluminum DP IM', + 'Intake Manifold' + ), + ( + 2575, + 80, + 'Power Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Power Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Power Plus Camshaft', + 'Camshaft' + ), + ( + 2576, + 80, + 'Nailhead HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead HP Camshaft', + 'Camshaft' + ), + ( + 2577, + 79, + 'Power Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Power Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac L-Head Power Plus Camshaft', + 'Camshaft' + ), + ( + 2578, + 79, + 'L-Head HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac L-Head HP Camshaft', + 'Camshaft' + ), + ( + 2579, + 80, + 'Nailhead Perf. EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Performance EM', + 'Exhaust Manifold' + ), + ( + 2580, + 79, + 'L-Head Perf. EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac L-Head Performance EM', + 'Exhaust Manifold' + ), + ( + 2581, + 6, + 'SB Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Performance EM', + 'Exhaust Manifold' + ), + ( + 2582, + 6, + 'SB Tube Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Small Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB EM Small Tube Headers', + 'Exhaust Manifold' + ), + ( + 2583, + 79, + 'Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac Performance EM', + 'Exhaust Manifold' + ), + ( + 2584, + 1, + 'Flathead Perf. EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Performance EM', + 'Exhaust Manifold' + ), + ( + 2585, + 5, + 'SB Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance EM', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile SB Performance EM', + 'Exhaust Manifold' + ), + ( + 2586, + 72, + '13 x 2 Organic Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '13 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 13 x 2 Organic Drum Brake', + 'Brakes' + ), + ( + 2587, + 72, + '13 x 2 Organic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '13 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 13 x 2 Organic Disk Brake', + 'Brakes' + ), + ( + 2588, + 72, + '13 x 2 Org HT Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '13 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 13 x 2 Organic HT Drum Brake', + 'Brakes' + ), + ( + 2589, + 72, + '13 x 2 Org HT Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '13 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 13 x 2 Organic HT Disk Brake', + 'Brakes' + ), + ( + 2590, + 72, + '13 x 2 Metallic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '13 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 13 x 2 Metallic Disk Brake', + 'Brakes' + ), + ( + 2591, + 72, + '13 x 2 SM Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '13 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bendix 13 x 2 Semi-Metallic Disk Brake', + 'Brakes' + ), + ( + 2592, + 73, + '13 x 2 Metal Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '13 x 2 ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 13 x 2 Metallic Disk ABS Brake', + 'Brakes' + ), + ( + 2593, + 73, + '14 x 2 Org Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 14 x 2 Organic Drum Brake', + 'Brakes' + ), + ( + 2594, + 73, + '14 x 2 Organic Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 14 x 2 Organic Disk Brake', + 'Brakes' + ), + ( + 2595, + 73, + '14 x 2 Org HT Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14 x 2 Drum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 14 x 2 Organic HT Drum Brake', + 'Brakes' + ), + ( + 2596, + 73, + '14 x 2 Org HT Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ansman 14 x 2 Organic HT Disk Brake', + 'Brakes' + ), + ( + 2597, + 71, + '9 x 2 SM Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9 x 2 Disk', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 9 x 2 Semi-Metallic Disk Brakes', + 'Brakes' + ), + ( + 2598, + 71, + '9 x 2 Metal Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9 x 2 Disk ABS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AC Delco 9 x 2 Metallic Disk ABS Brakes', + 'Brakes' + ), + ( + 2599, + 101, + '205/40/17VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/40/17VR Performance', + 'Tires' + ), + ( + 2600, + 101, + '225/50/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 225/50/15VR Performance', + 'Tires' + ), + ( + 2601, + 101, + '205/50/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 205/50/15VR Performance', + 'Tires' + ), + ( + 2602, + 101, + '195/50/15VR Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Yokohama 195/50/15VR Performance', + 'Tires' + ), + ( + 2603, + 100, + '225/50/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 225/50/15 Radial', + 'Tires' + ), + ( + 2604, + 100, + '205/50/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/50/15 Radial', + 'Tires' + ), + ( + 2605, + 100, + '195/50/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/50/15 Radial', + 'Tires' + ), + ( + 2606, + 100, + '205/55/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/55/15 Radial', + 'Tires' + ), + ( + 2607, + 100, + '195/55/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/55/15 Radial', + 'Tires' + ), + ( + 2608, + 100, + '215/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 215/60/15 Radial', + 'Tires' + ), + ( + 2609, + 100, + '205/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/60/15 Radial', + 'Tires' + ), + ( + 2610, + 100, + '195/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/60/15 Radial', + 'Tires' + ), + ( + 2611, + 100, + '205/65/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 205/65/15 Radial', + 'Tires' + ), + ( + 2612, + 100, + '185/65/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 185/65/15 Radial', + 'Tires' + ), + ( + 2613, + 100, + '195/60/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/60/14 Radial', + 'Tires' + ), + ( + 2614, + 100, + '185/60/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 185/60/14 Radial', + 'Tires' + ), + ( + 2615, + 100, + '195/65/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 195/65/14 Radial', + 'Tires' + ), + ( + 2616, + 100, + '175/65/14 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 175/65/14 Radial', + 'Tires' + ), + ( + 2617, + 1, + '429-V8 NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429-V8 NASCAR', + 'Engine Block' + ), + ( + 2618, + 1, + '429-V8 NASCAR Mg', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'highly experimental magnesium block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '429 NASCAR Mg', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 429-V8 NASCAR Mg', + 'Engine Block' + ), + ( + 2619, + 5, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Wedge Top (0.5) Piston', + 'Pistons' + ), + ( + 2620, + 1, + 'FH Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Wedge Top Piston', + 'Pistons' + ), + ( + 2621, + 1, + 'Flathead Domed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Domed Top Piston', + 'Pistons' + ), + ( + 2622, + 8, + 'Hemi Recessed Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi Recessed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi Recessed FA Piston', + 'Pistons' + ), + ( + 2623, + 8, + 'Hemi Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Hemi Wedge FA Piston', + 'Pistons' + ), + ( + 2624, + 4, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Wedge Top Piston', + 'Pistons' + ), + ( + 2625, + 4, + 'Stock FA', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock FA', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock FA Piston', + 'Pistons' + ), + ( + 2626, + 4, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Wedge FA Piston', + 'Pistons' + ), + ( + 2627, + 6, + 'Wedge Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Wedge Top Piston', + 'Pistons' + ), + ( + 2628, + 6, + 'Nailhead Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Solid Valvetrain', + 'Valve Train' + ), + ( + 2629, + 6, + 'SB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Solid Valvetrain', + 'Valve Train' + ), + ( + 2630, + 6, + 'BB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Solid Valvetrain', + 'Valve Train' + ), + ( + 2631, + 79, + 'L-Head Flow Control', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flow Control', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac L-Head Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2632, + 4, + 'Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac Solid Valvetrain', + 'Valve Train' + ), + ( + 2633, + 80, + 'Flathead Super Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flathead Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Ford Flathead Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2634, + 5, + 'SB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile SB Solid Valvetrain', + 'Valve Train' + ), + ( + 2635, + 5, + 'BB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldsmobile BB Solid Valvetrain', + 'Valve Train' + ), + ( + 2636, + 5, + 'W-31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W-31', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB W-31 FS Rod', + 'Connecting Rods' + ), + ( + 2637, + 13, + 'Stock FS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock FS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Ford Flathead Stock FS Rod', + 'Connecting Rods' + ), + ( + 2638, + 58, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Pro Billet Chrysler Hemi Rod', + 'Connecting Rods' + ), + ( + 2639, + 74, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Titanium', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Titanium Chrysler Hemi Connecting Rod', + 'Connecting Rods' + ), + ( + 2640, + 74, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Lightweight Billet Steel Chrysler Hemi Rod', + 'Connecting Rods' + ), + ( + 2641, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Chrysler Hemi Rod', + 'Connecting Rods' + ), + ( + 2642, + 74, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Billet Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crower Billet Steel Chrysler SB Rod', + 'Connecting Rods' + ), + ( + 2643, + 58, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Sportsman H-Beam', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lunati Sportsman H-Beam Chevrolet W Rod', + 'Connecting Rods' + ), + ( + 2644, + 3, + 'Stock FS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock FS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet W Stock FS Rod', + 'Connecting Rods' + ), + ( + 2645, + 80, + 'Nailhead Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Nailhead Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2646, + 80, + 'Buick SB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick SB Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2647, + 80, + 'Buick BB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick BB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick BB Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2648, + 79, + 'L-Head Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'L-Head Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac L-Head Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2649, + 79, + 'Cadillac Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2650, + 4, + 'Stock BB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock CI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock CI Rod', + 'Connecting Rods' + ), + ( + 2651, + 4, + 'Forged Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Forged Steel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head FS Rod', + 'Connecting Rods' + ), + ( + 2652, + 6, + 'Stock FS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock FS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick SB FS Stock Rod', + 'Connecting Rods' + ), + ( + 2653, + 6, + 'Nailhead 364', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead 364', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead 364 FS Rod', + 'Connecting Rods' + ), + ( + 2654, + 50, + 'Big W Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch Chevy W Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2655, + 50, + 'Hemi Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Monarch Hemi Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2656, + 79, + 'FH Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flathead Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Ford Flathead Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2657, + 80, + 'Olds SB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds SB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Olds SB Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2658, + 80, + 'Olds BB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Olds BB Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2659, + 44, + 'HiPo Adept', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HiPo Adept', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Blinsky HiPo Adept Domed Aluminum Piston', + 'Pistons' + ), + ( + 2660, + 97, + '245/45/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 245/45/17ZR High Performance', + 'Tires' + ), + ( + 2661, + 97, + '225/60/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 225/60/16ZR High Performance', + 'Tires' + ), + ( + 2662, + 81, + '671', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '671', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Weiand 671 Blower', + 'Blower' + ), + ( + 2663, + 81, + '871', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '871', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Weiand 871 Blower', + 'Blower' + ), + ( + 2664, + 81, + '1071', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1071', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Weiand 1071 Blower', + 'Blower' + ), + ( + 2665, + 13, + 'Performer IAS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer IAS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer IAS Shock', + 'Shocks' + ), + ( + 2666, + 13, + 'Street Stock Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Stock Race', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Street Stock Race Shock', + 'Shocks' + ), + ( + 2667, + 13, + '24 Stud', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '24 Stud', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Ford Flathead Cylinder Head', + 'Cylinder Head' + ), + ( + 2668, + 13, + 'TES Exhaust Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Exhaust Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Chevrolet W Exhaust Headers', + 'Exhaust Manifold' + ), + ( + 2669, + 13, + 'TES Exh. Headers 385', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Exhaust Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Ford 385 Exhaust Headers', + 'Exhaust Manifold' + ), + ( + 2670, + 13, + 'TES Exhaust Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Exhaust Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TES Pontiac Exhaust Headers', + 'Exhaust Manifold' + ), + ( + 2671, + 13, + 'Cat-Back System', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cat-Back', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Cat-Back System Exhaust Pipes', + 'Exhaust Pipe' + ), + ( + 2672, + 18, + 'Fat Shiny', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fat Shiny', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fat Shiny Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 2673, + 13, + 'AB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock AB Coil Spring', + 'Springs' + ), + ( + 2674, + 13, + 'AS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock AS Coil Spring', + 'Springs' + ), + ( + 2675, + 13, + 'AGB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AGB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock AGB Coil Spring', + 'Springs' + ), + ( + 2676, + 13, + 'M', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'M', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock M Coil Spring', + 'Springs' + ), + ( + 2677, + 13, + 'F', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'F', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock F Coil Spring', + 'Springs' + ), + ( + 2678, + 13, + 'Tubular Panhard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tubular Panhard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Tubular Panhard Rod', + 'Sway Bar' + ), + ( + 2679, + 13, + 'Anti-Hop Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Anti-Hop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Anti-Hop Bar', + 'Traction Bar' + ), + ( + 2680, + 13, + 'Pro-Flo Round', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Flo Round', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Pro-Flo Round Air Cleaner', + 'Air Cleaner' + ), + ( + 2681, + 13, + 'Pro-Flo Oval', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Flo Oval', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Pro-Flo Oval Air Cleaner', + 'Air Cleaner' + ), + ( + 2682, + 13, + 'Pro-Flo Triangular', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Flo Triangular', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Pro-Flo Triangular Air Cleaner', + 'Air Cleaner' + ), + ( + 2683, + 13, + 'Elite Round', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Elite Round', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Elite Round Air Cleaner', + 'Air Cleaner' + ), + ( + 2684, + 13, + 'Elite Oval', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Elite Oval', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Elite Oval Air Cleaner', + 'Air Cleaner' + ), + ( + 2685, + 13, + 'Elite Triangular', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Elite Triangular', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Elite Triangular Air Cleaner', + 'Air Cleaner' + ), + ( + 2686, + 13, + 'Victor Series', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Victor Series', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Victor Series Cooling System', + 'Cooling System' + ), + ( + 2687, + 13, + 'Performer 4V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer 4V (500 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer 4V (500 cfm) Carburetor', + 'Carburetor' + ), + ( + 2688, + 13, + 'Performer 4V (750 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer 4V (750 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer 4V (750 cfm) Carburetor', + 'Carburetor' + ), + ( + 2689, + 13, + 'Q-Jet (795 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Q-Jet (795 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Q-Jet (795 cfm) Carburetor', + 'Carburetor' + ), + ( + 2690, + 13, + 'Q-Jet (850 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Q-Jet (850 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Q-Jet (850 cfm) Carburetor', + 'Carburetor' + ), + ( + 2691, + 13, + 'Torker AMC', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Torker AMC', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Torker AMC IM', + 'Intake Manifold' + ), + ( + 2692, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer AMC IM', + 'Intake Manifold' + ), + ( + 2693, + 13, + 'Pro-Flo EFI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pro-Flo EFI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Pro-Flo EFI System', + 'Carburetor' + ), + ( + 2694, + 14, + 'Excelerator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Excelerator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Excelerator Ignition', + 'Electrical System' + ), + ( + 2695, + 14, + 'Dominator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dominator', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Dominator Ignition', + 'Electrical System' + ), + ( + 2696, + 14, + 'Avenger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Avenger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley Avenger Ignition', + 'Electrical System' + ), + ( + 2697, + 14, + 'SystemMax Chevrolet BB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SystemMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Holley SystemMax Chevrolet BB CH', + 'Cylinder Head' + ), + ( + 2698, + 1, + 'E4 Low Range', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'E4 Low Range', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'E4 Low Range Ford Y Camshaft', + 'Camshaft' + ), + ( + 2699, + 13, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Plus AMC Camshaft', + 'Camshaft' + ), + ( + 2700, + 11, + 'WG', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'WG', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC WG Stock+ Camshaft', + 'Camshaft' + ), + ( + 2701, + 13, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Plus Olds SB HP Cam', + 'Camshaft' + ), + ( + 2702, + 13, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Plus Olds BB HP Cam', + 'Camshaft' + ), + ( + 2703, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer AMC Hydraulic Lifters', + 'Valve Train' + ), + ( + 2704, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Chevrolet BB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2705, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Chevrolet SB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2706, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Chrysler BB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2707, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Chrysler SB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2708, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Ford 385 Hydraulic Lifters', + 'Valve Train' + ), + ( + 2709, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Ford BB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2710, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Ford C Hydraulic Lifters', + 'Valve Train' + ), + ( + 2711, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Ford SB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2712, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Oldsmobile BB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2713, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Oldsmobile SB Hydraulic Lifters', + 'Valve Train' + ), + ( + 2714, + 13, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Performer Pontiac Hydraulic Lifters', + 'Valve Train' + ), + ( + 2715, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Ford BB VT', + 'Valve Train' + ), + ( + 2716, + 21, + 'Energizer BSB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Buick SB Valvetrain', + 'Valve Train' + ), + ( + 2717, + 21, + 'Energizer CBB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Chevrolet BB Valvetrain', + 'Valve Train' + ), + ( + 2718, + 21, + 'Energizer CSB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Chevrolet SB Valvetrain', + 'Valve Train' + ), + ( + 2719, + 21, + 'Energizer CW', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Chevrolet W Valvetrain', + 'Valve Train' + ), + ( + 2720, + 21, + 'Energizer ChBB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Chrysler BB Valvetrain', + 'Valve Train' + ), + ( + 2721, + 21, + 'Energizer ChSB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Chrysler SB Valvetrain', + 'Valve Train' + ), + ( + 2722, + 21, + 'Energizer F385', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Ford 385 Valvetrain', + 'Valve Train' + ), + ( + 2723, + 21, + 'Energizer FC', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Ford C Valvetrain', + 'Valve Train' + ), + ( + 2724, + 21, + 'Energizer FSB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Ford SB Valvetrain', + 'Valve Train' + ), + ( + 2725, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter AMC Valvetrain', + 'Valve Train' + ), + ( + 2726, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Buick SB Valvetrain', + 'Valve Train' + ), + ( + 2727, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Chevrolet BB Valvetrain', + 'Valve Train' + ), + ( + 2728, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Chevrolet SB Valvetrain', + 'Valve Train' + ), + ( + 2729, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Chevrolet W Valvetrain', + 'Valve Train' + ), + ( + 2730, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Chrysler BB Valvetrain', + 'Valve Train' + ), + ( + 2731, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Chrysler Hemi Valvetrain', + 'Valve Train' + ), + ( + 2732, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Chrysler SB Valvetrain', + 'Valve Train' + ), + ( + 2733, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Ford 385 Valvetrain', + 'Valve Train' + ), + ( + 2734, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Ford C Valvetrain', + 'Valve Train' + ), + ( + 2735, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Ford SB Valvetrain', + 'Valve Train' + ), + ( + 2736, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller AMC VT', + 'Valve Train' + ), + ( + 2737, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Chevrolet BB VT', + 'Valve Train' + ), + ( + 2738, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Chevrolet SB VT', + 'Valve Train' + ), + ( + 2739, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Chevrolet W VT', + 'Valve Train' + ), + ( + 2740, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Chrysler BB VT', + 'Valve Train' + ), + ( + 2741, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Chrysler Hemi VT', + 'Valve Train' + ), + ( + 2742, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Chrysler SB VT', + 'Valve Train' + ), + ( + 2743, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Ford 385 VT', + 'Valve Train' + ), + ( + 2744, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Ford C VT', + 'Valve Train' + ), + ( + 2745, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Ford SB VT', + 'Valve Train' + ), + ( + 2746, + 21, + 'Energizer OBB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Olds BB Valvetrain', + 'Valve Train' + ), + ( + 2747, + 21, + 'Energizer OSB', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Olds SB Valvetrain', + 'Valve Train' + ), + ( + 2748, + 21, + 'Energizer Pon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Energizer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane Energizer Hydraulic Pontiac Valvetrain', + 'Valve Train' + ), + ( + 2749, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Olds BB Valvetrain', + 'Valve Train' + ), + ( + 2750, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Olds SB Valvetrain', + 'Valve Train' + ), + ( + 2751, + 21, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Pontiac Valvetrain', + 'Valve Train' + ), + ( + 2752, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Olds BB VT', + 'Valve Train' + ), + ( + 2753, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Olds SB VT', + 'Valve Train' + ), + ( + 2754, + 21, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Roller Pontiac VT', + 'Valve Train' + ), + ( + 2755, + 11, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'NASCAR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC NASCAR CH', + 'Cylinder Head' + ), + ( + 2756, + 16, + '6V (600 cfm) R', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '6V (600 cfm)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rochester 6V (600 cfm) Carb', + 'Carburetor' + ), + ( + 2757, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker AMC Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2758, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Buick Nailhead Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2759, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cadillac L-Head Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2760, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cadillac Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2761, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy SB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2762, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler SB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2763, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford Flathead Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2764, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford SB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2765, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford Y Block Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2766, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford Cleveland Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2767, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Oldsmobile SB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2768, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Oldsmobile BB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2769, + 82, + 'Hemi Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler Hemi Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 2770, + 11, + '401-V8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC 401-V8', + 'Engine Block' + ), + ( + 2771, + 11, + 'Stock (9.5) 401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (9.5) 401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock (9.5) 401 W CH', + 'Cylinder Head' + ), + ( + 2772, + 11, + 'Stock (8.5) 401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock (8.5) 401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Stock (8.5) 401 W CH', + 'Cylinder Head' + ), + ( + 2773, + 38, + 'Aluminum AMC', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum AMC', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Offenhauser Aluminum AMC IM', + 'Intake Manifold' + ), + ( + 2774, + 1, + '9" (3.08)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9" (3.08)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 9" (3.08) Differential', + 'Rear End' + ), + ( + 2775, + 1, + '9" (3.27)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9" (3.27)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 9" (3.27) Differential', + 'Rear End' + ), + ( + 2776, + 1, + '9" (3.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9" (3.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 9" (3.45) Differential', + 'Rear End' + ), + ( + 2777, + 1, + '9" (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9" (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 9" (3.55) Differential', + 'Rear End' + ), + ( + 2778, + 1, + '9" (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9" (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 9" (3.73) Differential', + 'Rear End' + ), + ( + 2779, + 1, + '9" (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '9" (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 9" (4.10) Differential', + 'Rear End' + ), + ( + 2780, + 1, + '8" (3.08)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8" (3.08)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 8" (3.08) Differential', + 'Rear End' + ), + ( + 2781, + 1, + '8" (3.27)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8" (3.27)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 8" (3.27) Differential', + 'Rear End' + ), + ( + 2782, + 1, + '8" (3.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8" (3.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 8" (3.45) Differential', + 'Rear End' + ), + ( + 2783, + 1, + '8" (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8" (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 8" (3.55) Differential', + 'Rear End' + ), + ( + 2784, + 1, + '8" (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8" (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 8" (3.73) Differential', + 'Rear End' + ), + ( + 2785, + 1, + '8" (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '8" (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 8" (4.10) Differential', + 'Rear End' + ), + ( + 2786, + 15, + '10-bolt (2.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10-bolt (2.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 10-bolt (2.73) Differential', + 'Rear End' + ), + ( + 2787, + 15, + '10-bolt (3.08)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10-bolt (3.08)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 10-bolt (3.08) Differential', + 'Rear End' + ), + ( + 2788, + 15, + '10-bolt (3.36)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10-bolt (3.36)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 10-bolt (3.36) Differential', + 'Rear End' + ), + ( + 2789, + 15, + '10-bolt (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10-bolt (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 10-bolt (3.55) Differential', + 'Rear End' + ), + ( + 2790, + 15, + '10-bolt (3.70)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '10-bolt (3.70)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 10-bolt (3.70) Differential', + 'Rear End' + ), + ( + 2791, + 15, + '12-bolt (2.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12-bolt (2.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 12-bolt (2.73) Differential', + 'Rear End' + ), + ( + 2792, + 15, + '12-bolt (3.07)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12-bolt (3.07)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 12-bolt (3.07) Differential', + 'Rear End' + ), + ( + 2793, + 15, + '12-bolt (3.31)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12-bolt (3.31)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 10-bolt (3.31) Differential', + 'Rear End' + ), + ( + 2794, + 15, + '12-bolt (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12-bolt (3.55)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 12-bolt (3.55) Differential', + 'Rear End' + ), + ( + 2795, + 15, + '12-bolt (3.55) Police', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12-bolt (3.55) Police', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 12-bolt (3.55) Police Differential', + 'Rear End' + ), + ( + 2796, + 15, + '12-bolt (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12-bolt (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 12-bolt (3.73) Differential', + 'Rear End' + ), + ( + 2797, + 15, + '12-bolt (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '12-bolt (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM 12-bolt (4.10) Differential', + 'Rear End' + ), + ( + 2798, + 67, + '14-bolt (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14-bolt (4.10)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall 14-bolt (4.10) Differential', + 'Rear End' + ), + ( + 2799, + 67, + '14-bolt (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14-bolt (3.73)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall 14-bolt (3.73) Differential', + 'Rear End' + ), + ( + 2800, + 67, + '14-bolt (3.42)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '14-bolt (3.42)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall 14-bolt (3.42) Differential', + 'Rear End' + ), + ( + 2801, + 67, + 'Helix 3 Spd (M)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Helix (M)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall Helix 3 Spd (M)', + 'Transmission' + ), + ( + 2802, + 67, + 'Helix 3 Spd (A)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Helix (A)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hall Helix 3 Spd (A)', + 'Transmission' + ), + ( + 2803, + 1, + 'Stock Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock 4V', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Block Stock 4V IM', + 'Intake Manifold' + ), + ( + 2804, + 1, + 'Dual Quad Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock 2x4', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Block Stock 2x4 IM', + 'Intake Manifold' + ), + ( + 2805, + 1, + 'Supercharger Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock Blown', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Block Supercharger IM', + 'Intake Manifold' + ), + ( + 2806, + 13, + '3x2V Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2 Alumimun', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Y Block 3x2 IM', + 'Intake Manifold' + ), + ( + 2807, + 13, + 'Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V Alumimun', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Y Block 4V Aluminum IM', + 'Intake Manifold' + ), + ( + 2808, + 13, + 'Aluminum Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V Alumimum Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Edelbrock Y Block 4V Aluminum Single', + 'Intake Manifold' + ), + ( + 2809, + 38, + '3x2V Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '3x2V Alumimun', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Offy Y Block 3x2 Aluminum IM', + 'Intake Manifold' + ), + ( + 2810, + 38, + 'Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V Alumimun', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Offy Y Block Aluminum 4V IM', + 'Intake Manifold' + ), + ( + 2811, + 38, + 'Aluminum Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V Alumimum Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Offy Y Block Aluminum 4V Single IM', + 'Intake Manifold' + ), + ( + 2812, + 83, + 'Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V Alumimun', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Aluminum 4V IM', + 'Intake Manifold' + ), + ( + 2813, + 83, + 'Special Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '4V Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Special 4V IM', + 'Intake Manifold' + ), + ( + 2814, + 83, + 'Lightning Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightning Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Lightning 4V Single IM', + 'Intake Manifold' + ), + ( + 2815, + 83, + 'HiBoy Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'HiBoy Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block HiBoy Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2816, + 83, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Midget Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2817, + 83, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Strip King Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2818, + 1, + 'Factory Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Factory Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Block Factory Headers', + 'Exhaust Manifold' + ), + ( + 2819, + 83, + 'Free Flow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Free Flow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Free Flow EM', + 'Exhaust Manifold' + ), + ( + 2820, + 83, + 'Free Flow Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Free Flow Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Free Flow Aluminum EM', + 'Exhaust Manifold' + ), + ( + 2821, + 83, + 'Street King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Street King Small Headers', + 'Exhaust Manifold' + ), + ( + 2822, + 83, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Strip King Small Headers', + 'Exhaust Manifold' + ), + ( + 2823, + 83, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Track King Large Headers', + 'Exhaust Manifold' + ), + ( + 2824, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Y Block Air Stream EM', + 'Exhaust Manifold' + ), + ( + 2825, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Y Block Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 2826, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Y Block Super Stream Large Headers', + 'Exhaust Manifold' + ), + ( + 2827, + 83, + 'Street King Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Street King Solid Valvetrain', + 'Valve Train' + ), + ( + 2828, + 83, + 'Strip King Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Strip King Solid Valvetrain', + 'Valve Train' + ), + ( + 2829, + 83, + 'Race Pro Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Pro Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Y Block Race Pro Roller Valvetrain', + 'Valve Train' + ), + ( + 2830, + 84, + 'Speed Lifter Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lifter Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Y Block Speed Lifter Solid Valvetrain', + 'Valve Train' + ), + ( + 2831, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Y Block Super Lift Solid Valvetrain', + 'Valve Train' + ), + ( + 2832, + 85, + 'Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Y Block Solid Valvetrain', + 'Valve Train' + ), + ( + 2833, + 85, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Y Block Performance Solid Valvetrain', + 'Valve Train' + ), + ( + 2834, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Y Block Race Roller Valvetrain', + 'Valve Train' + ), + ( + 2835, + 87, + 'Wedge Top (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Wedge Top (.15) Piston', + 'Pistons' + ), + ( + 2836, + 87, + 'Wedge Top (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Wedge Top (.35) Piston', + 'Pistons' + ), + ( + 2837, + 87, + 'Wedge Top (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Wedge Top (.4) Piston', + 'Pistons' + ), + ( + 2838, + 87, + 'Wedge Top (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Wedge Top (.2) Piston', + 'Pistons' + ), + ( + 2839, + 87, + 'Wedge Top (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge Top (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Wedge Top (.3) Piston', + 'Pistons' + ), + ( + 2840, + 86, + 'Domed (.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Domed (.1) Piston', + 'Pistons' + ), + ( + 2841, + 86, + 'Domed (.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Domed (.45) Piston', + 'Pistons' + ), + ( + 2842, + 86, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Domed (.2) Piston', + 'Pistons' + ), + ( + 2843, + 86, + 'Domed (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Domed (.35) Piston', + 'Pistons' + ), + ( + 2844, + 86, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Domed (.5) Piston', + 'Pistons' + ), + ( + 2845, + 88, + 'Super 292', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Extra Y', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Y Block Super 292 Crankshaft', + 'Crankshaft' + ), + ( + 2846, + 88, + 'Super 312', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Bird Specia', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely y Block Super 312 Crankshaft', + 'Crankshaft' + ), + ( + 2847, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Marathon Crankshaft', + 'Crankshaft' + ), + ( + 2848, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2849, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Champion Crankshaft', + 'Crankshaft' + ), + ( + 2851, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Stump Puller Crankshaft', + 'Crankshaft' + ), + ( + 2852, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Street Max Crankshaft', + 'Crankshaft' + ), + ( + 2853, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Super Max Crankshaft', + 'Crankshaft' + ), + ( + 2854, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Stump Puller Connecting Rods', + 'Connecting Rods' + ), + ( + 2855, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Street Max Connecting Rods', + 'Connecting Rods' + ), + ( + 2856, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Y Block Super Max Connecting Rods', + 'Connecting Rods' + ), + ( + 2857, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Marathon Connecting Rods', + 'Connecting Rods' + ), + ( + 2858, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Lightweight Connecting Rods', + 'Connecting Rods' + ), + ( + 2859, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Champion Connecting Rods', + 'Connecting Rods' + ), + ( + 2860, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Y Block Legend Connecting Rods', + 'Connecting Rods' + ), + ( + 2861, + 88, + 'Extra Y', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Extra Y', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Y Block Extra Y Connecting Rods', + 'Connecting Rods' + ), + ( + 2862, + 88, + 'T-Bird Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T-Bird Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Y Block T-Bird Special Connecting Rods', + 'Connecting Rods' + ), + ( + 2863, + 89, + 'Street 39', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street 39', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Street 39 Camshaft', + 'Camshaft' + ), + ( + 2864, + 89, + 'Street 40', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street 40', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Street 40 Camshaft', + 'Camshaft' + ), + ( + 2865, + 89, + 'Super 39', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 39', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Super 39 HP Camshaft', + 'Camshaft' + ), + ( + 2866, + 89, + 'Super 40', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 40', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Super 40 HP Camshaft', + 'Camshaft' + ), + ( + 2867, + 89, + 'Super 43', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 43', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Super 43 HP Camshaft', + 'Camshaft' + ), + ( + 2868, + 89, + 'Super 44', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 44', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Super 44 HP Camshaft', + 'Camshaft' + ), + ( + 2869, + 89, + 'Ultra 44', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ultra 44', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Ultra 44 DP Camshaft', + 'Camshaft' + ), + ( + 2870, + 89, + 'Ultra 48', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ultra 48', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Ultra 48 DP Camshaft', + 'Camshaft' + ), + ( + 2871, + 89, + 'Street 36', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street 36', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Y Block Street 36 Camshaft', + 'Camshaft' + ), + ( + 2872, + 9, + 'Charger R/T', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 2873, + 1, + 'Boss 302 (10.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss 302 (10.5) 2.19/1.72 Canted CH', + 'Cylinder Head' + ), + ( + 2874, + 1, + 'TP (10.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'TP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB TP Wedge CH', + 'Cylinder Head' + ), + ( + 2875, + 1, + 'Wedge (9.0) 1.84', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (9.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB (9.0) 1.84i/1.54e Wedge CH', + 'Cylinder Head' + ), + ( + 2876, + 1, + '70 Mustang Factory Scoop Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '70 Mustang Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 70 Mustang Factory Scoop Hood', + 'Hood' + ), + ( + 2877, + 90, + 'Big Bad AMX - AI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 2878, + 90, + 'Chevrolet Corvette - AI', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 2879, + 91, + 'Vortex Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vortex Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Vortex Single Plane IM', + 'Intake Manifold' + ), + ( + 2880, + 91, + 'Screamer Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Screamer Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Screamer Dual Plane IM', + 'Intake Manifold' + ), + ( + 2881, + 91, + 'Scooter Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Scooter Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Scooter Dual Plane IM', + 'Intake Manifold' + ), + ( + 2882, + 91, + 'Scooter Alum. Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Scooter Alum. Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Scooter Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 2883, + 92, + 'Classic Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Classic Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C & B Chevy SB Classic Dual Plane IM', + 'Intake Manifold' + ), + ( + 2884, + 92, + 'Street Classic Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Classic Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C & B Chevy SB Street Classic Dual Plane IM', + 'Intake Manifold' + ), + ( + 2885, + 92, + 'Classic Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Classic Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C & B Chevy SB Classic Single Plane IM', + 'Intake Manifold' + ), + ( + 2886, + 92, + 'Super Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C & B Chevy SB Super Single Plane IM', + 'Intake Manifold' + ), + ( + 2887, + 91, + 'Vortex Ultra Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vortex Ultra Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Vortex Ultra Light Single Plane IM', + 'Intake Manifold' + ), + ( + 2888, + 91, + 'Power Tower Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Power Tower Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Power Tower Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2889, + 91, + 'Ultimate Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ultimate Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Ultimate Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2890, + 92, + 'Classic Low Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Classic Low Tunnel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C & B Chevy SB Classic Low Rise Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2891, + 92, + 'Classic Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Classic High Tunnel', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C & B Chevy SB Classic High Rise Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2892, + 91, + 'Screamer Ultra Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Screamer Ultra Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Screamer Ultra Light Dual Plane IM', + 'Intake Manifold' + ), + ( + 2893, + 91, + 'Rumble Pipe Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rumble Pipe Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Rumble Pipe Small Headers', + 'Exhaust Manifold' + ), + ( + 2894, + 91, + 'Street Lion Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lion Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Street Lion Small Headers', + 'Exhaust Manifold' + ), + ( + 2895, + 91, + 'Window Rattler Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Window Rattler Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Window Rattler Larger Headers', + 'Exhaust Manifold' + ), + ( + 2896, + 92, + 'Masterpiece', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Masterpiece', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Masterpiece EM', + 'Exhaust Manifold' + ), + ( + 2897, + 92, + 'Blueprint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Blueprint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Blueprint EM', + 'Exhaust Manifold' + ), + ( + 2898, + 92, + 'Beach Racer Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Beach Racer Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Beach Racer Small Headers', + 'Exhaust Manifold' + ), + ( + 2899, + 91, + 'Street Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy SB Street Mod EM', + 'Exhaust Manifold' + ), + ( + 2900, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Chevy SB Wedge (.15) Piston', + 'Pistons' + ), + ( + 2901, + 41, + 'Wedge (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Chevy SB Wedge (.35) Piston', + 'Pistons' + ), + ( + 2902, + 41, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Chevy SB Domed (.2) Piston', + 'Pistons' + ), + ( + 2903, + 41, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Chevy SB Domed (.3) Piston', + 'Pistons' + ), + ( + 2904, + 92, + 'Domed (.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Domed (.1) Piston', + 'Pistons' + ), + ( + 2905, + 92, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Domed (.2) Piston', + 'Pistons' + ), + ( + 2906, + 92, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Domed (.3) Piston', + 'Pistons' + ), + ( + 2907, + 92, + 'Domed (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Domed (.4) Piston', + 'Pistons' + ), + ( + 2908, + 92, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Domed (.5) Piston', + 'Pistons' + ), + ( + 2909, + 92, + 'Domed (.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Domed (.6) Piston', + 'Pistons' + ), + ( + 2910, + 92, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'C&B Chevy SB Domed (.75) Piston', + 'Pistons' + ), + ( + 2911, + 84, + 'Speed Lifter Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lifter Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chevy SB Speed Lifter Solid Valvetrain', + 'Valve Train' + ), + ( + 2912, + 84, + 'Street Plus Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Plus Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chevy SB Street Plus Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2913, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chevy SB Premier Roller Valvetrain', + 'Valve Train' + ), + ( + 2914, + 85, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chevy SB Performance Solid Valvetrain', + 'Valve Train' + ), + ( + 2915, + 85, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chevy SB Performance Hydraulic Valvetrain', + 'Valve Train' + ), + ( + 2916, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chevy SB Race Roller Valvetrain', + 'Valve Train' + ), + ( + 2917, + 6, + 'Stock 364 Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '364 Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock 364 DP IM', + 'Intake Manifold' + ), + ( + 2918, + 6, + 'Stock 401/425 Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '401/425 Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock 401/425 DP IM', + 'Intake Manifold' + ), + ( + 2919, + 80, + 'Improved Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Improved Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Improved DP IM', + 'Intake Manifold' + ), + ( + 2920, + 80, + 'Breezer Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Breezer Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Breezer DP IM', + 'Intake Manifold' + ), + ( + 2921, + 93, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Buick Nailhead Street Port DP IM', + 'Intake Manifold' + ), + ( + 2922, + 93, + 'Street Port Alum. Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Port Alum.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Buick Nailhead Street Port Aluminum DP IM', + 'Intake Manifold' + ), + ( + 2923, + 80, + 'Tornado Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tornado Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Tornado SP IM', + 'Intake Manifold' + ), + ( + 2924, + 93, + 'Street Port Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Port Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Buick Nailhead Street Port SP IM', + 'Intake Manifold' + ), + ( + 2925, + 80, + 'Wind Tunnel Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wind Tunnel Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Wind Tunnel SP IM', + 'Intake Manifold' + ), + ( + 2926, + 80, + 'Cyclone Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cyclone Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Cyclone Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2927, + 80, + 'Hurricane Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hurricane Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Hurricane Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2928, + 80, + 'Super Cyclone Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Cyclone Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Super Cyclone Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2929, + 83, + 'Performance Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Performance DP IM', + 'Intake Manifold' + ), + ( + 2930, + 83, + 'Perf. Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Alum. Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Performance Aluminum DP IM', + 'Intake Manifold' + ), + ( + 2931, + 93, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford SB Road Squire DP IM', + 'Intake Manifold' + ), + ( + 2932, + 93, + 'Road Squire LW Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rd. Squire Alum. Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford SB Road Squire Aluminum SP IM', + 'Intake Manifold' + ), + ( + 2933, + 93, + 'Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford SB Centurion DP IM', + 'Intake Manifold' + ), + ( + 2934, + 93, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford SB Street Knight SP IM', + 'Intake Manifold' + ), + ( + 2935, + 83, + 'Lightning Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightning Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Lightning SP IM', + 'Intake Manifold' + ), + ( + 2936, + 93, + 'Commander Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Commander Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford SB Commander SP IM', + 'Intake Manifold' + ), + ( + 2937, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford SB Emperor Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2938, + 83, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Midget Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2939, + 83, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Strip King Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2940, + 93, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford SB Street Lord Tunnel Ram IM', + 'Intake Manifold' + ), + ( + 2941, + 41, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford SB Domed (.3) Piston', + 'Pistons' + ), + ( + 2942, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford SB Domed (.75) Piston', + 'Pistons' + ), + ( + 2943, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford SB Wedge (.5) Piston', + 'Pistons' + ), + ( + 2944, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford SB Wedge (.15) Piston', + 'Pistons' + ), + ( + 2945, + 41, + 'Wedge (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford SB Wedge (.4) Piston', + 'Pistons' + ), + ( + 2946, + 86, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford SB Domed (.2) Piston', + 'Pistons' + ), + ( + 2947, + 86, + 'Domed (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford SB Domed (.35) Piston', + 'Pistons' + ), + ( + 2948, + 86, + 'Domed (.65)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.65)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford SB Domed (.65) Piston', + 'Pistons' + ), + ( + 2949, + 87, + 'Wedge (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford SB Wedge (.3) Piston', + 'Pistons' + ), + ( + 2950, + 87, + 'Wedge (.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford SB Wedge (.6) Piston', + 'Pistons' + ), + ( + 2951, + 87, + 'Recessed (-.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.45)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford SB Recessed (-.45) Piston', + 'Pistons' + ), + ( + 2952, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford SB Recessed (-.25) Piston', + 'Pistons' + ), + ( + 2953, + 86, + 'Recessed (-.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford SB Recessed (-.15) Piston', + 'Pistons' + ), + ( + 2954, + 86, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Domed (.3) Piston', + 'Pistons' + ), + ( + 2955, + 87, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Domed (.25) Piston', + 'Pistons' + ), + ( + 2956, + 86, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Domed (.5) Piston', + 'Pistons' + ), + ( + 2957, + 86, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Wedge (.25) Piston', + 'Pistons' + ), + ( + 2958, + 87, + 'Wedge (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Wedge (.35) Piston', + 'Pistons' + ), + ( + 2959, + 86, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Wedge (.15) Piston', + 'Pistons' + ), + ( + 2960, + 87, + 'Recessed (-.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Recessed (-.2) Piston', + 'Pistons' + ), + ( + 2961, + 86, + 'Recessed (-.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.1)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Recessed (-.1) Piston', + 'Pistons' + ), + ( + 2962, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Recessed (-.25) Piston', + 'Pistons' + ), + ( + 2963, + 86, + 'Recessed (-.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Recessed (-.35) Piston', + 'Pistons' + ), + ( + 2964, + 86, + 'Flat Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flat Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Flat Top Piston', + 'Pistons' + ), + ( + 2965, + 87, + 'Flat Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flat Top', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Flat Top Piston', + 'Pistons' + ), + ( + 2966, + 88, + 'Century Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Century Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Buick Nailhead Century Special Rods', + 'Connecting Rods' + ), + ( + 2967, + 88, + 'Riviera Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Riviera Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Buick Nailhead Riviera Special Rods', + 'Connecting Rods' + ), + ( + 2968, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Champion Rods', + 'Connecting Rods' + ), + ( + 2969, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Legend Rods', + 'Connecting Rods' + ), + ( + 2970, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Lightweight Rods', + 'Connecting Rods' + ), + ( + 2971, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Marathon Rods', + 'Connecting Rods' + ), + ( + 2972, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Stump Puller Rods', + 'Connecting Rods' + ), + ( + 2973, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Street Max Rods', + 'Connecting Rods' + ), + ( + 2974, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Super Max Rods', + 'Connecting Rods' + ), + ( + 2975, + 88, + 'T351 Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'T351 Billet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Ford SB T351 Billet Rods', + 'Connecting Rods' + ), + ( + 2976, + 88, + 'Power I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Power I', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Ford SB Power I Rods', + 'Connecting Rods' + ), + ( + 2977, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford SB Champion Crankshaft', + 'Crankshaft' + ), + ( + 2978, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford SB Super Max Crankshaft', + 'Crankshaft' + ), + ( + 2979, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford SB Street Max Crankshaft', + 'Crankshaft' + ), + ( + 2980, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Stump Puller Crankshaft', + 'Crankshaft' + ), + ( + 2981, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Super Max Crankshaft', + 'Crankshaft' + ), + ( + 2982, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Buick Nailhead Street Max Crankshaft', + 'Crankshaft' + ), + ( + 2983, + 88, + 'Super 300', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 300', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Buick Nailhead Super 300 Crankshaft', + 'Crankshaft' + ), + ( + 2984, + 88, + 'Super 400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 400', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Buick Nailhead Super 400 Crankshaft', + 'Crankshaft' + ), + ( + 2985, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Champion Crankshaft', + 'Crankshaft' + ), + ( + 2986, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 2987, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Buick Nailhead Marathon Crankshaft', + 'Crankshaft' + ), + ( + 2988, + 84, + 'Super Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Buick Nailhead Super Lift VT', + 'Valve Train' + ), + ( + 2989, + 85, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Buick Nailhead Performance Hydraulic VT', + 'Valve Train' + ), + ( + 2990, + 80, + 'Craftsmith Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Craftsmith Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Craftsmith Roller VT', + 'Valve Train' + ), + ( + 2991, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Buick Nailhead Race Roller VT', + 'Valve Train' + ), + ( + 2992, + 85, + 'Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Buick Nailhead Solid VT', + 'Valve Train' + ), + ( + 2993, + 84, + 'Speed Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Buick Nailhead Speed Lift VT', + 'Valve Train' + ), + ( + 2994, + 80, + 'Craftsmith Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Craftsmith Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Craftsmith Hydraulic VT', + 'Valve Train' + ), + ( + 2995, + 80, + 'Craftsmith Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Craftsmith Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Craftsmith Solid VT', + 'Valve Train' + ), + ( + 2996, + 83, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Street King VT', + 'Valve Train' + ), + ( + 2997, + 83, + 'Strip King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Strip King VT', + 'Valve Train' + ), + ( + 2998, + 84, + 'Speed Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Ford SB Speed Lift VT', + 'Valve Train' + ), + ( + 2999, + 84, + 'Super Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Ford SB Super Lift VT', + 'Valve Train' + ), + ( + 3000, + 85, + 'Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Ford SB Solid VT', + 'Valve Train' + ), + ( + 3001, + 85, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Ford SB Performance Hydraulic VT', + 'Valve Train' + ), + ( + 3002, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Ford SB Race Roller VT', + 'Valve Train' + ), + ( + 3003, + 90, + 'AI 57 Vette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3004, + 90, + 'AI 69 Runner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3005, + 90, + 'AI 1964 Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3006, + 90, + 'AI 1949 Mercury Mod Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3007, + 90, + 'AI 1966 Shelby Cobra', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3008, + 1, + 'AI 70 Mustang', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3009, + 3, + 'AI Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3010, + 1, + 'AI 1953 Ford Crestline', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3011, + 3, + 'AI 1958 Chevy Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3012, + 3, + 'AI Chevy Bel Air', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3013, + 3, + 'AI 1955 Chevy Buick Century', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3014, + 90, + 'AI 1967 Chevy Chevelle SS', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3015, + 1, + 'AI 1970 Ford Boss 429', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3016, + 10, + 'AI 1970 Plymouth Mod Cuda', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3017, + 4, + 'AI 1947 Cadillac Series 62', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3018, + 3, + 'AI 1957 Chevy Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3019, + 89, + 'Street 45', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street 45', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Buick Nailhead Street 45 Camshaft', + 'Camshaft' + ), + ( + 3020, + 89, + 'Street 47', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street 47', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Buick Nailhead Street 47 Camshaft', + 'Camshaft' + ), + ( + 3021, + 89, + 'Street 48', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street 48', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Buick Nailhead Street 48', + 'Camshaft' + ), + ( + 3022, + 89, + 'Super 47', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 47', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Buick Nailhead Super 47 Camshaft', + 'Camshaft' + ), + ( + 3023, + 89, + 'Super 49', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 49', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Fyne Grind Buick Nailhead Super 49 Camshaft', + 'Camshaft' + ), + ( + 3024, + 6, + 'Stock 401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock 401', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock 401 Camshaft', + 'Camshaft' + ), + ( + 3025, + 6, + 'Stock 425', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock 425', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock 425 Camshaft', + 'Camshaft' + ), + ( + 3026, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford SB Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3027, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford SB Super Stream Large Headers', + 'Exhaust Manifold' + ), + ( + 3028, + 80, + 'Street Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Street Headers', + 'Exhaust Manifold' + ), + ( + 3029, + 80, + 'Performance Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Performance Headers', + 'Exhaust Manifold' + ), + ( + 3030, + 80, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Lightweight EM', + 'Exhaust Manifold' + ), + ( + 3031, + 80, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dunbar Buick Nailhead Performance EM', + 'Exhaust Manifold' + ), + ( + 3032, + 83, + 'Police Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Police Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford SB Police Special EM', + 'Exhaust Manifold' + ), + ( + 3033, + 76, + '245/50/16ZR SCUT', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Panteli 245/50/16ZR SCUT', + 'Tires' + ), + ( + 3034, + 76, + '225/60/16ZR SCUT', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Panteli 225/60/16ZR SCUT', + 'Tires' + ), + ( + 3035, + 76, + '245/45/17ZR SCUT', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Panteli 245/45/17ZR SCUT', + 'Tires' + ), + ( + 3036, + 94, + 'Street Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Street Dual Plane IM', + 'Intake Manifold' + ), + ( + 3037, + 94, + 'Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stocker Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Stocker Dual Plane IM', + 'Intake Manifold' + ), + ( + 3038, + 94, + 'Street Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Street Single Plane IM', + 'Intake Manifold' + ), + ( + 3039, + 94, + 'Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stocker Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Stocker Single Plane IM', + 'Intake Manifold' + ), + ( + 3040, + 94, + 'Super Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stocker Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Super Stocker Single Plane IM', + 'Intake Manifold' + ), + ( + 3041, + 94, + 'Intimidator Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Intimidator Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Intimidator Tunnel Ram', + 'Intake Manifold' + ), + ( + 3042, + 94, + 'Bighorn Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bighorn Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Bighorn Tunnel Ram', + 'Intake Manifold' + ), + ( + 3043, + 93, + 'Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Chrysler SB Centurion Dual Plane IM', + 'Intake Manifold' + ), + ( + 3044, + 93, + 'Commander Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Commander Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Chrysler SB Commander Single Plane IM', + 'Intake Manifold' + ), + ( + 3045, + 86, + 'Wedge (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Wedge (.3) Piston', + 'Pistons' + ), + ( + 3046, + 86, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Wedge (.5) Piston', + 'Pistons' + ), + ( + 3047, + 86, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Wedge (.75) Piston', + 'Pistons' + ), + ( + 3048, + 87, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler SB Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3049, + 87, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler SB Wedge (.25) Piston', + 'Pistons' + ), + ( + 3050, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler SB Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3051, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler SB Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3052, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler SB Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3053, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3054, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3055, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler SB Domed (.25) Piston', + 'Pistons' + ), + ( + 3056, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler SB Domed (.75) Piston', + 'Pistons' + ), + ( + 3057, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler SB Domed (1.0) Piston', + 'Pistons' + ), + ( + 3058, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler SB Domed (1.25) Piston', + 'Pistons' + ), + ( + 3059, + 87, + 'Flat Top Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flat Top Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler SB Flat Top Lightweight Piston', + 'Pistons' + ), + ( + 3060, + 95, + 'Replica', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Replica', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Percy Chrysler SB Replica Rods', + 'Connecting Rods' + ), + ( + 3061, + 95, + 'Replica Street Racer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Replica Street Racer', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Percy Chrysler SB Replica Street Racer Rods', + 'Connecting Rods' + ), + ( + 3062, + 95, + 'Factory Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Factory Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Percy Chrysler SB Factory Lightweight Rods', + 'Connecting Rods' + ), + ( + 3063, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Marathon Rods', + 'Connecting Rods' + ), + ( + 3064, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler SB Street Max Rods', + 'Connecting Rods' + ), + ( + 3065, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Lightweight Rods', + 'Connecting Rods' + ), + ( + 3066, + 88, + 'Super 340', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super 340', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Chrysler SB Super 340 Crankshaft', + 'Crankshaft' + ), + ( + 3067, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 3068, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler SB Marathon Crankshaft', + 'Crankshaft' + ), + ( + 3069, + 95, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Percy Chrysler SB Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 3070, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chrysler SB Premier Roller VT', + 'Valve Train' + ), + ( + 3071, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chrysler SB Super Lift Solid VT', + 'Valve Train' + ), + ( + 3072, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chrysler SB Race Roller VT', + 'Valve Train' + ), + ( + 3073, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler SB Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3074, + 94, + 'LA Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LA Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB LA Street EM', + 'Exhaust Manifold' + ), + ( + 3075, + 94, + 'Performance LA', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance LA', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Performance LA HP EM', + 'Exhaust Manifold' + ), + ( + 3076, + 94, + 'LA Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'LA Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB LA Small Headers', + 'Exhaust Manifold' + ), + ( + 3077, + 94, + 'Super LA Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super LA Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler SB Super LA Large Headers', + 'Exhaust Manifold' + ), + ( + 3078, + 82, + 'Double Demon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Double Demon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler SB Double Demon HP EM', + 'Exhaust Manifold' + ), + ( + 3079, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler SB Super Stream Large Headers', + 'Exhaust Manifold' + ), + ( + 3080, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Pontiac Emperor Tunnel Ram', + 'Intake Manifold' + ), + ( + 3081, + 93, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Pontiac Street Lord Tunnel Ram', + 'Intake Manifold' + ), + ( + 3082, + 93, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Pontiac Crusader Tunnel Ram', + 'Intake Manifold' + ), + ( + 3083, + 93, + 'Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Pontiac Assassin Single Plane IM', + 'Intake Manifold' + ), + ( + 3084, + 93, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Pontiac Street Knight Single Plane IM', + 'Intake Manifold' + ), + ( + 3085, + 93, + 'Super Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Pontiac Super Centurion Dual Plane IM', + 'Intake Manifold' + ), + ( + 3086, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3087, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3088, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Pontiac Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3089, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Pontiac Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3090, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Pontiac Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3091, + 86, + 'Wedge (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.2)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Wedge (.2) Piston', + 'Pistons' + ), + ( + 3092, + 87, + 'Wedge (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.4)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Pontiac Wedge (.4) Piston', + 'Pistons' + ), + ( + 3093, + 86, + 'Wedge (.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Wedge (.6) Piston', + 'Pistons' + ), + ( + 3094, + 86, + 'Wedge (.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.8)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Wedge (.8) Piston', + 'Pistons' + ), + ( + 3095, + 87, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Pontiac Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3096, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Pontiac Domed (.25) Piston', + 'Pistons' + ), + ( + 3097, + 41, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Pontiac Domed (.5) Piston', + 'Pistons' + ), + ( + 3098, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Pontiac Domed (.75) Piston', + 'Pistons' + ), + ( + 3099, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Pontiac Domed (1.0) Piston', + 'Pistons' + ), + ( + 3100, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Pontiac Domed (1.25) Piston', + 'Pistons' + ), + ( + 3101, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Champion Rods', + 'Connecting Rods' + ), + ( + 3102, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Lightweight Rods', + 'Connecting Rods' + ), + ( + 3103, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Marathon Rods', + 'Connecting Rods' + ), + ( + 3104, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Lightweight Crankshaft', + 'Crankshaft' + ), + ( + 3105, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Pontiac Marathon Crankshaft', + 'Crankshaft' + ), + ( + 3106, + 88, + 'SD Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SD Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hedgely Pontiac SD Special Crankshaft', + 'Crankshaft' + ), + ( + 3107, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Pontiac Premier Roller VT', + 'Valve Train' + ), + ( + 3108, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Pontiac Race Roller VT', + 'Valve Train' + ), + ( + 3109, + 82, + 'Airstream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Airstream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Pontiac Airstream EM', + 'Exhaust Manifold' + ), + ( + 3110, + 82, + 'Aluminum Airstream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Airstream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Pontiac Aluminum Airstream EM', + 'Exhaust Manifold' + ), + ( + 3111, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Pontiac Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 3112, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Pontiac Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3113, + 91, + 'Screamer Ultra Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Screamer Ultra Light Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Screamer Ultra Light DP IM', + 'Intake Manifold' + ), + ( + 3114, + 91, + 'Vortex Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vortex Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Vortex SP IM', + 'Intake Manifold' + ), + ( + 3115, + 91, + 'Vortex Ultra Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vortex Ultra Light Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Vortex Ultra Light SP IM', + 'Intake Manifold' + ), + ( + 3116, + 91, + 'Power Tower Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Power Tower Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rad Chevy BB Power Tower Tunnel Ram', + 'Intake Manifold' + ), + ( + 3117, + 91, + 'Ultimate Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ultimate Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Ultimate Tunnel Ram', + 'Intake Manifold' + ), + ( + 3118, + 41, + 'Recessed (-.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Recessed (-.15) Piston', + 'Pistons' + ), + ( + 3119, + 41, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3120, + 41, + 'Recessed (-.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Recessed (-.35) Piston', + 'Pistons' + ), + ( + 3121, + 41, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3122, + 41, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3123, + 41, + 'Wedge (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.35)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Wedge (.35) Piston', + 'Pistons' + ), + ( + 3124, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Wedge (.5) Piston', + 'Pistons' + ), + ( + 3125, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Wedge (.75) Piston', + 'Pistons' + ), + ( + 3126, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3127, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Domed (.25) Piston', + 'Pistons' + ), + ( + 3128, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Domed (.75) Piston', + 'Pistons' + ), + ( + 3129, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Domed (1.0) Piston', + 'Pistons' + ), + ( + 3130, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy BB Domed (1.25) Piston', + 'Pistons' + ), + ( + 3131, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford Cleveland Stump Puller Rods', + 'Connecting Rods' + ), + ( + 3132, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford Cleveland Street Max Rods', + 'Connecting Rods' + ), + ( + 3133, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford Cleveland Super Max Rods', + 'Connecting Rods' + ), + ( + 3134, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford Cleveland Lightweight Rods', + 'Connecting Rods' + ), + ( + 3135, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford Cleveland Marathon Rods', + 'Connecting Rods' + ), + ( + 3136, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford Cleveland Legend Rods', + 'Connecting Rods' + ), + ( + 3137, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Stump Puller Rods', + 'Connecting Rods' + ), + ( + 3138, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Street Max Rods', + 'Connecting Rods' + ), + ( + 3139, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Super Max Rods', + 'Connecting Rods' + ), + ( + 3140, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Lightweight Rods', + 'Connecting Rods' + ), + ( + 3141, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Marathon Rods', + 'Connecting Rods' + ), + ( + 3142, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Legend Rods', + 'Connecting Rods' + ), + ( + 3143, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Champion Rods', + 'Connecting Rods' + ), + ( + 3144, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Lightweight Rods', + 'Connecting Rods' + ), + ( + 3145, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Marathon Rods', + 'Connecting Rods' + ), + ( + 3146, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Legend Rods', + 'Connecting Rods' + ), + ( + 3147, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Champion Rods', + 'Connecting Rods' + ), + ( + 3148, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Lightweight Rods', + 'Connecting Rods' + ), + ( + 3149, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Marathon Rods', + 'Connecting Rods' + ), + ( + 3150, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Legend Rods', + 'Connecting Rods' + ), + ( + 3151, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Stump Puller Rods', + 'Connecting Rods' + ), + ( + 3152, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Street Max Rods', + 'Connecting Rods' + ), + ( + 3153, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Super Max Rods', + 'Connecting Rods' + ), + ( + 3154, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Contender Rods', + 'Connecting Rods' + ), + ( + 3155, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Champion Rods', + 'Connecting Rods' + ), + ( + 3156, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Lightweight Rods', + 'Connecting Rods' + ), + ( + 3157, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Marathon Rods', + 'Connecting Rods' + ), + ( + 3158, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Legend Rods', + 'Connecting Rods' + ), + ( + 3159, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy W Stump Puller Rods', + 'Connecting Rods' + ), + ( + 3160, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy W Street Max Rods', + 'Connecting Rods' + ), + ( + 3161, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy W Super Max Rods', + 'Connecting Rods' + ), + ( + 3162, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Stump Puller Rods', + 'Connecting Rods' + ), + ( + 3163, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Street Max Rods', + 'Connecting Rods' + ), + ( + 3164, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Super Max Rods', + 'Connecting Rods' + ), + ( + 3165, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Contender Rods', + 'Connecting Rods' + ), + ( + 3166, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Champion Rods', + 'Connecting Rods' + ), + ( + 3167, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Lightweight Rods', + 'Connecting Rods' + ), + ( + 3168, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Marathon Rods', + 'Connecting Rods' + ), + ( + 3169, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Legend Rods', + 'Connecting Rods' + ), + ( + 3170, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Contender Rods', + 'Connecting Rods' + ), + ( + 3171, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Champion Rods', + 'Connecting Rods' + ), + ( + 3172, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Lightweight Rods', + 'Connecting Rods' + ), + ( + 3173, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Marathon Rods', + 'Connecting Rods' + ), + ( + 3174, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Legend Rods', + 'Connecting Rods' + ), + ( + 3175, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Stump Puller Rods', + 'Connecting Rods' + ), + ( + 3176, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Street Max Rods', + 'Connecting Rods' + ), + ( + 3177, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Super Max Rods', + 'Connecting Rods' + ), + ( + 3178, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Contender Rods', + 'Connecting Rods' + ), + ( + 3179, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Champion Rods', + 'Connecting Rods' + ), + ( + 3180, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Lightweight Rods', + 'Connecting Rods' + ), + ( + 3181, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrylser BB Marathon Rods', + 'Connecting Rods' + ), + ( + 3182, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Legend Rods', + 'Connecting Rods' + ), + ( + 3183, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Contender Rods', + 'Connecting Rods' + ), + ( + 3184, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Champion Rods', + 'Connecting Rods' + ), + ( + 3185, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Lightweight Rods', + 'Connecting Rods' + ), + ( + 3186, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Marathon Rods', + 'Connecting Rods' + ), + ( + 3187, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Legend Rods', + 'Connecting Rods' + ), + ( + 3188, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cleveland Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3189, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cleveland Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3190, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cleveland Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3191, + 83, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cleveland Street King HP EM', + 'Exhaust Manifold' + ), + ( + 3192, + 83, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3193, + 83, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Strip King Headers', + 'Exhaust Manifold' + ), + ( + 3194, + 83, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Track King Headers', + 'Exhaust Manifold' + ), + ( + 3195, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford 385 Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3196, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford 385 Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 3197, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford 385 Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3198, + 83, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Track King Headers', + 'Exhaust Manifold' + ), + ( + 3199, + 83, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Strip King Headers', + 'Exhaust Manifold' + ), + ( + 3200, + 83, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Street King EM', + 'Exhaust Manifold' + ), + ( + 3201, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford 385 Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3202, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Hemi Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3203, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Hemi Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3204, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Hemi Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3205, + 94, + 'Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Street EM', + 'Exhaust Manifold' + ), + ( + 3206, + 94, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Performance EM', + 'Exhaust Manifold' + ), + ( + 3207, + 94, + 'Hemi Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hemi Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Hemi Headers', + 'Exhaust Manifold' + ), + ( + 3208, + 94, + 'Super Hemi Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Hemi Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Super Hemi Headers', + 'Exhaust Manifold' + ), + ( + 3209, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cadillac BB Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3210, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cadillac BB Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3211, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cadillac BB Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3212, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Cadillac BB Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3213, + 79, + 'Street Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac BB Street Headers', + 'Exhaust Manifold' + ), + ( + 3214, + 79, + 'Rad Cad Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Cad Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac BB Rad Cad Headers', + 'Exhaust Manifold' + ), + ( + 3215, + 79, + 'High Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'High Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac BB HP EM', + 'Exhaust Manifold' + ), + ( + 3216, + 91, + 'Street Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Street Mod EM', + 'Exhaust Manifold' + ), + ( + 3217, + 91, + 'Rumble Pipe Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rumble Pipe Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Rumble Pipe Headers', + 'Exhaust Manifold' + ), + ( + 3218, + 91, + 'Street Lion Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lion Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Street Lion Headers', + 'Exhaust Manifold' + ), + ( + 3219, + 91, + 'Window Rattler Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Window Rattler Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Window Rattler Headers', + 'Exhaust Manifold' + ), + ( + 3220, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy W Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3221, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy W Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 3222, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy W Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3223, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy W Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3224, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker AMC Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3225, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker AMC Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3226, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker AMC Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3227, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker AMC Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3228, + 96, + 'Stalker HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stalker HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark AMC Stalker HP EM', + 'Exhaust Manifold' + ), + ( + 3229, + 96, + 'Hunter Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hunter Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark AMC Hunter Headers', + 'Exhaust Manifold' + ), + ( + 3230, + 96, + 'Predator Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Predator Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark AMC Predator Headers', + 'Exhaust Manifold' + ), + ( + 3231, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Olds BB Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3232, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Olds BB Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3233, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Olds BB Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3234, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Olds BB Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3235, + 96, + 'Stalker HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stalker HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark Olds BB Stalker HP EM', + 'Exhaust Manifold' + ), + ( + 3236, + 96, + 'Hunter Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hunter Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark Olds BB Hunter Headers', + 'Exhaust Manifold' + ), + ( + 3237, + 96, + 'Predator Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Predator Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark Olds BB Predator Headers', + 'Exhaust Manifold' + ), + ( + 3238, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler BB Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3239, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler BB Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3240, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler BB Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3241, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler BB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 3242, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chrysler BB Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3243, + 96, + 'Stalker HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stalker HP', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark Chrysler BB Stalker HP EM', + 'Exhaust Manifold' + ), + ( + 3244, + 96, + 'Hunter Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hunter Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark Chrysler BB Hunter Headers', + 'Exhaust Manifold' + ), + ( + 3245, + 96, + 'Predator Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Predator Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark Chrysler BB Predator Headers', + 'Exhaust Manifold' + ), + ( + 3246, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford BB Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3247, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford BB Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3248, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford BB Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3249, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford BB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 3250, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Ford BB Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3251, + 83, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Street King EM', + 'Exhaust Manifold' + ), + ( + 3252, + 83, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Strip King Headers', + 'Exhaust Manifold' + ), + ( + 3253, + 83, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Track King Headers', + 'Exhaust Manifold' + ), + ( + 3254, + 82, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy BB Air Stream EM', + 'Exhaust Manifold' + ), + ( + 3255, + 82, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Air Stream Aluminum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy BB Air Stream Aluminum EM', + 'Exhaust Manifold' + ), + ( + 3256, + 82, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Interceptor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy BB Interceptor EM', + 'Exhaust Manifold' + ), + ( + 3257, + 82, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Jet Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy BB Jet Stream Headers', + 'Exhaust Manifold' + ), + ( + 3258, + 82, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stream Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quaker Chevy BB Super Stream Headers', + 'Exhaust Manifold' + ), + ( + 3259, + 91, + 'Street Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Mod', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Street Mod EM', + 'Exhaust Manifold' + ), + ( + 3260, + 91, + 'Rumble Pipe Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rumble Pipe Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Rumble Pipe Headers', + 'Exhaust Manifold' + ), + ( + 3261, + 91, + 'Street Lion Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lion Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Street Lion Headers', + 'Exhaust Manifold' + ), + ( + 3262, + 91, + 'Window Rattler Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Window Rattler Headers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy BB Window Rattler Headers', + 'Exhaust Manifold' + ), + ( + 3263, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lifter Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cleveland Speed Lifter Solid VT', + 'Valve Train' + ), + ( + 3264, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cleveland Super Lift Solid VT', + 'Valve Train' + ), + ( + 3265, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cleveland Premier Roller VT', + 'Valve Train' + ), + ( + 3266, + 83, + 'Strip King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Strip King Roller VT', + 'Valve Train' + ), + ( + 3267, + 83, + 'Track King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Track King Roller VT', + 'Valve Train' + ), + ( + 3268, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Ford 385 Speed Lift Solid VT', + 'Valve Train' + ), + ( + 3269, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Ford 385 Super Lift Solid VT', + 'Valve Train' + ), + ( + 3270, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Ford 385 Premier Roller VT', + 'Valve Train' + ), + ( + 3271, + 83, + 'Strip King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Strip King Roller VT', + 'Valve Train' + ), + ( + 3272, + 83, + 'Track King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Track King Roller VT', + 'Valve Train' + ), + ( + 3273, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Hemi Speed Lift Solid VT', + 'Valve Train' + ), + ( + 3274, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Hemi Super Lift Solid VT', + 'Valve Train' + ), + ( + 3275, + 84, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Hemi Speed Lift Hydraulic VT', + 'Valve Train' + ), + ( + 3276, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Hemi Premier Roller VT', + 'Valve Train' + ), + ( + 3277, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Hemi Race Roller VT', + 'Valve Train' + ), + ( + 3278, + 84, + 'Street Plus Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Plus Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cadillac BB Street Plus Hydraulic VT', + 'Valve Train' + ), + ( + 3279, + 84, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cadillac BB Speed Lift Hydraulic VT', + 'Valve Train' + ), + ( + 3280, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cadillac BB Speed Lift Solid VT', + 'Valve Train' + ), + ( + 3281, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cadillac BB Super Lift Solid VT', + 'Valve Train' + ), + ( + 3282, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Cadillac BB Premier Roller VT', + 'Valve Train' + ), + ( + 3283, + 85, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Cadillac BB Performance Hydraulic VT', + 'Valve Train' + ), + ( + 3284, + 85, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Cadillac BB Performance Solid VT', + 'Valve Train' + ), + ( + 3285, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Cadillac BB Race Roller', + 'Valve Train' + ), + ( + 3286, + 84, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chevy W Speed Lift Hydraulic VT', + 'Valve Train' + ), + ( + 3287, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chevy W Speed Lift Solid VT', + 'Valve Train' + ), + ( + 3288, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chevy W Super Lift Solid VT', + 'Valve Train' + ), + ( + 3289, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Millloy Chevy W Premier Roller VT', + 'Valve Train' + ), + ( + 3290, + 85, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chevy W Performance Hydraulic VT', + 'Valve Train' + ), + ( + 3291, + 85, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chevy W Performance Solid VT', + 'Valve Train' + ), + ( + 3292, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chevy W Race Roller VT', + 'Valve Train' + ), + ( + 3293, + 84, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy AMC Speed Lift Hydraulic VT', + 'Valve Train' + ), + ( + 3294, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy AMC Speed Lift Solid VT', + 'Valve Train' + ), + ( + 3295, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy AMC Super Lift Solid VT', + 'Valve Train' + ), + ( + 3296, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy AMC Premier Roller VT', + 'Valve Train' + ), + ( + 3297, + 85, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift AMC Performance Hydraulic VT', + 'Valve Train' + ), + ( + 3298, + 85, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift AMC Performance Solid VT', + 'Valve Train' + ), + ( + 3299, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift AMC Race Roller VT', + 'Valve Train' + ), + ( + 3300, + 84, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Olds BB Speed Lift Hydraulic VT', + 'Valve Train' + ), + ( + 3301, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Olds BB Speed Lift Solid VT', + 'Valve Train' + ), + ( + 3302, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Olds BB Super Lift Solid VT', + 'Valve Train' + ), + ( + 3303, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Olds BB Premier Roller VT', + 'Valve Train' + ), + ( + 3304, + 84, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Hydraulic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chrysler BB Speed Lift Hydraulic VT', + 'Valve Train' + ), + ( + 3305, + 84, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Speed Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chrysler BB Speed Lift Solid VT', + 'Valve Train' + ), + ( + 3306, + 84, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Lift Solid', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chrysler BB Super Lift Solid VT', + 'Valve Train' + ), + ( + 3307, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chrysler BB Premier Roller VT', + 'Valve Train' + ), + ( + 3308, + 84, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Premier Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Milloy Chevy BB Premier Roller VT', + 'Valve Train' + ), + ( + 3309, + 85, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Race Roller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Quik Lift Chevy BB Race Roller VT', + 'Valve Train' + ), + ( + 3310, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cleveland Stump Puller Crank', + 'Crankshaft' + ), + ( + 3311, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cleveland Street Max Crank', + 'Crankshaft' + ), + ( + 3312, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cleveland Super Max Crank', + 'Crankshaft' + ), + ( + 3313, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cleveland Contender Crank', + 'Crankshaft' + ), + ( + 3314, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cleveland Champion Crank', + 'Crankshaft' + ), + ( + 3315, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cleveland Lightweight Crank', + 'Crankshaft' + ), + ( + 3316, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cleveland Marathon Crank', + 'Crankshaft' + ), + ( + 3317, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cleveland Legend Crank', + 'Crankshaft' + ), + ( + 3318, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Stump Puller Crank', + 'Crankshaft' + ), + ( + 3319, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Street Max Crank', + 'Crankshaft' + ), + ( + 3320, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Super Max Crank', + 'Crankshaft' + ), + ( + 3321, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Contender Crank', + 'Crankshaft' + ), + ( + 3322, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Champion Crank', + 'Crankshaft' + ), + ( + 3323, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Lightweight Crank', + 'Crankshaft' + ), + ( + 3324, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Marathon Crank', + 'Crankshaft' + ), + ( + 3325, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Legend Crank', + 'Crankshaft' + ), + ( + 3326, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Hemi Stump Puller Crank', + 'Crankshaft' + ), + ( + 3327, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Hemi Street Max Crank', + 'Crankshaft' + ), + ( + 3328, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Hemi Super Max Crank', + 'Crankshaft' + ), + ( + 3329, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Contender Crank', + 'Crankshaft' + ), + ( + 3330, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Champion Crank', + 'Crankshaft' + ), + ( + 3331, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Lighweight Crank', + 'Crankshaft' + ), + ( + 3332, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Marathon Crank', + 'Crankshaft' + ), + ( + 3333, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Legend Crank', + 'Crankshaft' + ), + ( + 3334, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Stump Puller Crank', + 'Crankshaft' + ), + ( + 3335, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Street Max Crank', + 'Crankshaft' + ), + ( + 3336, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nerwcomb Cadillac BB Super Max Crank', + 'Crankshaft' + ), + ( + 3337, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Contender Crank', + 'Crankshaft' + ), + ( + 3338, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Champion Crank', + 'Crankshaft' + ), + ( + 3339, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Lightweight Crank', + 'Crankshaft' + ), + ( + 3340, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Marathon Crank', + 'Crankshaft' + ), + ( + 3341, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Legend Crank', + 'Crankshaft' + ), + ( + 3342, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy W Stump Puller Crank', + 'Crankshaft' + ), + ( + 3343, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy W Street Max Crank', + 'Crankshaft' + ), + ( + 3344, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy W Super Max Crank', + 'Crankshaft' + ), + ( + 3345, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Contender Crank', + 'Crankshaft' + ), + ( + 3346, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Champion Crank', + 'Crankshaft' + ), + ( + 3347, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Lightweight Crank', + 'Crankshaft' + ), + ( + 3348, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Marathon Crank', + 'Crankshaft' + ), + ( + 3349, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Legend Crank', + 'Crankshaft' + ), + ( + 3350, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Stump Puller Crank', + 'Crankshaft' + ), + ( + 3351, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Street Max Crank', + 'Crankshaft' + ), + ( + 3352, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Super Max Crank', + 'Crankshaft' + ), + ( + 3353, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Contender Crank', + 'Crankshaft' + ), + ( + 3354, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Champion Crank', + 'Crankshaft' + ), + ( + 3355, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Lightweight Crank', + 'Crankshaft' + ), + ( + 3356, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Marathon Crank', + 'Crankshaft' + ), + ( + 3357, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Legend Crank', + 'Crankshaft' + ), + ( + 3358, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Olds BB Stump Puller Crank', + 'Crankshaft' + ), + ( + 3359, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Olds BB Street Max Crank', + 'Crankshaft' + ), + ( + 3360, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Olds BB Super Max Crank', + 'Crankshaft' + ), + ( + 3361, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Contender Crank', + 'Crankshaft' + ), + ( + 3362, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Champion Crank', + 'Crankshaft' + ), + ( + 3363, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Lightweight Crank', + 'Crankshaft' + ), + ( + 3364, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Marathon Crank', + 'Crankshaft' + ), + ( + 3365, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Legend Crank', + 'Crankshaft' + ), + ( + 3366, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Stump Puller Crank', + 'Crankshaft' + ), + ( + 3367, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Street Max Crank', + 'Crankshaft' + ), + ( + 3368, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Super Max Crank', + 'Crankshaft' + ), + ( + 3369, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Contender Crank', + 'Crankshaft' + ), + ( + 3370, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Champion Crank', + 'Crankshaft' + ), + ( + 3371, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Lightweight Crank', + 'Crankshaft' + ), + ( + 3372, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Marathon Crank', + 'Crankshaft' + ), + ( + 3373, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Legend Crank', + 'Crankshaft' + ), + ( + 3374, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford BB Stump Puller Crank', + 'Crankshaft' + ), + ( + 3375, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford BB Street Max Crank', + 'Crankshaft' + ), + ( + 3376, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford BB Super Max Crank', + 'Crankshaft' + ), + ( + 3377, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Contender Crank', + 'Crankshaft' + ), + ( + 3378, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Champion Crank', + 'Crankshaft' + ), + ( + 3379, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Lightweight Crank', + 'Crankshaft' + ), + ( + 3380, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Marathon Crank', + 'Crankshaft' + ), + ( + 3381, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Legend Crank', + 'Crankshaft' + ), + ( + 3382, + 87, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stump Puller', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy BB Stump Puller Crank', + 'Crankshaft' + ), + ( + 3383, + 87, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy BB Street Max Crank', + 'Crankshaft' + ), + ( + 3384, + 87, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Max', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy BB Super Max Crank', + 'Crankshaft' + ), + ( + 3385, + 86, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Contender', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy BB Contender Crank', + 'Crankshaft' + ), + ( + 3386, + 86, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Champion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy BB Champion Crank', + 'Crankshaft' + ), + ( + 3387, + 86, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightweight', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy BB Lightweight Crank', + 'Crankshaft' + ), + ( + 3388, + 86, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Marathon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy BB Marathon Crank', + 'Crankshaft' + ), + ( + 3389, + 86, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Legend', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy BB Legend Crank', + 'Crankshaft' + ), + ( + 3390, + 83, + 'Strip King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Strip King Dual Plane IM', + 'Intake Manifold' + ), + ( + 3391, + 83, + 'Street King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Street King Dual Plane IM', + 'Intake Manifold' + ), + ( + 3392, + 83, + 'Strip King Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Strip King Single Plane IM', + 'Intake Manifold' + ), + ( + 3393, + 83, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Midget Tunnel Ram', + 'Intake Manifold' + ), + ( + 3394, + 83, + 'Hiboy Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hiboy Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Hiboy Tunnel Ram', + 'Intake Manifold' + ), + ( + 3395, + 83, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford BB Strip King Tunnel Ram', + 'Intake Manifold' + ), + ( + 3396, + 94, + 'Bighorn Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bighorn Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Bighorn Tunnel Ram', + 'Intake Manifold' + ), + ( + 3397, + 94, + 'Intimidator Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Intimidator Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Intimidator Tunnel Ram', + 'Intake Manifold' + ), + ( + 3398, + 94, + 'Super Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Super Stocker Single Plane IM', + 'Intake Manifold' + ), + ( + 3399, + 94, + 'Super Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Super Stocker Dual Plane IM', + 'Intake Manifold' + ), + ( + 3400, + 94, + 'Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Stocker Dual Plane IM', + 'Intake Manifold' + ), + ( + 3401, + 94, + 'Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Stocker Single Plane IM', + 'Intake Manifold' + ), + ( + 3402, + 94, + 'Street Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Street Single Plane IM', + 'Intake Manifold' + ), + ( + 3403, + 94, + 'Street Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Chrysler BB Street Dual Plane IM', + 'Intake Manifold' + ), + ( + 3404, + 93, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Road Squire Dual Plane IM', + 'Intake Manifold' + ), + ( + 3405, + 93, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Street Port Dual Plane IM', + 'Intake Manifold' + ), + ( + 3406, + 93, + 'Usurper Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Usurper Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Usurper Dual Plane IM', + 'Intake Manifold' + ), + ( + 3407, + 93, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Centurion Single Plane IM', + 'Intake Manifold' + ), + ( + 3408, + 93, + 'Commander Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Commander Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Commander Single Plane IM', + 'Intake Manifold' + ), + ( + 3409, + 93, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Track Assassin Single Plane IM', + 'Intake Manifold' + ), + ( + 3410, + 93, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Street Lord Tunnel Ram', + 'Intake Manifold' + ), + ( + 3411, + 93, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Crusader Tunnel Ram', + 'Intake Manifold' + ), + ( + 3412, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Olds BB Emperor Tunnel Ram', + 'Intake Manifold' + ), + ( + 3413, + 91, + 'Screamer Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Screamer Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Screamer Dual Plane IM', + 'Intake Manifold' + ), + ( + 3414, + 91, + 'Banshee Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Banshee Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Banshee Dual Plane IM', + 'Intake Manifold' + ), + ( + 3415, + 91, + 'Vortex Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vortex Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Vortex Single Plane IM', + 'Intake Manifold' + ), + ( + 3416, + 93, + 'Usurper Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Usurper Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Chevy W Usurper Dual Plane IM', + 'Intake Manifold' + ), + ( + 3417, + 93, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Chevy W Centurion Single Plane', + 'Intake Manifold' + ), + ( + 3418, + 93, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Chevy W Track Assassin Single Plane IM', + 'Intake Manifold' + ), + ( + 3419, + 91, + 'Banshee Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Banshee Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Banshee Single Plane IM', + 'Intake Manifold' + ), + ( + 3420, + 93, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Chevy W Street Lord Tunnel Ram', + 'Intake Manifold' + ), + ( + 3421, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Chevy W Emperor Tunnel Ram', + 'Intake Manifold' + ), + ( + 3422, + 91, + 'Power Tower Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Power Tower Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Power Tower Tunnel Ram', + 'Intake Manifold' + ), + ( + 3423, + 91, + 'Ultimate Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ultimate Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Rad Rat Chevy W Ultimate Tunnel Ram', + 'Intake Manifold' + ), + ( + 3424, + 93, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port AMC Track Assassin Single Plane IM', + 'Intake Manifold' + ), + ( + 3425, + 93, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port AMC Street Knight Single Plane IM', + 'Intake Manifold' + ), + ( + 3426, + 96, + 'Hunter Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Hunter Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark AMC Hunter Single Plane IM', + 'Intake Manifold' + ), + ( + 3427, + 96, + 'Predator Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Predator Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark AMC Predator Dual Plane IM', + 'Intake Manifold' + ), + ( + 3428, + 96, + 'Stalker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stalker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark AMC Stalker Dual Plane', + 'Intake Manifold' + ), + ( + 3429, + 96, + 'Tiger Shark Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Tiger Shark Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Shark AMC Tiger Shark Tunnel Ram', + 'Intake Manifold' + ), + ( + 3430, + 93, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port AMC Street Lord Tunnel Ram', + 'Intake Manifold' + ), + ( + 3431, + 93, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port AMC Crusader Tunnel Ram', + 'Intake Manifold' + ), + ( + 3432, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port AMC Emperor Tunnel Ram', + 'Intake Manifold' + ), + ( + 3433, + 93, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Road Squire Dual Plane IM', + 'Intake Manifold' + ), + ( + 3434, + 93, + 'Road Squire LW Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Road Squire Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Road Aquire Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 3435, + 93, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Street Port Dual Plane IM', + 'Intake Manifold' + ), + ( + 3436, + 93, + 'Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Centurion Dual Plane IM', + 'Intake Manifold' + ), + ( + 3437, + 93, + 'Usurper Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Usurper Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Usurper Dual Plane IM', + 'Intake Manifold' + ), + ( + 3438, + 93, + 'Street Lord Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Street Lord Dual Plane IM', + 'Intake Manifold' + ), + ( + 3439, + 93, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Knight Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Street Knight Single Plane IM', + 'Intake Manifold' + ), + ( + 3440, + 93, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Centurion Single Plane IM', + 'Intake Manifold' + ), + ( + 3441, + 93, + 'Super Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Super Centurion Single Plane IM', + 'Intake Manifold' + ), + ( + 3442, + 93, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track Assassin Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Track Assassin Single Plane IM', + 'Intake Manifold' + ), + ( + 3443, + 93, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Street Lord Tunnel Ram', + 'Intake Manifold' + ), + ( + 3444, + 93, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crusader Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Crusader Tunnel Ram', + 'Intake Manifold' + ), + ( + 3445, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Emperor Tunnel Ram', + 'Intake Manifold' + ), + ( + 3446, + 93, + 'Usurper Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Usurper Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cadillac BB Usurper Tunnel Ram', + 'Intake Manifold' + ), + ( + 3447, + 94, + 'Perf. Street Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Street Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Performance Street DP IM', + 'Intake Manifold' + ), + ( + 3448, + 94, + 'Perf. Alum. Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Street Aluminum Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Performance Street Aluminum Dual Plane IM', + 'Intake Manifold' + ), + ( + 3449, + 94, + 'Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Stocker Dual Plane IM', + 'Intake Manifold' + ), + ( + 3450, + 94, + 'Stocker Light Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stocker Lightweight Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Stocker Lightweight Dual Plane IM', + 'Intake Manifold' + ), + ( + 3451, + 94, + 'Super Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stocker Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Super Stocker Dual Plane IM', + 'Intake Manifold' + ), + ( + 3452, + 94, + 'Perf. Street Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performace Street Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Performace Street Single Plane IM', + 'Intake Manifold' + ), + ( + 3453, + 94, + 'Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Stocker Single Plane IM', + 'Intake Manifold' + ), + ( + 3454, + 94, + 'Super Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Stocker Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Super Stocker Single Plane IM', + 'Intake Manifold' + ), + ( + 3455, + 94, + 'Intimidator Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Intimidator Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Intimidator Tunnel Ram', + 'Intake Manifold' + ), + ( + 3456, + 94, + 'Bighorn Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bighorn Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Bighorn Tunnel Ram', + 'Intake Manifold' + ), + ( + 3457, + 93, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Road Squire Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford 385 Road Squire Dual Plane IM', + 'Intake Manifold' + ), + ( + 3458, + 83, + 'Performance Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Performance Dual Plane IM', + 'Intake Manifold' + ), + ( + 3459, + 83, + 'Lightning Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Lightning Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Lightning Single Plane IM', + 'Intake Manifold' + ), + ( + 3460, + 83, + 'Track King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Track King Dual Plane IM', + 'Intake Manifold' + ), + ( + 3461, + 83, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Strip King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Strip King Tunnel Ram', + 'Intake Manifold' + ), + ( + 3462, + 83, + 'Track King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Track King Tunnel Ram', + 'Intake Manifold' + ), + ( + 3463, + 93, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford 385 Centurion Single Plane IM', + 'Intake Manifold' + ), + ( + 3464, + 93, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Lord Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford 385 Street Lord Tunnel Ram', + 'Intake Manifold' + ), + ( + 3465, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Ford 385 Emperor Tunnel Ram', + 'Intake Manifold' + ), + ( + 3466, + 93, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street Port Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cleveland Street Port Dual Plane IM', + 'Intake Manifold' + ), + ( + 3467, + 93, + 'Emperor Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cleveland Emperor Dual Plane IM', + 'Intake Manifold' + ), + ( + 3468, + 93, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Centurion Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cleveland Centurion Single Plane IM', + 'Intake Manifold' + ), + ( + 3469, + 93, + 'Emperor Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cleveland Emperor Single Plane IM', + 'Intake Manifold' + ), + ( + 3470, + 93, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Emperor Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perfect Port Cleveland Emperor Tunnel Ram', + 'Intake Manifold' + ), + ( + 3471, + 83, + 'Performance Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Performance Dual Plane IM', + 'Intake Manifold' + ), + ( + 3472, + 83, + 'Track King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Dual Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Track King Dual Plane IM', + 'Intake Manifold' + ), + ( + 3473, + 83, + 'Performance Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Performance Single Plane IM', + 'Intake Manifold' + ), + ( + 3474, + 83, + 'Track King Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Track King Single Plane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Track King Single Plane IM', + 'Intake Manifold' + ), + ( + 3475, + 83, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Midget Tunnel Ram', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Midget Tunnel Ram', + 'Intake Manifold' + ), + ( + 3476, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3477, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford BB Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3478, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford BB Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3479, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford BB Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3480, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford BB Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3481, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Wedge (.15) Piston', + 'Pistons' + ), + ( + 3482, + 41, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Wedge (.25) Piston', + 'Pistons' + ), + ( + 3483, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Wedge (.5) Piston', + 'Pistons' + ), + ( + 3484, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Wedge 9.75) Piston', + 'Pistons' + ), + ( + 3485, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3486, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Domed (.25) Piston', + 'Pistons' + ), + ( + 3488, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Domed (.75) Piston', + 'Pistons' + ), + ( + 3489, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Domed (1.0) Piston', + 'Pistons' + ), + ( + 3490, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford BB Domed (1.25) Piston', + 'Pistons' + ), + ( + 3491, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3492, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chrysler BB Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3493, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3494, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3495, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chrysler BB Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3496, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Wedge (.15) Piston', + 'Pistons' + ), + ( + 3497, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Wedge (.5) Piston', + 'Pistons' + ), + ( + 3498, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Wedge (.75) Piston', + 'Pistons' + ), + ( + 3499, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3500, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Domed (.25) Piston', + 'Pistons' + ), + ( + 3501, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Domed (.75) Piston', + 'Pistons' + ), + ( + 3502, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Domed (1.0) Piston', + 'Pistons' + ), + ( + 3503, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chrysler BB Domed (1.25) Piston', + 'Pistons' + ), + ( + 3504, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3505, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Olds BB Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3506, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Olds BB Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3507, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Olds BB Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3508, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Olds BB Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3509, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Wedge (.15) Piston', + 'Pistons' + ), + ( + 3510, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Wedge (.5) Piston', + 'Pistons' + ), + ( + 3511, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Wedge (.75) Piston', + 'Pistons' + ), + ( + 3512, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3513, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Domed (.25) Piston', + 'Pistons' + ), + ( + 3514, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Domed (.75) Piston', + 'Pistons' + ), + ( + 3515, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Domed (1.0) Piston', + 'Pistons' + ), + ( + 3516, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Olds BB Domed (1.25) Piston', + 'Pistons' + ), + ( + 3517, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3518, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod AMC Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3519, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3520, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3521, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb AMC Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3522, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Wedge (.15) Piston', + 'Pistons' + ), + ( + 3523, + 41, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Wedge (.25) Piston', + 'Pistons' + ), + ( + 3524, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Wedge (.5) Piston', + 'Pistons' + ), + ( + 3525, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Wedge (.75) Piston', + 'Pistons' + ), + ( + 3526, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3527, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Domed (.25) Piston', + 'Pistons' + ), + ( + 3528, + 41, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Domed (.5) Piston', + 'Pistons' + ), + ( + 3529, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Domed (.75) Piston', + 'Pistons' + ), + ( + 3530, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Domed (1.0) Piston', + 'Pistons' + ), + ( + 3531, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons AMC Domed (1.25) Piston', + 'Pistons' + ), + ( + 3532, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Chevy W Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3533, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3534, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Chevy W Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3535, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Wedge (.15) Piston', + 'Pistons' + ), + ( + 3536, + 41, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Wedge (.25) Piston', + 'Pistons' + ), + ( + 3537, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Wedge (.5) Piston', + 'Pistons' + ), + ( + 3538, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Wedge (.75) Piston', + 'Pistons' + ), + ( + 3539, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3540, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Domed (.25) Piston', + 'Pistons' + ), + ( + 3541, + 41, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Domed (.5 Piston', + 'Pistons' + ), + ( + 3542, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Chevy W Domed (1.25) Piston', + 'Pistons' + ), + ( + 3543, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3544, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3545, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cadillac BB Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3546, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3547, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cadillac BB Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3548, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Domed (.25) Piston', + 'Pistons' + ), + ( + 3549, + 41, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Domed (.5) Piston', + 'Pistons' + ), + ( + 3550, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Domed (.75) Piston', + 'Pistons' + ), + ( + 3551, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Domed (1.0) Piston', + 'Pistons' + ), + ( + 3552, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Domed (1.25) Piston', + 'Pistons' + ), + ( + 3553, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Wedge (.15) Piston', + 'Pistons' + ), + ( + 3554, + 41, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Wedge (.25) Piston', + 'Pistons' + ), + ( + 3555, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Wedge (.5) Piston', + 'Pistons' + ), + ( + 3556, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Wedge (.75) Piston', + 'Pistons' + ), + ( + 3557, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cadillac BB Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3558, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Hemi Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3559, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Hemi Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3560, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Hemi Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3561, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3562, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Hemi Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3563, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Domed (.25) Piston', + 'Pistons' + ), + ( + 3564, + 41, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Domed (.5) Piston', + 'Pistons' + ), + ( + 3565, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Domed (.75) Piston', + 'Pistons' + ), + ( + 3566, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Domed (1.0) Piston', + 'Pistons' + ), + ( + 3567, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Domed (1.25) Piston', + 'Pistons' + ), + ( + 3568, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Wedge (.15) Piston', + 'Pistons' + ), + ( + 3569, + 41, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Wedge (.25) Piston', + 'Pistons' + ), + ( + 3570, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Wedge (.5) Piston', + 'Pistons' + ), + ( + 3571, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Wedge (.75) Piston', + 'Pistons' + ), + ( + 3572, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Hemi Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3573, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3574, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3575, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Ford 385 Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3576, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3577, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Ford 385 Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3578, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Domed (.25) Piston', + 'Pistons' + ), + ( + 3579, + 41, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Domed (.5) Piston', + 'Pistons' + ), + ( + 3580, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Domed (.75) Piston', + 'Pistons' + ), + ( + 3581, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Domed (1.0) Piston', + 'Pistons' + ), + ( + 3582, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Domed (1.25) Piston', + 'Pistons' + ), + ( + 3583, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Wedge (.15) Piston', + 'Pistons' + ), + ( + 3584, + 41, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Wedge (.25) Piston', + 'Pistons' + ), + ( + 3585, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Wedge (.5) Piston', + 'Pistons' + ), + ( + 3586, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Wedge (.75) Piston', + 'Pistons' + ), + ( + 3587, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Ford 385 Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3588, + 87, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cleveland Recessed (-.25) Piston', + 'Pistons' + ), + ( + 3589, + 87, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cleveland Recessed (-.5) Piston', + 'Pistons' + ), + ( + 3590, + 87, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Newcomb Cleveland Recessed (-.75) Piston', + 'Pistons' + ), + ( + 3591, + 86, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.3)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cleveland Recessed (-.3) Piston', + 'Pistons' + ), + ( + 3592, + 86, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Recessed (-.6)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Duro Rod Cleveland Recessed (-.6) Piston', + 'Pistons' + ), + ( + 3593, + 41, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Domed (.25) Piston', + 'Pistons' + ), + ( + 3594, + 41, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Domed (.5) Piston', + 'Pistons' + ), + ( + 3595, + 41, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Domed (.75) Piston', + 'Pistons' + ), + ( + 3596, + 41, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Domed (1.0) Piston', + 'Pistons' + ), + ( + 3597, + 41, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Domed (1.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Domed (1.25) Piston', + 'Pistons' + ), + ( + 3598, + 41, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.15)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Wedge (.15) Piston', + 'Pistons' + ), + ( + 3599, + 41, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.25)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Wedge (.25) Piston', + 'Pistons' + ), + ( + 3600, + 41, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.5)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Wedge (.5) Piston', + 'Pistons' + ), + ( + 3601, + 41, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (.75)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Wedge (.75) Piston', + 'Pistons' + ), + ( + 3602, + 41, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Wedge (1.0)', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'JE Pistons Cleveland Wedge (1.0) Piston', + 'Pistons' + ), + ( + 3603, + 3, + '1957 AI Chevrolet Nomad', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3604, + 90, + '1957 AI Ford Ranchero', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3605, + 7, + '1966 AI Pontiac Mod GTO', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3606, + 1, + '1932 AI Ford Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3607, + 1, + '1940 AI Ford Coupe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3608, + 1, + '1957 Ford Fairlane', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3609, + 1, + '1957 AI Ford Thunderbird', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3610, + 1, + '1964 AI Ford Galaxie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3611, + 1, + '1969 AI Ford Torino Cobra', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3612, + 1, + '1970 AI Ford Boss 302', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3613, + 3, + '1964 AI Chevy Impala', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3614, + 3, + '1970 AI Chevy Chevelle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3615, + 3, + '1963 AI Chevy Stingray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Vehicle' + ), + ( + 3616, + 79, + 'Highway Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Highway Plus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac BB Highway Plus Camshaft', + 'Camshaft' + ), + ( + 3617, + 79, + 'Streeter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Streeter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac BB Streeter Camshaft', + 'Camshaft' + ), + ( + 3618, + 79, + 'Racing', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Racing', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Leland Cadillac BB Racing Camshaft', + 'Camshaft' + ), + ( + 3619, + 94, + 'Extra Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Extra Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Extra Stock Camshaft', + 'Camshaft' + ), + ( + 3620, + 94, + 'Blueprint Classic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Blueprint Classic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Blueprint Classic Camshaft', + 'Camshaft' + ), + ( + 3621, + 83, + 'New Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'New Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 New Boss Camshaft', + 'Camshaft' + ), + ( + 3622, + 83, + 'New Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'New Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland New Boss Camshaft', + 'Camshaft' + ), + ( + 3623, + 83, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Cleveland Street King Camshaft', + 'Camshaft' + ), + ( + 3624, + 83, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Street King', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Oldfield Ford 385 Street King Camshaft', + 'Camshaft' + ), + ( + 3625, + 94, + 'Bighorn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Bighorn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Walter Hemi Bighorn Camshaft', + 'Camshaft' + ), + ( + 3626, + 97, + '225/35/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 225/35/17ZR HP', + 'Tires' + ), + ( + 3627, + 97, + '205/40/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 205/40/17ZR HP', + 'Tires' + ), + ( + 3628, + 97, + '215/40/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 215/40/16ZR HP', + 'Tires' + ), + ( + 3629, + 97, + '215/40/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 215/40/17ZR HP', + 'Tires' + ), + ( + 3630, + 97, + '225/40/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 225/40/16ZR HP', + 'Tires' + ), + ( + 3631, + 97, + '235/40/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 235/40/17ZR HP', + 'Tires' + ), + ( + 3632, + 97, + '245/40/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 245/40/17ZR HP', + 'Tires' + ), + ( + 3633, + 97, + '255/40/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 255/40/17ZR HP', + 'Tires' + ), + ( + 3634, + 97, + '265/40/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 265/40/17ZR HP', + 'Tires' + ), + ( + 3635, + 97, + '205/45/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 205/45/16ZR HP', + 'Tires' + ), + ( + 3636, + 97, + '215/45/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 215/45/16ZR HP', + 'Tires' + ), + ( + 3637, + 97, + '215/45/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 215/45/17ZR HP', + 'Tires' + ), + ( + 3638, + 97, + '225/45/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 225/45/16ZR HP', + 'Tires' + ), + ( + 3639, + 97, + '225/45/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 225/45/17ZR HP', + 'Tires' + ), + ( + 3640, + 97, + '235/45/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 235/45/17ZR HP', + 'Tires' + ), + ( + 3641, + 97, + '245/45/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 245/45/16ZR HP', + 'Tires' + ), + ( + 3642, + 97, + '205/50/15ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 205/50/15ZR HP', + 'Tires' + ), + ( + 3643, + 97, + '205/50/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 205/50/16ZR HP', + 'Tires' + ), + ( + 3644, + 97, + '205/50/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 205/50/17ZR HP', + 'Tires' + ), + ( + 3645, + 97, + '215/50/15ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 215/50/15ZR HP', + 'Tires' + ), + ( + 3646, + 97, + '215/50/17ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 215/50/17ZR HP', + 'Tires' + ), + ( + 3647, + 97, + '225/50/16ZR', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pirelli 225/50/16ZR HP', + 'Tires' + ), + ( + 3648, + 73, + 'Aluminum Alloy Slotted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Alloy Slotted', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Alloy Slotted Rim (RA00)', + 'Wheel Rims' + ), + ( + 3649, + 65, + 'Aluminum Alloy Round', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Alloy Round', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Alloy Round (RA01)', + 'Wheel Rims' + ), + ( + 3650, + 3, + '57 Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '57 Corvette', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevrolet Chevy SB 57 Corvette (220hp) Camshaft', + 'Camshaft' + ), + ( + 3651, + 37, + '1.75" Cast Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.75" CI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.75" CI Single Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3652, + 37, + '1.75" Cast Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.75" CI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.75" CI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3653, + 37, + '1.875" Cast Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.875 CI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.875" CI Single Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3654, + 37, + '1.875" Cast Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.875 CI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.875" CI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3655, + 37, + '2" Cast Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2" CI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2" CI Single Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3656, + 37, + '2" Cast Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2" CI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2" CI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3657, + 37, + '2.25" Cast Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2.25 CI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2.25" CI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3658, + 37, + '1.75" Treated Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.75 TI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.75" TI Single Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3659, + 37, + '1.75" Treated Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.75" TI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.75" TI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3660, + 37, + '1.875" Treated Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.875 TI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.875" TI Single Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3661, + 37, + '1.875" Treated Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.875 TI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.875" TI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3662, + 37, + '2" Treated Iron Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2" TI Single', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2" TI Single Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3663, + 37, + '2" Treated Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2" TI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2" TI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3664, + 37, + '2.25" Treated Iron Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2.25 TI Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2.25" TI Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3665, + 37, + '1.625" Forged Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.625 FS Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.625" FS Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3666, + 37, + '1.75" Forged Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.75 FS Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.75" FS Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3667, + 37, + '1.875" Forged Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.875 FS Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.875" FS Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3668, + 37, + '2" Forged Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2" FS Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2" FS Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3669, + 37, + '2.25" Forged Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2.25 FS Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2.25" FS Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3670, + 37, + '1.625" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.625 Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.625" Alloy Steel Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3671, + 37, + '1.75" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.75" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.75" Alloy Steel Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3672, + 37, + '2" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2" Alloy Steel Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3673, + 37, + '2.25" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2.25" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2.25" Alloy Steel Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3674, + 37, + '1.625" Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.625 Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.625" Alum. Alloy Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3675, + 37, + '1.75" Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.75 Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.75" Alum. Alloy Dual Exhaust', + 'Exhaust Pipe' + ), + ( + 3676, + 37, + '1.875" Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.875 Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.875" Alum. Alloy Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3677, + 37, + '2" Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2" alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2" Alum. Alloy Dual Exhaust pipe', + 'Exhaust Pipe' + ), + ( + 3678, + 37, + '2.25" Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '2.25 Alum. Alloy Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 2.25" Alum Alloy Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3679, + 37, + '1.875" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '1.875" Alloy Steel Dual', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Manley 1.875" Alloy Steel Dual Exhaust Pipe', + 'Exhaust Pipe' + ), + ( + 3680, + 15, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Standard Single Point Ignition', + 'Electrical System' + ), + ( + 3681, + 15, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Performance Single Point Ignition', + 'Electrical System' + ), + ( + 3682, + 15, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Standard Dual Point Ignition', + 'Electrical System' + ), + ( + 3683, + 15, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Performance Dual Point Ignition', + 'Electrical System' + ), + ( + 3684, + 15, + 'Std. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Standard Electronic Ignition', + 'Electrical System' + ), + ( + 3685, + 15, + 'Perf. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM Performance Electronic Ignition', + 'Electrical System' + ), + ( + 3686, + 8, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Standard Single Point Ignition', + 'Electrical System' + ), + ( + 3687, + 8, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Performance Single Point Ignition', + 'Electrical System' + ), + ( + 3688, + 8, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Standard Dual Point Ignition', + 'Electrical System' + ), + ( + 3689, + 8, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Performance Dual Point Ignition', + 'Electrical System' + ), + ( + 3690, + 8, + 'Std. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Standard Electronic Ignition', + 'Electrical System' + ), + ( + 3691, + 8, + 'Perf. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler Performance Electronic Ignition', + 'Electrical System' + ), + ( + 3692, + 1, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Standard Single Point Ignition', + 'Electrical System' + ), + ( + 3693, + 1, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Performance Single Point Ignition', + 'Electrical System' + ), + ( + 3694, + 1, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Standard Dual Point Ignition', + 'Electrical System' + ), + ( + 3695, + 1, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Performance Dual Point Ignition', + 'Electrical System' + ), + ( + 3696, + 1, + 'Std. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Standard Electronic Ignition', + 'Electrical System' + ), + ( + 3697, + 1, + 'Perf. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Electronic', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Performance Electronic Ignition', + 'Electrical System' + ), + ( + 3698, + 11, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Standard Single Point Ignition', + 'Electrical System' + ), + ( + 3699, + 11, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Single Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Performance Single Point Ignition', + 'Electrical System' + ), + ( + 3700, + 11, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Std. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Standard Dual Point Ignition', + 'Electrical System' + ), + ( + 3701, + 11, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Perf. Dual Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Performance Dual Point Ignition', + 'Electrical System' + ), + ( + 3702, + 45, + 'Aluminum Twistar 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Alloy Twistar 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Alloy Twistar 5', + 'Wheel Rims' + ), + ( + 3703, + 73, + 'Aluminum Rippled Orb', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Rippled Orb', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Rippled Orb', + 'Wheel Rims' + ), + ( + 3704, + 65, + 'Aluminum Hypnotic Star 6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Hypnotic Star 6', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Hypnotic Star 6', + 'Wheel Rims' + ), + ( + 3705, + 3, + 'Small Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy SB Standard Cooling System', + 'Cooling System' + ), + ( + 3706, + 3, + 'Small Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy SB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3707, + 45, + 'Aluminum Super Slot 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Super Slot 15', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Super Slot 15', + 'Wheel Rims' + ), + ( + 3708, + 73, + 'Aluminum Teardrop Slot 8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Teardrop Slot 8', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Teardrop Slot 8', + 'Wheel Rims' + ), + ( + 3709, + 65, + 'Aluminum Twistar 7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Twistar 7', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Twistar 7', + 'Wheel Rims' + ), + ( + 3710, + 45, + 'Aluminum Power Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Power Turbine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Aluminum Power Turbine', + 'Wheel Rims' + ), + ( + 3711, + 3, + 'W Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy W Block Standard Cooling System', + 'Cooling System' + ), + ( + 3712, + 3, + 'W Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'W Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy W Block Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3713, + 3, + 'Big Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy BB Standard Cooling System', + 'Cooling System' + ), + ( + 3714, + 3, + 'Big Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy BB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3715, + 8, + 'Small Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Standard Cooling System', + 'Cooling System' + ), + ( + 3716, + 8, + 'Small Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3717, + 8, + 'Small Block Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Performance Cooling System', + 'Cooling System' + ), + ( + 3718, + 8, + 'Big Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Standard Cooling System', + 'Cooling System' + ), + ( + 3719, + 8, + 'Big Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Big Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3720, + 8, + 'Big Block Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Performance Cooling System', + 'Cooling System' + ), + ( + 3721, + 11, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Standard Cooling System', + 'Cooling System' + ), + ( + 3722, + 11, + 'Heavy Duty', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Heavy Duty', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'AMC Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3723, + 4, + 'Big Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Standard Cooling System', + 'Cooling System' + ), + ( + 3724, + 4, + 'Big Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3725, + 7, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Standard Cooling System', + 'Cooling System' + ), + ( + 3726, + 7, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Performance Cooling System', + 'Cooling System' + ), + ( + 3727, + 5, + 'Big Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Standard Cooling System', + 'Cooling System' + ), + ( + 3728, + 5, + 'Big Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3729, + 6, + 'Nailhead Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Standard Cooling System', + 'Cooling System' + ), + ( + 3730, + 6, + 'Nailhead HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3731, + 4, + 'L-Head Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'L-Head Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Standard Cooling System', + 'Cooling System' + ), + ( + 3732, + 1, + 'Flathead Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flathead Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Standard Cooling System', + 'Cooling System' + ), + ( + 3733, + 1, + 'Y Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Y Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Block Standard Cooling System', + 'Cooling System' + ), + ( + 3734, + 1, + 'Y Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Y Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Block Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3735, + 1, + 'Small Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Standard Cooling System', + 'Cooling System' + ), + ( + 3736, + 1, + 'Small Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3737, + 1, + 'Small Block Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss Cooling System', + 'Cooling System' + ), + ( + 3738, + 1, + 'Big Block Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Standard', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Standard Cooling System', + 'Cooling System' + ), + ( + 3739, + 1, + 'Big Block HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB HD', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Heavy Duty Cooling System', + 'Cooling System' + ), + ( + 3740, + 3, + 'Small Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy SB Stock Lubrication System', + 'Lubrication System' + ), + ( + 3741, + 3, + 'Small Block Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy SB Peformance Lubrication System', + 'Lubrication System' + ), + ( + 3742, + 4, + 'Big Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac BB Stock Lubrication System', + 'Lubrication System' + ), + ( + 3743, + 3, + 'Big Block Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chevy BB Performance Lubrication System', + 'Lubrication System' + ), + ( + 3744, + 8, + 'Small Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler SB Stock Lubrication System', + 'Lubrication System' + ), + ( + 3745, + 8, + 'Big Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Stock Lubrication System', + 'Lubrication System' + ), + ( + 3746, + 8, + 'Big Block Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Chrysler BB Performance Lubrication System', + 'Lubrication System' + ), + ( + 3747, + 7, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Stock Lubrication System', + 'Lubrication System' + ), + ( + 3748, + 7, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Pontiac Performance Lubrication System', + 'Lubrication System' + ), + ( + 3749, + 5, + 'Big Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Stock Lubrication System', + 'Lubrication System' + ), + ( + 3750, + 5, + 'Big Block Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Olds BB Performance Lubrication System', + 'Lubrication System' + ), + ( + 3751, + 6, + 'Nailhead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Nailhead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Nailhead Stock Lubrication System', + 'Lubrication System' + ), + ( + 3752, + 4, + 'L-Head Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'L-Head Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cadillac L-Head Stock Lubrication System', + 'Lubrication System' + ), + ( + 3753, + 1, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Flathead Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead Stock Lubrication System', + 'Lubrication System' + ), + ( + 3754, + 1, + 'Y Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Y Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Y Block Stock Lubrication System', + 'Lubrication System' + ), + ( + 3755, + 1, + 'Small Block Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'SB Boss', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Boss Lubrication System', + 'Lubrication System' + ), + ( + 3756, + 1, + 'Windsor Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Windsor Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford SB Windsor Stock Lubrication System', + 'Lubrication System' + ), + ( + 3757, + 1, + 'Cleveland Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Cleveland Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Cleveland Stock Lubrication System', + 'Lubrication System' + ), + ( + 3758, + 1, + '385 Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Stock Lubrication System', + 'Lubrication System' + ), + ( + 3759, + 1, + '385 Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '385 Performance', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford 385 Performance Lubrication System', + 'Lubrication System' + ), + ( + 3760, + 1, + 'Big Block Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Stock', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Stock Lubrication System', + 'Lubrication System' + ), + ( + 3761, + 1, + 'Big Block Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'BB Perf.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford BB Performance Lubrication System', + 'Lubrication System' + ), + ( + 3762, + 15, + 'Super Muncie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Muncie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Super Muncie 4 Speed Manual', + 'Transmission' + ), + ( + 3763, + 15, + 'M21 4 Speed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'M21', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM M21 Close Ratio 4 Spd Manual', + 'Transmission' + ), + ( + 3764, + 15, + 'M13 3 Speed', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'M13', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'GM M13 HD 3 Speed Manual', + 'Transmission' + ), + ( + 3765, + 100, + '265/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 265/60/15 Radial', + 'Tires' + ), + ( + 3766, + 100, + '255/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 255/60/15 Radial', + 'Tires' + ), + ( + 3767, + 100, + '245/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 245/60/15 Radial', + 'Tires' + ), + ( + 3768, + 100, + '295/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 295/60/15 Radial', + 'Tires' + ), + ( + 3769, + 100, + '275/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 275/60/15 Radial', + 'Tires' + ), + ( + 3770, + 100, + '235/60/15 Radial', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Goodyear 235/60/15 Radial', + 'Tires' + ), + ( + 3771, + 21, + 'PowerMax FH', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'PowerMax', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Crane PowerMax Solid Lifter Ford FH Valvetrain', + 'Valve Train' + ), + ( + 3772, + 6, + 'Dynaflow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Dynaflow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Buick Dynaflow Automatic Transmission (TH-180C Copy)', + 'Transmission' + ), + ( + 3773, + 1, + '88', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + '88', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 'Ford Flathead 88 (HP) Camshaft', + 'Camshaft' + ); \ No newline at end of file diff --git a/migrations/0018-seedAbstractPartType.sql b/migrations/0018-seedAbstractPartType.sql new file mode 100644 index 000000000..d41b6b34e --- /dev/null +++ b/migrations/0018-seedAbstractPartType.sql @@ -0,0 +1,1952 @@ +INSERT INTO + abstract_part_type ( + abstract_part_type_id, + parent_abstract_part_type_id, + depends_on, + part_filename, + eapt, + gapt, + faft, + saft, + iaft, + jaft, + sw_aft, + baft, + modified_rule, + eut, + gut, + fut, + sut, + iut, + jut, + swut, + but, + part_paired, + schematic_picname1, + schematic_picname2, + block_family_compatibility, + repair_cost_modifier, + scrap_value_modifier, + garage_category + ) +VALUES + ( + 101, + NULL, + NULL, + NULL, + 'Vehicle', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 1001, + 101, + 101, + 'sys_chas', + 'Suspension', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'This is an assembly, a collection of related parts that are grouped together. They may be installed, uninstalled, scrapped or traded as if they were individual parts.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'sspa', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 2 + ), + ( + 2001, + 101, + 101, + 'sys_body', + 'Chassis', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'This is an assembly, a collection of related parts that are grouped together. They may be installed, uninstalled, scrapped or traded as if they were individual parts.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'bod%d', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 3 + ), + ( + 4001, + 101, + 101, + 'sys_driv', + 'Drive Line', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'This is an assembly, a collection of related parts that are grouped together. They may be installed, uninstalled, scrapped or traded as if they were individual parts.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'trna', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 5001, + 101, + 101, + 'drmbrake', + 'Brake Set', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'This is an assembly, a collection of related parts that are grouped together. They may be installed, uninstalled, scrapped or traded as if they were individual parts.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'brka', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 6001, + 101, + 101, + NULL, + 'Visible Parts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'This is an assembly, a collection of related parts that are grouped together. They may be installed, uninstalled, scrapped or traded as if they were individual parts.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 10001, + 5001, + 5001, + 'drmbrake', + 'Brakes', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'In general, larger diameter, thicker brakes will provide better stopping power for a greater number of hard braking maneuvers. Disc and drum brakes have different fade characteristics.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'bk%02d', + 'SUS2', + 0, + 1.0000000, + 1.0000000, + 2 + ), + ( + 11001, + 1001, + 1001, + 'shock', + 'Shocks', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Shocks help damp out oscillations and absorb vibrations caused by road surface imperfections.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'sk%02d', + 'SUSP', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 12001, + 1001, + 1001, + 'springs', + 'Springs', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Altering the front/rear spring balance can change the steering behavior of the vehicle.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'sp%02d', + 'SUSP', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 13001, + 1001, + 1001, + 'swaybar', + 'Sway Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Increases lateral stiffness of the suspension, reducing sway in hard corners.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'sw%02d', + 'SUSP', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 14001, + 1001, + 1001, + 'traction', + 'Traction Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Increases suspension stiffness during acceleration, which helps the vehicle maintain traction.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'trbp', + 'SUSP', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 15001, + 101, + 101, + 'sys_whee', + 'Wheels', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'The wheel assembly is the primary influence on the vehicle''s traction capability.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'whla', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 2 + ), + ( + 16001, + 6001, + 6001, + 'fuzzdice', + 'Fuzzy Dice', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'It''s just for looks.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 17001, + 6001, + 6001, + NULL, + 'Roll Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 18001, + 6001, + 6001, + 'windtint', + 'Window Tinting', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'It''s just for looks.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 20001, + 2001, + 2001, + 'sys_body', + 'Body', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Spoilers improve the body''s downforce.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'bod%d', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 3 + ), + ( + 21001, + 6001, + 6001, + 'wskirts', + 'Wheels Skirts', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'It''s just for looks.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 22001, + 6001, + 6001, + 'horn', + 'Horn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Sound your horn! Pick from a wide variety of distinct horn sounds.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 23001, + 6001, + 6001, + 'runboard', + 'Running Boards', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Pure looks.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 26001, + 6001, + 6001, + 'foglight', + 'Fog Lights', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Extra lights.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 28001, + NULL, + NULL, + NULL, + 'Spot Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + 'BOD%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 29001, + 2001, + 2001, + 'spoil_ch', + 'Chin Spoiler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Provides aerodynamic downforce for improved traction at high speeds; be careful because too much downforce can over-stress an unmodified suspension.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'chsp', + 'BOD%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 30001, + 2001, + 2001, + 'spoil_rr', + 'Rear Spoiler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Provides aerodynamic downforce for improved traction at high speeds; be careful because too much downforce can over-stress an unmodified suspension.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'rspp', + 'BOD%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 31001, + 6001, + 6001, + 'topstyle', + 'Top Style', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'There is a slight disadvantage to a chopped top due to the disturbed airflow, which increases drag.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 32001, + 6001, + 6001, + 'wheelieb', + 'Wheelie Bar', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Pure looks.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 33001, + NULL, + NULL, + NULL, + 'Driver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'The heavier the driver, the more total weight, but more weight can help cornering.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + 'BOD%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 34001, + 6001, + 6001, + 'fender', + 'Fenders', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Remove them to slightly reduce the drag.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 35001, + 6001, + 6001, + 'bumper', + 'Bumpers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Can be removed from some cars to lose weight.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 36001, + 101, + 101, + 'engine1', + 'Engine', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Select an engine that meets your needs; too much horsepower can be just as bad as too little. Experiment!', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'enga', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 1 + ), + ( + 37001, + 101, + 101, + 'sys_exha', + 'Exhaust', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'This is an assembly, a collection of related parts that are grouped together. They may be installed, uninstalled, scrapped or traded as if they were individual parts.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'exha', + 'VEH%d', + 0, + 1.0000000, + 1.0000000, + 1 + ), + ( + 39001, + NULL, + NULL, + NULL, + 'Cop Lights', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + 'BOD%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 40001, + 6001, + 6001, + 'hood', + 'Hood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 100001, + 15001, + 15001, + 'wheel', + 'Wheel Rims', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Holds the tires and affects wheel inertia; light wheels will help the tire spin up faster, but may make the tire tend to slip.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'wrmp', + 'WHLA', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 110001, + 15001, + 15001, + 'tire', + 'Tires', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'There''s a good reason for the old expression "where the rubber meets the road". Select a tire that meets your needs. High performance tires are precise, but can be unforgiving for the neophyte driver.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'tirp', + 'WHLA', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 120001, + 6001, + 6001, + 'hubcap', + 'Hub Caps', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 130001, + 4001, + 4001, + 'transmis', + 'Transmission', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'High gear ratios are good for quick acceleration; low ratios provide higher top speed.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'trnp', + 'TRNA', + 0, + 1.0000000, + 1.0000000, + 1 + ), + ( + 140001, + 4001, + 4001, + 'rearend', + 'Rear End', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'High ratios usually (but not always) provide better acceleration; low ratios provide potentially higher top end speeds.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'rerp', + 'TRNA', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 150001, + 4001, + 4001, + 'trancool', + 'Transmission Cooler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Protect your hard-working automatic transmission with a transmission cooler to prevent over-heating. If the automatic transmission fluid gets too hot, the transmission can be severely damaged.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'trcp', + 'TRNA', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 160001, + 36001, + 36001, + 'eblock', + 'Engine Block', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'When upgrading your engine, keep in mind that more power isn''t always appropriate if you can''t handle it. Bigger isn''t always better.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'blkp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 180001, + 36001, + 36001, + 'crnkshft', + 'Crankshaft', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Affects engine inertia and governs wear on the rotating assembly. A lighter crankshaft will give you faster throttle response and less engine braking. A heavier crankshaft is generally more durable.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'crkp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 190001, + 36001, + 36001, + 'rods', + 'Connecting Rods', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Affects engine inertia and governs wear on the rotating assembly; lightweight, heavy duty connecting rods can increase engine speed and power.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'conp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 200001, + 36001, + 36001, + 'pistons', + 'Pistons', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Affects engine inertia and governs wear on the rotating assembly; domed pistons can increase the compression ratio, which increases power. Lightweight pistons can increase the engine''s throttle response.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'pisp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 210001, + NULL, + NULL, + 'sys_cylh', + 'Cylinder Head A', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 230001, + 36001, + 36001, + 'coolpump', + 'Cooling System', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'If your engine is working hard, don''t forget to make sure the cooling system can handle the heat; be careful, however, because high-end systems can bleed off significant engine power.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'colp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 240001, + 36001, + 36001, + 'distrib', + 'Electrical System', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'High RPM, high power engines need special electrical systems to provide powerful well-timed ignition.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'elcp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 250001, + 36001, + 36001, + 'oilcool', + 'Lubrication System', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Keep your engine running smooth and help prevent damage with a high performance lubrication system; high-performance lubrication systems can bleed off significant engine power.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'lubp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 280001, + 36001, + 36001, + 'exhmani', + 'Exhaust Manifold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'There are many different types of exhaust manifolds; high performance exhausts or headers let the engine breathe and are one of the fastest ways to get a little extra performance.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'exmp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 290001, + 37001, + 37001, + 'pipes', + 'Exhaust Pipe', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'A higher performance exhaust pipe can improve your engine power.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'exhp', + 'EXHA', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 300001, + 37001, + 37001, + 'turbmuff', + 'Muffler', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'A higher performance muffler can improve your engine power.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'mufp', + 'EXHA', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 310001, + 6001, + 6001, + 'tailptip', + 'Tail Pipe Tip', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 320001, + 36001, + 36001, + 'intmani', + 'Intake Manifold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'There are a wide variety of intake manifolds; a good high performance intake manifold can be expensive, but worth it. The type of manifold you select can dramatically change the RPM power band of your engine.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'intp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 330001, + 36001, + 36001, + 'carb', + 'Carburetor', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Bigger isn''t always better; choose a carburetor that flows the right amount of air (cfm) for the displacement and peak RPM of your engine.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'crbp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 340001, + 36001, + 36001, + 'airclean', + 'Air Cleaner', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Protect your engine from the elements with a nice air filter. You don''t want dirt in there, do you?', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'aclp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 340333, + 36001, + 36001, + 'scoop', + 'Air Scoop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Provides improved air flow into the engine and can improve performance.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'ascp', + 'BOD%d', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 340666, + 36001, + 36001, + 'airclean', + 'Air Intake Point', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Install either an air cleaner or air scoop here.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'aclp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 350001, + 36001, + 36001, + 'blower', + 'Blower', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Provides a pressure boost to the cylinders, leading to substantial power increases; can radically increase engine wear if engine compression ratio is too high.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'blwp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 350666, + 36001, + 36001, + NULL, + 'Supercharger', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Install either a blower or a nitrous injector here.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 360001, + 36001, + 36001, + 'nitrous', + 'Nitrous Injector', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Increases engine power by adding oxygen but causes excessive heat and additional engine damage.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'nitp', + 'ENGN', + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 1000001, + 36001, + 36001, + 'cylhead', + 'Cylinder Head', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Cylinder heads are the single most important factor in determining engine performance. Higher compression and larger valves generally equal more power.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'hedp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 1100001, + 36001, + 36001, + 'camshaft', + 'Camshaft', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'The type of camshaft has a primary influence on engine performance. Street and Dual Purpose cams can add significant power.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'camp', + 'ENGN', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 1200001, + 36001, + 36001, + 'valvetrn', + 'Valve Train', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Controls valve action and affects maximum engine RPMs. High performance lifters can dramatically increase performance, but tend to increase engine wear.', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'vlvp', + 'CYLY', + 1, + 1.0000000, + 1.0000000, + 0 + ), + ( + 1300001, + NULL, + NULL, + 'valves', + 'Intake Valves', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 1400001, + NULL, + NULL, + 'valves', + 'Exhaust Valves', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ), + ( + 1500001, + NULL, + NULL, + 'valvecov', + 'Valve Covers', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + 0, + 1.0000000, + 1.0000000, + 0 + ); \ No newline at end of file diff --git a/migrations/0019-seedAbstractPartGrade.sql b/migrations/0019-seedAbstractPartGrade.sql new file mode 100644 index 000000000..391c75b44 --- /dev/null +++ b/migrations/0019-seedAbstractPartGrade.sql @@ -0,0 +1,8 @@ +INSERT INTO + part_grade (part_grade_id, e_text, g_text, f_text, part_grade) +VALUES + (0, 'no grade', NULL, NULL, NULL), + (1, 'Stock', NULL, NULL, NULL), + (2, 'Performance', NULL, NULL, NULL), + (3, 'High Performance', NULL, NULL, NULL), + (4, 'Racing', NULL, NULL, NULL); \ No newline at end of file diff --git a/migrations/0020-seedAbstractPartType.sql b/migrations/0020-seedAbstractPartType.sql new file mode 100644 index 000000000..9535938ae --- /dev/null +++ b/migrations/0020-seedAbstractPartType.sql @@ -0,0 +1,16273 @@ +INSERT INTO + part_type ( + part_type_id, + abstract_part_type_id, + part_type, + part_filename, + part_grade_id + ) +VALUES + (101, 101, '1932 Ford V-8 Coupe', NULL, 1), + (102, 101, '1940 Ford Deluxe Coupe', NULL, 1), + (103, 101, '1953 Ford Crestline', NULL, 1), + (104, 101, '1957 Ford Fairlane 500', NULL, 1), + (105, 101, '1957 Ford Ranchero', NULL, 1), + (106, 101, '1957 Ford Thunderbird', NULL, 1), + (107, 101, '1963 Ford Thunderbird', NULL, 1), + (108, 101, '1965 Ford Mustang', NULL, 1), + (109, 101, '1964 Ford Galaxie 500', NULL, 1), + (110, 101, '1969 Ford Torino GT', NULL, 1), + (111, 101, '1970 Ford Boss 302 Mustang', NULL, 1), + (112, 101, '1949 Mercury Coupe', NULL, 1), + (113, 101, '1957 Chevrolet Bel-Air', NULL, 1), + (114, 101, '1957 Chevrolet Corvette', NULL, 1), + (115, 101, '1957 Chevrolet Nomad Wagon', NULL, 1), + (116, 101, '1964 Chevrolet Impala', NULL, 1), + ( + 117, + 101, + '1963 Chevrolet Corvette Stingray', + NULL, + 1 + ), + (118, 101, '1958 Chevrolet Impala', NULL, 1), + (119, 101, '1967 Chevrolet Chevelle', NULL, 1), + (120, 101, '1967 Chevrolet Camaro', NULL, 1), + (121, 101, '1970 Chevrolet Chevelle', NULL, 1), + (122, 101, '1970 Chevrolet El Camino', NULL, 1), + (123, 101, '1970 Chevrolet Nova', NULL, 1), + ( + 124, + 101, + '1947 Cadillac Series 62 Sedanette', + NULL, + 1 + ), + ( + 125, + 101, + '1959 Cadillac Eldorado Biarritz', + NULL, + 1 + ), + (126, 101, '1969 Oldsmobile 4-4-2', NULL, 1), + (127, 101, '1955 Buick Century', NULL, 1), + (128, 101, '1966 Pontiac GTO', NULL, 1), + (129, 101, '1969 Pontiac GTO', NULL, 1), + (130, 101, '1973 Pontiac Firebird T/A', NULL, 1), + (131, 101, '1969 AMX', NULL, 1), + (132, 101, '1969 Dodge Charger', NULL, 1), + (133, 101, '1969 Plymouth Road Runner', NULL, 1), + (134, 101, '1970 Cuda', NULL, 1), + (135, 101, '1971 Plymouth Duster', NULL, 1), + (138, 101, 'Traffic 2 door', NULL, 1), + (140, 101, '1967 Chevrolet Camaro SS', NULL, 1), + (142, 101, '1970 Ford Boss 429 Mustang', NULL, 1), + (146, 101, 'TRFMONTE', NULL, 1), + (147, 101, 'TRFDELVR', NULL, 1), + (148, 101, 'TRFBUS', NULL, 1), + (149, 101, 'TRFGSX', NULL, 1), + (150, 101, 'TRFSTANG', NULL, 1), + (151, 101, 'TRFTBIRD', NULL, 1), + (152, 101, 'TRFPUP1', NULL, 1), + (153, 101, 'TRF2DR', NULL, 1), + (154, 101, '1969 AMC Big Bad AMX', NULL, 1), + (157, 101, '1969 Plymouth GTX Coupe', NULL, 1), + (207, 101, 'Shelby 427 Cobra', NULL, 1), + (210, 101, '1970 Ford Mustang', NULL, 1), + (211, 101, '1969 Ford Torino GT Cobra', NULL, 1), + (212, 101, '1970 Ford Mustang Mach 1', NULL, 1), + (213, 101, '1970 Plymouth Hemi Cuda', NULL, 1), + (214, 101, '1970 Plymouth 440 Cuda', NULL, 1), + (215, 101, '1970 Plymouth AAR Cuda', NULL, 1), + (216, 101, '1971 Plymouth 340 Duster', NULL, 1), + (217, 101, '1964 Chevrolet Impala SS', NULL, 1), + (218, 101, '1967 Chevrolet Chevelle SS', NULL, 1), + (219, 101, '1967 Chevrolet Camaro RS', NULL, 1), + (220, 101, '1967 Chevrolet Camaro Z-28', NULL, 1), + (221, 101, '1970 Chevrolet Chevelle SS', NULL, 1), + (222, 101, '1970 Chevrolet El Camino SS', NULL, 1), + (223, 101, '1970 Chevrolet Nova SS', NULL, 1), + (224, 101, '1969 Oldsmobile 442 W-30', NULL, 1), + (225, 101, '1969 Oldsmobile Hurst 442', NULL, 1), + (226, 101, '1969 Pontiac GTO Judge', NULL, 1), + ( + 227, + 101, + '1973 Pontiac Firebird Formula', + NULL, + 1 + ), + (228, 101, '1973 Pontiac Firebird', NULL, 1), + ( + 1001, + 1001, + 'Generic Chassis Suspension', + 'SUSP', + 1 + ), + (2001, 2001, 'Generic Chassis Body', NULL, 1), + (4001, 4001, 'Generic Driveline Assembly', NULL, 1), + (5001, 5001, 'Generic Brake Set', NULL, 1), + ( + 6001, + 6001, + 'Generic Visible Parts Assembly', + NULL, + 1 + ), + ( + 10001, + 10001, + '10 x 2 Organic Disc Brake', + NULL, + 1 + ), + ( + 10002, + 10001, + '11 x 2 Organic Disc Brake', + NULL, + 2 + ), + ( + 10003, + 10001, + '12 x 2 Organic Disc Brake', + NULL, + 2 + ), + (10004, 10001, '9 x 2 Organic Disc Brake', NULL, 1), + ( + 10005, + 10001, + '9 x 2 Organic HT Disc Brake', + NULL, + 1 + ), + ( + 10006, + 10001, + '10 x 2 Organic HT Disc Brake', + NULL, + 1 + ), + ( + 10007, + 10001, + '11 x 2 Organic HT Disc Brake', + NULL, + 2 + ), + ( + 10008, + 10001, + '12 x 2 Organic HT Disc Brake', + NULL, + 2 + ), + (10009, 10001, '9 x 2 Organic Drum Brake', NULL, 1), + ( + 10010, + 10001, + '10 x 2 Organic Drum Brake', + NULL, + 1 + ), + ( + 10011, + 10001, + '11 x 2 Organic Drum Brake', + NULL, + 1 + ), + ( + 10012, + 10001, + '12 x 2 Organic Drum Brake', + NULL, + 1 + ), + ( + 10013, + 10001, + '9 x 2 Organic HT Drum Brake', + NULL, + 1 + ), + ( + 10014, + 10001, + '10 x 2 Organic HT Drum Brake', + NULL, + 1 + ), + ( + 10015, + 10001, + '11 x 2 Organic HT Drum Brake', + NULL, + 1 + ), + ( + 10016, + 10001, + '12 x 2 Organic HT Drum Brake', + NULL, + 2 + ), + ( + 10017, + 10001, + '11 x 2 Semi-Metallic Disc Brake', + NULL, + 2 + ), + ( + 10018, + 10001, + '12 x 2 Semi-Metallic Disc Brake', + NULL, + 2 + ), + ( + 10019, + 10001, + '11 x 2 Semi-Metallic Drum Brake', + NULL, + 2 + ), + ( + 10020, + 10001, + '12 x 2 Semi-Metallic Drum Brake', + NULL, + 2 + ), + ( + 10021, + 10001, + '11 x 2 Metallic Disc Brake', + NULL, + 2 + ), + ( + 10022, + 10001, + '12 x 2 Metallic Disc Brake', + NULL, + 3 + ), + ( + 10023, + 10001, + '14 x 2 Metallic Disc Brake', + NULL, + 4 + ), + ( + 10024, + 10001, + '16 x 2 Metallic Disc Brake', + NULL, + 4 + ), + ( + 10025, + 10001, + '10 x 2 Metallic Disc Brake', + NULL, + 2 + ), + ( + 10026, + 10001, + '9 x 2 Metallic Disc Brake', + NULL, + 2 + ), + ( + 10027, + 10001, + '10 x 2 Metallic Disc ABS Brake', + NULL, + 3 + ), + ( + 10028, + 10001, + '12 x 2 Metallic Disc ABS Brake', + NULL, + 3 + ), + ( + 10029, + 10001, + '14 x 2 Metallic Disc ABS Brake', + NULL, + 4 + ), + ( + 10030, + 10001, + '16 x 2 Metallic Disc ABS Brake', + NULL, + 4 + ), + ( + 10031, + 10001, + '11 x 2 Metallic Disc ABS Brake', + NULL, + 3 + ), + ( + 10032, + 10001, + '13 x 2 Organic Drum Brake', + NULL, + 3 + ), + ( + 10033, + 10001, + '13 x 2 Organic Disc Brake', + NULL, + 3 + ), + ( + 10034, + 10001, + '13 x 2 Organic HT Drum Brake', + NULL, + 3 + ), + ( + 10035, + 10001, + '13 x 2 Organic HT Disc Brake', + NULL, + 3 + ), + ( + 10036, + 10001, + '13 x 2 Metallic Disc Brake', + NULL, + 3 + ), + ( + 10037, + 10001, + '13 x 2 Semi-Metallic Disc Brake', + NULL, + 3 + ), + ( + 10038, + 10001, + '13 x 2 Metallic Disc ABS Brake', + NULL, + 3 + ), + ( + 10039, + 10001, + '14 x 2 Organic Drum Brake', + NULL, + 3 + ), + ( + 10040, + 10001, + '14 x 2 Organic Disc Brake', + NULL, + 3 + ), + ( + 10041, + 10001, + '14 x 2 Organic HT Drum Brake', + NULL, + 3 + ), + ( + 10042, + 10001, + '14 x 2 Organic HT Disc Brake', + NULL, + 3 + ), + ( + 10043, + 10001, + '9 x 2 Semi-Metallic Disc Brake', + NULL, + 2 + ), + ( + 10044, + 10001, + '9 x 2 Metallic Disc ABS Brake', + NULL, + 3 + ), + (11001, 11001, 'LD (0.2) Shock', NULL, 1), + (11002, 11001, 'LD (0.3) Shock', NULL, 1), + (11003, 11001, 'ND (0.2) Shock', NULL, 1), + (11004, 11001, 'ND (0.3) Shock', NULL, 1), + (11005, 11001, 'HD (0.24) Shock', NULL, 2), + (11006, 11001, 'HD (0.3) Shock', NULL, 2), + (11007, 11001, 'HD (0.36) Shock', NULL, 2), + (11008, 11001, 'XHD (0.3) Shock', NULL, 3), + (11009, 11001, 'XHD (0.36) Shock', NULL, 3), + (11010, 11001, 'XHD (0.4) Shock', NULL, 3), + (11011, 11001, 'ND (0.3) 12.5" Shock', NULL, 1), + ( + 11012, + 11001, + 'Edelbrock Performer IAS Shock', + NULL, + 2 + ), + ( + 11013, + 11001, + 'Edelbrock Street Stock Race Shock', + NULL, + 3 + ), + (12001, 12001, '70 lb/in traverse spring', NULL, 1), + (12002, 12001, '80 lb/in traverse spring', NULL, 1), + (12003, 12001, '90 lb/in traverse spring', NULL, 1), + ( + 12004, + 12001, + '100 lb/in traverse spring', + NULL, + 1 + ), + ( + 12005, + 12001, + '110 lb/in traverse spring', + NULL, + 1 + ), + (12006, 12001, '120 lb/in coil spring', NULL, 1), + (12007, 12001, '130 lb/in coil spring', NULL, 1), + (12008, 12001, '140 lb/in coil spring', NULL, 1), + (12009, 12001, '150 lb/in coil spring', NULL, 1), + (12010, 12001, '160 lb/in coil spring', NULL, 1), + (12011, 12001, '170 lb/in coil spring', NULL, 1), + (12012, 12001, '180 lb/in leaf spring', NULL, 2), + (12013, 12001, '190 lb/in leaf spring', NULL, 2), + (12014, 12001, '200 lb/in leaf spring', NULL, 3), + ( + 12015, + 12001, + '210 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12016, + 12001, + '220 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12017, + 12001, + '230 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12018, + 12001, + '240 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12019, + 12001, + '250 lb/in coil-over spring', + NULL, + 3 + ), + (12020, 12001, '100 lb/in coil spring', NULL, 1), + (12021, 12001, '110 lb/in coil spring', NULL, 1), + (12022, 12001, '150 lb/in leaf spring', NULL, 1), + (12023, 12001, '160 lb/in leaf spring', NULL, 1), + (12024, 12001, '170 lb/in leaf spring', NULL, 1), + ( + 12025, + 12001, + '190 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12026, + 12001, + '200 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12027, + 12001, + '180 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12028, + 12001, + '170 lb/in coil-over spring', + NULL, + 3 + ), + ( + 12029, + 12001, + '160 lb/in coil-over spring', + NULL, + 3 + ), + (12030, 12001, '140 lb/in leaf spring', NULL, 1), + (12031, 12001, '130 lb/in leaf spring', NULL, 1), + (12032, 12001, '120 lb/in leaf spring', NULL, 1), + (12033, 12001, '110 lb/in leaf spring', NULL, 1), + (12034, 12001, '220 lb/in coil spring', NULL, 1), + (12035, 12001, '230 lb/in coil spring', NULL, 1), + (12036, 12001, '240 lb/in coil spring', NULL, 1), + (12037, 12001, '250 lb/in coil spring', NULL, 2), + (12038, 12001, '260 lb/in coil spring', NULL, 2), + (12039, 12001, '270 lb/in coil spring', NULL, 2), + (12040, 12001, '280 lb/in coil spring', NULL, 2), + (12041, 12001, '290 lb/in coil spring', NULL, 2), + (12042, 12001, '300 lb/in coil spring', NULL, 2), + (12043, 12001, '310 lb/in coil spring', NULL, 2), + (12044, 12001, '320 lb/in coil spring', NULL, 2), + (12045, 12001, '330 lb/in coil spring', NULL, 2), + (12046, 12001, '340 lb/in coil spring', NULL, 2), + (12047, 12001, '350 lb/in coil spring', NULL, 2), + (12048, 12001, '360 lb/in coil spring', NULL, 3), + (12049, 12001, '370 lb/in coil spring', NULL, 3), + (12050, 12001, '380 lb/in coil spring', NULL, 3), + (12051, 12001, '390 lb/in coil spring', NULL, 3), + (12052, 12001, '400 lb/in coil spring', NULL, 3), + (12053, 12001, '410 lb/in coil spring', NULL, 3), + (12054, 12001, '420 lb/in coil spring', NULL, 3), + (12055, 12001, '430 lb/in coil spring', NULL, 3), + (12056, 12001, '440 lb/in coil spring', NULL, 3), + (12057, 12001, '450 lb/in coil spring', NULL, 3), + (12058, 12001, '460 lb/in coil spring', NULL, 4), + (12059, 12001, '470 lb/in coil spring', NULL, 4), + (12060, 12001, '480 lb/in coil spring', NULL, 4), + (12061, 12001, '490 lb/in coil spring', NULL, 4), + (12062, 12001, '500 lb/in coil spring', NULL, 4), + (12063, 12001, '510 lb/in coil spring', NULL, 4), + (12064, 12001, '180 lb/in coil spring', NULL, 1), + (12065, 12001, 'Edelbrock AS Coil Spring', NULL, 2), + (12066, 12001, 'Edelbrock AB Coil Spring', NULL, 2), + ( + 12067, + 12001, + 'Edelbrock AGB Coil Spring', + NULL, + 2 + ), + (12068, 12001, 'Edelbrock F Coil Spring', NULL, 2), + (12069, 12001, 'Edelbrock M Coil Spring', NULL, 2), + (13001, 13001, '50 Nm Sway Bar', NULL, 1), + (13002, 13001, '60 Nm Sway Bar', NULL, 1), + (13003, 13001, '70 Nm Sway Bar', NULL, 1), + (13004, 13001, '80 Nm Sway Bar', NULL, 1), + (13005, 13001, '90 Nm Sway Bar', NULL, 1), + (13006, 13001, '100 Nm Sway Bar', NULL, 1), + (13007, 13001, '110 Nm Sway Bar', NULL, 1), + (13008, 13001, '120 Nm Sway Bar', NULL, 1), + (13009, 13001, '130 Nm Sway Bar', NULL, 1), + (13010, 13001, '140 Nm Sway Bar', NULL, 1), + (13011, 13001, '150 Nm Sway Bar', NULL, 1), + (13012, 13001, '160 Nm Sway Bar', NULL, 1), + (13013, 13001, '170 Nm Sway Bar', NULL, 1), + (13014, 13001, '180 Nm Sway Bar', NULL, 2), + (13015, 13001, '190 Nm Sway Bar', NULL, 2), + (13016, 13001, '200 Nm Sway Bar', NULL, 2), + (13017, 13001, '210 Nm Sway Bar', NULL, 2), + (13018, 13001, '220 Nm Sway Bar', NULL, 2), + (13019, 13001, '230 Nm Sway Bar', NULL, 2), + (13020, 13001, '240 Nm Sway Bar', NULL, 2), + (13021, 13001, '250 Nm Sway Bar', NULL, 3), + (13022, 13001, '260 Nm Sway Bar', NULL, 3), + (13023, 13001, '270 Nm Sway Bar', NULL, 3), + (13024, 13001, '280 Nm Sway Bar', NULL, 3), + ( + 13025, + 13001, + 'Edelbrock Tubular Panhard Rod', + NULL, + 2 + ), + (14001, 14001, 'LD Traction Bar', NULL, 1), + (14002, 14001, 'ND Traction Bar', NULL, 2), + (14003, 14001, 'HD Traction Bar', NULL, 3), + (14004, 14001, 'XHD Traction Bar', NULL, 4), + (14005, 14001, 'Edelbrock Anti-Hop Bar', NULL, 2), + (15001, 15001, 'Wheel Assembly', NULL, 1), + ( + 16001, + 16001, + 'Fuzzy Dice Accessory', + 'fuzzdice', + 1 + ), + (17001, 17001, 'Generic Roll Bar', '.bodymod', 1), + ( + 18001, + 18001, + 'Medium Window Tinting', + '.bodymod', + 1 + ), + ( + 18002, + 18001, + 'Light Window Tinting', + '.bodymod', + 1 + ), + ( + 18003, + 18001, + 'Dark Window Tinting', + '.bodymod', + 1 + ), + ( + 18004, + 18001, + 'Very Dark Window Tinting', + '.bodymod', + 1 + ), + (20101, 20001, '1932 Ford Coupe', '32ford', 1), + (20102, 20001, '1940 Ford Coupe', '40ford', 1), + (20103, 20001, '1953 Ford Crestline', '53ford', 1), + (20104, 20001, '1957 Ford Fairlane', '57fair', 1), + (20105, 20001, '1957 Ford Ranchero', '57ranch', 1), + ( + 20106, + 20001, + '1957 Ford Thunderbird', + '57tbird', + 1 + ), + ( + 20107, + 20001, + '1963 Ford Thunderbird', + '63tbird', + 1 + ), + (20108, 20001, '1964 Ford Mustang', '64stang', 1), + (20109, 20001, '1964 Ford Galaxie', '64galaxi', 1), + ( + 20110, + 20001, + '1969 Ford Torino GT', + '69torino', + 1 + ), + (20111, 20001, '1970 Ford Boss 302', '70stang', 1), + (20112, 20001, '1949 Mercury Coupe', '49merc', 1), + ( + 20113, + 20001, + '1957 Chevrolet Bel-Air', + '57chevy', + 1 + ), + ( + 20114, + 20001, + '1957 Chevrolet Corvette', + '57vette', + 1 + ), + ( + 20115, + 20001, + '1957 Chevrolet Nomad', + '57nomad', + 1 + ), + ( + 20116, + 20001, + '1964 Chevrolet Impala', + '64impala', + 1 + ), + ( + 20117, + 20001, + '1963 Chevrolet Stingray', + '63vette', + 1 + ), + ( + 20118, + 20001, + '1958 Chevrolet Impala', + '58impala', + 1 + ), + ( + 20119, + 20001, + '1967 Chevrolet Chevelle', + '67chev', + 1 + ), + ( + 20120, + 20001, + '1967 Chevrolet Camaro', + '67camaro', + 1 + ), + ( + 20121, + 20001, + '1970 Chevrolet Chevelle', + '70chev', + 1 + ), + ( + 20122, + 20001, + '1970 Chevrolet El Camino', + '70camino', + 1 + ), + (20123, 20001, '1970 Chevrolet Nova', '70nova', 1), + ( + 20124, + 20001, + '1947 Cadillac Series 62', + '47caddy', + 1 + ), + ( + 20125, + 20001, + '1959 Cadillac Eldorado', + '59caddy', + 1 + ), + ( + 20126, + 20001, + '1969 Oldsmobile 4-4-2', + '69old442', + 1 + ), + (20127, 20001, '1955 Buick Century', '55cent', 1), + (20128, 20001, '1966 Pontiac GTO', '66gto', 1), + (20129, 20001, '1969 Pontiac GTO', '69gto', 1), + ( + 20130, + 20001, + '1973 Pontiac Firebird T/A', + '73trans', + 1 + ), + (20131, 20001, '1969 AMC AMX', '69amcamx', 1), + (20132, 20001, '1969 Dodge Charger', '69charge', 1), + ( + 20133, + 20001, + '1969 Plymouth Rd. Runner', + '69runner', + 1 + ), + (20134, 20001, '1970 Plymouth Cuda', '70hemicu', 1), + ( + 20135, + 20001, + '1971 Plymouth Duster', + '71duster', + 1 + ), + ( + 20138, + 20001, + '1999 EA Traffic 2 door', + 'trf2dr', + 1 + ), + ( + 20140, + 20001, + '1967 Chevrolet Camaro SS', + '67sscam', + 1 + ), + (20146, 20001, '1990 EA TRFMONTE', 'TRFMONTE', 1), + (20147, 20001, '1990 EA TRFDELVR', 'TRFDELVR', 1), + (20148, 20001, '1990 EA TRFBUS', 'TRFBUS', 1), + (20149, 20001, '1990 EA TRFGSX', 'TRFGSX', 1), + (20150, 20001, '1990 EA TRFSTANG', 'TRFSTANG', 1), + (20151, 20001, '1990 EA TRFTBIRD', 'TRFTBIRD', 1), + (20152, 20001, '1990 EA TRFPUP1', 'TRFPUP1', 1), + (20153, 20001, '1990 EA TRF2DR', 'TRF2DR', 1), + (20157, 20001, '1969 Plymouth GTX', '69GTX', 1), + (20207, 20001, '1966 Shelby 427 Cobra', '66cob', 1), + (20210, 20001, '1970 Ford Mustang', '70stang', 1), + ( + 20211, + 20001, + '1969 Ford Torino Cobra', + '69torino', + 1 + ), + (20212, 20001, '1970 Ford Mach 1', '70STANG', 1), + ( + 20213, + 20001, + '1970 Plymouth Hemi Cuda', + '70hemicu', + 1 + ), + ( + 20214, + 20001, + '1970 Plymouth 440 Cuda', + '70hemicu', + 1 + ), + ( + 20215, + 20001, + '1970 Plymouth AAR Cuda', + '70CUDA', + 1 + ), + ( + 20216, + 20001, + '1971 Plymouth 340 Duster', + '71duster', + 1 + ), + ( + 20217, + 20001, + '1964 Chevrolet Impala SS', + '64impala', + 1 + ), + ( + 20218, + 20001, + '1967 Chevrolet Chevelle SS', + '67chev', + 1 + ), + ( + 20219, + 20001, + '1967 Chevrolet Camaro RS', + '67camaro', + 1 + ), + ( + 20220, + 20001, + '1967 Chevrolet Camaro Z-28', + '67camaro', + 1 + ), + ( + 20221, + 20001, + '1970 Chevrolet Chevelle SS', + '70CHEV', + 1 + ), + ( + 20222, + 20001, + '1970 Chevrolet El Camino SS', + '70CAMINO', + 1 + ), + ( + 20223, + 20001, + '1970 Chevrolet Nova SS', + '70nova', + 1 + ), + ( + 20224, + 20001, + '1969 Oldsmobile 4-4-2 W-30', + '69W30old', + 1 + ), + ( + 20225, + 20001, + '1969 Oldsmobile Hurst 4-4-2', + '69old442', + 1 + ), + ( + 20226, + 20001, + '1969 Pontiac GTO Judge', + '69gto', + 1 + ), + ( + 20227, + 20001, + '1973 Pontiac Firebird Formula', + '73fireb', + 1 + ), + ( + 20228, + 20001, + '1973 Pontiac Firebird', + '73fireb', + 1 + ), + (21001, 21001, '1947 Cadillac', '.bodymod', 1), + (21002, 21001, '1949 Ford', '.bodymod', 1), + ( + 21003, + 21001, + '1973 Cadillac Fleetwood Eldorado', + '.bodymod', + 1 + ), + (21004, 21001, '1953 Chevy Bel Air', '.bodymod', 1), + (21005, 21001, '1967 Chevy Impala', '.bodymod', 1), + ( + 21006, + 21001, + '1969 Chevy Chevelle', + '.bodymod', + 1 + ), + ( + 21007, + 21001, + '1970 Chevrolet Monte Carlo', + '.bodymod', + 1 + ), + ( + 21008, + 21001, + '53 C.line Fender Skirt', + '.bodymod', + 1 + ), + (21009, 21001, '1955 Ford Fairlane', '.bodymod', 1), + ( + 21010, + 21001, + '1956 Ford / Thunderbird', + '.bodymod', + 1 + ), + ( + 21011, + 21001, + '1957 Ford / Thunderbird', + '.bodymod', + 1 + ), + (21012, 21001, '1937 Ford', '.bodymod', 1), + (21013, 21001, '1939 Chevrolet', '.bodymod', 1), + ( + 21014, + 21001, + '40 Coupe Fender Skirt', + '.bodymod', + 1 + ), + (21015, 21001, '1941 Plymouth', '.bodymod', 1), + ( + 21016, + 21001, + '49 Coupe Fender Skirt', + '.bodymod', + 1 + ), + (22001, 22001, 'Vanilla Horn', NULL, 1), + (22002, 22001, 'Cuda A', NULL, 1), + (22003, 22001, 'Cuda B', NULL, 1), + (22004, 22001, 'Cuda 2stone', NULL, 1), + (22005, 22001, 'El Camino A', NULL, 1), + (22006, 22001, 'El Camino B', NULL, 1), + (22007, 22001, 'Firebird A', NULL, 1), + (22008, 22001, 'Firebird B', NULL, 1), + (22009, 22001, 'Fury', NULL, 1), + (22010, 22001, 'GMC', NULL, 1), + (22011, 22001, 'Hillman', NULL, 1), + (22012, 22001, 'Impala', NULL, 1), + (22013, 22001, 'Metropolitan', NULL, 1), + (22014, 22001, 'Metropolitan Siren', NULL, 1), + (22015, 22001, 'Mustang', NULL, 1), + (22016, 22001, 'Snubnose', NULL, 1), + (22017, 22001, 'Aoooga A', NULL, 1), + (22018, 22001, 'Aoooga B', NULL, 1), + (22019, 22001, 'Aoooga C', NULL, 1), + (22020, 22001, 'Horn La cooca racha', NULL, 1), + (22021, 22001, 'Horn Reville', NULL, 1), + (22022, 22001, 'Horn Dixie', NULL, 1), + (22023, 22001, 'Horn Charge', NULL, 1), + (22024, 22001, 'Horn Charge Short', NULL, 1), + ( + 23001, + 23001, + '1927 Ford Model T Boards', + '.bodymod', + 1 + ), + ( + 23002, + 23001, + '1931 Ford Model A Boards', + '.bodymod', + 1 + ), + ( + 23003, + 23001, + '1932 Ford Coupe Boards', + '.bodymod', + 1 + ), + ( + 23004, + 23001, + '1932 Chevrolet Confederate Boards', + '.bodymod', + 1 + ), + ( + 23005, + 23001, + '1934 Ford Coupe Boards', + '.bodymod', + 1 + ), + ( + 23006, + 23001, + '1937 Ford Coupe Boards', + '.bodymod', + 1 + ), + ( + 23007, + 23001, + '1937 Chevy Coupe Boards', + '.bodymod', + 1 + ), + ( + 23008, + 23001, + '1939 Chevy Coupe Boards', + '.bodymod', + 1 + ), + ( + 23009, + 23001, + '1940 Ford Deluxe Coupe Boards', + '.bodymod', + 1 + ), + ( + 23010, + 23001, + '1941 Plymouth Coupe Boards', + '.bodymod', + 1 + ), + ( + 23011, + 23001, + '1947 Cadillac Sedanette Boards', + '.bodymod', + 1 + ), + ( + 23012, + 23001, + '1948 Ford Woody Boards', + '.bodymod', + 1 + ), + ( + 25001, + 340333, + 'Sipper Air Scoop 1%', + 'scooprec', + 1 + ), + ( + 25002, + 340333, + 'Slipstream Air Scoop 2%', + 'scooprec', + 2 + ), + ( + 25003, + 340333, + 'Impeller Air Scoop 3%', + 'scooptri', + 3 + ), + ( + 25004, + 340333, + 'Holley Forced Air Scoop 4%', + 'scooptri', + 3 + ), + ( + 25005, + 340333, + 'Holley Ram Air Scoop 5%', + 'scooprec', + 4 + ), + ( + 25006, + 340333, + 'Pontiac Ram Air Induction System', + 'SCOOPREC', + 2 + ), + ( + 25007, + 340333, + 'Olds W30 Forced Air Induction System', + 'SCOOPREC', + 2 + ), + ( + 25008, + 340333, + 'Flared Velocity Stack', + 'STACK1F', + 2 + ), + ( + 25009, + 340333, + 'Tall Flared Velocity Stack', + 'STACK1FH', + 2 + ), + ( + 25010, + 340333, + 'Straight Velocity Stack', + 'STACK1S', + 2 + ), + ( + 25011, + 340333, + 'Dual Flared Velocity Stacks', + 'STACK2F', + 2 + ), + ( + 25012, + 340333, + 'Dual Tall Flared Velocity Stacks', + 'STACK2FH', + 2 + ), + ( + 25013, + 340333, + 'Dual Straight Velocity Stacks', + 'STACK2S', + 2 + ), + ( + 25014, + 340333, + 'Triple Flared Velocity Stacks', + 'stack3f', + 2 + ), + ( + 25015, + 340333, + 'Triple Tall Flared Velocity Stacks', + 'stack3fh', + 2 + ), + ( + 25016, + 340333, + 'Triple Straight Velocity Stacks', + 'stack3s', + 2 + ), + ( + 25017, + 340333, + 'Quad Flared Velocity Stacks', + 'STACK4F', + 2 + ), + ( + 25018, + 340333, + 'Quad Tall Flared Velocity Stacks', + 'STACK4FH', + 2 + ), + ( + 25019, + 340333, + 'Quad Straight Velocity Stacks', + 'STACK4S', + 2 + ), + ( + 25020, + 340333, + 'Eight Flared Velocity Stacks', + 'STACK8F', + 2 + ), + ( + 25021, + 340333, + 'Eight Tall Flared Velocity Stacks', + 'STACK8FH', + 2 + ), + ( + 25022, + 340333, + 'Eight Straight Velocity Stacks', + 'STACK8S', + 2 + ), + (26001, 26001, 'White Fog Lights', 'FOGWHITE', 1), + (27001, 26001, 'Amber Fog Lights', 'FOGAMBER', 1), + ( + 28001, + 28001, + '1940 Ford Spot Light', + 'SPOTLITE', + 1 + ), + ( + 28002, + 28001, + '1947 Cadillac Spot Light', + 'SPOTLITE', + 1 + ), + ( + 28003, + 28001, + '1955 Buick Spot Light', + 'SPOTLITE', + 1 + ), + ( + 28004, + 28001, + '1957 Chevy Bel-Air Spot Light', + 'SPOTLITE', + 1 + ), + ( + 28005, + 28001, + '1957 Chevy Wagon Spot Light', + 'SPOTLITE', + 1 + ), + (29001, 29001, '25 kg Spoiler', '.bodymod', 1), + (29002, 29001, '50 kg Spoiler', '.bodymod', 1), + (29003, 29001, '75 kg Spoiler', '.bodymod', 1), + (29004, 29001, '100 kg Spoiler', '.bodymod', 2), + (29005, 29001, '125 kg Spoiler', '.bodymod', 2), + (29006, 29001, '150 kg Spoiler', '.bodymod', 2), + (29007, 29001, '175 kg Spoiler', '.bodymod', 3), + (29008, 29001, '200 kg Spoiler', '.bodymod', 3), + (29009, 29001, '225 kg Spoiler', '.bodymod', 3), + (29010, 29001, '250 kg Spoiler', '.bodymod', 4), + (30001, 30001, '25 kg Rear Spoiler', 'SPOILER', 1), + (30002, 30001, '50 kg Rear Spoiler', 'SPOILER', 1), + (30003, 30001, '75 kg Rear Spoiler', 'SPOILER', 1), + (30004, 30001, '100 kg Rear Spoiler', 'SPOILER', 2), + (30005, 30001, '125 kg Rear Spoiler', 'SPOILER', 2), + (30006, 30001, '150 kg Rear Spoiler', 'SPOILER', 2), + (30007, 30001, '175 kg Rear Spoiler', 'SPOILER', 3), + (30008, 30001, '200 kg Rear Spoiler', 'SPOILER', 3), + (30009, 30001, '225 kg Rear Spoiler', 'SPOILER', 3), + (30010, 30001, '250 kg Rear Spoiler', 'SPOILER', 4), + (31166, 31001, 'Hardtop', NULL, 1), + (31167, 31001, 'Chopped Top', '.chopped', 1), + (31168, 31001, 'Convertible Top', '.convert', 1), + (31169, 31001, 'Vinyl Top', '.vinyl', 1), + ( + 32001, + 32001, + 'Wheelie Bar Attachment', + 'WHEELIE', + 1 + ), + (33001, 33001, 'Speedline Driver', 'DRIVER10', 1), + (34001, 34001, '32 Ford Fenders', '.bodymod', 0), + (35001, 35001, '32 Ford Bumpers', '.bodymod', 0), + (35002, 35001, '40 Ford Bumpers', '.bodymod', 0), + ( + 35003, + 35001, + '65 Shelby Cobra Bumpers', + '.bodymod', + 0 + ), + (36002, 36001, 'Engine Assembly', NULL, 1), + (36003, 36001, 'Buick 322 4V (255 hp)', NULL, 1), + (36004, 36001, 'Chevy SB 265 2V (162 hp)', NULL, 1), + (36005, 36001, 'Chevy SB 265 4V (180 hp)', NULL, 1), + (36006, 36001, 'Chevy SB 265 4V (195 hp)', NULL, 1), + (36007, 36001, 'Chevy SB 283 2V (185 hp)', NULL, 1), + (36008, 36001, 'Chevy SB 283 4V (220 hp)', NULL, 1), + ( + 36009, + 36001, + 'Chevy SB 283 2x4V (245 hp)', + NULL, + 1 + ), + ( + 36010, + 36001, + 'Chevy SB 283 2x4V (270 hp)', + NULL, + 1 + ), + (36011, 36001, 'Chevy SB 283 FI (283 hp)', NULL, 2), + (36012, 36001, 'Chevy SB 283 FI (290 hp)', NULL, 2), + (36013, 36001, 'Chevy SB 283 FI (275 hp)', NULL, 2), + (36014, 36001, 'Chevy SB 283 FI (315 hp)', NULL, 2), + ( + 36015, + 36001, + 'Chevy SB 265 2x4V (225 hp)', + NULL, + 1 + ), + (36016, 36001, 'Chevy SB 327 4V (250 hp)', NULL, 1), + (36017, 36001, 'Chevy SB 327 4V (300 hp)', NULL, 1), + (36018, 36001, 'Chevy SB 327 4V (340 hp)', NULL, 2), + (36019, 36001, 'Chevy SB 327 FI (360 hp)', NULL, 2), + (36020, 36001, 'Chevy SB 327 4V (365 hp)', NULL, 2), + (36021, 36001, 'Chevy SB 327 FI (375 hp)', NULL, 2), + (36022, 36001, 'Chevy SB 302 4V (290 hp)', NULL, 2), + (36023, 36001, 'Chevy SB 350 4V (295 hp)', NULL, 1), + (36024, 36001, 'Chevy SB 350 4V (250 hp)', NULL, 1), + (36025, 36001, 'Chevy SB 350 4V (350 hp)', NULL, 2), + ( + 36026, + 36001, + 'Chevy SB 350 4V (360 hp) Z/28', + NULL, + 2 + ), + ( + 36027, + 36001, + 'Chevy SB 350 4V (370 hp) LT-1', + NULL, + 2 + ), + (36028, 36001, 'Chevy SB 400 4V (265 hp)', NULL, 1), + (36029, 36001, 'Chevy W 348 4V (250 hp)', NULL, 1), + ( + 36030, + 36001, + 'Chevy W 348 3x2V (280 hp)', + NULL, + 1 + ), + (36031, 36001, 'Chevy W 348 4V (305 hp)', NULL, 2), + (36032, 36001, 'Chevy W 348 4V (315 hp)', NULL, 2), + ( + 36033, + 36001, + 'Chevy W 348 3x2V (315 hp)', + NULL, + 2 + ), + (36034, 36001, 'Chevy W 348 4V (320 hp)', NULL, 2), + ( + 36035, + 36001, + 'Chevy W 348 3x2V (335 hp)', + NULL, + 2 + ), + (36036, 36001, 'Chevy W 348 4V (340 hp)', NULL, 2), + ( + 36037, + 36001, + 'Chevy W 348 3x2V (350 hp)', + NULL, + 2 + ), + (36038, 36001, 'Chevy W 409 4V (360 hp)', NULL, 2), + (36039, 36001, 'Chevy W 409 4V (380 hp)', NULL, 2), + ( + 36040, + 36001, + 'Chevy W 409 2x4V (409 hp)', + NULL, + 2 + ), + (36041, 36001, 'Chevy W 409 4V (340 hp)', NULL, 2), + (36042, 36001, 'Chevy W 409 4V (400 hp)', NULL, 2), + ( + 36043, + 36001, + 'Chevy W 409 2x4V (425 hp)', + NULL, + 2 + ), + ( + 36044, + 36001, + 'Chevy W 427 2x4V (430 hp) Z11', + NULL, + 2 + ), + (36045, 36001, 'Chevy BB 396 4V (325 hp)', NULL, 1), + (36046, 36001, 'Chevy BB 396 4V (350 hp)', NULL, 2), + (36047, 36001, 'Chevy BB 396 4V (425 hp)', NULL, 2), + (36048, 36001, 'Chevy BB 396 4V (360 hp)', NULL, 1), + (36049, 36001, 'Chevy BB 427 4V (390 hp)', NULL, 1), + (36050, 36001, 'Chevy BB 427 4V (425 hp)', NULL, 2), + ( + 36051, + 36001, + 'Chevy BB 427 3x2V (400 hp)', + NULL, + 2 + ), + ( + 36052, + 36001, + 'Chevy BB 427 4V (430 hp) L88', + NULL, + 3 + ), + ( + 36053, + 36001, + 'Chevy BB 427 3x2V (435 hp) L89', + NULL, + 3 + ), + ( + 36054, + 36001, + 'Chevy BB 427 3x2V (435 hp) L71', + NULL, + 3 + ), + (36055, 36001, 'Chevy BB 402 4V (325 hp)', NULL, 1), + ( + 36056, + 36001, + 'Chevy BB 454 4V (345 hp) LS4', + NULL, + 1 + ), + ( + 36057, + 36001, + 'Chevy BB 454 4V (360 hp) LS5', + NULL, + 1 + ), + ( + 36058, + 36001, + 'Chevy BB 454 4V (390 hp) LS5', + NULL, + 2 + ), + ( + 36059, + 36001, + 'Chevy BB 454 4V (450 hp) LS6', + NULL, + 3 + ), + ( + 36060, + 36001, + 'Chevy BB 454 4V (465 hp) LS7', + NULL, + 3 + ), + ( + 36061, + 36001, + 'Chevy BB 454 4V (425 hp) LS6', + NULL, + 3 + ), + (36062, 36001, 'Olds 455 2V (310 hp)', NULL, 1), + (36063, 36001, 'Olds 455 4V (365 hp)', NULL, 1), + (36064, 36001, 'Olds 455 4V (375 hp)', NULL, 1), + (36065, 36001, 'Olds 455 4V (390 hp)', NULL, 2), + (36066, 36001, 'Olds 455 4V (400 hp)', NULL, 2), + (36067, 36001, 'Olds 400 4V (345 hp)', NULL, 1), + (36068, 36001, 'Olds 400 4V (350 hp)', NULL, 1), + (36069, 36001, 'Olds 400 3x2V (365 hp)', NULL, 2), + (36070, 36001, 'Olds 400 2V (300 hp)', NULL, 1), + (36071, 36001, 'Olds 400 4V W30', NULL, 2), + (36072, 36001, 'Pontiac 389 2V (215 hp)', NULL, 1), + (36073, 36001, 'Pontiac 389 2V (245 hp)', NULL, 1), + (36074, 36001, 'Pontiac 389 4V (260 hp)', NULL, 1), + (36075, 36001, 'Pontiac 389 2V (280 hp)', NULL, 1), + (36076, 36001, 'Pontiac 389 4V (303 hp)', NULL, 1), + ( + 36077, + 36001, + 'Pontiac 389 Trophy 4V (300 hp)', + NULL, + 2 + ), + ( + 36078, + 36001, + 'Pontiac 389 Trophy 3x2V (315 hp)', + NULL, + 2 + ), + ( + 36079, + 36001, + 'Pontiac 389 SD 4V (330 hp)', + NULL, + 3 + ), + ( + 36080, + 36001, + 'Pontiac 389 SD 3x2V (345 hp)', + NULL, + 3 + ), + ( + 36081, + 36001, + 'Pontiac 389 Trophy 3x2V (333 hp)', + NULL, + 2 + ), + ( + 36082, + 36001, + 'Pontiac 389 Trophy 4V (318 hp)', + NULL, + 2 + ), + ( + 36083, + 36001, + 'Pontiac 389 SD 3x2V (363 hp)', + NULL, + 2 + ), + ( + 36084, + 36001, + 'Pontiac 421 SD 2x4V (373 hp)', + NULL, + 2 + ), + (36085, 36001, 'Pontiac 421 4V (320 hp)', NULL, 1), + ( + 36086, + 36001, + 'Pontiac 421 SD 2x4V (405 hp)', + NULL, + 3 + ), + ( + 36087, + 36001, + 'Pontiac 421 HO 4V (353 hp)', + NULL, + 2 + ), + ( + 36088, + 36001, + 'Pontiac 421 HO 3x2V (370 hp)', + NULL, + 2 + ), + ( + 36089, + 36001, + 'Pontiac 421 SD 4V (390 hp)', + NULL, + 3 + ), + ( + 36090, + 36001, + 'Pontiac 421 SD 2x4V (410 hp)', + NULL, + 3 + ), + (36091, 36001, 'Pontiac 400 2V (255 hp)', NULL, 1), + (36092, 36001, 'Pontiac 400 4V (290 hp)', NULL, 1), + (36093, 36001, 'Pontiac 400 Ram Air I', NULL, 2), + (36094, 36001, 'Pontiac 400 Ram Air II', NULL, 2), + (36095, 36001, 'Pontiac 400 Ram Air IV', NULL, 2), + (36096, 36001, 'Pontiac 455 4V (360 hp)', NULL, 2), + (36097, 36001, 'Pontiac 455 4V (370 hp)', NULL, 2), + ( + 36098, + 36001, + 'Pontiac 455 HO 4V (335 hp)', + NULL, + 1 + ), + ( + 36099, + 36001, + 'Pontiac 455 SD 4V (290 hp)', + NULL, + 2 + ), + (36100, 36001, 'Ford Y 292 4V (193 hp)', NULL, 1), + (36101, 36001, 'Ford Y 292 4V (198 hp)', NULL, 1), + (36102, 36001, 'Ford Y 292 4V (212 hp)', NULL, 1), + (36103, 36001, 'Ford Y 312 4V (210 hp)', NULL, 1), + (36104, 36001, 'Ford Y 312 4V (225 hp)', NULL, 1), + (36105, 36001, 'Ford Y 312 2x4V (265 hp)', NULL, 1), + (36106, 36001, 'Ford FE 352 4V (300 hp)', NULL, 2), + ( + 36107, + 36001, + 'Ford FE 352 HP 4V (360 hp)', + NULL, + 2 + ), + (36108, 36001, 'Ford FE 352 2V (220 hp)', NULL, 1), + (36109, 36001, 'Ford FE 390 4V (300 hp)', NULL, 1), + ( + 36110, + 36001, + 'Ford FE 390 HP 4V (375 hp)', + NULL, + 2 + ), + ( + 36111, + 36001, + 'Ford FE 390 HP 3x2V (401 hp)', + NULL, + 2 + ), + ( + 36112, + 36001, + 'Ford FE 390 PI 4V (330 hp)', + NULL, + 2 + ), + ( + 36113, + 36001, + 'Ford FE 390 3x2V (340 hp)', + NULL, + 1 + ), + (36114, 36001, 'Ford FE 390 2V (250 hp)', NULL, 1), + (36115, 36001, 'Ford FE 390 2V (275 hp)', NULL, 1), + (36116, 36001, 'Ford FE 390 4V (315 hp)', NULL, 1), + ( + 36117, + 36001, + 'Ford FE 390 GT 4V (335 hp)', + NULL, + 1 + ), + (36118, 36001, 'Ford FE 406 4V (385 hp)', NULL, 2), + ( + 36119, + 36001, + 'Ford FE 406 3x2V (405 hp)', + NULL, + 2 + ), + ( + 36120, + 36001, + 'Ford FE 427 LR 4V (410 hp)', + NULL, + 2 + ), + ( + 36121, + 36001, + 'Ford FE 427 MR 4V (410 hp)', + NULL, + 2 + ), + ( + 36122, + 36001, + 'Ford FE 427 MR 2x4V (425 hp)', + NULL, + 2 + ), + ( + 36123, + 36001, + 'Ford FE 427 SOHC 4V (615 hp)', + NULL, + 3 + ), + (36124, 36001, 'Ford FE 428 4V (345 hp)', NULL, 1), + (36125, 36001, 'Ford FE 428 4V (360 hp)', NULL, 1), + ( + 36126, + 36001, + 'Ford FE 428 CJ 4V (335 hp)', + NULL, + 2 + ), + ( + 36127, + 36001, + 'Ford FE 428 SCJ 4V (335 hp)', + NULL, + 2 + ), + (36128, 36001, 'Ford SB 260 2V (164 hp)', NULL, 1), + ( + 36129, + 36001, + 'Ford SB 289 HP 4V (271 hp)', + NULL, + 1 + ), + (36130, 36001, 'Ford SB 289 4V (210 hp)', NULL, 1), + (36131, 36001, 'Ford SB 289 4V (225 hp)', NULL, 1), + (36132, 36001, 'Ford SB 302 2V (210 hp)', NULL, 1), + (36133, 36001, 'Ford SB 302 4V (230 hp)', NULL, 1), + ( + 36134, + 36001, + 'Ford SB 302 Boss 4V (290 hp)', + NULL, + 2 + ), + (36135, 36001, 'Ford SB 351W 2V (250 hp)', NULL, 1), + (36136, 36001, 'Ford SB 351W 4V (290 hp)', NULL, 1), + (36137, 36001, 'Ford SB 351W 2V (240 hp)', NULL, 1), + (36138, 36001, 'Ford 351C 2V (250 hp)', NULL, 1), + (36139, 36001, 'Ford 351C 4V (300 hp)', NULL, 1), + (36140, 36001, 'Ford 351C CJ 4V (280 hp)', NULL, 2), + ( + 36141, + 36001, + 'Ford 351C Boss 4V (330 hp)', + NULL, + 2 + ), + (36142, 36001, 'Ford 351C HO 4V (275 hp)', NULL, 2), + (36143, 36001, 'Ford 351C 2V (177 hp)', NULL, 1), + (36144, 36001, 'Ford 400C 2V (260 hp)', NULL, 1), + (36145, 36001, 'Ford 400C 2V (172 hp)', NULL, 1), + (36146, 36001, 'Ford 385 429 4V (360 hp)', NULL, 1), + (36147, 36001, 'Ford 385 429 2V (320 hp)', NULL, 1), + ( + 36148, + 36001, + 'Ford 385 429 SCJ 4V (375 hp)', + NULL, + 2 + ), + ( + 36149, + 36001, + 'Ford 385 429 CJ 4V (370 hp)', + NULL, + 2 + ), + (36150, 36001, 'Ford 385 429 4V (212 hp)', NULL, 1), + (36151, 36001, 'Ford 385 429 NASCAR', NULL, 3), + (36152, 36001, 'Ford 385 460 4V (365 hp)', NULL, 1), + (36153, 36001, 'Ford 385 460 4V (224 hp)', NULL, 1), + ( + 36154, + 36001, + 'Ford 385 460 PI 4V (274 hp)', + NULL, + 1 + ), + ( + 36155, + 36001, + 'Chrysler BB 383 2V (305 hp)', + NULL, + 1 + ), + ( + 36156, + 36001, + 'Chrysler BB 383 4V (325 hp)', + NULL, + 1 + ), + ( + 36157, + 36001, + 'Chrysler BB 383 2V (270 hp)', + NULL, + 1 + ), + ( + 36158, + 36001, + 'Chrysler BB 383 2x4V (330 hp)', + NULL, + 2 + ), + ( + 36159, + 36001, + 'Chrysler BB 400 2V (190 hp)', + NULL, + 1 + ), + ( + 36160, + 36001, + 'Chrysler BB 400 4V (255 hp)', + NULL, + 1 + ), + ( + 36161, + 36001, + 'Chrysler BB 400 4V (205 hp)', + NULL, + 1 + ), + ( + 36162, + 36001, + 'Chrysler BB 413 4V (350 hp)', + NULL, + 1 + ), + ( + 36163, + 36001, + 'Chrysler BB 413 2x4V (380 hp)', + NULL, + 1 + ), + ( + 36164, + 36001, + 'Chrysler BB 413 Long Ram 2x4V (375 hp)', + NULL, + 2 + ), + ( + 36165, + 36001, + 'Chrysler BB 413 Short Ram 2x4V (400 hp)', + NULL, + 2 + ), + ( + 36166, + 36001, + 'Chrysler BB 413 Max Wedge 2x4V (410 hp)', + NULL, + 2 + ), + ( + 36167, + 36001, + 'Chrysler BB 413 Max Wedge 2x4V (420 hp)', + NULL, + 2 + ), + ( + 36168, + 36001, + 'Chrysler BB 413 4V (365 hp)', + NULL, + 1 + ), + ( + 36169, + 36001, + 'Chrysler BB 413 2x4V (390 hp)', + NULL, + 2 + ), + ( + 36170, + 36001, + 'Chrysler BB 426 Max Wedge III 2x4V (415 hp)', + NULL, + 2 + ), + ( + 36171, + 36001, + 'Chrysler BB 426 Max Wedge III 2x4V (425 hp)', + NULL, + 2 + ), + ( + 36172, + 36001, + 'Chrysler BB 426 Max Wedge 2x4V (415 hp)', + NULL, + 2 + ), + ( + 36173, + 36001, + 'Chrysler BB 426 Max Wedge 2x4V (425 hp)', + NULL, + 3 + ), + ( + 36174, + 36001, + 'Chrysler BB 426 4V (365 hp) b', + NULL, + 1 + ), + ( + 36175, + 36001, + 'Chrysler Hemi 426 2x4V (425 hp)', + NULL, + 3 + ), + ( + 36176, + 36001, + 'Chrysler BB 440 4V (350 hp)', + NULL, + 1 + ), + ( + 36177, + 36001, + 'Chrysler BB 440 3x2V (390 hp)', + NULL, + 2 + ), + (36178, 36001, 'AMC 343 2V (235 hp)', NULL, 1), + (36179, 36001, 'AMC 390 4V (315 hp)', NULL, 1), + (36180, 36001, 'AMC 390 4V (325 hp)', NULL, 2), + ( + 36181, + 36001, + 'AMC 390 4V Rebel Machine (340 hp)', + NULL, + 2 + ), + (36182, 36001, 'Chevy SB 265 4V (205 hp)', NULL, 2), + ( + 36183, + 36001, + 'Chevy W 409 2x4V (425 hp)', + NULL, + 3 + ), + ( + 36184, + 36001, + 'Chevrolet BB 402 4V (350 hp)', + NULL, + 2 + ), + ( + 36185, + 36001, + 'Chevrolet BB 402 4V (375 hp)', + NULL, + 2 + ), + (36186, 36001, 'Pontiac 400 Ram Air III', NULL, 2), + (36187, 36001, 'Pontiac 400 Ram Air V', NULL, 3), + (36188, 36001, 'Ford FE 352 4V (235 hp)', NULL, 1), + (36189, 36001, 'Shade Tree 2V (140 hp)', NULL, 1), + (37001, 37001, 'Generic Exh Assembly', NULL, 1), + (39001, 39001, 'Cop Lights', 'siren', 1), + (40001, 40001, 'Vanilla Hood', '.bodymod', 1), + (40002, 40001, '32 Coupe', '.bodymod', 1), + (40003, 40001, '40 Coupe', '.bodymod', 1), + (40004, 40001, '49 Mercury', '.bodymod', 1), + (40005, 40001, '53 Coupe', '.bodymod', 1), + (40006, 40001, '57 Fairlane', '.bodymod', 1), + (40007, 40001, '57 Ranchero', '.bodymod', 1), + (40008, 40001, '57 Thunderbird', '.bodymod', 1), + (40009, 40001, '63 Thunderbird', '.bodymod', 1), + (40010, 40001, '64 Mustang', '.bodymod', 1), + (40011, 40001, '64 Galaxie', '.bodymod', 1), + (40012, 40001, '69 Torino', '.bodymod', 1), + (40013, 40001, '70 Mustang', '.bodymod', 1), + (40014, 40001, '47 Caddy', '.bodymod', 1), + (40015, 40001, '55 Century', '.bodymod', 1), + (40016, 40001, '57 Bel-Air', '.bodymod', 1), + (40017, 40001, '57 Nomad', '.bodymod', 1), + (40018, 40001, '57 Corvette', '.bodymod', 1), + (40019, 40001, '58 Impala', '.bodymod', 1), + (40020, 40001, '59 Eldorado', '.bodymod', 1), + (40021, 40001, '63 Corvette', '.bodymod', 1), + (40022, 40001, '64 Impala', '.bodymod', 1), + (40023, 40001, '66 GTO', '.bodymod', 1), + (40024, 40001, '67 Chevelle', '.bodymod', 1), + (40025, 40001, '67 Camaro', '.bodymod', 1), + (40026, 40001, '69 Olds 442', '.bodymod', 1), + (40027, 40001, '69 GTO', '.bodymod', 1), + (40028, 40001, '70 El Camino', '.bodymod', 1), + (40029, 40001, '70 Nova', '.bodymod', 1), + (40030, 40001, '70 Chevelle', '.bodymod', 1), + (40031, 40001, '73 Firebird', '.bodymod', 1), + (40032, 40001, '69 Charger', '.bodymod', 1), + (40033, 40001, '69 Road Runner', '.bodymod', 1), + (40034, 40001, '69 AMX', '.bodymod', 1), + (40035, 40001, '70 Cuda', '.large', 1), + (40036, 40001, '71 Duster', '.bodymod', 1), + ( + 40037, + 40001, + '1963 Ford Thunderbird Scoop', + '.factory', + 2 + ), + ( + 40038, + 40001, + '1969 Hurst/Olds 4-4-2 Scoop', + '.factory', + 2 + ), + ( + 40039, + 40001, + '1969 Ford Torino GT Scoop', + '.factory', + 2 + ), + ( + 40040, + 40001, + '1969 Ford Torino Scoop', + '.factory', + 2 + ), + ( + 40041, + 40001, + '1967 Chevy Chevelle SS-396 Scoop', + '.factory', + 2 + ), + ( + 40042, + 40001, + '1967 Camaro SS-396 Scoop', + '.bodymod', + 2 + ), + ( + 40043, + 40001, + '1957 Ford Thunderbird Scoop', + '.factory', + 2 + ), + ( + 40044, + 40001, + '1964 Pontiac GTO Scoop', + '.factory', + 2 + ), + ( + 40045, + 40001, + '1963 Corvette Stingray Scoop', + '.factory', + 2 + ), + ( + 40046, + 40001, + '1969 Oldsmobile 4-4-2 W-30 Scoop', + '.factory', + 2 + ), + ( + 40047, + 40001, + '1973 Pontiac Firebird Scoop', + '.factory', + 2 + ), + ( + 40048, + 40001, + '1966 Pontiac GTO Scoop', + '.factory', + 2 + ), + ( + 40049, + 40001, + '1969 Pontiac GTO Scoop', + '.factory', + 2 + ), + ( + 40050, + 40001, + '1969 Pontiac Firebird Scoop', + '.factory', + 2 + ), + ( + 40051, + 40001, + '1969 Plymouth Road Runner Scoop', + '.factory', + 2 + ), + ( + 40052, + 40001, + '1970 Buick Gran Sport Scoop', + '.factory', + 2 + ), + ( + 40053, + 40001, + '1970 Chevy Nova SS-396 Scoop', + '.factory', + 2 + ), + ( + 40054, + 40001, + '1970 Plymouth ''Cuda Scoop', + '.bodymod', + 2 + ), + ( + 40055, + 40001, + '1973 Pontiac Trans-Am Scoop', + '.factory', + 2 + ), + ( + 40056, + 40001, + '1970 Dodge Challenger R/T Scoop', + '.factory', + 2 + ), + ( + 40057, + 40001, + '1958 Chevy Impala Sport Scoop', + '.factory', + 2 + ), + ( + 40058, + 40001, + '1970 Plymouth ''Cuda Hemi Scoop', + '.factory', + 2 + ), + (40059, 40001, 'Hood Mod Bel-Air', '.large', 2), + ( + 40060, + 40001, + '66 Shelby Cobra Hood', + '.bodymod', + 1 + ), + ( + 40061, + 40001, + '1970 Chevy Chevelle SS Hood', + '.factory', + 1 + ), + ( + 40062, + 40001, + '1970 Ford Mustang Factory Scoop Hood', + '.factory', + 2 + ), + ( + 100001, + 100001, + 'Cast Iron Rim (Round Flat)', + 'RIM01', + 1 + ), + ( + 100002, + 100001, + 'Steel Rim (Web Polished)', + 'RIM11', + 1 + ), + ( + 100003, + 100001, + 'Steel Slotted Rim (Star Polished)', + 'RIM02', + 1 + ), + ( + 100004, + 100001, + 'Aluminum Alloy Rim (Twist Split Star)', + 'RIM05', + 2 + ), + ( + 100005, + 100001, + 'Magnesium Rim (Round Flat)', + 'RIM01', + 3 + ), + (100006, 100001, 'HS-00', 'HC00', 1), + (100007, 100001, 'HS-01', 'HC01', 1), + (100008, 100001, 'HS-02', 'HC02', 1), + (100009, 100001, 'HS-03', 'HC03', 1), + (100010, 100001, 'HS-04', 'HC04', 1), + (100011, 100001, 'HS-05', 'HC05', 1), + (100012, 100001, 'HS-06', 'HC06', 1), + (100013, 100001, 'HS-07', 'HC07', 1), + (100014, 100001, 'HS-08', 'HC08', 1), + (100015, 100001, 'HS-09', 'HC09', 1), + (100016, 100001, 'HS-10', 'HC10', 1), + (100017, 100001, 'HS-11', 'HC11', 1), + (100018, 100001, 'HS-12', 'HC12', 1), + (100019, 100001, 'HS-13', 'HC13', 1), + (100020, 100001, 'HS-14', 'HC14', 1), + (100021, 100001, 'HS-15', 'HC15', 1), + (100022, 100001, 'HS-16', 'HC16', 1), + (100023, 100001, 'HS-17', 'HC17', 1), + (100024, 100001, 'HS-18', 'HC18', 1), + (100025, 100001, 'HS-19', 'HC19', 1), + (100026, 100001, 'HS-20', 'HC20', 1), + (100027, 100001, 'HS-21', 'HC21', 1), + (100028, 100001, 'HS-22', 'HC22', 1), + (100029, 100001, 'HS-23', 'HC23', 1), + (100030, 100001, 'HS-24', 'HC24', 1), + (100031, 100001, 'HS-25', 'HC25', 1), + (100032, 100001, 'HS-26', 'HC26', 1), + (100033, 100001, 'HS-27', 'HC27', 1), + (100034, 100001, 'HS-28', 'HC28', 1), + (100035, 100001, 'HS-29', 'HC29', 1), + (100036, 100001, 'HS-30', 'HC30', 1), + (100037, 100001, 'HS-31', 'HC31', 1), + (100038, 100001, 'HS-32', 'HC32', 1), + (100039, 100001, 'HS-33', 'HC33', 1), + (100040, 100001, 'HS-34', 'HC34', 1), + (100041, 100001, 'HS-35', 'HC35', 1), + (100042, 100001, 'HS-36', 'HC36', 1), + (100043, 100001, 'HS-37', 'HC37', 1), + (100044, 100001, 'HS-38', 'HC38', 1), + (100045, 100001, 'HS-39', 'HC39', 1), + (100046, 100001, 'HS-40', 'HC40', 1), + (100047, 100001, 'HS-41', 'HC41', 1), + (100048, 100001, 'HS-42', 'HC42', 1), + (100049, 100001, 'HS-43', 'HC43', 1), + (100050, 100001, 'HS-44', 'HC44', 1), + (100051, 100001, 'HS-45', 'HC45', 1), + (100052, 100001, 'HS-46', 'HC46', 1), + (100053, 100001, 'HS-47', 'HC47', 1), + (100054, 100001, 'HS-48', 'HC48', 1), + (100055, 100001, 'HS-49', 'HC49', 1), + (100056, 100001, 'HS-50', 'HC50', 1), + (100057, 100001, 'HS-51', 'HC51', 1), + (100058, 100001, 'HS-52', 'HC52', 1), + (100059, 100001, 'HS-53', 'hc53', 1), + (100060, 100001, 'HS-54', 'hc54', 1), + (100061, 100001, 'HS-55', 'hc55', 1), + (100062, 100001, 'HS-56', 'hc56', 1), + (100063, 100001, 'HS-57', 'hc57', 1), + (100064, 100001, 'HS-58', 'hc58', 1), + (100065, 100001, 'HA-00', 'HCA00', 1), + (100066, 100001, 'HA-01', 'HCA01', 1), + (100067, 100001, 'HA-02', 'HCA02', 1), + (100068, 100001, 'HA-03', 'HCA03', 1), + (100069, 100001, 'HA-04', 'HCA04', 1), + (100070, 100001, 'HA-05', 'HCA05', 1), + (100071, 100001, 'HA-06', 'HCA06', 1), + (100072, 100001, 'HA-07', 'HCA07', 1), + (100073, 100001, 'HA-08', 'HCA08', 1), + (100074, 100001, 'HA-09', 'HCA09', 1), + (100075, 100001, 'HA-10', 'HCA10', 1), + (100076, 100001, 'HA-11', 'HCA11', 1), + (100077, 100001, 'HA-12', 'HCA12', 1), + (100078, 100001, 'HA-13', 'HCA13', 1), + (100079, 100001, 'HA-14', 'HCA14', 1), + (100080, 100001, 'HA-15', 'HCA15', 1), + (100081, 100001, 'HA-16', 'HCA16', 1), + (100082, 100001, 'HA-17', 'HCA17', 1), + (100083, 100001, 'HA-18', 'HCA18', 1), + (100084, 100001, 'HA-19', 'HCA19', 1), + (100085, 100001, 'HA-20', 'HCA20', 1), + (100086, 100001, 'HA-21', 'HCA21', 1), + (100087, 100001, 'HA-22', 'HCA22', 1), + (100088, 100001, 'HA-23', 'HCA23', 1), + (100089, 100001, 'HA-24', 'HCA24', 1), + (100090, 100001, 'HA-25', 'HCA25', 1), + (100091, 100001, 'HA-26', 'HCA26', 1), + (100092, 100001, 'HA-27', 'HCA27', 1), + (100093, 100001, 'RS-00', 'RIM00', 1), + (100094, 100001, 'RS-01', 'RIM01', 1), + (100095, 100001, 'RS-02', 'RIM02', 1), + (100096, 100001, 'RS-03', 'RIM03', 1), + (100097, 100001, 'RS-04', 'RIM04', 1), + (100098, 100001, 'RS-05', 'RIM05', 1), + (100099, 100001, 'RS-06', 'RIM06', 1), + (100100, 100001, 'RS-07', 'RIM07', 1), + (100101, 100001, 'RS-08', 'RIM08', 1), + (100102, 100001, 'RS-09', 'RIM09', 1), + (100103, 100001, 'RS-10', 'RIM10', 1), + (100104, 100001, 'RS-11', 'RIM11', 1), + (100105, 100001, 'RS-12', 'RIM12', 1), + (100106, 100001, 'RA-00', 'RIMA00', 1), + (100107, 100001, 'RA-01', 'RIMA01', 1), + (100108, 100001, 'RA-02', 'RIMA02', 1), + (100109, 100001, 'RA-03', 'RIMA03', 1), + (100110, 100001, 'RA-04', 'RIMA04', 1), + (100111, 100001, 'RA-05', 'RIMA05', 1), + (100112, 100001, 'RA-06', 'RIMA06', 1), + (100113, 100001, 'RA-07', 'RIMA07', 1), + (100114, 100001, 'RA-08', 'RIMA08', 1), + (100115, 100001, 'RA-09', 'RIMA09', 1), + (100116, 100001, 'RA-10', 'RIMA10', 1), + (100117, 100001, 'RA-11', 'RIMA11', 1), + (100118, 100001, 'RA-12', 'RIMA12', 1), + (100119, 100001, 'RA-13', 'RIMA13', 1), + (100120, 100001, 'RA-14', 'RIMA14', 1), + (100121, 100001, 'RA-15', 'RIMA15', 1), + (100122, 100001, 'RA-16', 'RIMA16', 1), + (100123, 100001, 'RA-17', 'RIMA17', 1), + (100124, 100001, 'RA-18', 'RIMA18', 1), + (100125, 100001, 'RA-19', 'RIMA19', 1), + (100126, 100001, 'RA-20', 'RIMA20', 1), + (100127, 100001, 'RA-21', 'RIMA21', 1), + (100128, 100001, 'RA-22', 'RIMA22', 1), + (100129, 100001, 'RA-23', 'RIMA23', 1), + (100130, 100001, 'RA-24', 'RIMA24', 1), + (100131, 100001, 'RA-25', 'RIMA25', 1), + (100132, 100001, 'RA-26', 'RIMA26', 1), + (100133, 100001, 'RA-27', 'RIMA27', 1), + (100134, 100001, 'RA-28', 'RIMA28', 1), + (100135, 100001, 'RA-29', 'RIMA29', 1), + ( + 100136, + 100001, + '22.5" Heavy Truck Rim', + 'RIM01', + 1 + ), + (100137, 100001, 'Aluminum Slot', 'RIMA00', 2), + (100138, 100001, 'Aluminum Round', 'RIMA01', 1), + (100139, 100001, 'Aluminum Twistar 5', 'HCA03', 2), + (100140, 100001, 'Aluminum Rippled Orb', 'HC14', 2), + ( + 100141, + 100001, + 'Aluminum Hypnotic Star 6', + 'HC13', + 2 + ), + ( + 100142, + 100001, + 'Aluminum Super Slot 15', + 'HCA03', + 2 + ), + ( + 100143, + 100001, + 'Aluminum Teardrop Slot 8', + 'HCA04', + 2 + ), + (100144, 100001, 'Aluminum Twistar 7', 'HCA05', 2), + ( + 100145, + 100001, + 'Aluminum Power Turbine', + 'HCA15', + 2 + ), + ( + 110001, + 110001, + '18 x 5.25 Bias Ply Blackwalls (2ply)', + 'TIREBLAC', + 1 + ), + ( + 110002, + 110001, + '150/82/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110003, + 110001, + '170/82/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110004, + 110001, + '178/82/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110005, + 110001, + '190/82/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110006, + 110001, + '210/82/14 Bias Ply', + 'TIREBLAC', + 2 + ), + ( + 110007, + 110001, + '150/92/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110008, + 110001, + '170/92/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110009, + 110001, + '178/92/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110010, + 110001, + '190/92/14 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110011, + 110001, + '210/92/14 Bias Ply', + 'TIREBLAC', + 2 + ), + ( + 110012, + 110001, + '170/82/15 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110013, + 110001, + '190/82/15 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110014, + 110001, + '210/82/15 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110015, + 110001, + '150/92/15 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110016, + 110001, + '170/92/15 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110017, + 110001, + '190/92/15 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110018, + 110001, + '150/92/16 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110019, + 110001, + '170/92/16 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110020, + 110001, + '190/92/16 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110021, + 110001, + '210/92/16 Bias Ply', + 'TIREBLAC', + 1 + ), + ( + 110022, + 110001, + '190/60/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110023, + 110001, + '214/60/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110024, + 110001, + '238/60/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110025, + 110001, + '190/72/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110026, + 110001, + '202/72/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110027, + 110001, + '214/72/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110028, + 110001, + '226/72/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110029, + 110001, + '238/72/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110030, + 110001, + '166/82/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110031, + 110001, + '178/82/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110032, + 110001, + '190/82/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110033, + 110001, + '202/82/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110034, + 110001, + '214/82/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110035, + 110001, + '178/92/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110036, + 110001, + '202/92/14 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110037, + 110001, + '178/60/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110038, + 110001, + '202/60/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110039, + 110001, + '226/60/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110040, + 110001, + '238/60/15 Bias Belted', + 'TIREBLAC', + 2 + ), + ( + 110041, + 110001, + '202/72/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110042, + 110001, + '226/72/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110043, + 110001, + '238/72/15 Bias Belted', + 'TIREBLAC', + 2 + ), + ( + 110044, + 110001, + '190/82/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110045, + 110001, + '214/82/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110046, + 110001, + '238/82/15 Bias Belted', + 'TIREBLAC', + 2 + ), + ( + 110047, + 110001, + '178/92/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110048, + 110001, + '202/92/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110049, + 110001, + '226/92/15 Bias Belted', + 'TIREBLAC', + 1 + ), + ( + 110050, + 110001, + '238/92/15 Bias Belted', + 'TIREBLAC', + 2 + ), + (110051, 110001, '185/65/14 Radial', 'TIREBLAC', 1), + (110052, 110001, '205/65/14 Radial', 'TIREBLAC', 1), + (110053, 110001, '195/70/14 Radial', 'TIREBLAC', 1), + (110054, 110001, '215/70/14 Radial', 'TIREBLAC', 1), + (110055, 110001, '195/75/14 Radial', 'TIREBLAC', 1), + (110056, 110001, '205/75/14 Radial', 'TIREBLAC', 1), + (110057, 110001, '195/65/15 Radial', 'TIREBLAC', 1), + (110058, 110001, '215/65/15 Radial', 'TIREBLAC', 2), + (110059, 110001, '205/70/15 Radial', 'TIREBLAC', 1), + (110060, 110001, '215/70/15 Radial', 'TIREBLAC', 1), + (110061, 110001, '225/70/15 Radial', 'TIREBLAC', 2), + (110062, 110001, '205/75/15 Radial', 'TIREBLAC', 1), + (110063, 110001, '215/75/15 Radial', 'TIREBLAC', 1), + (110064, 110001, '235/75/15 Radial', 'TIREBLAC', 2), + (110065, 110001, '215/65/16 Radial', 'TIREBLAC', 1), + (110066, 110001, '215/60/16 Radial', 'TIREBLAC', 1), + (110067, 110001, '225/60/16 Radial', 'TIREBLAC', 1), + (110068, 110001, '225/55/16 Radial', 'TIREBLAC', 1), + ( + 110069, + 110001, + '205/55/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110070, + 110001, + '195/60/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110071, + 110001, + '205/60/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110072, + 110001, + '215/60/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110073, + 110001, + '185/65/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110074, + 110001, + '195/65/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110075, + 110001, + '205/65/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110076, + 110001, + '215/65/15 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110077, + 110001, + '225/55/16 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110078, + 110001, + '215/60/16 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110079, + 110001, + '225/60/16 Radial Rain', + 'TIREBLAC', + 2 + ), + ( + 110080, + 110001, + '195/55/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110081, + 110001, + '205/55/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110082, + 110001, + '195/60/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110083, + 110001, + '205/60/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110084, + 110001, + '215/60/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110085, + 110001, + '185/65/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110086, + 110001, + '195/65/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110087, + 110001, + '205/65/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110088, + 110001, + '215/65/15VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110089, + 110001, + '205/40/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110090, + 110001, + '215/40/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110091, + 110001, + '205/45/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110092, + 110001, + '215/45/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110093, + 110001, + '205/50/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110094, + 110001, + '225/50/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110095, + 110001, + '245/50/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110096, + 110001, + '205/55/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110097, + 110001, + '215/55/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110098, + 110001, + '225/55/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110099, + 110001, + '215/60/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110100, + 110001, + '225/60/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110101, + 110001, + '235/60/16VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110102, + 110001, + '215/40/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110103, + 110001, + '235/40/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110104, + 110001, + '255/40/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110105, + 110001, + '215/45/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110106, + 110001, + '225/45/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110107, + 110001, + '235/45/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110108, + 110001, + '245/45/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110109, + 110001, + '315/35/17VR Performance', + 'TIREBLAC', + 3 + ), + ( + 110110, + 110001, + '195/55/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110111, + 110001, + '205/55/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110112, + 110001, + '195/60/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110113, + 110001, + '205/60/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110114, + 110001, + '215/60/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110115, + 110001, + '185/65/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110116, + 110001, + '195/65/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110117, + 110001, + '205/65/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110118, + 110001, + '215/65/15VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110119, + 110001, + '205/40/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110120, + 110001, + '205/45/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110121, + 110001, + '215/45/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110122, + 110001, + '205/50/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110123, + 110001, + '225/50/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110124, + 110001, + '245/50/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110125, + 110001, + '205/55/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110126, + 110001, + '225/55/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110127, + 110001, + '215/60/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110128, + 110001, + '225/60/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110129, + 110001, + '235/60/16VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110130, + 110001, + '215/40/17VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110131, + 110001, + '235/40/17VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110132, + 110001, + '215/45/17VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110133, + 110001, + '225/45/17VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110134, + 110001, + '235/45/17VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110135, + 110001, + '245/45/17VR Performance Rain', + 'TIREBLAC', + 3 + ), + ( + 110136, + 110001, + '162/68/18 Bias Belted', + 'TIREBLAC', + 1 + ), + (110137, 110001, 'Big Tire', 'TIREBLAC', 1), + ( + 110138, + 110001, + '245/50/16VR High Performance', + 'TIREBLAC', + 4 + ), + (110139, 110001, '195/60/15 Street', 'TIREBLAC', 2), + ( + 110140, + 110001, + '295/80/22.5 Bus Tire', + 'TIREBLAC', + 1 + ), + ( + 110141, + 110001, + '207/70/14 (D70-14)', + 'TIREWHIT', + 1 + ), + ( + 110142, + 110001, + '212/70/14 (E70-14)', + 'TIREWHIT', + 1 + ), + ( + 110143, + 110001, + '221/70/14 (F70-14)', + 'TIREWHIT', + 1 + ), + ( + 110144, + 110001, + '232/70/14 (G70-14)', + 'TIREWHIT', + 1 + ), + ( + 110145, + 110001, + '210/70/15 (E70-15)', + 'TIREWHIT', + 1 + ), + ( + 110146, + 110001, + '216/70/15 (F70-15)', + 'TIREWHIT', + 1 + ), + ( + 110147, + 110001, + '227/70/15 (G70-15)', + 'TIREWHIT', + 1 + ), + ( + 110148, + 110001, + '231/60/15 (F60-15)', + 'TIREWHIT', + 1 + ), + ( + 110149, + 110001, + '243/60/15 (G60-15)', + 'TIREWHIT', + 1 + ), + ( + 110150, + 110001, + '224/60/15 (E60-15)', + 'TIREWHIT', + 1 + ), + (110151, 110001, '175/65/14 Radial', 'TIREBLAC', 1), + (110152, 110001, '195/65/14 Radial', 'TIREBLAC', 1), + (110153, 110001, '185/60/14 Radial', 'TIREBLAC', 1), + (110154, 110001, '195/60/14 Radial', 'TIREBLAC', 1), + (110155, 110001, '185/65/15 Radial', 'TIREBLAC', 1), + (110156, 110001, '205/65/15 Radial', 'TIREBLAC', 1), + (110157, 110001, '195/60/15 Radial', 'TIRERED', 1), + (110158, 110001, '205/60/15 Radial', 'TIRERED', 1), + (110159, 110001, '215/60/15 Radial', 'TIRERED', 1), + (110160, 110001, '195/55/15 Radial', 'TIRERED', 1), + (110161, 110001, '205/55/15 Radial', 'TIRERED', 1), + (110162, 110001, '195/50/15 Radial', 'TIRERED', 1), + (110163, 110001, '205/50/15 Radial', 'TIRERED', 1), + (110164, 110001, '225/50/15 Radial', 'TIRERED', 1), + ( + 110165, + 110001, + '195/50/15VR Performance', + 'TIREBLAC', + 2 + ), + ( + 110166, + 110001, + '205/50/15VR Performance', + 'TIREBLAC', + 2 + ), + ( + 110167, + 110001, + '225/50/15VR Performance', + 'TIREBLAC', + 2 + ), + ( + 110168, + 110001, + '205/40/17VR Performance', + 'TIREBLAC', + 2 + ), + ( + 110169, + 110001, + '245/45/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110170, + 110001, + '225/60/16VR High Performance', + 'TIREBLAC', + 4 + ), + (110171, 110001, '225/60/16ZR SCUT', 'TIREBLAC', 4), + (110172, 110001, '245/45/17ZR SCUT', 'TIREBLAC', 4), + (110173, 110001, '245/50/16ZR SCUT', 'TIREBLAC', 4), + ( + 110174, + 110001, + '225/35/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110175, + 110001, + '205/40/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110176, + 110001, + '215/40/16VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110177, + 110001, + '215/40/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110178, + 110001, + '225/40/16VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110179, + 110001, + '235/40/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110180, + 110001, + '245/40/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110181, + 110001, + '255/40/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110182, + 110001, + '265/40/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110183, + 110001, + '205/45/16VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110184, + 110001, + '215/45/16VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110185, + 110001, + '215/45/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110186, + 110001, + '225/45/16VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110187, + 110001, + '225/45/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110188, + 110001, + '235/45/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110189, + 110001, + '245/45/16VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110190, + 110001, + '205/50/15VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110191, + 110001, + '205/50/16VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110192, + 110001, + '205/50/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110193, + 110001, + '215/50/15VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110194, + 110001, + '215/50/17VR High Performance', + 'TIREBLAC', + 4 + ), + ( + 110195, + 110001, + '225/50/16VR High Performance', + 'TIREBLAC', + 4 + ), + (110196, 110001, '235/60/15 Radial', 'TIREBLAC', 1), + (110197, 110001, '275/60/15 Radial', 'TIREBLAC', 2), + (110198, 110001, '295/60/15 Radial', 'TIREBLAC', 3), + (110199, 110001, '245/60/15 Radial', 'TIREBLAC', 2), + (110200, 110001, '255/60/15 Radial', 'TIREBLAC', 2), + (110201, 110001, '265/60/15 Radial', 'TIREBLAC', 2), + ( + 130001, + 130001, + '3-Speed Auto (2.5/1.56/1)', + NULL, + 1 + ), + ( + 130002, + 130001, + '3-Speed Auto (2.4/1.479/1)', + NULL, + 1 + ), + ( + 130003, + 130001, + '4-Speed Auto (2.741/1.568/1/0.674)', + NULL, + 1 + ), + ( + 130004, + 130001, + '3-Speed Auto (2.52/1.52/1) A', + NULL, + 1 + ), + ( + 130005, + 130001, + '3-Speed Auto (2.482/1.482/1)', + NULL, + 1 + ), + ( + 130006, + 130001, + '4-Speed Auto (3.059/1.625/1/0.696) A', + NULL, + 1 + ), + ( + 130007, + 130001, + '4-Speed Auto (2.4/1.479/1/0.723)', + NULL, + 1 + ), + ( + 130008, + 130001, + '4-Speed Auto (2.482/1.482/1/0.75)', + NULL, + 1 + ), + ( + 130009, + 130001, + '4-Speed Auto (2.74/1.57/1/0.67)', + NULL, + 1 + ), + ( + 130010, + 130001, + '4-Speed Auto (3.06/1.62/1/0.7)', + NULL, + 1 + ), + ( + 130011, + 130001, + '4-Speed Auto (3.97/2.55/1.55/1)', + NULL, + 1 + ), + ( + 130012, + 130001, + '3-Speed Manual (2.5/1.18/1)', + NULL, + 1 + ), + ( + 130013, + 130001, + '5-Speed Manual (2.95/1.94/1.34/1/0.63)', + NULL, + 2 + ), + ( + 130014, + 130001, + '5-Speed Manual (2.75/1.94/1.34/1/0.74)', + NULL, + 2 + ), + ( + 130015, + 130001, + '4-Speed Manual (2.64/1.61/1.23/1)', + NULL, + 1 + ), + ( + 130016, + 130001, + '4-Speed Manual (2.88/1.74/1.33/1)', + NULL, + 1 + ), + ( + 130017, + 130001, + '4-Speed Manual (3.44/2.28/1.46/1)', + NULL, + 1 + ), + ( + 130018, + 130001, + '4-Speed Manual (2.66/1.91/1.39/1)', + NULL, + 1 + ), + ( + 130019, + 130001, + '4-Speed Manual (2.22/1.64/1.28/1)', + NULL, + 1 + ), + ( + 130020, + 130001, + '4-Speed Manual (2.65/1.93/1.39/1)', + NULL, + 1 + ), + ( + 130021, + 130001, + 'Powerglide Auto (1.82/1) Chevrolet 2-Speed Powerglide', + NULL, + 1 + ), + ( + 130022, + 130001, + 'Chevrolet 3-Speed Standard Ratio', + NULL, + 1 + ), + ( + 130023, + 130001, + '3-Speed Close Ratio (2.21/1.32/1)', + NULL, + 1 + ), + ( + 130024, + 130001, + 'Chevrolet 3-Speed w/ Overdrive', + NULL, + 1 + ), + ( + 130025, + 130001, + '4-Speed Close Ratio (2.21/1.66/1.31/1)', + NULL, + 2 + ), + ( + 130026, + 130001, + 'Ford Cruise-O-Matic (Automatic)', + NULL, + 1 + ), + ( + 130027, + 130001, + 'Muncie Close-Ratio M22 (2.2/1.64/1.27/1)', + NULL, + 2 + ), + ( + 130028, + 130001, + 'Muncie Early Wide-Ratio (Manual)', + NULL, + 1 + ), + ( + 130029, + 130001, + 'Muncie Close-Ratio (Manual)', + NULL, + 1 + ), + ( + 130030, + 130001, + 'Muncie Wide-Ratio M20 Manual (2.52/1.88/1.46/1)', + NULL, + 1 + ), + ( + 130031, + 130001, + '1997 Corvette 4-Speed Automatic Transmission', + NULL, + 3 + ), + ( + 130032, + 130001, + 'Speedliner 5-Speed Automatic Transmission', + NULL, + 3 + ), + ( + 130033, + 130001, + 'Powerglide Automatic (1.76/1)', + NULL, + 1 + ), + ( + 130034, + 130001, + 'Turbo Hydra-Matic 350 (Automatic)', + NULL, + 1 + ), + ( + 130035, + 130001, + 'Ford C-4 Dual Range (Automatic)', + NULL, + 1 + ), + ( + 130036, + 130001, + 'Borg-Warner T-10 Special Close-Ratio (Manual)', + NULL, + 3 + ), + ( + 130037, + 130001, + 'Borg-Warner T-10X Special Competition (Manual)', + NULL, + 3 + ), + ( + 130038, + 130001, + 'Borg-Warner T-10W Special Wide-Ratio (Manual)', + NULL, + 3 + ), + ( + 130039, + 130001, + 'Borg-Warner T-10Y Second Design, Extra Low-Ratio (Manual)', + NULL, + 3 + ), + ( + 130040, + 130001, + 'T+C Top Loader Close Ratio M (2.32/1.69/1.29/1)', + NULL, + 1 + ), + ( + 130041, + 130001, + 'Ford T+C Top Loader Overdrive (Manual)', + NULL, + 1 + ), + ( + 130042, + 130001, + 'Ford T+C Top Loader Overdrive2 (Manual)', + NULL, + 1 + ), + ( + 130043, + 130001, + '3-speed Synchro-Mesh (Manual)', + NULL, + 1 + ), + ( + 130044, + 130001, + '4-speed All-Synchro (Manual)', + NULL, + 1 + ), + ( + 130045, + 130001, + 'Bully 727 Torqueflite A (2.45/1.45/1)', + NULL, + 2 + ), + ( + 130046, + 130001, + 'Bully Turbo-Hydro 400 A (2.48/1.48/1)', + NULL, + 2 + ), + (130047, 130001, 'Borg T-85 3 spd manual', NULL, 2), + ( + 130048, + 130001, + 'Ford-o-matic Auto (1.76/1)', + NULL, + 1 + ), + ( + 130049, + 130001, + 'Shift Command A (2.45/1.45/1)', + NULL, + 2 + ), + ( + 130050, + 130001, + 'Borg-Warner T56 6 Speed Auto', + NULL, + 3 + ), + ( + 130051, + 130001, + 'LD 3-Speed Manual (2.5/1.18/1)', + NULL, + 1 + ), + ( + 130052, + 130001, + 'Hall Helix 3-Speed Manual', + NULL, + 4 + ), + ( + 130053, + 130001, + 'Hall Helix 3-Speed Automatic', + NULL, + 4 + ), + (130054, 130001, 'Super Muncie', NULL, 3), + ( + 130055, + 130001, + 'Muncie Close-Ratio M21 (2.2/1.64/1.27/1)', + NULL, + 1 + ), + (130056, 130001, 'M13 3 Speed Manual', NULL, 2), + ( + 130057, + 130001, + 'Buick Dynaflow Auto (2.4/1.479/1)', + NULL, + 1 + ), + ( + 140001, + 140001, + 'Rear Differential (2.73)', + NULL, + 1 + ), + ( + 140002, + 140001, + 'Rear Differential (2.93)', + NULL, + 1 + ), + ( + 140003, + 140001, + 'Rear Differential (3.00)', + NULL, + 1 + ), + ( + 140004, + 140001, + 'Rear Differential (3.23)', + NULL, + 1 + ), + ( + 140005, + 140001, + 'Rear Differential (3.31)', + NULL, + 1 + ), + ( + 140006, + 140001, + 'Rear Differential (3.42)', + NULL, + 2 + ), + ( + 140007, + 140001, + 'Rear Differential (3.50)', + NULL, + 2 + ), + ( + 140008, + 140001, + 'Rear Differential (3.54)', + NULL, + 2 + ), + ( + 140009, + 140001, + 'Rear Differential (3.55)', + NULL, + 2 + ), + ( + 140010, + 140001, + 'Rear Differential (3.64)', + NULL, + 2 + ), + ( + 140011, + 140001, + 'Rear Differential (3.70)', + NULL, + 2 + ), + ( + 140012, + 140001, + 'Rear Differential (3.77)', + NULL, + 2 + ), + ( + 140013, + 140001, + 'Rear Differential (3.90)', + NULL, + 3 + ), + ( + 140014, + 140001, + 'Rear Differential (4.10)', + NULL, + 3 + ), + ( + 140015, + 140001, + 'Rear Differential (4.33)', + NULL, + 3 + ), + ( + 140016, + 140001, + 'Ford 3.10 Differential (Ford-O-Matic)', + NULL, + 1 + ), + ( + 140017, + 140001, + 'Rear Differential (3.56)', + NULL, + 2 + ), + ( + 140018, + 140001, + 'GM Rear Differential 3.40 (Dynaflow)', + NULL, + 1 + ), + ( + 140019, + 140001, + 'Rear Differential (3.25)', + NULL, + 1 + ), + ( + 140020, + 140001, + 'Rear Differential (3.91)', + NULL, + 3 + ), + ( + 140021, + 140001, + 'GM Rear Differential (3.71)', + NULL, + 2 + ), + ( + 140022, + 140001, + 'Rear Differential (3.07) L', + NULL, + 1 + ), + ( + 140023, + 140001, + 'Rear Differential (4.10) LD', + NULL, + 1 + ), + ( + 140024, + 140001, + 'Rear Differential (3.90) LD', + NULL, + 1 + ), + ( + 140025, + 140001, + 'Rear Differential (3.31) LD', + NULL, + 1 + ), + (140026, 140001, 'Ford 9" (3.08)', NULL, 2), + (140027, 140001, 'Ford 9" (3.27)', NULL, 2), + (140028, 140001, 'Ford 9" (3.45)', NULL, 2), + (140029, 140001, 'Ford 9" (3.55)', NULL, 2), + (140030, 140001, 'Ford 9" (3.73)', NULL, 2), + (140031, 140001, 'Ford 9" (4.10)', NULL, 3), + (140032, 140001, 'Ford 8" (3.08)', NULL, 1), + (140033, 140001, 'Ford 8" (3.27)', NULL, 1), + (140034, 140001, 'Ford 8" (3.45)', NULL, 1), + (140035, 140001, 'Ford 8" (3.55)', NULL, 1), + (140036, 140001, 'Ford 8" (3.73)', NULL, 1), + (140037, 140001, 'Ford 8" (4.10)', NULL, 1), + (140038, 140001, 'GM 10-bolt (2.73)', NULL, 1), + (140039, 140001, 'GM 10-bolt (3.08)', NULL, 1), + (140040, 140001, 'GM 10-bolt (3.36)', NULL, 1), + (140041, 140001, 'GM 10-bolt (3.55)', NULL, 1), + (140042, 140001, 'GM 10-bolt (3.70)', NULL, 1), + (140043, 140001, 'GM 12-bolt (3.07)', NULL, 2), + (140044, 140001, 'GM 12-bolt (3.31)', NULL, 2), + (140045, 140001, 'GM 12-bolt (3.55)', NULL, 2), + (140046, 140001, 'GM 12-bolt (3.73)', NULL, 2), + (140047, 140001, 'GM 12-bolt (4.10)', NULL, 3), + (140048, 140001, 'GM 12-bolt (2.73)', NULL, 2), + ( + 140049, + 140001, + 'GM 12-bolt (3.55) Police', + NULL, + 3 + ), + (140050, 140001, 'Hall 14-bolt (3.42)', NULL, 3), + (140051, 140001, 'Hall 14-bolt (3.73)', NULL, 3), + (140052, 140001, 'Hall 14-bolt (4.10)', NULL, 3), + ( + 150001, + 150001, + 'Bully Torqueflite HD Transmission Cooler', + NULL, + 3 + ), + ( + 150002, + 150001, + 'Bully Turbo ND Tranmission Cooler', + NULL, + 2 + ), + ( + 150003, + 150001, + 'Bully Powerglide LD Transmission Cooler', + NULL, + 1 + ), + ( + 150004, + 150001, + 'Bully C-6 XHD Transmission Cooler', + NULL, + 4 + ), + (160001, 160001, 'Buick V8 322', 'ENGINE', 2), + (160002, 160001, 'Buick SB V8 350', 'ENGINE', 2), + (160003, 160001, 'Buick BB V8 455', 'ENGINE', 3), + (160004, 160001, 'Chevy W V8 427', 'ENGINE', 3), + (160005, 160001, 'Chevy V8 265', 'ENGINE', 1), + (160006, 160001, 'Chevy V8 283', 'ENGINE', 1), + (160007, 160001, 'Chevy V8 302', 'ENGINE', 1), + (160008, 160001, 'Chevy V8 307', 'ENGINE', 1), + (160009, 160001, 'Chevy V8 327', 'ENGINE', 2), + ( + 160010, + 160001, + 'Cadillac L-Head V8 346', + 'ENGINE', + 1 + ), + (160011, 160001, 'Chevy V8 348', 'ENGINE', 1), + (160012, 160001, 'Chevy V8 350', 'ENGINE', 2), + (160013, 160001, 'Cadillac V8 390', 'ENGINE', 2), + (160014, 160001, 'Chevy V8 396', 'ENGINE', 2), + (160015, 160001, 'Chevy V8 400', 'ENGINE', 2), + (160016, 160001, 'Chevy V8 409', 'ENGINE', 3), + (160017, 160001, 'Chevy V8 454', 'ENGINE', 3), + (160018, 160001, 'Chevy V8 502', 'ENGINE', 4), + (160019, 160001, 'Chevy V8 402', 'ENGINE', 3), + ( + 160020, + 160001, + 'Ford V8 351 Windsor', + 'ENGINE', + 2 + ), + (160021, 160001, 'Ford V8 400', 'ENGINE', 3), + ( + 160022, + 160001, + '221-V8 24-bolt (32)', + 'ENGINE', + 1 + ), + (160023, 160001, 'Ford V8 239', 'ENGINE', 1), + (160024, 160001, 'Ford V8 260', 'ENGINE', 1), + (160025, 160001, 'Ford V8 272', 'ENGINE', 1), + (160026, 160001, 'Ford V8 289', 'ENGINE', 1), + (160027, 160001, 'Ford V8 292', 'ENGINE', 1), + (160028, 160001, 'Ford V8 302', 'ENGINE', 1), + (160029, 160001, 'Ford V8 312', 'ENGINE', 1), + (160030, 160001, 'Ford V8 351', 'ENGINE', 2), + (160031, 160001, 'Ford V8 390', 'ENGINE', 2), + (160032, 160001, 'Ford V8 406', 'ENGINE', 3), + (160033, 160001, 'Ford V8 427', 'ENGINE', 3), + (160034, 160001, 'Ford V8 428', 'ENGINE', 3), + (160035, 160001, 'Ford V8 429', 'ENGINE', 3), + (160036, 160001, 'Ford V8 352', 'ENGINE', 2), + (160037, 160001, 'Oldsmobile V8 350', 'ENGINE', 2), + (160038, 160001, 'Oldsmobile V8 400', 'ENGINE', 3), + (160039, 160001, 'Oldsmobile V8 455', 'ENGINE', 3), + (160040, 160001, 'Pontiac V8 350', 'ENGINE', 2), + (160041, 160001, 'Pontiac V8 421', 'ENGINE', 3), + (160042, 160001, 'Pontiac V8 389', 'ENGINE', 2), + (160043, 160001, 'Pontiac V8 400', 'ENGINE', 3), + (160044, 160001, 'Pontiac V8 428', 'ENGINE', 3), + (160045, 160001, 'Pontiac V8 455', 'ENGINE', 3), + ( + 160046, + 160001, + 'AMC V8 290 Aluminum Indy', + 'ENGINE', + 4 + ), + (160047, 160001, 'Ford V8 460', 'ENGINE', 3), + (160048, 160001, 'Chevy V8 427', 'ENGINE', 3), + (160049, 160001, 'Hi-Pro V8 5.0L', 'ENGINE', 4), + ( + 160050, + 160001, + 'Mercury Flathead 255', + 'ENGINE', + 1 + ), + (160051, 160001, 'Chrysler V8 273', 'ENGINE', 1), + (160052, 160001, 'Chrysler V8 318', 'ENGINE', 1), + (160053, 160001, 'Chrysler V8 340', 'ENGINE', 2), + (160054, 160001, 'Chrysler V8 360', 'ENGINE', 2), + (160055, 160001, 'Chrysler V8 383', 'ENGINE', 2), + (160056, 160001, 'Chrysler V8 400', 'ENGINE', 3), + (160057, 160001, 'Chrysler V8 413', 'ENGINE', 3), + (160058, 160001, 'Chrysler V8 426', 'ENGINE', 3), + (160059, 160001, 'Chrysler V8 440', 'ENGINE', 3), + (160060, 160001, 'AMC V8 290', 'ENGINE', 1), + (160061, 160001, 'AMC V8 343', 'ENGINE', 2), + (160062, 160001, 'AMC V8 390', 'ENGINE', 2), + (160063, 160001, 'ShadeTree V8 265', 'ENGINE', 1), + (160064, 160001, 'AMC V8 360', 'ENGINE', 2), + ( + 160065, + 160001, + 'Chrysler V8 426 Hemi', + 'ENGINE', + 4 + ), + (160066, 160001, 'Ford V8 390 HP', 'ENGINE', 3), + (160067, 160001, 'Ford V8 429 Boss', 'ENGINE', 4), + (160068, 160001, 'Ford V8 289 HP', 'ENGINE', 2), + (160069, 160001, 'Ford V8 302 Boss', 'ENGINE', 2), + (160070, 160001, 'Buick BB V8 400', 'ENGINE', 3), + (160071, 160001, 'Buick BB V8 430', 'ENGINE', 3), + (160072, 160001, 'Chevy V8 427 ZL1', 'ENGINE', 4), + (160073, 160001, 'Buick V8 364', 'ENGINE', 2), + (160074, 160001, 'Buick V8 401', 'ENGINE', 3), + (160075, 160001, 'Buick V8 425', 'ENGINE', 3), + (160076, 160001, 'Buick SB V8 300', 'ENGINE', 1), + (160077, 160001, 'Buick SB V8 340', 'ENGINE', 2), + (160078, 160001, 'Cadillac V8 365', 'ENGINE', 2), + (160079, 160001, 'Cadillac V8 429', 'ENGINE', 3), + ( + 160080, + 160001, + 'Ford 385 NASCAR Mg Block', + 'ENGINE', + 4 + ), + ( + 160081, + 160001, + 'Ford 385 NASCAR Block', + 'ENGINE', + 4 + ), + (160082, 160001, 'AMC V8 401', 'ENGINE', 3), + ( + 180001, + 180001, + 'Chevrolet SB Cast Iron Crankshaft', + NULL, + 1 + ), + ( + 180002, + 180001, + 'Chevrolet BB Stock CI Crankshaft', + NULL, + 1 + ), + ( + 180003, + 180001, + 'Buick BB Stock Crankshaft', + NULL, + 1 + ), + ( + 180004, + 180001, + 'Buick SB Stock Crankshaft', + NULL, + 1 + ), + ( + 180005, + 180001, + 'Cadillac BB Stock Crankshaft', + NULL, + 1 + ), + ( + 180006, + 180001, + 'Chevrolet BB Forged Steel Crankshaft', + NULL, + 2 + ), + ( + 180007, + 180001, + 'Chevrolet SB Stock FS Crankshaft', + NULL, + 1 + ), + ( + 180008, + 180001, + 'Chrysler BB Stock FS Crankshaft', + NULL, + 1 + ), + ( + 180009, + 180001, + 'Chrysler SB Stock FS Crankshaft', + NULL, + 1 + ), + ( + 180010, + 180001, + 'Ford BB Stock Crankshaft', + NULL, + 1 + ), + ( + 180011, + 180001, + 'Ford Y Stock Crankshaft', + NULL, + 1 + ), + ( + 180012, + 180001, + 'Ford Flathead Stock Crankshaft', + NULL, + 1 + ), + ( + 180013, + 180001, + 'Olds BB Forged Steel Crankshaft', + NULL, + 1 + ), + ( + 180014, + 180001, + 'Olds SB Stock Crankshaft', + NULL, + 1 + ), + ( + 180015, + 180001, + 'AMC Stock TI Crankshaft', + NULL, + 1 + ), + ( + 180016, + 180001, + 'Pontiac Stock Crankshaft', + NULL, + 1 + ), + ( + 180017, + 180001, + 'Chevrolet SB Treated Iron Crankshaft', + NULL, + 1 + ), + ( + 180018, + 180001, + 'Crower Pure-Stock Chevrolet SB Crankshaft', + NULL, + 1 + ), + ( + 180019, + 180001, + 'Crower Stock-Plus Chevrolet SB Crankshaft', + NULL, + 2 + ), + ( + 180020, + 180001, + 'Crower Enduro Chevrolet SB Crankshaft', + NULL, + 2 + ), + ( + 180021, + 180001, + 'Crower Ultra-Light Chevrolet SB Crankshaft', + NULL, + 2 + ), + ( + 180022, + 180001, + 'Crower Standard Chevrolet SB Crankshaft', + NULL, + 3 + ), + ( + 180023, + 180001, + 'Crower Standard Chevrolet BB Crankshaft', + NULL, + 3 + ), + ( + 180024, + 180001, + 'Olds SB Forged Steel Crankshaft', + NULL, + 2 + ), + ( + 180025, + 180001, + 'Olds BB Stock Cast Iron Crankshaft', + NULL, + 1 + ), + ( + 180026, + 180001, + 'Olds BB Stock Treated Iron Crankshaft', + NULL, + 1 + ), + ( + 180027, + 180001, + 'Pontiac Forged Steel Crankshaft', + NULL, + 2 + ), + ( + 180028, + 180001, + 'Pontiac Armasteel (TI) Crankshaft', + NULL, + 1 + ), + ( + 180029, + 180001, + 'Pontiac SD Forged Steel Crankshaft', + NULL, + 2 + ), + ( + 180030, + 180001, + 'Ford SB Stock TI Crankshaft', + NULL, + 1 + ), + ( + 180031, + 180001, + 'Ford BB Truck Forged Steel Crankshaft', + NULL, + 1 + ), + ( + 180032, + 180001, + 'Ford BB 427 MR Forged Steel Crankshaft', + NULL, + 2 + ), + ( + 180033, + 180001, + 'Ford BB Treated Iron Crankshaft', + NULL, + 2 + ), + ( + 180034, + 180001, + 'Ford SB Boss (TI) Crankshaft', + NULL, + 2 + ), + ( + 180035, + 180001, + 'Ford BB Forged Steel Crankshaft', + NULL, + 2 + ), + ( + 180036, + 180001, + 'Chrysler BB Stock CI Crankshaft', + NULL, + 1 + ), + ( + 180037, + 180001, + 'Chrysler Hemi (FS) Crankshaft', + NULL, + 2 + ), + ( + 180038, + 180001, + 'Chrysler SB Stock CI Crankshaft', + NULL, + 1 + ), + ( + 180039, + 180001, + 'Crower Enduro Chevrolet BB Crankshaft', + NULL, + 2 + ), + ( + 180040, + 180001, + 'Crower Ultra-Light Chevrolet BB Crankshaft', + NULL, + 2 + ), + ( + 180041, + 180001, + 'Crower Enduro Ford SB Crankshaft', + NULL, + 2 + ), + ( + 180042, + 180001, + 'Crower Standard Ford SB Crankshaft', + NULL, + 3 + ), + ( + 180043, + 180001, + 'Crower Enduro Ford BB Crankshaft', + NULL, + 2 + ), + ( + 180044, + 180001, + 'Crower Standard Ford BB Crankshaft', + NULL, + 3 + ), + ( + 180045, + 180001, + 'Crower Enduro Chrysler BB Crankshaft', + NULL, + 2 + ), + ( + 180046, + 180001, + 'Crower Enduro Chrysler SB Crankshaft', + NULL, + 2 + ), + ( + 180047, + 180001, + 'Crower Standard Chrysler BB Crankshaft', + NULL, + 3 + ), + ( + 180048, + 180001, + 'Crower Standard Chrysler SB Crankshaft', + NULL, + 3 + ), + ( + 180049, + 180001, + 'Buick Nailhead Stock FS Crankshaft', + NULL, + 1 + ), + ( + 180050, + 180001, + 'Ford BB HD CI Crankshaft', + NULL, + 2 + ), + ( + 180051, + 180001, + 'Ford SB HP TI Crankshaft', + NULL, + 2 + ), + ( + 180052, + 180001, + 'AMC Group 19 Crankshaft', + NULL, + 2 + ), + ( + 180053, + 180001, + 'Cadillac L-Head Crankshaft', + NULL, + 1 + ), + ( + 180054, + 180001, + 'Ford Cleveland Block Stock Crankshaft', + NULL, + 1 + ), + ( + 180055, + 180001, + 'Ford Cleveland Block Boss Crankshaft', + NULL, + 2 + ), + ( + 180056, + 180001, + 'Ford 385 Block Stock CI Crankshaft', + NULL, + 1 + ), + ( + 180057, + 180001, + 'Ford 385 Block Boss FS Crankshaft', + NULL, + 2 + ), + ( + 180058, + 180001, + 'Ford 385 Block NASCAR Crankshaft', + NULL, + 4 + ), + ( + 180059, + 180001, + 'Ford Y Truck Crankshaft', + NULL, + 1 + ), + ( + 180060, + 180001, + 'Chevrolet W Stock FS Crankshaft', + NULL, + 1 + ), + ( + 180061, + 180001, + 'Buick Nailhead Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180062, + 180001, + 'Buick SB Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180063, + 180001, + 'Buick BB Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180064, + 180001, + 'Cadillac L-Head Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180065, + 180001, + 'Cadillac Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180066, + 180001, + 'Chevrolet W Block Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180067, + 180001, + 'Chrysler Hemi Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180068, + 180001, + 'Ford Flathead Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180069, + 180001, + 'Oldsmobile SB Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180070, + 180001, + 'Oldsmobile BB Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180071, + 180001, + 'Newcomb Y Block Stump Puller Crankshaft', + NULL, + 2 + ), + ( + 180072, + 180001, + 'Newcomb Y Block Street Max Crankshaft', + NULL, + 2 + ), + ( + 180073, + 180001, + 'Newcomb Y Block Super Max Crankshaft', + NULL, + 2 + ), + ( + 180074, + 180001, + 'Duro Rod Y Block Marathon Crankshaft', + NULL, + 1 + ), + ( + 180075, + 180001, + 'Duro Rod Y Block Lightweight Crankshaft', + NULL, + 2 + ), + ( + 180076, + 180001, + 'Duro Rod Y Block Champion Crankshaft', + NULL, + 2 + ), + ( + 180077, + 180001, + 'Hedgely Y Block Super 292 Crankshaft', + NULL, + 1 + ), + ( + 180078, + 180001, + 'Hedgely Y Block Super 312 Crankshaft', + NULL, + 2 + ), + ( + 180079, + 180001, + 'Duro Rod Ford SB Champion Crank', + NULL, + 2 + ), + ( + 180080, + 180001, + 'Newcomb Ford SB Super Max Crank', + NULL, + 2 + ), + ( + 180081, + 180001, + 'Newcomb Ford SB Street Max Crank', + NULL, + 2 + ), + ( + 180082, + 180001, + 'Newcomb Buick Nailhead Stump Puller Crank', + NULL, + 2 + ), + ( + 180083, + 180001, + 'Newcomb Buick Nailhead Super Max Crank', + NULL, + 2 + ), + ( + 180084, + 180001, + 'Newcomb Buick Nailhead Street Max Crank', + NULL, + 2 + ), + ( + 180085, + 180001, + 'Hedgely Buick Nailhead Super 300 Crank', + NULL, + 1 + ), + ( + 180086, + 180001, + 'Hedgely Buick Nailhead Super 400 Crank', + NULL, + 2 + ), + ( + 180087, + 180001, + 'Duro Rod Buick Nailhead Champion Crank', + NULL, + 2 + ), + ( + 180088, + 180001, + 'Duro Rod Buick Nailhead Lightweight Crank', + NULL, + 2 + ), + ( + 180089, + 180001, + 'Duro Rod Buick Nailhead Marathon Crank', + NULL, + 2 + ), + ( + 180090, + 180001, + 'Hedgely Chrysler SB Super 340 Crank', + NULL, + 2 + ), + ( + 180091, + 180001, + 'Duro Rod Chrysler SB Lightweight Crank', + NULL, + 2 + ), + ( + 180092, + 180001, + 'Duro Rod Chrysler SB Marathon Crank', + NULL, + 2 + ), + ( + 180093, + 180001, + 'Percy Chrysler SB Lightweight Crank', + NULL, + 3 + ), + ( + 180094, + 180001, + 'Duro Rod Pontiac Lightweight Crank', + NULL, + 2 + ), + ( + 180095, + 180001, + 'Duro Rod Pontiac Marathon Crank', + NULL, + 2 + ), + ( + 180096, + 180001, + 'Hedgely Pontiac SD Special Crank', + NULL, + 2 + ), + ( + 180097, + 180001, + 'Newcomb Cleveland Stump Puller Crank', + NULL, + 1 + ), + ( + 180098, + 180001, + 'Newcomb Cleveland Street Max Crank', + NULL, + 2 + ), + ( + 180099, + 180001, + 'Newcomb Cleveland Super Max Crank', + NULL, + 3 + ), + ( + 180100, + 180001, + 'Duro Rod Cleveland Contender Crank', + NULL, + 1 + ), + ( + 180101, + 180001, + 'Duro Rod Cleveland Champion Crank', + NULL, + 2 + ), + ( + 180102, + 180001, + 'Duro Rod Cleveland Lightweight Crank', + NULL, + 3 + ), + ( + 180103, + 180001, + 'Duro Rod Cleveland Marathon Crank', + NULL, + 3 + ), + ( + 180104, + 180001, + 'Duro Rod Cleveland Legend Crank', + NULL, + 4 + ), + ( + 180105, + 180001, + 'Newcomb Ford 385 Stump Puller Crank', + NULL, + 1 + ), + ( + 180106, + 180001, + 'Newcomb Ford 385 Street Max Crank', + NULL, + 2 + ), + ( + 180107, + 180001, + 'Newcomb Ford 385 Super Max Crank', + NULL, + 3 + ), + ( + 180108, + 180001, + 'Duro Rod Ford 385 Contender Crank', + NULL, + 1 + ), + ( + 180109, + 180001, + 'Duro Rod Ford 385 Champion Crank', + NULL, + 2 + ), + ( + 180110, + 180001, + 'Duro Rod Ford 385 Lightweight Crank', + NULL, + 3 + ), + ( + 180111, + 180001, + 'Duro Rod Ford 385 Marathon Crank', + NULL, + 3 + ), + ( + 180112, + 180001, + 'Duro Rod Ford 385 Legend Crank', + NULL, + 4 + ), + ( + 180113, + 180001, + 'Newcomb Hemi Stump Puller Crank', + NULL, + 1 + ), + ( + 180114, + 180001, + 'Newcomb Hemi Street Max Crank', + NULL, + 2 + ), + ( + 180115, + 180001, + 'Newcomb Hemi Super Max Crank', + NULL, + 3 + ), + ( + 180116, + 180001, + 'Duro Rod Hemi Contender Crank', + NULL, + 1 + ), + ( + 180117, + 180001, + 'Duro Rod Hemi Champion Crank', + NULL, + 2 + ), + ( + 180118, + 180001, + 'Duro Rod Hemi Lighweight Crank', + NULL, + 3 + ), + ( + 180119, + 180001, + 'Duro Rod Hemi Marathon Crank', + NULL, + 3 + ), + ( + 180120, + 180001, + 'Duro Rod Hemi Legend Crank', + NULL, + 4 + ), + ( + 180121, + 180001, + 'Newcomb Cadillac BB Stump Puller Crank', + NULL, + 1 + ), + ( + 180122, + 180001, + 'Newcomb Cadillac BB Street Max Crank', + NULL, + 2 + ), + ( + 180123, + 180001, + 'Newcomb Cadillac BB Super Max Crank', + NULL, + 3 + ), + ( + 180124, + 180001, + 'Duro Rod Cadillac BB Contender Crank', + NULL, + 1 + ), + ( + 180125, + 180001, + 'Duro Rod Cadillac BB Champion Crank', + NULL, + 2 + ), + ( + 180126, + 180001, + 'Duro Rod Cadillac BB Lightweight Crank', + NULL, + 3 + ), + ( + 180127, + 180001, + 'Duro Rod Cadillac BB Marathon Crank', + NULL, + 3 + ), + ( + 180128, + 180001, + 'Duro Rod Cadillac BB Legend Crank', + NULL, + 4 + ), + ( + 180129, + 180001, + 'Duro Rod Chevy W Contender Crank', + NULL, + 2 + ), + ( + 180130, + 180001, + 'Duro Rod Chevy W Champion Crank', + NULL, + 2 + ), + ( + 180131, + 180001, + 'Duro Rod Chevy W Lightweight Crank', + NULL, + 3 + ), + ( + 180132, + 180001, + 'Duro Rod Chevy W Marathon Crank', + NULL, + 3 + ), + ( + 180133, + 180001, + 'Duro Rod Chevy W Legend Crank', + NULL, + 4 + ), + ( + 180134, + 180001, + 'Newcomb Chevy W Stump Puller Crank', + NULL, + 1 + ), + ( + 180135, + 180001, + 'Newcomb Chevy W Street Max Crank', + NULL, + 2 + ), + ( + 180136, + 180001, + 'Newcomb Chevy W Super Max Crank', + NULL, + 3 + ), + ( + 180137, + 180001, + 'Newcomb AMC Stump Puller Crank', + NULL, + 1 + ), + ( + 180138, + 180001, + 'Newcomb AMC Street Max Crank', + NULL, + 2 + ), + ( + 180139, + 180001, + 'Newcomb AMC Super Max Crank', + NULL, + 3 + ), + ( + 180140, + 180001, + 'Duro Rod AMC Contender Crank', + NULL, + 1 + ), + ( + 180141, + 180001, + 'Duro Rod AMC Champion Crank', + NULL, + 2 + ), + ( + 180142, + 180001, + 'Duro Rod AMC Lightweight Crank', + NULL, + 3 + ), + ( + 180143, + 180001, + 'Duro Rod AMC Marathon Crank', + NULL, + 3 + ), + ( + 180144, + 180001, + 'Duro Rod AMC Legend Crank', + NULL, + 4 + ), + ( + 180145, + 180001, + 'Newcomb Olds BB Stump Puller Crank', + NULL, + 1 + ), + ( + 180146, + 180001, + 'Newcomb Olds BB Street Max Crank', + NULL, + 2 + ), + ( + 180147, + 180001, + 'Newcomb Olds BB Super Max Crank', + NULL, + 3 + ), + ( + 180148, + 180001, + 'Duro Rod Olds BB Contender Crank', + NULL, + 1 + ), + ( + 180149, + 180001, + 'Duro Rod Olds BB Champion Crank', + NULL, + 2 + ), + ( + 180150, + 180001, + 'Duro Rod Olds BB Lightweight Crank', + NULL, + 3 + ), + ( + 180151, + 180001, + 'Duro Rod Olds BB Marathon Crank', + NULL, + 3 + ), + ( + 180152, + 180001, + 'Duro Rod Olds BB Legend Crank', + NULL, + 4 + ), + ( + 180153, + 180001, + 'Newcomb Chrylser BB Stump Puller Crank', + NULL, + 1 + ), + ( + 180154, + 180001, + 'Newcomb Chrysler BB Street Max Crank', + NULL, + 2 + ), + ( + 180155, + 180001, + 'Newcomb Chrysler BB Super Max Crank', + NULL, + 3 + ), + ( + 180156, + 180001, + 'Duro Rod Chrysler BB Contender Crank', + NULL, + 1 + ), + ( + 180157, + 180001, + 'Duro Rod Chrysler BB Champion Crank', + NULL, + 2 + ), + ( + 180158, + 180001, + 'Duro Rod Chrysler BB Lightweight Crank', + NULL, + 3 + ), + ( + 180159, + 180001, + 'Duro Rod Chrysler BB Marathon Crank', + NULL, + 3 + ), + ( + 180160, + 180001, + 'Duro Rod Chrysler BB Legend Crank', + NULL, + 4 + ), + ( + 180161, + 180001, + 'Newcomb Ford BB Stump Puller Crank', + NULL, + 1 + ), + ( + 180162, + 180001, + 'Newcomb Ford BB Street Max Crank', + NULL, + 2 + ), + ( + 180163, + 180001, + 'Newcomb Ford BB Super Max Crank', + NULL, + 3 + ), + ( + 180164, + 180001, + 'Duro Rod Ford BB Contender Crank', + NULL, + 1 + ), + ( + 180165, + 180001, + 'Duro Rod Ford BB Champion Crank', + NULL, + 2 + ), + ( + 180166, + 180001, + 'Duro Rod Ford BB Lightweight Crank', + NULL, + 3 + ), + ( + 180167, + 180001, + 'Duro Rod Ford BB Marathon Crank', + NULL, + 3 + ), + ( + 180168, + 180001, + 'Duro Rod Ford BB Legend Crank', + NULL, + 4 + ), + ( + 180169, + 180001, + 'Newcomb Chevy BB Stump Puller Crank', + NULL, + 1 + ), + ( + 180170, + 180001, + 'Newcomb Chevy BB Street Max Crank', + NULL, + 2 + ), + ( + 180171, + 180001, + 'Newcomb Chevy BB Super Max Crank', + NULL, + 3 + ), + ( + 180172, + 180001, + 'Duro Rod Chevy BB Contender Crank', + NULL, + 1 + ), + ( + 180173, + 180001, + 'Duro Rod Chevy BB Champion Crank', + NULL, + 2 + ), + ( + 180174, + 180001, + 'Duro Rod Chevy BB Lightweight Crank', + NULL, + 3 + ), + ( + 180175, + 180001, + 'Duro Rod Chevy BB Marathon Crank', + NULL, + 3 + ), + ( + 180176, + 180001, + 'Duro Rod Chevy BB Legend Crank', + NULL, + 4 + ), + (190001, 190001, 'Ford SB Boss 302 Rod', NULL, 2), + ( + 190002, + 190001, + 'Ford BB HD Capscrew Rod', + NULL, + 2 + ), + (190003, 190001, 'Ford BB HP 390 Rod', NULL, 2), + (190004, 190001, 'Pontiac Ram Air V Rod', NULL, 2), + ( + 190005, + 190001, + 'Cadillac BB Stock CI Rod', + NULL, + 1 + ), + (190006, 190001, 'Pontiac CI Stock Rod', NULL, 1), + (190007, 190001, 'Buick BB Stock Rod', NULL, 1), + ( + 190008, + 190001, + 'Buick Nailhead Stock Rod', + NULL, + 1 + ), + (190009, 190001, 'Cadillac BB Stock Rod', NULL, 1), + (190010, 190001, 'Chevrolet BB Stock Rod', NULL, 1), + (190011, 190001, 'Chevrolet SB Stock Rod', NULL, 1), + (190012, 190001, 'Chrysler BB Stock Rod', NULL, 1), + (190013, 190001, 'Chrysler SB Stock Rod', NULL, 1), + (190014, 190001, 'Ford BB Stock Rod', NULL, 1), + (190015, 190001, 'Ford SB Stock Rod', NULL, 1), + ( + 190016, + 190001, + 'Ford Flathead Stock Rod', + NULL, + 1 + ), + (190017, 190001, 'Olds BB Stock Rod', NULL, 1), + (190018, 190001, 'Olds SB Stock Rod', NULL, 1), + (190019, 190001, 'AMC Stock Rod', NULL, 1), + (190020, 190001, 'Pontiac Stock Rod', NULL, 1), + ( + 190021, + 190001, + 'Crower Sportsman Ford SB Rod', + NULL, + 2 + ), + ( + 190022, + 190001, + 'Crower Billet Steel Ford SB Rod', + NULL, + 3 + ), + ( + 190023, + 190001, + 'Crower Lightweight Billet Steel Ford SB Rod', + NULL, + 3 + ), + ( + 190024, + 190001, + 'Crower Maxi-Light 93 Billet Steel Ford SB Rod', + NULL, + 3 + ), + ( + 190025, + 190001, + 'Crower Titanium Ford BB Rod', + NULL, + 4 + ), + ( + 190026, + 190001, + 'Ford BB Le Mans Capscrew Rod', + NULL, + 4 + ), + (190027, 190001, 'Ford BB PI Rod', NULL, 2), + (190028, 190001, 'Ford 385 Boss Rod', NULL, 3), + (190029, 190001, 'Ford 385 820-S Rod', NULL, 4), + (190030, 190001, 'Ford 385 820-T Rod', NULL, 3), + (190031, 190001, 'Chrysler BB HD Rod', NULL, 2), + ( + 190032, + 190001, + 'Crower Sportsman Chevrolet SB Rod', + NULL, + 2 + ), + ( + 190033, + 190001, + 'Crower Sportsman Chevrolet BB Rod', + NULL, + 2 + ), + ( + 190034, + 190001, + 'Crower Billet Steel Ford BB Rod', + NULL, + 2 + ), + ( + 190035, + 190001, + 'Crower Billet Steel Pontiac Rod', + NULL, + 2 + ), + ( + 190036, + 190001, + 'Crower Billet Steel Olds BB Rod', + NULL, + 2 + ), + ( + 190037, + 190001, + 'Crower Billet Steel Buick BB Rod', + NULL, + 2 + ), + ( + 190038, + 190001, + 'Crower Billet Steel Chevrolet BB Rod', + NULL, + 2 + ), + ( + 190039, + 190001, + 'Crower Billet Steel Chevrolet SB Rod', + NULL, + 2 + ), + ( + 190040, + 190001, + 'Crower Lightweight Billet Steel Buick BB Rod', + NULL, + 2 + ), + ( + 190041, + 190001, + 'Crower Lightweight Billet Steel Chevrolet BB Rod', + NULL, + 2 + ), + ( + 190042, + 190001, + 'Crower Lightweight Billet Steel Chevrolet SB Rod', + NULL, + 2 + ), + ( + 190043, + 190001, + 'Crower Lightweight Billet Steel Ford BB Rod', + NULL, + 2 + ), + ( + 190044, + 190001, + 'Crower Lightweight Billet Steel Olds BB Rod', + NULL, + 2 + ), + ( + 190045, + 190001, + 'Crower Lightweight Billet Steel Pontiac Rod', + NULL, + 2 + ), + ( + 190046, + 190001, + 'Crower Maxi-Light 93 Billet Steel Chevrolet SB Rod', + NULL, + 3 + ), + ( + 190047, + 190001, + 'Crower Titanium Buick BB Rod', + NULL, + 4 + ), + ( + 190048, + 190001, + 'Crower Titanium Chevrolet BB Rod', + NULL, + 4 + ), + ( + 190049, + 190001, + 'Crower Titanium Chevrolet SB Rod', + NULL, + 4 + ), + ( + 190050, + 190001, + 'Lunati Forged Aluminum Chevrolet SB Rod', + NULL, + 2 + ), + ( + 190051, + 190001, + 'Lunati Forged Aluminum Chevrolet BB Rod', + NULL, + 2 + ), + ( + 190052, + 190001, + 'Lunati Street Race Ford SB Rod', + NULL, + 2 + ), + ( + 190053, + 190001, + 'Lunati Street Race Chevrolet SB Rod', + NULL, + 2 + ), + ( + 190054, + 190001, + 'Lunati Street Race Chevrolet BB Rod', + NULL, + 2 + ), + ( + 190055, + 190001, + 'Lunati Pro Billet Ford SB Rod', + NULL, + 3 + ), + ( + 190056, + 190001, + 'Lunati Pro Billet Chevrolet SB Rod', + NULL, + 3 + ), + ( + 190057, + 190001, + 'Lunati Pro Billet Chevrolet BB Rod', + NULL, + 3 + ), + ( + 190058, + 190001, + 'Lunati Pro Mod Chevrolet SB Rod', + NULL, + 2 + ), + ( + 190059, + 190001, + 'Lunati Pro Mod Chevrolet BB Rod', + NULL, + 2 + ), + ( + 190060, + 190001, + 'Lunati Sportsman H-Beam Chevrolet SB Rod', + NULL, + 2 + ), + ( + 190061, + 190001, + 'Lunati Sportsman H-Beam Chevrolet BB Rod', + NULL, + 2 + ), + ( + 190062, + 190001, + 'Lunati Sportsman H-Beam Ford BB Rod', + NULL, + 2 + ), + ( + 190063, + 190001, + 'Lunati Sportsman H-Beam Ford SB Rod', + NULL, + 2 + ), + ( + 190064, + 190001, + 'Lunati Sportsman H-Beam Chrysler BB Rod', + NULL, + 2 + ), + ( + 190065, + 190001, + 'Lunati Sportsman H-Beam Pontiac Rod', + NULL, + 2 + ), + ( + 190066, + 190001, + 'Chevrolet SB 400 FS Rod', + NULL, + 1 + ), + (190067, 190001, 'Chevrolet W HD FS Rod', NULL, 2), + (190068, 190001, 'AMC Stock TI Rod', NULL, 1), + (190069, 190001, 'Chrysler Hemi Rods', NULL, 3), + (190070, 190001, 'Cadillac L-Head Rods', NULL, 1), + ( + 190071, + 190001, + 'Buick SB Cast Iron Connecting Rod', + NULL, + 1 + ), + ( + 190072, + 190001, + 'Ford Cleveland Block Stock Rods', + NULL, + 1 + ), + ( + 190073, + 190001, + 'Ford Cleveland Block Boss Rods', + NULL, + 2 + ), + ( + 190074, + 190001, + 'Ford 385 Block Stock Rod', + NULL, + 1 + ), + (190075, 190001, 'Ford SB HP Rod', NULL, 2), + (190076, 190001, 'Ford Y Stock Rods', NULL, 1), + (190077, 190001, 'Ford Y Truck Rods', NULL, 1), + (190078, 190001, 'Buick Nailhead 364 Rod', NULL, 2), + (190079, 190001, 'Buick SB FS Rod', NULL, 2), + (190080, 190001, 'Cadillac L-Head FS Rod', NULL, 2), + ( + 190081, + 190001, + 'Chevrolet W Stock FS Rod', + NULL, + 1 + ), + ( + 190082, + 190001, + 'Lunati Sportsman H-Beam Chevrolet W Rod', + NULL, + 2 + ), + ( + 190083, + 190001, + 'Crower Billet Steel Chrysler SB Rod', + NULL, + 2 + ), + ( + 190084, + 190001, + 'Crower Billet Steel Chrysler Hemi Rod', + NULL, + 3 + ), + ( + 190085, + 190001, + 'Crower Lightweight Billet Steel Chrysler Hemi Rod', + NULL, + 3 + ), + ( + 190086, + 190001, + 'Crower Titanium Chrysler Hemi Rod', + NULL, + 4 + ), + ( + 190087, + 190001, + 'Lunati Pro Billet Chrysler Hemi Rod', + NULL, + 3 + ), + ( + 190088, + 190001, + 'Edelbrock Ford Flathead FS Rod', + NULL, + 2 + ), + (190089, 190001, 'Olds SB W-31 FS Rod', NULL, 2), + ( + 190090, + 190001, + 'Newcomb Y Block Stump Puller Rod', + NULL, + 1 + ), + ( + 190091, + 190001, + 'Newcomb Y Block Street Max Rod', + NULL, + 2 + ), + ( + 190092, + 190001, + 'Newcomb Y Block Super Max Rod', + NULL, + 2 + ), + ( + 190093, + 190001, + 'Duro Rod Y Block Marathon Rod', + NULL, + 1 + ), + ( + 190094, + 190001, + 'Duro Rod Y Block Lightweight Rod', + NULL, + 2 + ), + ( + 190095, + 190001, + 'Duro Rod Y Block Champion Rod', + NULL, + 2 + ), + ( + 190096, + 190001, + 'Duro Rod Y Block Legend Rod', + NULL, + 3 + ), + ( + 190097, + 190001, + 'Hedgely Y Block Extra Y Rod', + NULL, + 1 + ), + ( + 190098, + 190001, + 'Hedgely Y Block T-Bird Special Rod', + NULL, + 2 + ), + ( + 190099, + 190001, + 'Hedgely Buick Nailhead Century Special Rod', + NULL, + 1 + ), + ( + 190100, + 190001, + 'Hedgely Buick Nailhead Riviera Special Rod', + NULL, + 2 + ), + ( + 190101, + 190001, + 'Duro Rod Buick Nailhead Champion Rod', + NULL, + 2 + ), + ( + 190102, + 190001, + 'Duro Rod Buick Nailhead Legend Rod', + NULL, + 3 + ), + ( + 190103, + 190001, + 'Duro Rod Buick Nailhead Lightweight Rod', + NULL, + 2 + ), + ( + 190104, + 190001, + 'Duro Rod Buick Nailhead Marathon Rod', + NULL, + 2 + ), + ( + 190105, + 190001, + 'Newcomb Buick Nailhead Stump Puller Rod', + NULL, + 2 + ), + ( + 190106, + 190001, + 'Newcomb Buick Nailhead Street Max Rod', + NULL, + 2 + ), + ( + 190107, + 190001, + 'Newcomb Buick Nailhead Super Max Rod', + NULL, + 3 + ), + ( + 190108, + 190001, + 'Hedgely Ford SB T351 Billet Rod', + NULL, + 3 + ), + ( + 190109, + 190001, + 'Hedgely Ford SB Power I Rod', + NULL, + 2 + ), + ( + 190110, + 190001, + 'Percy Chrysler SB Replica Rod', + NULL, + 1 + ), + ( + 190111, + 190001, + 'Percy Chrysler SB Replica Street Racer Rod', + NULL, + 2 + ), + ( + 190112, + 190001, + 'Percy Chrysler SB Factory Lightweight Rod', + NULL, + 3 + ), + ( + 190113, + 190001, + 'Duro Rod Chrysler SB Marathon Rod', + NULL, + 2 + ), + ( + 190114, + 190001, + 'Duro Rod Chrysler SB Lightweight Rod', + NULL, + 2 + ), + ( + 190115, + 190001, + 'Newcomb Chrysler SB Street Max Rod', + NULL, + 2 + ), + ( + 190116, + 190001, + 'Duro Rod Pontiac Champion Rod', + NULL, + 2 + ), + ( + 190117, + 190001, + 'Duro Rod Pontiac Lightweight Rod', + NULL, + 2 + ), + ( + 190118, + 190001, + 'Duro Rod Pontiac Marathon Rod', + NULL, + 2 + ), + ( + 190119, + 190001, + 'Newcomb Cleveland Stump Puller Rod', + NULL, + 1 + ), + ( + 190120, + 190001, + 'Newcomb Cleveland Street Max Rod', + NULL, + 2 + ), + ( + 190121, + 190001, + 'Newcomb Cleveland Super Max Rod', + NULL, + 3 + ), + ( + 190122, + 190001, + 'Duro Rod Cleveland Lightweight Rod', + NULL, + 3 + ), + ( + 190123, + 190001, + 'Duro Rod Cleveland Marathon Rod', + NULL, + 3 + ), + ( + 190124, + 190001, + 'Duro Rod Cleveland Legend Rod', + NULL, + 4 + ), + ( + 190125, + 190001, + 'Newcomb Ford 385 Stump Puller Rod', + NULL, + 1 + ), + ( + 190126, + 190001, + 'Newcomb Ford 385 Street Max Rod', + NULL, + 2 + ), + ( + 190127, + 190001, + 'Newcomb Ford 385 Super Max Rod', + NULL, + 3 + ), + ( + 190128, + 190001, + 'Duro Rod Ford 385 Lightweight Rod', + NULL, + 3 + ), + ( + 190129, + 190001, + 'Duro Rod Ford 385 Marathon Rod', + NULL, + 3 + ), + ( + 190130, + 190001, + 'Duro Rod Ford 385 Legend Rod', + NULL, + 4 + ), + ( + 190131, + 190001, + 'Duro Rod Hemi Champion Rod', + NULL, + 2 + ), + ( + 190132, + 190001, + 'Duro Rod Hemi Lightweight Rod', + NULL, + 3 + ), + ( + 190133, + 190001, + 'Duro Rod Hemi Marathon Rod', + NULL, + 3 + ), + ( + 190134, + 190001, + 'Duro Rod Hemi Legend Rod', + NULL, + 4 + ), + ( + 190135, + 190001, + 'Duro Rod Cadillac BB Champion Rod', + NULL, + 2 + ), + ( + 190136, + 190001, + 'Duro Rod Cadillac BB Lightweight Rod', + NULL, + 3 + ), + ( + 190137, + 190001, + 'Duro Rod Cadillac BB Marathon Rod', + NULL, + 3 + ), + ( + 190138, + 190001, + 'Duro Rod Cadillac BB Legend Rod', + NULL, + 4 + ), + ( + 190139, + 190001, + 'Newcomb Cadillac BB Stump Puller Rod', + NULL, + 1 + ), + ( + 190140, + 190001, + 'Newcomb Cadillac BB Street Max Rod', + NULL, + 2 + ), + ( + 190141, + 190001, + 'Newcomb Cadillac BB Super Max Rod', + NULL, + 3 + ), + ( + 190142, + 190001, + 'Newcomb Chevy W Stump Puller Rod', + NULL, + 1 + ), + ( + 190143, + 190001, + 'Newcomb Chevy W Street Max Rod', + NULL, + 2 + ), + ( + 190144, + 190001, + 'Newcomb Chevy W Super Max Rod', + NULL, + 3 + ), + ( + 190145, + 190001, + 'Duro Rod Chevy W Contender Rod', + NULL, + 1 + ), + ( + 190146, + 190001, + 'Duro Rod Chevy W Champion Rod', + NULL, + 2 + ), + ( + 190147, + 190001, + 'Duro Rod Chevy W Lightweight Rod', + NULL, + 3 + ), + ( + 190148, + 190001, + 'Duro Rod Chevy W Marathon Rod', + NULL, + 3 + ), + ( + 190149, + 190001, + 'Duro Rod Chevy W Legend Rod', + NULL, + 4 + ), + ( + 190150, + 190001, + 'Newcomb AMC Stump Puller Rod', + NULL, + 1 + ), + ( + 190151, + 190001, + 'Newcomb AMC Street Max Rod', + NULL, + 2 + ), + ( + 190152, + 190001, + 'Newcomb AMC Super Max Rod', + NULL, + 3 + ), + ( + 190153, + 190001, + 'Duro Rod AMC Contender Rod', + NULL, + 1 + ), + ( + 190154, + 190001, + 'Duro Rod AMC Champion Rod', + NULL, + 2 + ), + ( + 190155, + 190001, + 'Duro Rod AMC Lightweight Rod', + NULL, + 3 + ), + ( + 190156, + 190001, + 'Duro Rod AMC Marathon Rod', + NULL, + 3 + ), + ( + 190157, + 190001, + 'Duro Rod AMC Legend Rod', + NULL, + 4 + ), + ( + 190158, + 190001, + 'Duro Rod Olds BB Contender Rod', + NULL, + 1 + ), + ( + 190159, + 190001, + 'Duro Rod Olds BB Champion Rod', + NULL, + 2 + ), + ( + 190160, + 190001, + 'Duro Rod Olds BB Lightweight Rod', + NULL, + 3 + ), + ( + 190161, + 190001, + 'Duro Rod Olds BB Marathon Rod', + NULL, + 3 + ), + ( + 190162, + 190001, + 'Duro Rod Olds BB Legend Rod', + NULL, + 4 + ), + ( + 190163, + 190001, + 'Newcomb Chrysler BB Stump Puller Rod', + NULL, + 1 + ), + ( + 190164, + 190001, + 'Newcomb Chrysler BB Street Max Rod', + NULL, + 2 + ), + ( + 190165, + 190001, + 'Newcomb Chrylser BB Super Max Rod', + NULL, + 3 + ), + ( + 190166, + 190001, + 'Duro Rod Chrysler BB Contender Rod', + NULL, + 1 + ), + ( + 190167, + 190001, + 'Duro Rod Chrysler BB Champion Rod', + NULL, + 2 + ), + ( + 190168, + 190001, + 'Duro Rod Chrysler BB Lightweight Rod', + NULL, + 3 + ), + ( + 190169, + 190001, + 'Duro Rod Chrysler BB Marathon Rod', + NULL, + 3 + ), + ( + 190170, + 190001, + 'Duro Rod Chrysler BB Legend Rod', + NULL, + 4 + ), + ( + 190171, + 190001, + 'Duro Rod Ford BB Contender Rod', + NULL, + 1 + ), + ( + 190172, + 190001, + 'Duro Rod Ford BB Champion Rod', + NULL, + 2 + ), + ( + 190173, + 190001, + 'Duro Rod Ford BB Lightweight Rod', + NULL, + 3 + ), + ( + 190174, + 190001, + 'Duro Rod Ford BB Marathon Rod', + NULL, + 3 + ), + ( + 190175, + 190001, + 'Duro Rod Ford BB Legend Rod', + NULL, + 4 + ), + ( + 200001, + 200001, + 'Ford BB Flat Top Piston', + NULL, + 1 + ), + ( + 200002, + 200001, + 'Ford SB Flat Top Piston', + NULL, + 1 + ), + ( + 200003, + 200001, + 'Chevrolet BB Flat Top Piston', + NULL, + 1 + ), + ( + 200004, + 200001, + 'JE Pistons Domed Top Ford BB Piston', + NULL, + 2 + ), + ( + 200005, + 200001, + 'Ford BB Cammer Pop-up Piston', + NULL, + 4 + ), + ( + 200006, + 200001, + 'Chevrolet SB Flat Top Piston', + NULL, + 1 + ), + ( + 200007, + 200001, + 'JE Pistons Wedge Top Ford Y Piston', + NULL, + 2 + ), + ( + 200008, + 200001, + 'Ford BB Recessed Top Piston', + NULL, + 1 + ), + ( + 200009, + 200001, + 'Chrysler SB Flat Top Piston', + NULL, + 1 + ), + (200010, 200001, 'AMC Group 19 Piston', NULL, 2), + ( + 200011, + 200001, + 'Chevrolet W Z11 Domed Top (3.25) Piston', + NULL, + 4 + ), + ( + 200012, + 200001, + 'Pontiac Ram Air IV Forged Aluminum Piston', + NULL, + 2 + ), + ( + 200013, + 200001, + 'JE Pistons Domed Top Ford SB Piston', + NULL, + 2 + ), + (200014, 200001, 'Ford 385 Boss Piston', NULL, 2), + ( + 200015, + 200001, + 'Chrysler BB Flat Top Piston', + NULL, + 1 + ), + ( + 200016, + 200001, + 'Buick BB Flat Top Piston', + NULL, + 1 + ), + ( + 200017, + 200001, + 'Buick SB Flat Top Piston', + NULL, + 1 + ), + ( + 200018, + 200001, + 'Cadillac BB Flat Top Piston', + NULL, + 1 + ), + ( + 200019, + 200001, + 'Ford Flathead Flat Top Piston', + NULL, + 1 + ), + ( + 200020, + 200001, + 'Olds BB Flat Top Piston', + NULL, + 1 + ), + ( + 200021, + 200001, + 'Olds SB Flat Top Piston', + NULL, + 1 + ), + (200022, 200001, 'AMC Flat Top Piston', NULL, 1), + ( + 200023, + 200001, + 'Pontiac Flat Top Piston', + NULL, + 1 + ), + ( + 200024, + 200001, + 'Chevrolet SB Flat Top Forged Aluminum Piston', + NULL, + 2 + ), + ( + 200025, + 200001, + 'Buick BB Stage I Piston', + NULL, + 2 + ), + ( + 200026, + 200001, + 'Buick BB Stage II Piston', + NULL, + 2 + ), + ( + 200027, + 200001, + 'Pontiac Flat Top Forged Aluminum Piston', + NULL, + 2 + ), + ( + 200028, + 200001, + 'Ford BB Flat Top Forged Aluminum Piston', + NULL, + 2 + ), + ( + 200029, + 200001, + 'Chrysler BB Flat Top Forged Aluminum Piston', + NULL, + 2 + ), + ( + 200030, + 200001, + 'Chevrolet W Domed Top (0.75) Piston', + NULL, + 2 + ), + ( + 200031, + 200001, + 'JE Pistons Wedge Top Ford SB Piston', + NULL, + 2 + ), + ( + 200032, + 200001, + 'JE Pistons Wedge Top Chevrolet SB Piston', + NULL, + 2 + ), + ( + 200033, + 200001, + 'JE Pistons Wedge Top Chevrolet BB Piston', + NULL, + 2 + ), + ( + 200034, + 200001, + 'JE Pistons Wedge Top Buick BB Piston', + NULL, + 2 + ), + ( + 200035, + 200001, + 'JE Pistons Wedge Top Olds BB Piston', + NULL, + 2 + ), + ( + 200036, + 200001, + 'JE Pistons Domed Top Chevrolet SB Piston', + NULL, + 2 + ), + ( + 200037, + 200001, + 'JE Pistons Domed Top Chevrolet BB Piston', + NULL, + 2 + ), + ( + 200038, + 200001, + 'JE Pistons Wedge Top Chrysler BB Piston', + NULL, + 2 + ), + ( + 200039, + 200001, + 'JE Pistons Domed Top Chrysler BB Piston', + NULL, + 2 + ), + ( + 200040, + 200001, + 'JE Pistons Domed Top Buick BB Piston', + NULL, + 2 + ), + ( + 200041, + 200001, + 'JE Pistons Domed Top Olds BB Piston', + NULL, + 2 + ), + ( + 200042, + 200001, + 'Ford Y Domed Top Piston', + NULL, + 2 + ), + ( + 200043, + 200001, + 'Ford BB LR Domed (0.4) Piston', + NULL, + 3 + ), + ( + 200044, + 200001, + 'Ford BB Recessed (-0.1) Piston', + NULL, + 1 + ), + ( + 200045, + 200001, + 'Chrysler BB Wedge (0.1) Piston', + NULL, + 2 + ), + ( + 200046, + 200001, + 'Chevrolet BB Flat Top Forged Aluminum Piston', + NULL, + 2 + ), + ( + 200047, + 200001, + 'Chevrolet SB Z28 Recessed Top Piston', + NULL, + 2 + ), + ( + 200048, + 200001, + 'Chevrolet W Recessed (-0.75) Cast Al. Piston', + NULL, + 1 + ), + ( + 200049, + 200001, + 'Chevrolet W Domed Top (1.0) Piston', + NULL, + 2 + ), + ( + 200050, + 200001, + 'Chevrolet W Recessed (-0.25) FA Piston', + NULL, + 1 + ), + ( + 200051, + 200001, + 'Chevrolet BB Wedge Top FA Piston', + NULL, + 3 + ), + ( + 200052, + 200001, + 'Olds BB Wedge Top Piston', + NULL, + 2 + ), + ( + 200053, + 200001, + 'Chrysler Hemi Flat Top FA Piston', + NULL, + 2 + ), + ( + 200054, + 200001, + 'Ford SB Boss 302 FA Piston', + NULL, + 2 + ), + (200055, 200001, 'Cadillac L-Head Piston', NULL, 1), + ( + 200056, + 200001, + 'Buick Nailhead Recessed (-0.5) Piston', + NULL, + 1 + ), + ( + 200057, + 200001, + 'Buick Nailhead Flat Top (0.0) Piston', + NULL, + 1 + ), + ( + 200058, + 200001, + 'Buick Nailhead Wedge Top (0.5) Piston', + NULL, + 1 + ), + ( + 200059, + 200001, + 'Buick Nailhead Domed Top (1.0) Piston', + NULL, + 1 + ), + ( + 200060, + 200001, + 'JE Pistons Chrysler SB FT FA Piston', + NULL, + 1 + ), + ( + 200061, + 200001, + 'Ford Cleveland Block Stock Piston', + NULL, + 1 + ), + ( + 200062, + 200001, + 'Ford Cleveland Block FT FA Piston', + NULL, + 1 + ), + ( + 200063, + 200001, + 'Ford 385 Block Stock Piston', + NULL, + 1 + ), + ( + 200064, + 200001, + 'Ford 385 Block CJ Piston', + NULL, + 2 + ), + (200065, 200001, 'Ford Y Stock CA Piston', NULL, 1), + ( + 200066, + 200001, + 'Buick SB Wedge Top Piston', + NULL, + 2 + ), + ( + 200067, + 200001, + 'Cadillac L-Head FA Piston', + NULL, + 1 + ), + ( + 200068, + 200001, + 'Cadillac L-Head Wedge Top Piston', + NULL, + 2 + ), + ( + 200069, + 200001, + 'Cadillac BB Wedge Top Piston', + NULL, + 2 + ), + ( + 200070, + 200001, + 'Chrysler Hemi Wedge Top FA Piston', + NULL, + 3 + ), + ( + 200071, + 200001, + 'Chrysler Hemi Recessed Top FA Piston', + NULL, + 3 + ), + ( + 200072, + 200001, + 'Ford Flathead Wedge Top Piston', + NULL, + 2 + ), + ( + 200073, + 200001, + 'Ford Flathead Domed Top Piston', + NULL, + 2 + ), + ( + 200074, + 200001, + 'Oldsmobile SB Wedge Top Piston', + NULL, + 2 + ), + ( + 200075, + 200001, + 'Blinsky HiPo Adept Piston', + NULL, + 4 + ), + ( + 200076, + 200001, + 'Newcomb Y Block Wedge (.15)', + NULL, + 1 + ), + ( + 200077, + 200001, + 'Newcomb Y Block Wedge (.35)', + NULL, + 2 + ), + ( + 200078, + 200001, + 'Newcomb Y Block Wedge (.4)', + NULL, + 2 + ), + ( + 200079, + 200001, + 'Newcomb Y Block Wedge (.2)', + NULL, + 1 + ), + ( + 200080, + 200001, + 'Newcomb Y Block Wedge (.3)', + NULL, + 2 + ), + ( + 200081, + 200001, + 'Duro Rod Y Block Domed (.1)', + NULL, + 1 + ), + ( + 200082, + 200001, + 'Duro Rod Y Block Domed (.45)', + NULL, + 2 + ), + ( + 200083, + 200001, + 'Duro Rod Y Block Domed (.2)', + NULL, + 1 + ), + ( + 200084, + 200001, + 'Duro Rod Y Block Domed (.35)', + NULL, + 2 + ), + ( + 200085, + 200001, + 'Duro Rod Y Block Domed (.5)', + NULL, + 2 + ), + ( + 200086, + 200001, + 'C&B Chevy SB Domed (.1)', + NULL, + 1 + ), + ( + 200087, + 200001, + 'C&B Chevy SB Domed (.2)', + NULL, + 1 + ), + ( + 200088, + 200001, + 'C&B Chevy SB Domed (.3)', + NULL, + 1 + ), + ( + 200089, + 200001, + 'C&B Chevy SB Domed (.4)', + NULL, + 2 + ), + ( + 200090, + 200001, + 'C&B Chevy SB Domed (.5)', + NULL, + 2 + ), + ( + 200091, + 200001, + 'C&B Chevy SB Domed (.6)', + NULL, + 2 + ), + ( + 200092, + 200001, + 'C&B Chevy SB Domed (.75)', + NULL, + 3 + ), + (200093, 200001, 'JE Chevy SB Domed (.3)', NULL, 2), + (200094, 200001, 'JE Chevy SB Domed (.2)', NULL, 2), + ( + 200095, + 200001, + 'JE Chevy SB Wedge (.15)', + NULL, + 2 + ), + ( + 200096, + 200001, + 'JE Chevy SB Wedge (.35)', + NULL, + 2 + ), + (200097, 200001, 'JE Ford SB Domed (.3)', NULL, 2), + (200098, 200001, 'JE Ford SB Domed (.75)', NULL, 2), + (200099, 200001, 'JE Ford SB Wedge (.5)', NULL, 2), + (200100, 200001, 'JE Ford SB Wedge (.15)', NULL, 1), + ( + 200101, + 200001, + 'Duro Rod Ford SB Domed (.2)', + NULL, + 1 + ), + ( + 200102, + 200001, + 'Duro Rod Ford SB Domed (.35)', + NULL, + 2 + ), + ( + 200103, + 200001, + 'Duro Rod Ford SB Domed (.65)', + NULL, + 2 + ), + ( + 200104, + 200001, + 'Newcomb Ford SB Wedge (.3)', + NULL, + 2 + ), + ( + 200105, + 200001, + 'Newcomb Ford SB Wedge (.6)', + NULL, + 2 + ), + ( + 200106, + 200001, + 'Newcomb Ford SB Recessed (-.45)', + NULL, + 2 + ), + ( + 200107, + 200001, + 'Duro Rod Ford SB Recessed (-.15)', + NULL, + 1 + ), + ( + 200108, + 200001, + 'Newcomb Ford SB Recessed (-.25)', + NULL, + 1 + ), + (200109, 200001, 'JE Ford SB Wedge (.4)', NULL, 2), + ( + 200110, + 200001, + 'Duro Rod Buick Nailhead Domed (.3)', + NULL, + 2 + ), + ( + 200111, + 200001, + 'Duro Rod Buick Nailhead Domed (.5)', + NULL, + 2 + ), + ( + 200112, + 200001, + 'Newcomb Buick Nailhead Domed (.25)', + NULL, + 1 + ), + ( + 200113, + 200001, + 'Duro Rod Buick Nailhead Wedge (.25)', + NULL, + 1 + ), + ( + 200114, + 200001, + 'Newcomb Buick Nailhead Wedge (.35)', + NULL, + 2 + ), + ( + 200115, + 200001, + 'Duro Rod Buick Nailhead Wedge (.15)', + NULL, + 1 + ), + ( + 200116, + 200001, + 'Newcomb Buick Nailhead Recessed (-.2)', + NULL, + 1 + ), + ( + 200117, + 200001, + 'Duro Rod Buick Nailhead Recessed (-.1)', + NULL, + 1 + ), + ( + 200118, + 200001, + 'Newcomb Buick Nailhead Recessed (-.25)', + NULL, + 2 + ), + ( + 200119, + 200001, + 'Duro Rod Buick Nailhead Recessed (-.35)', + NULL, + 2 + ), + ( + 200120, + 200001, + 'Duro Rod Buick Nailhead Flat Top', + NULL, + 1 + ), + ( + 200121, + 200001, + 'Newcomb Buick Nailhead Flat Top', + NULL, + 2 + ), + ( + 200122, + 200001, + 'Newcomb Chrysler SB Recessed (-.75)', + NULL, + 2 + ), + ( + 200123, + 200001, + 'Newcomb Chrysler SB Recessed (-.5)', + NULL, + 2 + ), + ( + 200124, + 200001, + 'Newcomb Chrysler SB Recessed (-.25)', + NULL, + 1 + ), + ( + 200125, + 200001, + 'Duro Rod Chrysler SB Recessed (-.6)', + NULL, + 2 + ), + ( + 200126, + 200001, + 'Duro Rod Chrysler SB Recessed (-.3)', + NULL, + 1 + ), + ( + 200127, + 200001, + 'Duro Rod Chrysler SB Wedge (.3)', + NULL, + 1 + ), + ( + 200128, + 200001, + 'Duro Rod Chrysler SB Wedge (.5)', + NULL, + 2 + ), + ( + 200129, + 200001, + 'Duro Rod Chrysler SB Wedge (.75)', + NULL, + 2 + ), + ( + 200130, + 200001, + 'Newcomb Chrysler SB Wedge (.25)', + NULL, + 1 + ), + ( + 200131, + 200001, + 'Newcomb Chrysler SB Wedge (1.0)', + NULL, + 2 + ), + ( + 200132, + 200001, + 'Newcomb Chrysler SB Flat Top Lightweight', + NULL, + 2 + ), + ( + 200133, + 200001, + 'JE Pistons Chrysler SB Domed (.25)', + NULL, + 1 + ), + ( + 200134, + 200001, + 'JE Pistons Chrysler SB Domed (.75)', + NULL, + 2 + ), + ( + 200135, + 200001, + 'JE Pistons Chrysler SB Domed (1.0)', + NULL, + 3 + ), + ( + 200136, + 200001, + 'JE Pistons Chrysler SB Domed (1.25)', + NULL, + 4 + ), + ( + 200137, + 200001, + 'Newcomb Pontiac Recessed (-.25)', + NULL, + 1 + ), + ( + 200138, + 200001, + 'Newcomb Pontiac Recessed (-.5)', + NULL, + 2 + ), + ( + 200139, + 200001, + 'Newcomb Pontiac Recessed (-.75)', + NULL, + 2 + ), + ( + 200140, + 200001, + 'Duro Rod Pontiac Recessed (-.3)', + NULL, + 1 + ), + ( + 200141, + 200001, + 'Duro Rod Pontiac Recessed (-.6)', + NULL, + 2 + ), + ( + 200142, + 200001, + 'Duro Rod Pontiac Wedge (.2)', + NULL, + 1 + ), + ( + 200143, + 200001, + 'Duro Rod Pontiac Wedge (.6)', + NULL, + 2 + ), + ( + 200144, + 200001, + 'Duro Rod Pontiac Wedge (.8)', + NULL, + 3 + ), + ( + 200145, + 200001, + 'Newcomb Pontiac Wedge (.4)', + NULL, + 2 + ), + ( + 200146, + 200001, + 'Newcomb Pontiac Wedge (1.0)', + NULL, + 3 + ), + ( + 200147, + 200001, + 'JE Pistons Pontiac Domed (.25)', + NULL, + 1 + ), + ( + 200148, + 200001, + 'JE Pistons Pontiac Domed (.5)', + NULL, + 2 + ), + ( + 200149, + 200001, + 'JE Pistons Pontiac Domed (.75)', + NULL, + 2 + ), + ( + 200150, + 200001, + 'JE Pistons Pontiac Domed (1.0)', + NULL, + 3 + ), + ( + 200151, + 200001, + 'JE Pistons Pontiac Domed (1.25)', + NULL, + 4 + ), + ( + 200152, + 200001, + 'JE Chevy BB Recessed (-.15)', + NULL, + 1 + ), + ( + 200153, + 200001, + 'JE Chevy BB Recessed (-.25)', + NULL, + 1 + ), + ( + 200154, + 200001, + 'JE Chevy BB Recessed (-.35)', + NULL, + 2 + ), + ( + 200155, + 200001, + 'JE Chevy BB Recessed (-.5)', + NULL, + 2 + ), + ( + 200156, + 200001, + 'JE Chevy BB Recessed (-.75)', + NULL, + 3 + ), + ( + 200157, + 200001, + 'JE Chevy BB Wedge (.35)', + NULL, + 2 + ), + (200158, 200001, 'JE Chevy BB Wedge (.5)', NULL, 2), + ( + 200159, + 200001, + 'JE Chevy BB Wedge (.75)', + NULL, + 2 + ), + ( + 200160, + 200001, + 'JE Chevy BB Wedge (1.0)', + NULL, + 3 + ), + ( + 200161, + 200001, + 'JE Chevy BB Domed (.25)', + NULL, + 1 + ), + ( + 200162, + 200001, + 'JE Chevy BB Domed (.75)', + NULL, + 2 + ), + ( + 200163, + 200001, + 'JE Chevy BB Domed (1.0)', + NULL, + 3 + ), + ( + 200164, + 200001, + 'JE Chevy BB Domed (1.25)', + NULL, + 4 + ), + ( + 200165, + 200001, + 'Duro Rod Ford BB Recessed (-.3)', + NULL, + 2 + ), + ( + 200166, + 200001, + 'Duro Rod Ford BB Recessed (-.6)', + NULL, + 2 + ), + ( + 200167, + 200001, + 'Newcomb Ford BB Recessed (-.25)', + NULL, + 1 + ), + ( + 200168, + 200001, + 'Newcomb Ford BB Recessed (-.5)', + NULL, + 2 + ), + ( + 200169, + 200001, + 'Newcomb Ford BB Recessed (-.75)', + NULL, + 2 + ), + (200170, 200001, 'JE Ford BB Wedge (.15)', NULL, 1), + (200171, 200001, 'JE Ford BB Wedge (.25)', NULL, 2), + (200172, 200001, 'JE Ford BB Wedge (.5)', NULL, 2), + (200173, 200001, 'JE Ford BB Wedge (.75)', NULL, 2), + (200174, 200001, 'JE Ford BB Wedge (1.0)', NULL, 3), + (200175, 200001, 'JE Ford BB Domed (.25)', NULL, 2), + (200176, 200001, 'JE Ford BB Domed (.75)', NULL, 2), + (200177, 200001, 'JE Ford BB Domed (1.0)', NULL, 3), + ( + 200178, + 200001, + 'JE Ford BB Domed (1.25)', + NULL, + 4 + ), + ( + 200179, + 200001, + 'JE Chrysler BB Wedge (.15)', + NULL, + 1 + ), + ( + 200180, + 200001, + 'JE Chrysler BB Wedge (.5)', + NULL, + 2 + ), + ( + 200181, + 200001, + 'JE Chrysler BB Wedge (.75)', + NULL, + 2 + ), + ( + 200182, + 200001, + 'JE Chrysler BB Wedge (1.0)', + NULL, + 3 + ), + ( + 200183, + 200001, + 'JE Chrysler BB Domed (.25)', + NULL, + 2 + ), + ( + 200184, + 200001, + 'JE Chrysler BB Domed (.75)', + NULL, + 2 + ), + ( + 200185, + 200001, + 'JE Chrysler BB Domed (1.0)', + NULL, + 3 + ), + ( + 200186, + 200001, + 'JE Chrysler BB Domed (1.25)', + NULL, + 4 + ), + ( + 200187, + 200001, + 'Duro Rod Chrysler BB Recessed (-.3)', + NULL, + 2 + ), + ( + 200188, + 200001, + 'Duro Rod Chrysler BB Recessed (-.6)', + NULL, + 2 + ), + ( + 200189, + 200001, + 'Newcomb Chrysler BB Recessed (-.25)', + NULL, + 2 + ), + ( + 200190, + 200001, + 'Newcomb Chrysler BB Recessed (-.5)', + NULL, + 2 + ), + ( + 200191, + 200001, + 'Newcomb Chrysler BB Recessed (-.75)', + NULL, + 2 + ), + ( + 200192, + 200001, + 'Duro Rod Olds BB Recessed (-.3)', + NULL, + 2 + ), + ( + 200193, + 200001, + 'Duro Rod Olds BB Recessed (-.6)', + NULL, + 2 + ), + ( + 200194, + 200001, + 'Newcomb Olds BB Recessed (-.25)', + NULL, + 2 + ), + ( + 200195, + 200001, + 'Newcomb Olds BB Recessed (-.5)', + NULL, + 2 + ), + ( + 200196, + 200001, + 'Newcomb Olds BB Recessed (-.75)', + NULL, + 2 + ), + (200197, 200001, 'JE Olds BB Wedge (.15)', NULL, 1), + (200198, 200001, 'JE Olds BB Wedge (.5)', NULL, 2), + (200199, 200001, 'JE Olds BB Wedge (.75)', NULL, 2), + (200200, 200001, 'JE Olds BB Wedge (1.0)', NULL, 3), + (200201, 200001, 'JE Olds BB Domed (.25)', NULL, 2), + (200202, 200001, 'JE Olds BB Domed (.75)', NULL, 2), + (200203, 200001, 'JE Olds BB Domed (1.0)', NULL, 3), + ( + 200204, + 200001, + 'JE Olds BB Domed (1.25)', + NULL, + 4 + ), + ( + 200205, + 200001, + 'Duro Rod AMC Recessed (-.3)', + NULL, + 2 + ), + ( + 200206, + 200001, + 'Duro Rod AMC Recessed (-.6)', + NULL, + 2 + ), + ( + 200207, + 200001, + 'Newcomb AMC Recessed (-.25)', + NULL, + 2 + ), + ( + 200208, + 200001, + 'Newcomb AMC Recessed (-.5)', + NULL, + 2 + ), + ( + 200209, + 200001, + 'Newcomb AMC Recessed (-.75)', + NULL, + 2 + ), + (200210, 200001, 'JE AMC Wedge (.15)', NULL, 1), + (200211, 200001, 'JE AMC Wedge (.25)', NULL, 2), + (200212, 200001, 'JE AMC Wedge (.5)', NULL, 2), + (200213, 200001, 'JE AMC Wedge (.75)', NULL, 2), + (200214, 200001, 'JE AMC Wedge (1.0)', NULL, 3), + (200215, 200001, 'JE AMC Domed (.25)', NULL, 2), + (200216, 200001, 'JE AMC Domed (.5)', NULL, 2), + (200217, 200001, 'JE AMC Domed (.75)', NULL, 2), + (200218, 200001, 'JE AMC Domed (1.0)', NULL, 3), + (200219, 200001, 'JE AMC Domed (1.25)', NULL, 4), + ( + 200220, + 200001, + 'Newcomb Chevy W Recessed (-.5)', + NULL, + 2 + ), + ( + 200221, + 200001, + 'Duro Rod Chevy W Recessed (-.3)', + NULL, + 2 + ), + ( + 200222, + 200001, + 'Duro Rod Chevy W Recessed (-.6)', + NULL, + 2 + ), + (200223, 200001, 'JE Chevy W Wedge (.15)', NULL, 1), + (200224, 200001, 'JE Chevy W Wedge (.25)', NULL, 2), + (200225, 200001, 'JE Chevy W Wedge (.5)', NULL, 2), + (200226, 200001, 'JE Chevy W Wedge (.75)', NULL, 2), + (200227, 200001, 'JE Chevy W Wedge (1.0)', NULL, 3), + (200228, 200001, 'JE Chevy W Domed (.25)', NULL, 2), + (200229, 200001, 'JE Chevy W Domed (.5)', NULL, 2), + ( + 200230, + 200001, + 'JE Chevy W Domed (1.25)', + NULL, + 4 + ), + ( + 200231, + 200001, + 'Newcomb Cadillac BB Recessed (-.25)', + NULL, + 2 + ), + ( + 200232, + 200001, + 'Newcomb Cadillac BB Recessed (-.5)', + NULL, + 2 + ), + ( + 200233, + 200001, + 'Newcomb Cadillac BB Recessed (-.75)', + NULL, + 2 + ), + ( + 200234, + 200001, + 'Duro Rod Cadillac BB Recessed (-.3)', + NULL, + 2 + ), + ( + 200235, + 200001, + 'Duro Rod Cadillac BB Recessed (-.6)', + NULL, + 2 + ), + ( + 200236, + 200001, + 'JE Cadillac BB Domed (.25)', + NULL, + 2 + ), + ( + 200237, + 200001, + 'JE Cadillac BB Domed (.5)', + NULL, + 2 + ), + ( + 200238, + 200001, + 'JE Cadillac BB Domed (.75)', + NULL, + 2 + ), + ( + 200239, + 200001, + 'JE Cadillac BB Domed (1.0)', + NULL, + 3 + ), + ( + 200240, + 200001, + 'JE Cadillac BB Domed (1.25)', + NULL, + 4 + ), + ( + 200241, + 200001, + 'JE Cadillac BB Wedge (.15)', + NULL, + 1 + ), + ( + 200242, + 200001, + 'JE Cadillac BB Wedge (.25)', + NULL, + 2 + ), + ( + 200243, + 200001, + 'JE Cadillac BB Wedge (.5)', + NULL, + 2 + ), + ( + 200244, + 200001, + 'JE Cadillac BB Wedge (.75)', + NULL, + 2 + ), + ( + 200245, + 200001, + 'JE Cadillac BB Wedge (1.0)', + NULL, + 3 + ), + ( + 200246, + 200001, + 'Newcomb Hemi Recessed (-.25)', + NULL, + 2 + ), + ( + 200247, + 200001, + 'Newcomb Hemi Recessed (-.5)', + NULL, + 2 + ), + ( + 200248, + 200001, + 'Newcomb Hemi Recessed (-.75)', + NULL, + 2 + ), + ( + 200249, + 200001, + 'Duro Rod Hemi Recessed (-.3)', + NULL, + 2 + ), + ( + 200250, + 200001, + 'Duro Rod Hemi Recessed (-.6)', + NULL, + 2 + ), + (200251, 200001, 'JE Hemi Domed (.25)', NULL, 2), + (200252, 200001, 'JE Hemi Domed (.5)', NULL, 2), + (200253, 200001, 'JE Hemi Domed (.75)', NULL, 2), + (200254, 200001, 'JE Hemi Domed (1.0)', NULL, 3), + (200255, 200001, 'JE Hemi Domed (1.25)', NULL, 4), + (200256, 200001, 'JE Hemi Wedge (.15)', NULL, 1), + (200257, 200001, 'JE Hemi Wedge (.25)', NULL, 2), + (200258, 200001, 'JE Hemi Wedge (.5)', NULL, 2), + (200259, 200001, 'JE Hemi Wedge (.75)', NULL, 2), + (200260, 200001, 'JE Hemi Wedge (1.0)', NULL, 3), + ( + 200261, + 200001, + 'Newcomb Ford 385 Recessed (-.25)', + NULL, + 2 + ), + ( + 200262, + 200001, + 'Newcomb Ford 385 Recessed (-.5)', + NULL, + 2 + ), + ( + 200263, + 200001, + 'Newcomb Ford 385 Recessed (-.75)', + NULL, + 2 + ), + ( + 200264, + 200001, + 'Duro Rod Ford 385 Recessed (-.3)', + NULL, + 2 + ), + ( + 200265, + 200001, + 'Duro Rod Ford 385 Recessed (-.6)', + NULL, + 2 + ), + ( + 200266, + 200001, + 'JE Ford 385 Domed (.25)', + NULL, + 2 + ), + (200267, 200001, 'JE Ford 385 Domed (.5)', NULL, 2), + ( + 200268, + 200001, + 'JE Ford 385 Domed (.75)', + NULL, + 2 + ), + ( + 200269, + 200001, + 'JE Ford 385 Domed (1.0)', + NULL, + 3 + ), + ( + 200270, + 200001, + 'JE Ford 385 Domed (1.25)', + NULL, + 4 + ), + ( + 200271, + 200001, + 'JE Ford 385 Wedge (.15)', + NULL, + 1 + ), + ( + 200272, + 200001, + 'JE Ford 385 Wedge (.25)', + NULL, + 2 + ), + (200273, 200001, 'JE Ford 385 Wedge (.5)', NULL, 2), + ( + 200274, + 200001, + 'JE Ford 385 Wedge (.75)', + NULL, + 2 + ), + ( + 200275, + 200001, + 'JE Ford 385 Wedge (1.0)', + NULL, + 3 + ), + ( + 200276, + 200001, + 'Newcomb Cleveland Recessed (-.25)', + NULL, + 2 + ), + ( + 200277, + 200001, + 'Newcomb Cleveland Recessed (-.5)', + NULL, + 2 + ), + ( + 200278, + 200001, + 'Newcomb Cleveland Recessed (-.75)', + NULL, + 2 + ), + ( + 200279, + 200001, + 'Duro Rod Cleveland Recessed (-.3)', + NULL, + 2 + ), + ( + 200280, + 200001, + 'Duro Rod Cleveland Recessed (-.6)', + NULL, + 2 + ), + ( + 200281, + 200001, + 'JE Cleveland Domed (.25)', + NULL, + 2 + ), + ( + 200282, + 200001, + 'JE Cleveland Domed (.5)', + NULL, + 2 + ), + ( + 200283, + 200001, + 'JE Cleveland Domed (.75)', + NULL, + 2 + ), + ( + 200284, + 200001, + 'JE Cleveland Domed (1.0)', + NULL, + 3 + ), + ( + 200285, + 200001, + 'JE Cleveland Domed (1.25)', + NULL, + 4 + ), + ( + 200286, + 200001, + 'JE Cleveland Wedge (.15)', + NULL, + 1 + ), + ( + 200287, + 200001, + 'JE Cleveland Wedge (.25)', + NULL, + 2 + ), + ( + 200288, + 200001, + 'JE Cleveland Wedge (.5)', + NULL, + 2 + ), + ( + 200289, + 200001, + 'JE Cleveland Wedge (.75)', + NULL, + 2 + ), + ( + 200290, + 200001, + 'JE Cleveland Wedge (1.0)', + NULL, + 3 + ), + ( + 230001, + 230001, + 'Normal Duty Cooling System', + NULL, + 1 + ), + ( + 230002, + 230001, + 'Light Duty Cooling System', + NULL, + 1 + ), + ( + 230003, + 230001, + 'Heavy Duty Cooling System', + NULL, + 3 + ), + ( + 230004, + 230001, + 'Extra Heavy Duty Cooling System', + NULL, + 4 + ), + ( + 230005, + 230001, + 'Ford BB Boss XHD Cooling System', + NULL, + 4 + ), + ( + 230006, + 230001, + 'Edelbrock Victor Series Cooling System', + NULL, + 2 + ), + (230007, 230001, 'Chevy SB Standard', NULL, 1), + (230008, 230001, 'Chevy SB Heavy Duty', NULL, 2), + (230009, 230001, 'Chevy W Standard', NULL, 1), + (230010, 230001, 'Chevy W Heavy Duty', NULL, 2), + (230011, 230001, 'Chevy BB Standard', NULL, 1), + (230012, 230001, 'Chevy BB Heavy Duty', NULL, 2), + (230013, 230001, 'Chrysler SB Standard', NULL, 1), + (230014, 230001, 'Chrysler SB Heavy Duty', NULL, 2), + ( + 230015, + 230001, + 'Chrysler SB Performance', + NULL, + 3 + ), + (230016, 230001, 'Chrysler BB Standard', NULL, 1), + (230017, 230001, 'Chrysler BB Heavy Duty', NULL, 2), + ( + 230018, + 230001, + 'Chrysler BB Performance', + NULL, + 3 + ), + ( + 230019, + 230001, + 'Cadillac L-Head Standard', + NULL, + 1 + ), + (230020, 230001, 'AMC Standard', NULL, 1), + (230021, 230001, 'AMC Heavy Duty', NULL, 2), + (230022, 230001, 'Cadillac BB Standard', NULL, 1), + (230023, 230001, 'Cadillac BB Heavy Duty', NULL, 2), + (230024, 230001, 'Pontiac Standard', NULL, 1), + (230025, 230001, 'Pontiac Performance', NULL, 2), + (230026, 230001, 'Olds BB Standard', NULL, 1), + (230027, 230001, 'Olds BB Heavy Duty', NULL, 2), + ( + 230028, + 230001, + 'Buick Nailhead Standard', + NULL, + 1 + ), + ( + 230029, + 230001, + 'Buick Nailhead Heavy Duty', + NULL, + 2 + ), + (230030, 230001, 'Ford Flathead Standard', NULL, 1), + (230031, 230001, 'Ford Y Block Standard', NULL, 1), + ( + 230032, + 230001, + 'Ford Y Block Heavy Duty', + NULL, + 2 + ), + (230033, 230001, 'Ford SB Standard', NULL, 1), + (230034, 230001, 'Ford SB Heavy Duty', NULL, 2), + (230035, 230001, 'Ford SB Boss', NULL, 3), + (230036, 230001, 'Ford BB Standard', NULL, 1), + (230037, 230001, 'Ford BB Heavy Duty', NULL, 2), + ( + 240001, + 240001, + 'Marinn Normal Duty Electrical System', + NULL, + 1 + ), + ( + 240002, + 240001, + 'Ford Boss Electronic Ignition', + NULL, + 3 + ), + ( + 240003, + 240001, + 'Mallory Light Duty Electrical System', + NULL, + 1 + ), + ( + 240004, + 240001, + 'AMC Group 19 Electrical System', + NULL, + 2 + ), + ( + 240005, + 240001, + 'Accel Billetproof Breakerless', + NULL, + 2 + ), + ( + 240006, + 240001, + 'Accel Blueprint Electronic Ignition', + NULL, + 2 + ), + ( + 240007, + 240001, + 'Crane Fireball XR700 Ignition System', + NULL, + 3 + ), + ( + 240008, + 240001, + 'Crane Fireball XR3000 Ignition System', + NULL, + 4 + ), + ( + 240009, + 240001, + 'Holley Avenger Ignition', + NULL, + 3 + ), + ( + 240010, + 240001, + 'Holley Dominator Ignition', + NULL, + 3 + ), + ( + 240011, + 240001, + 'Holley Excelerator Ignition', + NULL, + 3 + ), + ( + 240012, + 240001, + 'GM Standard Single Point', + NULL, + 1 + ), + ( + 240013, + 240001, + 'GM Performance Single Point', + NULL, + 2 + ), + (240014, 240001, 'GM Standard Dual Point', NULL, 1), + ( + 240015, + 240001, + 'GM Performance Dual Point', + NULL, + 2 + ), + (240016, 240001, 'GM Standard Electronic', NULL, 2), + ( + 240017, + 240001, + 'GM Performance Electronic', + NULL, + 2 + ), + ( + 240018, + 240001, + 'Chrysler Standard Single Point', + NULL, + 1 + ), + ( + 240019, + 240001, + 'Chrysler Performance Single Point', + NULL, + 2 + ), + ( + 240020, + 240001, + 'Chrysler Standard Dual Point', + NULL, + 1 + ), + ( + 240021, + 240001, + 'Chrysler Performance Dual Point', + NULL, + 2 + ), + ( + 240022, + 240001, + 'Chrysler Standard Electronic', + NULL, + 2 + ), + ( + 240023, + 240001, + 'Chrysler Performance Electronic', + NULL, + 2 + ), + ( + 240024, + 240001, + 'Ford Standard Single Point', + NULL, + 1 + ), + ( + 240025, + 240001, + 'Ford Performance Single Point', + NULL, + 2 + ), + ( + 240026, + 240001, + 'Ford Standard Dual Point', + NULL, + 1 + ), + ( + 240027, + 240001, + 'Ford Performance Dual Point', + NULL, + 2 + ), + ( + 240028, + 240001, + 'Ford Standard Electronic', + NULL, + 2 + ), + ( + 240029, + 240001, + 'Ford Performance Electronic', + NULL, + 2 + ), + ( + 240030, + 240001, + 'AMC Standard Single Point', + NULL, + 1 + ), + ( + 240031, + 240001, + 'AMC Performance Single Point', + NULL, + 2 + ), + ( + 240032, + 240001, + 'AMC Standard Dual Point', + NULL, + 1 + ), + ( + 240033, + 240001, + 'AMC Performance Dual Point', + NULL, + 2 + ), + ( + 250001, + 250001, + 'Ford SB Stock Lubrication System', + NULL, + 1 + ), + ( + 250002, + 250001, + 'Chevy BB Stock Lubrication System', + NULL, + 1 + ), + ( + 250003, + 250001, + 'AMC Stock Lubrication System', + NULL, + 1 + ), + ( + 250004, + 250001, + 'GM Z11 Lubrication System', + NULL, + 3 + ), + ( + 250005, + 250001, + 'Ford BB Boss Lubrication System', + NULL, + 3 + ), + ( + 250006, + 250001, + 'Bully HD Lubrication System', + NULL, + 2 + ), + ( + 250007, + 250001, + 'Bully XHD Lubrication System', + NULL, + 3 + ), + ( + 250008, + 250001, + 'Ford Cobra Lubrication System', + NULL, + 3 + ), + ( + 250009, + 250001, + 'Chevy SB Stock Lubrication System', + NULL, + 1 + ), + ( + 250010, + 250001, + 'Chevy SB Performance Lubrication System', + NULL, + 2 + ), + ( + 250011, + 250001, + 'Chevy BB Performance Lubrication System', + NULL, + 2 + ), + ( + 250012, + 250001, + 'Chrysler SB Stock Lubrication System', + NULL, + 1 + ), + ( + 250013, + 250001, + 'Chrysler BB Stock Lubrication System', + NULL, + 1 + ), + ( + 250014, + 250001, + 'Chrysler BB Performance Lubrication System', + NULL, + 2 + ), + ( + 250015, + 250001, + 'Cadillac BB Stock Lubrication System', + NULL, + 1 + ), + ( + 250016, + 250001, + 'Cadillac L-Head Stock Lubrication System', + NULL, + 1 + ), + ( + 250017, + 250001, + 'Pontiac Stock Lubrication System', + NULL, + 1 + ), + ( + 250018, + 250001, + 'Pontiac Performance Lubrication System', + NULL, + 2 + ), + ( + 250019, + 250001, + 'Olds BB Stock Lubrication System', + NULL, + 1 + ), + ( + 250020, + 250001, + 'Olds BB Performance Lubrication System', + NULL, + 2 + ), + ( + 250021, + 250001, + 'Buick Nailhead Stock Lubrication System', + NULL, + 1 + ), + ( + 250022, + 250001, + 'Ford Flathead Stock Lubrication System', + NULL, + 1 + ), + ( + 250023, + 250001, + 'Ford Y Block Stock Lubrication System', + NULL, + 1 + ), + ( + 250024, + 250001, + 'Ford SB Boss Lubrication System', + NULL, + 3 + ), + ( + 250025, + 250001, + 'Ford SB Windsor Stock Lubrication System', + NULL, + 1 + ), + ( + 250026, + 250001, + 'Ford Cleveland Stock Lubrication System', + NULL, + 1 + ), + ( + 250027, + 250001, + 'Ford BB Stock Lubrication System', + NULL, + 1 + ), + ( + 250028, + 250001, + 'Ford BB Performance Lubrication System', + NULL, + 2 + ), + ( + 250029, + 250001, + 'Ford 385 Stock Lubrication System', + NULL, + 1 + ), + ( + 250030, + 250001, + 'Ford 385 Performance Lubrication System', + NULL, + 2 + ), + ( + 280001, + 280001, + 'Ford BB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280002, + 280001, + 'Chevrolet BB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280003, + 280001, + 'Chrysler SB Stock Exhaust Manifold', + NULL, + 1 + ), + (280004, 280001, 'Ford 385 Boss Dual EM', NULL, 2), + (280005, 280001, 'Chevrolet BB HP EM', NULL, 2), + (280006, 280001, 'Chevrolet W Z11 HP EM', NULL, 2), + ( + 280007, + 280001, + 'Hooker Street Rodder Chevrolet SB Headers', + NULL, + 3 + ), + ( + 280008, + 280001, + 'Ford BB Cobrajet Dual EM', + NULL, + 2 + ), + ( + 280009, + 280001, + 'Ford BB Tri-Y Steel Tube Headers', + NULL, + 3 + ), + ( + 280010, + 280001, + 'Chrysler BB Max Wedge Exhaust Manifold', + NULL, + 2 + ), + ( + 280011, + 280001, + 'AMC Rebel Machine Dual EM', + NULL, + 2 + ), + ( + 280012, + 280001, + 'Edelbrock TES Chevrolet BB Exhaust Headers', + NULL, + 3 + ), + ( + 280013, + 280001, + 'Buick BB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280014, + 280001, + 'Buick SB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280015, + 280001, + 'Cadillac BB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280016, + 280001, + 'Chevrolet SB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280017, + 280001, + 'Chrysler BB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280018, + 280001, + 'Ford SB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280019, + 280001, + 'Ford Flathead Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280020, + 280001, + 'Olds BB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280021, + 280001, + 'Olds SB Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280022, + 280001, + 'AMC Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280023, + 280001, + 'Pontiac Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280024, + 280001, + 'Chevrolet SB Ram''s Horn EM', + NULL, + 1 + ), + (280025, 280001, 'Buick BB Stage I EM', NULL, 2), + ( + 280026, + 280001, + 'Buick BB Mickey Thompson Headers', + NULL, + 3 + ), + (280027, 280001, 'Olds BB Divider EM', NULL, 1), + (280028, 280001, 'Pontiac Ram Air I EM', NULL, 2), + (280029, 280001, 'Pontiac HP EM', NULL, 2), + (280030, 280001, 'Ford Y 1957 Manifold', NULL, 1), + (280031, 280001, 'Ford BB CJ/SCJ HP EM', NULL, 2), + (280032, 280001, 'Ford 385 NASCAR EM', NULL, 3), + ( + 280033, + 280001, + 'Chrysler BB Max Wedge I Headers', + NULL, + 3 + ), + ( + 280034, + 280001, + 'Chrysler BB 440 Stock EM', + NULL, + 1 + ), + ( + 280035, + 280001, + 'Chrysler BB Tri-Y Max Wedge EM', + NULL, + 2 + ), + (280036, 280001, 'Chrysler BB HP EM', NULL, 2), + ( + 280037, + 280001, + 'Chrysler SB Improved Flow EM', + NULL, + 2 + ), + ( + 280038, + 280001, + 'Chevrolet SB HP Exhaust Manifold', + NULL, + 2 + ), + (280039, 280001, 'Pontiac Trophy EM', NULL, 2), + (280040, 280001, 'Ford SB Boss 302 EM', NULL, 2), + ( + 280041, + 280001, + 'Chrysler Hemi Exhaust Manifold', + NULL, + 2 + ), + ( + 280042, + 280001, + 'Shade Tree Chrysler Hemi Exhaust Manifold', + NULL, + 1 + ), + ( + 280043, + 280001, + 'Cadillac L-Head Exhaust Manifold', + NULL, + 1 + ), + ( + 280044, + 280001, + 'Buick Nailhead Stock Exhaust Manifold', + NULL, + 1 + ), + ( + 280045, + 280001, + 'Ford Cleveland Block Stock EM', + NULL, + 1 + ), + ( + 280046, + 280001, + 'Ford 385 Block Stock EM', + NULL, + 1 + ), + ( + 280047, + 280001, + 'Ford 385 Block CJ/SCJ EM', + NULL, + 2 + ), + (280048, 280001, 'Ford SB HP EM', NULL, 2), + (280049, 280001, 'Ford Y Stock EM', NULL, 1), + (280050, 280001, 'Chevrolet W Stock EM', NULL, 1), + (280051, 280001, 'Chevrolet W HP EM', NULL, 2), + ( + 280052, + 280001, + 'Ford Cleveland Block HP EM', + NULL, + 2 + ), + ( + 280053, + 280001, + 'Buick Nailhead Performance EM', + NULL, + 2 + ), + ( + 280054, + 280001, + 'Cadillac L-Head Performance EM', + NULL, + 2 + ), + ( + 280055, + 280001, + 'Buick SB Performance EM', + NULL, + 2 + ), + (280056, 280001, 'Buick SB Headers', NULL, 2), + ( + 280057, + 280001, + 'Cadillac Performance EM', + NULL, + 2 + ), + ( + 280058, + 280001, + 'Ford Flathead Performance EM', + NULL, + 2 + ), + (280059, 280001, 'Olds SB Performance EM', NULL, 2), + ( + 280060, + 280001, + 'Edelbrock TES Pontiac Exhaust Headers', + NULL, + 3 + ), + ( + 280061, + 280001, + 'Edelbrock TES Chevrolet W Exhaust Headers', + NULL, + 3 + ), + ( + 280062, + 280001, + 'Edelbrock TES Ford 385 Exhaust Headers', + NULL, + 3 + ), + (280063, 280001, 'AMC Small Tube Headers', NULL, 3), + ( + 280064, + 280001, + 'Buick Nailhead Small Tube Headers', + NULL, + 3 + ), + ( + 280065, + 280001, + 'Cadillac L-Head Small Tube Headers', + NULL, + 3 + ), + ( + 280066, + 280001, + 'Cadillac Small Tube Headers', + NULL, + 3 + ), + ( + 280067, + 280001, + 'Chevy SB Small Tube Headers', + NULL, + 3 + ), + ( + 280068, + 280001, + 'Chrysler SB Small Tube Headers', + NULL, + 3 + ), + ( + 280069, + 280001, + 'Ford Flathead Small Tube Headers', + NULL, + 3 + ), + ( + 280070, + 280001, + 'Ford SB Small Tube Headers', + NULL, + 3 + ), + ( + 280071, + 280001, + 'Ford Y Block Small Tube Headers', + NULL, + 3 + ), + ( + 280072, + 280001, + 'Ford Cleveland Block Small Tube Headers', + NULL, + 3 + ), + ( + 280073, + 280001, + 'Oldsmobile SB Small Tube Headers', + NULL, + 3 + ), + ( + 280074, + 280001, + 'Oldsmobile BB Small Tube Headers', + NULL, + 3 + ), + ( + 280075, + 280001, + 'Chrysler Hemi Small Tube Headers', + NULL, + 3 + ), + ( + 280076, + 280001, + 'Ford Y Block Factory Headers', + NULL, + 2 + ), + ( + 280077, + 280001, + 'Oldfield Y Block Free Flow EM', + NULL, + 1 + ), + ( + 280078, + 280001, + 'Oldfield Y Block Free Flow Aluminum EM', + NULL, + 1 + ), + ( + 280079, + 280001, + 'Oldfield Y Block Street King Headers', + NULL, + 3 + ), + ( + 280080, + 280001, + 'Oldfield Y Block Strip King Headers', + NULL, + 3 + ), + ( + 280081, + 280001, + 'Oldfield Y Block Track King Headers', + NULL, + 3 + ), + ( + 280082, + 280001, + 'Quaker Y Block Air Stream EM', + NULL, + 1 + ), + ( + 280083, + 280001, + 'Quaker Y Block Air Stream Aluminum EM', + NULL, + 1 + ), + ( + 280084, + 280001, + 'Quaker Y Block Super Stream Headers', + NULL, + 3 + ), + ( + 280085, + 280001, + 'Rad Rat Chevy SB Window Rattler Headers', + NULL, + 3 + ), + ( + 280086, + 280001, + 'Rad Rat Chevy SB Street Lion Headers', + NULL, + 3 + ), + ( + 280087, + 280001, + 'Rad Rat Chevy SB Rumble Pipe Headers', + NULL, + 3 + ), + ( + 280088, + 280001, + 'C&B Chevy SB Masterpiece EM', + NULL, + 2 + ), + ( + 280089, + 280001, + 'C&B Chevy SB Blueprint EM', + NULL, + 1 + ), + ( + 280090, + 280001, + 'C&B Chevy SB Beach Racer Headers', + NULL, + 3 + ), + ( + 280091, + 280001, + 'Rad Rat Chevy SB Street Mod EM', + NULL, + 1 + ), + ( + 280092, + 280001, + 'Quaker Ford SB Interceptor EM', + NULL, + 2 + ), + ( + 280093, + 280001, + 'Quaker Ford SB Super Stream Headers', + NULL, + 3 + ), + ( + 280094, + 280001, + 'Oldfield Ford SB Police Special EM', + NULL, + 2 + ), + ( + 280095, + 280001, + 'Dunbar Buick Nailhead Performance EM', + NULL, + 2 + ), + ( + 280096, + 280001, + 'Dunbar Buick Nailhead Lightweight EM', + NULL, + 1 + ), + ( + 280097, + 280001, + 'Dunbar Buick Nailhead Performance Headers', + NULL, + 2 + ), + ( + 280098, + 280001, + 'Dunbar Buick Nailhead Street Headers', + NULL, + 2 + ), + ( + 280099, + 280001, + 'Quaker Chrysler SB Airstream EM', + NULL, + 1 + ), + ( + 280100, + 280001, + 'Quaker Chrysler SB Double Demon HP EM', + NULL, + 2 + ), + ( + 280101, + 280001, + 'Quaker Chrysler SB Super Stream Headers', + NULL, + 4 + ), + ( + 280102, + 280001, + 'Walter Chrysler SB LA Street EM', + NULL, + 2 + ), + ( + 280103, + 280001, + 'Walter Chrysler SB Performance LA HP EM', + NULL, + 2 + ), + ( + 280104, + 280001, + 'Walter Chrysler SB LA Sm. Headers', + NULL, + 3 + ), + ( + 280105, + 280001, + 'Walter Chrysler SB Super LA Lg. Headers', + NULL, + 4 + ), + ( + 280106, + 280001, + 'Quaker Pontiac Airstream EM', + NULL, + 1 + ), + ( + 280107, + 280001, + 'Quaker Pontiac Aluminum Airstream EM', + NULL, + 1 + ), + ( + 280108, + 280001, + 'Quaker Pontiac Jet Stream Headers', + NULL, + 3 + ), + ( + 280109, + 280001, + 'Quaker Pontiac Super Stream Headers', + NULL, + 4 + ), + ( + 280110, + 280001, + 'Quaker Cleveland Air Stream EM', + NULL, + 1 + ), + ( + 280111, + 280001, + 'Quaker Cleveland Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280112, + 280001, + 'Quaker Cleveland Interceptor EM', + NULL, + 2 + ), + ( + 280113, + 280001, + 'Oldfield Cleveland Street King EM', + NULL, + 2 + ), + ( + 280114, + 280001, + 'Quaker Cleveland Super Stream Headers', + NULL, + 4 + ), + ( + 280115, + 280001, + 'Oldfield Cleveland Track King Headers', + NULL, + 4 + ), + ( + 280116, + 280001, + 'Oldfield Cleveland Strip King Headers', + NULL, + 3 + ), + ( + 280117, + 280001, + 'Oldfield Ford 385 Strip King Headers', + NULL, + 3 + ), + ( + 280118, + 280001, + 'Oldfield Ford 385 Track King Headers', + NULL, + 4 + ), + ( + 280119, + 280001, + 'Oldfield Ford 385 Street King EM', + NULL, + 2 + ), + ( + 280120, + 280001, + 'Quaker Ford 385 Air Stream EM', + NULL, + 1 + ), + ( + 280121, + 280001, + 'Quaker Ford 385 Interceptor EM', + NULL, + 2 + ), + ( + 280122, + 280001, + 'Quaker Ford 385 Jet Stream Headers', + NULL, + 3 + ), + ( + 280123, + 280001, + 'Quaker Ford 385 Super Stream Headers', + NULL, + 4 + ), + ( + 280124, + 280001, + 'Quaker Hemi Air Stream EM', + NULL, + 1 + ), + ( + 280125, + 280001, + 'Quaker Hemi Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280126, + 280001, + 'Quaker Hemi Super Stream Headers', + NULL, + 4 + ), + (280127, 280001, 'Walter Hemi Street EM', NULL, 1), + ( + 280128, + 280001, + 'Walter Hemi Performance EM', + NULL, + 2 + ), + ( + 280129, + 280001, + 'Walter Hemi Hemi Headers', + NULL, + 3 + ), + ( + 280130, + 280001, + 'Walter Hemi Super Hemi Headers', + NULL, + 4 + ), + ( + 280131, + 280001, + 'Quaker Cadillac BB Air Stream EM', + NULL, + 1 + ), + ( + 280132, + 280001, + 'Quaker Cadillac BB Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280133, + 280001, + 'Quaker Cadillac BB Interceptor EM', + NULL, + 2 + ), + ( + 280134, + 280001, + 'Quaker Cadillac BB Super Stream Headers', + NULL, + 4 + ), + ( + 280135, + 280001, + 'Leland Cadillac BB Street Headers', + NULL, + 3 + ), + ( + 280136, + 280001, + 'Leland Cadillac BB Rad Cad Headers', + NULL, + 4 + ), + ( + 280137, + 280001, + 'Leland Cadillac BB HP EM', + NULL, + 3 + ), + ( + 280138, + 280001, + 'Rad Rat Chevy W Street Mod EM', + NULL, + 2 + ), + ( + 280139, + 280001, + 'Rad Rat Chevy W Rumble Pipe Headers', + NULL, + 2 + ), + ( + 280140, + 280001, + 'Rad Rat Chevy W Street Lion Headers', + NULL, + 3 + ), + ( + 280141, + 280001, + 'Rad Rat Chevy W Window Rattler Headers', + NULL, + 4 + ), + ( + 280142, + 280001, + 'Quaker Chevy W Air Stream EM', + NULL, + 1 + ), + ( + 280143, + 280001, + 'Quaker Chevy W Interceptor EM', + NULL, + 2 + ), + ( + 280144, + 280001, + 'Quaker Chevy W Jet Stream Headers', + NULL, + 3 + ), + ( + 280145, + 280001, + 'Quaker Chevy W Super Stream Headers', + NULL, + 4 + ), + ( + 280146, + 280001, + 'Quaker AMC Air Stream EM', + NULL, + 1 + ), + ( + 280147, + 280001, + 'Quaker AMC Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280148, + 280001, + 'Quaker AMC Interceptor EM', + NULL, + 2 + ), + ( + 280149, + 280001, + 'Quaker AMC Super Stream Headers', + NULL, + 4 + ), + ( + 280150, + 280001, + 'Street Shark AMC Stalker EM', + NULL, + 2 + ), + ( + 280151, + 280001, + 'Street Shark AMC Hunter Headers', + NULL, + 3 + ), + ( + 280152, + 280001, + 'Street Shark AMC Predator Headers', + NULL, + 4 + ), + ( + 280153, + 280001, + 'Quaker Olds BB Air Stream EM', + NULL, + 1 + ), + ( + 280154, + 280001, + 'Quaker Olds BB Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280155, + 280001, + 'Quaker Olds BB Interceptor EM', + NULL, + 2 + ), + ( + 280156, + 280001, + 'Quaker Olds BB Super Stream Headers', + NULL, + 4 + ), + ( + 280157, + 280001, + 'Street Shark Olds BB Stalker EM', + NULL, + 2 + ), + ( + 280158, + 280001, + 'Street Shark Olds BB Hunter Headers', + NULL, + 3 + ), + ( + 280159, + 280001, + 'Street Shark Olds BB Predator Headers', + NULL, + 4 + ), + ( + 280160, + 280001, + 'Quaker Chrysler BB Air Stream EM', + NULL, + 1 + ), + ( + 280161, + 280001, + 'Quaker Chrysler BB Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280162, + 280001, + 'Quaker Chrysler BB Interceptor EM', + NULL, + 2 + ), + ( + 280163, + 280001, + 'Quaker Chrysler BB Jet Stream Headers', + NULL, + 3 + ), + ( + 280164, + 280001, + 'Quaker Chrysler BB Super Stream Headers', + NULL, + 4 + ), + ( + 280165, + 280001, + 'Street Shark Chrysler BB Stalker EM', + NULL, + 2 + ), + ( + 280166, + 280001, + 'Street Shark Chrylser BB Hunter Headers', + NULL, + 3 + ), + ( + 280167, + 280001, + 'Street Shark Chrysler BB Predator Headers', + NULL, + 4 + ), + ( + 280168, + 280001, + 'Quaker Ford BB Air Stream EM', + NULL, + 1 + ), + ( + 280169, + 280001, + 'Quaker Ford BB Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280170, + 280001, + 'Quaker Ford BB Interceptor EM', + NULL, + 2 + ), + ( + 280171, + 280001, + 'Quaker Ford BB Jet Stream Headers', + NULL, + 3 + ), + ( + 280172, + 280001, + 'Quaker Ford BB Super Stream Headers', + NULL, + 4 + ), + ( + 280173, + 280001, + 'Oldfield Ford BB Street King EM', + NULL, + 2 + ), + ( + 280174, + 280001, + 'Oldfield Ford BB Strip King Headers', + NULL, + 3 + ), + ( + 280175, + 280001, + 'Oldfield Ford BB Track King Headers', + NULL, + 4 + ), + ( + 280176, + 280001, + 'Quaker Chevy BB Air Stream EM', + NULL, + 1 + ), + ( + 280177, + 280001, + 'Quaker Chevy BB Air Stream Alum. EM', + NULL, + 1 + ), + ( + 280178, + 280001, + 'Quaker Chevy BB Interceptor EM', + NULL, + 2 + ), + ( + 280179, + 280001, + 'Quaker Chevy BB Jet Stream Headers', + NULL, + 3 + ), + ( + 280180, + 280001, + 'Quaker Chevy BB Super Stream Headers', + NULL, + 4 + ), + ( + 280181, + 280001, + 'Rad Rat Chevy BB Street Mod EM', + NULL, + 2 + ), + ( + 280182, + 280001, + 'Rad Rat Chevy BB Rumble Pipe Headers', + NULL, + 3 + ), + ( + 280183, + 280001, + 'Rad Rat Chevy BB Street Lion Headers', + NULL, + 3 + ), + ( + 280184, + 280001, + 'Rad Rat Chevy BB Window Rattler Headers', + NULL, + 4 + ), + ( + 290001, + 290001, + '1.625" Treated Iron Single Exhaust Pipe', + NULL, + 1 + ), + ( + 290002, + 290001, + '1.625" Treated Iron Dual Exhaust Pipe', + NULL, + 1 + ), + ( + 290003, + 290001, + '1.625" Cast Iron Single Exhaust Pipe', + NULL, + 1 + ), + ( + 290004, + 290001, + '1.625" Cast Iron Dual Exhaust Pipe', + NULL, + 1 + ), + ( + 290005, + 290001, + 'Hooker Street Racer Crossflow Exhaust Pipe', + NULL, + 3 + ), + ( + 290006, + 290001, + 'Hooker Performance Crossflow Exhaust Pipe', + NULL, + 3 + ), + ( + 290007, + 290001, + 'Hooker Maximum Performance Crossflow Exhaust Pipe', + NULL, + 4 + ), + ( + 290008, + 290001, + 'Edelbrock Cat-Back System', + NULL, + 3 + ), + (290009, 290001, 'Fat Shiny Pipe', NULL, 3), + (290010, 290001, 'Manley 1.75" CI Single', NULL, 1), + ( + 290011, + 290001, + 'Manley 1.875" CI Single', + NULL, + 1 + ), + (290012, 290001, 'Manley 2" CI Single', NULL, 2), + (290013, 290001, 'Manley 2.25" CI Dual', NULL, 4), + (290014, 290001, 'Manley 1.75" TI Single', NULL, 1), + ( + 290015, + 290001, + 'Manley 1.875" TI Single', + NULL, + 1 + ), + (290016, 290001, 'Manley 2" TI Single', NULL, 2), + (290017, 290001, 'Manley 2.25" TI Dual', NULL, 4), + (290018, 290001, 'Manley 1.75" CI Dual', NULL, 2), + (290019, 290001, 'Manley 1.875" CI Dual', NULL, 2), + (290020, 290001, 'Manley 2" CI Dual', NULL, 3), + (290021, 290001, 'Manley 1.75" TI Dual', NULL, 2), + (290022, 290001, 'Manley 1.875" TI Dual', NULL, 2), + (290023, 290001, 'Manley 2" TI Dual', NULL, 3), + (290024, 290001, 'Manley 1.625" FS Dual', NULL, 2), + (290025, 290001, 'Manley 1.75" FS Dual', NULL, 2), + (290026, 290001, 'Manley 1.875" FS Dual', NULL, 2), + (290027, 290001, 'Manley 2" FS Dual', NULL, 3), + (290028, 290001, 'Manley 2.25" FS Dual', NULL, 4), + ( + 290029, + 290001, + 'Manley 1.625" Alloy Steel Dual', + NULL, + 2 + ), + ( + 290030, + 290001, + 'Manley 1.75" Alloy Steel Dual', + NULL, + 2 + ), + ( + 290031, + 290001, + 'Manley 1.875" Alloy Steel Dual', + NULL, + 2 + ), + ( + 290032, + 290001, + 'Manley 2" Alloy Steel Dual', + NULL, + 3 + ), + ( + 290033, + 290001, + 'Manley 2.25" Alloy Steel Dual', + NULL, + 4 + ), + ( + 290034, + 290001, + 'Manley 1.625" Aluminum Alloy Dual', + NULL, + 2 + ), + ( + 290035, + 290001, + 'Manley 1.75" Aluminum Alloy Dual', + NULL, + 2 + ), + ( + 290036, + 290001, + 'Manley 1.875" Aluminum Alloy Dual', + NULL, + 2 + ), + ( + 290037, + 290001, + 'Manley 2" Aluminum Alloy Dual', + NULL, + 3 + ), + ( + 290038, + 290001, + 'Manley 2.25" Aluminum Alloy Dual', + NULL, + 4 + ), + (300001, 300001, 'Midas Stock Muffler', NULL, 1), + ( + 300002, + 300001, + 'Midas Aluminum Stock Muffler', + NULL, + 1 + ), + (300003, 300001, 'GM Side Pipes', 'PIPESIDE', 2), + (300004, 300001, 'GM Dual Resonators', NULL, 2), + (300005, 300001, 'Edelbrock RPM Muffler', NULL, 3), + ( + 300006, + 300001, + 'Edelbrock Victor Muffler', + NULL, + 3 + ), + (300007, 300001, 'Edelbrock 304 Muffler', NULL, 3), + (300008, 300001, 'Hooker Maximum Flow', NULL, 4), + ( + 300009, + 300001, + 'Hooker Super Competition', + NULL, + 4 + ), + ( + 300010, + 300001, + 'Hooker Elite Glasspack', + 'PIPELAKE', + 4 + ), + (300011, 300001, 'Hooker Street Shaker', NULL, 3), + (310001, 310001, 'Dual Tail Pipe Tip 001', NULL, 1), + (310002, 310001, 'Dual Tail Pipe Tip 002', NULL, 1), + (310003, 310001, 'Stock Tip', 'TIPCYL', 1), + ( + 310004, + 310001, + 'Single Tail Pipe Tip (Flaming)', + NULL, + 1 + ), + ( + 310005, + 310001, + '1969 Dodge Charger RT Tip', + 'TIPCIRC', + 1 + ), + ( + 310006, + 310001, + '1969 Olds 4-4-2 Trumpet Tip', + NULL, + 1 + ), + ( + 310007, + 310001, + '1970 Ford Mustang Oval Trumpet Tip', + NULL, + 1 + ), + ( + 310008, + 310001, + '1970 Plymouth ''Cuda Chrome Tip', + 'TIPCONE', + 1 + ), + ( + 310009, + 310001, + '1973 Pontiac Trans-Am Chrome Extension', + NULL, + 1 + ), + ( + 310010, + 310001, + '1973 Pontiac Firebird Chrome Extension', + NULL, + 1 + ), + ( + 310011, + 310001, + 'Marinn Large Bore Tip', + 'tipcirc', + 1 + ), + ( + 310012, + 310001, + 'Marinn Large Bore (Dual) Tip', + 'tipcirc', + 1 + ), + ( + 310013, + 310001, + 'Marinn Large Bore Tip w/resonator', + 'tipcirc', + 1 + ), + ( + 310014, + 310001, + 'Marinn Large Bore Tip w/resonator (Dual)', + 'tipcirc', + 1 + ), + ( + 310015, + 310001, + 'Marinn MegaCone Tip', + 'tipcone', + 1 + ), + ( + 310016, + 310001, + 'Marinn MegaCone (Dual) Tip', + 'tipcone', + 1 + ), + ( + 310017, + 310001, + 'Marinn Slanted Cut Tip', + 'tiprect', + 1 + ), + ( + 310018, + 310001, + 'Marinn Slanted Cut (Dual) Tip', + 'tiprect', + 1 + ), + ( + 310019, + 310001, + 'Marinn Slanted Cut Tip w/resonator', + 'tiprect', + 1 + ), + ( + 310020, + 310001, + 'Marinn Slanted Cut Tip w/resonator (Dual)', + 'tiprect', + 1 + ), + ( + 310021, + 310001, + 'Edelbrock Angle Cut Tip', + NULL, + 1 + ), + ( + 310022, + 310001, + 'Edelbrock Angle Cut (Dual) Tip', + NULL, + 1 + ), + ( + 310023, + 310001, + 'Edelbrock Flat Oval Tip', + NULL, + 1 + ), + ( + 310024, + 310001, + 'Edelbrock Flat Oval (Dual) Tip', + NULL, + 1 + ), + ( + 310025, + 310001, + 'Edelbrock Round Double Wall Tip', + NULL, + 1 + ), + ( + 310026, + 310001, + 'Edelbrock Round Double Wall (Dual) Tip', + NULL, + 1 + ), + ( + 310027, + 310001, + 'Edelbrock Round Turn-Down Tip', + NULL, + 1 + ), + ( + 310028, + 310001, + 'Edelbrock Round Turn-Down (Dual) Tip', + NULL, + 1 + ), + ( + 310029, + 310001, + 'Stock Round Chrome', + 'TIPCIRC', + 1 + ), + ( + 320001, + 320001, + 'Ford BB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320002, + 320001, + 'Chevrolet BB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320003, + 320001, + 'Chrysler SB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320004, + 320001, + 'Chrysler BB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320005, + 320001, + 'Chevrolet BB Single Plane IM', + 'MANISING', + 1 + ), + ( + 320006, + 320001, + 'Ford BB Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320007, + 320001, + 'Buick BB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320008, + 320001, + 'Buick SB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320009, + 320001, + 'Chevrolet SB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320010, + 320001, + 'Cadillac BB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320011, + 320001, + 'Ford SB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320012, + 320001, + 'Ford Flathead Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320013, + 320001, + 'Olds BB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320014, + 320001, + 'Olds SB Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320015, + 320001, + 'AMC Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320016, + 320001, + 'Pontiac Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320017, + 320001, + 'Chevrolet SB RPO411 Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320018, + 320001, + 'Chevrolet SB High Rise Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320019, + 320001, + 'Chevrolet SB Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320020, + 320001, + 'Chevrolet BB High Rise Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320021, + 320001, + 'Chevrolet BB LS6 Low Rise Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320022, + 320001, + 'Buick Nailhead Stock 322 DP IM', + 'MANIDUAL', + 1 + ), + ( + 320023, + 320001, + 'Edelbrock Stage II Buick BB Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320024, + 320001, + 'Olds SB Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320025, + 320001, + 'Olds SB W-31 HP Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320026, + 320001, + 'Olds BB W-30 HP Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320027, + 320001, + 'Pontiac Ram Air IV HP Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320028, + 320001, + 'Pontiac Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320029, + 320001, + 'Ford Y 1957 Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320030, + 320001, + 'Edelbrock Aluminum Dual Plane Ford SB IM', + 'MANIDUAL', + 2 + ), + ( + 320031, + 320001, + 'Ford BB HR Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320032, + 320001, + 'Ford BB Cammer IM', + 'MANISING', + 3 + ), + ( + 320033, + 320001, + 'Ford BB Sidewinder Single Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320034, + 320001, + 'Ford BB Single Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320035, + 320001, + 'Offenhauser Ford 385 Single Plane IM', + 'MANIDUAL', + 3 + ), + ( + 320036, + 320001, + 'Chrysler BB High Rise IM', + 'MANIDUAL', + 2 + ), + ( + 320037, + 320001, + 'Chrysler BB Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320038, + 320001, + 'Chrysler BB Long Ram IM', + 'MANIDUAL', + 2 + ), + ( + 320039, + 320001, + 'Chrysler BB Short Ram IM', + 'MANIDUAL', + 2 + ), + ( + 320040, + 320001, + 'Edelbrock Chrysler BB Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320041, + 320001, + 'Chrysler SB Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320042, + 320001, + 'AMC Rebel Machine IM', + 'MANIDUAL', + 2 + ), + ( + 320043, + 320001, + 'Ford 385 Boss Dual Plane Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320044, + 320001, + 'Edelbrock R4B AMC Block IM', + 'MANIDUAL', + 2 + ), + ( + 320045, + 320001, + 'Edelbrock Super Dual Ford Flathead IM', + 'MANIDUAL', + 2 + ), + ( + 320046, + 320001, + 'Edelbrock Performer RPM Cadillac BB IM', + 'MANIDUAL', + 2 + ), + ( + 320047, + 320001, + 'Edelbrock Performer Chevrolet BB IM', + 'MANIDUAL', + 2 + ), + ( + 320048, + 320001, + 'Edelbrock Performer Chevrolet SB IM', + 'MANIDUAL', + 2 + ), + ( + 320049, + 320001, + 'Edelbrock Performer Chrysler BB IM', + 'MANIDUAL', + 2 + ), + ( + 320050, + 320001, + 'Edelbrock Performer Chrysler SB IM', + 'MANIDUAL', + 2 + ), + ( + 320051, + 320001, + 'Edelbrock Performer Ford BB IM', + 'MANIDUAL', + 2 + ), + ( + 320052, + 320001, + 'Edelbrock Performer Ford SB IM', + 'MANIDUAL', + 2 + ), + ( + 320053, + 320001, + 'Edelbrock Performer Olds BB IM', + 'MANIDUAL', + 2 + ), + ( + 320054, + 320001, + 'Edelbrock Performer Olds SB IM', + 'MANIDUAL', + 2 + ), + (320055, 320001, 'Chrysler Hemi IM', 'MANIDUAL', 2), + ( + 320056, + 320001, + 'Edelbrock Performer Pontiac IM', + 'MANIDUAL', + 2 + ), + ( + 320057, + 320001, + 'Edelbrock Performer RPM Chevrolet BB IM', + 'MANIDUAL', + 2 + ), + ( + 320058, + 320001, + 'Edelbrock Performer RPM Chevrolet SB IM', + 'MANIDUAL', + 2 + ), + ( + 320059, + 320001, + 'Edelbrock Performer RPM Chrysler BB IM', + 'MANIDUAL', + 2 + ), + ( + 320060, + 320001, + 'Edelbrock Performer RPM Chrysler SB IM', + 'MANIDUAL', + 2 + ), + ( + 320061, + 320001, + 'Edelbrock Performer RPM Ford BB IM', + 'MANIDUAL', + 2 + ), + ( + 320062, + 320001, + 'Edelbrock Performer RPM Ford SB IM', + 'MANIDUAL', + 2 + ), + ( + 320063, + 320001, + 'Edelbrock Performer RPM Olds BB IM', + 'MANIDUAL', + 2 + ), + ( + 320064, + 320001, + 'Edelbrock Performer RPM Olds SB IM', + 'MANIDUAL', + 2 + ), + ( + 320065, + 320001, + 'Shade Tree Chrysler Hemi IM', + 'MANIDUAL', + 1 + ), + ( + 320066, + 320001, + 'Edelbrock Performer RPM Pontiac IM', + 'MANIDUAL', + 2 + ), + ( + 320067, + 320001, + 'Edelbrock Torker Chevrolet BB IM', + 'MANIDUAL', + 3 + ), + ( + 320068, + 320001, + 'Edelbrock Torker Chevrolet SB IM', + 'MANIDUAL', + 3 + ), + ( + 320069, + 320001, + 'Edelbrock Torker Chrysler BB IM', + 'MANIDUAL', + 3 + ), + ( + 320070, + 320001, + 'Edelbrock Torker Chrysler SB IM', + 'MANIDUAL', + 3 + ), + ( + 320071, + 320001, + 'Edelbrock Torker Ford BB IM', + 'MANIDUAL', + 3 + ), + ( + 320072, + 320001, + 'Edelbrock Torker Ford SB IM', + 'MANIDUAL', + 3 + ), + ( + 320073, + 320001, + 'Edelbrock Torker Olds BB IM', + 'MANIDUAL', + 3 + ), + ( + 320074, + 320001, + 'Edelbrock Torker Olds SB IM', + 'MANIDUAL', + 3 + ), + ( + 320075, + 320001, + 'Edelbrock Torker Pontiac IM', + 'MANIDUAL', + 3 + ), + ( + 320076, + 320001, + 'Edelbrock Torker Pontiac IM', + 'MANIDUAL', + 3 + ), + ( + 320077, + 320001, + 'Chevrolet BB Dual Plane Aluminum IM', + 'MANIDUAL', + 1 + ), + ( + 320078, + 320001, + 'Chrysler SB Tunnel Ram IM', + 'MANIDUAL', + 2 + ), + ( + 320079, + 320001, + 'Chevrolet W Z11 Dual Plane Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320080, + 320001, + 'Ford BB Cobrajet Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320081, + 320001, + 'Offenhauser Magnesium Chrysler Hemi DP IM', + 'MANIDUAL', + 4 + ), + ( + 320082, + 320001, + 'Chrysler BB Max Wedge Aluminum Cross-Ram IM', + 'MANIDUAL', + 2 + ), + ( + 320083, + 320001, + 'Edelbrock Torker Buick BB IM', + 'MANISING', + 3 + ), + ( + 320084, + 320001, + 'Edelbrock Performer RPM Buick BB IM', + 'MANIDUAL', + 3 + ), + ( + 320085, + 320001, + 'Edelbrock Torker II Buick BB IM', + 'MANISING', + 3 + ), + ( + 320086, + 320001, + 'Edelbrock Performer Buick BB IM', + 'MANIDUAL', + 2 + ), + ( + 320087, + 320001, + 'Ford SB Single Plane Aluminum IM', + 'MANISING', + 2 + ), + ( + 320088, + 320001, + 'Ford SB Dual Plane Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320089, + 320001, + 'Pontiac Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320090, + 320001, + 'Pontiac SD Aluminum Single Plane IM', + 'MANISING', + 3 + ), + ( + 320091, + 320001, + 'Cadillac L-Head Intake Manifold', + 'MANIDUAL', + 1 + ), + ( + 320092, + 320001, + 'Ford Cleveland Block Stock IM', + 'MANIDUAL', + 1 + ), + ( + 320093, + 320001, + 'Ford Cleveland Block Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320094, + 320001, + 'Ford 385 Stock IM', + 'MANIDUAL', + 1 + ), + ( + 320095, + 320001, + 'Ford 385 CJ/SCJ IM', + 'MANIDUAL', + 2 + ), + ( + 320096, + 320001, + 'Ford SB Cross Boss IM', + 'MANIDUAL', + 3 + ), + (320097, 320001, 'Ford Y Stock IM', 'MANIDUAL', 1), + ( + 320098, + 320001, + 'Edelbrock Ford Y Tri-Power Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320099, + 320001, + 'Chevrolet W Stock IM', + 'MANIDUAL', + 1 + ), + ( + 320100, + 320001, + 'Chevrolet W Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320101, + 320001, + 'Dunbar Buick Nailhead Breezer DP IM', + 'MANIDUAL', + 2 + ), + ( + 320102, + 320001, + 'Dunbar Buick Nailhead Tornado SP IM', + 'MANISING', + 2 + ), + ( + 320103, + 320001, + 'Buick SB Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320104, + 320001, + 'Cadillac L-Head Aluminum IM', + 'MANIDUAL', + 2 + ), + ( + 320105, + 320001, + 'Edelbrock Performer AMC IM', + 'MANIDUAL', + 2 + ), + ( + 320106, + 320001, + 'Edelbrock Torker AMC IM', + 'MANIDUAL', + 3 + ), + ( + 320107, + 320001, + 'Offenhauser Aluminum AMC IM', + 'MANIDUAL', + 3 + ), + ( + 320108, + 320001, + 'Ford Y Block Dual Quad Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320109, + 320001, + 'Ford Y Block Supercharger Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320110, + 320001, + 'Edelbrock Y Block 3x2 Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320111, + 320001, + 'Offenhauser Y Block 3x2 Dual Planer IM', + 'MANIDUAL', + 2 + ), + ( + 320112, + 320001, + 'Offenhauser Y Block Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320113, + 320001, + 'Edelbrock Y Block Aluminum Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320114, + 320001, + 'Oldfield Y Block Aluminum Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320115, + 320001, + 'Oldfield Y Block Special Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320116, + 320001, + 'Edelbrock Y Block Aluminum Single Plane IM', + 'MANISING', + 2 + ), + ( + 320117, + 320001, + 'Offenhauser Y Block Aluminum Single Plane IM', + 'MANISING', + 2 + ), + ( + 320118, + 320001, + 'Oldfield Y Block Lightning Single Plane IM', + 'MANISING', + 2 + ), + ( + 320119, + 320001, + 'Oldfield Y Block HiBoy Tunnel Ram IM', + 'MANIHIGH', + 2 + ), + ( + 320120, + 320001, + 'Oldfield Y Block Midget Tunnel Ram IM', + 'MANILOW', + 2 + ), + ( + 320121, + 320001, + 'Oldfield Y Block Strip King Tunnel Ram IM', + 'MANIHIGH', + 3 + ), + ( + 320122, + 320001, + 'Rad Rat Chevy SB Vortex Single Plane IM', + 'MANISING', + 2 + ), + ( + 320123, + 320001, + 'Rad Rat Chevy SB Screamer Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320124, + 320001, + 'Rad Rat Chevy SB Scooter Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320125, + 320001, + 'Rad Rat Chevy SB Scooter Alum. Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320126, + 320001, + 'C&B Chevy SB Classic Dual Plane IM', + 'MANIDUAL', + 1 + ), + ( + 320127, + 320001, + 'C&B Chevy SB Street Classic Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320128, + 320001, + 'C&B Chevy SB Classic Single Plane IM', + 'MANISING', + 2 + ), + ( + 320129, + 320001, + 'C&B Chevy SB Super Single Plane IM', + 'MANISING', + 3 + ), + ( + 320130, + 320001, + 'Rad Rat Chevy SB Vortex Ultra Single Plane IM', + 'MANISING', + 2 + ), + ( + 320131, + 320001, + 'Rad Rat Chevy SB Power Tower Tunnel Ram IM', + 'MANIHIGH', + 2 + ), + ( + 320132, + 320001, + 'Rad Rat Chevy SB Ultimate Tunnel Ram IM', + 'MANIHIGH', + 3 + ), + ( + 320133, + 320001, + 'C&B Chevy SB Classic Low Rise Tunnel Ram IM', + 'MANILOW', + 2 + ), + ( + 320134, + 320001, + 'C&B Chevy SB Classic High Rise Tunnel Ram IM', + 'MANIHIGH', + 3 + ), + ( + 320135, + 320001, + 'Rad Rat Chevy SB Screamer Ultra Dual Plane IM', + 'MANIDUAL', + 2 + ), + ( + 320136, + 320001, + 'Buick Nailhead 364 DP IM', + 'MANIDUAL', + 1 + ), + ( + 320137, + 320001, + 'Buick Nailhead 401/425 DP IM', + 'MANIDUAL', + 1 + ), + ( + 320138, + 320001, + 'Dunbar Buick Nailhead Improved DP IM', + 'MANIDUAL', + 1 + ), + ( + 320139, + 320001, + 'Dunbar Buick Nailhead Breezer DP IM', + 'MANIDUAL', + 1 + ), + ( + 320140, + 320001, + 'Per. Port Buick Nailhead Street Port DP IM', + 'MANIDUAL', + 2 + ), + ( + 320141, + 320001, + 'Per. Port Buick Nailhead Street Port Alum. DP IM', + 'MANIDUAL', + 2 + ), + ( + 320142, + 320001, + 'Dunbar Buick Nailhead Tornado SP IM', + 'MANISING', + 2 + ), + ( + 320143, + 320001, + 'Per. Port Buick Nailhead Street Port SP IM', + 'MANISING', + 2 + ), + ( + 320144, + 320001, + 'Dunbar Buick Nailhead Wind Tunnel SP IM', + 'MANISING', + 2 + ), + ( + 320145, + 320001, + 'Dunbar Buick Nailhead Hurricane Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320146, + 320001, + 'Dunbar Buick Nailhead Cyclone Tunnel Ram', + 'MANILOW', + 2 + ), + ( + 320147, + 320001, + 'Dunbar Buick Nailhead Super Cyclone Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320148, + 320001, + 'Oldfield Ford SB Performance DP IM', + 'MANIDUAL', + 2 + ), + ( + 320149, + 320001, + 'Oldfield Ford SB Performance Alum. DP IM', + 'MANIDUAL', + 2 + ), + ( + 320150, + 320001, + 'Per. Port Ford SB Road Squire DP IM', + 'MANIDUAL', + 1 + ), + ( + 320151, + 320001, + 'Per. Port Ford SB Road Squire Alum. DP IM', + 'MANIDUAL', + 1 + ), + ( + 320152, + 320001, + 'Per. Port Ford SB Centurion DP IM', + 'MANIDUAL', + 2 + ), + ( + 320153, + 320001, + 'Per. Port Ford SB Street Knight SP IM', + 'MANISING', + 2 + ), + ( + 320154, + 320001, + 'Oldfield Ford SB Lightning SP IM', + 'MANISING', + 2 + ), + ( + 320155, + 320001, + 'Per. Port Ford SB Commander SP IM', + 'MANISING', + 2 + ), + ( + 320156, + 320001, + 'Per. Port Ford SB Emperor Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320157, + 320001, + 'Oldfield Ford SB Midget Tunnel Ram', + 'MANILOW', + 2 + ), + ( + 320158, + 320001, + 'Oldfield Ford SB Strip King Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320159, + 320001, + 'Per. Port Ford SB Street Lord Tunnel Ram', + 'MANILOW', + 2 + ), + ( + 320160, + 320001, + 'Walter Chrysler SB Street DP IM', + 'MANIDUAL', + 1 + ), + ( + 320161, + 320001, + 'Walter Chrysler SB Stocker DP IM', + 'MANIDUAL', + 2 + ), + ( + 320162, + 320001, + 'Walter Chrysler SB Street SP IM', + 'MANISING', + 2 + ), + ( + 320163, + 320001, + 'Walter Chrysler SB Stocker SP IM', + 'MANISING', + 3 + ), + ( + 320164, + 320001, + 'Walter Chyrsler SB Super Stocker SP IM', + 'MANISING', + 4 + ), + ( + 320165, + 320001, + 'Walter Chrysler SB Intimidator Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320166, + 320001, + 'Walter Chrysler SB Bighorn Tunnel Ram', + 'MANIHIGH', + 2 + ), + ( + 320167, + 320001, + 'Perfect Port Chrysler SB Centurion DP IM', + 'MANIDUAL', + 1 + ), + ( + 320168, + 320001, + 'Perfect Port Chrysler SB Commander SP IM', + 'MANISING', + 2 + ), + ( + 320169, + 320001, + 'Per. Port Pontiac Emperor Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320170, + 320001, + 'Per. Port Pontiac Street Lord Tunnel Ram', + 'MANILOW', + 2 + ), + ( + 320171, + 320001, + 'Per. Port Pontiac Crusader Tunnel Ram', + 'MANIHIGH', + 2 + ), + ( + 320172, + 320001, + 'Per. Port Pontiac Track Assassin SP IM', + 'MANISING', + 3 + ), + ( + 320173, + 320001, + 'Per. Port Pontiac Street Knight SP IM', + 'MANISING', + 2 + ), + ( + 320174, + 320001, + 'Per. Port Pontiac Super Centurion DP IM', + 'MANIDUAL', + 3 + ), + ( + 320175, + 320001, + 'Rad Rat Chevy BB Screamer Ultra Light DP', + 'MANIDUAL', + 3 + ), + ( + 320176, + 320001, + 'Rad Rat Chevy BB Vortex SP IM', + 'MANISING', + 2 + ), + ( + 320177, + 320001, + 'Rad Rat Chevy BB Vortex Ultra Light SP IM', + 'MANISING', + 3 + ), + ( + 320178, + 320001, + 'Rad Rat Chevy BB Power Tower Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320179, + 320001, + 'Rad Rat Chevy BB Ultimate Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320180, + 320001, + 'Oldfield Ford BB Strip King DP IM', + 'MANIDUAL', + 2 + ), + ( + 320181, + 320001, + 'Oldfield Ford BB Street King DP IM', + 'MANIDUAL', + 2 + ), + ( + 320182, + 320001, + 'Oldfield Ford BB Strip King SP IM', + 'MANISING', + 2 + ), + ( + 320183, + 320001, + 'Oldfield Ford BB Midget Tunnel Ram', + 'MANILOW', + 2 + ), + ( + 320184, + 320001, + 'Oldfield Ford BB Hiboy Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320185, + 320001, + 'Oldfield Ford BB Strip King Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320186, + 320001, + 'Walter Chrysler BB Bighorn Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320187, + 320001, + 'Walter Chrysler BB Intimidator Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320188, + 320001, + 'Walter Chrysler BB Super Stocker DP IM', + 'MANIDUAL', + 4 + ), + ( + 320189, + 320001, + 'Walter Chrysler BB Super Stocker SP IM', + 'MANISING', + 4 + ), + ( + 320190, + 320001, + 'Walter Chrysler BB Stocker SP IM', + 'MANISING', + 3 + ), + ( + 320191, + 320001, + 'Walter Chrysler BB Stocker DP IM', + 'MANIDUAL', + 3 + ), + ( + 320192, + 320001, + 'Walter Chrysler BB Street DP IM', + 'MANIDUAL', + 2 + ), + ( + 320193, + 320001, + 'Walter Chrylser BB Street SP IM', + 'MANIDUAL', + 2 + ), + ( + 320194, + 320001, + 'Perf. Port Olds BB Road Squire DP IM', + 'MANIDUAL', + 1 + ), + ( + 320195, + 320001, + 'Perf. Port Olds BB Street Port DP IM', + 'MANIDUAL', + 2 + ), + ( + 320196, + 320001, + 'Perf. Port Olds BB Usurper DP IM', + 'MANIDUAL', + 4 + ), + ( + 320197, + 320001, + 'Perf. Port Olds BB Centurion SP IM', + 'MANISING', + 2 + ), + ( + 320198, + 320001, + 'Perf. Port Olds BB Commander SP IM', + 'MANISING', + 3 + ), + ( + 320199, + 320001, + 'Perf. Port Olds BB Track Assassin SP IM', + 'MANISING', + 4 + ), + ( + 320200, + 320001, + 'Perf. Port Olds BB Street Lord Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320201, + 320001, + 'Perf. Port Olds BB Crusader Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320202, + 320001, + 'Perf. Port Olds BB Emperor Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320203, + 320001, + 'Rad Rat Chevy W Screamer DP IM', + 'MANIDUAL', + 2 + ), + ( + 320204, + 320001, + 'Rad Rat Chevy W Vortex SP IM', + 'MANISING', + 3 + ), + ( + 320205, + 320001, + 'Rad Rat Chevy W Banshee DP IM', + 'MANIDUAL', + 4 + ), + ( + 320206, + 320001, + 'Rad Rat Chevy W Banshee SP IM', + 'MANISING', + 4 + ), + ( + 320207, + 320001, + 'Rad Rat Chevy W Power Tower Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320208, + 320001, + 'Rad Rat Chevy W Ultimate Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320209, + 320001, + 'Perf.Port Chevy W Usurper DP IM', + 'MANIDUAL', + 4 + ), + ( + 320210, + 320001, + 'Perf. Port Chevy W Centurion SP IM', + 'MANISING', + 2 + ), + ( + 320211, + 320001, + 'Perf. Port Chevy W Track Assassin SP IM', + 'MANISING', + 4 + ), + ( + 320212, + 320001, + 'Perf. Port Chevy W Street Lord Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320213, + 320001, + 'Perf. Port Chevy W Emperor Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320214, + 320001, + 'Perfect Port AMC Track Assassin SP IM', + 'MANISING', + 4 + ), + ( + 320215, + 320001, + 'Perfect Port AMC Street Knight SP IM', + 'MANISING', + 2 + ), + ( + 320216, + 320001, + 'Street Shark AMC Hunter SP IM', + 'MANISING', + 3 + ), + ( + 320217, + 320001, + 'Street Shark AMC Predator DP IM', + 'MANIDUAL', + 4 + ), + ( + 320218, + 320001, + 'Street Shark AMC Stalker DP IM', + 'MANIDUAL', + 2 + ), + ( + 320219, + 320001, + 'Perfort Port AMC Street Lord Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320220, + 320001, + 'Perfect Port AMC Crusader Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320221, + 320001, + 'Perfect Port AMC Emperor Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320222, + 320001, + 'Street Shark AMC Tiger Shark Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320223, + 320001, + 'Perf. Port Cadillac BB Road Squire DP IM', + 'MANIDUAL', + 1 + ), + ( + 320224, + 320001, + 'Perf. Port Cadillac BB Road Squire Alum. DP IM', + 'MANIDUAL', + 1 + ), + ( + 320225, + 320001, + 'Perf. Port Cadillac BB Street Port DP IM', + 'MANIDUAL', + 2 + ), + ( + 320226, + 320001, + 'Perf. Port Cadillac BB Centurion DP IM', + 'MANIDUAL', + 2 + ), + ( + 320227, + 320001, + 'Perf. Port Cadillac BB Usurper DP IM', + 'MANIDUAL', + 4 + ), + ( + 320228, + 320001, + 'Perf. Port Cadillac BB Street Lord DP IM', + 'MANIDUAL', + 3 + ), + ( + 320229, + 320001, + 'Perf. Port Cadillac BB Street Knight SP IM', + 'MANISING', + 2 + ), + ( + 320230, + 320001, + 'Perf. Port Cadillac BB Centurion SP IM', + 'MANISING', + 2 + ), + ( + 320231, + 320001, + 'Perf. Port Cadillac BB Super Centurion SP IM', + 'MANISING', + 3 + ), + ( + 320232, + 320001, + 'Perf. Port Cadillac BB Track Assassin SP IM', + 'MANISING', + 4 + ), + ( + 320233, + 320001, + 'Perf. Port Cadillac BB Street Lord Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320234, + 320001, + 'Perf. Port Cadillac BB Crusader Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320235, + 320001, + 'Perf. Port Cadillac BB Emperor Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320236, + 320001, + 'Perf. Port Cadillac BB Usurper Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320237, + 320001, + 'Walter Hemi Perf. Street DP IM', + 'MANIDUAL', + 2 + ), + ( + 320238, + 320001, + 'Walter Hemi Perf. Lightweight Street DP IM', + 'MANIDUAL', + 2 + ), + ( + 320239, + 320001, + 'Walter Hemi Stocker DP IM', + 'MANIDUAL', + 3 + ), + ( + 320240, + 320001, + 'Walter Hemi Lightweight Stocker DP IM', + 'MANIDUAL', + 3 + ), + ( + 320241, + 320001, + 'Walter Hemi Super Stocker DP IM', + 'MANIDUAL', + 4 + ), + ( + 320242, + 320001, + 'Walter Hemi Perf. Street SP IM', + 'MANISING', + 2 + ), + ( + 320243, + 320001, + 'Walter Hemi Stocker SP IM', + 'MANISING', + 3 + ), + ( + 320244, + 320001, + 'Walter Hemi Super Stocker SP IM', + 'MANISING', + 3 + ), + ( + 320245, + 320001, + 'Walter Hemi Intimidator Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320246, + 320001, + 'Walter Hemi Bighorn Tunnel Ram', + 'MANIDUAL', + 3 + ), + ( + 320247, + 320001, + 'Perf. Port Ford 385 Road Squire DP IM', + 'MANIDUAL', + 1 + ), + ( + 320248, + 320001, + 'Perf. Port Ford 385 Centurion SP IM', + 'MANISING', + 2 + ), + ( + 320249, + 320001, + 'Perf. Port Ford 385 Street Lord Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320250, + 320001, + 'Perf. Port Ford 385 Emperor Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320251, + 320001, + 'Oldfield Ford 385 Perf. DP IM', + 'MANIDUAL', + 2 + ), + ( + 320252, + 320001, + 'Oldfield Ford 385 Lightning SP IM', + 'MANISING', + 3 + ), + ( + 320253, + 320001, + 'Oldfield Ford 385 Track King DP IM', + 'MANIDUAL', + 4 + ), + ( + 320254, + 320001, + 'Oldfield Ford 385 Strip King Tunnel Ram', + 'MANIHIGH', + 3 + ), + ( + 320255, + 320001, + 'Oldfield Ford 385 Track King Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320256, + 320001, + 'Perf. Port Cleveland Street Port DP IM', + 'MANIDUAL', + 2 + ), + ( + 320257, + 320001, + 'Perf. Port Cleveland Emperor DP IM', + 'MANIDUAL', + 4 + ), + ( + 320258, + 320001, + 'Perf. Port Cleveland Emperor SP IM', + 'MANISING', + 4 + ), + ( + 320259, + 320001, + 'Perf. Port Cleveland Centurion SP IM', + 'MANISING', + 2 + ), + ( + 320260, + 320001, + 'Perf. Port Cleveland Emperor Tunnel Ram', + 'MANIHIGH', + 4 + ), + ( + 320261, + 320001, + 'Oldfield Cleveland Performance DP IM', + 'MANIDUAL', + 2 + ), + ( + 320262, + 320001, + 'Oldfield Cleveland Track King DP IM', + 'MANIDUAL', + 4 + ), + ( + 320263, + 320001, + 'Oldfield Cleveland Performance SP IM', + 'MANISING', + 2 + ), + ( + 320264, + 320001, + 'Oldfield Cleveland Track King SP IM', + 'MANISING', + 4 + ), + ( + 320265, + 320001, + 'Oldfield Cleveland Midget Tunnel Ram', + 'MANILOW', + 3 + ), + ( + 330001, + 330001, + 'Autolite 4V (300 cfm)', + 'CARBSING', + 1 + ), + ( + 330002, + 330001, + 'Autolite 6V (600 cfm)', + 'CARBTRI', + 2 + ), + ( + 330003, + 330001, + 'Autolite 2V (300 cfm)', + 'CARBSING', + 1 + ), + ( + 330004, + 330001, + 'Holley 4100 4V (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330005, + 330001, + 'Rochester 2GV 2V (200 cfm)', + 'CARBSING', + 1 + ), + ( + 330006, + 330001, + 'Stromberg 97 2V (125 cfm)', + 'CARBSING', + 1 + ), + ( + 330007, + 330001, + 'Holley 2300 2V (400 cfm)', + 'CARBSING', + 1 + ), + ( + 330008, + 330001, + 'Rochester 4G 4V (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330009, + 330001, + 'Rochester Monojet 2V (350 cfm)', + 'CARBSING', + 1 + ), + ( + 330010, + 330001, + 'Holley Dominator 2300 2V (400 cfm)', + 'CARBSING', + 2 + ), + ( + 330011, + 330001, + 'Holley 4150 4V (650 cfm)', + 'CARBSING', + 2 + ), + ( + 330012, + 330001, + 'Edelbrock Performer 4V (600 cfm)', + 'CARBSING', + 2 + ), + (330013, 330001, 'Ramjet Fuel Injector', NULL, 1), + ( + 330014, + 330001, + 'Rochester 6V (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330015, + 330001, + 'Ford Detroit Lubricator 1V (100 cfm)', + 'CARBSING', + 1 + ), + ( + 330016, + 330001, + 'Rochester Quadrajet 2x4V (800 cfm)', + 'CARBDUAL', + 3 + ), + ( + 330017, + 330001, + 'Carter Tri-Power 3x2V (780 cfm)', + 'CARBTRI', + 3 + ), + ( + 330018, + 330001, + 'Carter AFB 2x4V (800 cfm)', + 'CARBDUAL', + 3 + ), + ( + 330019, + 330001, + 'Edelbrock Q-Jet (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330020, + 330001, + 'Rochester Quadrajet 4V (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330021, + 330001, + 'Carter AFB 4V (400 cfm)', + 'CARBSING', + 1 + ), + ( + 330022, + 330001, + 'Holley 3x2V (680 cfm)', + 'CARBTRI', + 2 + ), + ( + 330023, + 330001, + 'Holley 4300 2x4V (1000 cfm)', + 'Carbquad', + 3 + ), + ( + 330024, + 330001, + 'Autolite 4V (350 cfm)', + 'CARBSING', + 1 + ), + ( + 330025, + 330001, + 'Autolite 4V (400 cfm)', + 'CARBSING', + 1 + ), + ( + 330026, + 330001, + 'Holley 4100 4V (780 cfm)', + 'CARBSING', + 2 + ), + ( + 330027, + 330001, + 'Corvette Cross-Fire Fuel Injection', + NULL, + 2 + ), + ( + 330028, + 330001, + 'Holley 4100 4V (850 cfm)', + 'CARBSING', + 3 + ), + (330029, 330001, 'Cadillac EFI', NULL, 1), + ( + 330030, + 330001, + 'Cadillac Tri-Power 3x2V (600 cfm)', + 'CARBTRI', + 2 + ), + ( + 330031, + 330001, + 'Rochester Tri-Power 3x2V (650 cfm)', + 'CARBTRI', + 2 + ), + ( + 330032, + 330001, + 'Chevrolet Turbo Thrust 4V (400 cfm)', + 'CARBSING', + 1 + ), + ( + 330033, + 330001, + 'Holley 4300 2x4V (800 cfm)', + 'CARBDUAL', + 3 + ), + ( + 330034, + 330001, + 'Holley 4100 4V (735 cfm)', + 'CARBSING', + 2 + ), + ( + 330035, + 330001, + 'Carter AVS 4V (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330036, + 330001, + 'Autolite 4100 4V (480 cfm)', + 'CARBSING', + 1 + ), + ( + 330037, + 330001, + 'Autolite 4100 4V (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330038, + 330001, + 'Autolite 4300 4V (600 cfm)', + 'CARBSING', + 2 + ), + ( + 330039, + 330001, + 'Autolite 4300D 4V (715 cfm)', + 'CARBSING', + 2 + ), + ( + 330040, + 330001, + 'Holley 3x2V (600 cfm)', + 'CARBTRI', + 2 + ), + ( + 330041, + 330001, + 'Holley 4160 4V (1000 cfm)', + 'CARBSING', + 3 + ), + ( + 330042, + 330001, + 'Autolite 2100 2V (356 cfm)', + 'CARBSING', + 1 + ), + ( + 330043, + 330001, + 'Autolite 2100 2V (424 cfm)', + 'CARBSING', + 1 + ), + ( + 330044, + 330001, + 'Rochester Quadrajet 4V (715 cfm)', + 'CARBSING', + 2 + ), + ( + 330045, + 330001, + 'Holley Dominator 2V (550 cfm)', + 'CARBSING', + 2 + ), + ( + 330046, + 330001, + 'Holley Dominator 2V (650 cfm)', + 'CARBSING', + 2 + ), + ( + 330047, + 330001, + 'Holley Dominator 2V (675 cfm)', + 'CARBSING', + 2 + ), + ( + 330048, + 330001, + 'Holley Dominator 4V (1050 cfm)', + 'CARBSING', + 3 + ), + ( + 330049, + 330001, + 'Holley Dominator 4V (1150 cfm)', + 'CARBSING', + 3 + ), + ( + 330050, + 330001, + 'Holley Dominator 2x4V (1150 cfm)', + 'CARBDUAL', + 3 + ), + ( + 330051, + 330001, + 'Holley Dominator 2x4V (1250 cfm)', + 'CARBDUAL', + 4 + ), + ( + 330052, + 330001, + 'Holley Dominator 4V (1250 cfm)', + 'CARBSING', + 4 + ), + ( + 330053, + 330001, + 'Carter 2V (400 cfm)', + 'CARBSING', + 1 + ), + ( + 330054, + 330001, + 'Carter AFB 4V (500 cfm) Carb', + 'CARBSING', + 1 + ), + ( + 330055, + 330001, + 'Rochester Monojet 2V (400 cfm)', + 'CARBSING', + 1 + ), + ( + 330056, + 330001, + 'Rochester Quadrajet 2x4V (600 cfm)', + 'CARBDUAL', + 2 + ), + ( + 330057, + 330001, + 'Rochester Quadrajet 4V (500 cfm)', + 'CARBSING', + 1 + ), + ( + 330058, + 330001, + 'Ramjet Fuel Injector RPO 579D', + NULL, + 2 + ), + ( + 330059, + 330001, + 'Rochester Monojet 2V (500 cfm)', + 'CARBSING', + 1 + ), + ( + 330060, + 330001, + 'Rochester Monojet 2V (600 cfm)', + 'CARBSING', + 1 + ), + ( + 330061, + 330001, + 'Rochester Quadrajet 4V (660 cfm) Carb', + 'CARBDUAL', + 1 + ), + ( + 330062, + 330001, + 'Autolite 2x4V (600 cfm)', + 'CARBDUAL', + 1 + ), + ( + 330063, + 330001, + 'Autolite 2100 2V (600 cfm)', + 'CARBSING', + 1 + ), + ( + 330064, + 330001, + 'Autolite 3x2V (860 cfm)', + 'CARBTRI', + 2 + ), + ( + 330065, + 330001, + 'Holley 3x2V (840 cfm)', + 'CARBTRI', + 2 + ), + ( + 330066, + 330001, + 'Carter 2V (600 cfm)', + 'CARBSING', + 1 + ), + ( + 330067, + 330001, + 'Carter AVS 4V (700 cfm)', + 'CARBDUAL', + 1 + ), + ( + 330068, + 330001, + 'Carter AVS 4V (800 cfm)', + 'CARBDUAL', + 2 + ), + ( + 330069, + 330001, + 'Edelbrock Performer 4V (500 cfm)', + 'CARBDUAL', + 2 + ), + ( + 330070, + 330001, + 'Edelbrock Performer 4V (750 cfm)', + 'CARBDUAL', + 2 + ), + ( + 330071, + 330001, + 'Edelbrock Q-Jet (850 cfm)', + 'CARBDUAL', + 3 + ), + ( + 330072, + 330001, + 'Edelbrock Q-Jet (795 cfm)', + 'CARBDUAL', + 3 + ), + ( + 330073, + 330001, + 'Edelbrock Pro-Flo EFI System', + NULL, + 3 + ), + ( + 340001, + 340001, + 'Light Duty Air Cleaner', + 'airoil', + 1 + ), + ( + 340002, + 340001, + 'Normal Duty Air Cleaner', + 'airsnork', + 1 + ), + ( + 340003, + 340001, + 'Holley Hi-Tek Air Cleaner', + 'AIRSTD', + 2 + ), + ( + 340004, + 340001, + 'Edelbrock Pro-Flo 1000 XHD Air Cleaner', + 'airoval', + 4 + ), + ( + 340005, + 340001, + 'Tri-angular Air Cleaner', + 'AIRTRI', + 2 + ), + ( + 340006, + 340001, + 'Edelbrock Pro-Flo Round Air Cleaner', + 'AIRSTD', + 3 + ), + ( + 340007, + 340001, + 'Edelbrock Pro-Flo Oval Air Cleaner', + 'AIROVAL', + 3 + ), + ( + 340008, + 340001, + 'Edelbrock Pro-Flo Triangular Air Cleaner', + 'AIRTRI', + 3 + ), + ( + 340009, + 340001, + 'Edelbrock Elite Round Air Cleaner', + 'AIRSTD', + 2 + ), + ( + 340010, + 340001, + 'Edelbrock Elite Oval Air Cleaner', + 'AIROVAL', + 2 + ), + ( + 340011, + 340001, + 'Edelbrock Elite Triangular Air Cleaner', + 'AIRTRI', + 2 + ), + ( + 350001, + 350001, + 'Lindstrom P05 Blower', + 'BLOWSMAL', + 1 + ), + ( + 350002, + 350001, + 'Holley Street Blower', + 'BLOWSMAL', + 2 + ), + ( + 350003, + 350001, + 'Holley Street PowerCharger Blower', + 'BLOWSMAL', + 2 + ), + ( + 350004, + 350001, + 'Holley PowerCharger Blower', + 'BLOWLARG', + 3 + ), + ( + 350005, + 350001, + 'Holley MegaBlower', + 'BLOWLARG', + 4 + ), + ( + 350006, + 350001, + 'Weiand 671 Blower', + 'BLOWSMAL', + 3 + ), + ( + 350007, + 350001, + 'Weiand 871 Blower', + 'BLOWLARG', + 3 + ), + ( + 350008, + 350001, + 'Weiand 1071 Blower', + 'BLOWLARG', + 4 + ), + ( + 360001, + 360001, + 'Lindstrom Little Rabbit 5/1 NOS', + NULL, + 1 + ), + ( + 360002, + 360001, + 'Lindstrom Cheetah 15/5 NOS', + NULL, + 2 + ), + ( + 360003, + 360001, + 'Holley Powershot 125 NOS', + NULL, + 3 + ), + ( + 360004, + 360001, + 'Holley Super Powershot 200 NOS', + NULL, + 4 + ), + (360005, 360001, 'Holley Cheater 250 NOS', NULL, 4), + ( + 360006, + 360001, + 'Holley Sneeky Pete 75 NOS', + NULL, + 3 + ), + ( + 1000001, + 1000001, + 'Ford Y (9.0) 1.925i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000002, + 1000001, + 'Ford Flathead (6.15) Stock CH', + NULL, + 1 + ), + ( + 1000003, + 1000001, + 'Ford Flathead (6.8) Stock CH', + NULL, + 1 + ), + ( + 1000004, + 1000001, + 'Ford Flathead (7.2) Stock CH', + NULL, + 1 + ), + ( + 1000005, + 1000001, + 'Ford BB Low Riser (11.6) 2.09i/1.66e CH', + NULL, + 3 + ), + ( + 1000006, + 1000001, + 'Ford 385 Street Boss (10.5) 2.28i/1.90e CH', + NULL, + 3 + ), + ( + 1000007, + 1000001, + 'AMC (10.0) 1.787i/1.406e Stock CH', + NULL, + 1 + ), + ( + 1000008, + 1000001, + 'AMC (10.2) 2.02i/1.625e Stock CH', + NULL, + 2 + ), + ( + 1000009, + 1000001, + 'AMC (10.2) 2.02i/1.625e SS HP W/F CH', + NULL, + 3 + ), + ( + 1000010, + 1000001, + 'Pontiac (9.2) Stock W CH', + NULL, + 1 + ), + ( + 1000011, + 1000001, + 'Chrysler Hemi (10.25) 2.25i/1.90e Canted CH', + NULL, + 3 + ), + ( + 1000012, + 1000001, + 'Chrysler SB (10.5) AAR W/P CH', + NULL, + 2 + ), + ( + 1000013, + 1000001, + 'Chrysler SB (10.5) 1.78i/1.50e Wedge CH', + NULL, + 1 + ), + ( + 1000014, + 1000001, + 'Olds SB (9.0) Stock CH', + NULL, + 1 + ), + ( + 1000015, + 1000001, + 'Chevrolet SB (9.5) Wedge CH', + NULL, + 1 + ), + ( + 1000016, + 1000001, + 'Pontiac (10.5) Wedge CH', + NULL, + 1 + ), + ( + 1000017, + 1000001, + 'Olds BB (10.25) Stock CH', + NULL, + 1 + ), + (1000018, 1000001, 'Pontiac (10.75) W CH', NULL, 2), + ( + 1000019, + 1000001, + 'Chevrolet BB HP (11.0) Canted CH', + NULL, + 3 + ), + ( + 1000020, + 1000001, + 'Ford Flathead (7.5) Denver CH', + NULL, + 2 + ), + (1000021, 1000001, 'Olds BB (8.5) CH', NULL, 1), + ( + 1000022, + 1000001, + 'Chevrolet W (10.25) 2.07i/1.72e CH', + NULL, + 2 + ), + ( + 1000023, + 1000001, + 'Chevrolet BB L72 (11.0) HP CH', + NULL, + 3 + ), + ( + 1000024, + 1000001, + 'Chevrolet BB L88 Aluminum (12.5) HP CH', + NULL, + 4 + ), + ( + 1000025, + 1000001, + 'Chevrolet BB L89 Aluminum (11.0) HP CH', + NULL, + 3 + ), + ( + 1000026, + 1000001, + 'Ford Y 1957 (9.0) 1.925i/1.51e Stock CH', + NULL, + 2 + ), + ( + 1000027, + 1000001, + 'Ford 385 (8.5) 2.08i/1.66e Canted CH', + NULL, + 1 + ), + ( + 1000028, + 1000001, + 'Ford 385 (11.0) 2.08i/1.66e Canted CH', + NULL, + 3 + ), + ( + 1000029, + 1000001, + 'Ford Cleveland (9.2) 2.19i/1.71e HP Canted CH', + NULL, + 3 + ), + ( + 1000030, + 1000001, + 'Ford BB (9.6) 2.04i/1.57e W CH', + NULL, + 2 + ), + ( + 1000031, + 1000001, + 'Ford BB (11.4) 2.09i/1.66e W/P CH', + NULL, + 2 + ), + ( + 1000032, + 1000001, + 'Ford BB High Riser (11.5) 2.195i/1.73e CH', + NULL, + 3 + ), + ( + 1000033, + 1000001, + 'Ford BB Cammer 2.25i/1.90e HP CH', + NULL, + 4 + ), + ( + 1000034, + 1000001, + 'Ford 385 (10.5) 2.08i/1.66e Canted CH', + NULL, + 2 + ), + ( + 1000035, + 1000001, + 'Ford 385 (11.3) 2.25i/1.72e CJ HP CH', + NULL, + 3 + ), + ( + 1000037, + 1000001, + 'Pontiac (10.0) W/P CH', + NULL, + 3 + ), + ( + 1000038, + 1000001, + 'Chrysler BB (11.0) Max Wedge I CH', + NULL, + 3 + ), + ( + 1000039, + 1000001, + 'Chrysler BB (13.5) Max Wedge I HP CH', + NULL, + 4 + ), + ( + 1000040, + 1000001, + 'Edelbrock Performer RPM (9.25) Chevy SB CH', + NULL, + 3 + ), + ( + 1000041, + 1000001, + 'Edelbrock Performer RPM (10.5) Chevy SB CH', + NULL, + 3 + ), + ( + 1000042, + 1000001, + 'Edelbrock Performer (9.25) Chevy SB CH', + NULL, + 2 + ), + ( + 1000043, + 1000001, + 'Edelbrock Performer (10.5) Chevrolet SB CH', + NULL, + 2 + ), + ( + 1000044, + 1000001, + 'Edelbrock Performer RPM 454-O Chevy BB (9.5) CH', + NULL, + 2 + ), + ( + 1000045, + 1000001, + 'Edelbrock Performer 454-O Chevy BB (9.5) CH', + NULL, + 2 + ), + ( + 1000046, + 1000001, + 'Edelbrock Performer RPM 454-R Chevy BB (9.5) CH', + NULL, + 3 + ), + ( + 1000047, + 1000001, + 'Edelbrock Performer RPM (11.5) Chevy SB CH', + NULL, + 3 + ), + ( + 1000048, + 1000001, + 'Buick BB (10.0) 2.0i/1.625e Stock', + NULL, + 1 + ), + (1000049, 1000001, 'Pontiac (12.0) Wedge', NULL, 3), + (1000050, 1000001, 'Pontiac (13.0) Wedge', NULL, 4), + ( + 1000051, + 1000001, + 'Pontiac Ram Air II Cylinder Head', + NULL, + 2 + ), + ( + 1000052, + 1000001, + 'Ford BB Medium Riser (11.6) 2.195i/1.73e CH', + NULL, + 3 + ), + ( + 1000053, + 1000001, + 'Ford BB (10.6) 2.04i/1.57e W/P CH', + NULL, + 2 + ), + ( + 1000054, + 1000001, + 'Ford 385 2.37i/1.90e NASCAR CH', + NULL, + 4 + ), + ( + 1000055, + 1000001, + 'Chrysler BB (12.5) Max Wedge III CH', + NULL, + 3 + ), + ( + 1000056, + 1000001, + 'Chevrolet W (10.25) 2.19/1.73 CH', + NULL, + 3 + ), + ( + 1000057, + 1000001, + 'Chevrolet W (10.25) 1.94/1.65 CH', + NULL, + 2 + ), + ( + 1000058, + 1000001, + 'Ford Cleveland Boss 351 (11.7) 2.19i/1.71e CH', + NULL, + 3 + ), + ( + 1000060, + 1000001, + 'Buick Nailhead Wedge (8.5)', + NULL, + 1 + ), + ( + 1000061, + 1000001, + 'Ford SB (10.5) 1.78i/1.45e HP Wedge CH', + NULL, + 2 + ), + ( + 1000063, + 1000001, + 'Buick BB (8.5) 2.0i/1.625e Wedge CH', + NULL, + 1 + ), + (1000064, 1000001, 'Buick SB Wedge (8.5)', NULL, 1), + (1000065, 1000001, 'Buick SB Wedge (9.0)', NULL, 1), + ( + 1000066, + 1000001, + 'Buick SB Wedge (10.25)', + NULL, + 2 + ), + ( + 1000067, + 1000001, + 'Cadillac BB Stock (9.1)', + NULL, + 1 + ), + ( + 1000068, + 1000001, + 'Cadillac BB Wedge (10.5)', + NULL, + 1 + ), + ( + 1000069, + 1000001, + 'Chevrolet SB Wedge (8.0)', + NULL, + 1 + ), + ( + 1000070, + 1000001, + 'Chevrolet SB Wedge (9.25)', + NULL, + 1 + ), + ( + 1000071, + 1000001, + 'Chevrolet SB Stock Wedge (10.5) 1.72i/1.50e', + NULL, + 2 + ), + ( + 1000072, + 1000001, + 'Chevrolet SB Wedge (11.0)', + NULL, + 2 + ), + ( + 1000073, + 1000001, + 'Chevrolet SB Wedge (11.25) 1.94i/1.50e', + NULL, + 2 + ), + ( + 1000074, + 1000001, + 'Chevrolet SB Wedge (9.0)', + NULL, + 1 + ), + ( + 1000075, + 1000001, + 'Chevrolet BB Canted (10.25)', + NULL, + 3 + ), + ( + 1000076, + 1000001, + 'Chevrolet BB Canted ZL1 (12.0)', + NULL, + 3 + ), + ( + 1000077, + 1000001, + 'Chevrolet BB Canted LS6 (9.0)', + NULL, + 2 + ), + ( + 1000078, + 1000001, + 'Olds SB (10.25) Stock CH', + NULL, + 1 + ), + ( + 1000079, + 1000001, + 'Olds SB (10.5) W-31 CH', + NULL, + 3 + ), + ( + 1000080, + 1000001, + 'Olds BB (10.5) Stock CH', + NULL, + 2 + ), + ( + 1000081, + 1000001, + 'Olds BB (9.0) Stock CH', + NULL, + 1 + ), + ( + 1000082, + 1000001, + 'Olds BB (10.25) Stock CH', + NULL, + 2 + ), + ( + 1000083, + 1000001, + 'Olds BB (10.5) W-30 CH', + NULL, + 3 + ), + ( + 1000084, + 1000001, + 'Pontiac (8.6) Stock W CH', + NULL, + 1 + ), + ( + 1000085, + 1000001, + 'Pontiac (10.0) Stock W CH', + NULL, + 2 + ), + ( + 1000086, + 1000001, + 'Pontiac (11.0) SD W CH', + NULL, + 3 + ), + ( + 1000087, + 1000001, + 'Pontiac (10.75) HO W CH', + NULL, + 3 + ), + (1000088, 1000001, 'Pontiac (10.5) W CH', NULL, 2), + ( + 1000089, + 1000001, + 'Pontiac (10.25) W CH', + NULL, + 2 + ), + ( + 1000090, + 1000001, + 'Pontiac (10.0) Stock W CH', + NULL, + 1 + ), + ( + 1000091, + 1000001, + 'Pontiac (8.4) SD W CH', + NULL, + 2 + ), + ( + 1000092, + 1000001, + 'Ford Y (7.6) 1.78i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000093, + 1000001, + 'Ford Y (8.5) 1.78i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000094, + 1000001, + 'Ford Y (8.1) 1.78i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000095, + 1000001, + 'Ford Y (8.0) 1.78i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000096, + 1000001, + 'Ford Y (8.4) 1.78i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000097, + 1000001, + 'Ford Y (8.6) 1.925i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000098, + 1000001, + 'Ford Y (9.7) 1.925i/1.51e Stock CH', + NULL, + 2 + ), + ( + 1000099, + 1000001, + 'Ford Y (8.3) 1.925i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000100, + 1000001, + 'Ford Y (8.8) 1.925i/1.51e Stock CH', + NULL, + 1 + ), + ( + 1000101, + 1000001, + 'Ford Y (9.6) 1.925i/1.51e Stock CH', + NULL, + 2 + ), + ( + 1000102, + 1000001, + 'Ford BB (12.1) 2.09i/1.66e Wedge CH', + NULL, + 3 + ), + ( + 1000103, + 1000001, + 'Ford BB (11.0) 2.04i/1.57e Wedge CH', + NULL, + 2 + ), + ( + 1000104, + 1000001, + 'Ford BB (10.1) 2.04i/1.57e Wedge CH', + NULL, + 2 + ), + ( + 1000105, + 1000001, + 'Ford BB (9.4) 2.04i/1.57e Wedge CH', + NULL, + 1 + ), + ( + 1000106, + 1000001, + 'Ford Cleveland (9.5) 2.05i/1.65e CH', + NULL, + 2 + ), + ( + 1000107, + 1000001, + 'Ford Cleveland (11.0) 2.19i/1.71e CH', + NULL, + 3 + ), + ( + 1000108, + 1000001, + 'Ford Cleveland (9.0) 2.19i/1.71e CH', + NULL, + 2 + ), + ( + 1000109, + 1000001, + 'Ford Cleveland (8.6) 2.05i/1.65e CH', + NULL, + 1 + ), + ( + 1000111, + 1000001, + 'Ford 385 (10.2) 2.08i/1.66e Canted CH', + NULL, + 3 + ), + ( + 1000112, + 1000001, + 'Chrysler BB (10.0) Large Port W CH', + NULL, + 2 + ), + ( + 1000113, + 1000001, + 'Chrysler BB (9.6) W CH', + NULL, + 1 + ), + ( + 1000114, + 1000001, + 'Chrysler BB (9.2) W CH', + NULL, + 1 + ), + ( + 1000115, + 1000001, + 'Chrysler SB (8.8) 1.78i/1.50e Stock W CH', + NULL, + 1 + ), + ( + 1000116, + 1000001, + 'Chrysler SB (10.5) 2.02i/1.60e Stock W CH', + NULL, + 2 + ), + ( + 1000117, + 1000001, + 'Chrysler SB (9.0) Stock W CH', + NULL, + 1 + ), + ( + 1000118, + 1000001, + 'Chrysler SB (9.2) Stock W CH', + NULL, + 1 + ), + ( + 1000119, + 1000001, + 'Chrysler BB (10.0) W CH', + NULL, + 1 + ), + ( + 1000120, + 1000001, + 'Chevrolet SB Large Valve Wedge (10.5)', + NULL, + 2 + ), + ( + 1000121, + 1000001, + 'Chevrolet SB Wedge (10.25)', + NULL, + 2 + ), + ( + 1000122, + 1000001, + 'Chevrolet SB Wedge (8.5)', + NULL, + 1 + ), + ( + 1000123, + 1000001, + 'Chevrolet SB Wedge (10.5) 1.94i/1.50e', + NULL, + 2 + ), + ( + 1000124, + 1000001, + 'Chevrolet SB Wedge (11.25) 2.02i/1.60e', + NULL, + 2 + ), + ( + 1000125, + 1000001, + 'Chevrolet BB L36 Canted (10.25)', + NULL, + 2 + ), + ( + 1000126, + 1000001, + 'Pontiac (10.25) Stock W CH', + NULL, + 1 + ), + ( + 1000127, + 1000001, + 'Pontiac (10.75) W/P CH', + NULL, + 3 + ), + (1000128, 1000001, 'Pontiac (10.75) W CH', NULL, 2), + ( + 1000129, + 1000001, + 'Pontiac (11.0) SD 2.02i/1.76e W CH', + NULL, + 3 + ), + ( + 1000130, + 1000001, + 'Pontiac Ram Air V Cylinder Head', + NULL, + 3 + ), + ( + 1000131, + 1000001, + 'Ford BB (10.2) 2.04i/1.57e Wedge CH', + NULL, + 2 + ), + ( + 1000132, + 1000001, + 'Ford BB (8.9) 2.04i/1.57e Wedge CH', + NULL, + 1 + ), + ( + 1000133, + 1000001, + 'Ford BB (10.5) 2.04i/1.57e Wedge CH', + NULL, + 2 + ), + ( + 1000134, + 1000001, + 'Ford SB (8.7) 1.67i/1.45e Wedge CH', + NULL, + 1 + ), + ( + 1000135, + 1000001, + 'Ford SB (10.5) 1.67i/1.45e HP Wedge CH', + NULL, + 2 + ), + ( + 1000136, + 1000001, + 'Ford SB (9.0) 1.67i/1.45e Wedge CH', + NULL, + 1 + ), + ( + 1000137, + 1000001, + 'Ford SB (10.0) 1.78i/1.45e Wedge CH', + NULL, + 1 + ), + ( + 1000138, + 1000001, + 'Ford SB Boss (10.5) 2.23i/1.72e Canted CH', + NULL, + 3 + ), + ( + 1000139, + 1000001, + 'Ford SB (9.5) 1.84i/1.54e Wedge CH', + NULL, + 2 + ), + ( + 1000140, + 1000001, + 'Ford SB (10.7) 1.84i/1.54e Wedge CH', + NULL, + 2 + ), + ( + 1000141, + 1000001, + 'Chrysler BB (8.2) W CH', + NULL, + 1 + ), + ( + 1000142, + 1000001, + 'Chrysler BB (11.0) Max Wedge III Cylinder Head', + NULL, + 3 + ), + ( + 1000143, + 1000001, + 'Chrysler BB (10.5) W CH', + NULL, + 2 + ), + ( + 1000144, + 1000001, + 'Buick BB Stage I (10) 2.12i/1.75e CH', + NULL, + 2 + ), + ( + 1000145, + 1000001, + 'Pontiac (8.0) Stock W CH', + NULL, + 1 + ), + ( + 1000146, + 1000001, + 'Chevrolet BB (8.5) Stock CH', + NULL, + 1 + ), + ( + 1000147, + 1000001, + 'Shade Tree Chevrolet SB (8.0)', + NULL, + 1 + ), + ( + 1000148, + 1000001, + 'AMC (9.0) 1.787i/1.406e Stock CH', + NULL, + 1 + ), + ( + 1000149, + 1000001, + 'AMC (9.0) 2.02i/1.625e Stock CH', + NULL, + 1 + ), + ( + 1000150, + 1000001, + 'AMC (10.0) 2.02i/1.625e Stock CH', + NULL, + 2 + ), + ( + 1000151, + 1000001, + 'AMC (10.0) 2.02i/1.625e Dog Leg CH', + NULL, + 2 + ), + ( + 1000152, + 1000001, + 'Cadillac L-Head Stock CH', + NULL, + 1 + ), + ( + 1000153, + 1000001, + 'Buick BB (10.25) 2.0i/1.625e Wedge CH', + NULL, + 2 + ), + ( + 1000154, + 1000001, + 'Chevrolet W (10.25) 2.19/1.73 Z11 CH', + NULL, + 3 + ), + ( + 1000155, + 1000001, + 'Cadillac L-Head (7.5) CH', + NULL, + 2 + ), + ( + 1000156, + 1000001, + 'Cadillac L-Head (7.8) CH', + NULL, + 2 + ), + ( + 1000157, + 1000001, + 'Cadillac L-Head (8.0) CH', + NULL, + 2 + ), + ( + 1000158, + 1000001, + 'Cadillac L-Head (8.2) CH', + NULL, + 2 + ), + ( + 1000159, + 1000001, + 'Buick Nailhead (8.75) CH', + NULL, + 2 + ), + ( + 1000160, + 1000001, + 'Buick Nailhead (9.0) CH', + NULL, + 2 + ), + ( + 1000161, + 1000001, + 'Buick Nailhead (10.25) CH', + NULL, + 3 + ), + ( + 1000162, + 1000001, + 'Buick Nailhead (10.5) CH', + NULL, + 3 + ), + ( + 1000163, + 1000001, + 'Cadillac (9.75) Wedge CH', + NULL, + 2 + ), + ( + 1000164, + 1000001, + 'Cadillac (10.0) Wedge CH', + NULL, + 2 + ), + ( + 1000165, + 1000001, + 'Hemi (10.5) Canted CH', + NULL, + 3 + ), + ( + 1000166, + 1000001, + 'Hemi (10.75) Canted CH', + NULL, + 3 + ), + ( + 1000167, + 1000001, + 'Edelbrock Ford Flathead Cylinder Head', + NULL, + 3 + ), + ( + 1000168, + 1000001, + 'Holley SystemMax Chevrolet BB CH', + NULL, + 4 + ), + (1000169, 1000001, 'AMC NASCAR CH', NULL, 4), + ( + 1000170, + 1000001, + 'AMC (9.5) 2.02i/1.68e Stock CH', + NULL, + 2 + ), + ( + 1000171, + 1000001, + 'AMC (8.5) 2.02i/1.68e Stock CH', + NULL, + 1 + ), + ( + 1000172, + 1000001, + 'Ford SB (9.0) 1.84i/1.54e Wedge CH', + NULL, + 1 + ), + ( + 1000173, + 1000001, + 'Ford SB Boss (10.5) 2.19i/1.72e Canted CH', + NULL, + 3 + ), + ( + 1000174, + 1000001, + 'Ford SB TP (10.0) 2.12i/1.54e Wedge CH', + NULL, + 3 + ), + ( + 1100001, + 1100001, + 'Chevrolet SB Stock Cam', + NULL, + 1 + ), + ( + 1100002, + 1100001, + 'Chrysler SB Barracuda Cam', + NULL, + 1 + ), + ( + 1100003, + 1100001, + 'Edelbrock Performer Plus Chrysler SB HP Cam', + NULL, + 3 + ), + ( + 1100004, + 1100001, + 'Edelbrock Performer RPM Chrysler SB HP Cam', + NULL, + 2 + ), + (1100005, 1100001, 'Ford SB Stock Cam', NULL, 1), + ( + 1100006, + 1100001, + 'Reed TorqueMaster Chrysler SB HP Cam', + NULL, + 2 + ), + ( + 1100007, + 1100001, + 'Reed XLH Chrysler SB DP Cam', + NULL, + 3 + ), + ( + 1100008, + 1100001, + 'Crane PowerMax HP Chrysler SB Cam', + NULL, + 2 + ), + ( + 1100009, + 1100001, + 'Crane Saturday Night Special Chrysler SB Cam', + NULL, + 3 + ), + ( + 1100010, + 1100001, + 'Edelbrock Torker-Plus Chrysler SB DP Cam', + NULL, + 3 + ), + (1100011, 1100001, 'Buick BB Stock Cam', NULL, 1), + (1100012, 1100001, 'Buick SB Stock Cam', NULL, 1), + ( + 1100013, + 1100001, + 'Cadillac BB Stock Cam', + NULL, + 1 + ), + ( + 1100014, + 1100001, + 'Chevrolet BB Stock Cam', + NULL, + 1 + ), + (1100015, 1100001, 'Chevrolet SB HP Cam', NULL, 2), + ( + 1100016, + 1100001, + 'Chrysler BB Stock Cam', + NULL, + 1 + ), + ( + 1100017, + 1100001, + 'Chrysler SB Stock Cam', + NULL, + 1 + ), + (1100018, 1100001, 'Ford BB Stock Cam', NULL, 1), + (1100019, 1100001, 'Ford SB HP Cam', NULL, 2), + ( + 1100020, + 1100001, + 'Ford Flathead Stock Cam', + NULL, + 1 + ), + ( + 1100021, + 1100001, + 'Oldsmobile BB Stock Cam', + NULL, + 1 + ), + ( + 1100022, + 1100001, + 'Oldsmobile SB Stock Cam', + NULL, + 1 + ), + (1100023, 1100001, 'AMC Stock Cam', NULL, 1), + (1100024, 1100001, 'Pontiac Stock Cam', NULL, 1), + ( + 1100025, + 1100001, + 'Chevrolet SB Stock Hi-Lift Cam', + NULL, + 1 + ), + ( + 1100026, + 1100001, + 'Chevrolet SB HP Duntov Cam', + NULL, + 3 + ), + (1100028, 1100001, 'Chevrolet BB HP Cam', NULL, 2), + ( + 1100029, + 1100001, + 'Chevrolet BB HP LS7 Cam', + NULL, + 3 + ), + ( + 1100030, + 1100001, + 'Buick BB 1968 Stage I Cam', + NULL, + 1 + ), + ( + 1100031, + 1100001, + 'Buick BB 1969 Stage I Cam', + NULL, + 2 + ), + ( + 1100032, + 1100001, + 'Buick BB Stage II Cam', + NULL, + 2 + ), + ( + 1100033, + 1100001, + 'Oldsmobile SB W31 Performance Cam', + NULL, + 2 + ), + ( + 1100034, + 1100001, + 'Oldsmobile BB W30 Performance Cam', + NULL, + 2 + ), + (1100035, 1100001, 'Pontiac SD Cam', NULL, 3), + ( + 1100036, + 1100001, + 'Pontiac Ram Air I Cam', + NULL, + 2 + ), + ( + 1100037, + 1100001, + 'Pontiac Ram Air IV Cam', + NULL, + 3 + ), + (1100038, 1100001, 'Pontiac SD Cam', NULL, 3), + (1100039, 1100001, 'Pontiac HO Cam', NULL, 2), + (1100040, 1100001, 'Ford Y Truck Cam', NULL, 1), + (1100041, 1100001, 'Ford BB HO Cam', NULL, 2), + (1100042, 1100001, 'Ford BB HO Mild Cam', NULL, 2), + (1100043, 1100001, 'Ford BB Cammer Cam', NULL, 4), + (1100044, 1100001, 'Ford BB PI Cam', NULL, 2), + (1100045, 1100001, 'Ford 385 Boss Cam', NULL, 3), + (1100046, 1100001, 'Chrysler BB HP Cam', NULL, 2), + ( + 1100047, + 1100001, + 'Chrysler BB Max Wedge I Cam', + NULL, + 2 + ), + ( + 1100048, + 1100001, + 'Chrysler BB Max Wedge III Cam', + NULL, + 3 + ), + (1100049, 1100001, 'Chrysler Hemi Cam', NULL, 3), + (1100050, 1100001, 'Chrysler SB AAR Cam', NULL, 2), + (1100051, 1100001, 'AMC Group 19 Cam', NULL, 2), + (1100052, 1100001, 'AMC SS/AMX Cam', NULL, 3), + ( + 1100054, + 1100001, + 'Crane PowerMax HP Cadillac BB Cam', + NULL, + 2 + ), + ( + 1100055, + 1100001, + 'Crane PowerMax HP Buick BB Cam', + NULL, + 2 + ), + ( + 1100056, + 1100001, + 'Crane PowerMax HP Buick SB Cam', + NULL, + 2 + ), + ( + 1100057, + 1100001, + 'Crane PowerMax HP Chevrolet BB Cam', + NULL, + 2 + ), + ( + 1100058, + 1100001, + 'Crane PowerMax HP Chevrolet SB Cam', + NULL, + 2 + ), + ( + 1100059, + 1100001, + 'Crane PowerMax HP Chrysler BB Cam', + NULL, + 2 + ), + ( + 1100060, + 1100001, + 'Crane PowerMax HP Ford BB Cam', + NULL, + 2 + ), + ( + 1100061, + 1100001, + 'Crane PowerMax HP Ford SB Cam', + NULL, + 2 + ), + ( + 1100062, + 1100001, + 'Crane PowerMax HP Olds BB Cam', + NULL, + 2 + ), + ( + 1100063, + 1100001, + 'Crane PowerMax HP Olds SB Cam', + NULL, + 2 + ), + ( + 1100064, + 1100001, + 'Crane PowerMax HP Pontiac Cam', + NULL, + 2 + ), + (1100065, 1100001, 'Shade Tree Hemi Cam', NULL, 2), + ( + 1100066, + 1100001, + 'Crane Saturday Night Special Chrysler BB Cam', + NULL, + 3 + ), + ( + 1100067, + 1100001, + 'Crane Saturday Night Special Buick BB Cam', + NULL, + 3 + ), + ( + 1100068, + 1100001, + 'Crane Saturday Night Special Buick SB Cam', + NULL, + 3 + ), + ( + 1100069, + 1100001, + 'Crane Saturday Night Special Chevrolet BB Cam', + NULL, + 3 + ), + ( + 1100070, + 1100001, + 'Crane Saturday Night Special Chevrolet SB Cam', + NULL, + 3 + ), + ( + 1100071, + 1100001, + 'Crane Saturday Night Special Ford BB Cam', + NULL, + 3 + ), + ( + 1100072, + 1100001, + 'Crane Saturday Night Special Ford SB Cam', + NULL, + 3 + ), + ( + 1100073, + 1100001, + 'Crane Saturday Night Special Olds BB Cam', + NULL, + 3 + ), + ( + 1100074, + 1100001, + 'Crane Saturday Night Special Olds SB Cam', + NULL, + 3 + ), + ( + 1100075, + 1100001, + 'Crane Saturday Night Special Pontiac Cam', + NULL, + 3 + ), + ( + 1100076, + 1100001, + 'Crane Saturday Night Special Chevy W Cam', + NULL, + 3 + ), + ( + 1100077, + 1100001, + 'Edelbrock Performer Plus Chevrolet SB HP Cam', + NULL, + 3 + ), + ( + 1100078, + 1100001, + 'Edelbrock Performer Plus Ford SB HP Cam', + NULL, + 3 + ), + ( + 1100079, + 1100001, + 'Edelbrock Performer Plus Ford BB HP Cam', + NULL, + 3 + ), + ( + 1100080, + 1100001, + 'Edelbrock Performer RPM Chrysler BB HP Cam', + NULL, + 2 + ), + ( + 1100081, + 1100001, + 'Edelbrock Performer RPM Buick BB HP Cam', + NULL, + 2 + ), + ( + 1100082, + 1100001, + 'Edelbrock Performer RPM Chevrolet BB HP Cam', + NULL, + 2 + ), + ( + 1100083, + 1100001, + 'Edelbrock Performer RPM Chevrolet SB HP Cam', + NULL, + 2 + ), + ( + 1100084, + 1100001, + 'Edelbrock Performer RPM Ford BB HP Cam', + NULL, + 2 + ), + ( + 1100085, + 1100001, + 'Edelbrock Performer RPM Ford SB HP Cam', + NULL, + 2 + ), + ( + 1100087, + 1100001, + 'Edelbrock Performer RPM Olds SB HP Cam', + NULL, + 2 + ), + ( + 1100088, + 1100001, + 'Edelbrock Performer RPM Pontiac HP Cam', + NULL, + 2 + ), + ( + 1100090, + 1100001, + 'Edelbrock Torker-Plus Chrysler BB DP Cam', + NULL, + 3 + ), + ( + 1100092, + 1100001, + 'Edelbrock Torker-Plus Chevrolet BB DP Cam', + NULL, + 3 + ), + ( + 1100093, + 1100001, + 'Edelbrock Torker-Plus Chevrolet SB DP Cam', + NULL, + 3 + ), + ( + 1100094, + 1100001, + 'Edelbrock Torker-Plus Ford BB DP Cam', + NULL, + 3 + ), + ( + 1100095, + 1100001, + 'Edelbrock Torker-Plus Ford SB DP Cam', + NULL, + 3 + ), + ( + 1100098, + 1100001, + 'Edelbrock Torker-Plus Pontiac DP Cam', + NULL, + 3 + ), + (1100100, 1100001, 'Oldsmobile BB HP Cam', NULL, 2), + ( + 1100101, + 1100001, + 'Pontiac m/t Stock Cam', + NULL, + 1 + ), + ( + 1100102, + 1100001, + 'Pontiac Trophy (HP) Cam', + NULL, + 2 + ), + (1100103, 1100001, 'Ford SB HP Cam', NULL, 2), + ( + 1100104, + 1100001, + 'Ford SB Special Stock Cam', + NULL, + 1 + ), + ( + 1100105, + 1100001, + 'Ford Flathead Power Cam', + NULL, + 2 + ), + ( + 1100106, + 1100001, + 'Buick SB Special Stock Cam', + NULL, + 1 + ), + ( + 1100107, + 1100001, + 'Cadillac BB Midrange Cam', + NULL, + 2 + ), + ( + 1100108, + 1100001, + 'Chevrolet BB Midrange Cam', + NULL, + 2 + ), + ( + 1100109, + 1100001, + 'Chevrolet SB Special Stock Cam', + NULL, + 1 + ), + ( + 1100110, + 1100001, + 'Chrysler BB Midrange Cam', + NULL, + 2 + ), + ( + 1100111, + 1100001, + 'Oldsmobile BB Special Stock Cam', + NULL, + 1 + ), + (1100112, 1100001, 'Pontiac Midrange Cam', NULL, 2), + ( + 1100113, + 1100001, + 'Shade Tree Chevrolet SB Stock Cam', + NULL, + 1 + ), + ( + 1100114, + 1100001, + 'Cadillac L-Head Camshaft', + NULL, + 1 + ), + ( + 1100115, + 1100001, + 'Buick Nailhead Stock 322 Camshaft', + NULL, + 1 + ), + ( + 1100116, + 1100001, + 'Ford Cleveland Block Stock Camshaft', + NULL, + 1 + ), + ( + 1100117, + 1100001, + 'Ford Cleveland Block Boss Camshaft', + NULL, + 2 + ), + ( + 1100118, + 1100001, + 'Ford Cleveland Block HO Camshaft', + NULL, + 2 + ), + ( + 1100119, + 1100001, + 'Ford 385 Block Stock Camshaft', + NULL, + 1 + ), + ( + 1100120, + 1100001, + 'Ford 385 Block Special Stock Camshaft', + NULL, + 1 + ), + ( + 1100121, + 1100001, + 'Ford Y Stock Camshaft', + NULL, + 1 + ), + ( + 1100122, + 1100001, + 'Chevrolet W Stock Camshaft', + NULL, + 1 + ), + ( + 1100123, + 1100001, + 'Chevrolet W HP Camshaft', + NULL, + 2 + ), + ( + 1100124, + 1100001, + 'Chevrolet W Z11 Camshaft', + NULL, + 3 + ), + ( + 1100125, + 1100001, + 'Buick Nailhead Power Plus', + NULL, + 2 + ), + (1100126, 1100001, 'Buick Nailhead HP', NULL, 2), + ( + 1100127, + 1100001, + 'Cadillac L-Head Power Plus', + NULL, + 2 + ), + (1100128, 1100001, 'Cadillac L-Head HP', NULL, 2), + (1100129, 1100001, 'Ford Y E4 Low Range', NULL, 2), + ( + 1100130, + 1100001, + 'Edelbrock Performer Plus AMC Camshaft', + NULL, + 3 + ), + (1100131, 1100001, 'AMC WG Camshaft', NULL, 2), + ( + 1100132, + 1100001, + 'Edelbrock Performer Plus Olds SB HP Cam', + NULL, + 3 + ), + ( + 1100133, + 1100001, + 'Edelbrock Performer Plus Olds BB HP Cam', + NULL, + 3 + ), + ( + 1100134, + 1100001, + 'Fyne Grind Y Block Street 36 Cam', + NULL, + 1 + ), + ( + 1100135, + 1100001, + 'Fyne Grind Y Block Street 39 Cam', + NULL, + 1 + ), + ( + 1100136, + 1100001, + 'Fyne Grind Y Block Street 40 Cam', + NULL, + 1 + ), + ( + 1100137, + 1100001, + 'Fyne Grind Y Block Super 39 HP Cam', + NULL, + 2 + ), + ( + 1100138, + 1100001, + 'Fyne Grind Y Block Super 40 HP Cam', + NULL, + 2 + ), + ( + 1100139, + 1100001, + 'Fyne Grind Y Block Super 43 HP Cam', + NULL, + 2 + ), + ( + 1100140, + 1100001, + 'Fyne Grind Y Block Super 44 HP Cam', + NULL, + 2 + ), + ( + 1100141, + 1100001, + 'Fyne Grind Y Block Ultra 44 DP Cam', + NULL, + 3 + ), + ( + 1100142, + 1100001, + 'Fyne Grind Y Block Ultra 48 DP Cam', + NULL, + 3 + ), + ( + 1100143, + 1100001, + 'Fyne Grind Buick Nailhead Street 45 Cam', + NULL, + 2 + ), + ( + 1100144, + 1100001, + 'Fyne Grind Buick Nailhead Street 47 Cam', + NULL, + 2 + ), + ( + 1100145, + 1100001, + 'Fyne Grind Buick Nailhead Street 48 Cam', + NULL, + 2 + ), + ( + 1100146, + 1100001, + 'Fyne Grind Buick Nailhead Super 47 Cam', + NULL, + 3 + ), + ( + 1100147, + 1100001, + 'Fyne Grind Buick Nailhead Super 49 Cam', + NULL, + 3 + ), + ( + 1100148, + 1100001, + 'Buick Nailhead Stock 401 Cam', + NULL, + 1 + ), + ( + 1100149, + 1100001, + 'Buick Nailhead Stock 425 Cam', + NULL, + 1 + ), + ( + 1100150, + 1100001, + 'Oldfield Ford 385 Street King Cam', + NULL, + 2 + ), + ( + 1100151, + 1100001, + 'Oldfield Cleveland Street King Cam', + NULL, + 2 + ), + ( + 1100152, + 1100001, + 'Oldfield Cleveland New Boss Cam', + NULL, + 3 + ), + ( + 1100153, + 1100001, + 'Oldfield Ford 385 New Boss Cam', + NULL, + 3 + ), + ( + 1100154, + 1100001, + 'Walter Hemi Blueprint Classic Cam', + NULL, + 2 + ), + ( + 1100155, + 1100001, + 'Walter Hemi Extra Stock Cam', + NULL, + 3 + ), + ( + 1100156, + 1100001, + 'Leland Cadillac BB Highway Plus Cam', + NULL, + 1 + ), + ( + 1100157, + 1100001, + 'Leland Cadillac BB Streeter Cam', + NULL, + 2 + ), + ( + 1100158, + 1100001, + 'Leland Cadillac Racing Cam', + NULL, + 4 + ), + ( + 1100159, + 1100001, + 'Walter Hemi Bighorn Cam', + NULL, + 4 + ), + ( + 1100160, + 1100001, + 'Chevrolet Chevy SB Corvette (220hp) Cam', + NULL, + 1 + ), + ( + 1100161, + 1100001, + 'Ford 88 Flathead Camshaft', + NULL, + 2 + ), + ( + 1200001, + 1200001, + 'Chevrolet BB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200002, + 1200001, + 'Chrysler SB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200003, + 1200001, + 'Ford BB Stock Hydraulic Valve Train', + NULL, + 1 + ), + ( + 1200004, + 1200001, + 'Crane PowerMax Ford BB VT', + NULL, + 2 + ), + ( + 1200005, + 1200001, + 'Ford 385 Boss Solid Lifter Valve Train', + NULL, + 2 + ), + ( + 1200006, + 1200001, + 'Chevrolet BB Hi-Lift Hydraulic Valve Train', + NULL, + 2 + ), + ( + 1200007, + 1200001, + 'Chrysler BB Max Wedge III Valve Train', + NULL, + 3 + ), + ( + 1200008, + 1200001, + 'Crane Energizer Ford BB VT', + NULL, + 2 + ), + ( + 1200009, + 1200001, + 'Reed T-UL Solid Lifter Ford BB Valvetrain', + NULL, + 2 + ), + ( + 1200010, + 1200001, + 'Reed R-ULX Roller Lifter Ford BB Valvetrain', + NULL, + 3 + ), + ( + 1200011, + 1200001, + 'Reed TM Hydraulic Lifter Ford BB Valvetrain', + NULL, + 2 + ), + ( + 1200012, + 1200001, + 'Buick BB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200013, + 1200001, + 'Buick Nailhead Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200014, + 1200001, + 'Cadillac BB Stock Valvetrain', + NULL, + 1 + ), + ( + 1200015, + 1200001, + 'Chrysler BB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200016, + 1200001, + 'Chrysler SB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200017, + 1200001, + 'Ford SB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200018, + 1200001, + 'Ford Flathead Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200019, + 1200001, + 'Olds BB Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200020, + 1200001, + 'Olds SB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200021, + 1200001, + 'AMC Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200022, + 1200001, + 'Buick SB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200023, + 1200001, + 'Chevrolet SB Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200024, + 1200001, + 'Chevrolet BB Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200025, + 1200001, + 'Chevrolet BB SS Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200026, + 1200001, + 'Pontiac Ram Air V Solid Lifter Valvetrain', + NULL, + 3 + ), + ( + 1200027, + 1200001, + 'Ford Y Truck Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200028, + 1200001, + 'Ford BB Stock Mechanical Lifter Valvetrain', + NULL, + 1 + ), + ( + 1200029, + 1200001, + 'Ford BB Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200030, + 1200001, + 'Ford BB Cammer Valvetrain', + NULL, + 4 + ), + ( + 1200031, + 1200001, + 'Ford BB SCJ Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200032, + 1200001, + 'Chrysler BB Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200033, + 1200001, + 'Chrysler SB Stock Mechanical Lifter Valvetrain', + NULL, + 1 + ), + ( + 1200034, + 1200001, + 'Chevrolet SB Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200035, + 1200001, + 'Pontiac Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200036, + 1200001, + 'AMC Group 19 Mechanical Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200037, + 1200001, + 'Pontiac SD Mech Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200038, + 1200001, + 'Ford SB HP Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200039, + 1200001, + 'Chrysler Hemi Solid Lifter Valvetrain', + NULL, + 2 + ), + ( + 1200040, + 1200001, + 'Shade Tree Chrysler Hemi Valvetrain', + NULL, + 1 + ), + ( + 1200041, + 1200001, + 'Chrysler Hemi Hydraulic Valvetrain', + NULL, + 2 + ), + ( + 1200042, + 1200001, + 'Cadillac L-Head Valvetrain', + NULL, + 1 + ), + ( + 1200043, + 1200001, + 'Ford Cleveland Block Stock Valvetrain', + NULL, + 1 + ), + ( + 1200044, + 1200001, + 'Ford Cleveland Block Boss Valvetrain', + NULL, + 2 + ), + ( + 1200045, + 1200001, + 'Ford 385 Block Stock Valvetrain', + NULL, + 1 + ), + ( + 1200046, + 1200001, + 'Ford 385 Block SCJ Valvetrain', + NULL, + 2 + ), + ( + 1200047, + 1200001, + 'Ford 385 Block Boss Hydraulic Valvetrain', + NULL, + 2 + ), + ( + 1200048, + 1200001, + 'Ford Y Stock Solid Valvetrain', + NULL, + 1 + ), + ( + 1200049, + 1200001, + 'Chevrolet W Stock Hydraulic Valvetrain', + NULL, + 1 + ), + ( + 1200050, + 1200001, + 'Chevrolet W STT Solid Valvetrain', + NULL, + 2 + ), + ( + 1200051, + 1200001, + 'Buick Nailhead Solid Valvetrain', + NULL, + 2 + ), + ( + 1200052, + 1200001, + 'Buick SB Solid Valvetrain', + NULL, + 2 + ), + ( + 1200053, + 1200001, + 'Buick BB Solid Valvetrain', + NULL, + 2 + ), + ( + 1200054, + 1200001, + 'Cadillac L-Head Super Hydraulic Valvetrain', + NULL, + 2 + ), + ( + 1200055, + 1200001, + 'Ford Flathead Super Hydraulic Valvetrain', + NULL, + 2 + ), + ( + 1200056, + 1200001, + 'Cadillac Solid Valvetrain', + NULL, + 2 + ), + ( + 1200057, + 1200001, + 'Oldsmobile SB Solid Valvetrain', + NULL, + 2 + ), + ( + 1200058, + 1200001, + 'Oldsmobile BB Solid Valvetrain', + NULL, + 2 + ), + ( + 1200059, + 1200001, + 'Edelbrock AMC Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200060, + 1200001, + 'Edelbrock Chevrolet SB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200061, + 1200001, + 'Edelbrock Chevrolet BB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200062, + 1200001, + 'Edelbrock Chrysler SB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200063, + 1200001, + 'Edelbrock Chrysler BB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200064, + 1200001, + 'Edelbrock Ford SB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200065, + 1200001, + 'Edelbrock Ford C Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200066, + 1200001, + 'Edelbrock Ford BB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200067, + 1200001, + 'Edelbrock Ford 385 Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200068, + 1200001, + 'Edelbrock Olds SB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200069, + 1200001, + 'Edelbrock Olds BB Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200070, + 1200001, + 'Edelbrock Pontiac Hydraulic Lifters', + NULL, + 2 + ), + ( + 1200071, + 1200001, + 'Crane PowerMax Roller Ford BB VT', + NULL, + 3 + ), + ( + 1200072, + 1200001, + 'Crane PowerMax AMC VT', + NULL, + 2 + ), + ( + 1200073, + 1200001, + 'Crane PowerMax Roller AMC VT', + NULL, + 3 + ), + ( + 1200074, + 1200001, + 'Crane Energizer Buick SB VT', + NULL, + 2 + ), + ( + 1200075, + 1200001, + 'Crane PowerMax Buick SB VT', + NULL, + 2 + ), + ( + 1200076, + 1200001, + 'Crane Energizer Chevrolet SB VT', + NULL, + 2 + ), + ( + 1200077, + 1200001, + 'Crane PowerMax Chevrolet SB VT', + NULL, + 2 + ), + ( + 1200078, + 1200001, + 'Crane PowerMax Roller Chevrolet SB VT', + NULL, + 3 + ), + ( + 1200079, + 1200001, + 'Crane Energizer Chevrolet BB VT', + NULL, + 2 + ), + ( + 1200080, + 1200001, + 'Crane PowerMax Chevrolet BB VT', + NULL, + 2 + ), + ( + 1200081, + 1200001, + 'Crane PowerMax Roller Chevrolet BB VT', + NULL, + 3 + ), + ( + 1200082, + 1200001, + 'Crane Energizer Chevrolet W VT', + NULL, + 2 + ), + ( + 1200083, + 1200001, + 'Crane PowerMax Chevrolet W VT', + NULL, + 2 + ), + ( + 1200084, + 1200001, + 'Crane PowerMax Roller Chevrolet W VT', + NULL, + 3 + ), + ( + 1200085, + 1200001, + 'Crane Energizer Chrysler SB VT', + NULL, + 2 + ), + ( + 1200086, + 1200001, + 'Crane PowerMax Chrysler SB VT', + NULL, + 2 + ), + ( + 1200087, + 1200001, + 'Crane PowerMax Roller Chrysler SB VT', + NULL, + 3 + ), + ( + 1200088, + 1200001, + 'Crane Energizer Chrysler BB VT', + NULL, + 2 + ), + ( + 1200089, + 1200001, + 'Crane PowerMax Chrysler BB VT', + NULL, + 2 + ), + ( + 1200090, + 1200001, + 'Crane PowerMax Roller Chrysler BB VT', + NULL, + 3 + ), + ( + 1200091, + 1200001, + 'Crane PowerMax Chrysler Hemi VT', + NULL, + 2 + ), + ( + 1200092, + 1200001, + 'Crane PowerMax Roller Chrysler Hemi VT', + NULL, + 3 + ), + ( + 1200093, + 1200001, + 'Crane Energizer Ford SB VT', + NULL, + 2 + ), + ( + 1200094, + 1200001, + 'Crane PowerMax Ford SB VT', + NULL, + 2 + ), + ( + 1200095, + 1200001, + 'Crane PowerMax Roller Ford SB VT', + NULL, + 3 + ), + ( + 1200096, + 1200001, + 'Crane Energizer Ford C VT', + NULL, + 2 + ), + ( + 1200097, + 1200001, + 'Crane PowerMax Ford C VT', + NULL, + 2 + ), + ( + 1200098, + 1200001, + 'Crane PowerMax Roller Ford C VT', + NULL, + 3 + ), + ( + 1200099, + 1200001, + 'Crane Energizer Ford 385 VT', + NULL, + 2 + ), + ( + 1200100, + 1200001, + 'Crane PowerMax Ford 385 VT', + NULL, + 2 + ), + ( + 1200101, + 1200001, + 'Crane PowerMax Roller Ford 385 VT', + NULL, + 3 + ), + ( + 1200102, + 1200001, + 'Crane Energizer Olds SB VT', + NULL, + 2 + ), + ( + 1200103, + 1200001, + 'Crane PowerMax Olds SB VT', + NULL, + 2 + ), + ( + 1200104, + 1200001, + 'Crane PowerMax Roller Olds SB VT', + NULL, + 3 + ), + ( + 1200105, + 1200001, + 'Crane Energizer Pontiac VT', + NULL, + 2 + ), + ( + 1200106, + 1200001, + 'Crane PowerMax Pontiac VT', + NULL, + 2 + ), + ( + 1200107, + 1200001, + 'Crane PowerMax Roller Pontiac VT', + NULL, + 3 + ), + ( + 1200108, + 1200001, + 'Crane Energizer Olds BB VT', + NULL, + 2 + ), + ( + 1200109, + 1200001, + 'Crane PowerMax Olds BB VT', + NULL, + 2 + ), + ( + 1200110, + 1200001, + 'Crane PowerMax Roller Olds BB VT', + NULL, + 3 + ), + ( + 1200111, + 1200001, + 'Oldfield Y Block Street King Solid VT', + NULL, + 2 + ), + ( + 1200112, + 1200001, + 'Oldfield Y Block Strip King Solid VT', + NULL, + 2 + ), + ( + 1200113, + 1200001, + 'Oldfield Y Block Race Pro Roller VT', + NULL, + 2 + ), + ( + 1200114, + 1200001, + 'Quik Lift Y Block Solid VT', + NULL, + 2 + ), + ( + 1200115, + 1200001, + 'Quik Lift Y Block Performance Solid VT', + NULL, + 2 + ), + ( + 1200116, + 1200001, + 'Quik Lift Y Block Race Roller VT', + NULL, + 2 + ), + ( + 1200117, + 1200001, + 'Milloy Y Block Speed Lifter Solid VT', + NULL, + 2 + ), + ( + 1200118, + 1200001, + 'Milloy Y Block Super Lifter Solid VT', + NULL, + 2 + ), + ( + 1200119, + 1200001, + 'Milloy Chevy SB Speed Lifter Solid VT', + NULL, + 2 + ), + ( + 1200120, + 1200001, + 'Milloy Chevy SB Street Plus Hydraulic VT', + NULL, + 1 + ), + ( + 1200121, + 1200001, + 'Milloy Chevy SB Premier Roller VT', + NULL, + 3 + ), + ( + 1200122, + 1200001, + 'Quik Lift Chevy SB Performance Solid VT', + NULL, + 2 + ), + ( + 1200123, + 1200001, + 'Quik Lift Chevy SB Performance Hydraulic VT', + NULL, + 2 + ), + ( + 1200124, + 1200001, + 'Quik Lift Chevy SB Race Roller VT', + NULL, + 2 + ), + ( + 1200125, + 1200001, + 'Milloy Buick Nailhead Super Lift Solid VT', + NULL, + 2 + ), + ( + 1200126, + 1200001, + 'Quik Lift Buick Nailhead Perf. Hydraulic VT', + NULL, + 2 + ), + ( + 1200127, + 1200001, + 'Dunbar Buick Nailhead Craftsmith Roller VT', + NULL, + 2 + ), + ( + 1200128, + 1200001, + 'Quik Lift Buick Nailhead Race Roller VT', + NULL, + 2 + ), + ( + 1200129, + 1200001, + 'Quik Lift Buick Nailhead Solid VT', + NULL, + 2 + ), + ( + 1200130, + 1200001, + 'Milloy Buick Nailhead Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200131, + 1200001, + 'Dunbar Buick Nailhead Craftsmith Hydraulic VT', + NULL, + 1 + ), + ( + 1200132, + 1200001, + 'Dunbar Buick Nailhead Craftsmith Solid VT', + NULL, + 2 + ), + ( + 1200133, + 1200001, + 'Oldfield Ford SB Street King Solid VT', + NULL, + 2 + ), + ( + 1200134, + 1200001, + 'Oldfield Ford SB Strip King Solid VT', + NULL, + 2 + ), + ( + 1200135, + 1200001, + 'Milloy Ford SB Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200136, + 1200001, + 'Millory Ford SB Strip King Solid VT', + NULL, + 2 + ), + ( + 1200137, + 1200001, + 'Quik Lift Ford SB Solid VT', + NULL, + 2 + ), + ( + 1200138, + 1200001, + 'Quik Lift Ford SB Performance Hydraulic VT', + NULL, + 2 + ), + ( + 1200139, + 1200001, + 'Quik Lift Ford SB Race Rolller VT', + NULL, + 2 + ), + ( + 1200140, + 1200001, + 'Milloy Ford SB Super Lift Solid VT', + NULL, + 2 + ), + ( + 1200141, + 1200001, + 'Milloy Chrysler SB Super Lift Solid VT', + NULL, + 2 + ), + ( + 1200142, + 1200001, + 'Milloy Chrysler SB Premier Roller VT', + NULL, + 3 + ), + ( + 1200143, + 1200001, + 'Quik Lift Chrysler SB Race Roller VT', + NULL, + 2 + ), + ( + 1200144, + 1200001, + 'Milloy Pontiac Premier Roller VT', + NULL, + 3 + ), + ( + 1200145, + 1200001, + 'Quik Lift Pontiac Race Roller VT', + NULL, + 3 + ), + ( + 1200146, + 1200001, + 'Milloy Cleveland Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200147, + 1200001, + 'Milloy Cleveland Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200148, + 1200001, + 'Milloy Cleveland Premier Roller VT', + NULL, + 4 + ), + ( + 1200149, + 1200001, + 'Oldfield Cleveland Strip King Roller VT', + NULL, + 3 + ), + ( + 1200150, + 1200001, + 'Oldfield Cleveland Track King Roller VT', + NULL, + 4 + ), + ( + 1200151, + 1200001, + 'Milloy Ford 385 Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200152, + 1200001, + 'Milloy Ford 385 Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200153, + 1200001, + 'Milloy Ford 385 Premier Roller VT', + NULL, + 4 + ), + ( + 1200154, + 1200001, + 'Oldfield Ford 385 Strip King Roller VT', + NULL, + 3 + ), + ( + 1200155, + 1200001, + 'Oldfield Ford 385 Track King Roller VT', + NULL, + 4 + ), + ( + 1200156, + 1200001, + 'Milloy Hemi Speed Lift Hydraulic VT', + NULL, + 2 + ), + ( + 1200157, + 1200001, + 'Milloy Hemi Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200158, + 1200001, + 'Milloy Hemi Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200159, + 1200001, + 'Millloy Hemi Premier Roller VT', + NULL, + 4 + ), + ( + 1200160, + 1200001, + 'Quik Lift Hemi Race Roller VT', + NULL, + 3 + ), + ( + 1200161, + 1200001, + 'Millloy Cadillac BB Street Plus Hydraulic VT', + NULL, + 1 + ), + ( + 1200162, + 1200001, + 'Milloy Cadillac BB Speed Lift Hydraulic VT', + NULL, + 2 + ), + ( + 1200163, + 1200001, + 'Milloy Cadillac BB Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200164, + 1200001, + 'Milloy Cadillac BB Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200165, + 1200001, + 'Milloy Cadillac BB Premier Roller VT', + NULL, + 4 + ), + ( + 1200166, + 1200001, + 'Quik Lift Cadillac BB Perf. Hydraulic VT', + NULL, + 2 + ), + ( + 1200167, + 1200001, + 'Quik Lift Cadillac BB Perf. Solid VT', + NULL, + 2 + ), + ( + 1200168, + 1200001, + 'Quik Lift Cadillac BB Race Roller VT', + NULL, + 3 + ), + ( + 1200169, + 1200001, + 'Milloy Chevy W Speed Lift Hydraulic VT', + NULL, + 2 + ), + ( + 1200170, + 1200001, + 'Milloy Chevy W Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200171, + 1200001, + 'Milloy Chevy W Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200172, + 1200001, + 'Milloy Chevy W Premier Roller VT', + NULL, + 4 + ), + ( + 1200173, + 1200001, + 'Quik Lift Chevy W Perf. Hydraulic VT', + NULL, + 2 + ), + ( + 1200174, + 1200001, + 'Quik Lift Chevy W Perf. Solid VT', + NULL, + 2 + ), + ( + 1200175, + 1200001, + 'Quik Lift Chevy W Race Roller VT', + NULL, + 3 + ), + ( + 1200176, + 1200001, + 'Milloy AMC Speed Lift Hydraulic VT', + NULL, + 2 + ), + ( + 1200177, + 1200001, + 'Milloy AMC Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200178, + 1200001, + 'Milloy AMC Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200179, + 1200001, + 'Milloy AMC Premier Roller VT', + NULL, + 4 + ), + ( + 1200180, + 1200001, + 'Quik Lift AMC Perf. Hydraulic VT', + NULL, + 2 + ), + ( + 1200181, + 1200001, + 'Quik Lift AMC Perf. Solid VT', + NULL, + 2 + ), + ( + 1200182, + 1200001, + 'Quik Lift AMC Race Roller VT', + NULL, + 3 + ), + ( + 1200183, + 1200001, + 'Milloy Olds BB Speed Lift Hydraulic VT', + NULL, + 2 + ), + ( + 1200184, + 1200001, + 'Milloy Olds BB Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200185, + 1200001, + 'Milloy Olds BB Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200186, + 1200001, + 'Milloy Olds BB Premier Roller VT', + NULL, + 4 + ), + ( + 1200187, + 1200001, + 'Milloy Chrysler BB Speed Lift Hydraulic VT', + NULL, + 2 + ), + ( + 1200188, + 1200001, + 'Milloy Chrysler BB Speed Lift Solid VT', + NULL, + 2 + ), + ( + 1200189, + 1200001, + 'Milloy Chrysler BB Super Lift Solid VT', + NULL, + 3 + ), + ( + 1200190, + 1200001, + 'Milloy Chrysler BB Premier Roller VT', + NULL, + 4 + ), + ( + 1200191, + 1200001, + 'Milloy Chevy BB Premier Roller VT', + NULL, + 4 + ), + ( + 1200192, + 1200001, + 'Quik Lift Chevy BB Race Roller VT', + NULL, + 3 + ), + ( + 1200193, + 1200001, + 'Crane PowerMax Ford Flathead VT', + NULL, + 2 + ); \ No newline at end of file diff --git a/migrations/0021-seedBrandedPart.sql b/migrations/0021-seedBrandedPart.sql new file mode 100644 index 000000000..b327f8974 --- /dev/null +++ b/migrations/0021-seedBrandedPart.sql @@ -0,0 +1,32092 @@ +INSERT INTO + branded_part ( + branded_part_id, + part_type_id, + model_id, + mfg_date, + qty_avail, + retail_price, + max_item_wear, + engine_block_family_id + ) +VALUES + ( + 101, + 101, + 1, + '1932-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 102, + 102, + 7, + '1940-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 103, + 103, + 14, + '1953-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 104, + 104, + 21, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 105, + 105, + 25, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 106, + 106, + 47, + '1957-01-01 00:00:00.000000', + 250, + 0, + 30000, + 0 + ), + ( + 107, + 107, + 32, + '1963-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 108, + 108, + 509, + '1965-01-01 00:00:00.000000', + 250, + 0, + 30000, + 0 + ), + ( + 109, + 109, + 40, + '1964-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 110, + 110, + 974, + '1969-01-01 00:00:00.000000', + 125, + 0, + 30000, + 0 + ), + ( + 111, + 111, + 36, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 112, + 112, + 2, + '1949-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 113, + 113, + 3, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 114, + 114, + 8, + '1957-01-01 00:00:00.000000', + 60, + 0, + 30000, + 0 + ), + ( + 115, + 115, + 16, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 116, + 116, + 48, + '1964-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 117, + 117, + 26, + '1963-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 118, + 118, + 49, + '1958-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 119, + 119, + 33, + '1967-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 120, + 120, + 37, + '1967-01-01 00:00:00.000000', + 250, + 0, + 30000, + 0 + ), + ( + 121, + 121, + 41, + '1970-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 122, + 122, + 45, + '1970-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 123, + 123, + 46, + '1970-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 124, + 124, + 4, + '1947-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 125, + 125, + 9, + '1959-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 126, + 126, + 10, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 127, + 127, + 5, + '1955-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 128, + 128, + 6, + '1966-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 129, + 129, + 12, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 130, + 130, + 20, + '1973-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 131, + 131, + 172, + '1969-01-01 00:00:00.000000', + 250, + 0, + 30000, + 0 + ), + ( + 132, + 132, + 173, + '1969-01-01 00:00:00.000000', + 250, + 0, + 30000, + 0 + ), + ( + 133, + 133, + 174, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 134, + 134, + 175, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 135, + 135, + 176, + '1971-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 153, + 138, + 526, + '1999-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 159, + 104, + 964, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 171, + 142, + 971, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 173, + 146, + 1051, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 174, + 147, + 1052, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 175, + 148, + 1053, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 176, + 149, + 1054, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 177, + 150, + 1055, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 178, + 151, + 1056, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 179, + 152, + 1057, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 180, + 153, + 1058, + '1990-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 184, + 157, + 990, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 190, + 154, + 980, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 208, + 127, + 1202, + '1955-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 236, + 113, + 1203, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 30000, + 0 + ), + ( + 320, + 207, + 2153, + '1966-01-01 00:00:00.000000', + 0, + 0, + 15000, + 0 + ), + ( + 335, + 210, + 2179, + '1970-01-01 00:00:00.000000', + 250, + 0, + 1500, + 0 + ), + ( + 336, + 211, + 2180, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 337, + 212, + 2181, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 338, + 213, + 2182, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 339, + 214, + 2183, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 340, + 215, + 2184, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 341, + 216, + 2185, + '1971-01-01 00:00:00.000000', + 250, + 0, + 1500, + 0 + ), + ( + 342, + 217, + 2186, + '1964-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 343, + 218, + 2187, + '1967-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 344, + 219, + 2188, + '1967-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 345, + 220, + 2189, + '1967-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 346, + 221, + 2190, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 347, + 222, + 2191, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 348, + 223, + 2192, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 349, + 224, + 2193, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 350, + 225, + 2194, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 351, + 226, + 1230, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 352, + 227, + 2196, + '1973-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 353, + 228, + 2197, + '1973-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 354, + 124, + 4, + '1947-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 355, + 112, + 2, + '1949-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 356, + 103, + 14, + '1953-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 357, + 104, + 21, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 358, + 105, + 25, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 359, + 106, + 47, + '1957-01-01 00:00:00.000000', + 250, + 0, + 1500, + 0 + ), + ( + 360, + 113, + 3, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 361, + 115, + 16, + '1957-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 362, + 114, + 8, + '1957-01-01 00:00:00.000000', + 60, + 0, + 1500, + 0 + ), + ( + 363, + 118, + 49, + '1958-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 364, + 117, + 26, + '1963-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 365, + 116, + 48, + '1964-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 366, + 109, + 40, + '1964-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 367, + 108, + 509, + '1964-01-01 00:00:00.000000', + 250, + 0, + 1500, + 0 + ), + ( + 368, + 128, + 6, + '1966-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 369, + 119, + 33, + '1967-01-01 00:00:00.000000', + 1000, + 0, + 1500, + 0 + ), + ( + 370, + 120, + 37, + '1967-01-01 00:00:00.000000', + 250, + 0, + 1500, + 0 + ), + ( + 371, + 126, + 2215, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 372, + 129, + 12, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 373, + 133, + 174, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 374, + 140, + 2217, + '1967-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 375, + 106, + 2367, + '1957-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 377, + 113, + 2369, + '1957-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 378, + 127, + 2370, + '1955-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 379, + 103, + 2371, + '1953-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 383, + 129, + 2376, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 384, + 108, + 2377, + '1964-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 385, + 106, + 2378, + '1957-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 386, + 127, + 2379, + '1955-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 387, + 121, + 2380, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 388, + 109, + 2381, + '1964-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 389, + 132, + 2382, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 390, + 113, + 2383, + '1957-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 391, + 103, + 2384, + '1953-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 392, + 131, + 2385, + '1969-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 393, + 105, + 2386, + '1957-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 394, + 120, + 2387, + '1967-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 395, + 112, + 2425, + '1949-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 396, + 113, + 2426, + '1957-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 397, + 128, + 2427, + '1966-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 398, + 125, + 2428, + '1959-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 399, + 117, + 2429, + '1963-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 400, + 108, + 2430, + '1964-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 401, + 134, + 2431, + '1970-01-01 00:00:00.000000', + 0, + 0, + 1500, + 0 + ), + ( + 402, + 127, + 5, + '1955-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 403, + 140, + 2217, + '1967-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 404, + 207, + 2153, + '1966-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 405, + 117, + 26, + '1963-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 406, + 207, + 2153, + '1966-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 407, + 213, + 2182, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 408, + 111, + 36, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 409, + 220, + 2189, + '1967-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 410, + 130, + 20, + '1973-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 411, + 132, + 2872, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 412, + 111, + 36, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 413, + 114, + 8, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 414, + 114, + 2878, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 415, + 114, + 3003, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 416, + 133, + 3004, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 417, + 108, + 3005, + '1964-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 418, + 121, + 3009, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 419, + 112, + 3006, + '1949-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 420, + 103, + 3010, + '1953-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 421, + 118, + 3011, + '1958-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 422, + 113, + 3012, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 423, + 127, + 3013, + '1955-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 424, + 218, + 3014, + '1967-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 425, + 142, + 3015, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 426, + 134, + 3016, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 427, + 124, + 3017, + '1947-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 428, + 114, + 3018, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 429, + 115, + 3603, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 430, + 105, + 3604, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 431, + 128, + 3605, + '1966-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 432, + 101, + 3606, + '1932-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 433, + 102, + 3607, + '1940-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 434, + 104, + 3608, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 435, + 106, + 3609, + '1957-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 436, + 109, + 3610, + '1964-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 437, + 211, + 3611, + '1969-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 438, + 111, + 3612, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 439, + 116, + 3613, + '1964-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 440, + 121, + 3614, + '1970-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 441, + 117, + 3615, + '1963-01-01 00:00:00.000000', + 0, + 0, + 30000, + 0 + ), + ( + 1001, + 1001, + 2027, + '1932-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 2001, + 2001, + 2028, + '1932-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 4001, + 4001, + 2029, + '1999-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 5001, + 5001, + 2030, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 6001, + 6001, + 1742, + '1999-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 10001, + 10001, + 622, + '1960-01-01 00:00:00.000000', + 1000, + 138, + 30000, + 0 + ), + ( + 10002, + 10002, + 623, + '1960-01-01 00:00:00.000000', + 1000, + 232, + 30000, + 0 + ), + ( + 10003, + 10003, + 624, + '1960-01-01 00:00:00.000000', + 500, + 388, + 30000, + 0 + ), + ( + 10004, + 10004, + 1716, + '1960-01-01 00:00:00.000000', + 1000, + 107, + 30000, + 0 + ), + ( + 10005, + 10005, + 1717, + '1960-01-01 00:00:00.000000', + 1000, + 138, + 30000, + 0 + ), + ( + 10006, + 10006, + 625, + '1960-01-01 00:00:00.000000', + 1000, + 169, + 30000, + 0 + ), + ( + 10007, + 10007, + 626, + '1960-01-01 00:00:00.000000', + 1000, + 263, + 30000, + 0 + ), + ( + 10008, + 10008, + 627, + '1960-01-01 00:00:00.000000', + 250, + 419, + 30000, + 0 + ), + ( + 10009, + 10009, + 1718, + '1960-01-01 00:00:00.000000', + 1000, + 85, + 30000, + 0 + ), + ( + 10010, + 10010, + 615, + '1960-01-01 00:00:00.000000', + 1000, + 116, + 30000, + 0 + ), + ( + 10011, + 10011, + 616, + '1960-01-01 00:00:00.000000', + 1000, + 210, + 30000, + 0 + ), + ( + 10012, + 10012, + 617, + '1960-01-01 00:00:00.000000', + 500, + 366, + 30000, + 0 + ), + ( + 10013, + 10013, + 1719, + '1960-01-01 00:00:00.000000', + 1000, + 116, + 30000, + 0 + ), + ( + 10014, + 10014, + 618, + '1960-01-01 00:00:00.000000', + 1000, + 147, + 30000, + 0 + ), + ( + 10015, + 10015, + 619, + '1960-01-01 00:00:00.000000', + 1000, + 241, + 30000, + 0 + ), + ( + 10016, + 10016, + 1720, + '1960-01-01 00:00:00.000000', + 250, + 397, + 30000, + 0 + ), + ( + 10017, + 10017, + 629, + '1960-01-01 00:00:00.000000', + 250, + 329, + 30000, + 0 + ), + ( + 10018, + 10018, + 630, + '1960-01-01 00:00:00.000000', + 125, + 485, + 30000, + 0 + ), + ( + 10019, + 10019, + 621, + '1960-01-01 00:00:00.000000', + 250, + 307, + 30000, + 0 + ), + ( + 10020, + 10020, + 1721, + '1960-01-01 00:00:00.000000', + 125, + 463, + 30000, + 0 + ), + ( + 10021, + 10021, + 633, + '1960-01-01 00:00:00.000000', + 125, + 426, + 30000, + 0 + ), + ( + 10022, + 10022, + 634, + '1960-01-01 00:00:00.000000', + 60, + 583, + 30000, + 0 + ), + ( + 10023, + 10023, + 635, + '1960-01-01 00:00:00.000000', + 0, + 1083, + 30000, + 0 + ), + ( + 10024, + 10024, + 636, + '1960-01-01 00:00:00.000000', + 0, + 1833, + 30000, + 0 + ), + ( + 10025, + 10025, + 632, + '1960-01-01 00:00:00.000000', + 250, + 333, + 30000, + 0 + ), + ( + 10026, + 10026, + 631, + '1960-01-01 00:00:00.000000', + 250, + 301, + 30000, + 0 + ), + ( + 10027, + 10027, + 1722, + '1960-01-01 00:00:00.000000', + 125, + 858, + 30000, + 0 + ), + ( + 10028, + 10028, + 1723, + '1960-01-01 00:00:00.000000', + 60, + 1108, + 30000, + 0 + ), + ( + 10029, + 10029, + 1724, + '1960-01-01 00:00:00.000000', + 0, + 1608, + 30000, + 0 + ), + ( + 10030, + 10030, + 1725, + '1960-01-01 00:00:00.000000', + 0, + 2358, + 30000, + 0 + ), + ( + 10031, + 10031, + 1752, + '1990-01-01 00:00:00.000000', + 60, + 951, + 30000, + 0 + ), + ( + 10032, + 10044, + 2598, + '1990-01-01 00:00:00.000000', + 125, + 826, + 30000, + 0 + ), + ( + 10033, + 10043, + 2597, + '1990-01-01 00:00:00.000000', + 500, + 204, + 30000, + 0 + ), + ( + 10034, + 10042, + 2596, + '1990-01-01 00:00:00.000000', + 125, + 919, + 30000, + 0 + ), + ( + 10035, + 10041, + 2595, + '1990-01-01 00:00:00.000000', + 60, + 897, + 30000, + 0 + ), + ( + 10036, + 10040, + 2594, + '1990-01-01 00:00:00.000000', + 125, + 888, + 30000, + 0 + ), + ( + 10037, + 10039, + 2593, + '1990-01-01 00:00:00.000000', + 125, + 866, + 30000, + 0 + ), + ( + 10038, + 10038, + 2592, + '1990-01-01 00:00:00.000000', + 30, + 1326, + 30000, + 0 + ), + ( + 10039, + 10037, + 2591, + '1990-01-01 00:00:00.000000', + 125, + 704, + 30000, + 0 + ), + ( + 10040, + 10036, + 2590, + '1990-01-01 00:00:00.000000', + 60, + 801, + 30000, + 0 + ), + ( + 10041, + 10035, + 2589, + '1990-01-01 00:00:00.000000', + 250, + 638, + 30000, + 0 + ), + ( + 10042, + 10034, + 2588, + '1990-01-01 00:00:00.000000', + 250, + 616, + 30000, + 0 + ), + ( + 10043, + 10033, + 2587, + '1990-01-01 00:00:00.000000', + 250, + 607, + 30000, + 0 + ), + ( + 10044, + 10032, + 2586, + '1990-01-01 00:00:00.000000', + 125, + 585, + 30000, + 0 + ), + ( + 11001, + 11001, + 606, + '1955-01-01 00:00:00.000000', + 500, + 22, + 30000, + 0 + ), + ( + 11002, + 11002, + 607, + '1955-01-01 00:00:00.000000', + 1000, + 32, + 30000, + 0 + ), + ( + 11003, + 11003, + 608, + '1955-01-01 00:00:00.000000', + 500, + 32, + 30000, + 0 + ), + ( + 11004, + 11004, + 609, + '1955-01-01 00:00:00.000000', + 1000, + 42, + 30000, + 0 + ), + ( + 11005, + 11005, + 610, + '1955-01-01 00:00:00.000000', + 250, + 66, + 30000, + 0 + ), + ( + 11006, + 11006, + 611, + '1955-01-01 00:00:00.000000', + 500, + 72, + 30000, + 0 + ), + ( + 11007, + 11007, + 1740, + '1955-01-01 00:00:00.000000', + 125, + 84, + 30000, + 0 + ), + ( + 11008, + 11008, + 612, + '1955-01-01 00:00:00.000000', + 250, + 122, + 30000, + 0 + ), + ( + 11009, + 11009, + 613, + '1955-01-01 00:00:00.000000', + 125, + 134, + 30000, + 0 + ), + ( + 11010, + 11010, + 614, + '1955-01-01 00:00:00.000000', + 60, + 142, + 30000, + 0 + ), + ( + 11011, + 11011, + 2200, + '1955-01-01 00:00:00.000000', + 250, + 267, + 30000, + 0 + ), + ( + 11012, + 11012, + 2665, + '1995-01-01 00:00:00.000000', + 15, + 76, + 30000, + 0 + ), + ( + 11013, + 11013, + 2666, + '1995-01-01 00:00:00.000000', + 15, + 130, + 30000, + 0 + ), + ( + 12001, + 12001, + 559, + '1930-01-01 00:00:00.000000', + 125, + 58, + 30000, + 0 + ), + ( + 12002, + 12002, + 560, + '1930-01-01 00:00:00.000000', + 250, + 61, + 30000, + 0 + ), + ( + 12003, + 12003, + 561, + '1930-01-01 00:00:00.000000', + 500, + 65, + 30000, + 0 + ), + ( + 12004, + 12004, + 562, + '1930-01-01 00:00:00.000000', + 500, + 70, + 30000, + 0 + ), + ( + 12005, + 12005, + 563, + '1930-01-01 00:00:00.000000', + 500, + 76, + 30000, + 0 + ), + ( + 12006, + 12006, + 564, + '1950-01-01 00:00:00.000000', + 1000, + 153, + 30000, + 0 + ), + ( + 12007, + 12007, + 565, + '1950-01-01 00:00:00.000000', + 1000, + 160, + 30000, + 0 + ), + ( + 12008, + 12008, + 566, + '1950-01-01 00:00:00.000000', + 1000, + 167, + 30000, + 0 + ), + ( + 12009, + 12009, + 567, + '1950-01-01 00:00:00.000000', + 500, + 176, + 30000, + 0 + ), + ( + 12010, + 12010, + 568, + '1950-01-01 00:00:00.000000', + 500, + 185, + 30000, + 0 + ), + ( + 12011, + 12011, + 569, + '1950-01-01 00:00:00.000000', + 250, + 195, + 30000, + 0 + ), + ( + 12012, + 12012, + 570, + '1950-01-01 00:00:00.000000', + 250, + 135, + 30000, + 0 + ), + ( + 12013, + 12013, + 571, + '1950-01-01 00:00:00.000000', + 125, + 147, + 30000, + 0 + ), + ( + 12014, + 12014, + 572, + '1950-01-01 00:00:00.000000', + 125, + 159, + 30000, + 0 + ), + ( + 12015, + 12015, + 573, + '1950-01-01 00:00:00.000000', + 125, + 243, + 30000, + 0 + ), + ( + 12016, + 12016, + 574, + '1950-01-01 00:00:00.000000', + 125, + 257, + 30000, + 0 + ), + ( + 12017, + 12017, + 575, + '1950-01-01 00:00:00.000000', + 125, + 272, + 30000, + 0 + ), + ( + 12018, + 12018, + 576, + '1950-01-01 00:00:00.000000', + 60, + 288, + 30000, + 0 + ), + ( + 12019, + 12019, + 577, + '1950-01-01 00:00:00.000000', + 60, + 305, + 30000, + 0 + ), + ( + 12020, + 12020, + 2201, + '1965-01-01 00:00:00.000000', + 500, + 141, + 30000, + 0 + ), + ( + 12021, + 12021, + 2202, + '1965-01-01 00:00:00.000000', + 500, + 146, + 30000, + 0 + ), + ( + 12022, + 12022, + 2203, + '1965-01-01 00:00:00.000000', + 500, + 105, + 30000, + 0 + ), + ( + 12023, + 12023, + 2204, + '1965-01-01 00:00:00.000000', + 500, + 114, + 30000, + 0 + ), + ( + 12024, + 12024, + 2205, + '1965-01-01 00:00:00.000000', + 500, + 124, + 30000, + 0 + ), + ( + 12025, + 12026, + 2206, + '1965-01-01 00:00:00.000000', + 125, + 230, + 30000, + 0 + ), + ( + 12026, + 12025, + 2207, + '1965-01-01 00:00:00.000000', + 250, + 217, + 30000, + 0 + ), + ( + 12027, + 12031, + 2212, + '1950-01-01 00:00:00.000000', + 1000, + 89, + 30000, + 0 + ), + ( + 12028, + 12033, + 2214, + '1950-01-01 00:00:00.000000', + 1000, + 76, + 30000, + 0 + ), + ( + 12029, + 12032, + 2213, + '1950-01-01 00:00:00.000000', + 1000, + 82, + 30000, + 0 + ), + ( + 12030, + 12030, + 2211, + '1950-01-01 00:00:00.000000', + 1000, + 97, + 30000, + 0 + ), + ( + 12031, + 12029, + 2210, + '1950-01-01 00:00:00.000000', + 250, + 185, + 30000, + 0 + ), + ( + 12032, + 12028, + 2209, + '1950-01-01 00:00:00.000000', + 250, + 195, + 30000, + 0 + ), + ( + 12033, + 12027, + 2208, + '1950-01-01 00:00:00.000000', + 250, + 206, + 30000, + 0 + ), + ( + 12034, + 12034, + 2390, + '1950-01-01 00:00:00.000000', + 125, + 257, + 30000, + 0 + ), + ( + 12035, + 12035, + 2391, + '1950-01-01 00:00:00.000000', + 125, + 272, + 30000, + 0 + ), + ( + 12036, + 12036, + 2392, + '1950-01-01 00:00:00.000000', + 60, + 288, + 30000, + 0 + ), + ( + 12037, + 12037, + 2393, + '1950-01-01 00:00:00.000000', + 60, + 305, + 30000, + 0 + ), + ( + 12038, + 12038, + 2394, + '1950-01-01 00:00:00.000000', + 60, + 323, + 30000, + 0 + ), + ( + 12039, + 12039, + 2395, + '1950-01-01 00:00:00.000000', + 60, + 341, + 30000, + 0 + ), + ( + 12040, + 12040, + 2396, + '1950-01-01 00:00:00.000000', + 60, + 361, + 30000, + 0 + ), + ( + 12041, + 12041, + 2397, + '1950-01-01 00:00:00.000000', + 30, + 381, + 30000, + 0 + ), + ( + 12042, + 12042, + 2398, + '1950-01-01 00:00:00.000000', + 30, + 402, + 30000, + 0 + ), + ( + 12043, + 12043, + 2399, + '1950-01-01 00:00:00.000000', + 30, + 424, + 30000, + 0 + ), + ( + 12044, + 12044, + 2400, + '1950-01-01 00:00:00.000000', + 30, + 448, + 30000, + 0 + ), + ( + 12045, + 12045, + 2401, + '1950-01-01 00:00:00.000000', + 30, + 472, + 30000, + 0 + ), + ( + 12046, + 12046, + 2402, + '1950-01-01 00:00:00.000000', + 30, + 497, + 30000, + 0 + ), + ( + 12047, + 12047, + 2403, + '1950-01-01 00:00:00.000000', + 30, + 523, + 30000, + 0 + ), + ( + 12048, + 12048, + 2404, + '1950-01-01 00:00:00.000000', + 30, + 550, + 30000, + 0 + ), + ( + 12049, + 12049, + 2405, + '1950-01-01 00:00:00.000000', + 30, + 578, + 30000, + 0 + ), + ( + 12050, + 12050, + 2406, + '1950-01-01 00:00:00.000000', + 30, + 608, + 30000, + 0 + ), + ( + 12051, + 12051, + 2407, + '1950-01-01 00:00:00.000000', + 30, + 638, + 30000, + 0 + ), + ( + 12052, + 12052, + 2408, + '1950-01-01 00:00:00.000000', + 30, + 669, + 30000, + 0 + ), + ( + 12053, + 12053, + 2409, + '1950-01-01 00:00:00.000000', + 30, + 701, + 30000, + 0 + ), + ( + 12054, + 12054, + 2410, + '1950-01-01 00:00:00.000000', + 30, + 734, + 30000, + 0 + ), + ( + 12055, + 12055, + 2411, + '1950-01-01 00:00:00.000000', + 30, + 769, + 30000, + 0 + ), + ( + 12056, + 12056, + 2412, + '1950-01-01 00:00:00.000000', + 30, + 804, + 30000, + 0 + ), + ( + 12057, + 12057, + 2413, + '1950-01-01 00:00:00.000000', + 30, + 840, + 30000, + 0 + ), + ( + 12058, + 12058, + 2414, + '1950-01-01 00:00:00.000000', + 0, + 878, + 30000, + 0 + ), + ( + 12059, + 12059, + 2415, + '1950-01-01 00:00:00.000000', + 0, + 916, + 30000, + 0 + ), + ( + 12060, + 12060, + 2416, + '1950-01-01 00:00:00.000000', + 0, + 956, + 30000, + 0 + ), + ( + 12061, + 12061, + 2417, + '1950-01-01 00:00:00.000000', + 0, + 996, + 30000, + 0 + ), + ( + 12062, + 12062, + 2418, + '1950-01-01 00:00:00.000000', + 0, + 1038, + 30000, + 0 + ), + ( + 12063, + 12063, + 2419, + '1950-01-01 00:00:00.000000', + 0, + 1081, + 30000, + 0 + ), + ( + 12064, + 12064, + 2420, + '1950-01-01 00:00:00.000000', + 250, + 206, + 30000, + 0 + ), + ( + 12065, + 12066, + 2673, + '1995-01-01 00:00:00.000000', + 60, + 226, + 30000, + 0 + ), + ( + 12066, + 12065, + 2674, + '1995-01-01 00:00:00.000000', + 125, + 203, + 30000, + 0 + ), + ( + 12067, + 12067, + 2675, + '1995-01-01 00:00:00.000000', + 60, + 239, + 30000, + 0 + ), + ( + 12068, + 12069, + 2676, + '1995-01-01 00:00:00.000000', + 125, + 214, + 30000, + 0 + ), + ( + 12069, + 12068, + 2677, + '1995-01-01 00:00:00.000000', + 60, + 253, + 30000, + 0 + ), + ( + 13001, + 13001, + 578, + '1960-01-01 00:00:00.000000', + 1000, + 312, + 30000, + 0 + ), + ( + 13002, + 13002, + 579, + '1960-01-01 00:00:00.000000', + 1000, + 332, + 30000, + 0 + ), + ( + 13003, + 13003, + 580, + '1960-01-01 00:00:00.000000', + 1000, + 352, + 30000, + 0 + ), + ( + 13004, + 13004, + 581, + '1960-01-01 00:00:00.000000', + 1000, + 372, + 30000, + 0 + ), + ( + 13005, + 13005, + 582, + '1960-01-01 00:00:00.000000', + 500, + 392, + 30000, + 0 + ), + ( + 13006, + 13006, + 583, + '1960-01-01 00:00:00.000000', + 500, + 412, + 30000, + 0 + ), + ( + 13007, + 13007, + 584, + '1960-01-01 00:00:00.000000', + 500, + 432, + 30000, + 0 + ), + ( + 13008, + 13008, + 585, + '1960-01-01 00:00:00.000000', + 500, + 452, + 30000, + 0 + ), + ( + 13009, + 13009, + 586, + '1960-01-01 00:00:00.000000', + 500, + 472, + 30000, + 0 + ), + ( + 13010, + 13010, + 587, + '1960-01-01 00:00:00.000000', + 500, + 492, + 30000, + 0 + ), + ( + 13011, + 13011, + 588, + '1960-01-01 00:00:00.000000', + 500, + 512, + 30000, + 0 + ), + ( + 13012, + 13012, + 589, + '1960-01-01 00:00:00.000000', + 250, + 532, + 30000, + 0 + ), + ( + 13013, + 13013, + 590, + '1960-01-01 00:00:00.000000', + 250, + 607, + 30000, + 0 + ), + ( + 13014, + 13014, + 591, + '1960-01-01 00:00:00.000000', + 250, + 629, + 30000, + 0 + ), + ( + 13015, + 13015, + 592, + '1960-01-01 00:00:00.000000', + 250, + 651, + 30000, + 0 + ), + ( + 13016, + 13016, + 593, + '1960-01-01 00:00:00.000000', + 250, + 673, + 30000, + 0 + ), + ( + 13017, + 13017, + 594, + '1960-01-01 00:00:00.000000', + 250, + 695, + 30000, + 0 + ), + ( + 13018, + 13018, + 595, + '1960-01-01 00:00:00.000000', + 250, + 717, + 30000, + 0 + ), + ( + 13019, + 13019, + 596, + '1960-01-01 00:00:00.000000', + 125, + 739, + 30000, + 0 + ), + ( + 13020, + 13020, + 597, + '1960-01-01 00:00:00.000000', + 125, + 761, + 30000, + 0 + ), + ( + 13021, + 13021, + 598, + '1960-01-01 00:00:00.000000', + 60, + 783, + 30000, + 0 + ), + ( + 13022, + 13022, + 599, + '1960-01-01 00:00:00.000000', + 60, + 878, + 30000, + 0 + ), + ( + 13023, + 13023, + 600, + '1960-01-01 00:00:00.000000', + 60, + 902, + 30000, + 0 + ), + ( + 13024, + 13024, + 601, + '1960-01-01 00:00:00.000000', + 30, + 926, + 30000, + 0 + ), + ( + 13025, + 13025, + 2678, + '1995-01-01 00:00:00.000000', + 60, + 1151, + 30000, + 0 + ), + ( + 14001, + 14001, + 602, + '1960-01-01 00:00:00.000000', + 1000, + 137, + 30000, + 0 + ), + ( + 14002, + 14002, + 603, + '1960-01-01 00:00:00.000000', + 250, + 187, + 30000, + 0 + ), + ( + 14003, + 14003, + 604, + '1960-01-01 00:00:00.000000', + 125, + 637, + 30000, + 0 + ), + ( + 14004, + 14004, + 605, + '1960-01-01 00:00:00.000000', + 0, + 1487, + 30000, + 0 + ), + ( + 14005, + 14005, + 2679, + '1995-01-01 00:00:00.000000', + 60, + 837, + 30000, + 0 + ), + ( + 15001, + 15001, + 2031, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 16001, + 16001, + 195, + '1953-01-01 00:00:00.000000', + 500, + 5, + 30000, + 0 + ), + ( + 17001, + 17001, + 2375, + '1964-01-01 00:00:00.000000', + 1000, + 25, + 30000, + 0 + ), + ( + 18001, + 18001, + 226, + '1999-01-01 00:00:00.000000', + 500, + 48, + 30000, + 0 + ), + ( + 18002, + 18002, + 2157, + '1999-01-01 00:00:00.000000', + 500, + 39, + 30000, + 0 + ), + ( + 18003, + 18003, + 2158, + '1999-01-01 00:00:00.000000', + 500, + 55, + 30000, + 0 + ), + ( + 18004, + 18004, + 2159, + '1999-01-01 00:00:00.000000', + 500, + 65, + 30000, + 0 + ), + ( + 20101, + 20101, + 1, + '1932-01-01 00:00:00.000000', + 1000, + 1000, + 30000, + 0 + ), + ( + 20102, + 20102, + 7, + '1940-01-01 00:00:00.000000', + 1000, + 1000, + 30000, + 0 + ), + ( + 20103, + 20103, + 14, + '1953-01-01 00:00:00.000000', + 1000, + 1000, + 30000, + 0 + ), + ( + 20104, + 20104, + 21, + '1957-01-01 00:00:00.000000', + 1000, + 1002, + 30000, + 0 + ), + ( + 20105, + 20105, + 25, + '1957-01-01 00:00:00.000000', + 1000, + 1002, + 30000, + 0 + ), + ( + 20106, + 20106, + 47, + '1957-01-01 00:00:00.000000', + 250, + 1255, + 30000, + 0 + ), + ( + 20107, + 20107, + 32, + '1963-01-01 00:00:00.000000', + 250, + 3950, + 30000, + 0 + ), + ( + 20108, + 20108, + 509, + '1964-01-01 00:00:00.000000', + 250, + 6363, + 30000, + 0 + ), + ( + 20109, + 20109, + 40, + '1964-01-01 00:00:00.000000', + 1000, + 3885, + 30000, + 0 + ), + ( + 20110, + 20110, + 974, + '1969-01-01 00:00:00.000000', + 125, + 3871, + 30000, + 0 + ), + ( + 20111, + 20111, + 36, + '1970-01-01 00:00:00.000000', + 60, + 11238, + 30000, + 0 + ), + ( + 20112, + 20112, + 2, + '1949-01-01 00:00:00.000000', + 1000, + 1000, + 30000, + 0 + ), + ( + 20113, + 20113, + 3, + '1957-01-01 00:00:00.000000', + 1000, + 1000, + 30000, + 0 + ), + ( + 20114, + 20114, + 8, + '1957-01-01 00:00:00.000000', + 60, + 11817, + 30000, + 0 + ), + ( + 20115, + 20115, + 16, + '1957-01-01 00:00:00.000000', + 1000, + 1012, + 30000, + 0 + ), + ( + 20116, + 20116, + 48, + '1964-01-01 00:00:00.000000', + 1000, + 4242, + 30000, + 0 + ), + ( + 20117, + 20117, + 26, + '1963-01-01 00:00:00.000000', + 0, + 23463, + 30000, + 0 + ), + ( + 20118, + 20118, + 49, + '1958-01-01 00:00:00.000000', + 1000, + 2724, + 30000, + 0 + ), + ( + 20119, + 20119, + 33, + '1967-01-01 00:00:00.000000', + 1000, + 5584, + 30000, + 0 + ), + ( + 20120, + 20120, + 37, + '1967-01-01 00:00:00.000000', + 250, + 10886, + 30000, + 0 + ), + ( + 20121, + 20121, + 41, + '1970-01-01 00:00:00.000000', + 1000, + 7196, + 30000, + 0 + ), + ( + 20122, + 20122, + 45, + '1970-01-01 00:00:00.000000', + 1000, + 9158, + 30000, + 0 + ), + ( + 20123, + 20123, + 46, + '1970-01-01 00:00:00.000000', + 1000, + 5182, + 30000, + 0 + ), + ( + 20124, + 20124, + 4, + '1947-01-01 00:00:00.000000', + 1000, + 3760, + 30000, + 0 + ), + ( + 20125, + 20125, + 9, + '1959-01-01 00:00:00.000000', + 1000, + 1000, + 30000, + 0 + ), + ( + 20126, + 20126, + 10, + '1969-01-01 00:00:00.000000', + 125, + 5109, + 30000, + 0 + ), + ( + 20127, + 20127, + 5, + '1955-01-01 00:00:00.000000', + 1000, + 1000, + 30000, + 0 + ), + ( + 20128, + 20128, + 6, + '1966-01-01 00:00:00.000000', + 250, + 7022, + 30000, + 0 + ), + ( + 20129, + 20129, + 12, + '1969-01-01 00:00:00.000000', + 250, + 6454, + 30000, + 0 + ), + ( + 20130, + 20130, + 20, + '1973-01-01 00:00:00.000000', + 60, + 14915, + 30000, + 0 + ), + ( + 20131, + 20131, + 172, + '1969-01-01 00:00:00.000000', + 1000, + 5549, + 30000, + 0 + ), + ( + 20132, + 20132, + 173, + '1969-01-01 00:00:00.000000', + 250, + 6534, + 30000, + 0 + ), + ( + 20133, + 20133, + 174, + '1969-01-01 00:00:00.000000', + 250, + 5289, + 30000, + 0 + ), + ( + 20134, + 20134, + 175, + '1970-01-01 00:00:00.000000', + 125, + 9275, + 30000, + 0 + ), + ( + 20135, + 20135, + 176, + '1971-01-01 00:00:00.000000', + 250, + 5084, + 30000, + 0 + ), + ( + 20138, + 20138, + 526, + '1999-01-01 00:00:00.000000', + 0, + 1000, + 30000, + 0 + ), + ( + 20140, + 20140, + 2217, + '1967-01-01 00:00:00.000000', + 250, + 11458, + 30000, + 0 + ), + ( + 20146, + 20146, + 1051, + '1990-01-01 00:00:00.000000', + 0, + 1000, + 30000, + 0 + ), + ( + 20147, + 20147, + 1052, + '1990-01-01 00:00:00.000000', + 0, + 1000, + 30000, + 0 + ), + ( + 20148, + 20148, + 1053, + '1990-01-01 00:00:00.000000', + 0, + 1000, + 30000, + 0 + ), + ( + 20149, + 20149, + 1054, + '1990-01-01 00:00:00.000000', + 0, + 1000, + 30000, + 0 + ), + ( + 20150, + 20150, + 1055, + '1990-01-01 00:00:00.000000', + 0, + 3891, + 30000, + 0 + ), + ( + 20151, + 20151, + 1056, + '1990-01-01 00:00:00.000000', + 0, + 3891, + 30000, + 0 + ), + ( + 20152, + 20152, + 1057, + '1990-01-01 00:00:00.000000', + 0, + 1000, + 30000, + 0 + ), + ( + 20153, + 20153, + 1058, + '1990-01-01 00:00:00.000000', + 0, + 1000, + 30000, + 0 + ), + ( + 20157, + 20157, + 990, + '1969-01-01 00:00:00.000000', + 25, + 5089, + 30000, + 0 + ), + ( + 20207, + 20207, + 2153, + '1966-01-01 00:00:00.000000', + 0, + 49296, + 15000, + 0 + ), + ( + 20210, + 20210, + 2179, + '1970-01-01 00:00:00.000000', + 250, + 7101, + 1500, + 0 + ), + ( + 20211, + 20211, + 2180, + '1969-01-01 00:00:00.000000', + 125, + 3871, + 1500, + 0 + ), + ( + 20212, + 20212, + 2181, + '1970-01-01 00:00:00.000000', + 250, + 8467, + 1500, + 0 + ), + ( + 20213, + 20213, + 2182, + '1970-01-01 00:00:00.000000', + 125, + 9275, + 1500, + 0 + ), + ( + 20214, + 20214, + 2183, + '1970-01-01 00:00:00.000000', + 125, + 9275, + 1500, + 0 + ), + ( + 20215, + 20215, + 2184, + '1970-01-01 00:00:00.000000', + 125, + 9275, + 1500, + 0 + ), + ( + 20216, + 20216, + 2185, + '1971-01-01 00:00:00.000000', + 125, + 5084, + 1500, + 0 + ), + ( + 20217, + 20217, + 2186, + '1964-01-01 00:00:00.000000', + 250, + 4242, + 1500, + 0 + ), + ( + 20218, + 20218, + 2187, + '1967-01-01 00:00:00.000000', + 250, + 5584, + 1500, + 0 + ), + ( + 20219, + 20219, + 2188, + '1967-01-01 00:00:00.000000', + 125, + 11619, + 1500, + 0 + ), + ( + 20220, + 20220, + 2189, + '1967-01-01 00:00:00.000000', + 60, + 11458, + 1500, + 0 + ), + ( + 20221, + 20221, + 2190, + '1970-01-01 00:00:00.000000', + 250, + 7196, + 1500, + 0 + ), + ( + 20222, + 20222, + 2191, + '1970-01-01 00:00:00.000000', + 1000, + 5497, + 1500, + 0 + ), + ( + 20223, + 20223, + 2192, + '1970-01-01 00:00:00.000000', + 250, + 5162, + 1500, + 0 + ), + ( + 20224, + 20224, + 2193, + '1969-01-01 00:00:00.000000', + 125, + 5086, + 1500, + 0 + ), + ( + 20225, + 20225, + 2194, + '1969-01-01 00:00:00.000000', + 125, + 5086, + 1500, + 0 + ), + ( + 20226, + 20226, + 1230, + '1969-01-01 00:00:00.000000', + 125, + 5998, + 1500, + 0 + ), + ( + 20227, + 20227, + 2196, + '1973-01-01 00:00:00.000000', + 60, + 19009, + 1500, + 0 + ), + ( + 20228, + 20228, + 2197, + '1973-01-01 00:00:00.000000', + 60, + 14624, + 1500, + 0 + ), + ( + 21001, + 21008, + 198, + '1953-01-01 00:00:00.000000', + 500, + 95, + 30000, + 0 + ), + ( + 21002, + 21012, + 221, + '1937-01-01 00:00:00.000000', + 500, + 85, + 30000, + 0 + ), + ( + 21003, + 21013, + 222, + '1939-01-01 00:00:00.000000', + 500, + 85, + 30000, + 0 + ), + ( + 21004, + 21014, + 220, + '1940-01-01 00:00:00.000000', + 500, + 90, + 30000, + 0 + ), + ( + 21005, + 21015, + 223, + '1941-01-01 00:00:00.000000', + 500, + 90, + 30000, + 0 + ), + ( + 21006, + 21001, + 202, + '1947-01-01 00:00:00.000000', + 500, + 110, + 30000, + 0 + ), + ( + 21007, + 21002, + 203, + '1949-01-01 00:00:00.000000', + 500, + 115, + 30000, + 0 + ), + ( + 21008, + 21004, + 205, + '1953-01-01 00:00:00.000000', + 500, + 100, + 30000, + 0 + ), + ( + 21009, + 21009, + 199, + '1955-01-01 00:00:00.000000', + 500, + 100, + 30000, + 0 + ), + ( + 21010, + 21010, + 200, + '1956-01-01 00:00:00.000000', + 500, + 95, + 30000, + 0 + ), + ( + 21011, + 21011, + 201, + '1957-01-01 00:00:00.000000', + 500, + 95, + 30000, + 0 + ), + ( + 21012, + 21005, + 206, + '1967-01-01 00:00:00.000000', + 500, + 125, + 30000, + 0 + ), + ( + 21013, + 21006, + 207, + '1969-01-01 00:00:00.000000', + 500, + 120, + 30000, + 0 + ), + ( + 21014, + 21007, + 208, + '1970-01-01 00:00:00.000000', + 500, + 125, + 30000, + 0 + ), + ( + 21015, + 21003, + 204, + '1973-01-01 00:00:00.000000', + 500, + 130, + 30000, + 0 + ), + ( + 21016, + 21016, + 246, + '1949-01-01 00:00:00.000000', + 500, + 110, + 30000, + 0 + ), + ( + 22001, + 22002, + 657, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22002, + 22003, + 658, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22003, + 22004, + 659, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22004, + 22005, + 660, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22005, + 22006, + 661, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22006, + 22007, + 662, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22007, + 22008, + 663, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22008, + 22009, + 664, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22009, + 22010, + 665, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22010, + 22011, + 666, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22011, + 22012, + 667, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22012, + 22013, + 668, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22013, + 22014, + 669, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22014, + 22015, + 670, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22015, + 22016, + 671, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22016, + 22017, + 672, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22017, + 22018, + 673, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22018, + 22019, + 674, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22019, + 22020, + 2114, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22020, + 22023, + 2151, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22021, + 22022, + 2150, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22022, + 22021, + 2149, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 22023, + 22024, + 2160, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 23001, + 23001, + 228, + '2027-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23002, + 23002, + 229, + '1931-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23003, + 23003, + 830, + '1932-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23004, + 23004, + 230, + '1932-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23005, + 23005, + 231, + '1934-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23006, + 23006, + 232, + '1937-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23007, + 23007, + 233, + '1937-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23008, + 23008, + 234, + '1939-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23009, + 23009, + 834, + '1940-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23010, + 23010, + 235, + '1941-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23011, + 23011, + 236, + '1947-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23012, + 23010, + 237, + '1948-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 23013, + 23012, + 237, + '1948-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 25001, + 25001, + 99, + '1967-01-01 00:00:00.000000', + 1000, + 359, + 30000, + 0 + ), + ( + 25002, + 25002, + 100, + '1967-01-01 00:00:00.000000', + 500, + 458, + 30000, + 0 + ), + ( + 25003, + 25003, + 101, + '1967-01-01 00:00:00.000000', + 250, + 556, + 30000, + 0 + ), + ( + 25004, + 25004, + 1549, + '1967-01-01 00:00:00.000000', + 125, + 655, + 30000, + 0 + ), + ( + 25005, + 25005, + 1578, + '1967-01-01 00:00:00.000000', + 0, + 754, + 30000, + 0 + ), + ( + 25006, + 25006, + 2041, + '1968-01-01 00:00:00.000000', + 500, + 470, + 30000, + 0 + ), + ( + 25007, + 25007, + 2067, + '1967-01-01 00:00:00.000000', + 500, + 470, + 30000, + 0 + ), + ( + 25008, + 25008, + 2352, + '2001-01-01 00:00:00.000000', + 500, + 288, + 30000, + 0 + ), + ( + 25009, + 25009, + 2353, + '2001-01-01 00:00:00.000000', + 500, + 288, + 30000, + 0 + ), + ( + 25010, + 25010, + 2354, + '2001-01-01 00:00:00.000000', + 500, + 288, + 30000, + 0 + ), + ( + 25011, + 25011, + 2355, + '2001-01-01 00:00:00.000000', + 500, + 288, + 30000, + 0 + ), + ( + 25012, + 25012, + 2356, + '2001-01-01 00:00:00.000000', + 500, + 288, + 30000, + 0 + ), + ( + 25013, + 25013, + 2357, + '2001-01-01 00:00:00.000000', + 500, + 288, + 30000, + 0 + ), + ( + 25014, + 25014, + 2358, + '2001-01-01 00:00:00.000000', + 250, + 288, + 30000, + 0 + ), + ( + 25015, + 25015, + 2359, + '2001-01-01 00:00:00.000000', + 250, + 288, + 30000, + 0 + ), + ( + 25016, + 25016, + 2360, + '2001-01-01 00:00:00.000000', + 250, + 288, + 30000, + 0 + ), + ( + 25017, + 25017, + 2361, + '2001-01-01 00:00:00.000000', + 250, + 318, + 30000, + 0 + ), + ( + 25018, + 25018, + 2362, + '2001-01-01 00:00:00.000000', + 250, + 318, + 30000, + 0 + ), + ( + 25019, + 25019, + 2363, + '2001-01-01 00:00:00.000000', + 250, + 318, + 30000, + 0 + ), + ( + 25020, + 25020, + 2364, + '2001-01-01 00:00:00.000000', + 250, + 318, + 30000, + 0 + ), + ( + 25021, + 25021, + 2365, + '2001-01-01 00:00:00.000000', + 250, + 318, + 30000, + 0 + ), + ( + 25022, + 25022, + 2366, + '2001-01-01 00:00:00.000000', + 250, + 318, + 30000, + 0 + ), + ( + 26001, + 26001, + 244, + '1966-01-01 00:00:00.000000', + 500, + 10, + 30000, + 0 + ), + ( + 27003, + 27001, + 238, + '2027-01-01 00:00:00.000000', + 500, + 10, + 30000, + 0 + ), + ( + 28001, + 28001, + 272, + '1940-01-01 00:00:00.000000', + 500, + 15, + 30000, + 0 + ), + ( + 28002, + 28002, + 273, + '1947-01-01 00:00:00.000000', + 500, + 10, + 30000, + 0 + ), + ( + 28003, + 28003, + 274, + '1955-01-01 00:00:00.000000', + 500, + 10, + 30000, + 0 + ), + ( + 28004, + 28004, + 275, + '1957-01-01 00:00:00.000000', + 500, + 10, + 30000, + 0 + ), + ( + 28005, + 28005, + 276, + '1957-01-01 00:00:00.000000', + 500, + 10, + 30000, + 0 + ), + ( + 29001, + 29001, + 637, + '1975-01-01 00:00:00.000000', + 1000, + 387, + 30000, + 0 + ), + ( + 29002, + 29002, + 638, + '1975-01-01 00:00:00.000000', + 500, + 498, + 30000, + 0 + ), + ( + 29003, + 29003, + 639, + '1975-01-01 00:00:00.000000', + 500, + 682, + 30000, + 0 + ), + ( + 29004, + 29004, + 640, + '1975-01-01 00:00:00.000000', + 250, + 940, + 30000, + 0 + ), + ( + 29005, + 29005, + 641, + '1975-01-01 00:00:00.000000', + 125, + 1272, + 30000, + 0 + ), + ( + 29006, + 29006, + 642, + '1975-01-01 00:00:00.000000', + 60, + 1678, + 30000, + 0 + ), + ( + 29007, + 29007, + 643, + '1975-01-01 00:00:00.000000', + 60, + 2157, + 30000, + 0 + ), + ( + 29008, + 29008, + 644, + '1975-01-01 00:00:00.000000', + 30, + 2710, + 30000, + 0 + ), + ( + 29009, + 29009, + 645, + '1975-01-01 00:00:00.000000', + 30, + 3337, + 30000, + 0 + ), + ( + 29010, + 29010, + 646, + '1975-01-01 00:00:00.000000', + 0, + 4038, + 30000, + 0 + ), + ( + 30001, + 30001, + 647, + '1975-01-01 00:00:00.000000', + 1000, + 387, + 30000, + 0 + ), + ( + 30002, + 30002, + 648, + '1975-01-01 00:00:00.000000', + 500, + 498, + 30000, + 0 + ), + ( + 30003, + 30003, + 649, + '1975-01-01 00:00:00.000000', + 250, + 682, + 30000, + 0 + ), + ( + 30004, + 30004, + 650, + '1975-01-01 00:00:00.000000', + 250, + 940, + 30000, + 0 + ), + ( + 30005, + 30005, + 641, + '1975-01-01 00:00:00.000000', + 125, + 1272, + 30000, + 0 + ), + ( + 30006, + 30006, + 652, + '1975-01-01 00:00:00.000000', + 60, + 1678, + 30000, + 0 + ), + ( + 30007, + 30007, + 643, + '1975-01-01 00:00:00.000000', + 60, + 2157, + 30000, + 0 + ), + ( + 30008, + 30008, + 654, + '1975-01-01 00:00:00.000000', + 30, + 2710, + 30000, + 0 + ), + ( + 30009, + 30009, + 645, + '1975-01-01 00:00:00.000000', + 30, + 3337, + 30000, + 0 + ), + ( + 30010, + 30010, + 656, + '1975-01-01 00:00:00.000000', + 0, + 4038, + 30000, + 0 + ), + ( + 31150, + 31169, + 2164, + '2001-02-05 00:00:00.000000', + 1000, + 50, + 30000, + 0 + ), + ( + 31151, + 31167, + 2162, + '2001-02-05 00:00:00.000000', + 1000, + 50, + 30000, + 0 + ), + ( + 31152, + 31168, + 2163, + '2001-02-05 00:00:00.000000', + 1000, + 50, + 30000, + 0 + ), + ( + 31153, + 31166, + 2161, + '2001-02-05 00:00:00.000000', + 1000, + 50, + 30000, + 0 + ), + ( + 32001, + 32001, + 407, + '1960-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 33001, + 33001, + 192, + '1999-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 34001, + 34001, + 828, + '1932-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 34002, + 34001, + 829, + '1932-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 35001, + 35001, + 831, + '1932-01-01 00:00:00.000000', + 500, + 100, + 30000, + 0 + ), + ( + 35002, + 35002, + 443, + '1940-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 35003, + 35003, + 2156, + '1965-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 36001, + 36002, + 2032, + '2000-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 36002, + 36002, + 953, + '1932-01-01 00:00:00.000000', + 500, + 0, + 30000, + 10 + ), + ( + 36003, + 36002, + 954, + '1932-01-01 00:00:00.000000', + 500, + 0, + 30000, + 10 + ), + ( + 36004, + 36002, + 955, + '1940-01-01 00:00:00.000000', + 500, + 0, + 30000, + 10 + ), + ( + 36005, + 36002, + 956, + '1940-01-01 00:00:00.000000', + 500, + 0, + 30000, + 10 + ), + ( + 36006, + 36002, + 957, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 15 + ), + ( + 36007, + 36002, + 958, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36008, + 36002, + 959, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36009, + 36002, + 960, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36010, + 36002, + 961, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36011, + 36002, + 1014, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 14 + ), + ( + 36012, + 36002, + 1015, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 14 + ), + ( + 36013, + 36002, + 1016, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 9 + ), + ( + 36014, + 36002, + 1017, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 2 + ), + ( + 36015, + 36002, + 1018, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36016, + 36175, + 1019, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 18 + ), + ( + 36017, + 36002, + 1021, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 2 + ), + ( + 36018, + 36002, + 1020, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 2 + ), + ( + 36019, + 36002, + 1113, + '1949-01-01 00:00:00.000000', + 500, + 0, + 30000, + 20 + ), + ( + 36020, + 36002, + 1114, + '1955-01-01 00:00:00.000000', + 500, + 0, + 30000, + 21 + ), + ( + 36021, + 36002, + 1115, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36022, + 36002, + 1116, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 9 + ), + ( + 36023, + 36002, + 1117, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36024, + 36002, + 1118, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36025, + 36002, + 1119, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36026, + 36002, + 1120, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36027, + 36002, + 1121, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36028, + 36002, + 1122, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36029, + 36002, + 1123, + '1973-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36030, + 36003, + 1472, + '1956-01-01 00:00:00.000000', + 500, + 0, + 30000, + 21 + ), + ( + 36031, + 36004, + 1474, + '1955-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36032, + 36005, + 1475, + '1955-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36033, + 36006, + 1476, + '1955-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36034, + 36007, + 1477, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36035, + 36008, + 1478, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36036, + 36009, + 1479, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36037, + 36010, + 1480, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36038, + 36011, + 1481, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36039, + 36012, + 1482, + '1958-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36040, + 36013, + 1483, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36041, + 36014, + 1484, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36042, + 36015, + 1485, + '1956-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36043, + 36016, + 1486, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36044, + 36017, + 1487, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36045, + 36018, + 1488, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36046, + 36019, + 1489, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36047, + 36020, + 1490, + '1964-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36048, + 36021, + 1491, + '1964-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36049, + 36022, + 1492, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36050, + 36023, + 1493, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36051, + 36024, + 1494, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36052, + 36025, + 1495, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36053, + 36026, + 1496, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36054, + 36027, + 1497, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36055, + 36028, + 1498, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36056, + 36029, + 1500, + '1958-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36057, + 36030, + 1501, + '1958-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36058, + 36031, + 1502, + '1958-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36059, + 36032, + 1503, + '1958-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36060, + 36033, + 1504, + '1958-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36061, + 36034, + 1505, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36062, + 36035, + 1506, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36063, + 36036, + 1507, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36064, + 36037, + 1508, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36065, + 36038, + 1509, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36066, + 36039, + 1510, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36067, + 36040, + 1511, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36068, + 36041, + 1512, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36069, + 36042, + 1513, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36070, + 36044, + 1515, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36071, + 36045, + 1518, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36072, + 36046, + 1519, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36073, + 36047, + 1520, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36074, + 36048, + 1522, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36075, + 36049, + 1523, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36076, + 36050, + 1524, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36077, + 36051, + 1525, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36078, + 36052, + 1526, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36079, + 36053, + 1527, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36080, + 36054, + 1528, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36081, + 36055, + 1529, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36082, + 36056, + 1531, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36083, + 36057, + 1532, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36084, + 36058, + 1533, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36085, + 36061, + 1534, + '1971-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36086, + 36059, + 1535, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36087, + 36060, + 1536, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36088, + 36062, + 1537, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36089, + 36063, + 1539, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36090, + 36064, + 1540, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36091, + 36065, + 1541, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36092, + 36066, + 1542, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36093, + 36067, + 1543, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36094, + 36068, + 1545, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36095, + 36069, + 1546, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36096, + 36070, + 1547, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36097, + 36071, + 1548, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 12 + ), + ( + 36098, + 36072, + 1550, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36099, + 36073, + 1551, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36100, + 36074, + 1552, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36101, + 36075, + 1553, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36102, + 36076, + 1554, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36103, + 36077, + 1555, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36104, + 36078, + 1556, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36105, + 36079, + 1557, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36106, + 36080, + 1558, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36107, + 36081, + 1562, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36108, + 36082, + 1563, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36109, + 36083, + 1564, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36110, + 36084, + 1566, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36111, + 36085, + 1567, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36112, + 36086, + 1568, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36113, + 36087, + 1569, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36114, + 36088, + 1570, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36115, + 36089, + 1571, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36116, + 36090, + 1572, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36117, + 36091, + 1575, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36118, + 36092, + 1576, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36119, + 36093, + 1577, + '1967-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36120, + 36094, + 1579, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36121, + 36095, + 1581, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36122, + 36096, + 1583, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36123, + 36097, + 1584, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36124, + 36098, + 1585, + '1971-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36125, + 36099, + 1586, + '1973-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36126, + 36100, + 1587, + '1955-01-01 00:00:00.000000', + 500, + 0, + 30000, + 15 + ), + ( + 36127, + 36101, + 1588, + '1955-01-01 00:00:00.000000', + 500, + 0, + 30000, + 15 + ), + ( + 36128, + 36102, + 1589, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 15 + ), + ( + 36129, + 36103, + 1590, + '1956-01-01 00:00:00.000000', + 500, + 0, + 30000, + 15 + ), + ( + 36130, + 36104, + 1592, + '1956-01-01 00:00:00.000000', + 500, + 0, + 30000, + 15 + ), + ( + 36131, + 36105, + 1593, + '1957-01-01 00:00:00.000000', + 500, + 0, + 30000, + 15 + ), + ( + 36132, + 36106, + 1594, + '1958-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36133, + 36107, + 1595, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36134, + 36108, + 1596, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36135, + 36109, + 1597, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36136, + 36110, + 1598, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36137, + 36111, + 1599, + '1961-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36138, + 36112, + 1601, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36139, + 36113, + 1602, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36140, + 36114, + 1603, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36141, + 36115, + 1604, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36142, + 36116, + 1605, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36143, + 36117, + 1606, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36144, + 36118, + 1607, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36145, + 36119, + 1608, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36146, + 36120, + 1610, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36147, + 36121, + 1611, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36148, + 36122, + 1612, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36149, + 36123, + 1614, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36150, + 36124, + 1616, + '1966-01-01 00:00:00.000000', + 500, + 0, + 32000, + 3 + ), + ( + 36151, + 36125, + 1617, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36152, + 36126, + 1618, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36153, + 36127, + 1619, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36154, + 36128, + 1620, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36155, + 36129, + 1621, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36156, + 36130, + 1622, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36157, + 36131, + 1625, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36158, + 36132, + 1626, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36159, + 36133, + 1627, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36160, + 36134, + 1628, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36161, + 36135, + 1630, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36162, + 36136, + 1631, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36163, + 36137, + 1632, + '1971-01-01 00:00:00.000000', + 500, + 0, + 30000, + 4 + ), + ( + 36164, + 36138, + 1633, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36165, + 36139, + 1634, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36166, + 36140, + 1635, + '1971-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36167, + 36141, + 1636, + '1971-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36168, + 36142, + 1637, + '1972-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36169, + 36143, + 1638, + '1972-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36170, + 36144, + 1639, + '1971-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36171, + 36145, + 1640, + '1972-01-01 00:00:00.000000', + 500, + 0, + 30000, + 16 + ), + ( + 36172, + 36146, + 1641, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36173, + 36147, + 1642, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36174, + 36148, + 1643, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36175, + 36149, + 1644, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36176, + 36150, + 1645, + '1972-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36177, + 36151, + 1646, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36178, + 36152, + 1648, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36179, + 36153, + 1649, + '1972-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36180, + 36154, + 1650, + '1973-01-01 00:00:00.000000', + 500, + 0, + 30000, + 17 + ), + ( + 36181, + 36155, + 1651, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36182, + 36156, + 1652, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36183, + 36157, + 1653, + '1965-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36184, + 36158, + 1654, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36185, + 36159, + 1656, + '1971-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36186, + 36160, + 1657, + '1972-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36187, + 36161, + 1658, + '1974-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36188, + 36162, + 1660, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36189, + 36163, + 1661, + '1959-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36190, + 36164, + 1662, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36191, + 36165, + 1663, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36192, + 36166, + 1664, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36193, + 36167, + 1665, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36194, + 36168, + 1666, + '1962-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36195, + 36169, + 1667, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36196, + 36170, + 1668, + '1964-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36197, + 36171, + 1669, + '1964-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36198, + 36172, + 1672, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36199, + 36173, + 1673, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36200, + 36174, + 1674, + '1964-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36201, + 36176, + 1676, + '1966-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36202, + 36177, + 1677, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 1 + ), + ( + 36203, + 36178, + 1679, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 14 + ), + ( + 36204, + 36179, + 1680, + '1968-01-01 00:00:00.000000', + 500, + 0, + 30000, + 14 + ), + ( + 36205, + 36180, + 1681, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 14 + ), + ( + 36206, + 36181, + 1682, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 14 + ), + ( + 36207, + 36002, + 2032, + '2000-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 36208, + 36182, + 2046, + '1956-01-01 00:00:00.000000', + 500, + 0, + 30000, + 6 + ), + ( + 36209, + 36183, + 1514, + '1963-01-01 00:00:00.000000', + 500, + 0, + 30000, + 19 + ), + ( + 36210, + 36184, + 2061, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36211, + 36185, + 2062, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 5 + ), + ( + 36212, + 36186, + 2082, + '1969-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36213, + 36187, + 2083, + '1970-01-01 00:00:00.000000', + 500, + 0, + 30000, + 13 + ), + ( + 36214, + 36188, + 2089, + '1960-01-01 00:00:00.000000', + 500, + 0, + 30000, + 3 + ), + ( + 36215, + 36189, + 2454, + '1960-01-01 00:00:00.000000', + 0, + 0, + 30000, + 6 + ), + ( + 37001, + 37001, + 1565, + '1999-01-01 00:00:00.000000', + 500, + 0, + 30000, + 0 + ), + ( + 39001, + 39001, + 525, + '1999-01-01 00:00:00.000000', + 500, + 500, + 30000, + 0 + ), + ( + 40001, + 40001, + 527, + '1999-01-01 00:00:00.000000', + 500, + 39, + 30000, + 0 + ), + ( + 40002, + 40002, + 827, + '1932-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40003, + 40003, + 833, + '1940-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40004, + 40004, + 836, + '1949-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40005, + 40005, + 838, + '1953-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40006, + 40006, + 840, + '1957-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40007, + 40007, + 842, + '1957-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40008, + 40008, + 844, + '1957-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40009, + 40009, + 846, + '1963-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40010, + 40010, + 850, + '1964-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40011, + 40011, + 848, + '1964-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40012, + 40012, + 852, + '1969-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40013, + 40013, + 854, + '1970-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40014, + 40014, + 536, + '1947-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40015, + 40015, + 537, + '1955-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40016, + 40016, + 538, + '1957-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40017, + 40017, + 539, + '1957-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40018, + 40018, + 540, + '1957-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40019, + 40019, + 541, + '1958-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40020, + 40020, + 542, + '1959-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40021, + 40021, + 543, + '1963-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40022, + 40022, + 544, + '1964-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40023, + 40023, + 545, + '1966-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40024, + 40024, + 546, + '1967-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40025, + 40025, + 547, + '1967-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40026, + 40026, + 548, + '1969-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40027, + 40027, + 549, + '1969-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40028, + 40028, + 550, + '1970-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40029, + 40029, + 551, + '1970-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40030, + 40030, + 552, + '1970-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40031, + 40031, + 553, + '1973-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40032, + 40032, + 554, + '1969-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40033, + 40033, + 555, + '1969-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40034, + 40034, + 556, + '1969-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40035, + 40035, + 557, + '1970-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40036, + 40036, + 558, + '1971-01-01 00:00:00.000000', + 500, + 30, + 30000, + 0 + ), + ( + 40037, + 40037, + 253, + '1963-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40038, + 40038, + 263, + '1969-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40039, + 40039, + 265, + '1969-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40040, + 40040, + 264, + '1969-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40041, + 40041, + 257, + '1967-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40042, + 40042, + 256, + '1967-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40043, + 40043, + 251, + '1957-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40044, + 40044, + 254, + '1964-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40045, + 40045, + 252, + '1963-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40046, + 40046, + 262, + '1969-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40047, + 40047, + 271, + '1973-01-01 00:00:00.000000', + 50, + 30, + 30000, + 0 + ), + ( + 40048, + 40048, + 255, + '1966-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40049, + 40049, + 260, + '1969-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40050, + 40050, + 259, + '1969-01-01 00:00:00.000000', + 50, + 30, + 30000, + 0 + ), + ( + 40051, + 40051, + 258, + '1969-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40052, + 40052, + 261, + '1970-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40053, + 40053, + 266, + '1970-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40054, + 40054, + 267, + '1970-01-01 00:00:00.000000', + 100, + 40, + 30000, + 0 + ), + ( + 40055, + 40055, + 270, + '1973-01-01 00:00:00.000000', + 50, + 30, + 30000, + 0 + ), + ( + 40056, + 40056, + 269, + '1970-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40057, + 40057, + 408, + '1958-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40058, + 40058, + 268, + '1970-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40059, + 40059, + 1185, + '1957-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 40060, + 40060, + 2154, + '1965-01-01 00:00:00.000000', + 50, + 50, + 30000, + 0 + ), + ( + 40061, + 40061, + 2216, + '1950-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 40062, + 40062, + 2876, + '1970-01-01 00:00:00.000000', + 100, + 30, + 30000, + 0 + ), + ( + 100001, + 100001, + 190, + '1999-01-01 00:00:00.000000', + 1000, + 30, + 30000, + 0 + ), + ( + 100002, + 100002, + 857, + '1932-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100003, + 100003, + 856, + '1967-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100004, + 100004, + 456, + '1999-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100005, + 100005, + 457, + '1999-01-01 00:00:00.000000', + 100, + 2504, + 30000, + 0 + ), + ( + 100006, + 100006, + 2219, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100007, + 100066, + 2279, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100008, + 100067, + 2280, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100009, + 100068, + 2281, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100010, + 100069, + 2282, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100011, + 100070, + 2283, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100012, + 100071, + 2284, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100013, + 100072, + 2285, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100014, + 100073, + 2286, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100015, + 100074, + 2287, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100016, + 100075, + 2288, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100017, + 100076, + 2289, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100018, + 100077, + 2290, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100019, + 100078, + 2291, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100020, + 100079, + 2292, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100021, + 100080, + 2293, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100022, + 100081, + 2294, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100023, + 100082, + 2295, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100024, + 100083, + 2296, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100025, + 100084, + 2297, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100026, + 100085, + 2298, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100027, + 100086, + 2299, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100028, + 100087, + 2300, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100029, + 100088, + 2301, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100030, + 100089, + 2302, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100031, + 100090, + 2303, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100032, + 100091, + 2304, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100033, + 100092, + 2305, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100034, + 100006, + 2219, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100035, + 100007, + 2220, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100036, + 100008, + 2221, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100037, + 100009, + 2222, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100038, + 100010, + 2223, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100039, + 100011, + 2224, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100040, + 100012, + 2225, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100041, + 100013, + 2226, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100042, + 100014, + 2227, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100043, + 100015, + 2228, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100044, + 100016, + 2229, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100045, + 100017, + 2230, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100046, + 100018, + 2231, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100047, + 100019, + 2232, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100048, + 100020, + 2233, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100049, + 100021, + 2234, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100050, + 100022, + 2235, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100051, + 100023, + 2236, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100052, + 100024, + 2237, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100053, + 100025, + 2238, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100054, + 100026, + 2239, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100055, + 100027, + 2240, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100056, + 100028, + 2241, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100057, + 100029, + 2242, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100058, + 100030, + 2243, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100059, + 100031, + 2244, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100060, + 100032, + 2245, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100061, + 100033, + 2246, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100062, + 100034, + 2247, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100063, + 100035, + 2248, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100064, + 100036, + 2249, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100065, + 100037, + 2250, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100066, + 100038, + 2251, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100067, + 100039, + 2252, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100068, + 100040, + 2253, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100069, + 100041, + 2254, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100070, + 100042, + 2255, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100071, + 100043, + 2256, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100072, + 100044, + 2257, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100073, + 100045, + 2258, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100074, + 100046, + 2259, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100075, + 100047, + 2260, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100076, + 100048, + 2261, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100077, + 100049, + 2262, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100078, + 100050, + 2263, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100079, + 100051, + 2264, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100080, + 100052, + 2265, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100081, + 100053, + 2266, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100082, + 100054, + 2267, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100083, + 100055, + 2268, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100084, + 100056, + 2269, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100085, + 100057, + 2270, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100086, + 100058, + 2271, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100087, + 100059, + 2272, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100088, + 100060, + 2273, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100089, + 100061, + 2274, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100090, + 100062, + 2275, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100091, + 100063, + 2276, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100092, + 100064, + 2277, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100093, + 100106, + 2321, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100094, + 100107, + 2322, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100095, + 100108, + 2323, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100096, + 100109, + 2324, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100097, + 100110, + 2325, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100098, + 100111, + 2326, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100099, + 100112, + 2327, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100100, + 100113, + 2328, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100101, + 100114, + 2329, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100102, + 100115, + 2330, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100103, + 100116, + 2331, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100104, + 100117, + 2332, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100105, + 100118, + 2333, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100106, + 100119, + 2334, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100107, + 100120, + 2335, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100108, + 100121, + 2336, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100109, + 100122, + 2337, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100110, + 100123, + 2338, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100111, + 100124, + 2339, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100112, + 100125, + 2340, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100113, + 100126, + 2341, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100114, + 100127, + 2342, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100115, + 100128, + 2343, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100116, + 100129, + 2344, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100117, + 100130, + 2345, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100118, + 100131, + 2346, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100119, + 100132, + 2347, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100120, + 100133, + 2348, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100121, + 100134, + 2349, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100122, + 100135, + 2350, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100123, + 100093, + 2308, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100124, + 100094, + 2309, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100125, + 100095, + 2310, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100126, + 100096, + 2311, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100127, + 100097, + 2312, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100128, + 100098, + 2313, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100129, + 100099, + 2314, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100130, + 100100, + 2315, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100131, + 100101, + 2316, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100132, + 100102, + 2317, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100133, + 100103, + 2318, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100134, + 100104, + 2319, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100135, + 100105, + 2320, + '2001-01-01 00:00:00.000000', + 1000, + 36, + 30000, + 0 + ), + ( + 100136, + 100136, + 2450, + '1970-01-01 00:00:00.000000', + 0, + 36, + 30000, + 0 + ), + ( + 100137, + 100137, + 3648, + '2000-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100138, + 100138, + 3649, + '2000-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100139, + 100139, + 3702, + '2000-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100140, + 100140, + 3703, + '2000-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100141, + 100141, + 3704, + '2001-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100142, + 100142, + 3707, + '2001-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100143, + 100143, + 3708, + '2000-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100144, + 100144, + 3709, + '2000-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 100145, + 100145, + 3710, + '2000-01-01 00:00:00.000000', + 500, + 505, + 30000, + 0 + ), + ( + 110001, + 110001, + 209, + '1932-01-01 00:00:00.000000', + 1, + 107, + 30000, + 0 + ), + ( + 110002, + 110002, + 680, + '1950-01-01 00:00:00.000000', + 1, + 47, + 30000, + 0 + ), + ( + 110003, + 110003, + 681, + '1950-01-01 00:00:00.000000', + 1, + 65, + 30000, + 0 + ), + ( + 110004, + 110004, + 682, + '1950-01-01 00:00:00.000000', + 1, + 87, + 30000, + 0 + ), + ( + 110005, + 110005, + 683, + '1950-01-01 00:00:00.000000', + 1, + 97, + 30000, + 0 + ), + ( + 110006, + 110006, + 684, + '1950-01-01 00:00:00.000000', + 1, + 99, + 30000, + 0 + ), + ( + 110007, + 110007, + 685, + '1950-01-01 00:00:00.000000', + 1, + 62, + 30000, + 0 + ), + ( + 110008, + 110008, + 686, + '1950-01-01 00:00:00.000000', + 1, + 65, + 30000, + 0 + ), + ( + 110009, + 110009, + 687, + '1950-01-01 00:00:00.000000', + 1, + 87, + 30000, + 0 + ), + ( + 110010, + 110010, + 688, + '1950-01-01 00:00:00.000000', + 1, + 97, + 30000, + 0 + ), + ( + 110011, + 110011, + 689, + '1950-01-01 00:00:00.000000', + 1, + 114, + 30000, + 0 + ), + ( + 110012, + 110012, + 690, + '1950-01-01 00:00:00.000000', + 1, + 95, + 30000, + 0 + ), + ( + 110013, + 110013, + 691, + '1950-01-01 00:00:00.000000', + 1, + 127, + 30000, + 0 + ), + ( + 110014, + 110014, + 692, + '1950-01-01 00:00:00.000000', + 1, + 129, + 30000, + 0 + ), + ( + 110015, + 110015, + 693, + '1950-01-01 00:00:00.000000', + 1, + 62, + 30000, + 0 + ), + ( + 110016, + 110016, + 694, + '1950-01-01 00:00:00.000000', + 1, + 80, + 30000, + 0 + ), + ( + 110017, + 110017, + 695, + '1950-01-01 00:00:00.000000', + 1, + 112, + 30000, + 0 + ), + ( + 110018, + 110018, + 696, + '1950-01-01 00:00:00.000000', + 1, + 92, + 30000, + 0 + ), + ( + 110019, + 110019, + 697, + '1950-01-01 00:00:00.000000', + 1, + 95, + 30000, + 0 + ), + ( + 110020, + 110020, + 698, + '1950-01-01 00:00:00.000000', + 1, + 142, + 30000, + 0 + ), + ( + 110021, + 110021, + 699, + '1950-01-01 00:00:00.000000', + 1, + 159, + 30000, + 0 + ), + ( + 110022, + 110022, + 700, + '1960-01-01 00:00:00.000000', + 500, + 184, + 30000, + 0 + ), + ( + 110023, + 110023, + 701, + '1960-01-01 00:00:00.000000', + 1000, + 204, + 30000, + 0 + ), + ( + 110024, + 110024, + 702, + '1960-01-01 00:00:00.000000', + 500, + 225, + 30000, + 0 + ), + ( + 110025, + 110025, + 703, + '1960-01-01 00:00:00.000000', + 500, + 112, + 30000, + 0 + ), + ( + 110026, + 110026, + 704, + '1960-01-01 00:00:00.000000', + 1000, + 122, + 30000, + 0 + ), + ( + 110027, + 110027, + 705, + '1960-01-01 00:00:00.000000', + 500, + 132, + 30000, + 0 + ), + ( + 110028, + 110028, + 706, + '1960-01-01 00:00:00.000000', + 500, + 143, + 30000, + 0 + ), + ( + 110029, + 110029, + 707, + '1960-01-01 00:00:00.000000', + 500, + 153, + 30000, + 0 + ), + ( + 110030, + 110030, + 708, + '1960-01-01 00:00:00.000000', + 500, + 91, + 30000, + 0 + ), + ( + 110031, + 110031, + 709, + '1960-01-01 00:00:00.000000', + 500, + 102, + 30000, + 0 + ), + ( + 110032, + 110032, + 710, + '1960-01-01 00:00:00.000000', + 500, + 112, + 30000, + 0 + ), + ( + 110033, + 110033, + 711, + '1960-01-01 00:00:00.000000', + 500, + 122, + 30000, + 0 + ), + ( + 110034, + 110034, + 712, + '1960-01-01 00:00:00.000000', + 500, + 132, + 30000, + 0 + ), + ( + 110035, + 110035, + 713, + '1960-01-01 00:00:00.000000', + 500, + 102, + 30000, + 0 + ), + ( + 110036, + 110036, + 714, + '1960-01-01 00:00:00.000000', + 500, + 122, + 30000, + 0 + ), + ( + 110037, + 110037, + 715, + '1960-01-01 00:00:00.000000', + 1000, + 204, + 30000, + 0 + ), + ( + 110038, + 110038, + 716, + '1960-01-01 00:00:00.000000', + 1000, + 224, + 30000, + 0 + ), + ( + 110039, + 110039, + 717, + '1960-01-01 00:00:00.000000', + 1000, + 245, + 30000, + 0 + ), + ( + 110040, + 110040, + 718, + '1960-01-01 00:00:00.000000', + 1000, + 255, + 30000, + 0 + ), + ( + 110041, + 110041, + 719, + '1960-01-01 00:00:00.000000', + 1000, + 152, + 30000, + 0 + ), + ( + 110042, + 110042, + 720, + '1960-01-01 00:00:00.000000', + 1000, + 173, + 30000, + 0 + ), + ( + 110043, + 110043, + 721, + '1960-01-01 00:00:00.000000', + 1000, + 183, + 30000, + 0 + ), + ( + 110044, + 110044, + 722, + '1960-01-01 00:00:00.000000', + 1000, + 142, + 30000, + 0 + ), + ( + 110045, + 110045, + 723, + '1960-01-01 00:00:00.000000', + 500, + 162, + 30000, + 0 + ), + ( + 110046, + 110046, + 724, + '1960-01-01 00:00:00.000000', + 1000, + 183, + 30000, + 0 + ), + ( + 110047, + 110047, + 725, + '1960-01-01 00:00:00.000000', + 1000, + 132, + 30000, + 0 + ), + ( + 110048, + 110048, + 726, + '1960-01-01 00:00:00.000000', + 1000, + 152, + 30000, + 0 + ), + ( + 110049, + 110049, + 727, + '1960-01-01 00:00:00.000000', + 1000, + 173, + 30000, + 0 + ), + ( + 110050, + 110050, + 728, + '1960-01-01 00:00:00.000000', + 1000, + 183, + 30000, + 0 + ), + ( + 110051, + 110051, + 729, + '1970-01-01 00:00:00.000000', + 500, + 283, + 30000, + 0 + ), + ( + 110052, + 110052, + 730, + '1970-01-01 00:00:00.000000', + 500, + 300, + 30000, + 0 + ), + ( + 110053, + 110053, + 731, + '1970-01-01 00:00:00.000000', + 500, + 262, + 30000, + 0 + ), + ( + 110054, + 110054, + 732, + '1970-01-01 00:00:00.000000', + 500, + 279, + 30000, + 0 + ), + ( + 110055, + 110055, + 733, + '1970-01-01 00:00:00.000000', + 500, + 250, + 30000, + 0 + ), + ( + 110056, + 110056, + 734, + '1970-01-01 00:00:00.000000', + 500, + 258, + 30000, + 0 + ), + ( + 110057, + 110057, + 735, + '1970-01-01 00:00:00.000000', + 500, + 322, + 30000, + 0 + ), + ( + 110058, + 110058, + 736, + '1970-01-01 00:00:00.000000', + 500, + 339, + 30000, + 0 + ), + ( + 110059, + 110059, + 737, + '1970-01-01 00:00:00.000000', + 500, + 300, + 30000, + 0 + ), + ( + 110060, + 110060, + 738, + '1970-01-01 00:00:00.000000', + 500, + 309, + 30000, + 0 + ), + ( + 110061, + 110061, + 739, + '1970-01-01 00:00:00.000000', + 500, + 326, + 30000, + 0 + ), + ( + 110062, + 110062, + 740, + '1970-01-01 00:00:00.000000', + 500, + 288, + 30000, + 0 + ), + ( + 110063, + 110063, + 741, + '1970-01-01 00:00:00.000000', + 500, + 297, + 30000, + 0 + ), + ( + 110064, + 110064, + 742, + '1970-01-01 00:00:00.000000', + 500, + 314, + 30000, + 0 + ), + ( + 110065, + 110065, + 743, + '1970-01-01 00:00:00.000000', + 500, + 369, + 30000, + 0 + ), + ( + 110066, + 110066, + 744, + '1970-01-01 00:00:00.000000', + 500, + 399, + 30000, + 0 + ), + ( + 110067, + 110067, + 745, + '1970-01-01 00:00:00.000000', + 500, + 407, + 30000, + 0 + ), + ( + 110068, + 110068, + 746, + '1970-01-01 00:00:00.000000', + 500, + 437, + 30000, + 0 + ), + ( + 110069, + 110069, + 747, + '1970-01-01 00:00:00.000000', + 250, + 690, + 30000, + 0 + ), + ( + 110070, + 110070, + 748, + '1970-01-01 00:00:00.000000', + 250, + 652, + 30000, + 0 + ), + ( + 110071, + 110071, + 749, + '1970-01-01 00:00:00.000000', + 250, + 660, + 30000, + 0 + ), + ( + 110072, + 110072, + 750, + '1970-01-01 00:00:00.000000', + 250, + 669, + 30000, + 0 + ), + ( + 110073, + 110073, + 751, + '1970-01-01 00:00:00.000000', + 250, + 613, + 30000, + 0 + ), + ( + 110074, + 110074, + 752, + '1970-01-01 00:00:00.000000', + 250, + 622, + 30000, + 0 + ), + ( + 110075, + 110075, + 753, + '1970-01-01 00:00:00.000000', + 250, + 630, + 30000, + 0 + ), + ( + 110076, + 110076, + 754, + '1970-01-01 00:00:00.000000', + 250, + 639, + 30000, + 0 + ), + ( + 110077, + 110077, + 755, + '1970-01-01 00:00:00.000000', + 250, + 738, + 30000, + 0 + ), + ( + 110078, + 110078, + 756, + '1970-01-01 00:00:00.000000', + 250, + 699, + 30000, + 0 + ), + ( + 110079, + 110079, + 757, + '1970-01-01 00:00:00.000000', + 250, + 708, + 30000, + 0 + ), + ( + 110080, + 110080, + 758, + '1975-01-01 00:00:00.000000', + 250, + 780, + 30000, + 0 + ), + ( + 110081, + 110081, + 759, + '1975-01-01 00:00:00.000000', + 250, + 788, + 30000, + 0 + ), + ( + 110082, + 110082, + 760, + '1975-01-01 00:00:00.000000', + 250, + 750, + 30000, + 0 + ), + ( + 110083, + 110083, + 761, + '1975-01-01 00:00:00.000000', + 250, + 758, + 30000, + 0 + ), + ( + 110084, + 110084, + 762, + '1975-01-01 00:00:00.000000', + 250, + 767, + 30000, + 0 + ), + ( + 110085, + 110085, + 763, + '1975-01-01 00:00:00.000000', + 250, + 711, + 30000, + 0 + ), + ( + 110086, + 110086, + 764, + '1975-01-01 00:00:00.000000', + 250, + 720, + 30000, + 0 + ), + ( + 110087, + 110087, + 765, + '1975-01-01 00:00:00.000000', + 250, + 728, + 30000, + 0 + ), + ( + 110088, + 110088, + 766, + '1975-01-01 00:00:00.000000', + 250, + 737, + 30000, + 0 + ), + ( + 110089, + 110089, + 767, + '1975-01-01 00:00:00.000000', + 250, + 908, + 30000, + 0 + ), + ( + 110090, + 110090, + 768, + '1975-01-01 00:00:00.000000', + 250, + 917, + 30000, + 0 + ), + ( + 110091, + 110091, + 770, + '1975-01-01 00:00:00.000000', + 250, + 878, + 30000, + 0 + ), + ( + 110092, + 110092, + 771, + '1975-01-01 00:00:00.000000', + 266, + 887, + 30000, + 0 + ), + ( + 110093, + 110093, + 772, + '1975-01-01 00:00:00.000000', + 250, + 848, + 30000, + 0 + ), + ( + 110094, + 110094, + 773, + '1975-01-01 00:00:00.000000', + 250, + 865, + 30000, + 0 + ), + ( + 110095, + 110095, + 774, + '1975-01-01 00:00:00.000000', + 250, + 883, + 30000, + 0 + ), + ( + 110096, + 110096, + 775, + '1975-01-01 00:00:00.000000', + 250, + 818, + 30000, + 0 + ), + ( + 110097, + 110097, + 776, + '1975-01-01 00:00:00.000000', + 250, + 827, + 30000, + 0 + ), + ( + 110098, + 110098, + 777, + '1975-01-01 00:00:00.000000', + 250, + 835, + 30000, + 0 + ), + ( + 110099, + 110099, + 778, + '1975-01-01 00:00:00.000000', + 250, + 797, + 30000, + 0 + ), + ( + 110100, + 110100, + 779, + '1975-01-01 00:00:00.000000', + 250, + 805, + 30000, + 0 + ), + ( + 110101, + 110101, + 780, + '1975-01-01 00:00:00.000000', + 250, + 814, + 30000, + 0 + ), + ( + 110102, + 110102, + 781, + '1975-01-01 00:00:00.000000', + 250, + 947, + 30000, + 0 + ), + ( + 110103, + 110103, + 782, + '1975-01-01 00:00:00.000000', + 250, + 964, + 30000, + 0 + ), + ( + 110104, + 110104, + 783, + '1975-01-01 00:00:00.000000', + 250, + 981, + 30000, + 0 + ), + ( + 110105, + 110105, + 784, + '1975-01-01 00:00:00.000000', + 250, + 917, + 30000, + 0 + ), + ( + 110106, + 110106, + 785, + '1975-01-01 00:00:00.000000', + 250, + 925, + 30000, + 0 + ), + ( + 110107, + 110107, + 786, + '1975-01-01 00:00:00.000000', + 250, + 934, + 30000, + 0 + ), + ( + 110108, + 110108, + 787, + '1975-01-01 00:00:00.000000', + 250, + 943, + 30000, + 0 + ), + ( + 110109, + 110109, + 788, + '1975-01-01 00:00:00.000000', + 250, + 1063, + 30000, + 0 + ), + ( + 110110, + 110110, + 789, + '1975-01-01 00:00:00.000000', + 125, + 1279, + 30000, + 0 + ), + ( + 110111, + 110111, + 790, + '1975-01-01 00:00:00.000000', + 125, + 1288, + 30000, + 0 + ), + ( + 110112, + 110112, + 791, + '1975-01-01 00:00:00.000000', + 125, + 1249, + 30000, + 0 + ), + ( + 110113, + 110113, + 792, + '1975-01-01 00:00:00.000000', + 125, + 1258, + 30000, + 0 + ), + ( + 110114, + 110114, + 793, + '1975-01-01 00:00:00.000000', + 125, + 1267, + 30000, + 0 + ), + ( + 110115, + 110115, + 794, + '1975-01-01 00:00:00.000000', + 125, + 1211, + 30000, + 0 + ), + ( + 110116, + 110116, + 795, + '1975-01-01 00:00:00.000000', + 125, + 1219, + 30000, + 0 + ), + ( + 110117, + 110117, + 796, + '1975-01-01 00:00:00.000000', + 125, + 1228, + 30000, + 0 + ), + ( + 110118, + 110118, + 797, + '1975-01-01 00:00:00.000000', + 125, + 1237, + 30000, + 0 + ), + ( + 110119, + 110119, + 798, + '1975-01-01 00:00:00.000000', + 125, + 1408, + 30000, + 0 + ), + ( + 110120, + 110120, + 799, + '1975-01-01 00:00:00.000000', + 125, + 1378, + 30000, + 0 + ), + ( + 110121, + 110121, + 800, + '1975-01-01 00:00:00.000000', + 125, + 1387, + 30000, + 0 + ), + ( + 110122, + 110120, + 799, + '1975-01-01 00:00:00.000000', + 125, + 1378, + 30000, + 0 + ), + ( + 110123, + 110122, + 801, + '1975-01-01 00:00:00.000000', + 125, + 1348, + 30000, + 0 + ), + ( + 110124, + 110123, + 802, + '1975-01-01 00:00:00.000000', + 125, + 1365, + 30000, + 0 + ), + ( + 110125, + 110124, + 803, + '1975-01-01 00:00:00.000000', + 125, + 1382, + 30000, + 0 + ), + ( + 110126, + 110125, + 804, + '1975-01-01 00:00:00.000000', + 125, + 1318, + 30000, + 0 + ), + ( + 110127, + 110126, + 805, + '1975-01-01 00:00:00.000000', + 125, + 1335, + 30000, + 0 + ), + ( + 110128, + 110127, + 806, + '1975-01-01 00:00:00.000000', + 125, + 1297, + 30000, + 0 + ), + ( + 110129, + 110128, + 807, + '1975-01-01 00:00:00.000000', + 125, + 1305, + 30000, + 0 + ), + ( + 110130, + 110129, + 808, + '1975-01-01 00:00:00.000000', + 125, + 1314, + 30000, + 0 + ), + ( + 110131, + 110130, + 809, + '1975-01-01 00:00:00.000000', + 125, + 1447, + 30000, + 0 + ), + ( + 110132, + 110131, + 810, + '1975-01-01 00:00:00.000000', + 125, + 1464, + 30000, + 0 + ), + ( + 110133, + 110132, + 811, + '1975-01-01 00:00:00.000000', + 125, + 1417, + 30000, + 0 + ), + ( + 110134, + 110133, + 812, + '1975-01-01 00:00:00.000000', + 125, + 1425, + 30000, + 0 + ), + ( + 110135, + 110134, + 813, + '1975-01-01 00:00:00.000000', + 125, + 1434, + 30000, + 0 + ), + ( + 110136, + 110135, + 814, + '1975-01-01 00:00:00.000000', + 125, + 1442, + 30000, + 0 + ), + ( + 110137, + 110136, + 962, + '1950-01-01 00:00:00.000000', + 2, + 172, + 30000, + 0 + ), + ( + 110138, + 110137, + 1687, + '1969-01-01 00:00:00.000000', + 0, + 994, + 30000, + 0 + ), + ( + 110139, + 110138, + 1743, + '1995-01-01 00:00:00.000000', + 0, + 1781, + 30000, + 0 + ), + ( + 110140, + 110139, + 2389, + '2001-03-22 00:00:00.000000', + 125, + 248, + 30000, + 0 + ), + ( + 110141, + 110140, + 2422, + '1970-01-01 00:00:00.000000', + 0, + 591, + 30000, + 0 + ), + ( + 110142, + 110141, + 2433, + '1960-01-01 00:00:00.000000', + 250, + 134, + 30000, + 0 + ), + ( + 110143, + 110142, + 2434, + '1960-01-01 00:00:00.000000', + 250, + 139, + 30000, + 0 + ), + ( + 110144, + 110143, + 2435, + '1960-01-01 00:00:00.000000', + 250, + 147, + 30000, + 0 + ), + ( + 110145, + 110144, + 2436, + '1960-01-01 00:00:00.000000', + 250, + 156, + 30000, + 0 + ), + ( + 110146, + 110145, + 2437, + '1960-01-01 00:00:00.000000', + 250, + 167, + 30000, + 0 + ), + ( + 110147, + 110146, + 2438, + '1960-01-01 00:00:00.000000', + 250, + 172, + 30000, + 0 + ), + ( + 110148, + 110147, + 2439, + '1960-01-01 00:00:00.000000', + 250, + 182, + 30000, + 0 + ), + ( + 110149, + 110148, + 2440, + '1960-01-01 00:00:00.000000', + 250, + 245, + 30000, + 0 + ), + ( + 110150, + 110149, + 2441, + '1960-01-01 00:00:00.000000', + 250, + 255, + 30000, + 0 + ), + ( + 110151, + 110150, + 2442, + '1960-01-01 00:00:00.000000', + 250, + 239, + 30000, + 0 + ), + ( + 110152, + 110151, + 2616, + '1960-01-01 00:00:00.000000', + 500, + 274, + 30000, + 0 + ), + ( + 110153, + 110152, + 2615, + '1960-01-01 00:00:00.000000', + 500, + 292, + 30000, + 0 + ), + ( + 110154, + 110153, + 2614, + '1960-01-01 00:00:00.000000', + 500, + 313, + 30000, + 0 + ), + ( + 110155, + 110154, + 2613, + '1960-01-01 00:00:00.000000', + 500, + 322, + 30000, + 0 + ), + ( + 110156, + 110155, + 2612, + '1960-01-01 00:00:00.000000', + 500, + 313, + 30000, + 0 + ), + ( + 110157, + 110156, + 2611, + '1960-01-01 00:00:00.000000', + 500, + 330, + 30000, + 0 + ), + ( + 110158, + 110157, + 2610, + '1960-01-01 00:00:00.000000', + 500, + 352, + 30000, + 0 + ), + ( + 110159, + 110158, + 2609, + '1960-01-01 00:00:00.000000', + 500, + 360, + 30000, + 0 + ), + ( + 110160, + 110159, + 2608, + '1960-01-01 00:00:00.000000', + 500, + 369, + 30000, + 0 + ), + ( + 110161, + 110160, + 2607, + '1960-01-01 00:00:00.000000', + 500, + 382, + 30000, + 0 + ), + ( + 110162, + 110161, + 2606, + '1960-01-01 00:00:00.000000', + 500, + 390, + 30000, + 0 + ), + ( + 110163, + 110162, + 2605, + '1960-01-01 00:00:00.000000', + 500, + 412, + 30000, + 0 + ), + ( + 110164, + 110163, + 2604, + '1960-01-01 00:00:00.000000', + 500, + 420, + 30000, + 0 + ), + ( + 110165, + 110164, + 2603, + '1960-01-01 00:00:00.000000', + 500, + 437, + 30000, + 0 + ), + ( + 110166, + 110165, + 2602, + '1960-01-01 00:00:00.000000', + 125, + 810, + 30000, + 0 + ), + ( + 110167, + 110166, + 2601, + '1960-01-01 00:00:00.000000', + 125, + 818, + 30000, + 0 + ), + ( + 110168, + 110167, + 2600, + '1960-01-01 00:00:00.000000', + 125, + 835, + 30000, + 0 + ), + ( + 110169, + 110168, + 2599, + '1960-01-01 00:00:00.000000', + 125, + 938, + 30000, + 0 + ), + ( + 110170, + 110169, + 2660, + '1978-01-01 00:00:00.000000', + 0, + 1841, + 30000, + 0 + ), + ( + 110171, + 110170, + 2661, + '1978-01-01 00:00:00.000000', + 0, + 1704, + 30000, + 0 + ), + ( + 110172, + 110172, + 3035, + '1978-01-01 00:00:00.000000', + 0, + 5340, + 30000, + 0 + ), + ( + 110173, + 110171, + 3034, + '1978-01-01 00:00:00.000000', + 0, + 5203, + 30000, + 0 + ), + ( + 110174, + 110173, + 3033, + '1995-01-01 00:00:00.000000', + 0, + 5280, + 30000, + 0 + ), + ( + 110175, + 110174, + 3626, + '1995-01-01 00:00:00.000000', + 0, + 1884, + 30000, + 0 + ), + ( + 110176, + 110175, + 3627, + '1995-01-01 00:00:00.000000', + 0, + 1836, + 30000, + 0 + ), + ( + 110177, + 110176, + 3628, + '1995-01-01 00:00:00.000000', + 0, + 1815, + 30000, + 0 + ), + ( + 110178, + 110177, + 3629, + '1995-01-01 00:00:00.000000', + 0, + 1845, + 30000, + 0 + ), + ( + 110179, + 110178, + 3630, + '1995-01-01 00:00:00.000000', + 0, + 1824, + 30000, + 0 + ), + ( + 110180, + 110179, + 3631, + '1995-01-01 00:00:00.000000', + 0, + 1862, + 30000, + 0 + ), + ( + 110181, + 110180, + 3632, + '1995-01-01 00:00:00.000000', + 0, + 1871, + 30000, + 0 + ), + ( + 110182, + 110181, + 3633, + '1995-01-01 00:00:00.000000', + 0, + 1879, + 30000, + 0 + ), + ( + 110183, + 110182, + 3634, + '1995-01-01 00:00:00.000000', + 0, + 1888, + 30000, + 0 + ), + ( + 110184, + 110183, + 3635, + '1995-01-01 00:00:00.000000', + 0, + 1776, + 30000, + 0 + ), + ( + 110185, + 110184, + 3636, + '1995-01-01 00:00:00.000000', + 0, + 1785, + 30000, + 0 + ), + ( + 110186, + 110185, + 3637, + '1995-01-01 00:00:00.000000', + 0, + 1815, + 30000, + 0 + ), + ( + 110187, + 110186, + 3638, + '1995-01-01 00:00:00.000000', + 0, + 1794, + 30000, + 0 + ), + ( + 110188, + 110187, + 3639, + '1995-01-01 00:00:00.000000', + 0, + 1824, + 30000, + 0 + ), + ( + 110189, + 110188, + 3640, + '1995-01-01 00:00:00.000000', + 0, + 1832, + 30000, + 0 + ), + ( + 110190, + 110189, + 3641, + '1995-01-01 00:00:00.000000', + 0, + 1811, + 30000, + 0 + ), + ( + 110191, + 110190, + 3642, + '1995-01-01 00:00:00.000000', + 0, + 1716, + 30000, + 0 + ), + ( + 110192, + 110191, + 3643, + '1995-01-01 00:00:00.000000', + 0, + 1746, + 30000, + 0 + ), + ( + 110193, + 110192, + 3644, + '1995-01-01 00:00:00.000000', + 0, + 1776, + 30000, + 0 + ), + ( + 110194, + 110193, + 3645, + '1995-01-01 00:00:00.000000', + 0, + 1725, + 30000, + 0 + ), + ( + 110195, + 110194, + 3646, + '1995-01-01 00:00:00.000000', + 0, + 1785, + 30000, + 0 + ), + ( + 110196, + 110195, + 3647, + '1995-01-01 00:00:00.000000', + 0, + 1764, + 30000, + 0 + ), + ( + 110197, + 110201, + 3765, + '1965-01-01 00:00:00.000000', + 125, + 412, + 30000, + 0 + ), + ( + 110198, + 110200, + 3766, + '1965-01-01 00:00:00.000000', + 125, + 403, + 30000, + 0 + ), + ( + 110199, + 110199, + 3767, + '1965-01-01 00:00:00.000000', + 125, + 395, + 30000, + 0 + ), + ( + 110200, + 110198, + 3768, + '1965-01-01 00:00:00.000000', + 60, + 438, + 30000, + 0 + ), + ( + 110201, + 110197, + 3769, + '1965-01-01 00:00:00.000000', + 60, + 420, + 30000, + 0 + ), + ( + 110202, + 110196, + 3770, + '1965-01-01 00:00:00.000000', + 250, + 386, + 30000, + 0 + ), + ( + 130001, + 130001, + 121, + '1999-01-01 00:00:00.000000', + 500, + 1234, + 30000, + 0 + ), + ( + 130002, + 130002, + 122, + '1999-01-01 00:00:00.000000', + 1000, + 1298, + 30000, + 0 + ), + ( + 130003, + 130003, + 123, + '1999-01-01 00:00:00.000000', + 125, + 1744, + 30000, + 0 + ), + ( + 130004, + 130004, + 124, + '1999-01-01 00:00:00.000000', + 500, + 1357, + 30000, + 0 + ), + ( + 130005, + 130005, + 125, + '1999-01-01 00:00:00.000000', + 500, + 1282, + 30000, + 0 + ), + ( + 130006, + 130006, + 126, + '1999-01-01 00:00:00.000000', + 250, + 1859, + 30000, + 0 + ), + ( + 130007, + 130007, + 127, + '1999-01-01 00:00:00.000000', + 125, + 1490, + 30000, + 0 + ), + ( + 130008, + 130008, + 128, + '1999-01-01 00:00:00.000000', + 125, + 1474, + 30000, + 0 + ), + ( + 130009, + 130009, + 129, + '1999-01-01 00:00:00.000000', + 250, + 1681, + 30000, + 0 + ), + ( + 130010, + 130010, + 130, + '1999-01-01 00:00:00.000000', + 125, + 1859, + 30000, + 0 + ), + ( + 130011, + 130011, + 131, + '1999-01-01 00:00:00.000000', + 250, + 2360, + 30000, + 0 + ), + ( + 130012, + 130051, + 864, + '1932-01-01 00:00:00.000000', + 1000, + 684, + 30000, + 0 + ), + ( + 130013, + 130013, + 132, + '1999-01-01 00:00:00.000000', + 125, + 2012, + 30000, + 0 + ), + ( + 130014, + 130014, + 133, + '1999-01-01 00:00:00.000000', + 125, + 1887, + 30000, + 0 + ), + ( + 130015, + 130015, + 134, + '1999-01-01 00:00:00.000000', + 250, + 1570, + 30000, + 0 + ), + ( + 130016, + 130016, + 135, + '1999-01-01 00:00:00.000000', + 250, + 1700, + 30000, + 0 + ), + ( + 130017, + 130017, + 136, + '1999-01-01 00:00:00.000000', + 250, + 1999, + 30000, + 0 + ), + ( + 130018, + 130018, + 137, + '1999-01-01 00:00:00.000000', + 250, + 1581, + 30000, + 0 + ), + ( + 130019, + 130019, + 138, + '1999-01-01 00:00:00.000000', + 500, + 1342, + 30000, + 0 + ), + ( + 130020, + 130020, + 139, + '1999-01-01 00:00:00.000000', + 250, + 1576, + 30000, + 0 + ), + ( + 130021, + 130021, + 227, + '1957-01-01 00:00:00.000000', + 1000, + 1058, + 30000, + 0 + ), + ( + 130022, + 130022, + 247, + '1957-01-01 00:00:00.000000', + 500, + 1355, + 30000, + 0 + ), + ( + 130023, + 130023, + 248, + '1957-01-01 00:00:00.000000', + 500, + 1206, + 30000, + 0 + ), + ( + 130024, + 130024, + 249, + '1957-01-01 00:00:00.000000', + 500, + 1576, + 30000, + 0 + ), + ( + 130025, + 130025, + 250, + '1957-05-01 00:00:00.000000', + 125, + 1162, + 30000, + 0 + ), + ( + 130026, + 130026, + 873, + '1957-01-01 00:00:00.000000', + 500, + 1191, + 30000, + 0 + ), + ( + 130027, + 130029, + 423, + '1966-01-01 00:00:00.000000', + 500, + 2179, + 30000, + 0 + ), + ( + 130028, + 130028, + 422, + '1963-01-01 00:00:00.000000', + 250, + 2211, + 30000, + 0 + ), + ( + 130029, + 130030, + 424, + '1966-01-01 00:00:00.000000', + 250, + 2027, + 30000, + 0 + ), + ( + 130030, + 130031, + 425, + '1999-01-01 00:00:00.000000', + 60, + 4490, + 30000, + 0 + ), + ( + 130031, + 130032, + 426, + '1999-01-01 00:00:00.000000', + 0, + 2608, + 30000, + 0 + ), + ( + 130032, + 130033, + 427, + '1963-01-01 00:00:00.000000', + 1000, + 1033, + 30000, + 0 + ), + ( + 130033, + 130034, + 428, + '1969-01-01 00:00:00.000000', + 500, + 1186, + 30000, + 0 + ), + ( + 130034, + 130035, + 867, + '1965-01-01 00:00:00.000000', + 500, + 1161, + 30000, + 0 + ), + ( + 130035, + 130036, + 866, + '1957-01-01 00:00:00.000000', + 60, + 2906, + 30000, + 0 + ), + ( + 130036, + 130037, + 429, + '1957-01-01 00:00:00.000000', + 60, + 3709, + 30000, + 0 + ), + ( + 130037, + 130038, + 430, + '1957-01-01 00:00:00.000000', + 30, + 3072, + 30000, + 0 + ), + ( + 130038, + 130039, + 431, + '1959-01-01 00:00:00.000000', + 60, + 3262, + 30000, + 0 + ), + ( + 130039, + 130040, + 868, + '1964-01-01 00:00:00.000000', + 500, + 1397, + 30000, + 0 + ), + ( + 130040, + 130041, + 432, + '1977-01-01 00:00:00.000000', + 250, + 1919, + 30000, + 0 + ), + ( + 130041, + 130042, + 433, + '1979-01-01 00:00:00.000000', + 500, + 1739, + 30000, + 0 + ), + ( + 130042, + 130043, + 872, + '1957-01-01 00:00:00.000000', + 1000, + 996, + 30000, + 0 + ), + ( + 130043, + 130044, + 435, + '1964-01-01 00:00:00.000000', + 250, + 1589, + 30000, + 0 + ), + ( + 130044, + 130045, + 499, + '1999-01-01 00:00:00.000000', + 250, + 2155, + 30000, + 0 + ), + ( + 130045, + 130046, + 500, + '1999-01-01 00:00:00.000000', + 125, + 1281, + 30000, + 0 + ), + ( + 130046, + 130047, + 874, + '1999-01-01 00:00:00.000000', + 500, + 3450, + 30000, + 0 + ), + ( + 130047, + 130048, + 865, + '1999-01-01 00:00:00.000000', + 1000, + 1033, + 30000, + 0 + ), + ( + 130048, + 130049, + 1034, + '1969-01-01 00:00:00.000000', + 125, + 1522, + 30000, + 0 + ), + ( + 130049, + 130012, + 1158, + '1957-01-01 00:00:00.000000', + 1000, + 1263, + 30000, + 0 + ), + ( + 130050, + 130027, + 1159, + '1963-01-01 00:00:00.000000', + 500, + 1925, + 30000, + 0 + ), + ( + 130051, + 130050, + 1746, + '1995-01-01 00:00:00.000000', + 30, + 6341, + 30000, + 0 + ), + ( + 130052, + 130052, + 2801, + '1972-01-01 00:00:00.000000', + 0, + 3382, + 30000, + 0 + ), + ( + 130053, + 130053, + 2802, + '1972-01-01 00:00:00.000000', + 0, + 2960, + 30000, + 0 + ), + ( + 130054, + 130054, + 3762, + '1965-01-01 00:00:00.000000', + 125, + 3163, + 30000, + 0 + ), + ( + 130055, + 130055, + 3763, + '1967-01-01 00:00:00.000000', + 125, + 1331, + 30000, + 0 + ), + ( + 130056, + 130056, + 3764, + '1967-01-01 00:00:00.000000', + 125, + 2695, + 30000, + 0 + ), + ( + 130057, + 130057, + 3772, + '1955-01-01 00:00:00.000000', + 1000, + 1497, + 30000, + 0 + ), + ( + 140001, + 140001, + 140, + '1999-01-01 00:00:00.000000', + 250, + 725, + 30000, + 0 + ), + ( + 140002, + 140002, + 141, + '1999-01-01 00:00:00.000000', + 500, + 774, + 30000, + 0 + ), + ( + 140003, + 140003, + 142, + '1999-01-01 00:00:00.000000', + 1000, + 790, + 30000, + 0 + ), + ( + 140004, + 140004, + 143, + '1999-01-01 00:00:00.000000', + 1000, + 846, + 30000, + 0 + ), + ( + 140005, + 140005, + 144, + '1999-01-01 00:00:00.000000', + 500, + 865, + 30000, + 0 + ), + ( + 140006, + 140006, + 145, + '1999-01-01 00:00:00.000000', + 500, + 892, + 30000, + 0 + ), + ( + 140007, + 140007, + 146, + '1999-01-01 00:00:00.000000', + 250, + 911, + 30000, + 0 + ), + ( + 140008, + 140008, + 147, + '1999-01-01 00:00:00.000000', + 250, + 921, + 30000, + 0 + ), + ( + 140009, + 140009, + 148, + '1999-01-01 00:00:00.000000', + 250, + 923, + 30000, + 0 + ), + ( + 140010, + 140010, + 149, + '1999-01-01 00:00:00.000000', + 250, + 945, + 30000, + 0 + ), + ( + 140011, + 140011, + 150, + '1999-01-01 00:00:00.000000', + 250, + 960, + 30000, + 0 + ), + ( + 140012, + 140012, + 151, + '1999-01-01 00:00:00.000000', + 250, + 977, + 30000, + 0 + ), + ( + 140013, + 140013, + 152, + '1999-01-01 00:00:00.000000', + 125, + 1008, + 30000, + 0 + ), + ( + 140014, + 140014, + 153, + '1999-01-01 00:00:00.000000', + 60, + 1558, + 30000, + 0 + ), + ( + 140015, + 140015, + 154, + '1999-01-01 00:00:00.000000', + 60, + 1642, + 30000, + 0 + ), + ( + 140016, + 140016, + 440, + '1957-01-01 00:00:00.000000', + 1000, + 815, + 30000, + 0 + ), + ( + 140017, + 140017, + 869, + '1957-01-01 00:00:00.000000', + 250, + 926, + 30000, + 0 + ), + ( + 140018, + 140018, + 441, + '1955-01-01 00:00:00.000000', + 500, + 887, + 30000, + 0 + ), + ( + 140019, + 140019, + 870, + '1999-01-01 00:00:00.000000', + 1000, + 851, + 30000, + 0 + ), + ( + 140020, + 140020, + 871, + '1999-01-01 00:00:00.000000', + 125, + 1010, + 30000, + 0 + ), + ( + 140021, + 140021, + 1160, + '1957-01-01 00:00:00.000000', + 250, + 962, + 30000, + 0 + ), + ( + 140022, + 140022, + 2152, + '1960-01-01 00:00:00.000000', + 1000, + 807, + 30000, + 0 + ), + ( + 140023, + 140023, + 2195, + '1932-01-01 00:00:00.000000', + 125, + 454, + 30000, + 0 + ), + ( + 140024, + 140024, + 2198, + '1949-01-01 00:00:00.000000', + 125, + 430, + 30000, + 0 + ), + ( + 140025, + 140025, + 2199, + '1940-01-01 00:00:00.000000', + 125, + 360, + 30000, + 0 + ), + ( + 140026, + 140026, + 2774, + '1965-01-01 00:00:00.000000', + 125, + 1187, + 30000, + 0 + ), + ( + 140027, + 140027, + 2775, + '1965-01-01 00:00:00.000000', + 125, + 1256, + 30000, + 0 + ), + ( + 140028, + 140028, + 2776, + '1965-01-01 00:00:00.000000', + 125, + 1322, + 30000, + 0 + ), + ( + 140029, + 140029, + 2777, + '1965-01-01 00:00:00.000000', + 125, + 1358, + 30000, + 0 + ), + ( + 140030, + 140030, + 2778, + '1965-01-01 00:00:00.000000', + 125, + 1424, + 30000, + 0 + ), + ( + 140031, + 140031, + 2779, + '1965-01-01 00:00:00.000000', + 60, + 1558, + 30000, + 0 + ), + ( + 140032, + 140032, + 2780, + '1965-01-01 00:00:00.000000', + 1000, + 810, + 30000, + 0 + ), + ( + 140033, + 140033, + 2781, + '1965-01-01 00:00:00.000000', + 1000, + 856, + 30000, + 0 + ), + ( + 140034, + 140034, + 2782, + '1965-01-01 00:00:00.000000', + 500, + 899, + 30000, + 0 + ), + ( + 140035, + 140035, + 2783, + '1965-01-01 00:00:00.000000', + 250, + 923, + 30000, + 0 + ), + ( + 140036, + 140036, + 2784, + '1965-01-01 00:00:00.000000', + 250, + 967, + 30000, + 0 + ), + ( + 140037, + 140037, + 2785, + '1965-01-01 00:00:00.000000', + 125, + 1056, + 30000, + 0 + ), + ( + 140038, + 140038, + 2786, + '1965-01-01 00:00:00.000000', + 250, + 725, + 30000, + 0 + ), + ( + 140039, + 140039, + 2787, + '1965-01-01 00:00:00.000000', + 1000, + 810, + 30000, + 0 + ), + ( + 140040, + 140040, + 2788, + '1965-01-01 00:00:00.000000', + 500, + 878, + 30000, + 0 + ), + ( + 140041, + 140041, + 2789, + '1965-01-01 00:00:00.000000', + 250, + 923, + 30000, + 0 + ), + ( + 140042, + 140042, + 2790, + '1965-01-01 00:00:00.000000', + 250, + 960, + 30000, + 0 + ), + ( + 140043, + 140048, + 2791, + '1965-01-01 00:00:00.000000', + 125, + 1060, + 30000, + 0 + ), + ( + 140044, + 140043, + 2792, + '1965-01-01 00:00:00.000000', + 125, + 1184, + 30000, + 0 + ), + ( + 140045, + 140044, + 2793, + '1965-01-01 00:00:00.000000', + 125, + 1271, + 30000, + 0 + ), + ( + 140046, + 140045, + 2794, + '1965-01-01 00:00:00.000000', + 125, + 1358, + 30000, + 0 + ), + ( + 140047, + 140049, + 2795, + '1965-01-01 00:00:00.000000', + 30, + 1793, + 30000, + 0 + ), + ( + 140048, + 140046, + 2796, + '1965-01-01 00:00:00.000000', + 125, + 1424, + 30000, + 0 + ), + ( + 140049, + 140047, + 2797, + '1965-01-01 00:00:00.000000', + 60, + 1558, + 30000, + 0 + ), + ( + 140050, + 140052, + 2798, + '1970-01-01 00:00:00.000000', + 30, + 2061, + 30000, + 0 + ), + ( + 140051, + 140051, + 2799, + '1970-01-01 00:00:00.000000', + 30, + 1881, + 30000, + 0 + ), + ( + 140052, + 140050, + 2800, + '1970-01-01 00:00:00.000000', + 60, + 1730, + 30000, + 0 + ), + ( + 150001, + 150004, + 504, + '1999-01-01 00:00:00.000000', + 0, + 730, + 30000, + 0 + ), + ( + 150002, + 150003, + 503, + '1999-01-01 00:00:00.000000', + 1000, + 280, + 30000, + 0 + ), + ( + 150003, + 150001, + 501, + '1999-01-01 00:00:00.000000', + 250, + 480, + 30000, + 0 + ), + ( + 150004, + 150002, + 502, + '1999-01-01 00:00:00.000000', + 500, + 330, + 30000, + 0 + ), + ( + 160001, + 160001, + 1162, + '1953-01-01 00:00:00.000000', + 1000, + 1116, + 30000, + 21 + ), + ( + 160002, + 160002, + 1429, + '1999-01-01 00:00:00.000000', + 500, + 2198, + 30000, + 8 + ), + ( + 160003, + 160003, + 1430, + '1999-01-01 00:00:00.000000', + 125, + 5777, + 30000, + 7 + ), + ( + 160004, + 160004, + 1455, + '1963-01-01 00:00:00.000000', + 125, + 1787, + 30000, + 19 + ), + ( + 160005, + 160005, + 76, + '1999-01-01 00:00:00.000000', + 1000, + 1087, + 30000, + 6 + ), + ( + 160006, + 160006, + 77, + '1999-01-01 00:00:00.000000', + 1000, + 1140, + 30000, + 6 + ), + ( + 160007, + 160007, + 78, + '1999-01-01 00:00:00.000000', + 500, + 1199, + 30000, + 6 + ), + ( + 160008, + 160008, + 80, + '1999-01-01 00:00:00.000000', + 500, + 1215, + 30000, + 6 + ), + ( + 160009, + 160009, + 83, + '1999-01-01 00:00:00.000000', + 500, + 1283, + 30000, + 6 + ), + ( + 160010, + 160010, + 1161, + '1940-01-01 00:00:00.000000', + 250, + 1204, + 30000, + 20 + ), + ( + 160011, + 160011, + 86, + '1999-01-01 00:00:00.000000', + 500, + 1458, + 30000, + 19 + ), + ( + 160012, + 160012, + 87, + '1999-01-01 00:00:00.000000', + 500, + 1367, + 30000, + 6 + ), + ( + 160013, + 160013, + 90, + '1999-01-01 00:00:00.000000', + 250, + 1425, + 30000, + 9 + ), + ( + 160014, + 160014, + 92, + '1965-01-01 00:00:00.000000', + 250, + 2478, + 30000, + 5 + ), + ( + 160015, + 160015, + 93, + '1970-01-01 00:00:00.000000', + 500, + 1416, + 30000, + 6 + ), + ( + 160016, + 160016, + 95, + '1961-01-01 00:00:00.000000', + 250, + 1708, + 30000, + 19 + ), + ( + 160017, + 160017, + 96, + '1970-01-01 00:00:00.000000', + 125, + 5754, + 30000, + 5 + ), + ( + 160018, + 160018, + 98, + '1970-01-01 00:00:00.000000', + 0, + 6493, + 30000, + 5 + ), + ( + 160019, + 160020, + 1464, + '1969-01-01 00:00:00.000000', + 500, + 1476, + 30000, + 4 + ), + ( + 160020, + 160021, + 1459, + '1971-01-01 00:00:00.000000', + 250, + 2518, + 30000, + 16 + ), + ( + 160021, + 160022, + 79, + '1932-01-01 00:00:00.000000', + 500, + 740, + 30000, + 10 + ), + ( + 160022, + 160023, + 875, + '1940-01-01 00:00:00.000000', + 500, + 782, + 30000, + 10 + ), + ( + 160023, + 160024, + 81, + '1999-01-01 00:00:00.000000', + 1000, + 1057, + 30000, + 4 + ), + ( + 160024, + 160025, + 82, + '1999-01-01 00:00:00.000000', + 1000, + 1107, + 30000, + 15 + ), + ( + 160025, + 160026, + 878, + '1999-01-01 00:00:00.000000', + 1000, + 1257, + 30000, + 4 + ), + ( + 160026, + 160027, + 85, + '1999-01-01 00:00:00.000000', + 1000, + 1167, + 30000, + 15 + ), + ( + 160027, + 160028, + 879, + '1999-01-01 00:00:00.000000', + 500, + 1299, + 30000, + 4 + ), + ( + 160028, + 160029, + 876, + '1999-01-01 00:00:00.000000', + 500, + 1233, + 30000, + 15 + ), + ( + 160029, + 160030, + 88, + '1970-01-01 00:00:00.000000', + 500, + 2212, + 30000, + 16 + ), + ( + 160030, + 160031, + 89, + '1999-01-01 00:00:00.000000', + 250, + 2438, + 30000, + 3 + ), + ( + 160031, + 160032, + 91, + '1999-01-01 00:00:00.000000', + 250, + 2518, + 30000, + 3 + ), + ( + 160032, + 160033, + 877, + '1999-01-01 00:00:00.000000', + 125, + 5340, + 30000, + 3 + ), + ( + 160033, + 160034, + 94, + '1999-01-01 00:00:00.000000', + 125, + 2681, + 30000, + 3 + ), + ( + 160034, + 160035, + 880, + '1968-01-01 00:00:00.000000', + 125, + 3074, + 30000, + 17 + ), + ( + 160035, + 160036, + 97, + '1999-01-01 00:00:00.000000', + 500, + 2212, + 30000, + 3 + ), + ( + 160036, + 160037, + 34, + '1968-01-01 00:00:00.000000', + 500, + 1468, + 30000, + 11 + ), + ( + 160037, + 160038, + 38, + '1966-01-01 00:00:00.000000', + 250, + 2513, + 30000, + 12 + ), + ( + 160038, + 160039, + 42, + '1968-01-01 00:00:00.000000', + 125, + 5756, + 30000, + 12 + ), + ( + 160039, + 160042, + 52, + '1959-01-01 00:00:00.000000', + 500, + 1620, + 30000, + 13 + ), + ( + 160040, + 160043, + 54, + '1967-01-01 00:00:00.000000', + 250, + 2505, + 30000, + 13 + ), + ( + 160041, + 160044, + 56, + '1999-01-01 00:00:00.000000', + 125, + 2681, + 30000, + 13 + ), + ( + 160042, + 160045, + 58, + '1999-01-01 00:00:00.000000', + 125, + 7226, + 30000, + 13 + ), + ( + 160043, + 160046, + 421, + '1967-01-01 00:00:00.000000', + 0, + 7567, + 30000, + 14 + ), + ( + 160044, + 160047, + 442, + '1968-01-01 00:00:00.000000', + 30, + 4121, + 30000, + 17 + ), + ( + 160046, + 160049, + 495, + '1999-01-01 00:00:00.000000', + 0, + 4840, + 30000, + 6 + ), + ( + 160047, + 160050, + 498, + '1955-01-01 00:00:00.000000', + 500, + 820, + 30000, + 10 + ), + ( + 160048, + 160060, + 1036, + '1965-01-01 00:00:00.000000', + 1000, + 1261, + 32000, + 14 + ), + ( + 160049, + 160061, + 1037, + '1965-01-01 00:00:00.000000', + 500, + 1442, + 30000, + 14 + ), + ( + 160050, + 160062, + 1038, + '1965-01-01 00:00:00.000000', + 250, + 2438, + 30000, + 14 + ), + ( + 160054, + 160052, + 1039, + '1999-01-01 00:00:00.000000', + 500, + 1354, + 30000, + 2 + ), + ( + 160055, + 160059, + 1040, + '1999-01-01 00:00:00.000000', + 125, + 5545, + 30000, + 1 + ), + ( + 160056, + 160058, + 1041, + '1963-01-01 00:00:00.000000', + 60, + 2674, + 30000, + 1 + ), + ( + 160057, + 160053, + 1042, + '1999-01-01 00:00:00.000000', + 500, + 1430, + 30000, + 2 + ), + ( + 160069, + 160040, + 1176, + '1960-01-01 00:00:00.000000', + 500, + 1483, + 30000, + 13 + ), + ( + 160070, + 160041, + 1177, + '1960-01-01 00:00:00.000000', + 250, + 2644, + 30000, + 13 + ), + ( + 160072, + 160019, + 1530, + '1969-01-01 00:00:00.000000', + 250, + 2518, + 30000, + 5 + ), + ( + 160073, + 160055, + 1655, + '1959-01-01 00:00:00.000000', + 250, + 1600, + 30000, + 1 + ), + ( + 160074, + 160056, + 1659, + '1971-01-01 00:00:00.000000', + 250, + 2544, + 32100, + 1 + ), + ( + 160075, + 160057, + 1670, + '1959-01-01 00:00:00.000000', + 125, + 2593, + 30000, + 1 + ), + ( + 160076, + 160063, + 2451, + '1960-01-01 00:00:00.000000', + 0, + 889, + 30000, + 6 + ), + ( + 160077, + 160064, + 2459, + '1970-01-01 00:00:00.000000', + 250, + 1506, + 30000, + 14 + ), + ( + 160078, + 160065, + 2462, + '1964-01-01 00:00:00.000000', + 0, + 7810, + 30000, + 18 + ), + ( + 160079, + 160051, + 2488, + '1964-01-01 00:00:00.000000', + 250, + 1214, + 30000, + 2 + ), + ( + 160080, + 160054, + 2489, + '1971-01-01 00:00:00.000000', + 125, + 1506, + 30000, + 2 + ), + ( + 160081, + 160066, + 2491, + '1961-01-01 00:00:00.000000', + 60, + 6094, + 30000, + 3 + ), + ( + 160082, + 160067, + 2521, + '1969-01-01 00:00:00.000000', + 0, + 7685, + 30000, + 17 + ), + ( + 160083, + 160068, + 2523, + '1964-01-01 00:00:00.000000', + 30, + 2357, + 30000, + 4 + ), + ( + 160084, + 160069, + 2524, + '1969-01-01 00:00:00.000000', + 30, + 2435, + 30000, + 4 + ), + ( + 160085, + 160070, + 2536, + '1967-01-01 00:00:00.000000', + 125, + 2504, + 30000, + 7 + ), + ( + 160086, + 160071, + 2537, + '1967-01-01 00:00:00.000000', + 125, + 1803, + 30000, + 7 + ), + ( + 160087, + 160048, + 444, + '1966-01-01 00:00:00.000000', + 125, + 2682, + 30000, + 5 + ), + ( + 160088, + 160072, + 2539, + '1969-01-01 00:00:00.000000', + 0, + 5721, + 30000, + 5 + ), + ( + 160089, + 160073, + 2550, + '1957-01-01 00:00:00.000000', + 125, + 1272, + 30000, + 21 + ), + ( + 160090, + 160074, + 2551, + '1959-01-01 00:00:00.000000', + 125, + 1424, + 30000, + 21 + ), + ( + 160091, + 160075, + 2552, + '1964-01-01 00:00:00.000000', + 60, + 1530, + 30000, + 21 + ), + ( + 160092, + 160076, + 2553, + '1964-01-01 00:00:00.000000', + 125, + 1293, + 30000, + 8 + ), + ( + 160093, + 160077, + 2554, + '1966-01-01 00:00:00.000000', + 125, + 1431, + 30000, + 8 + ), + ( + 160094, + 160078, + 2555, + '1956-01-01 00:00:00.000000', + 125, + 1326, + 30000, + 9 + ), + ( + 160095, + 160079, + 2556, + '1964-01-01 00:00:00.000000', + 60, + 1598, + 30000, + 9 + ), + ( + 160096, + 160081, + 2617, + '1969-01-01 00:00:00.000000', + 0, + 19673, + 30000, + 17 + ), + ( + 160097, + 160080, + 2618, + '1969-01-01 00:00:00.000000', + 0, + 30739, + 30000, + 17 + ), + ( + 160098, + 160082, + 2770, + '1971-01-01 00:00:00.000000', + 125, + 2510, + 30000, + 14 + ), + ( + 180001, + 180001, + 102, + '1955-01-01 00:00:00.000000', + 1000, + 137, + 30000, + 6 + ), + ( + 180002, + 180002, + 103, + '1965-01-01 00:00:00.000000', + 1000, + 135, + 30000, + 5 + ), + ( + 180003, + 180017, + 881, + '1971-01-01 00:00:00.000000', + 125, + 186, + 30000, + 6 + ), + ( + 180004, + 180019, + 1408, + '1990-01-01 00:00:00.000000', + 60, + 435, + 30000, + 6 + ), + ( + 180005, + 180020, + 1409, + '1990-01-01 00:00:00.000000', + 30, + 270, + 30000, + 6 + ), + ( + 180006, + 180021, + 1423, + '1990-01-01 00:00:00.000000', + 30, + 1053, + 30000, + 6 + ), + ( + 180007, + 180018, + 1407, + '1990-01-01 00:00:00.000000', + 125, + 226, + 30000, + 6 + ), + ( + 180008, + 180022, + 1431, + '1990-01-01 00:00:00.000000', + 60, + 312, + 30000, + 6 + ), + ( + 180009, + 180023, + 1432, + '1990-01-01 00:00:00.000000', + 60, + 316, + 30000, + 5 + ), + ( + 180010, + 180003, + 1874, + '1967-01-01 00:00:00.000000', + 1000, + 184, + 30000, + 7 + ), + ( + 180011, + 180004, + 1875, + '1961-01-01 00:00:00.000000', + 1000, + 186, + 30000, + 8 + ), + ( + 180012, + 180005, + 1876, + '1950-01-01 00:00:00.000000', + 1000, + 136, + 30000, + 9 + ), + ( + 180013, + 180006, + 1877, + '1965-01-01 00:00:00.000000', + 1000, + 177, + 30000, + 5 + ), + ( + 180014, + 180007, + 1878, + '1970-01-01 00:00:00.000000', + 1000, + 180, + 30000, + 6 + ), + ( + 180015, + 180008, + 1879, + '1958-01-01 00:00:00.000000', + 250, + 179, + 30000, + 1 + ), + ( + 180016, + 180009, + 1880, + '1964-01-01 00:00:00.000000', + 500, + 180, + 30000, + 2 + ), + ( + 180017, + 180010, + 1881, + '1958-01-01 00:00:00.000000', + 1000, + 136, + 30000, + 3 + ), + ( + 180018, + 180011, + 1882, + '1964-01-01 00:00:00.000000', + 1000, + 128, + 30000, + 15 + ), + ( + 180019, + 180012, + 1883, + '1932-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 10 + ), + ( + 180020, + 180013, + 1884, + '1970-01-01 00:00:00.000000', + 500, + 178, + 30000, + 12 + ), + ( + 180021, + 180014, + 1885, + '1968-01-01 00:00:00.000000', + 1000, + 135, + 30000, + 11 + ), + ( + 180022, + 180015, + 1886, + '1966-01-01 00:00:00.000000', + 1000, + 165, + 30000, + 14 + ), + ( + 180023, + 180016, + 1887, + '1955-01-01 00:00:00.000000', + 1000, + 135, + 30000, + 13 + ), + ( + 180024, + 180024, + 1888, + '1968-01-01 00:00:00.000000', + 125, + 177, + 30000, + 11 + ), + ( + 180025, + 180025, + 1889, + '1965-01-01 00:00:00.000000', + 1000, + 137, + 30000, + 12 + ), + ( + 180026, + 180026, + 1890, + '1968-01-01 00:00:00.000000', + 1000, + 185, + 30000, + 12 + ), + ( + 180027, + 180027, + 1891, + '1955-01-01 00:00:00.000000', + 250, + 177, + 30000, + 13 + ), + ( + 180028, + 180028, + 1892, + '1959-01-01 00:00:00.000000', + 125, + 185, + 30000, + 13 + ), + ( + 180029, + 180029, + 1893, + '1969-01-01 00:00:00.000000', + 125, + 215, + 30000, + 13 + ), + ( + 180030, + 180030, + 1894, + '1970-01-01 00:00:00.000000', + 1000, + 183, + 30000, + 4 + ), + ( + 180031, + 180031, + 1895, + '1970-01-01 00:00:00.000000', + 125, + 179, + 30000, + 3 + ), + ( + 180032, + 180032, + 1896, + '1965-01-01 00:00:00.000000', + 30, + 215, + 30000, + 3 + ), + ( + 180033, + 180033, + 1897, + '1968-01-01 00:00:00.000000', + 500, + 222, + 30000, + 3 + ), + ( + 180034, + 180034, + 1898, + '1970-01-01 00:00:00.000000', + 60, + 220, + 30000, + 4 + ), + ( + 180035, + 180035, + 1899, + '1965-01-01 00:00:00.000000', + 125, + 179, + 30000, + 3 + ), + ( + 180036, + 180036, + 1900, + '1958-01-01 00:00:00.000000', + 1000, + 136, + 30000, + 1 + ), + ( + 180037, + 180037, + 1901, + '1964-01-01 00:00:00.000000', + 30, + 212, + 30000, + 18 + ), + ( + 180038, + 180038, + 1902, + '1964-01-01 00:00:00.000000', + 1000, + 135, + 30000, + 2 + ), + ( + 180039, + 180039, + 1903, + '1987-01-01 00:00:00.000000', + 30, + 267, + 30000, + 5 + ), + ( + 180040, + 180040, + 1904, + '1987-01-01 00:00:00.000000', + 30, + 1202, + 30000, + 5 + ), + ( + 180041, + 180041, + 1905, + '1987-01-01 00:00:00.000000', + 30, + 265, + 30000, + 4 + ), + ( + 180042, + 180042, + 1906, + '1987-01-01 00:00:00.000000', + 60, + 312, + 30000, + 4 + ), + ( + 180043, + 180043, + 1907, + '1987-01-01 00:00:00.000000', + 30, + 267, + 30000, + 3 + ), + ( + 180044, + 180044, + 1908, + '1987-01-01 00:00:00.000000', + 60, + 314, + 30000, + 3 + ), + ( + 180045, + 180045, + 1909, + '1987-01-01 00:00:00.000000', + 30, + 267, + 30000, + 1 + ), + ( + 180046, + 180046, + 1910, + '1987-01-01 00:00:00.000000', + 30, + 265, + 30000, + 2 + ), + ( + 180047, + 180047, + 1911, + '1987-01-01 00:00:00.000000', + 60, + 314, + 30000, + 1 + ), + ( + 180048, + 180048, + 1912, + '1987-01-01 00:00:00.000000', + 60, + 312, + 30000, + 2 + ), + ( + 180049, + 180049, + 2043, + '1953-01-01 00:00:00.000000', + 1000, + 177, + 30000, + 21 + ), + ( + 180050, + 180050, + 2091, + '1961-01-01 00:00:00.000000', + 125, + 162, + 30000, + 3 + ), + ( + 180051, + 180033, + 2095, + '1968-01-01 00:00:00.000000', + 125, + 222, + 30000, + 3 + ), + ( + 180052, + 180051, + 2097, + '1964-01-01 00:00:00.000000', + 125, + 226, + 30000, + 4 + ), + ( + 180053, + 180052, + 2461, + '1966-01-01 00:00:00.000000', + 125, + 157, + 30000, + 14 + ), + ( + 180054, + 180036, + 2466, + '1964-01-01 00:00:00.000000', + 0, + 136, + 30000, + 18 + ), + ( + 180055, + 180053, + 2477, + '1940-01-01 00:00:00.000000', + 1000, + 140, + 30000, + 20 + ), + ( + 180056, + 180054, + 2501, + '1970-01-01 00:00:00.000000', + 1000, + 183, + 30000, + 16 + ), + ( + 180057, + 180055, + 2502, + '1971-01-01 00:00:00.000000', + 125, + 573, + 30000, + 16 + ), + ( + 180058, + 180056, + 2513, + '1968-01-01 00:00:00.000000', + 1000, + 137, + 30000, + 17 + ), + ( + 180059, + 180057, + 2514, + '1969-01-01 00:00:00.000000', + 125, + 212, + 30000, + 17 + ), + ( + 180060, + 180058, + 2515, + '1970-01-01 00:00:00.000000', + 0, + 934, + 30000, + 17 + ), + ( + 180061, + 180059, + 2530, + '1954-01-01 00:00:00.000000', + 125, + 166, + 30000, + 15 + ), + ( + 180062, + 180060, + 2545, + '1958-01-01 00:00:00.000000', + 1000, + 179, + 30000, + 19 + ), + ( + 180063, + 180061, + 2645, + '1955-01-21 00:00:00.000000', + 250, + 566, + 30000, + 21 + ), + ( + 180064, + 180062, + 2646, + '1968-01-21 00:00:00.000000', + 250, + 469, + 30000, + 8 + ), + ( + 180065, + 180063, + 2647, + '1968-01-21 00:00:00.000000', + 250, + 471, + 30000, + 7 + ), + ( + 180066, + 180064, + 2648, + '1947-01-18 00:00:00.000000', + 250, + 275, + 30000, + 20 + ), + ( + 180067, + 180065, + 2649, + '1955-02-14 00:00:00.000000', + 250, + 330, + 30000, + 9 + ), + ( + 180068, + 180066, + 2654, + '1959-02-18 00:00:00.000000', + 250, + 471, + 30000, + 19 + ), + ( + 180069, + 180067, + 2655, + '1965-03-21 00:00:00.000000', + 60, + 648, + 30000, + 18 + ), + ( + 180070, + 180068, + 2656, + '1939-04-16 00:00:00.000000', + 250, + 255, + 30000, + 10 + ), + ( + 180071, + 180069, + 2657, + '1968-05-16 00:00:00.000000', + 250, + 469, + 30000, + 11 + ), + ( + 180072, + 180070, + 2658, + '1968-05-16 00:00:00.000000', + 250, + 565, + 30000, + 12 + ), + ( + 180073, + 180076, + 2849, + '1957-01-01 00:00:00.000000', + 125, + 234, + 30000, + 15 + ), + ( + 180074, + 180075, + 2848, + '1957-01-01 00:00:00.000000', + 125, + 518, + 30000, + 15 + ), + ( + 180075, + 180074, + 2847, + '1957-01-01 00:00:00.000000', + 125, + 233, + 30000, + 15 + ), + ( + 180076, + 180071, + 2851, + '1957-01-01 00:00:00.000000', + 250, + 199, + 30000, + 15 + ), + ( + 180077, + 180072, + 2852, + '1957-01-01 00:00:00.000000', + 125, + 166, + 30000, + 15 + ), + ( + 180078, + 180073, + 2853, + '1957-01-01 00:00:00.000000', + 60, + 230, + 30000, + 15 + ), + ( + 180079, + 180077, + 2845, + '1957-01-01 00:00:00.000000', + 1000, + 171, + 30000, + 15 + ), + ( + 180080, + 180078, + 2846, + '1957-01-01 00:00:00.000000', + 250, + 195, + 30000, + 15 + ), + ( + 180081, + 180079, + 2977, + '1965-01-01 00:00:00.000000', + 250, + 469, + 30000, + 4 + ), + ( + 180082, + 180087, + 2985, + '1965-01-01 00:00:00.000000', + 250, + 566, + 30000, + 21 + ), + ( + 180083, + 180088, + 2986, + '1965-01-01 00:00:00.000000', + 60, + 597, + 30000, + 21 + ), + ( + 180084, + 180089, + 2987, + '1965-01-01 00:00:00.000000', + 250, + 484, + 30000, + 21 + ), + ( + 180085, + 180084, + 2982, + '1965-01-01 00:00:00.000000', + 250, + 597, + 30000, + 21 + ), + ( + 180086, + 180081, + 2979, + '1965-01-01 00:00:00.000000', + 250, + 597, + 30000, + 4 + ), + ( + 180087, + 180082, + 2980, + '1965-01-01 00:00:00.000000', + 125, + 329, + 30000, + 21 + ), + ( + 180088, + 180085, + 2983, + '1965-01-01 00:00:00.000000', + 500, + 566, + 30000, + 21 + ), + ( + 180089, + 180086, + 2984, + '1965-01-01 00:00:00.000000', + 250, + 566, + 30000, + 21 + ), + ( + 180090, + 180080, + 2978, + '1965-01-01 00:00:00.000000', + 125, + 752, + 30000, + 4 + ), + ( + 180091, + 180083, + 2981, + '1965-01-01 00:00:00.000000', + 125, + 888, + 30000, + 21 + ), + ( + 180092, + 180091, + 3067, + '1966-01-01 00:00:00.000000', + 125, + 500, + 30000, + 2 + ), + ( + 180093, + 180093, + 3069, + '1966-01-01 00:00:00.000000', + 60, + 717, + 30000, + 2 + ), + ( + 180094, + 180092, + 3068, + '1966-01-01 00:00:00.000000', + 125, + 345, + 30000, + 2 + ), + ( + 180095, + 180090, + 3066, + '1966-01-01 00:00:00.000000', + 250, + 216, + 30000, + 2 + ), + ( + 180096, + 180094, + 3104, + '1966-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 13 + ), + ( + 180097, + 180095, + 3105, + '1966-01-01 00:00:00.000000', + 60, + 1851, + 30000, + 13 + ), + ( + 180098, + 180096, + 3106, + '1966-01-01 00:00:00.000000', + 125, + 1506, + 30000, + 13 + ), + ( + 180099, + 180149, + 3362, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 12 + ), + ( + 180100, + 180130, + 3346, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 19 + ), + ( + 180101, + 180157, + 3370, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 1 + ), + ( + 180102, + 180141, + 3354, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 14 + ), + ( + 180103, + 180165, + 3378, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 3 + ), + ( + 180104, + 180117, + 3330, + '1967-01-01 00:00:00.000000', + 125, + 1157, + 30000, + 18 + ), + ( + 180105, + 180125, + 3338, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 9 + ), + ( + 180106, + 180173, + 3386, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 5 + ), + ( + 180107, + 180109, + 3322, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 17 + ), + ( + 180108, + 180101, + 3314, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 16 + ), + ( + 180109, + 180172, + 3385, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 5 + ), + ( + 180110, + 180148, + 3361, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 12 + ), + ( + 180111, + 180108, + 3321, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 17 + ), + ( + 180112, + 180100, + 3313, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 16 + ), + ( + 180113, + 180156, + 3369, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 1 + ), + ( + 180114, + 180129, + 3345, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 19 + ), + ( + 180115, + 180140, + 3353, + '1967-01-01 00:00:00.000000', + 500, + 255, + 30000, + 14 + ), + ( + 180116, + 180124, + 3337, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 9 + ), + ( + 180117, + 180116, + 3329, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 18 + ), + ( + 180118, + 180164, + 3377, + '1967-01-01 00:00:00.000000', + 500, + 1255, + 30000, + 3 + ), + ( + 180119, + 180120, + 3333, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 18 + ), + ( + 180120, + 180160, + 3373, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 1 + ), + ( + 180121, + 180133, + 3349, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 19 + ), + ( + 180122, + 180144, + 3357, + '1967-01-01 00:00:00.000000', + 0, + 3877, + 30000, + 14 + ), + ( + 180123, + 180112, + 3325, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 17 + ), + ( + 180124, + 180168, + 3381, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 3 + ), + ( + 180125, + 180104, + 3317, + '1967-01-01 00:00:00.000000', + 0, + 5818, + 30000, + 16 + ), + ( + 180126, + 180128, + 3341, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 9 + ), + ( + 180127, + 180176, + 3389, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 5 + ), + ( + 180128, + 180152, + 3365, + '1967-01-01 00:00:00.000000', + 0, + 5137, + 30000, + 12 + ), + ( + 180129, + 180158, + 3371, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 1 + ), + ( + 180130, + 180174, + 3387, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 5 + ), + ( + 180131, + 180102, + 3315, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 16 + ), + ( + 180132, + 180142, + 3355, + '1967-01-01 00:00:00.000000', + 125, + 580, + 30000, + 14 + ), + ( + 180133, + 180110, + 3323, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 17 + ), + ( + 180134, + 180131, + 3347, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 19 + ), + ( + 180135, + 180150, + 3363, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 12 + ), + ( + 180136, + 180118, + 3331, + '1967-01-01 00:00:00.000000', + 30, + 1580, + 30000, + 18 + ), + ( + 180137, + 180166, + 3379, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 3 + ), + ( + 180138, + 180126, + 3339, + '1967-01-01 00:00:00.000000', + 125, + 1580, + 30000, + 9 + ), + ( + 180139, + 180151, + 3364, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 12 + ), + ( + 180140, + 180175, + 3388, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 5 + ), + ( + 180141, + 180143, + 3356, + '1967-01-01 00:00:00.000000', + 125, + 317, + 30000, + 14 + ), + ( + 180142, + 180159, + 3372, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 1 + ), + ( + 180143, + 180132, + 3348, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 19 + ), + ( + 180144, + 180127, + 3340, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 9 + ), + ( + 180145, + 180111, + 3324, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 17 + ), + ( + 180146, + 180119, + 3332, + '1967-01-01 00:00:00.000000', + 30, + 1577, + 30000, + 18 + ), + ( + 180147, + 180167, + 3380, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 3 + ), + ( + 180148, + 180103, + 3316, + '1967-01-01 00:00:00.000000', + 125, + 1577, + 30000, + 16 + ), + ( + 180149, + 180154, + 3367, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 1 + ), + ( + 180150, + 180170, + 3383, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 5 + ), + ( + 180151, + 180162, + 3375, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 3 + ), + ( + 180152, + 180122, + 3335, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 9 + ), + ( + 180153, + 180098, + 3311, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 16 + ), + ( + 180154, + 180146, + 3359, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 12 + ), + ( + 180155, + 180106, + 3319, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 17 + ), + ( + 180156, + 180114, + 3327, + '1967-01-01 00:00:00.000000', + 30, + 1384, + 30000, + 18 + ), + ( + 180157, + 180138, + 3351, + '1967-01-01 00:00:00.000000', + 250, + 384, + 30000, + 14 + ), + ( + 180158, + 180135, + 3343, + '1967-01-01 00:00:00.000000', + 250, + 1384, + 30000, + 19 + ), + ( + 180159, + 180097, + 3310, + '1967-01-01 00:00:00.000000', + 500, + 1389, + 30000, + 16 + ), + ( + 180160, + 180105, + 3318, + '1967-01-01 00:00:00.000000', + 500, + 1157, + 30000, + 17 + ), + ( + 180161, + 180113, + 3326, + '1967-01-01 00:00:00.000000', + 350, + 1389, + 30000, + 18 + ), + ( + 180162, + 180121, + 3334, + '1967-01-01 00:00:00.000000', + 500, + 1389, + 30000, + 9 + ), + ( + 180163, + 180153, + 3366, + '1967-01-01 00:00:00.000000', + 500, + 1389, + 30000, + 1 + ), + ( + 180164, + 180134, + 3342, + '1967-01-01 00:00:00.000000', + 500, + 1389, + 30000, + 19 + ), + ( + 180165, + 180145, + 3358, + '1967-01-01 00:00:00.000000', + 500, + 1389, + 30000, + 12 + ), + ( + 180166, + 180161, + 3374, + '1967-01-01 00:00:00.000000', + 500, + 1389, + 30000, + 3 + ), + ( + 180167, + 180137, + 3350, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 14 + ), + ( + 180168, + 180169, + 3382, + '1967-01-01 00:00:00.000000', + 500, + 1389, + 30000, + 5 + ), + ( + 180169, + 180155, + 3368, + '1967-01-01 00:00:00.000000', + 125, + 1587, + 30000, + 1 + ), + ( + 180170, + 180099, + 3312, + '1967-01-01 00:00:00.000000', + 150, + 1587, + 30000, + 16 + ), + ( + 180171, + 180171, + 3384, + '1967-01-01 00:00:00.000000', + 150, + 1587, + 30000, + 5 + ), + ( + 180172, + 180163, + 3376, + '1967-01-01 00:00:00.000000', + 150, + 1587, + 30000, + 3 + ), + ( + 180173, + 180107, + 3320, + '1967-01-01 00:00:00.000000', + 150, + 1587, + 30000, + 17 + ), + ( + 180174, + 180139, + 3352, + '1967-01-01 00:00:00.000000', + 150, + 387, + 30000, + 14 + ), + ( + 180175, + 180115, + 3328, + '1967-01-01 00:00:00.000000', + 30, + 1587, + 30000, + 18 + ), + ( + 180176, + 180136, + 3344, + '1967-01-01 00:00:00.000000', + 125, + 1704, + 30000, + 19 + ), + ( + 180177, + 180123, + 3336, + '1967-01-01 00:00:00.000000', + 125, + 1587, + 30000, + 9 + ), + ( + 180178, + 180147, + 3360, + '1967-01-01 00:00:00.000000', + 125, + 1587, + 30000, + 12 + ), + ( + 190001, + 190001, + 104, + '1968-01-01 00:00:00.000000', + 125, + 185, + 30000, + 4 + ), + ( + 190002, + 190002, + 105, + '1965-01-01 00:00:00.000000', + 250, + 208, + 30000, + 3 + ), + ( + 190003, + 190003, + 106, + '1961-01-01 00:00:00.000000', + 500, + 180, + 30000, + 3 + ), + ( + 190004, + 190004, + 107, + '1969-01-01 00:00:00.000000', + 125, + 163, + 30000, + 13 + ), + ( + 190005, + 190005, + 2650, + '1967-01-01 00:00:00.000000', + 125, + 116, + 30000, + 9 + ), + ( + 190006, + 190006, + 417, + '1961-01-01 00:00:00.000000', + 1000, + 96, + 30000, + 13 + ), + ( + 190007, + 190021, + 1384, + '1990-01-01 00:00:00.000000', + 500, + 185, + 30000, + 4 + ), + ( + 190008, + 190022, + 1389, + '1990-01-01 00:00:00.000000', + 125, + 242, + 30000, + 4 + ), + ( + 190009, + 190023, + 1734, + '1990-01-01 00:00:00.000000', + 250, + 214, + 30000, + 4 + ), + ( + 190010, + 190024, + 1735, + '1990-01-01 00:00:00.000000', + 250, + 205, + 30000, + 4 + ), + ( + 190011, + 190025, + 1395, + '1990-01-01 00:00:00.000000', + 0, + 1511, + 30000, + 3 + ), + ( + 190012, + 190007, + 1820, + '1967-01-01 00:00:00.000000', + 1000, + 163, + 30000, + 7 + ), + ( + 190013, + 190008, + 1821, + '1953-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 21 + ), + ( + 190014, + 190009, + 1822, + '1959-01-01 00:00:00.000000', + 1000, + 163, + 30000, + 9 + ), + ( + 190015, + 190010, + 1823, + '1958-01-01 00:00:00.000000', + 1000, + 163, + 30000, + 5 + ), + ( + 190016, + 190011, + 1824, + '1955-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 6 + ), + ( + 190017, + 190012, + 1825, + '1958-01-01 00:00:00.000000', + 1000, + 163, + 30000, + 1 + ), + ( + 190018, + 190013, + 1826, + '1964-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 2 + ), + ( + 190019, + 190014, + 1827, + '1958-01-01 00:00:00.000000', + 1000, + 163, + 30000, + 3 + ), + ( + 190020, + 190015, + 1828, + '1964-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 4 + ), + ( + 190021, + 190016, + 1829, + '1932-01-01 00:00:00.000000', + 1000, + 81, + 30000, + 10 + ), + ( + 190022, + 190017, + 1830, + '1970-01-01 00:00:00.000000', + 1000, + 163, + 30000, + 12 + ), + ( + 190023, + 190018, + 1831, + '1968-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 11 + ), + ( + 190024, + 190019, + 1832, + '1968-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 14 + ), + ( + 190025, + 190020, + 1833, + '1955-01-01 00:00:00.000000', + 1000, + 163, + 30000, + 13 + ), + ( + 190026, + 190026, + 1834, + '1965-01-01 00:00:00.000000', + 0, + 227, + 30000, + 3 + ), + ( + 190027, + 190027, + 1835, + '1968-01-01 00:00:00.000000', + 500, + 180, + 30000, + 3 + ), + ( + 190028, + 190028, + 1836, + '1971-01-01 00:00:00.000000', + 500, + 180, + 30000, + 17 + ), + ( + 190029, + 190029, + 1837, + '1969-01-01 00:00:00.000000', + 0, + 203, + 30000, + 17 + ), + ( + 190030, + 190030, + 1838, + '1969-01-01 00:00:00.000000', + 125, + 193, + 30000, + 17 + ), + ( + 190031, + 190031, + 1839, + '1964-01-01 00:00:00.000000', + 500, + 187, + 30000, + 1 + ), + ( + 190032, + 190032, + 1840, + '1987-01-01 00:00:00.000000', + 500, + 185, + 30000, + 6 + ), + ( + 190033, + 190033, + 1841, + '1987-01-01 00:00:00.000000', + 500, + 208, + 30000, + 5 + ), + ( + 190034, + 190039, + 1842, + '1987-01-01 00:00:00.000000', + 250, + 234, + 30000, + 6 + ), + ( + 190035, + 190038, + 1843, + '1987-01-01 00:00:00.000000', + 250, + 234, + 30000, + 5 + ), + ( + 190036, + 190037, + 1844, + '1987-01-01 00:00:00.000000', + 250, + 234, + 30000, + 7 + ), + ( + 190037, + 190036, + 1845, + '1987-01-01 00:00:00.000000', + 250, + 234, + 30000, + 12 + ), + ( + 190038, + 190035, + 1846, + '1987-01-01 00:00:00.000000', + 250, + 234, + 30000, + 13 + ), + ( + 190039, + 190034, + 1847, + '1987-01-01 00:00:00.000000', + 250, + 234, + 30000, + 3 + ), + ( + 190040, + 190045, + 1848, + '1987-01-01 00:00:00.000000', + 250, + 222, + 30000, + 13 + ), + ( + 190041, + 190044, + 1849, + '1987-01-01 00:00:00.000000', + 250, + 222, + 30000, + 12 + ), + ( + 190042, + 190043, + 1850, + '1987-01-01 00:00:00.000000', + 250, + 222, + 30000, + 3 + ), + ( + 190043, + 190042, + 1851, + '1987-01-01 00:00:00.000000', + 250, + 222, + 30000, + 6 + ), + ( + 190044, + 190041, + 1852, + '1987-01-01 00:00:00.000000', + 250, + 222, + 30000, + 5 + ), + ( + 190045, + 190040, + 1853, + '1987-01-01 00:00:00.000000', + 250, + 222, + 30000, + 7 + ), + ( + 190046, + 190046, + 1854, + '1987-01-01 00:00:00.000000', + 250, + 222, + 30000, + 6 + ), + ( + 190047, + 190047, + 1855, + '1999-01-01 00:00:00.000000', + 0, + 1511, + 30000, + 7 + ), + ( + 190048, + 190048, + 1856, + '1999-01-01 00:00:00.000000', + 0, + 1511, + 30000, + 5 + ), + ( + 190049, + 190049, + 1857, + '1999-01-01 00:00:00.000000', + 0, + 1402, + 30000, + 6 + ), + ( + 190050, + 190065, + 1858, + '1999-01-01 00:00:00.000000', + 500, + 201, + 30000, + 13 + ), + ( + 190051, + 190064, + 1859, + '1999-01-01 00:00:00.000000', + 500, + 201, + 30000, + 1 + ), + ( + 190052, + 190063, + 1860, + '1999-01-01 00:00:00.000000', + 500, + 185, + 30000, + 4 + ), + ( + 190053, + 190062, + 1861, + '1999-01-01 00:00:00.000000', + 500, + 201, + 30000, + 3 + ), + ( + 190054, + 190061, + 1862, + '1999-01-01 00:00:00.000000', + 500, + 201, + 30000, + 5 + ), + ( + 190055, + 190060, + 1863, + '1999-01-01 00:00:00.000000', + 500, + 185, + 30000, + 6 + ), + ( + 190056, + 190059, + 1864, + '1999-01-01 00:00:00.000000', + 500, + 201, + 30000, + 5 + ), + ( + 190057, + 190058, + 1865, + '1999-01-01 00:00:00.000000', + 500, + 201, + 30000, + 6 + ), + ( + 190058, + 190057, + 1866, + '1999-01-01 00:00:00.000000', + 250, + 252, + 30000, + 5 + ), + ( + 190059, + 190056, + 1867, + '1999-01-01 00:00:00.000000', + 250, + 252, + 30000, + 6 + ), + ( + 190060, + 190055, + 1868, + '1999-01-01 00:00:00.000000', + 250, + 252, + 30000, + 4 + ), + ( + 190061, + 190054, + 1869, + '1999-01-01 00:00:00.000000', + 500, + 201, + 30000, + 5 + ), + ( + 190062, + 190053, + 1870, + '1999-01-01 00:00:00.000000', + 500, + 185, + 30000, + 6 + ), + ( + 190063, + 190052, + 1871, + '1999-01-01 00:00:00.000000', + 500, + 185, + 30000, + 4 + ), + ( + 190064, + 190051, + 1872, + '1999-01-01 00:00:00.000000', + 125, + 216, + 30000, + 5 + ), + ( + 190065, + 190050, + 1873, + '1999-01-01 00:00:00.000000', + 125, + 195, + 30000, + 6 + ), + ( + 190066, + 190066, + 2054, + '1970-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 6 + ), + ( + 190067, + 190067, + 2058, + '1961-01-01 00:00:00.000000', + 500, + 146, + 30000, + 19 + ), + ( + 190068, + 190068, + 2460, + '1966-01-01 00:00:00.000000', + 1000, + 127, + 30000, + 14 + ), + ( + 190069, + 190069, + 2464, + '1964-01-01 00:00:00.000000', + 30, + 189, + 30000, + 18 + ), + ( + 190070, + 190012, + 2465, + '1964-01-01 00:00:00.000000', + 0, + 163, + 30000, + 18 + ), + ( + 190071, + 190070, + 187, + '1940-01-01 00:00:00.000000', + 1000, + 127, + 30000, + 20 + ), + ( + 190072, + 190071, + 2481, + '1967-01-01 00:00:00.000000', + 1000, + 96, + 30000, + 8 + ), + ( + 190073, + 190072, + 2499, + '1970-01-01 00:00:00.000000', + 1000, + 133, + 30000, + 16 + ), + ( + 190074, + 190073, + 2500, + '1971-01-01 00:00:00.000000', + 125, + 160, + 30000, + 16 + ), + ( + 190075, + 190074, + 2512, + '1968-01-01 00:00:00.000000', + 1000, + 170, + 30000, + 17 + ), + ( + 190076, + 190075, + 2522, + '1964-01-01 00:00:00.000000', + 125, + 153, + 30000, + 4 + ), + ( + 190077, + 190076, + 2532, + '1954-01-01 00:00:00.000000', + 1000, + 125, + 30000, + 15 + ), + ( + 190078, + 190077, + 2533, + '1954-01-01 00:00:00.000000', + 125, + 124, + 30000, + 15 + ), + ( + 190079, + 190078, + 2653, + '1964-01-01 00:00:00.000000', + 125, + 146, + 30000, + 21 + ), + ( + 190080, + 190079, + 2652, + '1964-01-01 00:00:00.000000', + 250, + 133, + 30000, + 8 + ), + ( + 190081, + 190080, + 2651, + '1955-01-01 00:00:00.000000', + 250, + 133, + 30000, + 20 + ), + ( + 190082, + 190081, + 2644, + '1965-01-01 00:00:00.000000', + 500, + 133, + 30000, + 19 + ), + ( + 190083, + 190082, + 2643, + '1990-01-01 00:00:00.000000', + 500, + 208, + 30000, + 19 + ), + ( + 190084, + 190083, + 2642, + '1990-01-01 00:00:00.000000', + 30, + 252, + 30000, + 2 + ), + ( + 190085, + 190084, + 2641, + '1990-01-01 00:00:00.000000', + 30, + 261, + 30000, + 18 + ), + ( + 190086, + 190085, + 2640, + '1990-01-01 00:00:00.000000', + 30, + 231, + 30000, + 18 + ), + ( + 190087, + 190086, + 2639, + '0190-01-01 00:00:00.000000', + 0, + 1511, + 30000, + 18 + ), + ( + 190088, + 190087, + 2638, + '1990-01-01 00:00:00.000000', + 250, + 261, + 30000, + 18 + ), + ( + 190089, + 190088, + 2637, + '1990-01-01 00:00:00.000000', + 250, + 133, + 30000, + 10 + ), + ( + 190090, + 190089, + 2636, + '1965-01-01 00:00:00.000000', + 250, + 180, + 30000, + 11 + ), + ( + 190091, + 190098, + 2862, + '1957-01-01 00:00:00.000000', + 250, + 147, + 30000, + 15 + ), + ( + 190092, + 190095, + 2859, + '1957-01-01 00:00:00.000000', + 250, + 176, + 30000, + 15 + ), + ( + 190093, + 190097, + 2861, + '1957-01-01 00:00:00.000000', + 125, + 124, + 30000, + 15 + ), + ( + 190094, + 190096, + 2860, + '1957-01-01 00:00:00.000000', + 125, + 195, + 30000, + 15 + ), + ( + 190095, + 190094, + 2858, + '1957-01-01 00:00:00.000000', + 125, + 177, + 30000, + 15 + ), + ( + 190096, + 190093, + 2857, + '1957-01-01 00:00:00.000000', + 250, + 164, + 30000, + 15 + ), + ( + 190097, + 190090, + 2854, + '1957-01-01 00:00:00.000000', + 250, + 160, + 30000, + 15 + ), + ( + 190098, + 190091, + 2855, + '1957-01-01 00:00:00.000000', + 125, + 177, + 30000, + 15 + ), + ( + 190099, + 190092, + 2856, + '1957-01-01 00:00:00.000000', + 250, + 177, + 30000, + 15 + ), + ( + 190100, + 190099, + 2966, + '1965-01-01 00:00:00.000000', + 500, + 133, + 30000, + 21 + ), + ( + 190101, + 190101, + 2968, + '1965-01-01 00:00:00.000000', + 250, + 151, + 30000, + 21 + ), + ( + 190102, + 190102, + 2969, + '1965-01-01 00:00:00.000000', + 60, + 202, + 30000, + 21 + ), + ( + 190103, + 190103, + 2970, + '1965-01-01 00:00:00.000000', + 125, + 162, + 30000, + 21 + ), + ( + 190104, + 190104, + 2971, + '1965-01-01 00:00:00.000000', + 125, + 222, + 30000, + 21 + ), + ( + 190105, + 190109, + 2976, + '1965-01-01 00:00:00.000000', + 250, + 178, + 30000, + 4 + ), + ( + 190106, + 190100, + 2967, + '1965-01-01 00:00:00.000000', + 125, + 139, + 30000, + 21 + ), + ( + 190107, + 190106, + 2973, + '1965-01-01 00:00:00.000000', + 250, + 166, + 30000, + 21 + ), + ( + 190108, + 190105, + 2972, + '1965-01-01 00:00:00.000000', + 250, + 162, + 30000, + 21 + ), + ( + 190109, + 190107, + 2974, + '1965-01-01 00:00:00.000000', + 60, + 214, + 30000, + 21 + ), + ( + 190110, + 190108, + 2975, + '1965-01-01 00:00:00.000000', + 60, + 252, + 30000, + 4 + ), + ( + 190111, + 190112, + 3062, + '1966-01-01 00:00:00.000000', + 125, + 193, + 30000, + 2 + ), + ( + 190112, + 190114, + 3065, + '1966-01-01 00:00:00.000000', + 125, + 169, + 30000, + 2 + ), + ( + 190113, + 190113, + 3063, + '1966-01-01 00:00:00.000000', + 125, + 252, + 30000, + 2 + ), + ( + 190114, + 190110, + 3060, + '1966-01-01 00:00:00.000000', + 500, + 139, + 30000, + 2 + ), + ( + 190115, + 190111, + 3061, + '1966-01-01 00:00:00.000000', + 250, + 162, + 30000, + 2 + ), + ( + 190116, + 190115, + 3064, + '1966-01-01 00:00:00.000000', + 250, + 151, + 30000, + 2 + ), + ( + 190117, + 190116, + 3101, + '1966-01-01 00:00:00.000000', + 250, + 173, + 30000, + 13 + ), + ( + 190118, + 190117, + 3102, + '1966-01-01 00:00:00.000000', + 125, + 175, + 30000, + 13 + ), + ( + 190119, + 190118, + 3103, + '1966-01-01 00:00:00.000000', + 125, + 252, + 30000, + 13 + ), + ( + 190120, + 190172, + 3184, + '1967-01-01 00:00:00.000000', + 500, + 185, + 30000, + 3 + ), + ( + 190121, + 190159, + 3171, + '1967-01-01 00:00:00.000000', + 500, + 185, + 30000, + 12 + ), + ( + 190122, + 190167, + 3179, + '1967-01-01 00:00:00.000000', + 500, + 185, + 30000, + 1 + ), + ( + 190123, + 190135, + 3147, + '1967-01-01 00:00:00.000000', + 500, + 185, + 30000, + 9 + ), + ( + 190124, + 190146, + 3155, + '1967-01-01 00:00:00.000000', + 500, + 185, + 30000, + 19 + ), + ( + 190125, + 190131, + 3143, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 18 + ), + ( + 190126, + 190154, + 3166, + '1967-01-01 00:00:00.000000', + 500, + 185, + 30000, + 14 + ), + ( + 190127, + 190166, + 3178, + '1967-01-01 00:00:00.000000', + 500, + 145, + 30000, + 1 + ), + ( + 190128, + 190158, + 3170, + '1967-01-01 00:00:00.000000', + 500, + 145, + 30000, + 12 + ), + ( + 190129, + 190145, + 3154, + '1967-01-01 00:00:00.000000', + 500, + 145, + 30000, + 19 + ), + ( + 190130, + 190171, + 3183, + '1967-01-01 00:00:00.000000', + 500, + 145, + 30000, + 3 + ), + ( + 190131, + 190153, + 3165, + '1967-01-01 00:00:00.000000', + 500, + 145, + 30000, + 14 + ), + ( + 190132, + 190157, + 3169, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 14 + ), + ( + 190133, + 190170, + 3182, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 1 + ), + ( + 190134, + 190149, + 3158, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 19 + ), + ( + 190135, + 190175, + 3187, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 3 + ), + ( + 190136, + 190162, + 3174, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 12 + ), + ( + 190137, + 190130, + 3142, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 17 + ), + ( + 190138, + 190138, + 3150, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 9 + ), + ( + 190139, + 190134, + 3146, + '1967-01-01 00:00:00.000000', + 0, + 211, + 30000, + 18 + ), + ( + 190140, + 190124, + 3136, + '1967-01-01 00:00:00.000000', + 0, + 1366, + 30000, + 16 + ), + ( + 190141, + 190173, + 3185, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 3 + ), + ( + 190142, + 190168, + 3180, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 1 + ), + ( + 190143, + 190128, + 3140, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 17 + ), + ( + 190144, + 190132, + 3144, + '1967-01-01 00:00:00.000000', + 60, + 189, + 30000, + 18 + ), + ( + 190145, + 190147, + 3156, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 19 + ), + ( + 190146, + 190122, + 3134, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 16 + ), + ( + 190147, + 190136, + 3148, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 9 + ), + ( + 190148, + 190155, + 3167, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 14 + ), + ( + 190149, + 190160, + 3172, + '1967-01-01 00:00:00.000000', + 125, + 175, + 30000, + 12 + ), + ( + 190150, + 190174, + 3186, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 3 + ), + ( + 190151, + 190148, + 3157, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 19 + ), + ( + 190152, + 190156, + 3168, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 14 + ), + ( + 190153, + 190169, + 3181, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 1 + ), + ( + 190154, + 190161, + 3173, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 12 + ), + ( + 190155, + 190137, + 3149, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 9 + ), + ( + 190156, + 190123, + 3135, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 16 + ), + ( + 190157, + 190133, + 3145, + '1967-01-01 00:00:00.000000', + 60, + 281, + 30000, + 18 + ), + ( + 190158, + 190129, + 3141, + '1967-01-01 00:00:00.000000', + 125, + 231, + 30000, + 17 + ), + ( + 190159, + 190143, + 3160, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 19 + ), + ( + 190160, + 190164, + 3176, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 1 + ), + ( + 190161, + 190140, + 3152, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 9 + ), + ( + 190162, + 190151, + 3163, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 14 + ), + ( + 190163, + 190120, + 3132, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 16 + ), + ( + 190164, + 190126, + 3138, + '1967-01-01 00:00:00.000000', + 500, + 157, + 30000, + 17 + ), + ( + 190165, + 190139, + 3151, + '1967-01-01 00:00:00.000000', + 500, + 166, + 30000, + 9 + ), + ( + 190166, + 190119, + 3131, + '1967-01-01 00:00:00.000000', + 500, + 166, + 30000, + 16 + ), + ( + 190167, + 190125, + 3137, + '1967-01-01 00:00:00.000000', + 500, + 166, + 30000, + 17 + ), + ( + 190168, + 190142, + 3159, + '1967-01-01 00:00:00.000000', + 500, + 166, + 30000, + 19 + ), + ( + 190169, + 190163, + 3175, + '1967-01-01 00:00:00.000000', + 500, + 166, + 30000, + 1 + ), + ( + 190170, + 190150, + 3162, + '1967-01-01 00:00:00.000000', + 500, + 166, + 30000, + 14 + ), + ( + 190171, + 190141, + 3153, + '1967-01-01 00:00:00.000000', + 250, + 231, + 30000, + 9 + ), + ( + 190172, + 190165, + 3177, + '1967-01-01 00:00:00.000000', + 250, + 231, + 30000, + 1 + ), + ( + 190173, + 190144, + 3161, + '1967-01-01 00:00:00.000000', + 250, + 231, + 30000, + 19 + ), + ( + 190174, + 190152, + 3164, + '1967-01-01 00:00:00.000000', + 250, + 231, + 30000, + 14 + ), + ( + 190175, + 190127, + 3139, + '1967-01-01 00:00:00.000000', + 250, + 231, + 30000, + 17 + ), + ( + 190176, + 190121, + 3133, + '1967-01-01 00:00:00.000000', + 250, + 231, + 30000, + 16 + ), + ( + 200001, + 200001, + 1623, + '1932-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 3 + ), + ( + 200002, + 200006, + 490, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 6 + ), + ( + 200003, + 200003, + 491, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 5 + ), + ( + 200004, + 200002, + 518, + '1955-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 4 + ), + ( + 200005, + 200008, + 882, + '1958-01-01 00:00:00.000000', + 125, + 126, + 30000, + 3 + ), + ( + 200006, + 200009, + 1460, + '1966-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 2 + ), + ( + 200007, + 200010, + 1461, + '1969-01-01 00:00:00.000000', + 125, + 297, + 30000, + 14 + ), + ( + 200008, + 200011, + 1516, + '1963-01-01 00:00:00.000000', + 0, + 1915, + 30000, + 19 + ), + ( + 200009, + 200012, + 1582, + '1969-01-01 00:00:00.000000', + 250, + 71, + 30000, + 13 + ), + ( + 200010, + 200005, + 1615, + '1965-01-01 00:00:00.000000', + 0, + 231, + 30000, + 3 + ), + ( + 200011, + 200013, + 1473, + '1999-01-01 00:00:00.000000', + 125, + 297, + 30000, + 4 + ), + ( + 200012, + 200014, + 1629, + '1969-01-01 00:00:00.000000', + 125, + 71, + 30000, + 17 + ), + ( + 200013, + 200007, + 1678, + '1999-01-01 00:00:00.000000', + 250, + 175, + 30000, + 15 + ), + ( + 200014, + 200015, + 1683, + '1968-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 1 + ), + ( + 200015, + 200004, + 1471, + '1999-01-01 00:00:00.000000', + 125, + 297, + 30000, + 3 + ), + ( + 200016, + 200016, + 1763, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 7 + ), + ( + 200017, + 200017, + 1764, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 8 + ), + ( + 200018, + 200018, + 1765, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 9 + ), + ( + 200019, + 200019, + 1766, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 10 + ), + ( + 200020, + 200020, + 1767, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 12 + ), + ( + 200021, + 200021, + 1768, + '1968-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 11 + ), + ( + 200022, + 200022, + 1769, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 14 + ), + ( + 200023, + 200023, + 1770, + '1999-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 13 + ), + ( + 200024, + 200024, + 1771, + '1999-01-01 00:00:00.000000', + 1000, + 64, + 30000, + 6 + ), + ( + 200025, + 200025, + 1772, + '1999-01-01 00:00:00.000000', + 250, + 297, + 30000, + 7 + ), + ( + 200026, + 200026, + 1773, + '1999-01-01 00:00:00.000000', + 125, + 414, + 30000, + 7 + ), + ( + 200027, + 200027, + 1774, + '1999-01-01 00:00:00.000000', + 500, + 64, + 30000, + 13 + ), + ( + 200028, + 200028, + 1775, + '1999-01-01 00:00:00.000000', + 1000, + 64, + 30000, + 3 + ), + ( + 200029, + 200029, + 1776, + '1999-01-01 00:00:00.000000', + 1000, + 64, + 30000, + 1 + ), + ( + 200030, + 200030, + 1777, + '1999-01-01 00:00:00.000000', + 125, + 350, + 30000, + 19 + ), + ( + 200031, + 200031, + 1778, + '1999-01-01 00:00:00.000000', + 125, + 193, + 30000, + 4 + ), + ( + 200032, + 200032, + 1779, + '1999-01-01 00:00:00.000000', + 125, + 193, + 30000, + 6 + ), + ( + 200033, + 200033, + 1780, + '1999-01-01 00:00:00.000000', + 125, + 193, + 30000, + 5 + ), + ( + 200034, + 200034, + 1781, + '1999-01-01 00:00:00.000000', + 125, + 193, + 30000, + 7 + ), + ( + 200035, + 200035, + 1782, + '1999-01-01 00:00:00.000000', + 125, + 193, + 30000, + 12 + ), + ( + 200036, + 200036, + 1783, + '1999-01-01 00:00:00.000000', + 125, + 297, + 30000, + 6 + ), + ( + 200037, + 200037, + 1784, + '1999-01-01 00:00:00.000000', + 125, + 297, + 30000, + 5 + ), + ( + 200038, + 200038, + 1785, + '1999-01-01 00:00:00.000000', + 125, + 193, + 30000, + 1 + ), + ( + 200039, + 200039, + 1786, + '1999-01-01 00:00:00.000000', + 125, + 297, + 30000, + 1 + ), + ( + 200040, + 200040, + 1787, + '1999-01-01 00:00:00.000000', + 125, + 297, + 30000, + 7 + ), + ( + 200041, + 200041, + 1788, + '1999-01-01 00:00:00.000000', + 125, + 297, + 30000, + 12 + ), + ( + 200042, + 200042, + 1963, + '1957-01-01 00:00:00.000000', + 125, + 217, + 30000, + 15 + ), + ( + 200043, + 200043, + 2024, + '1966-01-01 00:00:00.000000', + 250, + 278, + 30000, + 3 + ), + ( + 200044, + 200044, + 2025, + '1966-01-01 00:00:00.000000', + 250, + 125, + 30000, + 3 + ), + ( + 200045, + 200045, + 2026, + '1959-01-01 00:00:00.000000', + 125, + 142, + 30000, + 1 + ), + ( + 200046, + 200046, + 2040, + '1965-01-01 00:00:00.000000', + 1000, + 64, + 30000, + 5 + ), + ( + 200047, + 200047, + 2052, + '1967-01-01 00:00:00.000000', + 250, + 153, + 30000, + 6 + ), + ( + 200048, + 200048, + 2056, + '1958-01-01 00:00:00.000000', + 250, + 126, + 30000, + 19 + ), + ( + 200049, + 200049, + 2057, + '1959-01-01 00:00:00.000000', + 125, + 414, + 30000, + 19 + ), + ( + 200050, + 200050, + 2059, + '1963-01-01 00:00:00.000000', + 250, + 153, + 30000, + 19 + ), + ( + 200051, + 200051, + 2063, + '1970-01-01 00:00:00.000000', + 250, + 193, + 30000, + 5 + ), + ( + 200052, + 200052, + 2066, + '1966-01-01 00:00:00.000000', + 250, + 193, + 30000, + 12 + ), + ( + 200053, + 200053, + 2075, + '1959-01-01 00:00:00.000000', + 125, + 71, + 30000, + 18 + ), + ( + 200054, + 200054, + 2104, + '1969-01-01 00:00:00.000000', + 250, + 64, + 30000, + 4 + ), + ( + 200055, + 200015, + 2463, + '1964-01-01 00:00:00.000000', + 0, + 54, + 30000, + 18 + ), + ( + 200056, + 200055, + 2475, + '1940-01-01 00:00:00.000000', + 1000, + 40, + 30000, + 20 + ), + ( + 200057, + 200056, + 2483, + '1953-01-01 00:00:00.000000', + 250, + 114, + 30000, + 21 + ), + ( + 200058, + 200057, + 2484, + '1953-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 21 + ), + ( + 200059, + 200058, + 2485, + '1955-01-01 00:00:00.000000', + 125, + 183, + 30000, + 21 + ), + ( + 200060, + 200059, + 2486, + '1956-01-01 00:00:00.000000', + 125, + 333, + 30000, + 21 + ), + ( + 200061, + 200060, + 2490, + '1964-01-01 00:00:00.000000', + 250, + 64, + 30000, + 2 + ), + ( + 200062, + 200061, + 2497, + '1970-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 16 + ), + ( + 200063, + 200062, + 2498, + '1971-01-01 00:00:00.000000', + 250, + 64, + 30000, + 16 + ), + ( + 200064, + 200063, + 2510, + '1968-01-01 00:00:00.000000', + 1000, + 54, + 30000, + 17 + ), + ( + 200065, + 200064, + 2511, + '1970-01-01 00:00:00.000000', + 250, + 64, + 30000, + 17 + ), + ( + 200066, + 200065, + 2531, + '1954-01-01 00:00:00.000000', + 1000, + 50, + 30000, + 15 + ), + ( + 200067, + 200066, + 2627, + '1990-01-01 00:00:00.000000', + 500, + 183, + 30000, + 8 + ), + ( + 200068, + 200068, + 2626, + '1990-01-01 00:00:00.000000', + 250, + 183, + 30000, + 20 + ), + ( + 200069, + 200067, + 2625, + '1990-01-01 00:00:00.000000', + 500, + 64, + 30000, + 20 + ), + ( + 200070, + 200069, + 2624, + '1990-01-01 00:00:00.000000', + 500, + 183, + 30000, + 9 + ), + ( + 200071, + 200070, + 2623, + '1990-01-01 00:00:00.000000', + 60, + 249, + 30000, + 18 + ), + ( + 200072, + 200071, + 2622, + '1990-01-01 00:00:00.000000', + 125, + 167, + 30000, + 18 + ), + ( + 200073, + 200072, + 2620, + '1990-01-01 00:00:00.000000', + 500, + 183, + 30000, + 10 + ), + ( + 200074, + 200073, + 2621, + '1990-01-01 00:00:00.000000', + 250, + 333, + 30000, + 10 + ), + ( + 200075, + 200074, + 2619, + '1990-01-01 00:00:00.000000', + 500, + 183, + 30000, + 11 + ), + ( + 200076, + 200075, + 2659, + '1998-01-01 00:00:00.000000', + 0, + 489, + 30000, + 6 + ), + ( + 200077, + 200076, + 2835, + '1957-01-01 00:00:00.000000', + 125, + 133, + 30000, + 15 + ), + ( + 200078, + 200079, + 2838, + '1957-01-01 00:00:00.000000', + 125, + 137, + 30000, + 15 + ), + ( + 200079, + 200080, + 2839, + '1957-01-01 00:00:00.000000', + 125, + 146, + 30000, + 15 + ), + ( + 200080, + 200077, + 2836, + '1957-01-01 00:00:00.000000', + 125, + 151, + 30000, + 15 + ), + ( + 200081, + 200078, + 2837, + '1957-01-01 00:00:00.000000', + 125, + 156, + 30000, + 15 + ), + ( + 200082, + 200081, + 2840, + '1957-01-01 00:00:00.000000', + 125, + 228, + 30000, + 15 + ), + ( + 200083, + 200083, + 2842, + '1957-01-01 00:00:00.000000', + 60, + 243, + 30000, + 15 + ), + ( + 200084, + 200084, + 2843, + '1957-01-01 00:00:00.000000', + 60, + 268, + 30000, + 15 + ), + ( + 200085, + 200082, + 2841, + '1957-01-01 00:00:00.000000', + 60, + 286, + 30000, + 15 + ), + ( + 200086, + 200085, + 2844, + '1957-01-01 00:00:00.000000', + 60, + 295, + 30000, + 15 + ), + ( + 200087, + 200086, + 2904, + '1964-01-01 00:00:00.000000', + 500, + 185, + 30000, + 6 + ), + ( + 200088, + 200087, + 2905, + '1964-01-01 00:00:00.000000', + 250, + 197, + 30000, + 6 + ), + ( + 200089, + 200094, + 2902, + '1964-01-01 00:00:00.000000', + 250, + 244, + 30000, + 6 + ), + ( + 200090, + 200093, + 2903, + '1964-01-01 00:00:00.000000', + 125, + 260, + 30000, + 6 + ), + ( + 200091, + 200088, + 2906, + '1964-01-01 00:00:00.000000', + 250, + 210, + 30000, + 6 + ), + ( + 200092, + 200089, + 2907, + '1964-01-01 00:00:00.000000', + 125, + 278, + 30000, + 6 + ), + ( + 200093, + 200090, + 2908, + '1964-01-01 00:00:00.000000', + 125, + 327, + 30000, + 6 + ), + ( + 200094, + 200091, + 2909, + '1964-01-01 00:00:00.000000', + 60, + 349, + 30000, + 6 + ), + ( + 200095, + 200092, + 2910, + '1964-01-01 00:00:00.000000', + 60, + 385, + 30000, + 6 + ), + ( + 200096, + 200095, + 2900, + '1964-01-01 00:00:00.000000', + 250, + 181, + 30000, + 6 + ), + ( + 200097, + 200096, + 2901, + '1964-01-01 00:00:00.000000', + 250, + 205, + 30000, + 6 + ), + ( + 200098, + 200112, + 2955, + '1965-01-01 00:00:00.000000', + 250, + 204, + 30000, + 21 + ), + ( + 200099, + 200101, + 2946, + '1965-01-01 00:00:00.000000', + 500, + 244, + 30000, + 4 + ), + ( + 200100, + 200097, + 2941, + '1965-01-01 00:00:00.000000', + 250, + 260, + 30000, + 4 + ), + ( + 200101, + 200110, + 2954, + '1965-01-01 00:00:00.000000', + 125, + 260, + 30000, + 21 + ), + ( + 200102, + 200102, + 2947, + '1965-01-01 00:00:00.000000', + 125, + 269, + 30000, + 4 + ), + ( + 200103, + 200111, + 2956, + '1965-01-01 00:00:00.000000', + 125, + 297, + 30000, + 21 + ), + ( + 200104, + 200103, + 2948, + '1965-01-01 00:00:00.000000', + 60, + 328, + 30000, + 4 + ), + ( + 200105, + 200098, + 2942, + '1965-01-01 00:00:00.000000', + 60, + 350, + 30000, + 4 + ), + ( + 200106, + 200121, + 2965, + '1965-01-01 00:00:00.000000', + 250, + 54, + 30000, + 21 + ), + ( + 200107, + 200120, + 2964, + '1965-01-01 00:00:00.000000', + 500, + 71, + 30000, + 21 + ), + ( + 200108, + 200117, + 2961, + '1965-01-01 00:00:00.000000', + 125, + 139, + 30000, + 21 + ), + ( + 200109, + 200107, + 2953, + '1965-01-01 00:00:00.000000', + 250, + 153, + 30000, + 4 + ), + ( + 200110, + 200116, + 2960, + '1965-01-01 00:00:00.000000', + 250, + 114, + 30000, + 21 + ), + ( + 200111, + 200108, + 2952, + '1965-01-01 00:00:00.000000', + 250, + 114, + 30000, + 4 + ), + ( + 200112, + 200118, + 2962, + '1965-01-01 00:00:00.000000', + 250, + 114, + 30000, + 21 + ), + ( + 200113, + 200119, + 2963, + '1965-01-01 00:00:00.000000', + 125, + 139, + 30000, + 21 + ), + ( + 200114, + 200106, + 2951, + '1965-01-01 00:00:00.000000', + 250, + 114, + 30000, + 4 + ), + ( + 200115, + 200115, + 2959, + '1965-01-01 00:00:00.000000', + 500, + 181, + 30000, + 21 + ), + ( + 200116, + 200100, + 2944, + '1965-01-01 00:00:00.000000', + 250, + 181, + 30000, + 4 + ), + ( + 200117, + 200113, + 2957, + '1965-01-01 00:00:00.000000', + 250, + 193, + 30000, + 21 + ), + ( + 200118, + 200104, + 2949, + '1965-01-01 00:00:00.000000', + 250, + 161, + 30000, + 4 + ), + ( + 200119, + 200114, + 2958, + '1965-01-01 00:00:00.000000', + 125, + 166, + 30000, + 21 + ), + ( + 200120, + 200109, + 2945, + '1965-01-01 00:00:00.000000', + 125, + 212, + 30000, + 4 + ), + ( + 200121, + 200099, + 2943, + '1965-01-01 00:00:00.000000', + 125, + 226, + 30000, + 4 + ), + ( + 200122, + 200105, + 2950, + '1965-01-01 00:00:00.000000', + 60, + 195, + 30000, + 4 + ), + ( + 200123, + 200132, + 3059, + '1966-01-01 00:00:00.000000', + 250, + 64, + 30000, + 2 + ), + ( + 200124, + 200122, + 3050, + '1966-01-01 00:00:00.000000', + 250, + 126, + 30000, + 2 + ), + ( + 200125, + 200130, + 3049, + '1966-01-01 00:00:00.000000', + 500, + 156, + 30000, + 2 + ), + ( + 200126, + 200131, + 3048, + '1966-01-01 00:00:00.000000', + 125, + 278, + 30000, + 2 + ), + ( + 200127, + 200133, + 3055, + '1966-01-01 00:00:00.000000', + 500, + 277, + 30000, + 2 + ), + ( + 200128, + 200134, + 3056, + '1966-01-01 00:00:00.000000', + 125, + 385, + 30000, + 2 + ), + ( + 200129, + 200135, + 3057, + '1966-01-01 00:00:00.000000', + 60, + 455, + 30000, + 2 + ), + ( + 200130, + 200136, + 3058, + '1966-01-01 00:00:00.000000', + 0, + 587, + 30000, + 2 + ), + ( + 200131, + 200124, + 3052, + '1966-01-01 00:00:00.000000', + 500, + 114, + 30000, + 2 + ), + ( + 200132, + 200126, + 3054, + '1966-01-01 00:00:00.000000', + 250, + 114, + 30000, + 2 + ), + ( + 200133, + 200123, + 3051, + '1966-01-01 00:00:00.000000', + 250, + 114, + 30000, + 2 + ), + ( + 200134, + 200125, + 3053, + '1966-01-01 00:00:00.000000', + 125, + 126, + 30000, + 2 + ), + ( + 200135, + 200127, + 3045, + '1966-01-01 00:00:00.000000', + 250, + 161, + 30000, + 2 + ), + ( + 200136, + 200128, + 3046, + '1966-01-01 00:00:00.000000', + 125, + 183, + 30000, + 2 + ), + ( + 200137, + 200129, + 3047, + '1966-01-01 00:00:00.000000', + 60, + 236, + 30000, + 2 + ), + ( + 200138, + 200147, + 3096, + '1966-01-01 00:00:00.000000', + 500, + 252, + 30000, + 13 + ), + ( + 200139, + 200148, + 3097, + '1966-01-01 00:00:00.000000', + 125, + 297, + 30000, + 13 + ), + ( + 200140, + 200149, + 3098, + '1966-01-01 00:00:00.000000', + 125, + 350, + 30000, + 13 + ), + ( + 200141, + 200150, + 3099, + '1966-01-01 00:00:00.000000', + 60, + 414, + 30000, + 13 + ), + ( + 200142, + 200151, + 3100, + '1966-01-01 00:00:00.000000', + 0, + 489, + 30000, + 13 + ), + ( + 200143, + 200137, + 3090, + '1966-01-01 00:00:00.000000', + 500, + 114, + 30000, + 13 + ), + ( + 200144, + 200140, + 3086, + '1966-01-01 00:00:00.000000', + 500, + 114, + 30000, + 13 + ), + ( + 200145, + 200138, + 3089, + '1966-01-01 00:00:00.000000', + 250, + 114, + 30000, + 13 + ), + ( + 200146, + 200141, + 3087, + '1966-01-01 00:00:00.000000', + 125, + 114, + 30000, + 13 + ), + ( + 200147, + 200139, + 3088, + '1966-01-01 00:00:00.000000', + 60, + 139, + 30000, + 13 + ), + ( + 200148, + 200142, + 3091, + '1966-01-01 00:00:00.000000', + 500, + 151, + 30000, + 13 + ), + ( + 200149, + 200145, + 3092, + '1966-01-01 00:00:00.000000', + 500, + 172, + 30000, + 13 + ), + ( + 200150, + 200143, + 3093, + '1966-01-01 00:00:00.000000', + 250, + 195, + 30000, + 13 + ), + ( + 200151, + 200144, + 3094, + '1966-01-01 00:00:00.000000', + 125, + 275, + 30000, + 13 + ), + ( + 200152, + 200146, + 3095, + '1966-01-01 00:00:00.000000', + 60, + 314, + 30000, + 13 + ), + ( + 200153, + 200161, + 3127, + '1966-01-01 00:00:00.000000', + 500, + 252, + 30000, + 5 + ), + ( + 200154, + 200162, + 3128, + '1966-01-01 00:00:00.000000', + 250, + 385, + 30000, + 5 + ), + ( + 200155, + 200163, + 3129, + '1966-01-01 00:00:00.000000', + 125, + 455, + 30000, + 5 + ), + ( + 200156, + 200164, + 3130, + '1966-01-01 00:00:00.000000', + 0, + 587, + 30000, + 5 + ), + ( + 200157, + 200152, + 3118, + '1966-01-01 00:00:00.000000', + 500, + 139, + 30000, + 5 + ), + ( + 200158, + 200153, + 3119, + '1966-01-01 00:00:00.000000', + 250, + 139, + 30000, + 5 + ), + ( + 200159, + 200154, + 3120, + '1966-01-01 00:00:00.000000', + 250, + 139, + 30000, + 5 + ), + ( + 200160, + 200155, + 3121, + '1966-01-01 00:00:00.000000', + 125, + 153, + 30000, + 5 + ), + ( + 200161, + 200156, + 3122, + '1966-01-01 00:00:00.000000', + 125, + 153, + 30000, + 5 + ), + ( + 200162, + 200157, + 3123, + '1966-01-01 00:00:00.000000', + 500, + 205, + 30000, + 5 + ), + ( + 200163, + 200158, + 3124, + '1966-01-01 00:00:00.000000', + 250, + 226, + 30000, + 5 + ), + ( + 200164, + 200159, + 3125, + '1966-01-01 00:00:00.000000', + 150, + 293, + 30000, + 5 + ), + ( + 200165, + 200160, + 3126, + '1966-01-01 00:00:00.000000', + 60, + 376, + 30000, + 5 + ), + ( + 200166, + 200175, + 3486, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 3 + ), + ( + 200167, + 200176, + 3488, + '1967-01-01 00:00:00.000000', + 125, + 350, + 30000, + 3 + ), + ( + 200168, + 200177, + 3489, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 3 + ), + ( + 200169, + 200177, + 3490, + '1967-01-01 00:00:00.000000', + 1, + 455, + 30000, + 3 + ), + ( + 200170, + 200178, + 3490, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 3 + ), + ( + 200171, + 200167, + 3478, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 3 + ), + ( + 200172, + 200165, + 3476, + '1967-01-01 00:00:00.000000', + 250, + 139, + 30000, + 3 + ), + ( + 200173, + 200168, + 3479, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 3 + ), + ( + 200174, + 200169, + 3480, + '1967-01-01 00:00:00.000000', + 125, + 126, + 30000, + 3 + ), + ( + 200175, + 200166, + 3477, + '1967-01-01 00:00:00.000000', + 250, + 139, + 30000, + 3 + ), + ( + 200176, + 200170, + 3481, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 3 + ), + ( + 200177, + 200171, + 3482, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 3 + ), + ( + 200178, + 200172, + 3483, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 3 + ), + ( + 200179, + 200173, + 3484, + '1967-01-01 00:00:00.000000', + 125, + 293, + 30000, + 3 + ), + ( + 200180, + 200174, + 3485, + '1967-01-01 00:00:00.000000', + 125, + 345, + 30000, + 3 + ), + ( + 200181, + 200183, + 3500, + '1967-01-01 00:00:00.000000', + 250, + 252, + 30000, + 1 + ), + ( + 200182, + 200184, + 3501, + '1967-01-01 00:00:00.000000', + 125, + 385, + 30000, + 1 + ), + ( + 200183, + 200185, + 3502, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 1 + ), + ( + 200184, + 200178, + 3503, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 1 + ), + ( + 200185, + 200189, + 3493, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 1 + ), + ( + 200186, + 200187, + 3491, + '1967-01-01 00:00:00.000000', + 250, + 139, + 30000, + 1 + ), + ( + 200187, + 200190, + 3494, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 1 + ), + ( + 200188, + 200188, + 3492, + '1967-01-01 00:00:00.000000', + 125, + 153, + 30000, + 1 + ), + ( + 200189, + 200191, + 3495, + '1967-01-01 00:00:00.000000', + 125, + 126, + 30000, + 1 + ), + ( + 200190, + 200179, + 3496, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 1 + ), + ( + 200191, + 200180, + 3497, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 1 + ), + ( + 200192, + 200181, + 3498, + '1967-01-01 00:00:00.000000', + 125, + 266, + 30000, + 1 + ), + ( + 200193, + 200182, + 3499, + '1967-01-01 00:00:00.000000', + 125, + 345, + 30000, + 1 + ), + ( + 200194, + 200201, + 3513, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 12 + ), + ( + 200195, + 200202, + 3514, + '1967-01-01 00:00:00.000000', + 125, + 350, + 30000, + 12 + ), + ( + 200196, + 200203, + 3515, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 12 + ), + ( + 200197, + 200204, + 3516, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 12 + ), + ( + 200198, + 200194, + 3506, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 12 + ), + ( + 200199, + 200192, + 3504, + '1967-01-01 00:00:00.000000', + 500, + 153, + 30000, + 12 + ), + ( + 200200, + 200195, + 3507, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 12 + ), + ( + 200201, + 200193, + 3505, + '1967-01-01 00:00:00.000000', + 125, + 153, + 30000, + 12 + ), + ( + 200202, + 200196, + 3508, + '1967-01-01 00:00:00.000000', + 125, + 126, + 30000, + 12 + ), + ( + 200203, + 200197, + 3509, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 12 + ), + ( + 200204, + 200198, + 3510, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 12 + ), + ( + 200205, + 200199, + 3511, + '1967-01-01 00:00:00.000000', + 125, + 266, + 30000, + 12 + ), + ( + 200206, + 200200, + 3512, + '1967-01-01 00:00:00.000000', + 60, + 345, + 30000, + 12 + ), + ( + 200207, + 200215, + 3527, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 14 + ), + ( + 200208, + 200216, + 3528, + '1967-01-01 00:00:00.000000', + 250, + 297, + 30000, + 14 + ), + ( + 200209, + 200217, + 3529, + '1967-01-01 00:00:00.000000', + 125, + 350, + 30000, + 14 + ), + ( + 200210, + 200218, + 3530, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 14 + ), + ( + 200211, + 200219, + 3531, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 14 + ), + ( + 200212, + 200207, + 3519, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 14 + ), + ( + 200213, + 200205, + 3517, + '1967-01-01 00:00:00.000000', + 500, + 153, + 30000, + 14 + ), + ( + 200214, + 200208, + 3520, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 14 + ), + ( + 200215, + 200206, + 3518, + '1967-01-01 00:00:00.000000', + 125, + 153, + 30000, + 14 + ), + ( + 200216, + 200209, + 3521, + '1967-01-01 00:00:00.000000', + 125, + 126, + 30000, + 14 + ), + ( + 200217, + 200210, + 3522, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 14 + ), + ( + 200218, + 200211, + 3523, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 14 + ), + ( + 200219, + 200212, + 3524, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 14 + ), + ( + 200220, + 200213, + 3525, + '1967-01-01 00:00:00.000000', + 125, + 266, + 30000, + 14 + ), + ( + 200221, + 200214, + 3526, + '1967-01-01 00:00:00.000000', + 125, + 345, + 30000, + 14 + ), + ( + 200222, + 200228, + 3540, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 19 + ), + ( + 200223, + 200229, + 3541, + '1967-01-01 00:00:00.000000', + 125, + 297, + 30000, + 19 + ), + ( + 200224, + 200230, + 3542, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 19 + ), + ( + 200225, + 200221, + 3533, + '1967-01-01 00:00:00.000000', + 500, + 153, + 30000, + 19 + ), + ( + 200226, + 200220, + 3532, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 19 + ), + ( + 200227, + 200141, + 3534, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 19 + ), + ( + 200228, + 200223, + 3535, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 19 + ), + ( + 200229, + 200224, + 3536, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 19 + ), + ( + 200230, + 200225, + 3537, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 19 + ), + ( + 200231, + 200226, + 3538, + '1967-01-01 00:00:00.000000', + 125, + 266, + 30000, + 19 + ), + ( + 200232, + 200227, + 3539, + '1967-01-01 00:00:00.000000', + 60, + 345, + 30000, + 19 + ), + ( + 200233, + 200236, + 3548, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 9 + ), + ( + 200234, + 200237, + 3549, + '1967-01-01 00:00:00.000000', + 250, + 297, + 30000, + 9 + ), + ( + 200235, + 200238, + 3550, + '1967-01-01 00:00:00.000000', + 125, + 350, + 30000, + 9 + ), + ( + 200236, + 200239, + 3551, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 9 + ), + ( + 200237, + 200240, + 3552, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 9 + ), + ( + 200238, + 200231, + 3543, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 9 + ), + ( + 200239, + 200234, + 3547, + '1967-01-01 00:00:00.000000', + 500, + 153, + 30000, + 9 + ), + ( + 200240, + 200232, + 3544, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 9 + ), + ( + 200241, + 200235, + 3546, + '1967-01-01 00:00:00.000000', + 250, + 153, + 30000, + 9 + ), + ( + 200242, + 200233, + 3545, + '1967-01-01 00:00:00.000000', + 125, + 114, + 30000, + 9 + ), + ( + 200243, + 200241, + 3553, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 9 + ), + ( + 200244, + 200242, + 3554, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 9 + ), + ( + 200245, + 200243, + 3555, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 9 + ), + ( + 200246, + 200244, + 3556, + '1967-01-01 00:00:00.000000', + 125, + 293, + 30000, + 9 + ), + ( + 200247, + 200245, + 3557, + '1967-01-01 00:00:00.000000', + 125, + 345, + 30000, + 9 + ), + ( + 200248, + 200251, + 3563, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 18 + ), + ( + 200249, + 200252, + 3564, + '1967-01-01 00:00:00.000000', + 250, + 297, + 30000, + 18 + ), + ( + 200250, + 200253, + 3565, + '1967-01-01 00:00:00.000000', + 150, + 385, + 30000, + 18 + ), + ( + 200251, + 200254, + 3566, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 18 + ), + ( + 200252, + 200255, + 3567, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 18 + ), + ( + 200253, + 200246, + 3558, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 18 + ), + ( + 200254, + 200249, + 3561, + '1967-01-01 00:00:00.000000', + 500, + 153, + 30000, + 18 + ), + ( + 200255, + 200250, + 3562, + '1967-01-01 00:00:00.000000', + 250, + 153, + 30000, + 18 + ), + ( + 200256, + 200247, + 3559, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 18 + ), + ( + 200257, + 200248, + 3560, + '1967-01-01 00:00:00.000000', + 125, + 126, + 30000, + 18 + ), + ( + 200258, + 200256, + 3568, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 18 + ), + ( + 200259, + 200257, + 3569, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 18 + ), + ( + 200260, + 200258, + 3570, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 18 + ), + ( + 200261, + 200259, + 3571, + '1967-01-01 00:00:00.000000', + 125, + 293, + 30000, + 18 + ), + ( + 200262, + 200260, + 3572, + '1967-01-01 00:00:00.000000', + 125, + 345, + 30000, + 18 + ), + ( + 200263, + 200266, + 3578, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 17 + ), + ( + 200264, + 200267, + 3579, + '1967-01-01 00:00:00.000000', + 250, + 297, + 30000, + 17 + ), + ( + 200265, + 200268, + 3580, + '1967-01-01 00:00:00.000000', + 150, + 385, + 30000, + 17 + ), + ( + 200266, + 200269, + 3581, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 17 + ), + ( + 200267, + 200270, + 3582, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 17 + ), + ( + 200268, + 200261, + 3573, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 17 + ), + ( + 200269, + 200264, + 3576, + '1967-01-01 00:00:00.000000', + 500, + 153, + 30000, + 17 + ), + ( + 200270, + 200262, + 3574, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 17 + ), + ( + 200271, + 200265, + 3577, + '1967-01-01 00:00:00.000000', + 125, + 153, + 30000, + 17 + ), + ( + 200272, + 200263, + 3575, + '1967-01-01 00:00:00.000000', + 125, + 126, + 30000, + 17 + ), + ( + 200273, + 200271, + 3583, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 17 + ), + ( + 200274, + 200272, + 3584, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 17 + ), + ( + 200275, + 200273, + 3585, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 17 + ), + ( + 200276, + 200274, + 3586, + '1967-01-01 00:00:00.000000', + 125, + 293, + 30000, + 17 + ), + ( + 200277, + 200275, + 3587, + '1967-01-01 00:00:00.000000', + 125, + 345, + 30000, + 17 + ), + ( + 200278, + 200281, + 3593, + '1967-01-01 00:00:00.000000', + 500, + 252, + 30000, + 16 + ), + ( + 200279, + 200282, + 3594, + '1967-01-01 00:00:00.000000', + 250, + 297, + 30000, + 16 + ), + ( + 200280, + 200268, + 3595, + '1967-01-01 00:00:00.000000', + 125, + 385, + 30000, + 16 + ), + ( + 200281, + 200284, + 3596, + '1967-01-01 00:00:00.000000', + 125, + 455, + 30000, + 16 + ), + ( + 200282, + 200285, + 3597, + '1967-01-01 00:00:00.000000', + 0, + 538, + 30000, + 16 + ), + ( + 200283, + 200276, + 3588, + '1967-01-01 00:00:00.000000', + 500, + 114, + 30000, + 16 + ), + ( + 200284, + 200279, + 3591, + '1967-01-01 00:00:00.000000', + 500, + 153, + 30000, + 16 + ), + ( + 200285, + 200277, + 3589, + '1967-01-01 00:00:00.000000', + 250, + 114, + 30000, + 16 + ), + ( + 200286, + 200280, + 3592, + '1967-01-01 00:00:00.000000', + 125, + 153, + 30000, + 16 + ), + ( + 200287, + 200278, + 3590, + '1967-01-01 00:00:00.000000', + 125, + 126, + 30000, + 16 + ), + ( + 200288, + 200286, + 3598, + '1967-01-01 00:00:00.000000', + 500, + 181, + 30000, + 16 + ), + ( + 200289, + 200287, + 3599, + '1967-01-01 00:00:00.000000', + 500, + 193, + 30000, + 16 + ), + ( + 200290, + 200288, + 3600, + '1967-01-01 00:00:00.000000', + 250, + 226, + 30000, + 16 + ), + ( + 200291, + 200289, + 3601, + '1967-01-01 00:00:00.000000', + 125, + 293, + 30000, + 16 + ), + ( + 200292, + 200290, + 3602, + '1967-01-01 00:00:00.000000', + 125, + 345, + 30000, + 16 + ), + ( + 230001, + 230001, + 193, + '1954-01-01 00:00:00.000000', + 1000, + 242, + 30000, + 0 + ), + ( + 230002, + 230002, + 413, + '1940-01-01 00:00:00.000000', + 500, + 130, + 30000, + 0 + ), + ( + 230003, + 230003, + 414, + '1966-01-01 00:00:00.000000', + 250, + 552, + 30000, + 0 + ), + ( + 230004, + 230004, + 415, + '1958-01-01 00:00:00.000000', + 0, + 1062, + 30000, + 0 + ), + ( + 230005, + 230005, + 416, + '1971-01-01 00:00:00.000000', + 0, + 1049, + 30000, + 0 + ), + ( + 230006, + 230006, + 2686, + '1995-01-01 00:00:00.000000', + 125, + 651, + 30000, + 0 + ), + ( + 230007, + 230027, + 3728, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230008, + 230012, + 3714, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230009, + 230023, + 3724, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230010, + 230037, + 3739, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230011, + 230017, + 3719, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230012, + 230018, + 3720, + '1970-01-01 00:00:00.000000', + 150, + 1054, + 30000, + 0 + ), + ( + 230013, + 230026, + 3727, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 230014, + 230016, + 3718, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 230015, + 230036, + 3738, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 230016, + 230011, + 3713, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 230017, + 230022, + 3723, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 230018, + 230030, + 3732, + '1970-01-01 00:00:00.000000', + 1000, + 169, + 30000, + 0 + ), + ( + 230019, + 230021, + 3722, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230020, + 230019, + 3731, + '1970-01-01 00:00:00.000000', + 1000, + 169, + 30000, + 0 + ), + ( + 230021, + 230029, + 3730, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230022, + 230028, + 3729, + '1970-01-01 00:00:00.000000', + 1000, + 242, + 30000, + 0 + ), + ( + 230023, + 230025, + 3726, + '1970-01-01 00:00:00.000000', + 250, + 552, + 30000, + 0 + ), + ( + 230024, + 230035, + 3737, + '1970-01-01 00:00:00.000000', + 100, + 1054, + 30000, + 0 + ), + ( + 230025, + 230034, + 3736, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230026, + 230014, + 3716, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230027, + 230008, + 3706, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230028, + 230015, + 3717, + '1970-01-01 00:00:00.000000', + 250, + 1054, + 30000, + 0 + ), + ( + 230029, + 230033, + 3735, + '1970-01-01 00:00:00.000000', + 1000, + 242, + 30000, + 0 + ), + ( + 230030, + 230013, + 3715, + '1970-01-01 00:00:00.000000', + 1000, + 242, + 30000, + 0 + ), + ( + 230031, + 230007, + 3705, + '1970-01-01 00:00:00.000000', + 1000, + 242, + 30000, + 0 + ), + ( + 230032, + 230024, + 3725, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 230033, + 230020, + 3721, + '1970-01-01 00:00:00.000000', + 1000, + 242, + 30000, + 0 + ), + ( + 230034, + 230010, + 3712, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230035, + 230009, + 3711, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 230036, + 230032, + 3734, + '1970-01-01 00:00:00.000000', + 500, + 552, + 30000, + 0 + ), + ( + 230037, + 230031, + 3733, + '1970-01-01 00:00:00.000000', + 750, + 242, + 30000, + 0 + ), + ( + 240001, + 240001, + 194, + '1949-01-01 00:00:00.000000', + 1000, + 174, + 30000, + 0 + ), + ( + 240002, + 240002, + 410, + '1969-01-01 00:00:00.000000', + 60, + 1224, + 30000, + 0 + ), + ( + 240003, + 240003, + 411, + '1960-01-01 00:00:00.000000', + 500, + 124, + 30000, + 0 + ), + ( + 240004, + 240004, + 412, + '1960-01-01 00:00:00.000000', + 60, + 624, + 30000, + 0 + ), + ( + 240005, + 240005, + 453, + '1960-01-01 00:00:00.000000', + 250, + 673, + 30000, + 0 + ), + ( + 240006, + 240006, + 454, + '1966-01-01 00:00:00.000000', + 125, + 772, + 30000, + 0 + ), + ( + 240007, + 240008, + 1467, + '1995-01-01 00:00:00.000000', + 0, + 1471, + 30000, + 0 + ), + ( + 240008, + 240007, + 1466, + '1995-01-01 00:00:00.000000', + 60, + 821, + 30000, + 0 + ), + ( + 240009, + 240011, + 2694, + '1995-01-01 00:00:00.000000', + 30, + 1471, + 30000, + 0 + ), + ( + 240010, + 240010, + 2695, + '1995-01-01 00:00:00.000000', + 60, + 821, + 30000, + 0 + ), + ( + 240011, + 240009, + 2696, + '1995-01-01 00:00:00.000000', + 60, + 968, + 30000, + 0 + ), + ( + 240012, + 240027, + 3695, + '1970-01-01 00:00:00.000000', + 500, + 1018, + 30000, + 0 + ), + ( + 240013, + 240033, + 3701, + '1970-01-01 00:00:00.000000', + 500, + 1018, + 30000, + 0 + ), + ( + 240014, + 240015, + 3683, + '1970-01-01 00:00:00.000000', + 500, + 1018, + 30000, + 0 + ), + ( + 240015, + 240021, + 3689, + '1970-01-01 00:00:00.000000', + 500, + 1018, + 30000, + 0 + ), + ( + 240016, + 240023, + 3691, + '1970-01-01 00:00:00.000000', + 150, + 722, + 30000, + 0 + ), + ( + 240017, + 240023, + 3697, + '1970-01-01 00:00:00.000000', + 150, + 722, + 30000, + 0 + ), + ( + 240018, + 240017, + 3685, + '1970-01-01 00:00:00.000000', + 150, + 722, + 30000, + 0 + ), + ( + 240019, + 240025, + 3693, + '1970-01-01 00:00:00.000000', + 500, + 1116, + 30000, + 0 + ), + ( + 240020, + 240019, + 3687, + '1970-01-01 00:00:00.000000', + 500, + 1116, + 30000, + 0 + ), + ( + 240021, + 240013, + 3681, + '1970-01-01 00:00:00.000000', + 500, + 1116, + 30000, + 0 + ), + ( + 240022, + 240031, + 3699, + '1970-01-01 00:00:00.000000', + 500, + 1116, + 30000, + 0 + ), + ( + 240023, + 240014, + 3682, + '1970-01-01 00:00:00.000000', + 500, + 321, + 30000, + 0 + ), + ( + 240024, + 240032, + 3700, + '1970-01-01 00:00:00.000000', + 500, + 321, + 30000, + 0 + ), + ( + 240025, + 240026, + 3694, + '1970-01-01 00:00:00.000000', + 500, + 321, + 30000, + 0 + ), + ( + 240026, + 240020, + 3688, + '1970-01-01 00:00:00.000000', + 500, + 321, + 30000, + 0 + ), + ( + 240027, + 240016, + 3684, + '1970-01-01 00:00:00.000000', + 250, + 177, + 30000, + 0 + ), + ( + 240028, + 240022, + 3690, + '1970-01-01 00:00:00.000000', + 250, + 177, + 30000, + 0 + ), + ( + 240029, + 240028, + 3696, + '1970-01-01 00:00:00.000000', + 250, + 177, + 30000, + 0 + ), + ( + 240030, + 240024, + 3692, + '1970-01-01 00:00:00.000000', + 1000, + 419, + 30000, + 0 + ), + ( + 240031, + 240030, + 3698, + '1970-01-01 00:00:00.000000', + 1000, + 419, + 30000, + 0 + ), + ( + 240032, + 240012, + 3680, + '1970-01-01 00:00:00.000000', + 1000, + 419, + 30000, + 0 + ), + ( + 240033, + 240018, + 3686, + '1970-01-01 00:00:00.000000', + 1000, + 419, + 30000, + 0 + ), + ( + 250001, + 250001, + 1444, + '1950-01-01 00:00:00.000000', + 1000, + 174, + 30000, + 0 + ), + ( + 250002, + 250002, + 165, + '1940-01-01 00:00:00.000000', + 500, + 174, + 30000, + 0 + ), + ( + 250003, + 250003, + 1043, + '1940-01-01 00:00:00.000000', + 1000, + 174, + 30000, + 0 + ), + ( + 250004, + 250004, + 451, + '1970-01-01 00:00:00.000000', + 30, + 474, + 30000, + 0 + ), + ( + 250005, + 250005, + 467, + '1969-01-01 00:00:00.000000', + 60, + 977, + 30000, + 0 + ), + ( + 250006, + 250006, + 1739, + '1958-01-01 00:00:00.000000', + 125, + 474, + 30000, + 0 + ), + ( + 250007, + 250007, + 468, + '1958-01-01 00:00:00.000000', + 60, + 974, + 30000, + 0 + ), + ( + 250008, + 250008, + 469, + '1965-01-01 00:00:00.000000', + 60, + 480, + 30000, + 0 + ), + ( + 250009, + 250030, + 3759, + '1970-01-01 00:00:00.000000', + 250, + 474, + 30000, + 0 + ), + ( + 250010, + 250029, + 3758, + '1970-01-01 00:00:00.000000', + 500, + 179, + 30000, + 0 + ), + ( + 250011, + 250011, + 3743, + '1970-01-01 00:00:00.000000', + 250, + 474, + 30000, + 0 + ), + ( + 250012, + 250014, + 3746, + '1970-01-01 00:00:00.000000', + 250, + 474, + 30000, + 0 + ), + ( + 250013, + 250028, + 3761, + '1970-01-01 00:00:00.000000', + 250, + 474, + 30000, + 0 + ), + ( + 250014, + 250020, + 3750, + '1970-01-01 00:00:00.000000', + 250, + 474, + 30000, + 0 + ), + ( + 250015, + 250027, + 3760, + '1970-01-01 00:00:00.000000', + 500, + 179, + 30000, + 0 + ), + ( + 250016, + 250019, + 3749, + '1970-01-01 00:00:00.000000', + 500, + 179, + 30000, + 0 + ), + ( + 250017, + 250015, + 3742, + '1970-01-01 00:00:00.000000', + 500, + 179, + 30000, + 0 + ), + ( + 250018, + 250013, + 3745, + '1970-01-01 00:00:00.000000', + 500, + 179, + 30000, + 0 + ), + ( + 250019, + 250026, + 3757, + '1970-01-01 00:00:00.000000', + 500, + 174, + 30000, + 0 + ), + ( + 250020, + 250022, + 3753, + '1970-01-01 00:00:00.000000', + 1000, + 174, + 30000, + 0 + ), + ( + 250021, + 250016, + 3752, + '1970-01-01 00:00:00.000000', + 1000, + 174, + 30000, + 0 + ), + ( + 250022, + 250021, + 3751, + '1970-01-01 00:00:00.000000', + 750, + 179, + 30000, + 0 + ), + ( + 250023, + 250018, + 3748, + '1970-01-01 00:00:00.000000', + 250, + 474, + 30000, + 0 + ), + ( + 250024, + 250024, + 3755, + '1970-01-01 00:00:00.000000', + 100, + 1367, + 30000, + 0 + ), + ( + 250025, + 250010, + 3741, + '1970-01-01 00:00:00.000000', + 500, + 670, + 30000, + 0 + ), + ( + 250026, + 250009, + 3740, + '1970-01-01 00:00:00.000000', + 1000, + 174, + 30000, + 0 + ), + ( + 250027, + 250012, + 3744, + '1970-01-01 00:00:00.000000', + 1000, + 174, + 30000, + 0 + ), + ( + 250028, + 250017, + 3747, + '1970-01-01 00:00:00.000000', + 500, + 179, + 30000, + 0 + ), + ( + 250029, + 250025, + 3756, + '1970-01-01 00:00:00.000000', + 500, + 174, + 30000, + 0 + ), + ( + 250030, + 250023, + 3754, + '1970-01-01 00:00:00.000000', + 750, + 179, + 30000, + 0 + ), + ( + 280001, + 280001, + 108, + '1968-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 3 + ), + ( + 280002, + 280002, + 109, + '1965-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 5 + ), + ( + 280003, + 280003, + 110, + '1958-01-01 00:00:00.000000', + 1000, + 179, + 30000, + 2 + ), + ( + 280004, + 280004, + 438, + '1970-01-01 00:00:00.000000', + 125, + 500, + 30000, + 17 + ), + ( + 280005, + 280006, + 437, + '1964-01-01 00:00:00.000000', + 60, + 845, + 30000, + 19 + ), + ( + 280006, + 280005, + 436, + '1964-01-01 00:00:00.000000', + 125, + 447, + 30000, + 5 + ), + ( + 280007, + 280007, + 488, + '1999-01-01 00:00:00.000000', + 30, + 3431, + 30000, + 6 + ), + ( + 280008, + 280008, + 1288, + '1968-01-01 00:00:00.000000', + 125, + 456, + 30000, + 3 + ), + ( + 280009, + 280010, + 1671, + '1962-01-01 00:00:00.000000', + 60, + 845, + 30000, + 1 + ), + ( + 280010, + 280011, + 1684, + '1970-01-01 00:00:00.000000', + 125, + 516, + 30000, + 14 + ), + ( + 280011, + 280012, + 1685, + '1996-01-01 00:00:00.000000', + 30, + 2037, + 30000, + 5 + ), + ( + 280012, + 280009, + 1295, + '1965-01-01 00:00:00.000000', + 30, + 1811, + 30000, + 3 + ), + ( + 280013, + 280013, + 1935, + '1967-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 7 + ), + ( + 280014, + 280014, + 1936, + '1961-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 8 + ), + ( + 280015, + 280015, + 1937, + '1949-01-01 00:00:00.000000', + 500, + 403, + 30000, + 9 + ), + ( + 280016, + 280016, + 1938, + '1955-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 6 + ), + ( + 280017, + 280017, + 1939, + '1958-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 1 + ), + ( + 280018, + 280018, + 1940, + '1964-01-01 00:00:00.000000', + 1000, + 179, + 30000, + 4 + ), + ( + 280019, + 280019, + 1941, + '1932-01-01 00:00:00.000000', + 125, + 179, + 30000, + 10 + ), + ( + 280020, + 280020, + 1942, + '1965-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 12 + ), + ( + 280021, + 280021, + 1943, + '1968-01-01 00:00:00.000000', + 1000, + 179, + 30000, + 11 + ), + ( + 280022, + 280022, + 1944, + '1959-01-01 00:00:00.000000', + 1000, + 179, + 30000, + 14 + ), + ( + 280023, + 280023, + 1945, + '1955-01-01 00:00:00.000000', + 1000, + 149, + 30000, + 13 + ), + ( + 280024, + 280024, + 1946, + '1957-01-01 00:00:00.000000', + 125, + 179, + 30000, + 6 + ), + ( + 280025, + 280025, + 1947, + '1968-01-01 00:00:00.000000', + 125, + 456, + 30000, + 7 + ), + ( + 280026, + 280026, + 1948, + '1969-01-01 00:00:00.000000', + 60, + 1510, + 30000, + 7 + ), + ( + 280027, + 280027, + 1949, + '1970-01-01 00:00:00.000000', + 250, + 132, + 30000, + 12 + ), + ( + 280028, + 280028, + 1950, + '1967-01-01 00:00:00.000000', + 125, + 486, + 30000, + 13 + ), + ( + 280029, + 280029, + 1951, + '1959-01-01 00:00:00.000000', + 125, + 486, + 30000, + 13 + ), + ( + 280030, + 280030, + 1952, + '1957-01-01 00:00:00.000000', + 125, + 107, + 30000, + 15 + ), + ( + 280031, + 280031, + 1953, + '1968-01-01 00:00:00.000000', + 125, + 456, + 30000, + 3 + ), + ( + 280032, + 280032, + 1954, + '1969-01-01 00:00:00.000000', + 30, + 1509, + 30000, + 17 + ), + ( + 280033, + 280033, + 1955, + '1962-01-01 00:00:00.000000', + 60, + 1510, + 30000, + 1 + ), + ( + 280034, + 280034, + 1956, + '1967-01-01 00:00:00.000000', + 500, + 132, + 30000, + 1 + ), + ( + 280035, + 280035, + 1957, + '1964-01-01 00:00:00.000000', + 60, + 638, + 30000, + 1 + ), + ( + 280036, + 280036, + 1958, + '1964-01-01 00:00:00.000000', + 125, + 456, + 30000, + 1 + ), + ( + 280037, + 280037, + 1959, + '1970-01-01 00:00:00.000000', + 125, + 213, + 30000, + 2 + ), + ( + 280038, + 280038, + 2053, + '1970-01-01 00:00:00.000000', + 125, + 516, + 30000, + 6 + ), + ( + 280039, + 280039, + 2073, + '1959-01-01 00:00:00.000000', + 125, + 486, + 30000, + 13 + ), + ( + 280040, + 280008, + 2090, + '1961-01-01 00:00:00.000000', + 125, + 456, + 30000, + 3 + ), + ( + 280041, + 280040, + 2105, + '1969-01-01 00:00:00.000000', + 125, + 516, + 30000, + 4 + ), + ( + 280042, + 280041, + 2470, + '1964-01-01 00:00:00.000000', + 30, + 500, + 30000, + 18 + ), + ( + 280043, + 280042, + 2471, + '1964-01-01 00:00:00.000000', + 0, + 119, + 30000, + 18 + ), + ( + 280044, + 280043, + 2479, + '1940-01-01 00:00:00.000000', + 125, + 74, + 30000, + 20 + ), + ( + 280045, + 280044, + 2487, + '1953-01-01 00:00:00.000000', + 125, + 119, + 30000, + 21 + ), + ( + 280046, + 280045, + 2505, + '1970-01-01 00:00:00.000000', + 1000, + 149, + 30000, + 16 + ), + ( + 280047, + 280046, + 2519, + '1968-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 17 + ), + ( + 280048, + 280047, + 2520, + '1970-01-01 00:00:00.000000', + 30, + 456, + 30000, + 17 + ), + ( + 280049, + 280048, + 2525, + '1964-01-01 00:00:00.000000', + 125, + 492, + 30000, + 4 + ), + ( + 280050, + 280049, + 2535, + '1954-01-01 00:00:00.000000', + 1000, + 107, + 30000, + 15 + ), + ( + 280051, + 280050, + 2548, + '1958-01-01 00:00:00.000000', + 1000, + 119, + 30000, + 19 + ), + ( + 280052, + 280051, + 2557, + '1959-01-01 00:00:00.000000', + 125, + 456, + 30000, + 19 + ), + ( + 280053, + 280052, + 2558, + '1970-01-01 00:00:00.000000', + 125, + 456, + 30000, + 16 + ), + ( + 280054, + 280053, + 2579, + '1955-02-15 00:00:00.000000', + 60, + 486, + 30000, + 21 + ), + ( + 280055, + 280054, + 2580, + '1947-01-17 00:00:00.000000', + 60, + 411, + 30000, + 20 + ), + ( + 280056, + 280055, + 2581, + '1969-02-22 00:00:00.000000', + 500, + 617, + 30000, + 8 + ), + ( + 280057, + 280056, + 2582, + '1969-02-22 00:00:00.000000', + 30, + 1931, + 30000, + 8 + ), + ( + 280058, + 280057, + 2583, + '1959-03-21 00:00:00.000000', + 250, + 575, + 30000, + 9 + ), + ( + 280059, + 280058, + 2584, + '1940-02-16 00:00:00.000000', + 250, + 516, + 30000, + 10 + ), + ( + 280060, + 280059, + 2585, + '1969-04-11 00:00:00.000000', + 250, + 516, + 30000, + 11 + ), + ( + 280061, + 280061, + 2668, + '1995-01-01 00:00:00.000000', + 30, + 2052, + 30000, + 19 + ), + ( + 280062, + 280062, + 2669, + '1995-01-01 00:00:00.000000', + 30, + 2082, + 30000, + 17 + ), + ( + 280063, + 280060, + 2670, + '1995-01-01 00:00:00.000000', + 30, + 2052, + 30000, + 13 + ), + ( + 280064, + 280063, + 2757, + '1970-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 14 + ), + ( + 280065, + 280064, + 2758, + '1962-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 21 + ), + ( + 280066, + 280065, + 2759, + '1962-06-16 00:00:00.000000', + 30, + 1886, + 30000, + 20 + ), + ( + 280067, + 280066, + 2760, + '1962-06-16 00:00:00.000000', + 30, + 1886, + 30000, + 9 + ), + ( + 280068, + 280067, + 2761, + '1962-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 6 + ), + ( + 280069, + 280068, + 2762, + '1967-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 2 + ), + ( + 280070, + 280069, + 2763, + '1962-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 10 + ), + ( + 280071, + 280070, + 2764, + '1965-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 4 + ), + ( + 280072, + 280071, + 2765, + '1962-06-16 00:00:00.000000', + 30, + 1738, + 30000, + 15 + ), + ( + 280073, + 280072, + 2766, + '1971-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 16 + ), + ( + 280074, + 280073, + 2767, + '1970-06-16 00:00:00.000000', + 30, + 1931, + 30000, + 11 + ), + ( + 280075, + 280074, + 2768, + '1969-06-16 00:00:00.000000', + 30, + 1886, + 30000, + 12 + ), + ( + 280076, + 280075, + 2769, + '1967-06-16 00:00:00.000000', + 30, + 1886, + 30000, + 18 + ), + ( + 280077, + 280076, + 2818, + '1957-01-01 00:00:00.000000', + 500, + 410, + 30000, + 15 + ), + ( + 280078, + 280082, + 2824, + '1957-01-01 00:00:00.000000', + 125, + 439, + 30000, + 15 + ), + ( + 280079, + 280083, + 2825, + '1957-01-01 00:00:00.000000', + 125, + 828, + 30000, + 15 + ), + ( + 280080, + 280077, + 2819, + '1957-01-01 00:00:00.000000', + 500, + 403, + 30000, + 15 + ), + ( + 280081, + 280078, + 2820, + '1957-01-01 00:00:00.000000', + 125, + 774, + 30000, + 15 + ), + ( + 280082, + 280079, + 2821, + '1957-01-01 00:00:00.000000', + 60, + 1399, + 30000, + 15 + ), + ( + 280083, + 280080, + 2822, + '1957-01-01 00:00:00.000000', + 60, + 1538, + 30000, + 15 + ), + ( + 280084, + 280081, + 2823, + '1957-01-01 00:00:00.000000', + 30, + 2253, + 30000, + 15 + ), + ( + 280085, + 280084, + 2826, + '1957-01-01 00:00:00.000000', + 30, + 2299, + 30000, + 15 + ), + ( + 280086, + 280090, + 2898, + '1964-01-01 00:00:00.000000', + 30, + 2926, + 30000, + 6 + ), + ( + 280087, + 280089, + 2897, + '1964-01-01 00:00:00.000000', + 500, + 141, + 30000, + 6 + ), + ( + 280088, + 280088, + 2896, + '1964-01-01 00:00:00.000000', + 125, + 738, + 30000, + 6 + ), + ( + 280089, + 280087, + 2893, + '1964-01-01 00:00:00.000000', + 30, + 2434, + 30000, + 6 + ), + ( + 280090, + 280086, + 2894, + '1964-01-01 00:00:00.000000', + 30, + 2514, + 30000, + 6 + ), + ( + 280091, + 280091, + 2899, + '1964-01-01 00:00:00.000000', + 500, + 238, + 30000, + 6 + ), + ( + 280092, + 280085, + 2895, + '1964-01-01 00:00:00.000000', + 30, + 4342, + 30000, + 6 + ), + ( + 280093, + 280092, + 3026, + '1964-01-01 00:00:00.000000', + 500, + 964, + 30000, + 4 + ), + ( + 280094, + 280096, + 3030, + '1964-01-01 00:00:00.000000', + 250, + 755, + 30000, + 21 + ), + ( + 280095, + 280095, + 3031, + '1964-01-01 00:00:00.000000', + 250, + 527, + 30000, + 21 + ), + ( + 280096, + 280097, + 3029, + '1964-01-01 00:00:00.000000', + 60, + 3272, + 30000, + 21 + ), + ( + 280097, + 280094, + 3032, + '1964-01-01 00:00:00.000000', + 250, + 725, + 30000, + 4 + ), + ( + 280098, + 280098, + 3028, + '1964-01-01 00:00:00.000000', + 125, + 2979, + 30000, + 21 + ), + ( + 280099, + 280093, + 3027, + '1964-01-01 00:00:00.000000', + 60, + 6361, + 30000, + 4 + ), + ( + 280100, + 280099, + 3073, + '1966-01-01 00:00:00.000000', + 500, + 141, + 30000, + 2 + ), + ( + 280101, + 280100, + 3078, + '1966-01-01 00:00:00.000000', + 250, + 948, + 30000, + 2 + ), + ( + 280102, + 280104, + 3076, + '1966-01-01 00:00:00.000000', + 125, + 3054, + 30000, + 2 + ), + ( + 280103, + 280102, + 3074, + '1966-01-01 00:00:00.000000', + 250, + 274, + 30000, + 2 + ), + ( + 280104, + 280103, + 3075, + '1966-01-01 00:00:00.000000', + 250, + 785, + 30000, + 2 + ), + ( + 280105, + 280105, + 3077, + '1966-01-01 00:00:00.000000', + 0, + 4326, + 30000, + 2 + ), + ( + 280106, + 280101, + 3079, + '1966-01-01 00:00:00.000000', + 0, + 4924, + 30000, + 2 + ), + ( + 280107, + 280106, + 3109, + '1966-01-01 00:00:00.000000', + 500, + 205, + 30000, + 13 + ), + ( + 280108, + 280107, + 3110, + '1966-01-01 00:00:00.000000', + 250, + 284, + 30000, + 13 + ), + ( + 280109, + 280109, + 3112, + '1966-01-01 00:00:00.000000', + 0, + 4342, + 30000, + 13 + ), + ( + 280110, + 280108, + 3111, + '1966-01-01 00:00:00.000000', + 125, + 2660, + 30000, + 13 + ), + ( + 280111, + 280160, + 3238, + '1967-01-01 00:00:00.000000', + 500, + 89, + 30000, + 1 + ), + ( + 280112, + 280153, + 3231, + '1967-01-01 00:00:00.000000', + 500, + 89, + 30000, + 12 + ), + ( + 280113, + 280124, + 3202, + '1967-01-01 00:00:00.000000', + 500, + 74, + 30000, + 18 + ), + ( + 280114, + 280110, + 3188, + '1967-01-01 00:00:00.000000', + 500, + 77, + 30000, + 16 + ), + ( + 280115, + 280176, + 3254, + '1967-01-01 00:00:00.000000', + 500, + 89, + 30000, + 5 + ), + ( + 280116, + 280131, + 3209, + '1967-01-01 00:00:00.000000', + 500, + 89, + 30000, + 9 + ), + ( + 280117, + 280120, + 3201, + '1967-01-01 00:00:00.000000', + 500, + 74, + 30000, + 17 + ), + ( + 280118, + 280142, + 3223, + '1967-01-01 00:00:00.000000', + 500, + 89, + 30000, + 19 + ), + ( + 280119, + 280168, + 3246, + '1967-01-01 00:00:00.000000', + 500, + 89, + 30000, + 3 + ), + ( + 280120, + 280146, + 3224, + '1967-01-01 00:00:00.000000', + 500, + 119, + 30000, + 14 + ), + ( + 280121, + 280169, + 3247, + '1967-01-01 00:00:00.000000', + 500, + 207, + 30000, + 3 + ), + ( + 280122, + 280177, + 3255, + '1967-01-01 00:00:00.000000', + 500, + 207, + 30000, + 5 + ), + ( + 280123, + 280132, + 3210, + '1967-01-01 00:00:00.000000', + 500, + 177, + 30000, + 9 + ), + ( + 280124, + 280125, + 3203, + '1967-01-01 00:00:00.000000', + 250, + 147, + 30000, + 18 + ), + ( + 280125, + 280154, + 3232, + '1967-01-01 00:00:00.000000', + 500, + 177, + 30000, + 12 + ), + ( + 280126, + 280147, + 3225, + '1967-01-01 00:00:00.000000', + 500, + 207, + 30000, + 14 + ), + ( + 280127, + 280111, + 3189, + '1967-01-01 00:00:00.000000', + 500, + 219, + 30000, + 16 + ), + ( + 280128, + 280161, + 3239, + '1967-01-01 00:00:00.000000', + 500, + 177, + 30000, + 1 + ), + ( + 280129, + 280129, + 3207, + '1967-01-01 00:00:00.000000', + 125, + 3563, + 30000, + 18 + ), + ( + 280130, + 280137, + 3215, + '1967-01-01 00:00:00.000000', + 250, + 749, + 30000, + 9 + ), + ( + 280131, + 280151, + 3229, + '1967-01-01 00:00:00.000000', + 125, + 2580, + 30000, + 14 + ), + ( + 280132, + 280158, + 3236, + '1967-01-01 00:00:00.000000', + 125, + 2580, + 30000, + 12 + ), + ( + 280133, + 280166, + 3244, + '1967-01-01 00:00:00.000000', + 125, + 2580, + 30000, + 1 + ), + ( + 280134, + 280148, + 3226, + '1967-01-01 00:00:00.000000', + 250, + 662, + 30000, + 14 + ), + ( + 280135, + 280155, + 3233, + '1967-01-01 00:00:00.000000', + 250, + 662, + 30000, + 12 + ), + ( + 280136, + 280112, + 3192, + '1967-01-01 00:00:00.000000', + 250, + 662, + 30000, + 16 + ), + ( + 280137, + 280178, + 3256, + '1967-01-01 00:00:00.000000', + 250, + 700, + 30000, + 5 + ), + ( + 280138, + 280170, + 3248, + '1967-01-01 00:00:00.000000', + 250, + 662, + 30000, + 3 + ), + ( + 280139, + 280121, + 3197, + '1967-01-01 00:00:00.000000', + 250, + 662, + 30000, + 17 + ), + ( + 280140, + 280143, + 3222, + '1967-01-01 00:00:00.000000', + 250, + 662, + 30000, + 19 + ), + ( + 280141, + 280162, + 3240, + '1967-01-01 00:00:00.000000', + 250, + 662, + 30000, + 1 + ), + ( + 280142, + 280133, + 3211, + '1967-01-01 00:00:00.000000', + 250, + 681, + 30000, + 9 + ), + ( + 280143, + 280171, + 3249, + '1967-01-01 00:00:00.000000', + 125, + 2454, + 30000, + 3 + ), + ( + 280144, + 280122, + 3196, + '1967-01-01 00:00:00.000000', + 125, + 2454, + 30000, + 17 + ), + ( + 280145, + 280163, + 3241, + '1967-01-01 00:00:00.000000', + 125, + 2454, + 30000, + 1 + ), + ( + 280146, + 280179, + 3257, + '1967-01-01 00:00:00.000000', + 125, + 2424, + 30000, + 5 + ), + ( + 280147, + 280144, + 3221, + '1967-01-01 00:00:00.000000', + 125, + 2454, + 30000, + 19 + ), + ( + 280148, + 280128, + 3206, + '1967-01-01 00:00:00.000000', + 250, + 837, + 30000, + 18 + ), + ( + 280149, + 280159, + 3237, + '1967-01-01 00:00:00.000000', + 0, + 4294, + 30000, + 12 + ), + ( + 280150, + 280152, + 3230, + '1967-01-01 00:00:00.000000', + 0, + 4294, + 30000, + 14 + ), + ( + 280151, + 280167, + 3245, + '1967-01-01 00:00:00.000000', + 0, + 4294, + 30000, + 1 + ), + ( + 280152, + 280136, + 3214, + '1967-01-01 00:00:00.000000', + 0, + 5421, + 30000, + 9 + ), + ( + 280153, + 280139, + 3217, + '1967-01-01 00:00:00.000000', + 125, + 1886, + 30000, + 19 + ), + ( + 280154, + 280182, + 3260, + '1967-01-01 00:00:00.000000', + 125, + 1886, + 30000, + 5 + ), + ( + 280155, + 280165, + 3243, + '1967-01-01 00:00:00.000000', + 250, + 580, + 30000, + 1 + ), + ( + 280156, + 280150, + 3228, + '1967-01-01 00:00:00.000000', + 250, + 580, + 30000, + 14 + ), + ( + 280157, + 280157, + 3235, + '1967-01-01 00:00:00.000000', + 250, + 580, + 30000, + 12 + ), + ( + 280158, + 280127, + 3205, + '1967-01-01 00:00:00.000000', + 250, + 123, + 30000, + 18 + ), + ( + 280159, + 280135, + 3213, + '1967-01-01 00:00:00.000000', + 125, + 3058, + 30000, + 9 + ), + ( + 280160, + 280113, + 3191, + '1967-01-01 00:00:00.000000', + 250, + 711, + 30000, + 16 + ), + ( + 280161, + 280173, + 3251, + '1967-01-01 00:00:00.000000', + 250, + 744, + 30000, + 3 + ), + ( + 280162, + 280119, + 3200, + '1967-01-01 00:00:00.000000', + 250, + 711, + 30000, + 17 + ), + ( + 280163, + 280183, + 3261, + '1967-01-01 00:00:00.000000', + 60, + 3058, + 30000, + 5 + ), + ( + 280164, + 280140, + 3218, + '1967-01-01 00:00:00.000000', + 60, + 3058, + 30000, + 19 + ), + ( + 280165, + 280181, + 3259, + '1967-01-01 00:00:00.000000', + 250, + 563, + 30000, + 5 + ), + ( + 280166, + 280138, + 3216, + '1967-01-01 00:00:00.000000', + 250, + 563, + 30000, + 19 + ), + ( + 280167, + 280174, + 3252, + '1967-01-01 00:00:00.000000', + 125, + 2890, + 30000, + 3 + ), + ( + 280168, + 280117, + 3199, + '1967-01-01 00:00:00.000000', + 125, + 2837, + 30000, + 17 + ), + ( + 280169, + 280116, + 3193, + '1967-01-01 00:00:00.000000', + 125, + 2837, + 30000, + 16 + ), + ( + 280170, + 280130, + 3208, + '1967-01-01 00:00:00.000000', + 0, + 6897, + 30000, + 18 + ), + ( + 280171, + 280149, + 3227, + '1967-01-01 00:00:00.000000', + 0, + 2837, + 30000, + 14 + ), + ( + 280172, + 280156, + 3234, + '1967-01-01 00:00:00.000000', + 0, + 2837, + 30000, + 12 + ), + ( + 280173, + 280145, + 3220, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 19 + ), + ( + 280174, + 280180, + 3258, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 5 + ), + ( + 280175, + 280164, + 3242, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 1 + ), + ( + 280176, + 280114, + 3190, + '1967-01-01 00:00:00.000000', + 0, + 2837, + 30000, + 16 + ), + ( + 280177, + 280134, + 3212, + '1967-01-01 00:00:00.000000', + 0, + 2837, + 30000, + 9 + ), + ( + 280178, + 280172, + 3250, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 3 + ), + ( + 280179, + 280123, + 3195, + '1967-01-01 00:00:00.000000', + 0, + 4740, + 30000, + 17 + ), + ( + 280180, + 280126, + 3204, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 18 + ), + ( + 280181, + 280115, + 3194, + '1967-01-01 00:00:00.000000', + 0, + 5079, + 30000, + 16 + ), + ( + 280182, + 280118, + 3198, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 17 + ), + ( + 280183, + 280175, + 3253, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 3 + ), + ( + 280184, + 280184, + 3262, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 5 + ), + ( + 280185, + 280141, + 3219, + '1967-01-01 00:00:00.000000', + 0, + 4723, + 30000, + 19 + ), + ( + 290001, + 290001, + 111, + '1999-01-01 00:00:00.000000', + 1000, + 44, + 30000, + 0 + ), + ( + 290002, + 290002, + 112, + '1999-01-01 00:00:00.000000', + 1000, + 91, + 30000, + 0 + ), + ( + 290003, + 290003, + 113, + '1999-01-01 00:00:00.000000', + 1000, + 37, + 30000, + 0 + ), + ( + 290004, + 290004, + 114, + '1999-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 0 + ), + ( + 290005, + 290007, + 489, + '1999-01-01 00:00:00.000000', + 0, + 1101, + 30000, + 0 + ), + ( + 290006, + 290006, + 1737, + '1999-01-01 00:00:00.000000', + 60, + 433, + 30000, + 0 + ), + ( + 290007, + 290005, + 1736, + '1999-01-01 00:00:00.000000', + 125, + 164, + 30000, + 0 + ), + ( + 290008, + 290008, + 2671, + '1995-01-01 00:00:00.000000', + 30, + 543, + 30000, + 0 + ), + ( + 290009, + 290009, + 2672, + '1975-01-01 00:00:00.000000', + 60, + 106, + 30000, + 0 + ), + ( + 290010, + 290029, + 3670, + '1970-01-01 00:00:00.000000', + 500, + 106, + 30000, + 0 + ), + ( + 290011, + 290034, + 3674, + '1970-01-01 00:00:00.000000', + 500, + 135, + 30000, + 0 + ), + ( + 290012, + 290024, + 3665, + '1970-01-01 00:00:00.000000', + 500, + 88, + 30000, + 0 + ), + ( + 290013, + 290030, + 3671, + '1970-01-01 00:00:00.000000', + 400, + 160, + 30000, + 0 + ), + ( + 290014, + 290035, + 3675, + '1970-01-01 00:00:00.000000', + 400, + 207, + 30000, + 0 + ), + ( + 290015, + 290018, + 3652, + '1970-01-01 00:00:00.000000', + 750, + 110, + 30000, + 0 + ), + ( + 290016, + 290010, + 3651, + '1970-01-01 00:00:00.000000', + 1000, + 37, + 30000, + 0 + ), + ( + 290017, + 290025, + 3666, + '1970-01-01 00:00:00.000000', + 400, + 131, + 30000, + 0 + ), + ( + 290018, + 290021, + 3659, + '1970-01-01 00:00:00.000000', + 500, + 136, + 30000, + 0 + ), + ( + 290019, + 290014, + 3658, + '1970-01-01 00:00:00.000000', + 1000, + 44, + 30000, + 0 + ), + ( + 290020, + 290036, + 3676, + '1970-01-01 00:00:00.000000', + 250, + 327, + 30000, + 0 + ), + ( + 290021, + 290019, + 3654, + '1970-01-01 00:00:00.000000', + 500, + 170, + 30000, + 0 + ), + ( + 290022, + 290011, + 3653, + '1970-01-01 00:00:00.000000', + 1000, + 37, + 30000, + 0 + ), + ( + 290023, + 290026, + 3667, + '1970-01-01 00:00:00.000000', + 250, + 203, + 30000, + 0 + ), + ( + 290024, + 290022, + 3661, + '1970-01-01 00:00:00.000000', + 500, + 211, + 30000, + 0 + ), + ( + 290025, + 290015, + 3660, + '1970-01-01 00:00:00.000000', + 1000, + 44, + 30000, + 0 + ), + ( + 290026, + 290032, + 3672, + '1970-01-01 00:00:00.000000', + 150, + 373, + 30000, + 0 + ), + ( + 290027, + 290037, + 3677, + '1970-01-01 00:00:00.000000', + 100, + 495, + 30000, + 0 + ), + ( + 290028, + 290013, + 3656, + '1970-01-01 00:00:00.000000', + 250, + 361, + 30000, + 0 + ), + ( + 290029, + 290012, + 3655, + '1970-01-01 00:00:00.000000', + 500, + 37, + 30000, + 0 + ), + ( + 290030, + 290027, + 3668, + '1970-01-01 00:00:00.000000', + 150, + 304, + 30000, + 0 + ), + ( + 290031, + 290023, + 3663, + '1970-01-01 00:00:00.000000', + 250, + 315, + 30000, + 0 + ), + ( + 290032, + 290016, + 3662, + '1970-01-01 00:00:00.000000', + 500, + 44, + 30000, + 0 + ), + ( + 290033, + 290033, + 3673, + '1970-01-01 00:00:00.000000', + 0, + 533, + 30000, + 0 + ), + ( + 290034, + 290038, + 3678, + '1970-01-01 00:00:00.000000', + 0, + 711, + 30000, + 0 + ), + ( + 290035, + 290013, + 3657, + '1970-01-01 00:00:00.000000', + 0, + 361, + 30000, + 0 + ), + ( + 290036, + 290028, + 3669, + '1970-01-01 00:00:00.000000', + 0, + 433, + 30000, + 0 + ), + ( + 290037, + 290017, + 3664, + '1970-01-01 00:00:00.000000', + 0, + 450, + 30000, + 0 + ), + ( + 290038, + 290031, + 3679, + '1970-01-01 00:00:00.000000', + 250, + 249, + 30000, + 0 + ), + ( + 300001, + 300001, + 115, + '1999-01-01 00:00:00.000000', + 1000, + 49, + 30000, + 0 + ), + ( + 300002, + 300002, + 116, + '1999-01-01 00:00:00.000000', + 500, + 89, + 30000, + 0 + ), + ( + 300003, + 300004, + 445, + '1970-01-01 00:00:00.000000', + 125, + 49, + 30000, + 0 + ), + ( + 300004, + 300007, + 463, + '1999-01-01 00:00:00.000000', + 125, + 291, + 30000, + 0 + ), + ( + 300005, + 300005, + 461, + '1999-01-01 00:00:00.000000', + 60, + 301, + 30000, + 0 + ), + ( + 300006, + 300006, + 462, + '1999-01-01 00:00:00.000000', + 60, + 311, + 30000, + 0 + ), + ( + 300007, + 300010, + 466, + '1999-01-01 00:00:00.000000', + 0, + 386, + 30000, + 0 + ), + ( + 300008, + 300008, + 464, + '1999-01-01 00:00:00.000000', + 0, + 296, + 30000, + 0 + ), + ( + 300009, + 300009, + 465, + '1999-01-01 00:00:00.000000', + 0, + 311, + 30000, + 0 + ), + ( + 300010, + 300003, + 1184, + '1967-01-01 00:00:00.000000', + 60, + 49, + 30000, + 0 + ), + ( + 300011, + 300011, + 1738, + '1965-01-01 00:00:00.000000', + 60, + 296, + 30000, + 0 + ), + ( + 310001, + 310001, + 117, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310002, + 310002, + 118, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310003, + 310003, + 119, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310004, + 310004, + 120, + '1999-01-01 00:00:00.000000', + 500, + 150, + 30000, + 0 + ), + ( + 310005, + 310006, + 447, + '1969-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310006, + 310005, + 446, + '1969-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310007, + 310008, + 449, + '1970-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310008, + 310007, + 448, + '1970-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310009, + 310009, + 450, + '1973-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310010, + 310010, + 450, + '1973-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310011, + 310022, + 481, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310012, + 310023, + 482, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310013, + 310021, + 480, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310014, + 310024, + 483, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310015, + 310025, + 484, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310016, + 310026, + 485, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310017, + 310027, + 486, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310018, + 310028, + 487, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310019, + 310011, + 470, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310020, + 310012, + 471, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310021, + 310013, + 472, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310022, + 310014, + 473, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310023, + 310015, + 474, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310024, + 310016, + 475, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310025, + 310017, + 476, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310026, + 310018, + 477, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310027, + 310019, + 478, + '1999-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 310028, + 310020, + 479, + '1999-01-01 00:00:00.000000', + 500, + 25, + 30000, + 0 + ), + ( + 310029, + 310029, + 1035, + '1969-01-01 00:00:00.000000', + 500, + 50, + 30000, + 0 + ), + ( + 320001, + 320001, + 155, + '1965-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 3 + ), + ( + 320002, + 320002, + 1284, + '1999-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 5 + ), + ( + 320003, + 320003, + 1044, + '1999-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 2 + ), + ( + 320004, + 320004, + 1045, + '1999-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 1 + ), + ( + 320005, + 320005, + 420, + '1970-01-01 00:00:00.000000', + 500, + 502, + 30000, + 5 + ), + ( + 320006, + 320006, + 884, + '1970-01-01 00:00:00.000000', + 500, + 331, + 30000, + 3 + ), + ( + 320007, + 320043, + 883, + '1970-01-01 00:00:00.000000', + 250, + 397, + 30000, + 17 + ), + ( + 320008, + 320078, + 1282, + '1962-01-01 00:00:00.000000', + 250, + 502, + 30000, + 2 + ), + ( + 320009, + 320077, + 1283, + '1957-01-01 00:00:00.000000', + 500, + 331, + 30000, + 5 + ), + ( + 320010, + 320079, + 1285, + '1963-01-01 00:00:00.000000', + 500, + 346, + 30000, + 19 + ), + ( + 320011, + 320080, + 1286, + '1970-01-01 00:00:00.000000', + 500, + 221, + 30000, + 3 + ), + ( + 320012, + 320081, + 1287, + '1965-01-01 00:00:00.000000', + 0, + 2412, + 30000, + 18 + ), + ( + 320013, + 320082, + 1289, + '1962-01-01 00:00:00.000000', + 125, + 811, + 30000, + 1 + ), + ( + 320014, + 320083, + 1350, + '1990-01-01 00:00:00.000000', + 125, + 1058, + 30000, + 7 + ), + ( + 320015, + 320084, + 1351, + '1990-01-01 00:00:00.000000', + 500, + 450, + 30000, + 7 + ), + ( + 320016, + 320085, + 1352, + '1990-01-01 00:00:00.000000', + 125, + 1159, + 30000, + 7 + ), + ( + 320017, + 320086, + 1353, + '1990-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 7 + ), + ( + 320018, + 320007, + 1354, + '1967-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 7 + ), + ( + 320019, + 320008, + 1355, + '1961-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 8 + ), + ( + 320020, + 320009, + 1356, + '1955-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 6 + ), + ( + 320021, + 320010, + 1357, + '1955-01-01 00:00:00.000000', + 125, + 212, + 30000, + 9 + ), + ( + 320022, + 320011, + 1358, + '1964-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 4 + ), + ( + 320023, + 320012, + 1420, + '1932-01-01 00:00:00.000000', + 125, + 212, + 30000, + 10 + ), + ( + 320024, + 320013, + 1421, + '1965-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 12 + ), + ( + 320025, + 320014, + 1422, + '1968-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 11 + ), + ( + 320026, + 320015, + 1425, + '1959-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 14 + ), + ( + 320027, + 320016, + 1424, + '1955-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 13 + ), + ( + 320028, + 320017, + 1426, + '1956-01-01 00:00:00.000000', + 500, + 361, + 30000, + 6 + ), + ( + 320029, + 320018, + 1427, + '1967-01-01 00:00:00.000000', + 500, + 395, + 30000, + 6 + ), + ( + 320030, + 320019, + 1428, + '1970-01-01 00:00:00.000000', + 500, + 331, + 30000, + 6 + ), + ( + 320031, + 320020, + 1433, + '1965-01-01 00:00:00.000000', + 500, + 395, + 30000, + 5 + ), + ( + 320032, + 320021, + 1434, + '1970-01-01 00:00:00.000000', + 500, + 361, + 30000, + 5 + ), + ( + 320033, + 320022, + 1435, + '1961-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 21 + ), + ( + 320034, + 320023, + 1436, + '1969-01-01 00:00:00.000000', + 250, + 415, + 30000, + 7 + ), + ( + 320035, + 320024, + 1437, + '1968-01-01 00:00:00.000000', + 500, + 331, + 30000, + 11 + ), + ( + 320036, + 320025, + 1438, + '1968-01-01 00:00:00.000000', + 500, + 470, + 30000, + 11 + ), + ( + 320037, + 320026, + 1439, + '1970-01-01 00:00:00.000000', + 500, + 470, + 30000, + 12 + ), + ( + 320038, + 320027, + 1440, + '1969-01-01 00:00:00.000000', + 500, + 378, + 30000, + 13 + ), + ( + 320039, + 320028, + 1441, + '1968-01-01 00:00:00.000000', + 500, + 378, + 30000, + 13 + ), + ( + 320040, + 320029, + 1442, + '1957-01-01 00:00:00.000000', + 500, + 208, + 30000, + 15 + ), + ( + 320041, + 320030, + 1443, + '1957-01-01 00:00:00.000000', + 500, + 411, + 30000, + 4 + ), + ( + 320042, + 320031, + 1445, + '1964-01-01 00:00:00.000000', + 500, + 430, + 30000, + 3 + ), + ( + 320043, + 320032, + 1446, + '1965-01-01 00:00:00.000000', + 15, + 1218, + 30000, + 3 + ), + ( + 320044, + 320033, + 1447, + '1966-01-01 00:00:00.000000', + 250, + 811, + 30000, + 3 + ), + ( + 320045, + 320034, + 1448, + '1961-01-01 00:00:00.000000', + 500, + 502, + 30000, + 3 + ), + ( + 320046, + 320035, + 1449, + '1961-01-01 00:00:00.000000', + 15, + 6019, + 30000, + 17 + ), + ( + 320047, + 320036, + 1450, + '1968-01-01 00:00:00.000000', + 500, + 231, + 30000, + 1 + ), + ( + 320048, + 320037, + 1451, + '1969-01-01 00:00:00.000000', + 500, + 331, + 30000, + 1 + ), + ( + 320049, + 320038, + 1452, + '1960-01-01 00:00:00.000000', + 250, + 585, + 30000, + 1 + ), + ( + 320050, + 320039, + 1453, + '1960-01-01 00:00:00.000000', + 250, + 535, + 30000, + 1 + ), + ( + 320051, + 320040, + 1454, + '1969-01-01 00:00:00.000000', + 250, + 364, + 30000, + 1 + ), + ( + 320052, + 320041, + 1456, + '1970-01-01 00:00:00.000000', + 500, + 331, + 30000, + 2 + ), + ( + 320053, + 320042, + 1457, + '1970-01-01 00:00:00.000000', + 500, + 231, + 30000, + 14 + ), + ( + 320054, + 320044, + 1458, + '1966-01-01 00:00:00.000000', + 250, + 397, + 30000, + 14 + ), + ( + 320055, + 320045, + 1462, + '1999-01-01 00:00:00.000000', + 60, + 450, + 30000, + 10 + ), + ( + 320056, + 320046, + 1463, + '1999-01-01 00:00:00.000000', + 60, + 411, + 30000, + 9 + ), + ( + 320057, + 320047, + 1127, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 5 + ), + ( + 320058, + 320048, + 1128, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 6 + ), + ( + 320059, + 320049, + 1129, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 1 + ), + ( + 320060, + 320050, + 1130, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 2 + ), + ( + 320061, + 320051, + 1131, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 3 + ), + ( + 320062, + 320052, + 1132, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 4 + ), + ( + 320063, + 320053, + 1133, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 12 + ), + ( + 320064, + 320054, + 1134, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 11 + ), + ( + 320065, + 320055, + 1135, + '1999-01-01 00:00:00.000000', + 60, + 411, + 30000, + 18 + ), + ( + 320066, + 320056, + 1136, + '1999-01-01 00:00:00.000000', + 60, + 1107, + 30000, + 13 + ), + ( + 320067, + 320057, + 1138, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 5 + ), + ( + 320068, + 320058, + 1139, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 6 + ), + ( + 320069, + 320059, + 1140, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 1 + ), + ( + 320070, + 320060, + 1141, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 2 + ), + ( + 320071, + 320061, + 1142, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 3 + ), + ( + 320072, + 320062, + 1143, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 4 + ), + ( + 320073, + 320063, + 1144, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 12 + ), + ( + 320074, + 320064, + 1145, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 11 + ), + ( + 320075, + 320065, + 1146, + '1999-01-01 00:00:00.000000', + 0, + 212, + 30000, + 18 + ), + ( + 320076, + 320066, + 1147, + '1999-01-01 00:00:00.000000', + 500, + 450, + 30000, + 13 + ), + ( + 320077, + 320067, + 1148, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 5 + ), + ( + 320078, + 320068, + 1149, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 6 + ), + ( + 320079, + 320069, + 1150, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 1 + ), + ( + 320080, + 320070, + 1151, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 2 + ), + ( + 320081, + 320071, + 1152, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 3 + ), + ( + 320082, + 320072, + 1153, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 4 + ), + ( + 320083, + 320073, + 1154, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 12 + ), + ( + 320084, + 320074, + 1155, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 11 + ), + ( + 320085, + 320075, + 1156, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 13 + ), + ( + 320086, + 320076, + 1157, + '1999-01-01 00:00:00.000000', + 125, + 1107, + 30000, + 13 + ), + ( + 320087, + 320088, + 1789, + '1970-01-01 00:00:00.000000', + 500, + 331, + 30000, + 4 + ), + ( + 320088, + 320087, + 1790, + '1970-01-01 00:00:00.000000', + 250, + 811, + 30000, + 4 + ), + ( + 320089, + 320036, + 2035, + '1967-01-01 00:00:00.000000', + 500, + 231, + 30000, + 1 + ), + ( + 320090, + 320089, + 2074, + '1959-01-01 00:00:00.000000', + 500, + 331, + 30000, + 13 + ), + ( + 320091, + 320090, + 2080, + '1962-01-01 00:00:00.000000', + 250, + 811, + 30000, + 13 + ), + ( + 320092, + 320091, + 2473, + '1940-01-01 00:00:00.000000', + 125, + 212, + 30000, + 20 + ), + ( + 320093, + 320092, + 2492, + '1970-01-01 00:00:00.000000', + 125, + 212, + 30000, + 16 + ), + ( + 320094, + 320093, + 2493, + '1971-01-01 00:00:00.000000', + 60, + 331, + 30000, + 16 + ), + ( + 320095, + 320094, + 2506, + '1968-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 17 + ), + ( + 320096, + 320095, + 2507, + '1970-01-01 00:00:00.000000', + 125, + 231, + 30000, + 17 + ), + ( + 320097, + 320096, + 2526, + '1970-01-01 00:00:00.000000', + 2, + 451, + 30000, + 4 + ), + ( + 320098, + 320097, + 2527, + '1954-01-01 00:00:00.000000', + 1000, + 191, + 30000, + 15 + ), + ( + 320099, + 320098, + 2528, + '1957-01-01 00:00:00.000000', + 30, + 311, + 30000, + 15 + ), + ( + 320100, + 320099, + 2540, + '1958-01-01 00:00:00.000000', + 1000, + 212, + 30000, + 19 + ), + ( + 320101, + 320100, + 2541, + '1959-01-01 00:00:00.000000', + 125, + 331, + 30000, + 19 + ), + ( + 320102, + 320103, + 2573, + '1971-04-17 00:00:00.000000', + 500, + 331, + 30000, + 8 + ), + ( + 320103, + 320101, + 2571, + '1955-02-18 00:00:00.000000', + 500, + 331, + 30000, + 21 + ), + ( + 320104, + 320102, + 2572, + '1958-03-02 00:00:00.000000', + 250, + 811, + 30000, + 21 + ), + ( + 320105, + 320104, + 2574, + '1947-02-20 00:00:00.000000', + 60, + 331, + 30000, + 20 + ), + ( + 320106, + 320106, + 2691, + '1995-01-01 00:00:00.000000', + 125, + 1058, + 30000, + 14 + ), + ( + 320107, + 320105, + 2692, + '1995-01-01 00:00:00.000000', + 250, + 1058, + 30000, + 14 + ), + ( + 320108, + 320107, + 2773, + '1969-01-01 00:00:00.000000', + 250, + 331, + 30000, + 14 + ), + ( + 320109, + 320110, + 2806, + '1957-01-01 00:00:00.000000', + 500, + 387, + 30000, + 15 + ), + ( + 320110, + 320111, + 2809, + '1957-01-01 00:00:00.000000', + 500, + 325, + 30000, + 15 + ), + ( + 320111, + 320114, + 2812, + '1957-01-01 00:00:00.000000', + 500, + 295, + 30000, + 15 + ), + ( + 320112, + 320113, + 2807, + '1957-01-01 00:00:00.000000', + 500, + 311, + 30000, + 15 + ), + ( + 320113, + 320112, + 2810, + '1957-01-01 00:00:00.000000', + 500, + 325, + 30000, + 15 + ), + ( + 320114, + 320116, + 2808, + '1957-01-01 00:00:00.000000', + 125, + 763, + 30000, + 15 + ), + ( + 320115, + 320117, + 2811, + '1957-01-01 00:00:00.000000', + 125, + 799, + 30000, + 15 + ), + ( + 320116, + 320108, + 2804, + '1957-01-01 00:00:00.000000', + 1000, + 191, + 30000, + 15 + ), + ( + 320117, + 320118, + 2814, + '1957-01-01 00:00:00.000000', + 250, + 461, + 30000, + 15 + ), + ( + 320118, + 320109, + 2805, + '1957-01-01 00:00:00.000000', + 1000, + 191, + 30000, + 15 + ), + ( + 320119, + 320115, + 2813, + '1957-01-01 00:00:00.000000', + 1000, + 189, + 30000, + 15 + ), + ( + 320120, + 320121, + 2817, + '1957-01-01 00:00:00.000000', + 125, + 452, + 30000, + 15 + ), + ( + 320121, + 320120, + 2816, + '1957-01-01 00:00:00.000000', + 250, + 457, + 30000, + 15 + ), + ( + 320122, + 320119, + 2815, + '1957-01-01 00:00:00.000000', + 250, + 461, + 30000, + 15 + ), + ( + 320123, + 320132, + 2889, + '1964-01-01 00:00:00.000000', + 60, + 976, + 30000, + 6 + ), + ( + 320124, + 320126, + 2883, + '1964-01-01 00:00:00.000000', + 500, + 233, + 30000, + 6 + ), + ( + 320125, + 320134, + 2891, + '1964-01-01 00:00:00.000000', + 125, + 929, + 30000, + 6 + ), + ( + 320126, + 320133, + 2890, + '1964-01-01 00:00:00.000000', + 125, + 888, + 30000, + 6 + ), + ( + 320127, + 320128, + 2885, + '1964-01-01 00:00:00.000000', + 250, + 512, + 30000, + 6 + ), + ( + 320128, + 320131, + 2888, + '1964-01-01 00:00:00.000000', + 125, + 848, + 30000, + 6 + ), + ( + 320129, + 320125, + 2882, + '1964-01-01 00:00:00.000000', + 500, + 331, + 30000, + 6 + ), + ( + 320130, + 320124, + 2881, + '1964-01-01 00:00:00.000000', + 500, + 210, + 30000, + 6 + ), + ( + 320131, + 320123, + 2880, + '1964-01-01 00:00:00.000000', + 250, + 331, + 30000, + 6 + ), + ( + 320132, + 320135, + 2892, + '1964-01-01 00:00:00.000000', + 250, + 346, + 30000, + 6 + ), + ( + 320133, + 320127, + 2884, + '1964-01-01 00:00:00.000000', + 500, + 231, + 30000, + 6 + ), + ( + 320134, + 320129, + 2886, + '1964-01-01 00:00:00.000000', + 125, + 888, + 30000, + 6 + ), + ( + 320135, + 320122, + 2879, + '1964-01-01 00:00:00.000000', + 125, + 811, + 30000, + 6 + ), + ( + 320136, + 320130, + 2887, + '1964-01-01 00:00:00.000000', + 125, + 848, + 30000, + 6 + ), + ( + 320137, + 320139, + 2920, + '1965-01-01 00:00:00.000000', + 500, + 221, + 30000, + 21 + ), + ( + 320138, + 320152, + 2933, + '1965-01-01 00:00:00.000000', + 250, + 331, + 30000, + 4 + ), + ( + 320139, + 320155, + 2936, + '1965-01-01 00:00:00.000000', + 250, + 933, + 30000, + 4 + ), + ( + 320140, + 320146, + 2926, + '1965-01-01 00:00:00.000000', + 125, + 848, + 30000, + 21 + ), + ( + 320141, + 320156, + 2937, + '1965-01-01 00:00:00.000000', + 60, + 1069, + 30000, + 4 + ), + ( + 320142, + 320145, + 2927, + '1965-01-01 00:00:00.000000', + 60, + 929, + 30000, + 21 + ), + ( + 320143, + 320138, + 2919, + '1965-01-01 00:00:00.000000', + 500, + 243, + 30000, + 21 + ), + ( + 320144, + 320154, + 2935, + '1965-01-01 00:00:00.000000', + 250, + 976, + 30000, + 4 + ), + ( + 320145, + 320157, + 2938, + '1965-01-01 00:00:00.000000', + 125, + 848, + 30000, + 4 + ), + ( + 320146, + 320149, + 2930, + '1965-01-01 00:00:00.000000', + 500, + 331, + 30000, + 4 + ), + ( + 320147, + 320148, + 2929, + '1965-01-01 00:00:00.000000', + 500, + 212, + 30000, + 4 + ), + ( + 320148, + 320151, + 2932, + '1965-01-01 00:00:00.000000', + 500, + 331, + 30000, + 4 + ), + ( + 320149, + 320150, + 2931, + '1965-01-01 00:00:00.000000', + 500, + 212, + 30000, + 4 + ), + ( + 320150, + 320136, + 2917, + '1965-01-01 00:00:00.000000', + 500, + 210, + 30000, + 21 + ), + ( + 320151, + 320137, + 2918, + '1965-01-01 00:00:00.000000', + 500, + 212, + 30000, + 21 + ), + ( + 320152, + 320153, + 2934, + '1965-01-01 00:00:00.000000', + 125, + 929, + 30000, + 4 + ), + ( + 320153, + 320159, + 2940, + '1965-01-01 00:00:00.000000', + 60, + 976, + 30000, + 4 + ), + ( + 320154, + 320141, + 2922, + '1965-01-01 00:00:00.000000', + 500, + 346, + 30000, + 21 + ), + ( + 320155, + 320140, + 2921, + '1965-01-01 00:00:00.000000', + 500, + 243, + 30000, + 21 + ), + ( + 320156, + 320143, + 2924, + '1965-01-01 00:00:00.000000', + 125, + 811, + 30000, + 21 + ), + ( + 320157, + 320158, + 2939, + '1965-01-01 00:00:00.000000', + 60, + 929, + 30000, + 4 + ), + ( + 320158, + 320142, + 2923, + '1965-01-01 00:00:00.000000', + 125, + 563, + 30000, + 21 + ), + ( + 320159, + 320144, + 2925, + '1965-01-01 00:00:00.000000', + 125, + 888, + 30000, + 21 + ), + ( + 320160, + 320147, + 2928, + '1965-01-01 00:00:00.000000', + 60, + 1069, + 30000, + 21 + ), + ( + 320161, + 320166, + 3042, + '1966-01-01 00:00:00.000000', + 60, + 933, + 30000, + 2 + ), + ( + 320162, + 320167, + 3043, + '1966-01-01 00:00:00.000000', + 250, + 212, + 30000, + 2 + ), + ( + 320163, + 320168, + 3044, + '1966-01-01 00:00:00.000000', + 250, + 848, + 30000, + 2 + ), + ( + 320164, + 320165, + 3041, + '1966-01-01 00:00:00.000000', + 50, + 976, + 30000, + 2 + ), + ( + 320165, + 320161, + 3037, + '1966-01-01 00:00:00.000000', + 125, + 346, + 30000, + 2 + ), + ( + 320166, + 320163, + 3039, + '1966-01-01 00:00:00.000000', + 250, + 848, + 30000, + 2 + ), + ( + 320167, + 320160, + 3036, + '1966-01-01 00:00:00.000000', + 500, + 346, + 30000, + 2 + ), + ( + 320168, + 320162, + 3038, + '1966-01-01 00:00:00.000000', + 250, + 848, + 30000, + 2 + ), + ( + 320169, + 320164, + 3040, + '1966-01-01 00:00:00.000000', + 0, + 1069, + 30000, + 2 + ), + ( + 320170, + 320172, + 3083, + '1966-01-01 00:00:00.000000', + 60, + 1022, + 30000, + 13 + ), + ( + 320171, + 320171, + 3082, + '1966-01-01 00:00:00.000000', + 125, + 976, + 30000, + 13 + ), + ( + 320172, + 320169, + 3080, + '1966-01-01 00:00:00.000000', + 30, + 1114, + 30000, + 13 + ), + ( + 320173, + 320173, + 3084, + '1966-01-01 00:00:00.000000', + 125, + 848, + 30000, + 13 + ), + ( + 320174, + 320170, + 3081, + '1966-01-01 00:00:00.000000', + 125, + 848, + 30000, + 13 + ), + ( + 320175, + 320174, + 3085, + '1966-01-01 00:00:00.000000', + 60, + 397, + 30000, + 13 + ), + ( + 320176, + 320178, + 3116, + '1966-01-01 00:00:00.000000', + 125, + 933, + 30000, + 5 + ), + ( + 320177, + 320175, + 3113, + '1966-01-01 00:00:00.000000', + 125, + 397, + 30000, + 5 + ), + ( + 320178, + 320179, + 3117, + '1966-01-01 00:00:00.000000', + 0, + 1065, + 30000, + 5 + ), + ( + 320179, + 320176, + 3114, + '1966-01-01 00:00:00.000000', + 250, + 848, + 30000, + 5 + ), + ( + 320180, + 320177, + 3115, + '1966-01-01 00:00:00.000000', + 125, + 976, + 30000, + 5 + ), + ( + 320181, + 320184, + 3394, + '1967-01-01 00:00:00.000000', + 125, + 811, + 30000, + 3 + ), + ( + 320182, + 320183, + 3393, + '1967-01-01 00:00:00.000000', + 125, + 848, + 30000, + 3 + ), + ( + 320183, + 320180, + 3391, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 3 + ), + ( + 320184, + 320180, + 3390, + '1967-01-01 00:00:00.000000', + 125, + 346, + 30000, + 3 + ), + ( + 320185, + 320182, + 3392, + '1967-01-01 00:00:00.000000', + 125, + 848, + 30000, + 3 + ), + ( + 320186, + 320185, + 3395, + '1967-01-01 00:00:00.000000', + 125, + 848, + 30000, + 3 + ), + ( + 320187, + 320186, + 3396, + '1967-01-01 00:00:00.000000', + 125, + 888, + 30000, + 1 + ), + ( + 320188, + 320187, + 3397, + '1967-01-01 00:00:00.000000', + 0, + 1022, + 30000, + 1 + ), + ( + 320189, + 320161, + 3400, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 1 + ), + ( + 320190, + 320190, + 3401, + '1967-01-01 00:00:00.000000', + 250, + 848, + 30000, + 1 + ), + ( + 320191, + 320192, + 3403, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 1 + ), + ( + 320192, + 320193, + 3402, + '1967-01-01 00:00:00.000000', + 250, + 811, + 30000, + 1 + ), + ( + 320193, + 320188, + 3399, + '1967-01-01 00:00:00.000000', + 0, + 397, + 30000, + 1 + ), + ( + 320194, + 320189, + 3398, + '1967-01-01 00:00:00.000000', + 0, + 976, + 30000, + 1 + ), + ( + 320195, + 320197, + 3407, + '1967-01-01 00:00:00.000000', + 250, + 811, + 30000, + 12 + ), + ( + 320196, + 320198, + 3408, + '1967-01-01 00:00:00.000000', + 125, + 933, + 30000, + 12 + ), + ( + 320197, + 320201, + 3411, + '1967-01-01 00:00:00.000000', + 125, + 933, + 30000, + 12 + ), + ( + 320198, + 320202, + 3412, + '1967-01-01 00:00:00.000000', + 0, + 1065, + 30000, + 12 + ), + ( + 320199, + 320194, + 3404, + '1967-01-01 00:00:00.000000', + 500, + 221, + 30000, + 12 + ), + ( + 320200, + 320200, + 3410, + '1967-01-01 00:00:00.000000', + 125, + 811, + 30000, + 12 + ), + ( + 320201, + 320195, + 3405, + '1967-01-01 00:00:00.000000', + 500, + 221, + 30000, + 12 + ), + ( + 320202, + 320199, + 3409, + '1967-01-01 00:00:00.000000', + 0, + 1022, + 30000, + 12 + ), + ( + 320203, + 320196, + 3406, + '1967-01-01 00:00:00.000000', + 0, + 474, + 30000, + 12 + ), + ( + 320204, + 320205, + 3414, + '1967-01-01 00:00:00.000000', + 0, + 397, + 30000, + 19 + ), + ( + 320205, + 320206, + 3419, + '1967-01-01 00:00:00.000000', + 0, + 933, + 30000, + 19 + ), + ( + 320206, + 320210, + 3417, + '1967-01-01 00:00:00.000000', + 250, + 811, + 30000, + 19 + ), + ( + 320207, + 320213, + 3421, + '1967-01-01 00:00:00.000000', + 0, + 1065, + 30000, + 19 + ), + ( + 320208, + 320207, + 3422, + '1967-01-01 00:00:00.000000', + 125, + 933, + 30000, + 19 + ), + ( + 320209, + 320203, + 3413, + '1967-01-01 00:00:00.000000', + 252, + 331, + 30000, + 19 + ), + ( + 320210, + 320212, + 3420, + '1967-01-01 00:00:00.000000', + 125, + 848, + 30000, + 19 + ), + ( + 320211, + 320211, + 3418, + '1967-01-01 00:00:00.000000', + 0, + 1022, + 30000, + 19 + ), + ( + 320212, + 320208, + 3423, + '1967-01-01 00:00:00.000000', + 0, + 1065, + 30000, + 19 + ), + ( + 320213, + 320209, + 3416, + '1967-01-01 00:00:00.000000', + 0, + 434, + 30000, + 19 + ), + ( + 320214, + 320204, + 3415, + '1967-01-01 00:00:00.000000', + 250, + 811, + 30000, + 19 + ), + ( + 320215, + 320220, + 3431, + '1967-01-01 00:00:00.000000', + 125, + 976, + 30000, + 14 + ), + ( + 320216, + 320221, + 3432, + '1967-01-01 00:00:00.000000', + 0, + 1114, + 30000, + 14 + ), + ( + 320217, + 320216, + 3426, + '1967-01-01 00:00:00.000000', + 250, + 888, + 30000, + 14 + ), + ( + 320218, + 320217, + 3427, + '1967-01-01 00:00:00.000000', + 0, + 415, + 30000, + 14 + ), + ( + 320219, + 320218, + 3428, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 14 + ), + ( + 320220, + 320215, + 3425, + '1967-01-01 00:00:00.000000', + 250, + 811, + 30000, + 14 + ), + ( + 320221, + 320219, + 3430, + '1967-01-01 00:00:00.000000', + 125, + 848, + 30000, + 14 + ), + ( + 320222, + 320222, + 3429, + '1967-01-01 00:00:00.000000', + 0, + 1166, + 30000, + 14 + ), + ( + 320223, + 320214, + 3424, + '1967-01-01 00:00:00.000000', + 0, + 1022, + 30000, + 14 + ), + ( + 320224, + 320226, + 3436, + '1967-01-01 00:00:00.000000', + 250, + 361, + 30000, + 9 + ), + ( + 320225, + 320230, + 3440, + '1967-01-01 00:00:00.000000', + 250, + 848, + 30000, + 9 + ), + ( + 320226, + 320234, + 3444, + '1967-01-01 00:00:00.000000', + 125, + 933, + 30000, + 9 + ), + ( + 320227, + 320235, + 3445, + '1967-01-01 00:00:00.000000', + 0, + 1065, + 30000, + 9 + ), + ( + 320228, + 320224, + 3434, + '1967-01-01 00:00:00.000000', + 500, + 331, + 30000, + 9 + ), + ( + 320229, + 320223, + 3433, + '1967-01-01 00:00:00.000000', + 500, + 263, + 30000, + 9 + ), + ( + 320230, + 320229, + 3439, + '1967-01-01 00:00:00.000000', + 250, + 811, + 30000, + 9 + ), + ( + 320231, + 320228, + 3438, + '1967-01-01 00:00:00.000000', + 125, + 415, + 30000, + 9 + ), + ( + 320232, + 320233, + 3443, + '1967-01-01 00:00:00.000000', + 125, + 892, + 30000, + 9 + ), + ( + 320233, + 320225, + 3435, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 9 + ), + ( + 320234, + 320231, + 3441, + '1967-01-01 00:00:00.000000', + 125, + 976, + 30000, + 9 + ), + ( + 320235, + 320232, + 3442, + '1967-01-01 00:00:00.000000', + 0, + 1022, + 30000, + 9 + ), + ( + 320236, + 320227, + 3437, + '1967-01-01 00:00:00.000000', + 0, + 378, + 30000, + 9 + ), + ( + 320237, + 320236, + 3446, + '1967-01-01 00:00:00.000000', + 0, + 1114, + 30000, + 9 + ), + ( + 320238, + 320246, + 3456, + '1967-01-01 00:00:00.000000', + 60, + 888, + 30000, + 18 + ), + ( + 320239, + 320245, + 3455, + '1967-01-01 00:00:00.000000', + 0, + 929, + 30000, + 18 + ), + ( + 320240, + 320242, + 3452, + '1967-01-01 00:00:00.000000', + 125, + 848, + 30000, + 18 + ), + ( + 320241, + 320238, + 3448, + '1967-01-01 00:00:00.000000', + 125, + 346, + 30000, + 18 + ), + ( + 320242, + 320237, + 3447, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 18 + ), + ( + 320243, + 320239, + 3449, + '1967-01-01 00:00:00.000000', + 125, + 346, + 30000, + 18 + ), + ( + 320244, + 320240, + 3450, + '1967-01-01 00:00:00.000000', + 125, + 361, + 30000, + 18 + ), + ( + 320245, + 320243, + 3453, + '1967-01-01 00:00:00.000000', + 125, + 888, + 30000, + 18 + ), + ( + 320246, + 320241, + 3451, + '1967-01-01 00:00:00.000000', + 0, + 361, + 30000, + 18 + ), + ( + 320247, + 320244, + 3454, + '1967-01-01 00:00:00.000000', + 60, + 929, + 30000, + 18 + ), + ( + 320248, + 320248, + 3463, + '1967-01-01 00:00:00.000000', + 250, + 848, + 30000, + 17 + ), + ( + 320249, + 320250, + 3465, + '1967-01-01 00:00:00.000000', + 0, + 1114, + 30000, + 17 + ), + ( + 320250, + 320252, + 3459, + '1967-01-01 00:00:00.000000', + 125, + 1022, + 30000, + 17 + ), + ( + 320251, + 320251, + 3458, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 17 + ), + ( + 320252, + 320247, + 3457, + '1967-01-01 00:00:00.000000', + 500, + 346, + 30000, + 17 + ), + ( + 320253, + 320249, + 3464, + '1967-01-01 00:00:00.000000', + 125, + 976, + 30000, + 17 + ), + ( + 320254, + 320254, + 3461, + '1967-01-01 00:00:00.000000', + 125, + 933, + 30000, + 17 + ), + ( + 320255, + 320253, + 3460, + '1967-01-01 00:00:00.000000', + 0, + 453, + 30000, + 17 + ), + ( + 320256, + 320255, + 3462, + '1967-01-01 00:00:00.000000', + 0, + 1065, + 30000, + 17 + ), + ( + 320257, + 320259, + 3468, + '1967-01-01 00:00:00.000000', + 250, + 848, + 30000, + 16 + ), + ( + 320258, + 320257, + 3467, + '1967-01-01 00:00:00.000000', + 0, + 434, + 30000, + 16 + ), + ( + 320259, + 320258, + 3469, + '1967-01-01 00:00:00.000000', + 0, + 1069, + 30000, + 16 + ), + ( + 320260, + 320260, + 3470, + '1967-01-01 00:00:00.000000', + 0, + 1065, + 30000, + 16 + ), + ( + 320261, + 320265, + 3475, + '1967-01-01 00:00:00.000000', + 125, + 933, + 30000, + 16 + ), + ( + 320262, + 320261, + 3471, + '1967-01-01 00:00:00.000000', + 500, + 361, + 30000, + 16 + ), + ( + 320263, + 320263, + 3473, + '1967-01-01 00:00:00.000000', + 250, + 848, + 30000, + 16 + ), + ( + 320264, + 320256, + 3466, + '1967-01-01 00:00:00.000000', + 250, + 346, + 30000, + 16 + ), + ( + 320265, + 320262, + 3472, + '1967-01-01 00:00:00.000000', + 0, + 453, + 30000, + 16 + ), + ( + 320266, + 320264, + 3474, + '1967-01-01 00:00:00.000000', + 0, + 1114, + 30000, + 16 + ), + ( + 330001, + 330001, + 156, + '1999-01-01 00:00:00.000000', + 1000, + 125, + 30000, + 0 + ), + ( + 330002, + 330002, + 157, + '1999-01-01 00:00:00.000000', + 125, + 771, + 30000, + 0 + ), + ( + 330003, + 330003, + 188, + '1999-01-01 00:00:00.000000', + 1000, + 50, + 30000, + 0 + ), + ( + 330004, + 330004, + 886, + '1967-01-01 00:00:00.000000', + 250, + 589, + 30000, + 0 + ), + ( + 330005, + 330005, + 434, + '1964-01-01 00:00:00.000000', + 1000, + 51, + 30000, + 0 + ), + ( + 330006, + 330006, + 452, + '1932-01-01 00:00:00.000000', + 1000, + 52, + 30000, + 0 + ), + ( + 330007, + 330007, + 455, + '1957-01-01 00:00:00.000000', + 1000, + 201, + 30000, + 0 + ), + ( + 330008, + 330008, + 458, + '1952-01-01 00:00:00.000000', + 500, + 521, + 30000, + 0 + ), + ( + 330009, + 330009, + 459, + '1950-01-01 00:00:00.000000', + 1000, + 110, + 30000, + 0 + ), + ( + 330010, + 330010, + 492, + '1999-01-01 00:00:00.000000', + 125, + 223, + 30000, + 0 + ), + ( + 330011, + 330011, + 493, + '1999-01-01 00:00:00.000000', + 250, + 726, + 30000, + 0 + ), + ( + 330012, + 330012, + 494, + '1999-01-01 00:00:00.000000', + 250, + 514, + 30000, + 0 + ), + ( + 330013, + 330013, + 517, + '1957-01-01 00:00:00.000000', + 125, + 527, + 30000, + 0 + ), + ( + 330014, + 330017, + 1290, + '1960-01-01 00:00:00.000000', + 125, + 1024, + 30000, + 0 + ), + ( + 330015, + 330019, + 1335, + '1990-01-01 00:00:00.000000', + 500, + 523, + 30000, + 0 + ), + ( + 330016, + 330015, + 885, + '1990-01-01 00:00:00.000000', + 1000, + 52, + 30000, + 0 + ), + ( + 330017, + 330016, + 1291, + '1963-01-01 00:00:00.000000', + 125, + 902, + 30000, + 0 + ), + ( + 330018, + 330020, + 1521, + '1965-01-01 00:00:00.000000', + 500, + 521, + 30000, + 0 + ), + ( + 330019, + 330018, + 1517, + '1965-01-01 00:00:00.000000', + 125, + 902, + 30000, + 0 + ), + ( + 330020, + 330021, + 1544, + '1965-01-01 00:00:00.000000', + 1000, + 250, + 30000, + 0 + ), + ( + 330021, + 330022, + 1600, + '1961-01-01 00:00:00.000000', + 125, + 989, + 30000, + 0 + ), + ( + 330022, + 330023, + 1609, + '1963-01-01 00:00:00.000000', + 15, + 1338, + 30000, + 0 + ), + ( + 330023, + 330024, + 1791, + '1963-01-01 00:00:00.000000', + 1000, + 185, + 30000, + 0 + ), + ( + 330024, + 330025, + 1792, + '1963-01-01 00:00:00.000000', + 1000, + 250, + 30000, + 0 + ), + ( + 330025, + 330026, + 1793, + '1963-01-01 00:00:00.000000', + 60, + 873, + 30000, + 0 + ), + ( + 330026, + 330027, + 1794, + '1963-01-01 00:00:00.000000', + 125, + 577, + 30000, + 0 + ), + ( + 330027, + 330028, + 1795, + '1963-01-01 00:00:00.000000', + 30, + 985, + 30000, + 0 + ), + ( + 330028, + 330029, + 1796, + '1963-01-01 00:00:00.000000', + 250, + 527, + 30000, + 0 + ), + ( + 330029, + 330030, + 1797, + '1963-01-01 00:00:00.000000', + 125, + 771, + 30000, + 0 + ), + ( + 330030, + 330031, + 1798, + '1963-01-01 00:00:00.000000', + 250, + 841, + 30000, + 0 + ), + ( + 330031, + 330032, + 1799, + '1963-01-01 00:00:00.000000', + 1000, + 250, + 30000, + 0 + ), + ( + 330032, + 330033, + 1800, + '1963-01-01 00:00:00.000000', + 60, + 1015, + 30000, + 0 + ), + ( + 330033, + 330034, + 1801, + '1963-01-01 00:00:00.000000', + 125, + 801, + 30000, + 0 + ), + ( + 330034, + 330035, + 1802, + '1963-01-01 00:00:00.000000', + 500, + 521, + 30000, + 0 + ), + ( + 330035, + 330036, + 1803, + '1963-01-01 00:00:00.000000', + 1000, + 357, + 30000, + 0 + ), + ( + 330036, + 330037, + 1804, + '1963-01-01 00:00:00.000000', + 500, + 521, + 30000, + 0 + ), + ( + 330037, + 330038, + 1805, + '1963-01-01 00:00:00.000000', + 500, + 521, + 30000, + 0 + ), + ( + 330038, + 330039, + 1806, + '1963-01-01 00:00:00.000000', + 125, + 682, + 30000, + 0 + ), + ( + 330039, + 330040, + 1807, + '1963-01-01 00:00:00.000000', + 125, + 864, + 30000, + 0 + ), + ( + 330040, + 330041, + 1808, + '1963-01-01 00:00:00.000000', + 15, + 1228, + 30000, + 0 + ), + ( + 330041, + 330042, + 1809, + '1963-01-01 00:00:00.000000', + 1000, + 118, + 30000, + 0 + ), + ( + 330042, + 330043, + 1810, + '1963-01-01 00:00:00.000000', + 1000, + 207, + 30000, + 0 + ), + ( + 330043, + 330044, + 1811, + '1963-01-01 00:00:00.000000', + 125, + 682, + 30000, + 0 + ), + ( + 330044, + 330045, + 1812, + '1963-01-01 00:00:00.000000', + 250, + 474, + 30000, + 0 + ), + ( + 330045, + 330046, + 1813, + '1963-01-01 00:00:00.000000', + 125, + 646, + 30000, + 0 + ), + ( + 330046, + 330047, + 1814, + '1963-01-01 00:00:00.000000', + 125, + 690, + 30000, + 0 + ), + ( + 330047, + 330048, + 1815, + '1963-01-01 00:00:00.000000', + 15, + 1445, + 30000, + 0 + ), + ( + 330048, + 330049, + 1816, + '1963-01-01 00:00:00.000000', + 15, + 1626, + 30000, + 0 + ), + ( + 330049, + 330050, + 1817, + '1963-01-01 00:00:00.000000', + 15, + 1746, + 30000, + 0 + ), + ( + 330050, + 330051, + 1818, + '1963-01-01 00:00:00.000000', + 0, + 1927, + 30000, + 0 + ), + ( + 330051, + 330052, + 1819, + '1963-01-01 00:00:00.000000', + 0, + 1807, + 30000, + 0 + ), + ( + 330052, + 330053, + 2033, + '1967-01-01 00:00:00.000000', + 1000, + 175, + 30000, + 0 + ), + ( + 330053, + 330054, + 2038, + '1962-01-01 00:00:00.000000', + 1000, + 384, + 30000, + 0 + ), + ( + 330054, + 330055, + 2044, + '1955-01-01 00:00:00.000000', + 1000, + 175, + 30000, + 0 + ), + ( + 330055, + 330056, + 2045, + '1956-01-01 00:00:00.000000', + 500, + 621, + 30000, + 0 + ), + ( + 330056, + 330057, + 2047, + '1956-01-01 00:00:00.000000', + 1000, + 384, + 30000, + 0 + ), + ( + 330057, + 330058, + 2049, + '1958-01-01 00:00:00.000000', + 250, + 526, + 30000, + 0 + ), + ( + 330058, + 330059, + 2064, + '1968-01-01 00:00:00.000000', + 1000, + 309, + 30000, + 0 + ), + ( + 330059, + 330060, + 2069, + '1959-01-01 00:00:00.000000', + 500, + 446, + 30000, + 0 + ), + ( + 330060, + 330061, + 2071, + '1960-01-01 00:00:00.000000', + 250, + 605, + 30000, + 0 + ), + ( + 330061, + 330062, + 2085, + '1957-01-01 00:00:00.000000', + 500, + 621, + 30000, + 0 + ), + ( + 330062, + 330063, + 2087, + '1961-01-01 00:00:00.000000', + 500, + 446, + 30000, + 0 + ), + ( + 330063, + 330064, + 2092, + '1961-01-01 00:00:00.000000', + 125, + 1138, + 30000, + 0 + ), + ( + 330064, + 330065, + 2093, + '1962-01-01 00:00:00.000000', + 30, + 1244, + 30000, + 0 + ), + ( + 330065, + 330066, + 2108, + '1959-01-01 00:00:00.000000', + 500, + 446, + 30000, + 0 + ), + ( + 330066, + 330067, + 2109, + '1959-01-01 00:00:00.000000', + 250, + 661, + 30000, + 0 + ), + ( + 330067, + 330068, + 2111, + '1959-01-01 00:00:00.000000', + 125, + 802, + 30000, + 0 + ), + ( + 330068, + 330069, + 2687, + '1995-01-01 00:00:00.000000', + 125, + 361, + 30000, + 0 + ), + ( + 330069, + 330070, + 2688, + '1995-01-01 00:00:00.000000', + 60, + 748, + 30000, + 0 + ), + ( + 330070, + 330072, + 2689, + '1995-01-01 00:00:00.000000', + 60, + 831, + 30000, + 0 + ), + ( + 330071, + 330071, + 2690, + '1995-01-01 00:00:00.000000', + 60, + 919, + 30000, + 0 + ), + ( + 330072, + 330073, + 2693, + '1995-01-01 00:00:00.000000', + 30, + 1124, + 30000, + 0 + ), + ( + 330073, + 330014, + 2756, + '1965-01-01 00:00:00.000000', + 125, + 771, + 30000, + 0 + ), + ( + 340001, + 340001, + 158, + '1999-01-01 00:00:00.000000', + 500, + 41, + 30000, + 0 + ), + ( + 340002, + 340002, + 1172, + '1999-01-01 00:00:00.000000', + 1000, + 56, + 30000, + 0 + ), + ( + 340003, + 340003, + 159, + '1999-01-01 00:00:00.000000', + 125, + 101, + 30000, + 0 + ), + ( + 340004, + 340004, + 160, + '1999-01-01 00:00:00.000000', + 0, + 201, + 30000, + 0 + ), + ( + 340005, + 340005, + 2351, + '2001-01-01 00:00:00.000000', + 500, + 101, + 30000, + 0 + ), + ( + 340006, + 340006, + 2680, + '1995-01-01 00:00:00.000000', + 125, + 126, + 30000, + 0 + ), + ( + 340007, + 340007, + 2681, + '1995-01-01 00:00:00.000000', + 125, + 126, + 30000, + 0 + ), + ( + 340008, + 340008, + 2682, + '1995-01-01 00:00:00.000000', + 125, + 126, + 30000, + 0 + ), + ( + 340009, + 340009, + 2683, + '1995-01-01 00:00:00.000000', + 500, + 81, + 30000, + 0 + ), + ( + 340010, + 340010, + 2684, + '1995-01-01 00:00:00.000000', + 500, + 81, + 30000, + 0 + ), + ( + 340011, + 340011, + 2685, + '1995-01-01 00:00:00.000000', + 500, + 81, + 30000, + 0 + ), + ( + 350001, + 350001, + 161, + '1999-01-01 00:00:00.000000', + 1000, + 4532, + 30000, + 0 + ), + ( + 350002, + 350002, + 162, + '1999-01-01 00:00:00.000000', + 500, + 5061, + 30000, + 0 + ), + ( + 350003, + 350003, + 409, + '1960-01-01 00:00:00.000000', + 250, + 5821, + 30000, + 0 + ), + ( + 350004, + 350004, + 460, + '1957-01-01 00:00:00.000000', + 125, + 6787, + 30000, + 0 + ), + ( + 350005, + 350005, + 497, + '1999-01-01 00:00:00.000000', + 0, + 12411, + 30000, + 0 + ), + ( + 350006, + 350006, + 2662, + '1965-01-01 00:00:00.000000', + 125, + 6787, + 30000, + 0 + ), + ( + 350007, + 350007, + 2663, + '1966-01-01 00:00:00.000000', + 125, + 7341, + 30000, + 0 + ), + ( + 350008, + 350008, + 2664, + '1967-01-01 00:00:00.000000', + 0, + 7940, + 30000, + 0 + ), + ( + 360001, + 360001, + 163, + '1999-01-01 00:00:00.000000', + 1000, + 5007, + 30000, + 0 + ), + ( + 360002, + 360002, + 164, + '1999-01-01 00:00:00.000000', + 75, + 8665, + 30000, + 0 + ), + ( + 360003, + 360005, + 507, + '1999-01-01 00:00:00.000000', + 0, + 16901, + 30000, + 0 + ), + ( + 360004, + 360003, + 505, + '1999-01-01 00:00:00.000000', + 80, + 8540, + 30000, + 0 + ), + ( + 360005, + 360006, + 508, + '1999-01-01 00:00:00.000000', + 90, + 8415, + 30000, + 0 + ), + ( + 360006, + 360004, + 506, + '1999-01-01 00:00:00.000000', + 0, + 13136, + 30000, + 0 + ), + ( + 1000001, + 1000001, + 166, + '1964-01-01 00:00:00.000000', + 1000, + 551, + 30000, + 15 + ), + ( + 1000002, + 1000002, + 887, + '1932-01-01 00:00:00.000000', + 250, + 646, + 30000, + 10 + ), + ( + 1000003, + 1000003, + 888, + '1942-01-01 00:00:00.000000', + 125, + 662, + 30000, + 10 + ), + ( + 1000004, + 1000004, + 889, + '1940-01-01 00:00:00.000000', + 125, + 717, + 30000, + 10 + ), + ( + 1000005, + 1000005, + 890, + '1963-01-01 00:00:00.000000', + 125, + 2587, + 30000, + 3 + ), + ( + 1000006, + 1000006, + 891, + '1969-01-01 00:00:00.000000', + 30, + 6203, + 30000, + 17 + ), + ( + 1000007, + 1000007, + 1046, + '1966-01-01 00:00:00.000000', + 500, + 1920, + 30000, + 14 + ), + ( + 1000008, + 1000008, + 1047, + '1967-01-01 00:00:00.000000', + 250, + 2041, + 30000, + 14 + ), + ( + 1000009, + 1000009, + 1048, + '1968-01-01 00:00:00.000000', + 125, + 2438, + 30000, + 14 + ), + ( + 1000010, + 1000010, + 1049, + '1968-01-01 00:00:00.000000', + 1000, + 900, + 30000, + 13 + ), + ( + 1000011, + 1000011, + 1022, + '1966-01-01 00:00:00.000000', + 30, + 3024, + 30000, + 18 + ), + ( + 1000012, + 1000012, + 1023, + '1968-01-01 00:00:00.000000', + 250, + 2116, + 30000, + 2 + ), + ( + 1000013, + 1000013, + 1050, + '1971-01-01 00:00:00.000000', + 250, + 1061, + 30000, + 2 + ), + ( + 1000014, + 1000014, + 1173, + '1968-01-01 00:00:00.000000', + 500, + 864, + 30000, + 11 + ), + ( + 1000015, + 1000015, + 1174, + '1957-01-01 00:00:00.000000', + 500, + 854, + 30000, + 6 + ), + ( + 1000016, + 1000016, + 1124, + '1964-01-01 00:00:00.000000', + 250, + 1095, + 30000, + 13 + ), + ( + 1000017, + 1000017, + 1125, + '1957-01-01 00:00:00.000000', + 125, + 2459, + 30000, + 12 + ), + ( + 1000018, + 1000018, + 1126, + '1967-01-01 00:00:00.000000', + 250, + 1175, + 30000, + 13 + ), + ( + 1000019, + 1000019, + 1175, + '1965-01-01 00:00:00.000000', + 60, + 2520, + 30000, + 5 + ), + ( + 1000020, + 1000020, + 1243, + '1935-01-01 00:00:00.000000', + 60, + 782, + 30000, + 10 + ), + ( + 1000021, + 1000021, + 1244, + '1955-01-01 00:00:00.000000', + 1000, + 648, + 30000, + 12 + ), + ( + 1000022, + 1000022, + 1245, + '1958-01-01 00:00:00.000000', + 500, + 832, + 30000, + 19 + ), + ( + 1000023, + 1000023, + 1246, + '1966-01-01 00:00:00.000000', + 60, + 2941, + 30000, + 5 + ), + ( + 1000024, + 1000024, + 1247, + '1967-01-01 00:00:00.000000', + 0, + 5423, + 30000, + 5 + ), + ( + 1000025, + 1000025, + 1248, + '1967-01-01 00:00:00.000000', + 30, + 4750, + 30000, + 5 + ), + ( + 1000026, + 1000026, + 1249, + '1957-01-01 00:00:00.000000', + 250, + 551, + 30000, + 15 + ), + ( + 1000027, + 1000027, + 1250, + '1970-01-01 00:00:00.000000', + 250, + 1418, + 30000, + 17 + ), + ( + 1000028, + 1000028, + 1251, + '1969-01-01 00:00:00.000000', + 125, + 1813, + 30000, + 17 + ), + ( + 1000029, + 1000029, + 1252, + '1972-01-01 00:00:00.000000', + 125, + 2157, + 30000, + 16 + ), + ( + 1000030, + 1000030, + 1253, + '1961-01-01 00:00:00.000000', + 500, + 928, + 30000, + 3 + ), + ( + 1000031, + 1000031, + 1255, + '1962-01-01 00:00:00.000000', + 125, + 2488, + 30000, + 3 + ), + ( + 1000032, + 1000032, + 1256, + '1964-01-01 00:00:00.000000', + 125, + 2967, + 30000, + 3 + ), + ( + 1000033, + 1000033, + 1254, + '1965-01-01 00:00:00.000000', + 0, + 10062, + 30000, + 3 + ), + ( + 1000034, + 1000034, + 1257, + '1968-01-01 00:00:00.000000', + 250, + 1639, + 30000, + 17 + ), + ( + 1000035, + 1000035, + 1258, + '1970-01-01 00:00:00.000000', + 125, + 2682, + 30000, + 17 + ), + ( + 1000037, + 1000037, + 1260, + '1959-01-01 00:00:00.000000', + 125, + 1987, + 30000, + 13 + ), + ( + 1000038, + 1000038, + 1261, + '1962-01-01 00:00:00.000000', + 125, + 2300, + 30000, + 1 + ), + ( + 1000039, + 1000039, + 1262, + '1962-01-01 00:00:00.000000', + 0, + 3911, + 30000, + 1 + ), + ( + 1000040, + 1000040, + 1337, + '1990-01-01 00:00:00.000000', + 60, + 4780, + 30000, + 6 + ), + ( + 1000041, + 1000041, + 1338, + '1990-01-01 00:00:00.000000', + 60, + 5214, + 30000, + 6 + ), + ( + 1000042, + 1000043, + 1339, + '1990-01-01 00:00:00.000000', + 60, + 5021, + 30000, + 6 + ), + ( + 1000043, + 1000042, + 1340, + '1990-01-01 00:00:00.000000', + 60, + 4587, + 30000, + 6 + ), + ( + 1000044, + 1000044, + 1341, + '1990-01-01 00:00:00.000000', + 60, + 5414, + 30000, + 5 + ), + ( + 1000045, + 1000045, + 1342, + '1990-01-01 00:00:00.000000', + 60, + 5414, + 30000, + 5 + ), + ( + 1000046, + 1000046, + 1343, + '1990-01-01 00:00:00.000000', + 60, + 5200, + 30000, + 5 + ), + ( + 1000047, + 1000047, + 1344, + '1990-01-01 00:00:00.000000', + 60, + 6008, + 30000, + 6 + ), + ( + 1000048, + 1000048, + 1499, + '1970-01-01 00:00:00.000000', + 125, + 995, + 30000, + 7 + ), + ( + 1000049, + 1000049, + 1573, + '1963-01-01 00:00:00.000000', + 125, + 2817, + 30000, + 13 + ), + ( + 1000050, + 1000050, + 1574, + '1963-01-01 00:00:00.000000', + 0, + 3511, + 30000, + 13 + ), + ( + 1000051, + 1000051, + 1580, + '1968-01-01 00:00:00.000000', + 250, + 2166, + 30000, + 13 + ), + ( + 1000052, + 1000052, + 1613, + '1965-01-01 00:00:00.000000', + 125, + 2806, + 30000, + 3 + ), + ( + 1000053, + 1000053, + 1624, + '1962-01-01 00:00:00.000000', + 125, + 2144, + 30000, + 3 + ), + ( + 1000054, + 1000054, + 1647, + '1969-01-01 00:00:00.000000', + 0, + 6385, + 30000, + 17 + ), + ( + 1000055, + 1000055, + 1675, + '1964-01-01 00:00:00.000000', + 60, + 3574, + 30000, + 1 + ), + ( + 1000057, + 1000057, + 1961, + '1963-01-01 00:00:00.000000', + 500, + 796, + 30000, + 19 + ), + ( + 1000058, + 1000058, + 1962, + '1971-01-01 00:00:00.000000', + 30, + 3601, + 30000, + 16 + ), + ( + 1000060, + 1000060, + 1965, + '1953-01-01 00:00:00.000000', + 500, + 773, + 30000, + 21 + ), + ( + 1000061, + 1000061, + 1966, + '1965-01-01 00:00:00.000000', + 60, + 1052, + 30000, + 4 + ), + ( + 1000063, + 1000063, + 1968, + '1971-01-01 00:00:00.000000', + 1000, + 898, + 30000, + 7 + ), + ( + 1000064, + 1000064, + 1969, + '1971-01-01 00:00:00.000000', + 1000, + 855, + 30000, + 8 + ), + ( + 1000065, + 1000065, + 1970, + '1968-01-01 00:00:00.000000', + 1000, + 853, + 30000, + 8 + ), + ( + 1000066, + 1000066, + 1971, + '1968-01-01 00:00:00.000000', + 125, + 1008, + 30000, + 8 + ), + ( + 1000067, + 1000067, + 1972, + '1949-01-01 00:00:00.000000', + 125, + 596, + 30000, + 9 + ), + ( + 1000068, + 1000068, + 1973, + '1959-01-01 00:00:00.000000', + 60, + 2074, + 30000, + 9 + ), + ( + 1000069, + 1000069, + 1974, + '1955-01-01 00:00:00.000000', + 500, + 837, + 30000, + 6 + ), + ( + 1000070, + 1000070, + 1975, + '1956-01-01 00:00:00.000000', + 500, + 835, + 30000, + 6 + ), + ( + 1000071, + 1000071, + 1976, + '1957-01-01 00:00:00.000000', + 500, + 1052, + 30000, + 6 + ), + ( + 1000072, + 1000072, + 1977, + '1961-01-01 00:00:00.000000', + 250, + 1226, + 30000, + 6 + ), + ( + 1000073, + 1000073, + 1978, + '1962-01-01 00:00:00.000000', + 125, + 2363, + 30000, + 6 + ), + ( + 1000074, + 1000074, + 1979, + '1968-01-01 00:00:00.000000', + 1000, + 863, + 30000, + 6 + ), + ( + 1000075, + 1000075, + 1980, + '1966-01-01 00:00:00.000000', + 500, + 1580, + 30000, + 5 + ), + ( + 1000076, + 1000076, + 1981, + '1969-01-01 00:00:00.000000', + 60, + 5530, + 30000, + 5 + ), + ( + 1000077, + 1000077, + 1982, + '1971-01-01 00:00:00.000000', + 125, + 2570, + 30000, + 5 + ), + ( + 1000078, + 1000078, + 1983, + '1968-01-01 00:00:00.000000', + 125, + 769, + 30000, + 11 + ), + ( + 1000079, + 1000079, + 1984, + '1969-01-01 00:00:00.000000', + 125, + 1355, + 30000, + 11 + ), + ( + 1000080, + 1000080, + 1985, + '1966-01-01 00:00:00.000000', + 500, + 869, + 30000, + 12 + ), + ( + 1000081, + 1000081, + 1986, + '1968-01-01 00:00:00.000000', + 1000, + 646, + 30000, + 12 + ), + ( + 1000082, + 1000017, + 1987, + '1968-01-01 00:00:00.000000', + 125, + 2459, + 30000, + 12 + ), + ( + 1000083, + 1000083, + 1988, + '1967-01-01 00:00:00.000000', + 250, + 1380, + 30000, + 12 + ), + ( + 1000084, + 1000084, + 1989, + '1966-01-01 00:00:00.000000', + 1000, + 873, + 30000, + 13 + ), + ( + 1000085, + 1000085, + 1990, + '1970-01-01 00:00:00.000000', + 500, + 971, + 30000, + 13 + ), + ( + 1000086, + 1000086, + 1991, + '1961-01-01 00:00:00.000000', + 125, + 2291, + 30000, + 13 + ), + ( + 1000087, + 1000129, + 2081, + '1962-01-01 00:00:00.000000', + 125, + 2854, + 30000, + 13 + ), + ( + 1000088, + 1000087, + 1992, + '1964-01-01 00:00:00.000000', + 125, + 2229, + 30000, + 13 + ), + ( + 1000089, + 1000088, + 1993, + '1965-01-01 00:00:00.000000', + 250, + 1119, + 30000, + 13 + ), + ( + 1000090, + 1000089, + 1994, + '1970-01-01 00:00:00.000000', + 500, + 1099, + 30000, + 13 + ), + ( + 1000091, + 1000090, + 1995, + '1970-01-01 00:00:00.000000', + 500, + 1043, + 30000, + 13 + ), + ( + 1000092, + 1000091, + 1996, + '1973-01-01 00:00:00.000000', + 250, + 2140, + 30000, + 13 + ), + ( + 1000093, + 1000092, + 1997, + '1955-01-01 00:00:00.000000', + 250, + 545, + 30000, + 15 + ), + ( + 1000094, + 1000093, + 1998, + '1955-01-01 00:00:00.000000', + 500, + 533, + 30000, + 15 + ), + ( + 1000095, + 1000094, + 1999, + '1955-01-01 00:00:00.000000', + 500, + 537, + 30000, + 15 + ), + ( + 1000096, + 1000095, + 2000, + '1956-01-01 00:00:00.000000', + 500, + 538, + 30000, + 15 + ), + ( + 1000097, + 1000096, + 2001, + '1956-01-01 00:00:00.000000', + 500, + 533, + 30000, + 15 + ), + ( + 1000098, + 1000097, + 2002, + '1957-01-01 00:00:00.000000', + 1000, + 552, + 30000, + 15 + ), + ( + 1000099, + 1000098, + 2003, + '1957-01-01 00:00:00.000000', + 500, + 595, + 30000, + 15 + ), + ( + 1000100, + 1000099, + 2004, + '1957-01-01 00:00:00.000000', + 500, + 554, + 30000, + 15 + ), + ( + 1000101, + 1000100, + 2005, + '1958-01-01 00:00:00.000000', + 1000, + 551, + 30000, + 15 + ), + ( + 1000102, + 1000101, + 2006, + '1959-01-01 00:00:00.000000', + 500, + 583, + 30000, + 15 + ), + ( + 1000103, + 1000102, + 2007, + '1963-01-01 00:00:00.000000', + 125, + 3293, + 30000, + 3 + ), + ( + 1000104, + 1000103, + 2008, + '1964-01-01 00:00:00.000000', + 125, + 2287, + 30000, + 3 + ), + ( + 1000105, + 1000104, + 2009, + '1964-01-01 00:00:00.000000', + 500, + 1012, + 30000, + 3 + ), + ( + 1000106, + 1000105, + 2010, + '1964-01-01 00:00:00.000000', + 500, + 908, + 30000, + 3 + ), + ( + 1000107, + 1000106, + 2011, + '1970-01-01 00:00:00.000000', + 250, + 1434, + 30000, + 16 + ), + ( + 1000108, + 1000107, + 2012, + '1970-01-01 00:00:00.000000', + 125, + 2925, + 30000, + 16 + ), + ( + 1000109, + 1000108, + 2013, + '1971-01-01 00:00:00.000000', + 500, + 1454, + 30000, + 16 + ), + ( + 1000110, + 1000109, + 2014, + '1972-01-01 00:00:00.000000', + 250, + 1410, + 30000, + 16 + ), + ( + 1000112, + 1000111, + 2016, + '1971-01-01 00:00:00.000000', + 250, + 1559, + 30000, + 17 + ), + ( + 1000113, + 1000112, + 2017, + '1959-01-01 00:00:00.000000', + 125, + 2030, + 30000, + 1 + ), + ( + 1000114, + 1000113, + 2018, + '1963-01-01 00:00:00.000000', + 500, + 940, + 30000, + 1 + ), + ( + 1000115, + 1000114, + 2019, + '1965-01-01 00:00:00.000000', + 1000, + 887, + 30000, + 1 + ), + ( + 1000116, + 1000115, + 2020, + '1964-01-01 00:00:00.000000', + 1000, + 838, + 30000, + 2 + ), + ( + 1000117, + 1000116, + 2021, + '1965-01-01 00:00:00.000000', + 250, + 1117, + 30000, + 2 + ), + ( + 1000118, + 1000117, + 2022, + '1968-01-01 00:00:00.000000', + 1000, + 838, + 30000, + 2 + ), + ( + 1000119, + 1000118, + 2023, + '1967-01-01 00:00:00.000000', + 500, + 842, + 30000, + 2 + ), + ( + 1000120, + 1000119, + 2034, + '1966-01-01 00:00:00.000000', + 500, + 982, + 30000, + 1 + ), + ( + 1000121, + 1000120, + 2037, + '1962-01-01 00:00:00.000000', + 125, + 2116, + 30000, + 6 + ), + ( + 1000122, + 1000121, + 2042, + '1969-01-01 00:00:00.000000', + 500, + 1018, + 30000, + 6 + ), + ( + 1000123, + 1000122, + 2048, + '1957-01-01 00:00:00.000000', + 500, + 831, + 30000, + 6 + ), + ( + 1000124, + 1000120, + 2050, + '1962-01-01 00:00:00.000000', + 125, + 2116, + 30000, + 6 + ), + ( + 1000125, + 1000124, + 2051, + '1962-01-01 00:00:00.000000', + 125, + 2844, + 30000, + 6 + ), + ( + 1000126, + 1000056, + 2055, + '1962-01-01 00:00:00.000000', + 500, + 855, + 30000, + 19 + ), + ( + 1000127, + 1000125, + 2060, + '1966-01-01 00:00:00.000000', + 125, + 2278, + 30000, + 5 + ), + ( + 1000128, + 1000126, + 2070, + '1960-01-01 00:00:00.000000', + 500, + 1027, + 30000, + 13 + ), + ( + 1000129, + 1000127, + 2076, + '1960-01-01 00:00:00.000000', + 125, + 2192, + 30000, + 13 + ), + ( + 1000130, + 1000128, + 2078, + '1962-01-01 00:00:00.000000', + 250, + 1200, + 30000, + 13 + ), + ( + 1000131, + 1000130, + 2084, + '1970-01-01 00:00:00.000000', + 15, + 2660, + 30000, + 13 + ), + ( + 1000132, + 1000131, + 2086, + '1958-01-01 00:00:00.000000', + 250, + 2033, + 30000, + 3 + ), + ( + 1000133, + 1000132, + 2088, + '1960-01-01 00:00:00.000000', + 1000, + 892, + 30000, + 3 + ), + ( + 1000134, + 1000133, + 2094, + '1966-01-01 00:00:00.000000', + 250, + 1115, + 30000, + 3 + ), + ( + 1000135, + 1000134, + 2096, + '1962-01-01 00:00:00.000000', + 1000, + 814, + 30000, + 4 + ), + ( + 1000136, + 1000135, + 2098, + '1963-01-01 00:00:00.000000', + 250, + 1036, + 30000, + 4 + ), + ( + 1000137, + 1000136, + 2101, + '1963-01-01 00:00:00.000000', + 1000, + 813, + 30000, + 4 + ), + ( + 1000138, + 1000137, + 2102, + '1965-01-01 00:00:00.000000', + 250, + 928, + 30000, + 4 + ), + ( + 1000139, + 1000138, + 2103, + '1969-01-01 00:00:00.000000', + 125, + 2615, + 30000, + 4 + ), + ( + 1000140, + 1000139, + 2106, + '1969-01-01 00:00:00.000000', + 500, + 879, + 30000, + 4 + ), + ( + 1000141, + 1000140, + 2107, + '1969-01-01 00:00:00.000000', + 250, + 1308, + 30000, + 4 + ), + ( + 1000142, + 1000141, + 2110, + '1971-01-01 00:00:00.000000', + 1000, + 938, + 30000, + 1 + ), + ( + 1000143, + 1000142, + 2112, + '1964-01-01 00:00:00.000000', + 60, + 2756, + 30000, + 1 + ), + ( + 1000144, + 1000143, + 2113, + '1964-01-01 00:00:00.000000', + 250, + 1128, + 30000, + 1 + ), + ( + 1000145, + 1000144, + 2218, + '1970-01-01 00:00:00.000000', + 125, + 2039, + 30000, + 7 + ), + ( + 1000146, + 1000145, + 2388, + '1973-01-01 00:00:00.000000', + 1000, + 952, + 30000, + 13 + ), + ( + 1000147, + 1000146, + 2424, + '1973-01-01 00:00:00.000000', + 125, + 1427, + 30000, + 5 + ), + ( + 1000148, + 1000147, + 2452, + '1960-01-01 00:00:00.000000', + 0, + 491, + 30000, + 6 + ), + ( + 1000149, + 1000148, + 2455, + '1966-01-01 00:00:00.000000', + 1000, + 1821, + 30000, + 14 + ), + ( + 1000150, + 1000149, + 2456, + '1969-01-01 00:00:00.000000', + 500, + 1898, + 30000, + 14 + ), + ( + 1000151, + 1000150, + 2457, + '1970-01-01 00:00:00.000000', + 250, + 1997, + 30000, + 14 + ), + ( + 1000152, + 1000151, + 2458, + '1970-01-01 00:00:00.000000', + 125, + 2291, + 30000, + 14 + ), + ( + 1000153, + 1000017, + 2467, + '1964-01-01 00:00:00.000000', + 0, + 2459, + 30000, + 18 + ), + ( + 1000154, + 1000152, + 2480, + '1940-01-01 00:00:00.000000', + 1, + 606, + 30000, + 20 + ), + ( + 1000155, + 1000153, + 2538, + '1957-01-01 00:00:00.000000', + 125, + 1051, + 30000, + 7 + ), + ( + 1000156, + 1000154, + 2549, + '1963-01-01 00:00:00.000000', + 15, + 2154, + 30000, + 19 + ), + ( + 1000157, + 1000155, + 2559, + '1942-03-14 00:00:00.000000', + 60, + 599, + 30000, + 20 + ), + ( + 1000158, + 1000156, + 2560, + '1942-05-16 00:00:00.000000', + 60, + 593, + 30000, + 20 + ), + ( + 1000159, + 1000157, + 2561, + '1946-04-17 00:00:00.000000', + 60, + 930, + 30000, + 20 + ), + ( + 1000160, + 1000158, + 2562, + '1947-08-20 00:00:00.000000', + 60, + 1724, + 30000, + 20 + ), + ( + 1000161, + 1000159, + 2563, + '1962-02-12 00:00:00.000000', + 250, + 793, + 30000, + 21 + ), + ( + 1000162, + 1000160, + 2564, + '1955-04-17 00:00:00.000000', + 250, + 1791, + 30000, + 21 + ), + ( + 1000163, + 1000161, + 2565, + '1960-06-11 00:00:00.000000', + 125, + 947, + 30000, + 21 + ), + ( + 1000164, + 1000162, + 2566, + '1959-07-11 00:00:00.000000', + 60, + 1016, + 30000, + 21 + ), + ( + 1000165, + 1000163, + 2567, + '1957-05-16 00:00:00.000000', + 60, + 1899, + 30000, + 9 + ), + ( + 1000166, + 1000164, + 2568, + '1958-07-11 00:00:00.000000', + 60, + 1943, + 30000, + 9 + ), + ( + 1000167, + 1000165, + 2569, + '1967-08-24 00:00:00.000000', + 30, + 3530, + 30000, + 18 + ), + ( + 1000168, + 1000166, + 2570, + '1968-04-15 00:00:00.000000', + 15, + 3631, + 30000, + 18 + ), + ( + 1000169, + 1000167, + 2667, + '1995-01-01 00:00:00.000000', + 30, + 2420, + 30000, + 10 + ), + ( + 1000170, + 1000168, + 2697, + '1995-01-01 00:00:00.000000', + 0, + 9237, + 30000, + 5 + ), + ( + 1000171, + 1000169, + 2755, + '1971-01-01 00:00:00.000000', + 0, + 5296, + 30000, + 14 + ), + ( + 1000172, + 1000170, + 2771, + '1971-01-01 00:00:00.000000', + 250, + 1933, + 30000, + 14 + ), + ( + 1000173, + 1000171, + 2772, + '1972-01-01 00:00:00.000000', + 500, + 1911, + 30000, + 14 + ), + ( + 1000174, + 1000173, + 2873, + '1970-01-01 00:00:00.000000', + 125, + 2606, + 30000, + 4 + ), + ( + 1000175, + 1000174, + 2874, + '1968-01-01 00:00:00.000000', + 30, + 1798, + 30000, + 4 + ), + ( + 1000176, + 1000172, + 2875, + '1971-01-01 00:00:00.000000', + 500, + 854, + 30000, + 4 + ), + ( + 1100001, + 1100001, + 1727, + '1999-01-01 00:00:00.000000', + 1000, + 444, + 30000, + 6 + ), + ( + 1100002, + 1100017, + 1728, + '1960-01-01 00:00:00.000000', + 1000, + 467, + 30000, + 2 + ), + ( + 1100003, + 1100003, + 167, + '1999-01-01 00:00:00.000000', + 125, + 1308, + 30000, + 2 + ), + ( + 1100004, + 1100004, + 1729, + '1999-01-01 00:00:00.000000', + 125, + 1403, + 30000, + 2 + ), + ( + 1100005, + 1100005, + 1726, + '1999-01-01 00:00:00.000000', + 1000, + 452, + 30000, + 4 + ), + ( + 1100006, + 1100006, + 1730, + '1999-01-01 00:00:00.000000', + 30, + 2111, + 30000, + 2 + ), + ( + 1100007, + 1100007, + 1731, + '1999-01-01 00:00:00.000000', + 30, + 2734, + 30000, + 2 + ), + ( + 1100008, + 1100008, + 1733, + '1999-01-01 00:00:00.000000', + 30, + 2772, + 30000, + 2 + ), + ( + 1100009, + 1100009, + 1732, + '1999-01-01 00:00:00.000000', + 30, + 3458, + 30000, + 2 + ), + ( + 1100010, + 1100018, + 1308, + '1966-01-01 00:00:00.000000', + 1000, + 498, + 30000, + 3 + ), + ( + 1100011, + 1100011, + 1309, + '1999-01-01 00:00:00.000000', + 1000, + 460, + 30000, + 7 + ), + ( + 1100012, + 1100012, + 1310, + '1999-01-01 00:00:00.000000', + 1000, + 454, + 30000, + 8 + ), + ( + 1100013, + 1100013, + 1311, + '1999-01-01 00:00:00.000000', + 1000, + 1052, + 30000, + 9 + ), + ( + 1100014, + 1100014, + 1312, + '1999-01-01 00:00:00.000000', + 1000, + 480, + 30000, + 5 + ), + ( + 1100015, + 1100016, + 1313, + '1999-01-01 00:00:00.000000', + 1000, + 485, + 30000, + 1 + ), + ( + 1100016, + 1100020, + 1314, + '1999-01-01 00:00:00.000000', + 1000, + 416, + 30000, + 10 + ), + ( + 1100017, + 1100021, + 1315, + '1999-01-01 00:00:00.000000', + 1000, + 472, + 30000, + 12 + ), + ( + 1100018, + 1100022, + 1316, + '1968-01-01 00:00:00.000000', + 1000, + 468, + 30000, + 11 + ), + ( + 1100019, + 1100023, + 1317, + '1999-01-01 00:00:00.000000', + 1000, + 442, + 30000, + 14 + ), + ( + 1100020, + 1100024, + 1318, + '1999-01-01 00:00:00.000000', + 1000, + 468, + 30000, + 13 + ), + ( + 1100021, + 1100002, + 1319, + '1999-01-01 00:00:00.000000', + 500, + 734, + 30000, + 2 + ), + ( + 1100022, + 1100025, + 1320, + '1956-01-01 00:00:00.000000', + 500, + 460, + 30000, + 6 + ), + ( + 1100023, + 1100026, + 1321, + '1957-01-01 00:00:00.000000', + 60, + 1572, + 30000, + 6 + ), + ( + 1100024, + 1100010, + 1307, + '1990-01-01 00:00:00.000000', + 30, + 1632, + 30000, + 2 + ), + ( + 1100025, + 1100015, + 1322, + '1956-01-01 00:00:00.000000', + 250, + 1040, + 30000, + 6 + ), + ( + 1100026, + 1100028, + 1323, + '1957-01-01 00:00:00.000000', + 250, + 1078, + 30000, + 5 + ), + ( + 1100027, + 1100029, + 1324, + '1970-01-01 00:00:00.000000', + 60, + 1725, + 30000, + 5 + ), + ( + 1100028, + 1100030, + 1325, + '1968-01-01 00:00:00.000000', + 500, + 495, + 30000, + 7 + ), + ( + 1100029, + 1100031, + 1326, + '1969-01-01 00:00:00.000000', + 250, + 1052, + 30000, + 7 + ), + ( + 1100030, + 1100032, + 1327, + '1969-01-01 00:00:00.000000', + 250, + 1082, + 30000, + 7 + ), + ( + 1100031, + 1100033, + 1328, + '1968-01-01 00:00:00.000000', + 250, + 1084, + 30000, + 11 + ), + ( + 1100032, + 1100034, + 1329, + '1967-01-01 00:00:00.000000', + 250, + 1091, + 30000, + 12 + ), + ( + 1100033, + 1100035, + 1330, + '1959-01-01 00:00:00.000000', + 60, + 1697, + 30000, + 13 + ), + ( + 1100034, + 1100036, + 1331, + '1967-01-01 00:00:00.000000', + 125, + 1028, + 30000, + 13 + ), + ( + 1100035, + 1100037, + 1332, + '1969-01-01 00:00:00.000000', + 250, + 1084, + 30000, + 13 + ), + ( + 1100036, + 1100039, + 1333, + '1963-01-01 00:00:00.000000', + 250, + 1089, + 30000, + 13 + ), + ( + 1100037, + 1100038, + 1334, + '1961-01-01 00:00:00.000000', + 60, + 1745, + 30000, + 13 + ), + ( + 1100038, + 1100040, + 1336, + '1956-01-01 00:00:00.000000', + 500, + 435, + 30000, + 15 + ), + ( + 1100039, + 1100041, + 1345, + '1961-01-01 00:00:00.000000', + 250, + 1106, + 30000, + 3 + ), + ( + 1100040, + 1100042, + 1346, + '1962-01-01 00:00:00.000000', + 250, + 1124, + 30000, + 3 + ), + ( + 1100041, + 1100043, + 1347, + '1967-01-01 00:00:00.000000', + 0, + 4598, + 30000, + 3 + ), + ( + 1100042, + 1100044, + 1348, + '1966-01-01 00:00:00.000000', + 250, + 1402, + 30000, + 3 + ), + ( + 1100043, + 1100045, + 1349, + '1971-01-01 00:00:00.000000', + 60, + 2187, + 30000, + 17 + ), + ( + 1100044, + 1100046, + 1359, + '1963-01-01 00:00:00.000000', + 250, + 1086, + 30000, + 1 + ), + ( + 1100045, + 1100049, + 1362, + '1964-01-01 00:00:00.000000', + 30, + 3404, + 30000, + 18 + ), + ( + 1100046, + 1100047, + 1360, + '1962-01-01 00:00:00.000000', + 250, + 1086, + 30000, + 1 + ), + ( + 1100047, + 1100048, + 1361, + '1964-01-01 00:00:00.000000', + 60, + 1740, + 30000, + 1 + ), + ( + 1100048, + 1100050, + 1363, + '1971-01-01 00:00:00.000000', + 250, + 1054, + 30000, + 2 + ), + ( + 1100049, + 1100051, + 1364, + '1966-01-01 00:00:00.000000', + 125, + 1330, + 30000, + 14 + ), + ( + 1100050, + 1100052, + 1365, + '1970-01-01 00:00:00.000000', + 60, + 1694, + 30000, + 14 + ), + ( + 1100052, + 1100054, + 1367, + '1999-01-01 00:00:00.000000', + 30, + 2786, + 30000, + 9 + ), + ( + 1100053, + 1100055, + 1368, + '1999-01-01 00:00:00.000000', + 30, + 2747, + 30000, + 7 + ), + ( + 1100054, + 1100056, + 1369, + '1999-01-01 00:00:00.000000', + 30, + 2747, + 30000, + 8 + ), + ( + 1100055, + 1100057, + 1370, + '1999-01-01 00:00:00.000000', + 30, + 2835, + 30000, + 5 + ), + ( + 1100056, + 1100058, + 1371, + '1999-01-01 00:00:00.000000', + 30, + 2742, + 30000, + 6 + ), + ( + 1100057, + 1100059, + 1372, + '1999-01-01 00:00:00.000000', + 30, + 2772, + 30000, + 1 + ), + ( + 1100058, + 1100060, + 1373, + '1999-01-01 00:00:00.000000', + 30, + 2890, + 30000, + 3 + ), + ( + 1100059, + 1100061, + 1374, + '1999-01-01 00:00:00.000000', + 30, + 2846, + 30000, + 4 + ), + ( + 1100060, + 1100062, + 1375, + '1999-01-01 00:00:00.000000', + 30, + 2846, + 30000, + 12 + ), + ( + 1100061, + 1100063, + 1376, + '1999-01-01 00:00:00.000000', + 30, + 2846, + 30000, + 11 + ), + ( + 1100062, + 1100064, + 1377, + '1999-01-01 00:00:00.000000', + 30, + 2772, + 30000, + 13 + ), + ( + 1100063, + 1100065, + 1378, + '1965-01-01 00:00:00.000000', + 0, + 1024, + 30000, + 18 + ), + ( + 1100064, + 1100066, + 1379, + '1999-01-01 00:00:00.000000', + 30, + 3520, + 30000, + 1 + ), + ( + 1100065, + 1100067, + 1380, + '1999-01-01 00:00:00.000000', + 30, + 3520, + 30000, + 7 + ), + ( + 1100066, + 1100068, + 1381, + '1999-01-01 00:00:00.000000', + 30, + 3458, + 30000, + 8 + ), + ( + 1100067, + 1100069, + 1382, + '1999-01-01 00:00:00.000000', + 30, + 3597, + 30000, + 5 + ), + ( + 1100068, + 1100070, + 1383, + '1999-01-01 00:00:00.000000', + 30, + 3458, + 30000, + 6 + ), + ( + 1100069, + 1100071, + 1385, + '1999-01-01 00:00:00.000000', + 30, + 3501, + 30000, + 3 + ), + ( + 1100070, + 1100072, + 1386, + '1999-01-01 00:00:00.000000', + 30, + 3494, + 30000, + 4 + ), + ( + 1100071, + 1100073, + 1387, + '1999-01-01 00:00:00.000000', + 30, + 3597, + 30000, + 12 + ), + ( + 1100072, + 1100074, + 1390, + '1999-01-01 00:00:00.000000', + 30, + 3458, + 30000, + 11 + ), + ( + 1100073, + 1100075, + 1391, + '1999-01-01 00:00:00.000000', + 30, + 3520, + 30000, + 13 + ), + ( + 1100074, + 1100076, + 1392, + '1999-01-01 00:00:00.000000', + 30, + 3520, + 30000, + 19 + ), + ( + 1100075, + 1100077, + 1393, + '1999-01-01 00:00:00.000000', + 125, + 1320, + 30000, + 6 + ), + ( + 1100076, + 1100078, + 1394, + '1999-01-01 00:00:00.000000', + 125, + 1355, + 30000, + 4 + ), + ( + 1100077, + 1100079, + 1396, + '1999-01-01 00:00:00.000000', + 125, + 1367, + 30000, + 3 + ), + ( + 1100078, + 1100080, + 1397, + '1999-01-01 00:00:00.000000', + 125, + 1388, + 30000, + 1 + ), + ( + 1100079, + 1100081, + 1398, + '1999-01-01 00:00:00.000000', + 125, + 1388, + 30000, + 7 + ), + ( + 1100080, + 1100082, + 1399, + '1999-01-01 00:00:00.000000', + 125, + 1491, + 30000, + 5 + ), + ( + 1100081, + 1100083, + 1400, + '1999-01-01 00:00:00.000000', + 125, + 1403, + 30000, + 6 + ), + ( + 1100082, + 1100084, + 1401, + '1999-01-01 00:00:00.000000', + 125, + 1494, + 30000, + 3 + ), + ( + 1100083, + 1100085, + 1402, + '1999-01-01 00:00:00.000000', + 125, + 1414, + 30000, + 4 + ), + ( + 1100085, + 1100087, + 1404, + '1999-01-01 00:00:00.000000', + 125, + 1414, + 30000, + 11 + ), + ( + 1100086, + 1100088, + 1405, + '1999-01-01 00:00:00.000000', + 125, + 1367, + 30000, + 13 + ), + ( + 1100088, + 1100090, + 1410, + '1999-01-01 00:00:00.000000', + 30, + 1672, + 30000, + 1 + ), + ( + 1100090, + 1100092, + 1412, + '1999-01-01 00:00:00.000000', + 30, + 1752, + 30000, + 5 + ), + ( + 1100091, + 1100093, + 1413, + '1999-01-01 00:00:00.000000', + 30, + 1683, + 30000, + 6 + ), + ( + 1100092, + 1100094, + 1414, + '1999-01-01 00:00:00.000000', + 30, + 1791, + 30000, + 3 + ), + ( + 1100093, + 1100095, + 1415, + '1999-01-01 00:00:00.000000', + 60, + 1678, + 30000, + 4 + ), + ( + 1100096, + 1100098, + 1418, + '1999-01-01 00:00:00.000000', + 30, + 1668, + 30000, + 13 + ), + ( + 1100098, + 1100100, + 2065, + '1968-01-01 00:00:00.000000', + 250, + 1065, + 30000, + 12 + ), + ( + 1100099, + 1100101, + 2068, + '1959-01-01 00:00:00.000000', + 250, + 1028, + 30000, + 13 + ), + ( + 1100100, + 1100102, + 2072, + '1959-01-01 00:00:00.000000', + 250, + 1091, + 32000, + 13 + ), + ( + 1100101, + 1100019, + 2100, + '1964-01-01 00:00:00.000000', + 250, + 1033, + 30000, + 4 + ), + ( + 1100102, + 1100104, + 2421, + '1965-01-01 00:00:00.000000', + 125, + 460, + 30000, + 4 + ), + ( + 1100103, + 1100105, + 2432, + '1965-01-01 00:00:00.000000', + 125, + 963, + 30000, + 10 + ), + ( + 1100104, + 1100106, + 2443, + '1960-01-01 00:00:00.000000', + 250, + 483, + 30000, + 8 + ), + ( + 1100105, + 1100107, + 2444, + '1968-01-01 00:00:00.000000', + 125, + 1085, + 30000, + 9 + ), + ( + 1100106, + 1100108, + 2445, + '1967-01-01 00:00:00.000000', + 125, + 1092, + 30000, + 5 + ), + ( + 1100107, + 1100109, + 2446, + '1957-01-01 00:00:00.000000', + 500, + 467, + 30000, + 6 + ), + ( + 1100108, + 1100110, + 2447, + '1965-01-01 00:00:00.000000', + 125, + 1049, + 30000, + 1 + ), + ( + 1100109, + 1100111, + 2448, + '1968-01-01 00:00:00.000000', + 250, + 483, + 30000, + 12 + ), + ( + 1100110, + 1100112, + 2449, + '1955-01-01 00:00:00.000000', + 125, + 1092, + 30000, + 13 + ), + ( + 1100111, + 1100113, + 2453, + '1960-01-01 00:00:00.000000', + 0, + 394, + 30000, + 6 + ), + ( + 1100112, + 1100114, + 2474, + '1940-01-01 00:00:00.000000', + 1000, + 462, + 30000, + 20 + ), + ( + 1100113, + 1100115, + 2482, + '1953-01-01 00:00:00.000000', + 1000, + 500, + 30000, + 21 + ), + ( + 1100114, + 1100116, + 2494, + '1970-01-01 00:00:00.000000', + 1000, + 483, + 30000, + 16 + ), + ( + 1100115, + 1100117, + 2495, + '1971-01-01 00:00:00.000000', + 60, + 1443, + 30000, + 16 + ), + ( + 1100116, + 1100118, + 2496, + '1972-01-01 00:00:00.000000', + 125, + 531, + 30000, + 16 + ), + ( + 1100117, + 1100119, + 2508, + '1968-01-01 00:00:00.000000', + 1000, + 516, + 30000, + 17 + ), + ( + 1100118, + 1100120, + 2509, + '1968-01-01 00:00:00.000000', + 125, + 545, + 30000, + 17 + ), + ( + 1100119, + 1100121, + 2529, + '1954-01-01 00:00:00.000000', + 1000, + 396, + 30000, + 15 + ), + ( + 1100120, + 1100122, + 2542, + '1958-01-01 00:00:00.000000', + 1000, + 457, + 30000, + 19 + ), + ( + 1100121, + 1100123, + 2543, + '1958-01-01 00:00:00.000000', + 125, + 1096, + 30000, + 19 + ), + ( + 1100122, + 1100124, + 2544, + '1963-01-01 00:00:00.000000', + 30, + 1717, + 30000, + 19 + ), + ( + 1100123, + 1100125, + 2575, + '1955-03-21 00:00:00.000000', + 125, + 1003, + 30000, + 21 + ), + ( + 1100124, + 1100126, + 2576, + '1955-03-21 00:00:00.000000', + 125, + 1014, + 30000, + 21 + ), + ( + 1100125, + 1100127, + 2577, + '1947-01-15 00:00:00.000000', + 125, + 1012, + 30000, + 20 + ), + ( + 1100126, + 1100128, + 2578, + '1947-01-15 00:00:00.000000', + 60, + 1026, + 30000, + 20 + ), + ( + 1100127, + 1100129, + 2698, + '1964-01-01 00:00:00.000000', + 125, + 939, + 30000, + 15 + ), + ( + 1100128, + 1100130, + 2699, + '1995-01-01 00:00:00.000000', + 125, + 1355, + 30000, + 14 + ), + ( + 1100129, + 1100131, + 2700, + '1965-01-01 00:00:00.000000', + 250, + 483, + 30000, + 14 + ), + ( + 1100130, + 1100132, + 2701, + '1995-01-01 00:00:00.000000', + 125, + 1355, + 30000, + 11 + ), + ( + 1100131, + 1100133, + 2702, + '1995-01-01 00:00:00.000000', + 125, + 1384, + 30000, + 12 + ), + ( + 1100132, + 1100134, + 2871, + '1957-01-01 00:00:00.000000', + 1000, + 413, + 30000, + 15 + ), + ( + 1100133, + 1100135, + 2863, + '1957-01-01 00:00:00.000000', + 1000, + 427, + 30000, + 15 + ), + ( + 1100134, + 1100136, + 2864, + '1957-01-01 00:00:00.000000', + 1000, + 433, + 30000, + 15 + ), + ( + 1100135, + 1100137, + 2865, + '1957-01-01 00:00:00.000000', + 125, + 1385, + 30000, + 15 + ), + ( + 1100136, + 1100138, + 2866, + '1957-01-01 00:00:00.000000', + 125, + 1396, + 30000, + 15 + ), + ( + 1100137, + 1100139, + 2867, + '1957-01-01 00:00:00.000000', + 125, + 1426, + 30000, + 15 + ), + ( + 1100138, + 1100140, + 2868, + '1957-01-01 00:00:00.000000', + 125, + 1441, + 30000, + 15 + ), + ( + 1100139, + 1100141, + 2869, + '1957-01-01 00:00:00.000000', + 60, + 2363, + 30000, + 15 + ), + ( + 1100140, + 1100142, + 2870, + '1957-01-01 00:00:00.000000', + 60, + 2432, + 30000, + 15 + ), + ( + 1100141, + 1100148, + 3024, + '1963-01-01 00:00:00.000000', + 500, + 499, + 30000, + 21 + ), + ( + 1100142, + 1100149, + 3025, + '1963-01-01 00:00:00.000000', + 500, + 506, + 30000, + 21 + ), + ( + 1100143, + 1100143, + 3019, + '1963-01-01 00:00:00.000000', + 500, + 514, + 30000, + 21 + ), + ( + 1100144, + 1100144, + 3020, + '1963-01-01 00:00:00.000000', + 500, + 530, + 30000, + 21 + ), + ( + 1100145, + 1100145, + 3021, + '1963-01-01 00:00:00.000000', + 250, + 538, + 30000, + 21 + ), + ( + 1100146, + 1100146, + 3022, + '1963-01-01 00:00:00.000000', + 250, + 1086, + 30000, + 21 + ), + ( + 1100147, + 1100147, + 3023, + '1963-01-01 00:00:00.000000', + 125, + 1106, + 30000, + 21 + ), + ( + 1100148, + 1100159, + 3625, + '1968-01-01 00:00:00.000000', + 0, + 3447, + 30000, + 18 + ), + ( + 1100149, + 1100154, + 3620, + '1968-01-01 00:00:00.000000', + 250, + 554, + 30000, + 18 + ), + ( + 1100150, + 1100155, + 3619, + '1968-01-01 00:00:00.000000', + 125, + 2119, + 30000, + 18 + ), + ( + 1100151, + 1100156, + 3616, + '1968-01-01 00:00:00.000000', + 500, + 514, + 30000, + 9 + ), + ( + 1100152, + 1100153, + 3621, + '1968-01-01 00:00:00.000000', + 125, + 1547, + 30000, + 17 + ), + ( + 1100153, + 1100152, + 3622, + '1968-01-01 00:00:00.000000', + 125, + 1730, + 30000, + 16 + ), + ( + 1100154, + 1100158, + 3618, + '1968-01-01 00:00:00.000000', + 0, + 3385, + 30000, + 9 + ), + ( + 1100155, + 1100150, + 3624, + '1968-01-01 00:00:00.000000', + 250, + 545, + 30000, + 17 + ), + ( + 1100156, + 1100151, + 3623, + '1968-01-01 00:00:00.000000', + 250, + 473, + 30000, + 16 + ), + ( + 1100157, + 1100157, + 3617, + '1968-01-01 00:00:00.000000', + 250, + 524, + 30000, + 9 + ), + ( + 1100158, + 1100160, + 3650, + '1957-01-01 00:00:00.000000', + 500, + 454, + 30000, + 6 + ), + ( + 1100159, + 1100161, + 3773, + '1935-01-01 00:00:00.000000', + 60, + 960, + 30000, + 10 + ), + ( + 1200001, + 1200001, + 168, + '1958-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 5 + ), + ( + 1200002, + 1200002, + 169, + '1964-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 2 + ), + ( + 1200003, + 1200003, + 189, + '1999-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 3 + ), + ( + 1200004, + 1200004, + 892, + '1990-01-01 00:00:00.000000', + 60, + 705, + 30000, + 3 + ), + ( + 1200005, + 1200005, + 893, + '1970-01-01 00:00:00.000000', + 60, + 614, + 30000, + 17 + ), + ( + 1200006, + 1200006, + 1294, + '1966-01-01 00:00:00.000000', + 1000, + 128, + 30000, + 5 + ), + ( + 1200007, + 1200007, + 1299, + '1964-01-01 00:00:00.000000', + 125, + 556, + 30000, + 1 + ), + ( + 1200008, + 1200008, + 1465, + '1990-01-01 00:00:00.000000', + 125, + 160, + 30000, + 3 + ), + ( + 1200009, + 1200009, + 1469, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 3 + ), + ( + 1200010, + 1200010, + 1470, + '1990-01-01 00:00:00.000000', + 125, + 901, + 30000, + 3 + ), + ( + 1200011, + 1200011, + 1468, + '1990-01-01 00:00:00.000000', + 250, + 195, + 30000, + 3 + ), + ( + 1200012, + 1200012, + 1913, + '1990-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 7 + ), + ( + 1200013, + 1200013, + 1914, + '1953-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 21 + ), + ( + 1200014, + 1200014, + 1915, + '1990-01-01 00:00:00.000000', + 1000, + 361, + 30000, + 9 + ), + ( + 1200015, + 1200015, + 1916, + '1990-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 1 + ), + ( + 1200017, + 1200017, + 1918, + '1990-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 4 + ), + ( + 1200018, + 1200018, + 1919, + '1990-01-01 00:00:00.000000', + 100, + 74, + 30000, + 10 + ), + ( + 1200019, + 1200019, + 1920, + '1990-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 12 + ), + ( + 1200020, + 1200020, + 1921, + '1968-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 11 + ), + ( + 1200021, + 1200021, + 1922, + '1966-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 14 + ), + ( + 1200022, + 1200022, + 1923, + '1990-01-01 00:00:00.000000', + 1000, + 124, + 30000, + 8 + ), + ( + 1200023, + 1200023, + 1924, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 6 + ), + ( + 1200024, + 1200024, + 1925, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 5 + ), + ( + 1200025, + 1200025, + 1926, + '1990-01-01 00:00:00.000000', + 60, + 616, + 30000, + 5 + ), + ( + 1200026, + 1200026, + 1927, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 13 + ), + ( + 1200027, + 1200027, + 1928, + '1990-01-01 00:00:00.000000', + 125, + 506, + 30000, + 15 + ), + ( + 1200028, + 1200028, + 1929, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 3 + ), + ( + 1200029, + 1200029, + 1930, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 3 + ), + ( + 1200030, + 1200030, + 1931, + '1990-01-01 00:00:00.000000', + 0, + 671, + 30000, + 3 + ), + ( + 1200031, + 1200031, + 1932, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 3 + ), + ( + 1200032, + 1200032, + 1933, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 1 + ), + ( + 1200033, + 1200033, + 1934, + '1990-01-01 00:00:00.000000', + 125, + 561, + 30000, + 2 + ), + ( + 1200034, + 1200034, + 2036, + '1955-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 6 + ), + ( + 1200035, + 1200035, + 2039, + '1959-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 13 + ), + ( + 1200036, + 1200036, + 2077, + '1960-01-01 00:00:00.000000', + 125, + 561, + 30000, + 14 + ), + ( + 1200037, + 1200037, + 2079, + '1961-01-01 00:00:00.000000', + 250, + 561, + 30000, + 13 + ), + ( + 1200038, + 1200038, + 2099, + '1964-01-01 00:00:00.000000', + 125, + 561, + 30000, + 4 + ), + ( + 1200039, + 1200039, + 2468, + '1964-01-01 00:00:00.000000', + 15, + 616, + 30000, + 18 + ), + ( + 1200040, + 1200040, + 2469, + '1964-01-01 00:00:00.000000', + 0, + 124, + 30000, + 18 + ), + ( + 1200041, + 1200041, + 2472, + '1970-01-01 00:00:00.000000', + 60, + 160, + 30000, + 18 + ), + ( + 1200042, + 1200042, + 2478, + '1940-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 20 + ), + ( + 1200043, + 1200043, + 2503, + '1970-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 16 + ), + ( + 1200044, + 1200044, + 2504, + '1971-01-01 00:00:00.000000', + 60, + 616, + 30000, + 16 + ), + ( + 1200045, + 1200045, + 2516, + '1968-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 17 + ), + ( + 1200046, + 1200047, + 2517, + '1969-01-01 00:00:00.000000', + 125, + 229, + 30000, + 17 + ), + ( + 1200047, + 1200046, + 2518, + '1970-01-01 00:00:00.000000', + 60, + 561, + 30000, + 17 + ), + ( + 1200048, + 1200048, + 2534, + '1954-01-01 00:00:00.000000', + 1000, + 506, + 30000, + 15 + ), + ( + 1200049, + 1200049, + 2546, + '1958-01-01 00:00:00.000000', + 1000, + 74, + 30000, + 19 + ), + ( + 1200050, + 1200050, + 2547, + '1958-01-01 00:00:00.000000', + 125, + 411, + 30000, + 19 + ), + ( + 1200051, + 1200051, + 2628, + '1955-02-10 00:00:00.000000', + 125, + 411, + 30000, + 21 + ), + ( + 1200052, + 1200052, + 2629, + '1968-03-17 00:00:00.000000', + 125, + 411, + 30000, + 8 + ), + ( + 1200053, + 1200053, + 2630, + '1968-03-17 00:00:00.000000', + 125, + 411, + 30000, + 7 + ), + ( + 1200054, + 1200054, + 2631, + '1946-02-26 00:00:00.000000', + 1000, + 133, + 30000, + 20 + ), + ( + 1200055, + 1200056, + 2632, + '1957-01-16 00:00:00.000000', + 60, + 411, + 30000, + 9 + ), + ( + 1200056, + 1200055, + 2633, + '1938-04-20 00:00:00.000000', + 1000, + 133, + 30000, + 10 + ), + ( + 1200057, + 1200057, + 2634, + '1968-03-11 00:00:00.000000', + 60, + 411, + 30000, + 11 + ), + ( + 1200058, + 1200058, + 2635, + '1968-03-11 00:00:00.000000', + 125, + 411, + 30000, + 12 + ), + ( + 1200059, + 1200059, + 2692, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 14 + ), + ( + 1200060, + 1200061, + 2704, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 5 + ), + ( + 1200061, + 1200060, + 2705, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 6 + ), + ( + 1200062, + 1200063, + 2706, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 1 + ), + ( + 1200063, + 1200062, + 2707, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 2 + ), + ( + 1200064, + 1200067, + 2708, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 17 + ), + ( + 1200065, + 1200066, + 2709, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 3 + ), + ( + 1200066, + 1200065, + 2710, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 16 + ), + ( + 1200067, + 1200064, + 2711, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 4 + ), + ( + 1200068, + 1200069, + 2712, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 12 + ), + ( + 1200069, + 1200068, + 2713, + '1995-01-01 00:00:00.000000', + 125, + 149, + 30000, + 11 + ), + ( + 1200070, + 1200070, + 2714, + '1995-01-01 00:00:00.000000', + 250, + 149, + 30000, + 13 + ), + ( + 1200071, + 1200071, + 2715, + '1995-01-01 00:00:00.000000', + 30, + 891, + 30000, + 3 + ), + ( + 1200072, + 1200074, + 2716, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 8 + ), + ( + 1200073, + 1200079, + 2717, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 5 + ), + ( + 1200074, + 1200076, + 2718, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 6 + ), + ( + 1200075, + 1200082, + 2719, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 19 + ), + ( + 1200076, + 1200088, + 2720, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 1 + ), + ( + 1200077, + 1200085, + 2721, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 2 + ), + ( + 1200078, + 1200099, + 2722, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 17 + ), + ( + 1200079, + 1200096, + 2723, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 16 + ), + ( + 1200080, + 1200093, + 2724, + '1995-01-01 00:00:00.000000', + 125, + 160, + 30000, + 4 + ), + ( + 1200081, + 1200072, + 2725, + '1995-01-01 00:00:00.000000', + 60, + 642, + 30000, + 14 + ), + ( + 1200082, + 1200075, + 2726, + '1998-01-01 00:00:00.000000', + 60, + 642, + 30000, + 8 + ), + ( + 1200083, + 1200080, + 2727, + '1995-01-01 00:00:00.000000', + 60, + 642, + 30000, + 5 + ), + ( + 1200084, + 1200077, + 2728, + '1999-01-01 00:00:00.000000', + 60, + 642, + 30000, + 6 + ), + ( + 1200085, + 1200083, + 2729, + '1999-01-01 00:00:00.000000', + 60, + 642, + 30000, + 19 + ), + ( + 1200086, + 1200089, + 2730, + '1999-01-01 00:00:00.000000', + 60, + 642, + 30000, + 1 + ), + ( + 1200087, + 1200086, + 2732, + '1999-01-01 00:00:00.000000', + 60, + 642, + 30000, + 2 + ), + ( + 1200088, + 1200091, + 2731, + '1999-01-01 00:00:00.000000', + 30, + 642, + 30000, + 18 + ), + ( + 1200089, + 1200100, + 2733, + '1999-01-01 00:00:00.000000', + 60, + 705, + 30000, + 17 + ), + ( + 1200090, + 1200097, + 2734, + '1999-01-01 00:00:00.000000', + 60, + 705, + 30000, + 16 + ), + ( + 1200091, + 1200094, + 2735, + '1999-01-01 00:00:00.000000', + 60, + 705, + 30000, + 4 + ), + ( + 1200092, + 1200073, + 2736, + '1999-01-01 00:00:00.000000', + 30, + 891, + 30000, + 14 + ), + ( + 1200093, + 1200081, + 2737, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 5 + ), + ( + 1200094, + 1200078, + 2738, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 6 + ), + ( + 1200095, + 1200084, + 2739, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 19 + ), + ( + 1200096, + 1200090, + 2740, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 1 + ), + ( + 1200097, + 1200092, + 2741, + '1999-01-01 00:00:00.000000', + 15, + 946, + 30000, + 18 + ), + ( + 1200098, + 1200087, + 2742, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 2 + ), + ( + 1200099, + 1200101, + 2743, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 17 + ), + ( + 1200100, + 1200098, + 2744, + '1999-01-01 00:00:00.000000', + 30, + 1001, + 30000, + 16 + ), + ( + 1200101, + 1200095, + 2745, + '1999-01-01 00:00:00.000000', + 30, + 891, + 30000, + 4 + ), + ( + 1200102, + 1200108, + 2746, + '1999-01-01 00:00:00.000000', + 125, + 160, + 30000, + 12 + ), + ( + 1200103, + 1200102, + 2747, + '1999-01-01 00:00:00.000000', + 125, + 160, + 30000, + 11 + ), + ( + 1200104, + 1200105, + 2748, + '1999-01-01 00:00:00.000000', + 125, + 160, + 30000, + 13 + ), + ( + 1200105, + 1200109, + 2749, + '1999-01-01 00:00:00.000000', + 60, + 642, + 30000, + 12 + ), + ( + 1200106, + 1200103, + 2750, + '1999-01-01 00:00:00.000000', + 60, + 642, + 30000, + 11 + ), + ( + 1200107, + 1200106, + 2751, + '1999-01-01 00:00:00.000000', + 60, + 642, + 30000, + 13 + ), + ( + 1200108, + 1200110, + 2752, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 12 + ), + ( + 1200109, + 1200104, + 2753, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 11 + ), + ( + 1200110, + 1200107, + 2754, + '1999-01-01 00:00:00.000000', + 30, + 946, + 30000, + 13 + ), + ( + 1200111, + 1200115, + 2833, + '1957-01-01 00:00:00.000000', + 125, + 551, + 30000, + 15 + ), + ( + 1200112, + 1200113, + 2829, + '1957-01-01 00:00:00.000000', + 60, + 951, + 30000, + 15 + ), + ( + 1200113, + 1200116, + 2834, + '1957-01-01 00:00:00.000000', + 125, + 821, + 30000, + 15 + ), + ( + 1200114, + 1200114, + 2832, + '1957-01-01 00:00:00.000000', + 125, + 506, + 30000, + 15 + ), + ( + 1200115, + 1200117, + 2830, + '1957-01-01 00:00:00.000000', + 125, + 551, + 30000, + 15 + ), + ( + 1200116, + 1200111, + 2827, + '1957-01-01 00:00:00.000000', + 125, + 506, + 30000, + 15 + ), + ( + 1200117, + 1200112, + 2828, + '1957-01-01 00:00:00.000000', + 60, + 655, + 30000, + 15 + ), + ( + 1200118, + 1200118, + 2831, + '1957-01-01 00:00:00.000000', + 125, + 554, + 30000, + 15 + ), + ( + 1200119, + 1200123, + 2915, + '1964-01-01 00:00:00.000000', + 250, + 133, + 30000, + 6 + ), + ( + 1200120, + 1200122, + 2914, + '1964-01-01 00:00:00.000000', + 125, + 614, + 30000, + 6 + ), + ( + 1200121, + 1200121, + 2913, + '1964-01-01 00:00:00.000000', + 30, + 1084, + 30000, + 6 + ), + ( + 1200122, + 1200124, + 2916, + '1964-01-01 00:00:00.000000', + 30, + 990, + 30000, + 6 + ), + ( + 1200123, + 1200119, + 2911, + '1964-01-01 00:00:00.000000', + 60, + 674, + 30000, + 6 + ), + ( + 1200124, + 1200120, + 2912, + '1964-01-01 00:00:00.000000', + 500, + 133, + 30000, + 6 + ), + ( + 1200125, + 1200131, + 2994, + '1965-01-01 00:00:00.000000', + 500, + 128, + 30000, + 21 + ), + ( + 1200126, + 1200127, + 2990, + '1965-01-01 00:00:00.000000', + 125, + 848, + 30000, + 21 + ), + ( + 1200127, + 1200132, + 2995, + '1965-01-01 00:00:00.000000', + 125, + 482, + 30000, + 21 + ), + ( + 1200128, + 1200138, + 3001, + '1965-01-01 00:00:00.000000', + 250, + 224, + 30000, + 4 + ), + ( + 1200129, + 1200126, + 2989, + '1965-01-01 00:00:00.000000', + 250, + 181, + 30000, + 21 + ), + ( + 1200130, + 1200139, + 3002, + '1965-01-01 00:00:00.000000', + 125, + 942, + 30000, + 4 + ), + ( + 1200131, + 1200128, + 2991, + '1965-01-01 00:00:00.000000', + 125, + 901, + 30000, + 21 + ), + ( + 1200132, + 1200137, + 3000, + '1965-01-01 00:00:00.000000', + 125, + 535, + 30000, + 4 + ), + ( + 1200133, + 1200129, + 2992, + '1965-01-01 00:00:00.000000', + 125, + 511, + 30000, + 21 + ), + ( + 1200134, + 1200130, + 2993, + '1965-01-01 00:00:00.000000', + 125, + 559, + 30000, + 21 + ), + ( + 1200135, + 1200135, + 2998, + '1965-01-01 00:00:00.000000', + 125, + 535, + 30000, + 4 + ), + ( + 1200136, + 1200133, + 2996, + '1965-01-01 00:00:00.000000', + 125, + 535, + 30000, + 4 + ), + ( + 1200137, + 1200134, + 2997, + '1965-01-01 00:00:00.000000', + 60, + 674, + 30000, + 4 + ), + ( + 1200138, + 1200125, + 2988, + '1965-01-01 00:00:00.000000', + 60, + 559, + 30000, + 21 + ), + ( + 1200139, + 1200140, + 2999, + '1965-01-01 00:00:00.000000', + 60, + 705, + 30000, + 4 + ), + ( + 1200140, + 1200142, + 3070, + '1966-01-01 00:00:00.000000', + 75, + 1096, + 30000, + 2 + ), + ( + 1200141, + 1200143, + 3072, + '1966-01-01 00:00:00.000000', + 125, + 861, + 30000, + 2 + ), + ( + 1200142, + 1200141, + 3071, + '1966-01-01 00:00:00.000000', + 250, + 511, + 30000, + 2 + ), + ( + 1200143, + 1200144, + 3107, + '1966-01-01 00:00:00.000000', + 75, + 1096, + 30000, + 13 + ), + ( + 1200144, + 1200145, + 3108, + '1966-01-01 00:00:00.000000', + 75, + 1047, + 30000, + 13 + ), + ( + 1200145, + 1200165, + 3282, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 9 + ), + ( + 1200146, + 1200180, + 3297, + '1967-01-01 00:00:00.000000', + 500, + 254, + 30000, + 14 + ), + ( + 1200147, + 1200173, + 3290, + '1967-01-01 00:00:00.000000', + 500, + 254, + 30000, + 19 + ), + ( + 1200148, + 1200166, + 3283, + '1967-01-01 00:00:00.000000', + 500, + 254, + 30000, + 9 + ), + ( + 1200149, + 1200181, + 3298, + '1967-01-01 00:00:00.000000', + 250, + 587, + 30000, + 14 + ), + ( + 1200150, + 1200174, + 3291, + '1967-01-01 00:00:00.000000', + 250, + 587, + 30000, + 19 + ), + ( + 1200151, + 1200167, + 3284, + '1967-01-01 00:00:00.000000', + 250, + 587, + 30000, + 9 + ), + ( + 1200152, + 1200179, + 3296, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 14 + ), + ( + 1200153, + 1200148, + 3265, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 16 + ), + ( + 1200154, + 1200153, + 3270, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 17 + ), + ( + 1200155, + 1200186, + 3303, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 12 + ), + ( + 1200156, + 1200159, + 3276, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 18 + ), + ( + 1200157, + 1200172, + 3289, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 19 + ), + ( + 1200158, + 1200190, + 3307, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 1 + ), + ( + 1200159, + 1200191, + 3308, + '1967-01-01 00:00:00.000000', + 0, + 1260, + 30000, + 5 + ), + ( + 1200160, + 1200175, + 3292, + '1967-01-01 00:00:00.000000', + 75, + 1001, + 30000, + 19 + ), + ( + 1200161, + 1200182, + 3299, + '1967-01-01 00:00:00.000000', + 75, + 1001, + 30000, + 14 + ), + ( + 1200162, + 1200160, + 3277, + '1967-01-01 00:00:00.000000', + 50, + 1001, + 30000, + 18 + ), + ( + 1200163, + 1200192, + 3309, + '1967-01-01 00:00:00.000000', + 75, + 1001, + 30000, + 5 + ), + ( + 1200164, + 1200168, + 3285, + '1967-01-01 00:00:00.000000', + 75, + 1001, + 30000, + 9 + ), + ( + 1200165, + 1200169, + 3286, + '1967-01-01 00:00:00.000000', + 250, + 233, + 30000, + 19 + ), + ( + 1200166, + 1200176, + 3293, + '1967-01-01 00:00:00.000000', + 250, + 233, + 30000, + 14 + ), + ( + 1200167, + 1200162, + 3279, + '1967-01-01 00:00:00.000000', + 250, + 233, + 30000, + 9 + ), + ( + 1200168, + 1200183, + 3300, + '1967-01-01 00:00:00.000000', + 250, + 242, + 30000, + 12 + ), + ( + 1200169, + 1200156, + 3275, + '1967-01-01 00:00:00.000000', + 250, + 242, + 30000, + 18 + ), + ( + 1200170, + 1200187, + 3304, + '1967-01-01 00:00:00.000000', + 250, + 233, + 30000, + 1 + ), + ( + 1200171, + 1200163, + 3280, + '1967-01-01 00:00:00.000000', + 250, + 535, + 30000, + 9 + ), + ( + 1200172, + 1200157, + 3273, + '1967-01-01 00:00:00.000000', + 125, + 535, + 30000, + 18 + ), + ( + 1200173, + 1200189, + 3306, + '1967-01-01 00:00:00.000000', + 250, + 614, + 30000, + 1 + ), + ( + 1200174, + 1200151, + 3268, + '1967-01-01 00:00:00.000000', + 250, + 535, + 30000, + 17 + ), + ( + 1200175, + 1200146, + 3263, + '1967-01-01 00:00:00.000000', + 250, + 535, + 30000, + 16 + ), + ( + 1200176, + 1200170, + 3287, + '1967-01-01 00:00:00.000000', + 250, + 535, + 30000, + 19 + ), + ( + 1200177, + 1200177, + 3294, + '1967-01-01 00:00:00.000000', + 250, + 535, + 30000, + 14 + ), + ( + 1200178, + 1200184, + 3301, + '1967-01-01 00:00:00.000000', + 250, + 535, + 30000, + 12 + ), + ( + 1200179, + 1200161, + 3278, + '1967-01-01 00:00:00.000000', + 500, + 212, + 30000, + 9 + ), + ( + 1200180, + 1200149, + 3266, + '1967-01-01 00:00:00.000000', + 125, + 1047, + 30000, + 16 + ), + ( + 1200181, + 1200154, + 3271, + '1967-01-01 00:00:00.000000', + 125, + 1047, + 30000, + 17 + ), + ( + 1200182, + 1200152, + 3269, + '1967-01-01 00:00:00.000000', + 125, + 698, + 30000, + 17 + ), + ( + 1200183, + 1200178, + 3295, + '1967-01-01 00:00:00.000000', + 125, + 698, + 30000, + 14 + ), + ( + 1200184, + 1200189, + 3306, + '1967-01-01 00:00:00.000000', + 125, + 614, + 30000, + 1 + ), + ( + 1200185, + 1200185, + 3302, + '1967-01-01 00:00:00.000000', + 125, + 698, + 30000, + 12 + ), + ( + 1200186, + 1200147, + 3264, + '1967-01-01 00:00:00.000000', + 125, + 698, + 30000, + 16 + ), + ( + 1200187, + 1200171, + 3288, + '1967-01-01 00:00:00.000000', + 125, + 698, + 30000, + 19 + ), + ( + 1200188, + 1200164, + 3281, + '1967-01-01 00:00:00.000000', + 125, + 698, + 30000, + 9 + ), + ( + 1200189, + 1200158, + 3274, + '1967-01-01 00:00:00.000000', + 125, + 698, + 30000, + 18 + ), + ( + 1200190, + 1200155, + 3272, + '1967-01-01 00:00:00.000000', + 0, + 1132, + 30000, + 17 + ), + ( + 1200191, + 1200150, + 3267, + '1967-01-01 00:00:00.000000', + 0, + 1132, + 30000, + 16 + ), + ( + 1200192, + 1200193, + 3771, + '1995-01-01 00:00:00.000000', + 60, + 579, + 30000, + 10 + ); \ No newline at end of file diff --git a/migrations/0022-seedPart.sql b/migrations/0022-seedPart.sql new file mode 100644 index 000000000..26fffbfde --- /dev/null +++ b/migrations/0022-seedPart.sql @@ -0,0 +1 @@ +-- Intentionally left blank, file exists to maintain order of migrations diff --git a/migrations/0023-seedDriverClass.sql b/migrations/0023-seedDriverClass.sql new file mode 100644 index 000000000..b6452417b --- /dev/null +++ b/migrations/0023-seedDriverClass.sql @@ -0,0 +1,6 @@ +INSERT INTO + driver_class (driver_class_id, driver_class) +VALUES + (0, 'C'), + (1, 'B'), + (2, 'A'); \ No newline at end of file diff --git a/migrations/0024-seedPlayerType.sql b/migrations/0024-seedPlayerType.sql new file mode 100644 index 000000000..e160b4c09 --- /dev/null +++ b/migrations/0024-seedPlayerType.sql @@ -0,0 +1,8 @@ +INSERT INTO + player_type (player_type_id, player_type) +VALUES + (1, 'System'), + (2, 'Admin'), + (3, 'Player'), + (4, 'Deleted Player'), + (5, 'Escrow'); \ No newline at end of file diff --git a/migrations/0025-seedPlayer.sql b/migrations/0025-seedPlayer.sql new file mode 100644 index 000000000..e4a0eaa72 --- /dev/null +++ b/migrations/0025-seedPlayer.sql @@ -0,0 +1,33026 @@ +INSERT INTO + player ( + player_id, + customer_id, + player_type_id, + sanctioned_score, + challenge_score, + last_logged_in, + times_logged_in, + bank_balance, + num_cars_owned, + is_logged_in, + driver_style, + lp_code, + lp_text, + car_num1, + car_num2, + car_num3, + car_num4, + car_num5, + car_num6, + dl_number, + persona, + "address", + residence, + vehicle_id, + current_race_id, + offline_driver_skill, + offline_grudge, + offline_reputation, + total_time_played, + car_info_setting, + stock_classic_class, + stock_muscle_class, + modified_classic_class, + modified_muscle_class, + outlaw_class, + drag_class, + challenge_rung, + offline_ai_car_class, + offline_ai_skin_id, + offline_ai_car_bpt_id, + offline_ai_state, + body_type, + skin_color, + hair_color, + shirt_color, + pants_color, + offline_driver_style, + offline_driver_attitude, + evaded_fuzz, + pinks_won, + num_unread_mail, + total_races_run, + total_races_won, + total_races_completed, + total_winnings, + insurance_risk_points, + insurance_rating, + challenge_races_run, + challenge_races_won, + challenge_races_completed, + cars_lost, + cars_won + ) +VALUES + ( + 0, + 0, + 5, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Null Name', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 1, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Muscle Mike', + '1235 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 2, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Auto Barn', + '1236 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 3, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Fat Fender Freddy', + '1237 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 4, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Righteous Ride', + '1238 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 5, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Classic Chrysler', + '1239 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 6, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'All Factory Ford', + '1240 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 7, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Shoebox Showroom', + '1241 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 8, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Original GM', + '1242 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 9, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Scrappy', + '1243 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 10, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Joe', + '1244 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 11, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'AI Administrator', + '1244 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 12, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Editorials', + '1244 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 13, + 0, + 5, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 999999, + 0, + 0, + 0, + 0, + NULL, + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + '0 ', + 'xxx', + 'Escrow', + '1234 A Street', + 'ABCDEFGHIJKLMNOPQRST', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 14, + 0, + 1, + 0, + 0, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 0, + NULL, + '0', + '0', + '0', + '0', + '0', + '0', + 'xxxx', + 'PartAuction', + '0', + '0', + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + NULL, + NULL, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ), + ( + 500, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 0, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '303872ia', + 'AI Racer 500', + '12390 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 0, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 47, + 104, + 0, + 3, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 501, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '392562ia', + 'AI Racer 501', + '19030 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 0, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 488, + 135, + 0, + 7, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 502, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '754473ia', + 'AI Racer 502', + '24667 Traction Turnpike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 0, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 45, + 104, + 0, + 3, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 503, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 39, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '655218ia', + 'AI Racer 503', + '19862 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 0, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 424, + 256, + 0, + 5, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 504, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '661274ia', + 'AI Racer 504', + '17633 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 0, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 320, + 124, + 0, + 1, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 505, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '748672ia', + 'AI Racer 505', + '5973 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 1, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 341, + 126, + 0, + 7, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 506, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '743362ia', + 'AI Racer 506', + '20530 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 1, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 479, + 135, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 507, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '150424ia', + 'AI Racer 507', + '14501 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 1, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 208, + 117, + 0, + 5, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 508, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '670230ia', + 'AI Racer 508', + '11518 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 1, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 517, + 102, + 0, + 2, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 509, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '676802ia', + 'AI Racer 509', + '17074 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 1, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 164, + 114, + 0, + 2, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 510, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '216809ia', + 'AI Racer 510', + '1 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 2, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 332, + 125, + 0, + 9, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 511, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '450489ia', + 'AI Racer 511', + '17156 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 2, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 157, + 113, + 0, + 0, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 512, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '880258ia', + 'AI Racer 512', + '4278 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 2, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 403, + 130, + 0, + 8, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 513, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '325247ia', + 'AI Racer 513', + '1923 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 2, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 334, + 125, + 0, + 8, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 514, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '985983ia', + 'AI Racer 514', + '4582 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 3, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 648, + 134, + 0, + 5, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 515, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '219306ia', + 'AI Racer 515', + '5913 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 3, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 410, + 131, + 0, + 8, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 516, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '712898ia', + 'AI Racer 516', + '22855 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 3, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 340, + 126, + 0, + 3, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 517, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '769085ia', + 'AI Racer 517', + '21038 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 3, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 205, + 117, + 0, + 2, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 518, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '460272ia', + 'AI Racer 518', + '9291 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 3, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 561, + 113, + 0, + 2, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 519, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '83745ia', + 'AI Racer 519', + '12505 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 4, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 427, + 132, + 0, + 7, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 520, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '469201ia', + 'AI Racer 520', + '28280 Fell Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 4, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 520, + 103, + 0, + 4, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 521, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '387318ia', + 'AI Racer 521', + '5676 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 4, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 58, + 105, + 0, + 0, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 522, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '481939ia', + 'AI Racer 522', + '167 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 4, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 162, + 114, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 523, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '219602ia', + 'AI Racer 523', + '5377 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 5, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 94, + 109, + 0, + 4, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 524, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '98237ia', + 'AI Racer 524', + '2966 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 5, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 28, + 102, + 0, + 5, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 525, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '550891ia', + 'AI Racer 525', + '8909 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 5, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 426, + 132, + 0, + 8, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 526, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '82933ia', + 'AI Racer 526', + '27132 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 5, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 299, + 123, + 0, + 9, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 527, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '602424ia', + 'AI Racer 527', + '13996 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 5, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 528, + 105, + 0, + 0, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 528, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '837365ia', + 'AI Racer 528', + '16577 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 6, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 185, + 115, + 0, + 0, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 529, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '568712ia', + 'AI Racer 529', + '157 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 6, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 64, + 105, + 0, + 8, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 530, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '486006ia', + 'AI Racer 530', + '21699 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 6, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 624, + 128, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 531, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '150879ia', + 'AI Racer 531', + '13759 Traction Turnpike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 6, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 304, + 123, + 0, + 6, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 532, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '498768ia', + 'AI Racer 532', + '15100 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 7, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 232, + 119, + 0, + 2, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 533, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '697447ia', + 'AI Racer 533', + '7870 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 7, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 73, + 106, + 0, + 3, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 534, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '914165ia', + 'AI Racer 534', + '12865 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 7, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 16, + 102, + 0, + 5, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 535, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '585301ia', + 'AI Racer 535', + '15917 Caps Creek Parkway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 7, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 370, + 128, + 0, + 0, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 536, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '696998ia', + 'AI Racer 536', + '29129 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 7, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 403, + 130, + 0, + 0, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 537, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '485027ia', + 'AI Racer 537', + '11864 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 8, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 154, + 113, + 0, + 4, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 538, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '509577ia', + 'AI Racer 538', + '18755 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 8, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 1, + 101, + 0, + 1, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 539, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '179998ia', + 'AI Racer 539', + '27924 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 8, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 569, + 115, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 540, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '35476ia', + 'AI Racer 540', + '2526 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 8, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 344, + 126, + 0, + 3, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 541, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '974717ia', + 'AI Racer 541', + '11837 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 9, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 20, + 102, + 0, + 7, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 542, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '464742ia', + 'AI Racer 542', + '4093 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 9, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 209, + 117, + 0, + 5, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 543, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '754074ia', + 'AI Racer 543', + '4268 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 9, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 30, + 103, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 544, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '804176ia', + 'AI Racer 544', + '24503 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 9, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 491, + 135, + 0, + 1, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 545, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '994626ia', + 'AI Racer 545', + '2186 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 9, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 209, + 117, + 0, + 3, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 546, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '94126ia', + 'AI Racer 546', + '4524 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 10, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 95, + 109, + 0, + 2, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 547, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '571815ia', + 'AI Racer 547', + '6931 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 10, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 99, + 109, + 0, + 5, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 548, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '160096ia', + 'AI Racer 548', + '11826 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 10, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 295, + 123, + 0, + 5, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 549, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '227074ia', + 'AI Racer 549', + '24213 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 10, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 150, + 112, + 0, + 1, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 550, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '936708ia', + 'AI Racer 550', + '21767 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 11, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 191, + 116, + 0, + 8, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 551, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '330081ia', + 'AI Racer 551', + '20248 Spark Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 11, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 280, + 122, + 0, + 3, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 552, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '852519ia', + 'AI Racer 552', + '1585 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 11, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 504, + 108, + 0, + 8, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 553, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '25095ia', + 'AI Racer 553', + '742 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 11, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 491, + 135, + 0, + 0, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 554, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '476593ia', + 'AI Racer 554', + '23289 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 11, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 421, + 132, + 0, + 4, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 555, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '79046ia', + 'AI Racer 555', + '11493 Petrick Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 12, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 212, + 118, + 0, + 3, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 556, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '421062ia', + 'AI Racer 556', + '11511 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 12, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 644, + 133, + 0, + 4, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 557, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '834459ia', + 'AI Racer 557', + '2578 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 12, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 158, + 113, + 0, + 7, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 558, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '185804ia', + 'AI Racer 558', + '3130 Main Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 12, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 207, + 117, + 0, + 9, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 559, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '292551ia', + 'AI Racer 559', + '22628 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 12, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 101, + 109, + 0, + 5, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 560, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '301945ia', + 'AI Racer 560', + '15902 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 13, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 301, + 123, + 0, + 0, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 561, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '939129ia', + 'AI Racer 561', + '11995 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 13, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 331, + 125, + 0, + 5, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 562, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '842129ia', + 'AI Racer 562', + '15070 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 13, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 227, + 119, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 563, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522294ia', + 'AI Racer 563', + '25688 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 13, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 124, + 111, + 0, + 2, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 564, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '430746ia', + 'AI Racer 564', + '12809 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 14, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 550, + 110, + 0, + 4, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 565, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '74483ia', + 'AI Racer 565', + '13403 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 14, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 141, + 112, + 0, + 5, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 566, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '488746ia', + 'AI Racer 566', + '29792 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 14, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 610, + 125, + 0, + 7, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 567, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '360001ia', + 'AI Racer 567', + '29357 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 14, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 349, + 126, + 0, + 0, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 568, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '182796ia', + 'AI Racer 568', + '16647 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 14, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 490, + 135, + 0, + 4, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 569, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '817095ia', + 'AI Racer 569', + '7805 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 15, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 72, + 106, + 0, + 6, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 570, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '596776ia', + 'AI Racer 570', + '12112 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 15, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 541, + 108, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 571, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '376237ia', + 'AI Racer 571', + '28270 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 15, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 51, + 104, + 0, + 1, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 572, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '326326ia', + 'AI Racer 572', + '8675 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 15, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 586, + 119, + 0, + 4, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 573, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '224231ia', + 'AI Racer 573', + '28187 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 16, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 582, + 118, + 0, + 8, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 574, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '520429ia', + 'AI Racer 574', + '18809 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 16, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 226, + 119, + 0, + 2, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 575, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '964865ia', + 'AI Racer 575', + '3780 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 16, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 606, + 124, + 0, + 6, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 576, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '866643ia', + 'AI Racer 576', + '21809 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 16, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 40, + 103, + 0, + 2, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 577, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '626184ia', + 'AI Racer 577', + '25887 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 16, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 175, + 114, + 0, + 7, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 578, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '392980ia', + 'AI Racer 578', + '4362 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 17, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 14, + 101, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 579, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '949799ia', + 'AI Racer 579', + '23535 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 17, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 395, + 130, + 0, + 3, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 580, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '273343ia', + 'AI Racer 580', + '26913 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 17, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 55, + 105, + 0, + 2, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 581, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '76510ia', + 'AI Racer 581', + '27342 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 17, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 468, + 134, + 0, + 9, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 582, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '813472ia', + 'AI Racer 582', + '12153 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 18, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 561, + 113, + 0, + 5, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 583, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '110644ia', + 'AI Racer 583', + '20152 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 18, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 425, + 132, + 0, + 6, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 584, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '749440ia', + 'AI Racer 584', + '28765 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 18, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 332, + 125, + 0, + 8, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 585, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '841527ia', + 'AI Racer 585', + '16354 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 18, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 75, + 106, + 0, + 6, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 586, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '241745ia', + 'AI Racer 586', + '12041 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 18, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 362, + 127, + 0, + 6, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 587, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '659771ia', + 'AI Racer 587', + '795 Main Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 19, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 143, + 112, + 0, + 8, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 588, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '26899ia', + 'AI Racer 588', + '3545 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 19, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 380, + 129, + 0, + 6, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 589, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '416064ia', + 'AI Racer 589', + '25498 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 19, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 113, + 110, + 0, + 4, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 590, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '768108ia', + 'AI Racer 590', + '20187 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 19, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 413, + 131, + 0, + 9, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 591, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '701220ia', + 'AI Racer 591', + '1649 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 20, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 65, + 106, + 0, + 7, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 592, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '622845ia', + 'AI Racer 592', + '21062 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 20, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 205, + 117, + 0, + 8, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 593, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '411571ia', + 'AI Racer 593', + '23654 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 20, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 343, + 126, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 594, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '66525ia', + 'AI Racer 594', + '12399 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 20, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 49, + 104, + 0, + 7, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 595, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '273352ia', + 'AI Racer 595', + '2731 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 20, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 521, + 103, + 0, + 5, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 596, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '154000ia', + 'AI Racer 596', + '2787 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 21, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 204, + 117, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 597, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '423723ia', + 'AI Racer 597', + '9138 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 21, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 72, + 106, + 0, + 0, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 598, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '671710ia', + 'AI Racer 598', + '19830 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 21, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 46, + 104, + 0, + 9, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 599, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '679830ia', + 'AI Racer 599', + '11928 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 21, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 207, + 117, + 0, + 5, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 600, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522491ia', + 'AI Racer 600', + '867 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 22, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 358, + 127, + 0, + 8, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 601, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '173515ia', + 'AI Racer 601', + '20635 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 22, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 250, + 120, + 0, + 6, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 602, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '17008ia', + 'AI Racer 602', + '3799 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 22, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 644, + 133, + 0, + 4, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 603, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '723724ia', + 'AI Racer 603', + '27178 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 22, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 291, + 122, + 0, + 0, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 604, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '912010ia', + 'AI Racer 604', + '28794 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 22, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 71, + 106, + 0, + 5, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 605, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '856571ia', + 'AI Racer 605', + '23770 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 23, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 355, + 140, + 0, + 1, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 606, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '361569ia', + 'AI Racer 606', + '27936 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 23, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 8, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 607, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '430294ia', + 'AI Racer 607', + '9465 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 23, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 344, + 143, + 0, + 1, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 608, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '200002ia', + 'AI Racer 608', + '18734 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 23, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 393, + 129, + 0, + 7, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 609, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '761006ia', + 'AI Racer 609', + '3122 Valiant Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 23, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 209, + 117, + 0, + 4, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 610, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '354954ia', + 'AI Racer 610', + '7308 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 24, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 242, + 120, + 0, + 1, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 611, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '941120ia', + 'AI Racer 611', + '4992 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 24, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 357, + 140, + 0, + 2, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 612, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '997661ia', + 'AI Racer 612', + '1284 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 24, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 6, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 613, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '784622ia', + 'AI Racer 613', + '10704 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 24, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 357, + 140, + 0, + 1, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 614, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '610071ia', + 'AI Racer 614', + '5439 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 25, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 354, + 140, + 0, + 7, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 615, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '154341ia', + 'AI Racer 615', + '26774 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 25, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 348, + 143, + 0, + 5, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 616, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '603120ia', + 'AI Racer 616', + '13229 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 25, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 126, + 111, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 617, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '84166ia', + 'AI Racer 617', + '13098 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 25, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 13, + 139, + 0, + 9, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 618, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '751322ia', + 'AI Racer 618', + '8804 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 25, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 350, + 143, + 0, + 9, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 619, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '156450ia', + 'AI Racer 619', + '7359 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 26, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 373, + 128, + 0, + 4, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 620, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '311080ia', + 'AI Racer 620', + '12471 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 26, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 198, + 116, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 621, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '109171ia', + 'AI Racer 621', + '16179 Traction Turnpike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 26, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 14, + 139, + 0, + 9, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 622, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '21143ia', + 'AI Racer 622', + '7698 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 26, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 620, + 127, + 0, + 0, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 623, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '494328ia', + 'AI Racer 623', + '22080 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 27, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 185, + 115, + 0, + 0, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 624, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '67631ia', + 'AI Racer 624', + '23832 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 27, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 70, + 106, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 625, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '409432ia', + 'AI Racer 625', + '16188 Caps Creek Parkway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 27, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 536, + 107, + 0, + 3, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 626, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '123659ia', + 'AI Racer 626', + '7518 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 27, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 6, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 627, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '839593ia', + 'AI Racer 627', + '10874 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 27, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 345, + 143, + 0, + 4, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 628, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '109316ia', + 'AI Racer 628', + '11119 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 28, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 318, + 124, + 0, + 7, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 629, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '291280ia', + 'AI Racer 629', + '28506 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 28, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 615, + 143, + 0, + 2, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 630, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '473923ia', + 'AI Racer 630', + '5033 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 28, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 132, + 111, + 0, + 8, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 631, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '407098ia', + 'AI Racer 631', + '21929 Valiant Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 28, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 8, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 632, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '922459ia', + 'AI Racer 632', + '26513 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 29, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 10, + 139, + 0, + 9, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 633, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '8727ia', + 'AI Racer 633', + '9820 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 29, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 354, + 140, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 634, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '319287ia', + 'AI Racer 634', + '1729 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 29, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 14, + 139, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 635, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '139794ia', + 'AI Racer 635', + '14163 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 29, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 358, + 140, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 636, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522918ia', + 'AI Racer 636', + '25350 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 29, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 252, + 120, + 0, + 5, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 637, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '814006ia', + 'AI Racer 637', + '24547 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 30, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 0, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 638, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '968628ia', + 'AI Racer 638', + '29310 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 30, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 7, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 639, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '486332ia', + 'AI Racer 639', + '133 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 30, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 345, + 143, + 0, + 7, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 640, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '378921ia', + 'AI Racer 640', + '28711 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 30, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 4, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 641, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '867790ia', + 'AI Racer 641', + '13602 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 31, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 6, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 642, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '169255ia', + 'AI Racer 642', + '17079 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 31, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 643, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '637397ia', + 'AI Racer 643', + '12225 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 31, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 354, + 140, + 0, + 8, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 644, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '260694ia', + 'AI Racer 644', + '5682 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 31, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 370, + 128, + 0, + 5, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 645, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '193921ia', + 'AI Racer 645', + '1517 29th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 31, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 343, + 143, + 0, + 5, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 646, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '383668ia', + 'AI Racer 646', + '22413 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 32, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 357, + 140, + 0, + 8, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 647, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '418331ia', + 'AI Racer 647', + '24800 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 32, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 598, + 122, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 648, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '498356ia', + 'AI Racer 648', + '6111 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 32, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 649, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '394224ia', + 'AI Racer 649', + '17302 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 32, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 177, + 115, + 0, + 2, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 650, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '46273ia', + 'AI Racer 650', + '17762 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 33, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 9, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 651, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '873050ia', + 'AI Racer 651', + '3579 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 33, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 348, + 143, + 0, + 9, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 652, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '438471ia', + 'AI Racer 652', + '2543 Fell Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 33, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 529, + 105, + 0, + 9, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 653, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '512831ia', + 'AI Racer 653', + '15245 Spark Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 33, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 298, + 123, + 0, + 5, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 654, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '915303ia', + 'AI Racer 654', + '10197 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 33, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 222, + 118, + 0, + 3, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 655, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '199397ia', + 'AI Racer 655', + '2197 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 34, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 656, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '140597ia', + 'AI Racer 656', + '17701 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 34, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 8, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 657, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '739018ia', + 'AI Racer 657', + '15977 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 34, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 2, + 139, + 0, + 5, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 658, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '288685ia', + 'AI Racer 658', + '23165 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 34, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 350, + 143, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 659, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '736478ia', + 'AI Racer 659', + '27051 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 34, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 407, + 131, + 0, + 6, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 660, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '842805ia', + 'AI Racer 660', + '24570 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 35, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 7, + 139, + 0, + 8, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 661, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '908598ia', + 'AI Racer 661', + '21645 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 35, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 433, + 132, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 662, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '870033ia', + 'AI Racer 662', + '4276 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 35, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 344, + 143, + 0, + 0, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 663, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '833278ia', + 'AI Racer 663', + '28616 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 35, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 0, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 664, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '462606ia', + 'AI Racer 664', + '23816 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 36, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 5, + 101, + 0, + 8, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 665, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '959217ia', + 'AI Racer 665', + '24837 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 36, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 636, + 131, + 0, + 9, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 666, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '419274ia', + 'AI Racer 666', + '5688 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 36, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 569, + 115, + 0, + 3, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 667, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '634402ia', + 'AI Racer 667', + '12319 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 36, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 355, + 140, + 0, + 6, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 668, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '263602ia', + 'AI Racer 668', + '7509 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 36, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 200, + 116, + 0, + 3, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 669, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '784129ia', + 'AI Racer 669', + '28233 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 37, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 670, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '537433ia', + 'AI Racer 670', + '1742 Fell Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 37, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 360, + 140, + 0, + 6, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 671, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '687851ia', + 'AI Racer 671', + '12358 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 37, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 6, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 672, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '782994ia', + 'AI Racer 672', + '19994 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 37, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 532, + 106, + 0, + 6, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 673, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '238242ia', + 'AI Racer 673', + '29314 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 38, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 562, + 113, + 0, + 4, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 674, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '185706ia', + 'AI Racer 674', + '17810 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 38, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 554, + 111, + 0, + 7, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 675, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '269504ia', + 'AI Racer 675', + '26177 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 38, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 6, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 676, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '945853ia', + 'AI Racer 676', + '21559 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 38, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 65, + 106, + 0, + 9, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 677, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '658907ia', + 'AI Racer 677', + '7324 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 38, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 60, + 105, + 0, + 2, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 678, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '526760ia', + 'AI Racer 678', + '24556 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 39, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 348, + 143, + 0, + 1, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 679, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '464750ia', + 'AI Racer 679', + '9027 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 39, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 193, + 116, + 0, + 8, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 680, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '627007ia', + 'AI Racer 680', + '7172 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 39, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 309, + 123, + 0, + 1, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 681, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '994199ia', + 'AI Racer 681', + '21102 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 39, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 345, + 143, + 0, + 0, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 682, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '841467ia', + 'AI Racer 682', + '467 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 40, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 282, + 122, + 0, + 0, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 683, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '42685ia', + 'AI Racer 683', + '28659 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 40, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 196, + 116, + 0, + 4, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 684, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '621816ia', + 'AI Racer 684', + '19155 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 40, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 354, + 140, + 0, + 2, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 685, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '189819ia', + 'AI Racer 685', + '27233 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 40, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 344, + 143, + 0, + 8, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 686, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '298553ia', + 'AI Racer 686', + '11934 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 40, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 348, + 143, + 0, + 1, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 687, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '587905ia', + 'AI Racer 687', + '13868 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 41, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 323, + 124, + 0, + 1, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 688, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '329753ia', + 'AI Racer 688', + '15688 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 41, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 689, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '339916ia', + 'AI Racer 689', + '17824 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 41, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 570, + 115, + 0, + 0, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 690, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '763876ia', + 'AI Racer 690', + '5538 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 41, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 9, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 691, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '130748ia', + 'AI Racer 691', + '19330 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 42, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 692, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '861413ia', + 'AI Racer 692', + '3047 Caps Creek Parkway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 42, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 517, + 102, + 0, + 5, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 693, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '940574ia', + 'AI Racer 693', + '18853 Valiant Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 42, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 345, + 143, + 0, + 0, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 694, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '95274ia', + 'AI Racer 694', + '10817 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 42, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 11, + 139, + 0, + 1, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 695, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '260194ia', + 'AI Racer 695', + '24284 Caps Creek Parkway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 42, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 3, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 696, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '349514ia', + 'AI Racer 696', + '22758 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 43, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 7, + 139, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 697, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '967634ia', + 'AI Racer 697', + '9224 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 43, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 341, + 143, + 0, + 7, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 698, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '430043ia', + 'AI Racer 698', + '24868 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 43, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 4, + 139, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 699, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '914177ia', + 'AI Racer 699', + '29211 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 43, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 2, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 700, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '863991ia', + 'AI Racer 700', + '19718 Spark Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 44, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 358, + 140, + 0, + 1, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 701, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '732600ia', + 'AI Racer 701', + '1504 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 44, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 362, + 140, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 702, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '931152ia', + 'AI Racer 702', + '9873 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 44, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 2, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 703, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '91295ia', + 'AI Racer 703', + '451 Main Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 44, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 8, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 704, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '740375ia', + 'AI Racer 704', + '11695 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 44, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 482, + 135, + 0, + 7, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 705, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '821195ia', + 'AI Racer 705', + '6662 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 45, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 241, + 120, + 0, + 0, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 706, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '803969ia', + 'AI Racer 706', + '18934 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 45, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 343, + 143, + 0, + 5, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 707, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '185183ia', + 'AI Racer 707', + '19299 Petrick Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 45, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 339, + 126, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 708, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '627887ia', + 'AI Racer 708', + '27540 Traction Turnpike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 45, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 5, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 709, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '784354ia', + 'AI Racer 709', + '11047 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 45, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 517, + 102, + 0, + 6, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 710, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '795168ia', + 'AI Racer 710', + '21469 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 46, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 3, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 711, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '32290ia', + 'AI Racer 711', + '3536 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 46, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 12, + 139, + 0, + 1, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 712, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '265341ia', + 'AI Racer 712', + '19971 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 46, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 7, + 101, + 0, + 7, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 713, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '121830ia', + 'AI Racer 713', + '1496 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 46, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 2, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 714, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '955076ia', + 'AI Racer 714', + '20285 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 47, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 154, + 113, + 0, + 0, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 715, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 9, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '836230ia', + 'AI Racer 715', + '3299 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 47, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 8, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 716, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '50290ia', + 'AI Racer 716', + '27073 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 47, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 352, + 140, + 0, + 0, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 717, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522344ia', + 'AI Racer 717', + '29459 Valiant Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 47, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 350, + 143, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 718, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '703806ia', + 'AI Racer 718', + '20601 Fell Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 47, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 512, + 139, + 0, + 6, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 719, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '307671ia', + 'AI Racer 719', + '15813 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 48, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 343, + 143, + 0, + 0, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 720, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '986269ia', + 'AI Racer 720', + '7641 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 48, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 10, + 139, + 0, + 2, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 721, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '157802ia', + 'AI Racer 721', + '3364 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 48, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 73, + 106, + 0, + 6, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 722, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '184658ia', + 'AI Racer 722', + '22794 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 48, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 615, + 143, + 0, + 2, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 723, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '390538ia', + 'AI Racer 723', + '16005 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 49, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 182, + 115, + 0, + 7, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 724, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '760587ia', + 'AI Racer 724', + '8166 Petrick Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 49, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 450, + 133, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 725, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '948166ia', + 'AI Racer 725', + '6338 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 49, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 8, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 726, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '792091ia', + 'AI Racer 726', + '8130 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 49, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 0, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 727, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '576631ia', + 'AI Racer 727', + '15503 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 49, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 350, + 143, + 0, + 3, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 728, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '841408ia', + 'AI Racer 728', + '6912 Spark Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 50, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 350, + 143, + 0, + 0, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 729, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '527174ia', + 'AI Racer 729', + '23710 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 50, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 8, + 139, + 0, + 5, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 730, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '98381ia', + 'AI Racer 730', + '12813 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 50, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 357, + 140, + 0, + 5, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 731, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '128052ia', + 'AI Racer 731', + '51 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 50, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 13, + 139, + 0, + 1, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 732, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '622648ia', + 'AI Racer 732', + '20088 Spark Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 51, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 10, + 139, + 0, + 8, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 733, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '974370ia', + 'AI Racer 733', + '20228 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 51, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 7, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 734, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522921ia', + 'AI Racer 734', + '2987 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 51, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 357, + 127, + 0, + 7, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 735, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '293030ia', + 'AI Racer 735', + '19104 Caps Creek Parkway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 51, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 4, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 736, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '145303ia', + 'AI Racer 736', + '22908 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 51, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 8, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 737, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '861163ia', + 'AI Racer 737', + '21594 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 52, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 8, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 738, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '866208ia', + 'AI Racer 738', + '9554 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 52, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 639, + 132, + 0, + 0, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 739, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '765345ia', + 'AI Racer 739', + '4901 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 52, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 9, + 139, + 0, + 2, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 740, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '760698ia', + 'AI Racer 740', + '20485 Valiant Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 52, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 366, + 128, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 741, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '276869ia', + 'AI Racer 741', + '15532 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 53, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 423, + 132, + 0, + 8, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 742, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '900508ia', + 'AI Racer 742', + '3119 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 53, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 510, + 108, + 0, + 9, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 743, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '383417ia', + 'AI Racer 743', + '20485 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 53, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 574, + 116, + 0, + 5, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 744, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '69374ia', + 'AI Racer 744', + '17754 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 53, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 352, + 140, + 0, + 4, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 745, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '580192ia', + 'AI Racer 745', + '19640 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 53, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 7, + 139, + 0, + 2, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 746, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '800015ia', + 'AI Racer 746', + '24210 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 54, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 95, + 109, + 0, + 3, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 747, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '867472ia', + 'AI Racer 747', + '6760 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 54, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 1, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 748, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '203002ia', + 'AI Racer 748', + '16685 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 54, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 320, + 124, + 0, + 2, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 749, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '1813ia', + 'AI Racer 749', + '18371 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 54, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 152, + 113, + 0, + 6, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 750, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '737647ia', + 'AI Racer 750', + '6087 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 55, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 4, + 139, + 0, + 8, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 751, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '832918ia', + 'AI Racer 751', + '23584 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 55, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 579, + 117, + 0, + 7, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 752, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '992344ia', + 'AI Racer 752', + '189 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 55, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 524, + 104, + 0, + 5, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 753, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '330147ia', + 'AI Racer 753', + '19837 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 55, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 82, + 107, + 0, + 9, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 754, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '109599ia', + 'AI Racer 754', + '16443 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 55, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 184, + 115, + 0, + 6, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 755, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '384743ia', + 'AI Racer 755', + '23283 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 56, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 5, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 756, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '227751ia', + 'AI Racer 756', + '21956 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 56, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 594, + 121, + 0, + 8, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 757, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '505229ia', + 'AI Racer 757', + '13250 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 56, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 2, + 139, + 0, + 1, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 758, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '639762ia', + 'AI Racer 758', + '18956 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 56, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 517, + 102, + 0, + 5, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 759, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '769005ia', + 'AI Racer 759', + '28099 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 56, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 508, + 108, + 0, + 3, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 760, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '312586ia', + 'AI Racer 760', + '6421 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 57, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 355, + 140, + 0, + 9, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 761, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '173115ia', + 'AI Racer 761', + '7443 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 57, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 558, + 112, + 0, + 5, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 762, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '133532ia', + 'AI Racer 762', + '12562 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 57, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 508, + 108, + 0, + 4, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 763, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '432455ia', + 'AI Racer 763', + '5036 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 57, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 361, + 140, + 0, + 0, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 764, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '813139ia', + 'AI Racer 764', + '9886 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 58, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 635, + 131, + 0, + 2, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 765, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '792775ia', + 'AI Racer 765', + '12333 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 58, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 614, + 143, + 0, + 3, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 766, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '32052ia', + 'AI Racer 766', + '8444 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 58, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 3, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 767, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '156060ia', + 'AI Racer 767', + '9577 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 58, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 15, + 102, + 0, + 6, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 768, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '207050ia', + 'AI Racer 768', + '17324 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 58, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 11, + 139, + 0, + 8, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 769, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '253908ia', + 'AI Racer 769', + '29085 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 59, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 72, + 106, + 0, + 4, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 770, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '513633ia', + 'AI Racer 770', + '3686 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 59, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 771, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '549699ia', + 'AI Racer 771', + '3358 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 59, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 615, + 143, + 0, + 5, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 772, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '733383ia', + 'AI Racer 772', + '8144 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 59, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 5, + 139, + 0, + 2, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 773, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '276713ia', + 'AI Racer 773', + '28263 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 60, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 327, + 125, + 0, + 7, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 774, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '703974ia', + 'AI Racer 774', + '12096 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 60, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 95, + 109, + 0, + 8, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 775, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '996439ia', + 'AI Racer 775', + '4926 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 60, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 2, + 139, + 0, + 4, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 776, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '838233ia', + 'AI Racer 776', + '15063 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 60, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 5, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 777, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '539036ia', + 'AI Racer 777', + '10474 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 60, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 348, + 143, + 0, + 5, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 778, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '268247ia', + 'AI Racer 778', + '29936 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 61, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 186, + 115, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 779, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '3721ia', + 'AI Racer 779', + '10277 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 61, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 360, + 127, + 0, + 1, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 780, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '958061ia', + 'AI Racer 780', + '24258 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 61, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 314, + 124, + 0, + 0, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 781, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '409616ia', + 'AI Racer 781', + '29593 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 61, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 205, + 117, + 0, + 7, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 782, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '508842ia', + 'AI Racer 782', + '6745 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 62, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 512, + 139, + 0, + 0, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 783, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '84848ia', + 'AI Racer 783', + '15885 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 62, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 357, + 140, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 784, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '455543ia', + 'AI Racer 784', + '9106 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 62, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 11, + 144, + 0, + 8, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 785, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '575983ia', + 'AI Racer 785', + '14830 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 62, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 434, + 132, + 0, + 9, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 786, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '86639ia', + 'AI Racer 786', + '7342 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 62, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 231, + 119, + 0, + 4, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 787, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '636477ia', + 'AI Racer 787', + '26110 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 63, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 284, + 122, + 0, + 4, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 788, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '82440ia', + 'AI Racer 788', + '1330 Main Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 63, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 789, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '737547ia', + 'AI Racer 789', + '25620 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 63, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 14, + 139, + 0, + 0, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 790, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '890036ia', + 'AI Racer 790', + '14554 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 63, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 341, + 143, + 0, + 1, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 791, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '351085ia', + 'AI Racer 791', + '7817 Valiant Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 64, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 317, + 124, + 0, + 4, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 792, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '97513ia', + 'AI Racer 792', + '27644 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 64, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 354, + 140, + 0, + 6, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 793, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '728067ia', + 'AI Racer 793', + '29617 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 64, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 348, + 141, + 0, + 6, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 794, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '590410ia', + 'AI Racer 794', + '19319 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 64, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 4, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 795, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '795378ia', + 'AI Racer 795', + '26999 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 64, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 512, + 139, + 0, + 7, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 796, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '987817ia', + 'AI Racer 796', + '6308 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 65, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 362, + 140, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 797, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '505709ia', + 'AI Racer 797', + '9648 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 65, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 5, + 139, + 0, + 2, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 798, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '595757ia', + 'AI Racer 798', + '10956 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 65, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 614, + 143, + 0, + 9, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 799, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '36535ia', + 'AI Racer 799', + '6543 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 65, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 1, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 800, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '567326ia', + 'AI Racer 800', + '21057 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 66, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 5, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 801, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '535811ia', + 'AI Racer 801', + '1882 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 66, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 279, + 122, + 0, + 3, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 802, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '166770ia', + 'AI Racer 802', + '22363 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 66, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 358, + 140, + 0, + 5, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 803, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '326461ia', + 'AI Racer 803', + '7848 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 66, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 7, + 139, + 0, + 4, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 804, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '279476ia', + 'AI Racer 804', + '29216 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 66, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 10, + 139, + 0, + 5, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 805, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522434ia', + 'AI Racer 805', + '20386 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 67, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 4, + 139, + 0, + 5, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 806, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '812693ia', + 'AI Racer 806', + '13354 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 67, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 10, + 101, + 0, + 9, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 807, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '661141ia', + 'AI Racer 807', + '10269 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 67, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 479, + 135, + 0, + 4, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 808, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '121827ia', + 'AI Racer 808', + '8699 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 67, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 6, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 809, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '457021ia', + 'AI Racer 809', + '16367 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 67, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 0, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 810, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '982975ia', + 'AI Racer 810', + '16866 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 68, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 9, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 811, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '5629ia', + 'AI Racer 811', + '13599 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 68, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 614, + 143, + 0, + 4, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 812, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '78989ia', + 'AI Racer 812', + '1835 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 68, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 263, + 121, + 0, + 6, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 813, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '722178ia', + 'AI Racer 813', + '23349 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 68, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 430, + 132, + 0, + 1, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 814, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '438785ia', + 'AI Racer 814', + '1116 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 69, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 9, + 139, + 0, + 0, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 815, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '519945ia', + 'AI Racer 815', + '9008 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 69, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 288, + 122, + 0, + 2, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 816, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '95791ia', + 'AI Racer 816', + '28454 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 69, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 394, + 129, + 0, + 9, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 817, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '903799ia', + 'AI Racer 817', + '26634 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 69, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 619, + 140, + 0, + 6, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 818, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '224279ia', + 'AI Racer 818', + '18972 Spark Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 69, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 6, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 819, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '761345ia', + 'AI Racer 819', + '29044 Main Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 70, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 10, + 139, + 0, + 1, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 820, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '71481ia', + 'AI Racer 820', + '25860 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 70, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 614, + 143, + 0, + 1, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 821, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '932999ia', + 'AI Racer 821', + '11041 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 70, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 1, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 822, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '400332ia', + 'AI Racer 822', + '12105 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 70, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 614, + 143, + 0, + 2, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 823, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '32896ia', + 'AI Racer 823', + '25059 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 71, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 8, + 139, + 0, + 6, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 824, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '554600ia', + 'AI Racer 824', + '20541 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 71, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 8, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 825, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '808589ia', + 'AI Racer 825', + '9554 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 71, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 343, + 143, + 0, + 6, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 826, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '807775ia', + 'AI Racer 826', + '10047 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 71, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 9, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 827, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '431654ia', + 'AI Racer 827', + '24177 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 71, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 4, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 828, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '958990ia', + 'AI Racer 828', + '29602 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 72, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 348, + 143, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 829, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '87116ia', + 'AI Racer 829', + '22124 Fell Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 72, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 541, + 108, + 0, + 5, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 830, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '877902ia', + 'AI Racer 830', + '6335 Torino Terrace', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 72, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 55, + 105, + 0, + 7, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 831, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '278368ia', + 'AI Racer 831', + '15499 Traction Turnpike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 72, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 356, + 140, + 0, + 4, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 832, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '99280ia', + 'AI Racer 832', + '20545 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 73, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 348, + 143, + 0, + 8, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 833, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '154147ia', + 'AI Racer 833', + '12069 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 73, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 344, + 143, + 0, + 3, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 834, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '829004ia', + 'AI Racer 834', + '28816 29th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 73, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 4, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 835, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '924845ia', + 'AI Racer 835', + '7986 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 73, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 620, + 140, + 0, + 6, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 836, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '339844ia', + 'AI Racer 836', + '12839 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 73, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 349, + 143, + 0, + 0, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 837, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '64718ia', + 'AI Racer 837', + '18598 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 74, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 359, + 140, + 0, + 3, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 838, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '948791ia', + 'AI Racer 838', + '17050 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 74, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 7, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 839, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '711400ia', + 'AI Racer 839', + '28013 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 74, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 6, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 840, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '518260ia', + 'AI Racer 840', + '6312 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 74, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 359, + 140, + 0, + 0, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 841, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '992545ia', + 'AI Racer 841', + '3135 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 75, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 344, + 143, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 842, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '262429ia', + 'AI Racer 842', + '15233 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 75, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 615, + 143, + 0, + 5, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 843, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '18539ia', + 'AI Racer 843', + '20524 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 75, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 361, + 140, + 0, + 7, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 844, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '761901ia', + 'AI Racer 844', + '12640 30th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 75, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 357, + 140, + 0, + 2, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 845, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '976439ia', + 'AI Racer 845', + '25788 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 75, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 81, + 107, + 0, + 1, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 846, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '493440ia', + 'AI Racer 846', + '10761 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 76, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 2, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 847, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '756885ia', + 'AI Racer 847', + '18616 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 76, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 0, + 30, + 103, + 0, + 8, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 848, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '424338ia', + 'AI Racer 848', + '3367 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 76, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 236, + 119, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 849, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '908628ia', + 'AI Racer 849', + '13245 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 76, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 619, + 140, + 0, + 1, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 850, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '484649ia', + 'AI Racer 850', + '29818 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 77, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 361, + 140, + 0, + 1, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 851, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '495244ia', + 'AI Racer 851', + '6874 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 77, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 7, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 852, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '807916ia', + 'AI Racer 852', + '221 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 77, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 13, + 139, + 0, + 3, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 853, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '640827ia', + 'AI Racer 853', + '671 Main Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 77, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 341, + 143, + 0, + 3, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 854, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '763592ia', + 'AI Racer 854', + '29024 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 77, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 1, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 855, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '306453ia', + 'AI Racer 855', + '2556 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 78, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 352, + 140, + 0, + 9, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 856, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '24697ia', + 'AI Racer 856', + '20155 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 78, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 1, + 104, + 110, + 0, + 8, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 857, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '67729ia', + 'AI Racer 857', + '24339 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 78, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 344, + 141, + 0, + 8, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 858, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '415968ia', + 'AI Racer 858', + '10111 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 78, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 5, + 139, + 0, + 5, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 859, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '352942ia', + 'AI Racer 859', + '26361 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 78, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 12, + 144, + 0, + 0, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 860, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '547377ia', + 'AI Racer 860', + '25736 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 79, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 6, + 139, + 0, + 1, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 861, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '708167ia', + 'AI Racer 861', + '4515 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 79, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 343, + 143, + 0, + 9, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 862, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '32778ia', + 'AI Racer 862', + '27682 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 79, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 358, + 140, + 0, + 7, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 863, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '132434ia', + 'AI Racer 863', + '6375 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 79, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 350, + 143, + 0, + 3, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 864, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '149694ia', + 'AI Racer 864', + '2373 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 80, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 339, + 143, + 0, + 4, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 865, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '809469ia', + 'AI Racer 865', + '17285 Valiant Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 80, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 4, + 144, + 0, + 6, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 866, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '824156ia', + 'AI Racer 866', + '2429 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 80, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 14, + 144, + 0, + 3, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 867, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '97409ia', + 'AI Racer 867', + '16404 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 80, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 358, + 140, + 0, + 6, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 868, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '91130ia', + 'AI Racer 868', + '25569 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 80, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 347, + 141, + 0, + 1, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 869, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '270021ia', + 'AI Racer 869', + '969 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 81, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 11, + 144, + 0, + 9, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 870, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '606156ia', + 'AI Racer 870', + '9751 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 81, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 345, + 141, + 0, + 4, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 871, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '514966ia', + 'AI Racer 871', + '19262 Clarendon Drive', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 81, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 350, + 143, + 0, + 1, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 872, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '943765ia', + 'AI Racer 872', + '4416 Bryant Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 81, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 353, + 140, + 0, + 0, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 873, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '433391ia', + 'AI Racer 873', + '8015 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 82, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 346, + 141, + 0, + 5, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 874, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '948495ia', + 'AI Racer 874', + '14249 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 82, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 361, + 142, + 0, + 4, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 875, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '961290ia', + 'AI Racer 875', + '26743 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 82, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 351, + 141, + 0, + 3, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 876, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '743898ia', + 'AI Racer 876', + '20642 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 82, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 357, + 140, + 0, + 9, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 877, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '942426ia', + 'AI Racer 877', + '19663 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 82, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 348, + 141, + 0, + 0, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 878, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '117626ia', + 'AI Racer 878', + '3563 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 83, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 340, + 141, + 0, + 4, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 879, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '467750ia', + 'AI Racer 879', + '7844 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 83, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 10, + 144, + 0, + 0, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 880, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '701850ia', + 'AI Racer 880', + '22593 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 83, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 620, + 140, + 0, + 6, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 881, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '338912ia', + 'AI Racer 881', + '27742 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 83, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 4, + 144, + 0, + 7, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 882, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '13519ia', + 'AI Racer 882', + '1000 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 84, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 512, + 144, + 0, + 8, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 883, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '180014ia', + 'AI Racer 883', + '19102 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 84, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 615, + 141, + 0, + 5, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 884, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '662568ia', + 'AI Racer 884', + '15827 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 84, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 5, + 139, + 0, + 3, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 885, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '250041ia', + 'AI Racer 885', + '24909 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 84, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 345, + 143, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 886, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '428335ia', + 'AI Racer 886', + '16845 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 84, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 358, + 140, + 0, + 2, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 887, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '537232ia', + 'AI Racer 887', + '11537 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 85, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 8, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 888, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '934722ia', + 'AI Racer 888', + '26521 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 85, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 357, + 142, + 0, + 9, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 889, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '662887ia', + 'AI Racer 889', + '26372 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 85, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 9, + 139, + 0, + 8, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 890, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '622607ia', + 'AI Racer 890', + '9796 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 85, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 362, + 142, + 0, + 5, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 891, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '273895ia', + 'AI Racer 891', + '2849 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 86, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 351, + 141, + 0, + 1, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 892, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '610599ia', + 'AI Racer 892', + '16473 Dodge Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 86, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 358, + 140, + 0, + 8, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 893, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '41220ia', + 'AI Racer 893', + '19269 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 86, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 614, + 141, + 0, + 9, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 894, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '259228ia', + 'AI Racer 894', + '19052 Wheel Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 86, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 2, + 139, + 0, + 3, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 895, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '907181ia', + 'AI Racer 895', + '21818 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 86, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 341, + 141, + 0, + 0, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 896, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '785705ia', + 'AI Racer 896', + '23893 Caps Creek Parkway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 87, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 355, + 142, + 0, + 0, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 897, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '798940ia', + 'AI Racer 897', + '15330 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 87, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 1, + 139, + 0, + 3, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 898, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '386702ia', + 'AI Racer 898', + '1911 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 87, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 0, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 899, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '654050ia', + 'AI Racer 899', + '7932 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 87, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 353, + 142, + 0, + 1, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 900, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '983366ia', + 'AI Racer 900', + '28757 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 88, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 12, + 144, + 0, + 5, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 901, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '529744ia', + 'AI Racer 901', + '27648 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 88, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 11, + 144, + 0, + 4, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 902, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '30378ia', + 'AI Racer 902', + '13355 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 88, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 13, + 139, + 0, + 6, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 903, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '237562ia', + 'AI Racer 903', + '10939 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 88, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 359, + 142, + 0, + 3, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 904, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '551698ia', + 'AI Racer 904', + '28388 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 88, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 1, + 144, + 0, + 4, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 905, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '438821ia', + 'AI Racer 905', + '536 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 89, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 352, + 140, + 0, + 8, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 906, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '531285ia', + 'AI Racer 906', + '17 29th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 89, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 7, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 907, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '89389ia', + 'AI Racer 907', + '23974 Petrick Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 89, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 615, + 141, + 0, + 1, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 908, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '749209ia', + 'AI Racer 908', + '2726 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 89, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 342, + 141, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 909, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '285470ia', + 'AI Racer 909', + '434 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 89, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 351, + 141, + 0, + 3, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 910, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '358472ia', + 'AI Racer 910', + '3291 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 90, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 356, + 142, + 0, + 1, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 911, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '225079ia', + 'AI Racer 911', + '11876 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 90, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 6, + 139, + 0, + 5, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 912, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '12336ia', + 'AI Racer 912', + '939 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 90, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 7, + 144, + 0, + 8, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 913, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522762ia', + 'AI Racer 913', + '22868 Cordoba Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 90, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 341, + 141, + 0, + 5, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 914, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '832581ia', + 'AI Racer 914', + '20031 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 91, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 342, + 141, + 0, + 4, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 915, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '944307ia', + 'AI Racer 915', + '29092 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 91, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 343, + 143, + 0, + 3, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 916, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '212235ia', + 'AI Racer 916', + '3472 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 91, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 2, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 917, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '272500ia', + 'AI Racer 917', + '26018 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 91, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 345, + 143, + 0, + 5, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 918, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '996008ia', + 'AI Racer 918', + '22415 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 91, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 7, + 139, + 0, + 0, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 919, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '912168ia', + 'AI Racer 919', + '9713 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 92, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 615, + 141, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 920, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '254922ia', + 'AI Racer 920', + '27273 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 92, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 354, + 140, + 0, + 0, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 921, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '168441ia', + 'AI Racer 921', + '12348 Taney Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 92, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 351, + 143, + 0, + 8, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 922, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '490139ia', + 'AI Racer 922', + '19144 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 92, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 512, + 139, + 0, + 7, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 923, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '26344ia', + 'AI Racer 923', + '22036 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 93, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 346, + 143, + 0, + 3, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 924, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '112972ia', + 'AI Racer 924', + '20662 Tinted Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 93, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 352, + 142, + 0, + 7, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 925, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '886631ia', + 'AI Racer 925', + '967 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 93, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 346, + 141, + 0, + 2, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 926, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '512520ia', + 'AI Racer 926', + '24149 Head Row', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 93, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 347, + 141, + 0, + 2, + -5142950, + -730292, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 927, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '527479ia', + 'AI Racer 927', + '7612 Caps Creek Parkway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 93, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 347, + 141, + 0, + 7, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 928, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '514602ia', + 'AI Racer 928', + '1483 Spark Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 94, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 344, + 141, + 0, + 4, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 929, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '940771ia', + 'AI Racer 929', + '16113 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 94, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 620, + 140, + 0, + 4, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 930, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '404632ia', + 'AI Racer 930', + '16954 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 94, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 6, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 931, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '661587ia', + 'AI Racer 931', + '6982 28th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 94, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 339, + 141, + 0, + 6, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 932, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '227937ia', + 'AI Racer 932', + '22767 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 95, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 6, + 139, + 0, + 8, + -5142950, + -11452131, + NULL, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 933, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '243202ia', + 'AI Racer 933', + '17261 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 95, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 343, + 141, + 0, + 8, + -12635, + -16777216, + -15132652, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 934, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '630145ia', + 'AI Racer 934', + '6278 29th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 95, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 12, + 144, + 0, + 0, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 935, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '547634ia', + 'AI Racer 935', + '24808 Detroit Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 95, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 2, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 936, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '852078ia', + 'AI Racer 936', + '18193 Hardtop Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 95, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 2, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 937, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '631546ia', + 'AI Racer 937', + '29481 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 96, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 359, + 142, + 0, + 3, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 938, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '192011ia', + 'AI Racer 938', + '22149 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 96, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 361, + 140, + 0, + 3, + -11255506, + -16777216, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 939, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '939998ia', + 'AI Racer 939', + '8083 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 96, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 343, + 141, + 0, + 1, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 940, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '522113ia', + 'AI Racer 940', + '23246 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 96, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 358, + 142, + 0, + 0, + -12635, + -1, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 941, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '327561ia', + 'AI Racer 941', + '10944 39th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 97, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 353, + 140, + 0, + 9, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 942, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '931153ia', + 'AI Racer 942', + '3147 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 97, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 9, + 139, + 0, + 9, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 943, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '666099ia', + 'AI Racer 943', + '14570 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 97, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 349, + 141, + 0, + 6, + -12635, + -7592437, + -9540505, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 944, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '816773ia', + 'AI Racer 944', + '29980 36th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 97, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 342, + 143, + 0, + 9, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 945, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '825685ia', + 'AI Racer 945', + '7193 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 97, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 340, + 143, + 0, + 6, + -11255506, + NULL, + -10240, + -12343227, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 946, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '595351ia', + 'AI Racer 946', + '27056 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 98, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 347, + 143, + 0, + 4, + -12635, + -9034914, + -11516638, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 947, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '293524ia', + 'AI Racer 947', + '29505 Firebird Freeway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 98, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 2, + 354, + 140, + 0, + 2, + -12635, + -11452131, + -12343227, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 948, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 0, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '235490ia', + 'AI Racer 948', + '15010 Traction Turnpike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 98, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 3, + 341, + 143, + 0, + 6, + -5142950, + -16777216, + -65536, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 949, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 2, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '925539ia', + 'AI Racer 949', + '16823 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 98, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 358, + 142, + 0, + 7, + -12635, + -8756175, + -11516638, + -12365400, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 950, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '239317ia', + 'AI Racer 950', + '29487 31st Street', + 'Bonneville', + NULL, + NULL, + 2, + NULL, + 99, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 8, + 101, + 0, + 0, + -11255506, + -16777216, + -15132652, + -15132652, + 2, + 2, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 951, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '895768ia', + 'AI Racer 951', + '20259 27th Street', + 'Bonneville', + NULL, + NULL, + 2, + NULL, + 99, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 8, + 101, + 0, + 0, + -11255506, + -16777216, + -15132652, + -15132652, + 2, + 2, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 952, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '38819ia', + 'AI Racer 952', + '27071 37th Street', + 'Bonneville', + NULL, + NULL, + 2, + NULL, + 99, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 8, + 101, + 0, + 0, + -11255506, + -16777216, + -15132652, + -15132652, + 2, + 2, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 953, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '246897ia', + 'AI Racer 953', + '2742 Torino Terrace', + 'Bonneville', + NULL, + NULL, + 2, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 4, + 8, + 101, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + 2, + 2, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 954, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '490161ia', + 'AI Racer 954', + '14555 Fallon Place ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 955, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '479340ia', + 'AI Racer 955', + '25016 Sway Bar Lane', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 956, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '291643ia', + 'AI Racer 956', + '16108 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 957, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '141218ia', + 'AI Racer 957', + '24592 Meadowbrook Lane ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 958, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '971050ia', + 'AI Racer 958', + '21071 35th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 959, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '817138ia', + 'AI Racer 959', + '4925 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 960, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '710229ia', + 'AI Racer 960', + '3430 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 961, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '447558ia', + 'AI Racer 961', + '28907 38th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 962, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '999858ia', + 'AI Racer 962', + '7136 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 963, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '983205ia', + 'AI Racer 963', + '27822 Windsor Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 964, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '359720ia', + 'AI Racer 964', + '11213 27th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 965, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '617051ia', + 'AI Racer 965', + '5990 31st Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 966, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '586700ia', + 'AI Racer 966', + '4772 29th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 967, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '553491ia', + 'AI Racer 967', + '10294 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 968, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '971374ia', + 'AI Racer 968', + '3394 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 969, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '358930ia', + 'AI Racer 969', + '25161 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 970, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '604680ia', + 'AI Racer 970', + '6811 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 971, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '928315ia', + 'AI Racer 971', + '12530 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 972, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '965047ia', + 'AI Racer 972', + '20034 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 973, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '727958ia', + 'AI Racer 973', + '12519 33rd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 974, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '435500ia', + 'AI Racer 974', + '4515 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 975, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '107448ia', + 'AI Racer 975', + '13837 Motor City Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 976, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 3, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '48324ia', + 'AI Racer 976', + '16175 29th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + 99, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + 5, + 350, + 141, + 0, + 2, + -11255506, + -16777216, + -9034914, + -15132652, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 977, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '907044ia', + 'AI Racer 977', + '6380 Traction Turnpike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 978, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '833557ia', + 'AI Racer 978', + '10257 Eddy Street ', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 979, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '72366ia', + 'AI Racer 979', + '19588 Pantellas Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 980, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '934074ia', + 'AI Racer 980', + '20486 32nd Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 981, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '517416ia', + 'AI Racer 981', + '2785 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 982, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '148619ia', + 'AI Racer 982', + '22190 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 983, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '903244ia', + 'AI Racer 983', + '15285 37th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 984, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '138467ia', + 'AI Racer 984', + '5362 Buick Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 985, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '377542ia', + 'AI Racer 985', + '25582 Petrick Pike', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 986, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '966027ia', + 'AI Racer 986', + '23919 Headlight Place', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 987, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '629706ia', + 'AI Racer 987', + '20337 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 988, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '801526ia', + 'AI Racer 988', + '26597 26th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 989, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '777649ia', + 'AI Racer 989', + '6914 Van Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 990, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '57497ia', + 'AI Racer 990', + '360 Newport Way', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 991, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '338283ia', + 'AI Racer 991', + '27152 Edmunds Alley', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 992, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '645275ia', + 'AI Racer 992', + '3176 34th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 993, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '97168ia', + 'AI Racer 993', + '1684 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 994, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '228536ia', + 'AI Racer 994', + '9362 Chevrolet Highway', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 995, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '35273ia', + 'AI Racer 995', + '2521 Main Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 996, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '1761ia', + 'AI Racer 996', + '26956 40th Street', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 997, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '516805ia', + 'AI Racer 997', + '16713 Beaudoin Boulevard', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 998, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '563146ia', + 'AI Racer 998', + '7879 Convertible Court', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ), + ( + 999, + 0, + 1, + 250000, + 250000, + '1900-01-01 00:00:00.000000', + 0, + 250000, + 0, + 0, + 1, + 1, + 'AI Racer', + '00', + '01', + '02', + '03', + '04', + '05', + '52069ia', + 'AI Racer 999', + '29929 Saratoga Avenue', + 'Bonneville', + NULL, + NULL, + NULL, + NULL, + NULL, + 250000, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 0, + 0, + NULL, + NULL, + NULL, + 0, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + ); \ No newline at end of file diff --git a/migrations/0026-createSVACarClass.sql b/migrations/0026-createSVACarClass.sql new file mode 100644 index 000000000..7f46b9d6d --- /dev/null +++ b/migrations/0026-createSVACarClass.sql @@ -0,0 +1,8 @@ +CREATE TABLE + sva_car_class ( + sva_car_class INTEGER DEFAULT 0 NOT NULL, + description VARCHAR(50), + CONSTRAINT sys_pk_12175 PRIMARY KEY (sva_car_class) + ); + +CREATE UNIQUE INDEX sys_idx_sys_pk_12175_12176 ON sva_car_class (sva_car_class); \ No newline at end of file diff --git a/migrations/0027-createSVAModeRestriction.sql b/migrations/0027-createSVAModeRestriction.sql new file mode 100644 index 000000000..50679c23e --- /dev/null +++ b/migrations/0027-createSVAModeRestriction.sql @@ -0,0 +1,8 @@ +CREATE TABLE + sva_mode_restriction ( + sva_mode_restriction INTEGER DEFAULT 0 NOT NULL, + description VARCHAR(100), + CONSTRAINT sys_pk_12180 PRIMARY KEY (sva_mode_restriction) + ); + +CREATE UNIQUE INDEX sys_idx_sys_pk_12180_12181 ON sva_mode_restriction (sva_mode_restriction); \ No newline at end of file diff --git a/migrations/0028-createStockVehicleAtrributes.sql b/migrations/0028-createStockVehicleAtrributes.sql new file mode 100644 index 000000000..32d7fdeb1 --- /dev/null +++ b/migrations/0028-createStockVehicleAtrributes.sql @@ -0,0 +1,31 @@ +CREATE TABLE IF NOT EXISTS + stock_vehicle_attributes ( + branded_part_id INTEGER NOT NULL, + car_class INTEGER, + ai_restriction_class INTEGER, + mode_restriction INTEGER, + sponsor INTEGER, + vin_branded_part_id INTEGER, + track_id INTEGER DEFAULT 0, + vin_crc INTEGER DEFAULT 0 NOT NULL, + retail_price INTEGER DEFAULT 1000, + CONSTRAINT sys_pk_12168 PRIMARY KEY (branded_part_id), + CONSTRAINT stock_vehicle_attributes_brandedpart_stockvehicleattributes FOREIGN KEY (branded_part_id) REFERENCES branded_part (branded_part_id) ON DELETE CASCADE, + CONSTRAINT stock_vehicle_attributes_brandedpart_stockvehicleattributes1 FOREIGN KEY (vin_branded_part_id) REFERENCES branded_part (branded_part_id), + CONSTRAINT stock_vehicle_attributes_sva_carclass_stockvehicleattributes FOREIGN KEY (car_class) REFERENCES sva_car_class (sva_car_class), + CONSTRAINT stock_vehicle_attributes_sva_moderestriction_stockvehicleattributes FOREIGN KEY (mode_restriction) REFERENCES sva_mode_restriction (sva_mode_restriction) ON DELETE CASCADE ON UPDATE CASCADE + ); + +CREATE INDEX IF NOT EXISTS stock_vehicle_attributes_coptrackid ON stock_vehicle_attributes (track_id); + +CREATE INDEX IF NOT EXISTS sys_idx_stock_vehicle_attributes_brandedpart_stockvehicleattribs1_12795 ON stock_vehicle_attributes (vin_branded_part_id); + +CREATE INDEX IF NOT EXISTS sys_idx_stock_vehicle_attributes_brandedpart_stockvehicleattribs_12786 ON stock_vehicle_attributes (branded_part_id); + +CREATE UNIQUE INDEX IF NOT EXISTS sys_idx_stock_vehicle_attributes_parentbrandedpartid_12162 ON stock_vehicle_attributes (branded_part_id); + +CREATE INDEX IF NOT EXISTS sys_idx_stock_vehicle_attributes_sva_carclass_stockvehicleattributes_12804 ON stock_vehicle_attributes (car_class); + +CREATE INDEX IF NOT EXISTS sys_idx_stock_vehicle_attributes_sva_moderestriction_stockvehicleattributes_12813 ON stock_vehicle_attributes (mode_restriction); + +CREATE UNIQUE INDEX IF NOT EXISTS sys_idx_sys_pk_12168_12169 ON stock_vehicle_attributes (branded_part_id); \ No newline at end of file diff --git a/migrations/0029-seedSVACarClass.sql b/migrations/0029-seedSVACarClass.sql new file mode 100644 index 000000000..0593d66b2 --- /dev/null +++ b/migrations/0029-seedSVACarClass.sql @@ -0,0 +1,7 @@ +INSERT INTO + sva_car_class (sva_car_class, "description") +VALUES + (0, 'Null'), + (1, 'Fat Fender'), + (2, 'Shoebox'), + (3, 'Muscle'); \ No newline at end of file diff --git a/migrations/0030-seedSVAModeRestriction.sql b/migrations/0030-seedSVAModeRestriction.sql new file mode 100644 index 000000000..3c79110d3 --- /dev/null +++ b/migrations/0030-seedSVAModeRestriction.sql @@ -0,0 +1,9 @@ +INSERT INTO + sva_mode_restriction (sva_mode_restriction, "description") +VALUES + (0, 'All Modes'), + (1, 'Motor City'), + (2, 'Debug'), + (3, 'Traffic'), + (4, 'Cop'), + (5, 'Arcade'); \ No newline at end of file diff --git a/migrations/0031-seedStockVehicleAttributes.sql b/migrations/0031-seedStockVehicleAttributes.sql new file mode 100644 index 000000000..827a31059 --- /dev/null +++ b/migrations/0031-seedStockVehicleAttributes.sql @@ -0,0 +1,158 @@ +INSERT INTO + stock_vehicle_attributes ( + branded_part_id, + car_class, + ai_restriction_class, + mode_restriction, + sponsor, + vin_branded_part_id, + track_id, + vin_crc, + retail_price + ) +VALUES + (101, 1, 0, 0, NULL, 101, 0, 1021354189, 7610), + (102, 1, 0, 0, NULL, 102, 0, -1730149944, 11562), + (103, 2, 0, 0, 1, 103, 0, -1175172867, 13144), + (104, 2, 1, 0, 2, 104, 0, -1916621234, 18162), + (105, 2, 0, 0, NULL, 105, 0, 454523797, 18616), + (106, 2, 0, 0, NULL, 106, 0, -851716885, 17964), + (107, 3, 0, 0, 3, 107, 0, -1748379974, 27658), + (108, 3, 0, 0, NULL, 108, 0, 1470602472, 28976), + (109, 3, 0, 0, 3, 109, 0, -1951593844, 20844), + (110, 3, 0, 0, 4, 110, 0, 616652853, 22386), + (111, 3, 0, 0, NULL, 111, 0, 290542722, 54910), + (112, 1, 1, 0, 1, 112, 0, 1363239003, 13674), + (113, 2, 2, 0, 2, 113, 0, -1210440381, 20214), + (114, 2, 0, 0, NULL, 114, 0, -947329386, 46982), + (115, 2, 2, 0, NULL, 115, 0, 362914015, 19456), + (116, 3, 0, 0, 3, 116, 0, -57467043, 31920), + (117, 3, 0, 0, NULL, 117, 0, 240098383, 106456), + (118, 2, 0, 0, NULL, 118, 0, -728377105, 21780), + (119, 3, 0, 0, NULL, 119, 0, -76507965, 29062), + (120, 3, 0, 0, NULL, 120, 0, -400099549, 39098), + (121, 3, 0, 0, 4, 121, 0, 185089250, 31346), + (122, 3, 0, 0, NULL, 122, 0, -639251059, 35486), + (123, 3, 0, 0, NULL, 123, 0, -1190729049, 34530), + (124, 1, 2, 0, 1, 124, 0, 1322255805, 20734), + (125, 2, 0, 0, NULL, 125, 0, 616095431, 22180), + (126, 3, 0, 0, 4, 126, 0, 296347663, 31036), + (127, 2, 0, 0, 2, 127, 0, 2120724018, 15940), + (128, 3, 0, 0, NULL, 128, 0, 281859969, 40806), + (129, 3, 0, 0, NULL, 129, 0, 1756655401, 35880), + (130, 3, 0, 0, NULL, 130, 0, 1478345654, 55586), + (131, 3, 0, 0, NULL, 131, 0, 290406200, 34666), + (132, 3, 0, 0, NULL, 132, 0, 1108479146, 27940), + (133, 3, 0, 0, NULL, 133, 0, 103959562, 31470), + (134, 3, 0, 0, NULL, 134, 0, -1401275087, 51874), + (135, 3, 0, 0, NULL, 135, 0, 1279692657, 24612), + (153, 3, 0, 3, 0, NULL, 0, -1733711197, 13124), + (159, 2, 0, 0, NULL, 104, 0, 71127960, 16216), + (171, 3, 0, 0, NULL, 108, 0, 95938317, 75870), + (173, 3, 0, 3, 0, NULL, 0, 821917378, 15442), + (174, 3, 0, 3, 0, NULL, 0, -1114011574, 17448), + (175, 3, 0, 3, 0, NULL, 0, 127614921, 30986), + (176, 3, 0, 3, 0, NULL, 0, 5490897, 20842), + (177, 3, 0, 3, 0, NULL, 0, -260987179, 44366), + (178, 3, 0, 3, 0, NULL, 0, 1169708297, 40912), + (179, 3, 0, 3, 0, NULL, 0, -997698018, 15442), + (184, 3, 0, 0, NULL, 133, 0, -2100426307, 36732), + (190, 3, 0, 0, NULL, 131, 0, 702282812, 41738), + (208, 2, 0, 0, NULL, 127, 0, -1933058019, 15958), + (236, 2, 1, 0, NULL, 113, 0, -132507054, 20086), + (320, 3, 0, 0, 0, 320, 0, -1930998368, 103848), + (335, 3, 0, 0, 0, 335, 0, -1417679893, 27676), + (336, 3, 0, 0, 0, 336, 0, -1457759091, 36426), + (337, 3, 0, 0, 0, 337, 0, -1471211264, 35306), + (338, 3, 0, 0, 0, 338, 0, 1151680185, 79086), + (339, 3, 0, 0, 0, 339, 0, -405643342, 50570), + (340, 3, 0, 0, 0, 340, 0, -1392644837, 49912), + (341, 3, 0, 0, 0, 341, 0, -899383748, 27844), + (342, 3, 0, 0, 0, 342, 0, -1841308194, 27998), + (343, 3, 0, 0, 0, 343, 0, 1354809895, 28504), + (344, 3, 0, 0, 0, 344, 0, 361663498, 35546), + (345, 3, 0, 0, 0, 345, 0, 1024304803, 45646), + (346, 3, 0, 0, 0, 346, 0, 739147792, 36390), + (347, 3, 0, 0, 0, 347, 0, 363654567, 29172), + (348, 3, 0, 0, 0, 348, 0, 1172991200, 33008), + (349, 3, 0, 0, 0, 349, 0, 535823263, 34620), + (350, 3, 0, 0, 0, 350, 0, -253450591, 46938), + (351, 3, 0, 0, 0, 351, 0, 1522514137, 35372), + (352, 3, 0, 0, 0, 352, 0, 960207390, 54196), + (353, 3, 0, 0, 0, 353, 0, 1367260066, 50390), + (354, 1, 0, 0, 0, 354, 0, 1298694592, 20554), + (355, 1, 0, 0, 0, 355, 0, 343020322, 17152), + (356, 2, 1, 0, 0, 356, 0, -493509567, 10246), + (357, 2, 0, 0, 0, 357, 0, -1091297472, 14696), + (358, 2, 0, 0, 0, 358, 0, -1850950053, 15560), + (359, 2, 0, 0, 0, 359, 0, 1251900878, 16656), + (360, 2, 0, 0, 0, 360, 0, -2008884082, 18208), + (361, 2, 0, 0, 0, 361, 0, 89250179, 16560), + (362, 3, 0, 0, 0, 362, 0, 282526109, 46076), + (363, 3, 0, 0, 0, 363, 0, -40698369, 21280), + (364, 3, 0, 0, 0, 364, 0, 1864120653, 102566), + (365, 3, 0, 0, 0, 365, 0, -489646267, 28474), + (366, 3, 0, 0, 0, 366, 0, -1287635300, 20522), + (367, 3, 0, 0, 0, 367, 0, -630364099, 28084), + (368, 3, 0, 0, 0, 368, 0, -448515064, 40204), + (369, 3, 0, 0, 0, 369, 0, 1169942692, 29370), + (370, 3, 0, 0, 0, 370, 0, 1472055501, 37674), + (371, 3, 0, 0, 0, 371, 0, -742484274, 32080), + (372, 3, 0, 0, 0, 372, 0, 1250189820, 35112), + (373, 3, 0, 0, 0, 373, 0, 219790868, 30660), + (374, 3, 0, 0, NULL, 120, 0, -900399956, 34938), + (375, 3, 0, 5, 0, 375, 0, 336373640, 21800), + (377, 2, 0, 5, 0, 377, 0, 1812020664, 24426), + (378, 2, 0, 5, 0, 378, 0, -1499897175, 23652), + (379, 2, 2, 5, 0, 379, 0, 1800916956, 20796), + (383, 3, 0, 5, 0, 383, 0, 690278510, 31444), + (384, 3, 0, 5, 0, 384, 0, 778235356, 41062), + (385, 2, 0, 5, 0, 385, 0, -933770060, 20552), + (386, 2, 0, 5, 0, 386, 0, -1538070422, 28076), + (387, 3, 0, 5, 0, 387, 0, -606946665, 37542), + (388, 3, 0, 5, 0, 388, 0, -452681372, 28338), + (389, 3, 0, 5, 0, 389, 0, -911118315, 34188), + (390, 2, 0, 5, 0, 390, 0, 1824323067, 26356), + (391, 2, 0, 5, 0, 391, 0, 349594734, 21320), + (392, 3, 0, 5, 0, 392, 0, -2017423296, 39308), + (393, 2, 0, 5, 0, 393, 0, 2076432346, 26382), + (394, 3, 0, 5, 0, 394, 0, -958728569, 44848), + (395, 1, 0, 2, 0, 395, 0, 2082574938, 73518), + (396, 2, 0, 2, 0, 396, 0, 664232324, 83374), + (397, 3, 0, 2, 0, 397, 0, 1823304277, 116878), + (398, 2, 0, 2, 0, 398, 0, 1595575092, 70364), + (399, 3, 7, 2, 0, 399, 0, 649508892, 174752), + (400, 3, 0, 2, 0, 400, 0, -1419219140, 104696), + (401, 3, 0, 2, 0, 401, 0, -2072889218, 115802), + (405, 3, 0, 0, 0, 405, 0, 0, 1000), + (411, 3, 0, 0, 0, 411, 0, 0, 1000), + (412, 3, 0, 0, 0, 412, 0, 0, 1000), + (413, 3, 0, 0, 0, 413, 0, 0, 1000), + (414, 0, 0, 0, 0, 414, 0, 0, 1000), + (415, 3, 1, 0, 0, 415, 0, 0, 1000), + (416, 3, 4, 0, 0, 416, 0, 0, 1000), + (417, 3, 4, 0, 0, 417, 0, 0, 1000), + (418, 0, 5, 0, 0, 418, 0, 0, 1000), + (419, 1, 5, 0, 0, 419, 0, 0, 1000), + (420, 1, 1, 0, 0, 420, 0, 0, 1000), + (421, 2, 3, 0, 0, 421, 0, 0, 1000), + (422, 1, 4, 0, 0, 422, 0, 0, 1000), + (423, 1, 3, 0, 0, 423, 0, 0, 1000), + (424, 3, 4, 0, 0, 424, 0, 0, 1000), + (425, 3, 5, 0, 0, 425, 0, 0, 1000), + (426, 3, 5, 0, 0, 426, 0, 0, 1000), + (427, 1, 2, 0, 0, 427, 0, 0, 1000), + (428, 3, 3, 0, 0, 428, 0, 0, 1000), + (429, 0, 3, 0, 0, 429, 0, 0, 1000), + (430, 0, 3, 0, 0, 430, 0, 0, 1000), + (431, 3, 6, 0, 0, 431, 0, 0, 1000), + (432, 0, 0, 0, 0, 432, 0, 0, 1000), + (433, 0, 0, 0, 0, 433, 0, 0, 1000), + (434, 0, 0, 0, 0, 434, 0, 0, 1000), + (435, 0, 0, 0, 0, 435, 0, 0, 1000), + (436, 0, 0, 0, 0, 436, 0, 0, 1000), + (437, 0, 0, 0, 0, 437, 0, 0, 1000), + (438, 0, 0, 0, 0, 438, 0, 0, 1000), + (439, 3, 3, 0, 0, 439, 0, 0, 1000), + (440, 0, 0, 0, 0, 440, 0, 0, 1000), + (441, 3, 0, 0, 0, 441, 0, 0, 1000); \ No newline at end of file diff --git a/migrations/0032-createStockAssembly.sql b/migrations/0032-createStockAssembly.sql new file mode 100644 index 000000000..60bd78a74 --- /dev/null +++ b/migrations/0032-createStockAssembly.sql @@ -0,0 +1,28 @@ +CREATE TABLE + stock_assembly ( + parent_branded_part_id INTEGER NOT NULL, + child_branded_part_id INTEGER NOT NULL, + attachment_point_id INTEGER NOT NULL, + config_default SMALLINT NOT NULL, + physics_default SMALLINT NOT NULL, + CONSTRAINT sys_pk_12146 PRIMARY KEY ( + parent_branded_part_id, + child_branded_part_id, + attachment_point_id + ), + CONSTRAINT stockassembly_attachmentpointstockassembly FOREIGN KEY (attachment_point_id) REFERENCES attachment_point (attachment_point_id), + CONSTRAINT stockassembly_brandedpartstockassembly FOREIGN KEY (child_branded_part_id) REFERENCES branded_part (branded_part_id), + CONSTRAINT stockassembly_brandedpartstockassembly1 FOREIGN KEY (parent_branded_part_id) REFERENCES branded_part (branded_part_id) + ); + +CREATE INDEX sys_idx_stockassembly_attachmentpointstockassembly_12750 ON stock_assembly (attachment_point_id); + +CREATE INDEX sys_idx_stockassembly_brandedpartstockassembly1_12774 ON stock_assembly (parent_branded_part_id); + +CREATE INDEX sys_idx_stockassembly_brandedpartstockassembly_12762 ON stock_assembly (child_branded_part_id); + +CREATE UNIQUE INDEX sys_idx_sys_pk_12146_12147 ON stock_assembly ( + parent_branded_part_id, + child_branded_part_id, + attachment_point_id +); \ No newline at end of file diff --git a/migrations/0033-seedStockAssembly.sql b/migrations/0033-seedStockAssembly.sql new file mode 100644 index 000000000..0facaf0a1 --- /dev/null +++ b/migrations/0033-seedStockAssembly.sql @@ -0,0 +1,9303 @@ +INSERT INTO + stock_assembly ( + parent_branded_part_id, + child_branded_part_id, + attachment_point_id, + config_default, + physics_default + ) +VALUES + (101, 1001, 0, 0, 0), + (101, 2001, 0, 1, 1), + (101, 4001, 0, 0, 0), + (101, 5001, 0, 0, 0), + (101, 6001, 0, 0, 0), + (101, 10009, 11, 0, 0), + (101, 10010, 10, 0, 0), + (101, 11004, 10, 0, 0), + (101, 11004, 11, 0, 0), + (101, 12002, 11, 0, 0), + (101, 12004, 10, 0, 0), + (101, 15001, 0, 0, 0), + (101, 20101, 0, 0, 0), + (101, 22016, 0, 0, 0), + (101, 23003, 0, 0, 0), + (101, 31153, 0, 0, 0), + (101, 34001, 10, 0, 0), + (101, 34002, 11, 0, 0), + (101, 35001, 10, 0, 0), + (101, 35001, 11, 0, 0), + (101, 36001, 0, 0, 0), + (101, 37001, 0, 0, 0), + (101, 40002, 0, 0, 0), + (101, 100002, 10, 0, 0), + (101, 100002, 11, 0, 0), + (101, 110001, 10, 1, 1), + (101, 110001, 11, 1, 1), + (101, 130012, 0, 0, 0), + (101, 140023, 0, 0, 0), + (101, 160021, 0, 0, 0), + (101, 180019, 0, 0, 0), + (101, 190021, 0, 0, 0), + (101, 200019, 0, 0, 0), + (101, 230002, 0, 0, 0), + (101, 240003, 0, 0, 0), + (101, 250020, 0, 0, 0), + (101, 280019, 0, 0, 0), + (101, 290001, 0, 0, 0), + (101, 300001, 0, 0, 0), + (101, 320023, 0, 0, 0), + (101, 330016, 0, 0, 0), + (101, 340001, 0, 0, 0), + (101, 1000002, 0, 0, 0), + (101, 1100016, 0, 0, 0), + (101, 1200018, 0, 0, 0), + (102, 1001, 0, 1, 1), + (102, 2001, 0, 1, 1), + (102, 4001, 0, 1, 0), + (102, 5001, 0, 0, 0), + (102, 6001, 0, 0, 0), + (102, 10009, 11, 0, 0), + (102, 10010, 10, 0, 0), + (102, 11004, 10, 0, 0), + (102, 11004, 11, 0, 0), + (102, 12003, 11, 0, 0), + (102, 12005, 10, 0, 0), + (102, 15001, 0, 0, 0), + (102, 20102, 0, 0, 0), + (102, 22016, 0, 0, 0), + (102, 23009, 0, 0, 0), + (102, 31153, 0, 0, 0), + (102, 35002, 10, 0, 0), + (102, 35002, 11, 0, 0), + (102, 36001, 0, 0, 0), + (102, 37001, 0, 0, 0), + (102, 40003, 0, 0, 0), + (102, 100002, 10, 0, 0), + (102, 100002, 11, 0, 0), + (102, 110018, 10, 1, 1), + (102, 110018, 11, 1, 1), + (102, 130012, 0, 0, 0), + (102, 140025, 0, 0, 0), + (102, 160021, 0, 0, 0), + (102, 180019, 0, 0, 0), + (102, 190021, 0, 0, 0), + (102, 200019, 0, 0, 0), + (102, 230002, 0, 0, 0), + (102, 240003, 0, 0, 0), + (102, 250020, 0, 0, 0), + (102, 280019, 0, 0, 0), + (102, 290001, 0, 0, 0), + (102, 300001, 0, 0, 0), + (102, 320023, 0, 0, 0), + (102, 330006, 0, 0, 0), + (102, 340001, 0, 0, 0), + (102, 1000002, 0, 0, 0), + (102, 1100016, 0, 0, 0), + (102, 1200018, 0, 0, 0), + (103, 1001, 0, 1, 1), + (103, 2001, 0, 1, 1), + (103, 4001, 0, 9, 0), + (103, 5001, 0, 0, 0), + (103, 6001, 0, 0, 0), + (103, 10009, 11, 0, 0), + (103, 10010, 10, 0, 0), + (103, 11004, 10, 0, 0), + (103, 11004, 11, 0, 0), + (103, 12007, 10, 0, 0), + (103, 12028, 11, 0, 0), + (103, 15001, 0, 0, 0), + (103, 20103, 0, 0, 0), + (103, 22014, 0, 0, 0), + (103, 31153, 0, 0, 0), + (103, 36001, 0, 0, 0), + (103, 37001, 0, 0, 0), + (103, 40005, 0, 0, 0), + (103, 100002, 10, 0, 0), + (103, 100002, 11, 0, 0), + (103, 110012, 10, 1, 1), + (103, 110012, 11, 1, 1), + (103, 130047, 0, 0, 0), + (103, 140014, 0, 0, 0), + (103, 160022, 0, 0, 0), + (103, 180019, 0, 0, 0), + (103, 190021, 0, 0, 0), + (103, 200019, 0, 0, 0), + (103, 230002, 0, 0, 0), + (103, 240003, 0, 0, 0), + (103, 250020, 0, 0, 0), + (103, 280019, 0, 0, 0), + (103, 290001, 0, 0, 0), + (103, 300001, 0, 0, 0), + (103, 320023, 0, 0, 0), + (103, 330006, 0, 0, 0), + (103, 340001, 0, 0, 0), + (103, 1000004, 0, 0, 0), + (103, 1100016, 0, 0, 0), + (103, 1200018, 0, 0, 0), + (104, 1001, 0, 1, 1), + (104, 2001, 0, 1, 1), + (104, 4001, 0, 0, 0), + (104, 5001, 0, 0, 0), + (104, 6001, 0, 0, 0), + (104, 10001, 10, 0, 0), + (104, 10004, 11, 0, 0), + (104, 11004, 10, 0, 0), + (104, 11004, 11, 0, 0), + (104, 12010, 10, 0, 0), + (104, 12022, 11, 0, 0), + (104, 15001, 0, 0, 0), + (104, 20104, 0, 0, 0), + (104, 22014, 0, 0, 0), + (104, 31153, 0, 0, 0), + (104, 36001, 0, 0, 0), + (104, 37001, 0, 0, 0), + (104, 40006, 0, 0, 0), + (104, 100006, 10, 0, 0), + (104, 100006, 11, 0, 0), + (104, 110021, 10, 1, 1), + (104, 110021, 11, 1, 1), + (104, 130047, 0, 0, 0), + (104, 140007, 0, 0, 0), + (104, 160026, 0, 0, 0), + (104, 180018, 0, 0, 0), + (104, 190077, 0, 0, 0), + (104, 200066, 0, 0, 0), + (104, 230001, 0, 0, 0), + (104, 240001, 0, 0, 0), + (104, 250030, 0, 0, 0), + (104, 280030, 0, 0, 0), + (104, 290001, 0, 0, 0), + (104, 300001, 0, 0, 0), + (104, 320098, 0, 0, 0), + (104, 330020, 0, 0, 0), + (104, 340002, 0, 0, 0), + (104, 1000001, 0, 0, 0), + (104, 1100119, 0, 0, 0), + (104, 1200048, 0, 0, 0), + (105, 1001, 0, 1, 1), + (105, 2001, 0, 1, 1), + (105, 4001, 0, 0, 0), + (105, 5001, 0, 0, 0), + (105, 6001, 0, 0, 0), + (105, 10011, 10, 0, 0), + (105, 10011, 11, 0, 0), + (105, 11004, 10, 0, 0), + (105, 11004, 11, 0, 0), + (105, 12009, 10, 0, 0), + (105, 12030, 11, 0, 0), + (105, 15001, 0, 0, 0), + (105, 20105, 0, 0, 0), + (105, 22014, 0, 0, 0), + (105, 31153, 0, 0, 0), + (105, 36001, 0, 0, 0), + (105, 37001, 0, 0, 0), + (105, 40007, 0, 0, 0), + (105, 100002, 10, 0, 0), + (105, 100002, 11, 0, 0), + (105, 110021, 10, 1, 1), + (105, 110021, 11, 1, 1), + (105, 130047, 0, 0, 0), + (105, 140008, 0, 0, 1), + (105, 160026, 0, 0, 0), + (105, 180018, 0, 0, 0), + (105, 190077, 0, 0, 0), + (105, 200066, 0, 0, 0), + (105, 230001, 0, 0, 0), + (105, 240001, 0, 0, 0), + (105, 250030, 0, 0, 0), + (105, 280030, 0, 0, 0), + (105, 290001, 0, 0, 0), + (105, 300001, 0, 0, 0), + (105, 320098, 0, 0, 0), + (105, 330020, 0, 0, 0), + (105, 340002, 0, 0, 0), + (105, 1000001, 0, 0, 0), + (105, 1100119, 0, 0, 0), + (105, 1200048, 0, 0, 0), + (106, 1001, 0, 1, 1), + (106, 2001, 0, 1, 1), + (106, 4001, 0, 0, 0), + (106, 5001, 0, 0, 0), + (106, 6001, 0, 0, 0), + (106, 10011, 10, 0, 0), + (106, 10011, 11, 0, 0), + (106, 11004, 10, 0, 0), + (106, 11004, 11, 0, 0), + (106, 12009, 10, 0, 0), + (106, 12012, 11, 0, 0), + (106, 15001, 0, 0, 0), + (106, 20106, 0, 0, 0), + (106, 22014, 0, 0, 0), + (106, 31153, 0, 0, 0), + (106, 36001, 0, 0, 0), + (106, 37001, 0, 0, 0), + (106, 40008, 0, 0, 0), + (106, 100002, 10, 0, 0), + (106, 100002, 11, 0, 0), + (106, 110032, 10, 1, 1), + (106, 110032, 11, 1, 1), + (106, 130026, 0, 0, 0), + (106, 140003, 0, 0, 0), + (106, 160026, 0, 0, 0), + (106, 180018, 0, 0, 0), + (106, 190077, 0, 0, 0), + (106, 200066, 0, 0, 0), + (106, 230001, 0, 0, 0), + (106, 240001, 0, 0, 0), + (106, 250030, 0, 0, 0), + (106, 280030, 0, 0, 0), + (106, 290002, 0, 0, 0), + (106, 300001, 0, 0, 0), + (106, 320040, 0, 0, 0), + (106, 330035, 0, 0, 0), + (106, 340002, 0, 0, 0), + (106, 1000001, 0, 0, 0), + (106, 1100119, 0, 0, 0), + (106, 1200048, 0, 0, 0), + (107, 1001, 0, 1, 1), + (107, 2001, 0, 1, 1), + (107, 4001, 0, 0, 0), + (107, 5001, 0, 0, 0), + (107, 6001, 0, 0, 0), + (107, 10011, 10, 0, 0), + (107, 10011, 11, 0, 0), + (107, 11004, 10, 0, 0), + (107, 11004, 11, 0, 0), + (107, 12009, 10, 0, 0), + (107, 12012, 11, 0, 0), + (107, 13011, 10, 0, 0), + (107, 15001, 0, 0, 0), + (107, 20107, 0, 0, 0), + (107, 22014, 0, 0, 0), + (107, 31153, 0, 0, 0), + (107, 36001, 0, 0, 0), + (107, 37001, 0, 0, 0), + (107, 40009, 0, 0, 0), + (107, 100002, 10, 0, 0), + (107, 100002, 11, 0, 0), + (107, 110036, 10, 1, 1), + (107, 110036, 11, 1, 1), + (107, 130026, 0, 0, 0), + (107, 140003, 0, 0, 0), + (107, 160030, 0, 0, 0), + (107, 180017, 0, 0, 0), + (107, 190002, 0, 0, 0), + (107, 200001, 0, 0, 0), + (107, 230001, 0, 0, 0), + (107, 240001, 0, 0, 0), + (107, 250001, 0, 0, 0), + (107, 280001, 0, 0, 0), + (107, 290002, 0, 0, 0), + (107, 300001, 0, 0, 0), + (107, 320006, 0, 0, 0), + (107, 330035, 0, 0, 0), + (107, 340002, 0, 0, 0), + (107, 1000132, 0, 0, 0), + (107, 1100010, 0, 0, 0), + (107, 1200003, 0, 0, 0), + (108, 1001, 0, 1, 1), + (108, 2001, 0, 1, 1), + (108, 4001, 0, 0, 0), + (108, 5001, 0, 0, 0), + (108, 6001, 0, 0, 0), + (108, 10010, 10, 0, 0), + (108, 10010, 11, 0, 0), + (108, 11004, 10, 0, 0), + (108, 11004, 11, 0, 0), + (108, 12006, 10, 0, 0), + (108, 12028, 11, 0, 0), + (108, 13010, 10, 0, 0), + (108, 15001, 0, 0, 0), + (108, 20108, 0, 0, 0), + (108, 22014, 0, 0, 0), + (108, 31153, 0, 0, 0), + (108, 36001, 0, 0, 0), + (108, 37001, 0, 0, 0), + (108, 40013, 0, 0, 0), + (108, 100002, 10, 0, 0), + (108, 100002, 11, 0, 0), + (108, 110044, 10, 0, 0), + (108, 110044, 11, 0, 0), + (108, 130034, 0, 0, 0), + (108, 140019, 0, 0, 0), + (108, 160025, 0, 0, 0), + (108, 180030, 0, 0, 0), + (108, 190020, 0, 0, 0), + (108, 200004, 0, 0, 0), + (108, 230001, 0, 0, 0), + (108, 240001, 0, 0, 0), + (108, 250001, 0, 0, 0), + (108, 280018, 0, 0, 0), + (108, 290001, 0, 0, 0), + (108, 300001, 0, 0, 0), + (108, 320022, 0, 0, 0), + (108, 330003, 0, 0, 0), + (108, 340002, 0, 0, 0), + (108, 1000138, 0, 0, 0), + (108, 1100005, 0, 0, 0), + (108, 1200017, 0, 0, 0), + (109, 1001, 0, 1, 1), + (109, 2001, 0, 1, 1), + (109, 4001, 0, 0, 0), + (109, 5001, 0, 0, 0), + (109, 6001, 0, 0, 0), + (109, 10010, 10, 0, 0), + (109, 10010, 11, 0, 0), + (109, 11004, 10, 0, 0), + (109, 11004, 11, 0, 0), + (109, 12009, 10, 0, 0), + (109, 12029, 11, 0, 0), + (109, 15001, 0, 0, 0), + (109, 20109, 0, 0, 0), + (109, 22014, 0, 0, 0), + (109, 31153, 0, 0, 0), + (109, 36001, 0, 0, 0), + (109, 37001, 0, 0, 0), + (109, 40011, 0, 0, 0), + (109, 100002, 10, 0, 0), + (109, 100002, 11, 0, 0), + (109, 110032, 10, 0, 0), + (109, 110032, 11, 0, 0), + (109, 130034, 0, 0, 0), + (109, 140003, 0, 0, 0), + (109, 160025, 0, 0, 0), + (109, 180030, 0, 0, 0), + (109, 190020, 0, 0, 0), + (109, 200004, 0, 0, 0), + (109, 230001, 0, 0, 0), + (109, 240001, 0, 0, 0), + (109, 250001, 0, 0, 0), + (109, 280018, 0, 0, 0), + (109, 290001, 0, 0, 0), + (109, 300001, 0, 0, 0), + (109, 320022, 0, 0, 0), + (109, 330003, 0, 0, 0), + (109, 340002, 0, 0, 0), + (109, 1000138, 0, 0, 0), + (109, 1100005, 0, 0, 0), + (109, 1200017, 0, 0, 0), + (110, 1001, 0, 1, 1), + (110, 2001, 0, 1, 1), + (110, 4001, 0, 0, 0), + (110, 5001, 0, 0, 0), + (110, 6001, 0, 0, 0), + (110, 10002, 10, 0, 0), + (110, 10010, 11, 0, 0), + (110, 11004, 10, 0, 0), + (110, 11004, 11, 0, 0), + (110, 12008, 10, 0, 0), + (110, 12022, 11, 0, 0), + (110, 13011, 10, 0, 0), + (110, 15001, 0, 0, 0), + (110, 20110, 0, 0, 0), + (110, 22014, 0, 0, 0), + (110, 31153, 0, 0, 0), + (110, 36001, 0, 0, 0), + (110, 37001, 0, 0, 0), + (110, 40012, 0, 0, 0), + (110, 100002, 10, 0, 0), + (110, 100002, 11, 0, 0), + (110, 110044, 10, 1, 1), + (110, 110044, 11, 1, 1), + (110, 130026, 0, 0, 0), + (110, 140020, 0, 0, 0), + (110, 160027, 0, 0, 0), + (110, 180030, 0, 0, 0), + (110, 190020, 0, 0, 0), + (110, 200004, 0, 0, 0), + (110, 230001, 0, 0, 0), + (110, 240001, 0, 0, 0), + (110, 250001, 0, 0, 0), + (110, 280018, 0, 0, 0), + (110, 290001, 0, 0, 0), + (110, 300001, 0, 0, 0), + (110, 320022, 0, 0, 0), + (110, 330003, 0, 0, 0), + (110, 340002, 0, 0, 0), + (110, 1000138, 0, 0, 0), + (110, 1100005, 0, 0, 0), + (110, 1200017, 0, 0, 0), + (111, 1001, 0, 1, 1), + (111, 2001, 0, 1, 1), + (111, 4001, 0, 0, 0), + (111, 5001, 0, 0, 0), + (111, 6001, 0, 0, 0), + (111, 10010, 11, 0, 0), + (111, 10017, 10, 0, 0), + (111, 11009, 10, 0, 0), + (111, 11009, 11, 0, 0), + (111, 12008, 10, 0, 0), + (111, 12029, 11, 0, 0), + (111, 13007, 11, 0, 0), + (111, 13009, 10, 0, 0), + (111, 15001, 0, 0, 0), + (111, 20111, 0, 0, 0), + (111, 22014, 0, 0, 0), + (111, 29002, 0, 0, 0), + (111, 30003, 0, 0, 0), + (111, 31153, 0, 0, 0), + (111, 36001, 0, 0, 0), + (111, 37001, 0, 0, 0), + (111, 40013, 0, 0, 0), + (111, 100112, 10, 0, 0), + (111, 100112, 11, 0, 0), + (111, 110083, 10, 1, 1), + (111, 110084, 11, 1, 1), + (111, 130034, 0, 0, 0), + (111, 140020, 0, 0, 0), + (111, 160027, 0, 0, 0), + (111, 180034, 0, 0, 0), + (111, 190001, 0, 0, 0), + (111, 200054, 0, 0, 0), + (111, 230003, 0, 0, 0), + (111, 240005, 0, 0, 0), + (111, 250001, 0, 0, 0), + (111, 280041, 0, 0, 0), + (111, 290002, 0, 0, 0), + (111, 300011, 0, 0, 0), + (111, 320087, 0, 0, 0), + (111, 330025, 0, 0, 0), + (111, 340003, 0, 0, 0), + (111, 1000139, 0, 0, 0), + (111, 1100005, 0, 0, 0), + (111, 1200038, 0, 0, 0), + (112, 1001, 0, 1, 1), + (112, 2001, 0, 1, 1), + (112, 4001, 0, 0, 0), + (112, 5001, 0, 0, 0), + (112, 6001, 0, 0, 0), + (112, 10001, 10, 0, 0), + (112, 10004, 11, 0, 0), + (112, 11004, 10, 0, 0), + (112, 11004, 11, 0, 0), + (112, 12007, 10, 0, 0), + (112, 12028, 11, 0, 0), + (112, 15001, 0, 0, 0), + (112, 20112, 0, 0, 0), + (112, 22014, 0, 0, 0), + (112, 31153, 0, 0, 0), + (112, 36001, 0, 0, 0), + (112, 37001, 0, 0, 0), + (112, 40004, 0, 0, 0), + (112, 100002, 10, 0, 0), + (112, 100002, 11, 0, 0), + (112, 110017, 10, 1, 1), + (112, 110017, 11, 1, 1), + (112, 130012, 0, 0, 0), + (112, 140024, 0, 0, 0), + (112, 160047, 0, 0, 0), + (112, 180019, 0, 0, 0), + (112, 190021, 0, 0, 0), + (112, 200019, 0, 0, 0), + (112, 230002, 0, 0, 0), + (112, 240001, 0, 0, 0), + (112, 250020, 0, 0, 0), + (112, 280019, 0, 0, 0), + (112, 290001, 0, 0, 0), + (112, 300001, 0, 0, 0), + (112, 320023, 0, 0, 0), + (112, 330006, 0, 0, 0), + (112, 340001, 0, 0, 0), + (112, 1000003, 0, 0, 0), + (112, 1100016, 0, 0, 0), + (112, 1200018, 0, 0, 0), + (113, 1001, 0, 1, 1), + (113, 2001, 0, 1, 1), + (113, 4001, 0, 0, 0), + (113, 5001, 0, 0, 0), + (113, 6001, 0, 0, 0), + (113, 10001, 10, 0, 0), + (113, 10004, 11, 0, 0), + (113, 11004, 10, 0, 0), + (113, 11004, 11, 0, 0), + (113, 12009, 10, 0, 0), + (113, 12030, 11, 0, 0), + (113, 15001, 0, 0, 0), + (113, 20113, 0, 0, 0), + (113, 22009, 0, 0, 0), + (113, 31153, 0, 0, 0), + (113, 36001, 0, 0, 0), + (113, 37001, 0, 0, 0), + (113, 40016, 0, 0, 0), + (113, 100002, 10, 0, 0), + (113, 100002, 11, 0, 0), + (113, 110014, 10, 1, 1), + (113, 110014, 11, 1, 1), + (113, 130021, 0, 0, 0), + (113, 140021, 0, 0, 0), + (113, 160006, 0, 0, 0), + (113, 180014, 0, 0, 0), + (113, 190016, 0, 0, 0), + (113, 200002, 0, 0, 0), + (113, 230001, 0, 0, 0), + (113, 240001, 0, 0, 0), + (113, 250026, 0, 0, 0), + (113, 280024, 0, 0, 0), + (113, 290003, 0, 0, 0), + (113, 300001, 0, 0, 0), + (113, 320020, 0, 0, 0), + (113, 330052, 0, 0, 0), + (113, 340002, 0, 0, 0), + (113, 1000123, 0, 0, 0), + (113, 1100001, 0, 0, 0), + (113, 1200034, 0, 0, 0), + (114, 1001, 0, 1, 1), + (114, 2001, 0, 1, 1), + (114, 4001, 0, 0, 0), + (114, 5001, 0, 0, 0), + (114, 6001, 0, 0, 0), + (114, 10006, 11, 0, 0), + (114, 10015, 10, 0, 0), + (114, 11006, 10, 0, 0), + (114, 11006, 11, 0, 0), + (114, 12021, 10, 0, 0), + (114, 12029, 11, 0, 0), + (114, 13006, 10, 0, 0), + (114, 15001, 0, 0, 0), + (114, 20114, 0, 0, 0), + (114, 22009, 0, 0, 0), + (114, 31153, 0, 0, 0), + (114, 36001, 0, 0, 0), + (114, 37001, 0, 0, 0), + (114, 40018, 0, 0, 0), + (114, 100002, 10, 0, 0), + (114, 100002, 11, 0, 0), + (114, 110012, 10, 1, 1), + (114, 110012, 11, 1, 1), + (114, 130032, 0, 0, 0), + (114, 140009, 0, 0, 0), + (114, 160006, 0, 0, 0), + (114, 180014, 0, 0, 0), + (114, 190016, 0, 0, 0), + (114, 200002, 0, 0, 0), + (114, 230001, 0, 0, 0), + (114, 240001, 0, 0, 0), + (114, 250026, 0, 0, 0), + (114, 280024, 0, 0, 0), + (114, 290001, 0, 0, 0), + (114, 300001, 0, 0, 0), + (114, 320030, 0, 0, 0), + (114, 330052, 0, 0, 0), + (114, 340002, 0, 0, 0), + (114, 1000015, 0, 0, 0), + (114, 1100001, 0, 0, 0), + (114, 1200034, 0, 0, 0), + (115, 1001, 0, 1, 1), + (115, 2001, 0, 1, 1), + (115, 4001, 0, 0, 0), + (115, 5001, 0, 0, 0), + (115, 6001, 0, 0, 0), + (115, 10011, 10, 0, 0), + (115, 10011, 11, 0, 0), + (115, 11004, 10, 0, 0), + (115, 11004, 11, 0, 0), + (115, 12009, 10, 0, 0), + (115, 12030, 11, 0, 0), + (115, 15001, 0, 0, 0), + (115, 20115, 0, 0, 0), + (115, 22009, 0, 0, 0), + (115, 31153, 0, 0, 0), + (115, 36001, 0, 0, 0), + (115, 37001, 0, 0, 0), + (115, 40017, 0, 0, 0), + (115, 100002, 10, 0, 0), + (115, 100002, 11, 0, 0), + (115, 110014, 10, 1, 1), + (115, 110014, 11, 1, 1), + (115, 130021, 0, 0, 0), + (115, 140018, 0, 0, 0), + (115, 160006, 0, 0, 0), + (115, 180014, 0, 0, 0), + (115, 190016, 0, 0, 0), + (115, 200002, 0, 0, 0), + (115, 230001, 0, 0, 0), + (115, 240001, 0, 0, 0), + (115, 250026, 0, 0, 0), + (115, 280024, 0, 0, 0), + (115, 290004, 0, 0, 0), + (115, 300001, 0, 0, 0), + (115, 320030, 0, 0, 0), + (115, 330053, 0, 0, 0), + (115, 340002, 0, 0, 0), + (115, 1000015, 0, 0, 0), + (115, 1100158, 0, 0, 0), + (115, 1200034, 0, 0, 0), + (116, 1001, 0, 1, 1), + (116, 2001, 0, 1, 1), + (116, 4001, 0, 0, 0), + (116, 5001, 0, 0, 0), + (116, 6001, 0, 0, 0), + (116, 10011, 10, 0, 0), + (116, 10011, 11, 0, 0), + (116, 11004, 10, 0, 0), + (116, 11004, 11, 0, 0), + (116, 12007, 10, 0, 0), + (116, 12021, 11, 0, 0), + (116, 13009, 10, 0, 0), + (116, 15001, 0, 0, 0), + (116, 20116, 0, 0, 0), + (116, 22009, 0, 0, 0), + (116, 31153, 0, 0, 0), + (116, 36001, 0, 0, 0), + (116, 37001, 0, 0, 0), + (116, 40022, 0, 0, 0), + (116, 100002, 10, 0, 0), + (116, 100002, 11, 0, 0), + (116, 110035, 10, 1, 1), + (116, 110035, 11, 1, 1), + (116, 130021, 0, 0, 0), + (116, 140009, 0, 0, 0), + (116, 160006, 0, 0, 0), + (116, 180014, 0, 0, 0), + (116, 190016, 0, 0, 0), + (116, 200002, 0, 0, 0), + (116, 230001, 0, 0, 0), + (116, 240032, 0, 0, 0), + (116, 250026, 0, 0, 0), + (116, 280016, 0, 0, 0), + (116, 290004, 0, 0, 0), + (116, 300001, 0, 0, 0), + (116, 320020, 0, 0, 0), + (116, 330053, 0, 0, 0), + (116, 340002, 0, 0, 0), + (116, 1000070, 0, 0, 0), + (116, 1100001, 0, 0, 0), + (116, 1200034, 0, 0, 0), + (117, 1001, 0, 1, 1), + (117, 2001, 0, 1, 1), + (117, 4001, 0, 0, 0), + (117, 5001, 0, 0, 0), + (117, 6001, 0, 0, 0), + (117, 10021, 10, 0, 0), + (117, 10026, 11, 0, 0), + (117, 11006, 10, 0, 0), + (117, 11006, 11, 0, 0), + (117, 12007, 11, 0, 0), + (117, 12021, 10, 0, 0), + (117, 13006, 10, 0, 0), + (117, 15001, 0, 0, 0), + (117, 20117, 0, 0, 0), + (117, 22009, 0, 0, 0), + (117, 31153, 0, 0, 0), + (117, 36001, 0, 0, 0), + (117, 37001, 0, 0, 0), + (117, 40021, 0, 0, 0), + (117, 100120, 10, 0, 0), + (117, 100120, 11, 0, 0), + (117, 110087, 10, 1, 1), + (117, 110088, 11, 1, 1), + (117, 130008, 0, 0, 0), + (117, 140005, 0, 0, 0), + (117, 160009, 0, 0, 0), + (117, 180014, 0, 0, 0), + (117, 190016, 0, 0, 0), + (117, 200002, 0, 0, 0), + (117, 230003, 0, 0, 0), + (117, 240006, 0, 0, 0), + (117, 250002, 0, 0, 0), + (117, 280024, 0, 0, 0), + (117, 290004, 0, 0, 0), + (117, 300001, 0, 0, 0), + (117, 320030, 0, 0, 0), + (117, 330057, 0, 0, 0), + (117, 340003, 0, 0, 0), + (117, 1000073, 0, 0, 0), + (117, 1100025, 0, 0, 0), + (117, 1200023, 0, 0, 0), + (118, 1001, 0, 1, 1), + (118, 2001, 0, 1, 1), + (118, 4001, 0, 0, 0), + (118, 5001, 0, 0, 0), + (118, 6001, 0, 0, 0), + (118, 10011, 10, 0, 0), + (118, 10011, 11, 0, 0), + (118, 11004, 10, 0, 0), + (118, 11004, 11, 0, 0), + (118, 12006, 11, 0, 0), + (118, 12007, 10, 0, 0), + (118, 15001, 0, 0, 0), + (118, 20118, 0, 0, 0), + (118, 22009, 0, 0, 0), + (118, 31153, 0, 0, 0), + (118, 36001, 0, 0, 0), + (118, 37001, 0, 0, 0), + (118, 40019, 0, 0, 0), + (118, 100002, 10, 0, 0), + (118, 100002, 11, 0, 0), + (118, 110032, 10, 1, 1), + (118, 110032, 11, 1, 1), + (118, 130032, 0, 0, 0), + (118, 140016, 0, 0, 0), + (118, 160011, 0, 0, 0), + (118, 180062, 0, 0, 0), + (118, 190067, 0, 0, 0), + (118, 200048, 0, 0, 0), + (118, 230001, 0, 0, 0), + (118, 240001, 0, 0, 0), + (118, 250026, 0, 0, 0), + (118, 280051, 0, 0, 0), + (118, 290004, 0, 0, 0), + (118, 300001, 0, 0, 0), + (118, 320100, 0, 0, 0), + (118, 330056, 0, 0, 0), + (118, 340002, 0, 0, 0), + (118, 1000057, 0, 0, 0), + (118, 1100120, 0, 0, 0), + (118, 1200049, 0, 0, 0), + (119, 1001, 0, 1, 1), + (119, 2001, 0, 1, 1), + (119, 4001, 0, 0, 0), + (119, 5001, 0, 0, 0), + (119, 6001, 0, 0, 0), + (119, 10010, 10, 0, 0), + (119, 10010, 11, 0, 0), + (119, 11004, 10, 0, 0), + (119, 11004, 11, 0, 0), + (119, 12008, 10, 0, 0), + (119, 12029, 11, 0, 0), + (119, 15001, 0, 0, 0), + (119, 20119, 0, 0, 0), + (119, 22009, 0, 0, 0), + (119, 31153, 0, 0, 0), + (119, 36001, 0, 0, 0), + (119, 37001, 0, 0, 0), + (119, 40024, 0, 0, 0), + (119, 100002, 10, 0, 0), + (119, 100002, 11, 0, 0), + (119, 110032, 10, 1, 1), + (119, 110032, 11, 1, 1), + (119, 130033, 0, 0, 0), + (119, 140016, 0, 0, 0), + (119, 160006, 0, 0, 0), + (119, 180014, 0, 0, 0), + (119, 190016, 0, 0, 0), + (119, 200002, 0, 0, 0), + (119, 230001, 0, 0, 0), + (119, 240023, 0, 0, 0), + (119, 250026, 0, 0, 0), + (119, 280016, 0, 0, 0), + (119, 290004, 0, 0, 0), + (119, 300001, 0, 0, 0), + (119, 320020, 0, 0, 0), + (119, 330053, 0, 0, 0), + (119, 340002, 0, 0, 0), + (119, 1000070, 0, 0, 0), + (119, 1100001, 0, 0, 0), + (119, 1200034, 0, 0, 0), + (120, 1001, 0, 1, 1), + (120, 2001, 0, 1, 1), + (120, 4001, 0, 0, 0), + (120, 5001, 0, 0, 0), + (120, 6001, 0, 0, 0), + (120, 10002, 10, 0, 0), + (120, 10010, 11, 0, 0), + (120, 11004, 10, 0, 0), + (120, 11004, 11, 0, 0), + (120, 12006, 10, 0, 0), + (120, 12027, 11, 0, 0), + (120, 13009, 10, 0, 0), + (120, 15001, 0, 0, 0), + (120, 20120, 0, 0, 0), + (120, 22009, 0, 0, 0), + (120, 31153, 0, 0, 0), + (120, 36001, 0, 0, 0), + (120, 37001, 0, 0, 0), + (120, 40025, 0, 0, 0), + (120, 100003, 10, 0, 0), + (120, 100003, 11, 0, 0), + (120, 110032, 10, 1, 1), + (120, 110032, 11, 1, 1), + (120, 130032, 0, 0, 0), + (120, 140016, 0, 0, 0), + (120, 160009, 0, 0, 0), + (120, 180014, 0, 0, 0), + (120, 190016, 0, 0, 0), + (120, 200002, 0, 0, 0), + (120, 230001, 0, 0, 0), + (120, 240023, 0, 0, 0), + (120, 250026, 0, 0, 0), + (120, 280016, 0, 0, 0), + (120, 290004, 0, 0, 0), + (120, 300001, 0, 0, 0), + (120, 320020, 0, 0, 0), + (120, 330053, 0, 0, 0), + (120, 340002, 0, 0, 0), + (120, 1000121, 0, 0, 0), + (120, 1100001, 0, 0, 0), + (120, 1200034, 0, 0, 0), + (121, 1001, 0, 1, 1), + (121, 2001, 0, 1, 1), + (121, 4001, 0, 0, 0), + (121, 5001, 0, 0, 0), + (121, 6001, 0, 0, 0), + (121, 10002, 10, 0, 0), + (121, 10010, 11, 0, 0), + (121, 11004, 10, 0, 0), + (121, 11004, 11, 0, 0), + (121, 12009, 10, 0, 0), + (121, 12021, 11, 0, 0), + (121, 13009, 10, 0, 0), + (121, 15001, 0, 0, 0), + (121, 20121, 0, 0, 0), + (121, 22009, 0, 0, 0), + (121, 31153, 0, 0, 0), + (121, 36001, 0, 0, 0), + (121, 37001, 0, 0, 0), + (121, 40030, 0, 0, 0), + (121, 100002, 10, 0, 0), + (121, 100002, 11, 0, 0), + (121, 110027, 10, 1, 1), + (121, 110027, 11, 1, 1), + (121, 130023, 0, 0, 0), + (121, 140016, 0, 0, 0), + (121, 160008, 0, 0, 0), + (121, 180003, 0, 0, 0), + (121, 190016, 0, 0, 0), + (121, 200002, 0, 0, 0), + (121, 230001, 0, 0, 0), + (121, 240023, 0, 0, 0), + (121, 250026, 0, 0, 0), + (121, 280016, 0, 0, 0), + (121, 290004, 0, 0, 0), + (121, 300001, 0, 0, 0), + (121, 320020, 0, 0, 0), + (121, 330020, 0, 0, 0), + (121, 340002, 0, 0, 0), + (121, 1000074, 0, 0, 0), + (121, 1100001, 0, 0, 0), + (121, 1200034, 0, 0, 0), + (122, 1001, 0, 1, 1), + (122, 2001, 0, 1, 1), + (122, 4001, 0, 0, 0), + (122, 5001, 0, 0, 0), + (122, 6001, 0, 0, 0), + (122, 10010, 10, 0, 0), + (122, 10010, 11, 0, 0), + (122, 11004, 10, 0, 0), + (122, 11004, 11, 0, 0), + (122, 12007, 11, 0, 0), + (122, 12010, 10, 0, 0), + (122, 13009, 10, 0, 0), + (122, 15001, 0, 0, 0), + (122, 20122, 0, 0, 0), + (122, 22009, 0, 0, 0), + (122, 31153, 0, 0, 0), + (122, 36001, 0, 0, 0), + (122, 37001, 0, 0, 0), + (122, 40028, 0, 0, 0), + (122, 100003, 10, 0, 0), + (122, 100003, 11, 0, 0), + (122, 110034, 10, 1, 1), + (122, 110034, 11, 1, 1), + (122, 130023, 0, 0, 0), + (122, 140016, 0, 0, 0), + (122, 160008, 0, 0, 0), + (122, 180003, 0, 0, 0), + (122, 190016, 0, 0, 0), + (122, 200002, 0, 0, 0), + (122, 230001, 0, 0, 0), + (122, 240023, 0, 0, 0), + (122, 250026, 0, 0, 0), + (122, 280016, 0, 0, 0), + (122, 290004, 0, 0, 0), + (122, 300001, 0, 0, 0), + (122, 320020, 0, 0, 0), + (122, 330020, 0, 0, 0), + (122, 340002, 0, 0, 0), + (122, 1000074, 0, 0, 0), + (122, 1100001, 0, 0, 0), + (122, 1200034, 0, 0, 0), + (123, 1001, 0, 1, 1), + (123, 2001, 0, 1, 1), + (123, 4001, 0, 0, 0), + (123, 5001, 0, 0, 0), + (123, 6001, 0, 0, 0), + (123, 10002, 10, 0, 0), + (123, 10010, 11, 0, 0), + (123, 11004, 10, 0, 0), + (123, 11004, 11, 0, 0), + (123, 12020, 10, 0, 0), + (123, 12029, 11, 0, 0), + (123, 13009, 10, 0, 0), + (123, 15001, 0, 0, 0), + (123, 20123, 0, 0, 0), + (123, 22009, 0, 0, 0), + (123, 31153, 0, 0, 0), + (123, 36001, 0, 0, 0), + (123, 37001, 0, 0, 0), + (123, 40029, 0, 0, 0), + (123, 100002, 10, 0, 0), + (123, 100002, 11, 0, 0), + (123, 110034, 10, 1, 1), + (123, 110034, 11, 1, 1), + (123, 130023, 0, 0, 0), + (123, 140016, 0, 0, 0), + (123, 160008, 0, 0, 0), + (123, 180003, 0, 0, 0), + (123, 190016, 0, 0, 0), + (123, 200002, 0, 0, 0), + (123, 230001, 0, 0, 0), + (123, 240023, 0, 0, 0), + (123, 250026, 0, 0, 0), + (123, 280016, 0, 0, 0), + (123, 290004, 0, 0, 0), + (123, 300001, 0, 0, 0), + (123, 320020, 0, 0, 0), + (123, 330020, 0, 0, 0), + (123, 340002, 0, 0, 0), + (123, 1000074, 0, 0, 0), + (123, 1100001, 0, 0, 0), + (123, 1200034, 0, 0, 0), + (124, 1001, 0, 1, 1), + (124, 2001, 0, 1, 1), + (124, 4001, 0, 0, 0), + (124, 5001, 0, 0, 0), + (124, 6001, 0, 0, 0), + (124, 10012, 10, 0, 0), + (124, 10012, 11, 0, 0), + (124, 11004, 10, 0, 0), + (124, 11004, 11, 0, 0), + (124, 12011, 10, 0, 0), + (124, 12027, 11, 0, 0), + (124, 15001, 0, 0, 0), + (124, 20124, 0, 0, 0), + (124, 22005, 0, 0, 0), + (124, 31153, 0, 0, 0), + (124, 36001, 0, 0, 0), + (124, 37001, 0, 0, 0), + (124, 40014, 0, 0, 0), + (124, 100002, 10, 0, 0), + (124, 100002, 11, 0, 0), + (124, 110047, 10, 1, 1), + (124, 110047, 11, 1, 1), + (124, 130023, 0, 0, 0), + (124, 140008, 0, 0, 0), + (124, 160010, 0, 0, 0), + (124, 180055, 0, 0, 0), + (124, 190071, 0, 0, 0), + (124, 200056, 0, 0, 0), + (124, 230001, 0, 0, 0), + (124, 240001, 0, 0, 0), + (124, 250021, 0, 0, 0), + (124, 280044, 0, 0, 0), + (124, 290003, 0, 0, 0), + (124, 300001, 0, 0, 0), + (124, 320092, 0, 0, 0), + (124, 330052, 0, 0, 0), + (124, 340002, 0, 0, 0), + (124, 1000154, 0, 0, 0), + (124, 1100112, 0, 0, 0), + (124, 1200042, 0, 0, 0), + (125, 1001, 0, 1, 1), + (125, 2001, 0, 1, 1), + (125, 4001, 0, 0, 0), + (125, 5001, 0, 0, 0), + (125, 6001, 0, 0, 0), + (125, 10003, 10, 0, 0), + (125, 10011, 11, 0, 0), + (125, 11004, 10, 0, 0), + (125, 11004, 11, 0, 0), + (125, 12010, 11, 0, 0), + (125, 12011, 10, 0, 0), + (125, 15001, 0, 0, 0), + (125, 20125, 0, 0, 0), + (125, 22009, 0, 0, 0), + (125, 31153, 0, 0, 0), + (125, 36001, 0, 0, 0), + (125, 37001, 0, 0, 0), + (125, 40020, 0, 0, 0), + (125, 100103, 10, 0, 0), + (125, 100103, 11, 0, 0), + (125, 110042, 10, 1, 1), + (125, 110042, 11, 1, 1), + (125, 130022, 0, 0, 0), + (125, 140002, 0, 0, 0), + (125, 160013, 0, 0, 0), + (125, 180012, 0, 0, 0), + (125, 190005, 0, 0, 0), + (125, 200018, 0, 0, 0), + (125, 230001, 0, 0, 0), + (125, 240001, 0, 0, 0), + (125, 250002, 0, 0, 0), + (125, 280015, 0, 0, 0), + (125, 290004, 0, 0, 0), + (125, 300001, 0, 0, 0), + (125, 320021, 0, 0, 0), + (125, 330008, 0, 0, 0), + (125, 340002, 0, 0, 0), + (125, 1000068, 0, 0, 0), + (125, 1100013, 0, 0, 0), + (125, 1200014, 0, 0, 0), + (126, 1001, 0, 1, 1), + (126, 2001, 0, 1, 1), + (126, 4001, 0, 0, 0), + (126, 5001, 0, 0, 0), + (126, 6001, 0, 0, 0), + (126, 10002, 10, 0, 0), + (126, 10010, 11, 0, 0), + (126, 11004, 10, 0, 0), + (126, 11004, 11, 0, 0), + (126, 12010, 10, 0, 0), + (126, 12021, 11, 0, 0), + (126, 13011, 11, 0, 0), + (126, 13012, 10, 0, 0), + (126, 15001, 0, 0, 0), + (126, 20126, 0, 0, 0), + (126, 22009, 0, 0, 0), + (126, 31153, 0, 0, 0), + (126, 36001, 0, 0, 0), + (126, 37001, 0, 0, 0), + (126, 40026, 0, 0, 0), + (126, 100002, 10, 0, 0), + (126, 100002, 11, 0, 0), + (126, 110104, 10, 1, 1), + (126, 110109, 11, 1, 1), + (126, 130045, 0, 0, 0), + (126, 140009, 0, 0, 0), + (126, 160037, 0, 0, 0), + (126, 180020, 0, 0, 0), + (126, 190022, 0, 0, 0), + (126, 200020, 0, 0, 0), + (126, 230001, 0, 0, 0), + (126, 240001, 0, 0, 0), + (126, 250002, 0, 0, 0), + (126, 280027, 0, 0, 0), + (126, 290003, 0, 0, 0), + (126, 300001, 0, 0, 0), + (126, 320024, 0, 0, 0), + (126, 330056, 0, 0, 0), + (126, 340002, 0, 0, 0), + (126, 1000021, 0, 0, 0), + (126, 1100098, 0, 0, 0), + (126, 1200019, 0, 0, 0), + (127, 1001, 0, 1, 1), + (127, 2001, 0, 1, 1), + (127, 4001, 0, 0, 0), + (127, 5001, 0, 0, 0), + (127, 6001, 0, 0, 0), + (127, 10009, 11, 0, 0), + (127, 10010, 10, 0, 0), + (127, 11004, 10, 0, 0), + (127, 11004, 11, 0, 0), + (127, 12008, 11, 0, 0), + (127, 12009, 10, 0, 0), + (127, 15001, 0, 0, 0), + (127, 20127, 0, 0, 0), + (127, 22009, 0, 0, 0), + (127, 31153, 0, 0, 0), + (127, 36001, 0, 0, 0), + (127, 37001, 0, 0, 0), + (127, 40015, 0, 0, 0), + (127, 100002, 10, 0, 0), + (127, 100002, 11, 0, 0), + (127, 110048, 10, 1, 1), + (127, 110048, 11, 1, 1), + (127, 130057, 0, 0, 0), + (127, 140018, 0, 0, 0), + (127, 160001, 0, 0, 0), + (127, 180049, 0, 0, 0), + (127, 190013, 0, 0, 0), + (127, 200058, 0, 0, 0), + (127, 230021, 0, 0, 0), + (127, 240032, 0, 0, 0), + (127, 250022, 0, 0, 0), + (127, 280045, 0, 0, 0), + (127, 290003, 0, 0, 0), + (127, 300001, 0, 0, 0), + (127, 320033, 0, 0, 0), + (127, 330053, 0, 0, 0), + (127, 340002, 0, 0, 0), + (127, 1000162, 0, 0, 0), + (127, 1100113, 0, 0, 0), + (127, 1200013, 0, 0, 0), + (128, 1001, 0, 0, 0), + (128, 2001, 0, 1, 1), + (128, 4001, 0, 0, 0), + (128, 5001, 0, 0, 0), + (128, 6001, 0, 0, 0), + (128, 10010, 10, 0, 0), + (128, 10010, 11, 0, 0), + (128, 11004, 10, 0, 0), + (128, 11004, 11, 0, 0), + (128, 12007, 10, 0, 0), + (128, 12029, 11, 0, 0), + (128, 13011, 10, 0, 0), + (128, 15001, 0, 0, 0), + (128, 20128, 0, 0, 0), + (128, 22009, 0, 0, 0), + (128, 31153, 0, 0, 0), + (128, 36001, 0, 0, 0), + (128, 37001, 0, 0, 0), + (128, 40023, 0, 0, 0), + (128, 100002, 10, 0, 0), + (128, 100002, 11, 0, 0), + (128, 110104, 10, 1, 1), + (128, 110109, 11, 1, 1), + (128, 130004, 0, 0, 0), + (128, 140009, 0, 0, 0), + (128, 160039, 0, 0, 0), + (128, 180023, 0, 0, 0), + (128, 190006, 0, 0, 0), + (128, 200023, 0, 0, 0), + (128, 230001, 0, 0, 0), + (128, 240005, 0, 0, 0), + (128, 250002, 0, 0, 0), + (128, 280023, 0, 0, 0), + (128, 290004, 0, 0, 0), + (128, 300001, 0, 0, 0), + (128, 320027, 0, 0, 0), + (128, 330043, 0, 0, 0), + (128, 340002, 0, 0, 0), + (128, 1000018, 0, 0, 0), + (128, 1100020, 0, 0, 0), + (128, 1200035, 0, 0, 0), + (129, 1001, 0, 1, 1), + (129, 2001, 0, 1, 1), + (129, 4001, 0, 0, 0), + (129, 5001, 0, 0, 0), + (129, 6001, 0, 0, 0), + (129, 10010, 10, 0, 0), + (129, 10010, 11, 0, 0), + (129, 11004, 10, 0, 0), + (129, 11004, 11, 0, 0), + (129, 12008, 10, 0, 0), + (129, 12021, 11, 0, 0), + (129, 13011, 10, 0, 0), + (129, 15001, 0, 0, 0), + (129, 20129, 0, 0, 0), + (129, 22009, 0, 0, 0), + (129, 25006, 0, 0, 0), + (129, 31153, 0, 0, 0), + (129, 36001, 0, 0, 0), + (129, 37001, 0, 0, 0), + (129, 40049, 0, 0, 0), + (129, 100002, 10, 0, 0), + (129, 100002, 11, 0, 0), + (129, 110033, 10, 1, 1), + (129, 110033, 11, 1, 1), + (129, 130004, 0, 0, 0), + (129, 140009, 0, 0, 0), + (129, 160040, 0, 0, 0), + (129, 180023, 0, 0, 0), + (129, 190006, 0, 0, 0), + (129, 200023, 0, 0, 0), + (129, 230001, 0, 0, 0), + (129, 240006, 0, 0, 0), + (129, 250002, 0, 0, 0), + (129, 280028, 0, 0, 0), + (129, 290003, 0, 0, 0), + (129, 300001, 0, 0, 0), + (129, 320027, 0, 0, 0), + (129, 330043, 0, 0, 0), + (129, 340002, 0, 0, 0), + (129, 1000051, 0, 0, 0), + (129, 1100034, 0, 0, 0), + (129, 1200035, 0, 0, 0), + (130, 1001, 0, 1, 1), + (130, 2001, 0, 1, 1), + (130, 4001, 0, 0, 0), + (130, 5001, 0, 0, 0), + (130, 6001, 0, 0, 0), + (130, 10002, 10, 0, 0), + (130, 10010, 11, 0, 0), + (130, 11004, 10, 0, 0), + (130, 11004, 11, 0, 0), + (130, 12009, 10, 0, 0), + (130, 12029, 11, 0, 0), + (130, 13009, 11, 0, 0), + (130, 13011, 10, 0, 0), + (130, 15001, 0, 0, 0), + (130, 20130, 0, 0, 0), + (130, 22006, 0, 0, 0), + (130, 31153, 0, 0, 0), + (130, 36001, 0, 0, 0), + (130, 37001, 0, 0, 0), + (130, 40055, 0, 0, 0), + (130, 100002, 10, 0, 0), + (130, 100002, 11, 0, 0), + (130, 110040, 10, 1, 1), + (130, 110040, 11, 1, 1), + (130, 130004, 0, 0, 0), + (130, 140022, 0, 0, 0), + (130, 160040, 0, 0, 0), + (130, 180023, 0, 0, 0), + (130, 190006, 0, 0, 0), + (130, 200023, 0, 0, 0), + (130, 230003, 0, 0, 0), + (130, 240005, 0, 0, 0), + (130, 250002, 0, 0, 0), + (130, 280023, 0, 0, 0), + (130, 290004, 0, 0, 0), + (130, 300001, 0, 0, 0), + (130, 320027, 0, 0, 0), + (130, 330043, 0, 0, 0), + (130, 340003, 0, 0, 0), + (130, 1000146, 0, 0, 0), + (130, 1100020, 0, 0, 0), + (130, 1200037, 0, 0, 0), + (131, 1001, 0, 1, 1), + (131, 2001, 0, 1, 1), + (131, 4001, 0, 0, 0), + (131, 5001, 0, 0, 0), + (131, 6001, 0, 0, 0), + (131, 10002, 10, 0, 0), + (131, 10010, 11, 0, 0), + (131, 11004, 10, 0, 0), + (131, 11004, 11, 0, 0), + (131, 12006, 10, 0, 0), + (131, 12027, 11, 0, 0), + (131, 13012, 10, 0, 0), + (131, 15001, 0, 0, 0), + (131, 20131, 0, 0, 0), + (131, 22002, 0, 0, 0), + (131, 31153, 0, 0, 0), + (131, 36001, 0, 0, 0), + (131, 37001, 0, 0, 0), + (131, 40034, 0, 0, 0), + (131, 100132, 10, 0, 0), + (131, 100132, 11, 0, 0), + (131, 110027, 10, 1, 1), + (131, 110027, 11, 1, 1), + (131, 130048, 0, 0, 0), + (131, 140008, 0, 0, 0), + (131, 160048, 0, 0, 0), + (131, 180022, 0, 0, 0), + (131, 190068, 0, 0, 0), + (131, 200022, 0, 0, 0), + (131, 230001, 0, 0, 0), + (131, 240001, 0, 0, 0), + (131, 250003, 0, 0, 0), + (131, 280022, 0, 0, 0), + (131, 290003, 0, 0, 0), + (131, 300001, 0, 0, 0), + (131, 320026, 0, 0, 0), + (131, 330020, 0, 0, 0), + (131, 340002, 0, 0, 0), + (131, 1000007, 0, 0, 0), + (131, 1100019, 0, 0, 0), + (131, 1200021, 0, 0, 0), + (132, 1001, 0, 1, 1), + (132, 2001, 0, 1, 1), + (132, 4001, 0, 0, 0), + (132, 5001, 0, 0, 0), + (132, 6001, 0, 0, 0), + (132, 10002, 10, 0, 0), + (132, 10010, 11, 0, 0), + (132, 11004, 10, 0, 0), + (132, 11004, 11, 0, 0), + (132, 12006, 10, 0, 0), + (132, 12022, 11, 0, 0), + (132, 13012, 10, 0, 0), + (132, 15001, 0, 0, 0), + (132, 20132, 0, 0, 0), + (132, 22008, 0, 0, 0), + (132, 31153, 0, 0, 0), + (132, 36001, 0, 0, 0), + (132, 37001, 0, 0, 0), + (132, 40032, 0, 0, 0), + (132, 100132, 10, 0, 0), + (132, 100132, 11, 0, 0), + (132, 110033, 10, 1, 1), + (132, 110033, 11, 1, 1), + (132, 130044, 0, 0, 0), + (132, 140004, 0, 0, 0), + (132, 160054, 0, 0, 0), + (132, 180016, 0, 0, 0), + (132, 190018, 0, 0, 0), + (132, 200006, 0, 0, 0), + (132, 230001, 0, 0, 0), + (132, 240001, 0, 0, 0), + (132, 250027, 0, 0, 0), + (132, 280003, 0, 0, 0), + (132, 290003, 0, 0, 0), + (132, 300001, 0, 0, 0), + (132, 320003, 0, 0, 0), + (132, 330052, 0, 0, 0), + (132, 340002, 0, 0, 0), + (132, 1000119, 0, 0, 0), + (132, 1100002, 0, 0, 0), + (132, 1200002, 0, 0, 0), + (133, 1001, 0, 1, 1), + (133, 2001, 0, 1, 1), + (133, 4001, 0, 0, 0), + (133, 5001, 0, 0, 0), + (133, 6001, 0, 0, 0), + (133, 10002, 10, 0, 0), + (133, 10010, 11, 0, 0), + (133, 11004, 10, 0, 0), + (133, 11004, 11, 0, 0), + (133, 12006, 10, 0, 0), + (133, 12022, 11, 0, 0), + (133, 13012, 10, 0, 0), + (133, 15001, 0, 0, 0), + (133, 20133, 0, 0, 0), + (133, 22008, 0, 0, 0), + (133, 31153, 0, 0, 0), + (133, 36001, 0, 0, 0), + (133, 37001, 0, 0, 0), + (133, 40033, 0, 0, 0), + (133, 100132, 10, 0, 0), + (133, 100132, 11, 0, 0), + (133, 110104, 10, 1, 1), + (133, 110109, 11, 1, 1), + (133, 130048, 0, 0, 0), + (133, 140004, 0, 0, 0), + (133, 160073, 0, 0, 0), + (133, 180015, 0, 0, 0), + (133, 190017, 0, 0, 0), + (133, 200029, 0, 0, 0), + (133, 230001, 0, 0, 0), + (133, 240005, 0, 0, 0), + (133, 250002, 0, 0, 0), + (133, 280036, 0, 0, 0), + (133, 290004, 0, 0, 0), + (133, 300001, 0, 0, 0), + (133, 320004, 0, 0, 0), + (133, 330066, 0, 0, 0), + (133, 340002, 0, 0, 0), + (133, 1000120, 0, 0, 0), + (133, 1100044, 0, 0, 0), + (133, 1200015, 0, 0, 0), + (134, 1001, 0, 1, 1), + (134, 2001, 0, 1, 1), + (134, 4001, 0, 0, 0), + (134, 5001, 0, 0, 0), + (134, 6001, 0, 0, 0), + (134, 10011, 10, 0, 0), + (134, 10011, 11, 0, 0), + (134, 11004, 10, 0, 0), + (134, 11004, 11, 0, 0), + (134, 12006, 10, 0, 0), + (134, 12022, 11, 0, 0), + (134, 13012, 10, 0, 0), + (134, 15001, 0, 0, 0), + (134, 20134, 0, 0, 0), + (134, 22001, 0, 0, 0), + (134, 31153, 0, 0, 0), + (134, 36001, 0, 0, 0), + (134, 37001, 0, 0, 0), + (134, 40054, 0, 0, 0), + (134, 100128, 10, 0, 0), + (134, 100128, 11, 0, 0), + (134, 110084, 10, 1, 1), + (134, 110100, 11, 1, 1), + (134, 130044, 0, 0, 0), + (134, 140014, 0, 0, 0), + (134, 160057, 0, 0, 0), + (134, 180016, 0, 0, 0), + (134, 190018, 0, 0, 0), + (134, 200006, 0, 0, 0), + (134, 230003, 0, 0, 0), + (134, 240005, 0, 0, 0), + (134, 250002, 0, 0, 0), + (134, 280003, 0, 0, 0), + (134, 290004, 0, 0, 0), + (134, 300001, 0, 0, 0), + (134, 320052, 0, 0, 0), + (134, 330021, 0, 0, 0), + (134, 340002, 0, 0, 0), + (134, 1000012, 0, 0, 0), + (134, 1100048, 0, 0, 0), + (134, 1200002, 0, 0, 0), + (135, 1001, 0, 1, 1), + (135, 2001, 0, 1, 1), + (135, 4001, 0, 0, 0), + (135, 5001, 0, 0, 0), + (135, 6001, 0, 0, 0), + (135, 10009, 11, 0, 0), + (135, 10014, 10, 0, 0), + (135, 11004, 10, 0, 0), + (135, 11004, 11, 0, 0), + (135, 12006, 10, 0, 0), + (135, 12028, 11, 0, 0), + (135, 13011, 10, 0, 0), + (135, 15001, 0, 0, 0), + (135, 20135, 0, 0, 0), + (135, 22008, 0, 0, 0), + (135, 31153, 0, 0, 0), + (135, 36001, 0, 0, 0), + (135, 37001, 0, 0, 0), + (135, 40036, 0, 0, 0), + (135, 100128, 10, 0, 0), + (135, 100128, 11, 0, 0), + (135, 110030, 10, 1, 1), + (135, 110030, 11, 1, 1), + (135, 130044, 0, 0, 0), + (135, 140009, 0, 0, 0), + (135, 160054, 0, 0, 0), + (135, 180016, 0, 0, 0), + (135, 190018, 0, 0, 0), + (135, 200006, 0, 0, 0), + (135, 230001, 0, 0, 0), + (135, 240001, 0, 0, 0), + (135, 250027, 0, 0, 0), + (135, 280003, 0, 0, 0), + (135, 290003, 0, 0, 0), + (135, 300001, 0, 0, 0), + (135, 320003, 0, 0, 0), + (135, 330052, 0, 0, 0), + (135, 340002, 0, 0, 0), + (135, 1000119, 0, 0, 0), + (135, 1100002, 0, 0, 0), + (135, 1200002, 0, 0, 0), + (153, 1001, 0, 0, 0), + (153, 2001, 0, 1, 1), + (153, 4001, 0, 0, 0), + (153, 5001, 0, 0, 0), + (153, 6001, 0, 0, 0), + (153, 10010, 10, 0, 0), + (153, 10010, 11, 0, 0), + (153, 11004, 10, 0, 0), + (153, 11004, 11, 0, 0), + (153, 12006, 10, 0, 0), + (153, 12009, 11, 0, 0), + (153, 15001, 0, 0, 0), + (153, 20138, 0, 0, 0), + (153, 23003, 0, 0, 0), + (153, 34001, 10, 0, 0), + (153, 34001, 11, 0, 0), + (153, 35001, 0, 0, 0), + (153, 36001, 0, 0, 0), + (153, 37001, 0, 0, 0), + (153, 100002, 10, 0, 0), + (153, 100002, 11, 0, 0), + (153, 110001, 10, 1, 1), + (153, 110001, 11, 1, 1), + (153, 130026, 0, 0, 0), + (153, 140016, 0, 0, 0), + (153, 160021, 0, 0, 0), + (153, 180019, 0, 0, 0), + (153, 190021, 0, 0, 0), + (153, 200019, 0, 0, 0), + (153, 230001, 0, 0, 0), + (153, 240003, 0, 0, 0), + (153, 250001, 0, 0, 0), + (153, 280019, 0, 0, 0), + (153, 290003, 0, 0, 0), + (153, 300001, 0, 0, 0), + (153, 320023, 0, 0, 0), + (153, 330006, 0, 0, 0), + (153, 340001, 0, 0, 0), + (153, 1000020, 0, 0, 0), + (153, 1100016, 0, 0, 0), + (153, 1200018, 0, 0, 0), + (159, 1001, 0, 1, 1), + (159, 2001, 0, 1, 1), + (159, 4001, 0, 0, 0), + (159, 5001, 0, 0, 0), + (159, 6001, 0, 0, 0), + (159, 10001, 10, 0, 0), + (159, 10004, 11, 0, 0), + (159, 11004, 10, 0, 0), + (159, 11004, 11, 0, 0), + (159, 12009, 10, 0, 0), + (159, 12029, 11, 0, 0), + (159, 15001, 0, 0, 0), + (159, 20104, 0, 0, 0), + (159, 22014, 0, 0, 0), + (159, 31153, 0, 0, 0), + (159, 36001, 0, 0, 0), + (159, 37001, 0, 0, 0), + (159, 40006, 0, 0, 0), + (159, 100002, 10, 0, 0), + (159, 100002, 11, 0, 0), + (159, 110032, 10, 1, 1), + (159, 110032, 11, 1, 1), + (159, 130042, 0, 0, 0), + (159, 140016, 0, 0, 0), + (159, 160026, 0, 0, 0), + (159, 180018, 0, 0, 0), + (159, 190077, 0, 0, 0), + (159, 200042, 0, 0, 0), + (159, 230001, 0, 0, 0), + (159, 240001, 0, 0, 0), + (159, 250030, 0, 0, 0), + (159, 280030, 0, 0, 0), + (159, 290002, 0, 0, 0), + (159, 300001, 0, 0, 0), + (159, 320040, 0, 0, 0), + (159, 330035, 0, 0, 0), + (159, 340002, 0, 0, 0), + (159, 1000001, 0, 0, 0), + (159, 1100119, 0, 0, 0), + (159, 1200048, 0, 0, 0), + (171, 1001, 0, 1, 1), + (171, 2001, 0, 1, 1), + (171, 4001, 0, 0, 0), + (171, 5001, 0, 0, 0), + (171, 6001, 0, 0, 0), + (171, 10003, 10, 0, 0), + (171, 10010, 11, 0, 0), + (171, 11004, 10, 0, 0), + (171, 11004, 11, 0, 0), + (171, 12009, 10, 0, 0), + (171, 12029, 11, 0, 0), + (171, 15001, 0, 0, 0), + (171, 20111, 0, 0, 0), + (171, 22014, 0, 0, 0), + (171, 31153, 0, 0, 0), + (171, 36001, 0, 0, 0), + (171, 37001, 0, 0, 0), + (171, 40062, 0, 0, 0), + (171, 100002, 10, 0, 0), + (171, 100002, 11, 0, 0), + (171, 110044, 10, 0, 0), + (171, 110044, 11, 0, 0), + (171, 130039, 0, 0, 0), + (171, 140019, 0, 0, 0), + (171, 160034, 0, 0, 0), + (171, 180059, 0, 0, 0), + (171, 190029, 0, 0, 0), + (171, 200012, 0, 0, 0), + (171, 230005, 0, 0, 0), + (171, 240002, 0, 0, 0), + (171, 250005, 0, 0, 0), + (171, 280004, 0, 0, 0), + (171, 290007, 0, 0, 0), + (171, 300011, 0, 0, 0), + (171, 320007, 0, 0, 0), + (171, 330033, 0, 0, 0), + (171, 340003, 0, 0, 0), + (171, 1000006, 0, 0, 0), + (171, 1100043, 0, 0, 0), + (171, 1200005, 0, 0, 0), + (173, 1001, 0, 1, 1), + (173, 2001, 0, 1, 1), + (173, 4001, 0, 0, 0), + (173, 5001, 0, 0, 0), + (173, 6001, 0, 0, 0), + (173, 10001, 10, 0, 0), + (173, 10004, 11, 0, 0), + (173, 11004, 10, 0, 0), + (173, 11004, 11, 0, 0), + (173, 12007, 10, 0, 0), + (173, 12009, 11, 0, 0), + (173, 15001, 0, 0, 0), + (173, 20146, 0, 0, 0), + (173, 36001, 0, 0, 0), + (173, 37001, 0, 0, 0), + (173, 40031, 0, 0, 0), + (173, 100002, 10, 0, 0), + (173, 100002, 11, 0, 0), + (173, 110040, 10, 1, 1), + (173, 110040, 11, 1, 1), + (173, 130048, 0, 0, 0), + (173, 140006, 0, 0, 0), + (173, 160012, 0, 0, 0), + (173, 180003, 0, 0, 0), + (173, 190016, 0, 0, 0), + (173, 200002, 0, 0, 0), + (173, 230001, 0, 0, 0), + (173, 240006, 0, 0, 0), + (173, 250002, 0, 0, 0), + (173, 280016, 0, 0, 0), + (173, 290003, 0, 0, 0), + (173, 300001, 0, 0, 0), + (173, 320020, 0, 0, 0), + (173, 330056, 0, 0, 0), + (173, 340002, 0, 0, 0), + (173, 1000074, 0, 0, 0), + (173, 1100001, 0, 0, 0), + (173, 1200034, 0, 0, 0), + (174, 1001, 0, 1, 1), + (174, 2001, 0, 1, 1), + (174, 4001, 0, 0, 0), + (174, 5001, 0, 0, 0), + (174, 6001, 0, 0, 0), + (174, 10010, 11, 0, 0), + (174, 10012, 10, 0, 0), + (174, 11004, 10, 0, 0), + (174, 11004, 11, 0, 0), + (174, 12007, 10, 0, 0), + (174, 12009, 11, 0, 0), + (174, 15001, 0, 0, 0), + (174, 20147, 0, 0, 0), + (174, 36001, 0, 0, 0), + (174, 37001, 0, 0, 0), + (174, 40001, 0, 0, 0), + (174, 100136, 10, 0, 0), + (174, 100136, 11, 0, 0), + (174, 110141, 10, 1, 1), + (174, 110141, 11, 1, 1), + (174, 130022, 0, 0, 0), + (174, 140015, 0, 0, 0), + (174, 160012, 0, 0, 0), + (174, 180001, 0, 0, 0), + (174, 190016, 0, 0, 0), + (174, 200002, 0, 0, 0), + (174, 230001, 0, 0, 0), + (174, 240006, 0, 0, 0), + (174, 250002, 0, 0, 0), + (174, 280016, 0, 0, 0), + (174, 290003, 0, 0, 0), + (174, 300001, 0, 0, 0), + (174, 320020, 0, 0, 0), + (174, 330056, 0, 0, 0), + (174, 340002, 0, 0, 0), + (174, 1000074, 0, 0, 0), + (174, 1100001, 0, 0, 0), + (174, 1200034, 0, 0, 0), + (175, 1001, 0, 1, 1), + (175, 2001, 0, 1, 1), + (175, 4001, 0, 0, 0), + (175, 5001, 0, 0, 0), + (175, 6001, 0, 0, 0), + (175, 10010, 11, 0, 0), + (175, 10012, 10, 0, 0), + (175, 11004, 10, 0, 0), + (175, 11004, 11, 0, 0), + (175, 12007, 10, 0, 0), + (175, 12009, 11, 0, 0), + (175, 15001, 0, 0, 0), + (175, 20148, 0, 0, 0), + (175, 36001, 0, 0, 0), + (175, 37001, 0, 0, 0), + (175, 40001, 0, 0, 0), + (175, 100136, 10, 0, 0), + (175, 100136, 11, 0, 0), + (175, 110141, 10, 1, 1), + (175, 110141, 11, 1, 1), + (175, 130022, 0, 0, 0), + (175, 140015, 0, 0, 0), + (175, 160017, 0, 0, 0), + (175, 180002, 0, 0, 0), + (175, 190015, 0, 0, 0), + (175, 200003, 0, 0, 0), + (175, 230003, 0, 0, 0), + (175, 240005, 0, 0, 0), + (175, 250002, 0, 0, 0), + (175, 280002, 0, 0, 0), + (175, 290004, 0, 0, 0), + (175, 300001, 0, 0, 0), + (175, 320002, 0, 0, 0), + (175, 330056, 0, 0, 0), + (175, 340002, 0, 0, 0), + (175, 1000147, 0, 0, 0), + (175, 1100014, 0, 0, 0), + (175, 1200001, 0, 0, 0), + (176, 1001, 0, 1, 1), + (176, 2001, 0, 1, 1), + (176, 4001, 0, 0, 0), + (176, 5001, 0, 0, 0), + (176, 6001, 0, 0, 0), + (176, 10001, 10, 0, 0), + (176, 10004, 11, 0, 0), + (176, 11004, 10, 0, 0), + (176, 11004, 11, 0, 0), + (176, 12007, 10, 0, 0), + (176, 12009, 11, 0, 0), + (176, 15001, 0, 0, 0), + (176, 20149, 0, 0, 0), + (176, 36001, 0, 0, 0), + (176, 37001, 0, 0, 0), + (176, 40031, 0, 0, 0), + (176, 100002, 10, 0, 0), + (176, 100002, 11, 0, 0), + (176, 110040, 10, 1, 1), + (176, 110040, 11, 1, 1), + (176, 130048, 0, 0, 0), + (176, 140006, 0, 0, 0), + (176, 160012, 0, 0, 0), + (176, 180003, 0, 0, 0), + (176, 190016, 0, 0, 0), + (176, 200002, 0, 0, 0), + (176, 230001, 0, 0, 0), + (176, 240006, 0, 0, 0), + (176, 250002, 0, 0, 0), + (176, 280016, 0, 0, 0), + (176, 290003, 0, 0, 0), + (176, 300001, 0, 0, 0), + (176, 320020, 0, 0, 0), + (176, 330056, 0, 0, 0), + (176, 340002, 0, 0, 0), + (176, 1000074, 0, 0, 0), + (176, 1100001, 0, 0, 0), + (176, 1200034, 0, 0, 0), + (177, 1001, 0, 1, 1), + (177, 2001, 0, 1, 1), + (177, 4001, 0, 0, 0), + (177, 5001, 0, 0, 0), + (177, 6001, 0, 0, 0), + (177, 10001, 10, 0, 0), + (177, 10004, 11, 0, 0), + (177, 11004, 10, 0, 0), + (177, 11004, 11, 0, 0), + (177, 12007, 10, 0, 0), + (177, 12009, 11, 0, 0), + (177, 15001, 0, 0, 0), + (177, 20150, 0, 0, 0), + (177, 36001, 0, 0, 0), + (177, 37001, 0, 0, 0), + (177, 40031, 0, 0, 0), + (177, 100002, 10, 0, 0), + (177, 100002, 11, 0, 0), + (177, 110040, 10, 1, 1), + (177, 110040, 11, 1, 1), + (177, 130048, 0, 0, 0), + (177, 140006, 0, 0, 0), + (177, 160025, 0, 0, 0), + (177, 180052, 0, 0, 0), + (177, 190020, 0, 0, 0), + (177, 200004, 0, 0, 0), + (177, 230001, 0, 0, 0), + (177, 240005, 0, 0, 0), + (177, 250001, 0, 0, 0), + (177, 280018, 0, 0, 0), + (177, 290003, 0, 0, 0), + (177, 300001, 0, 0, 0), + (177, 320022, 0, 0, 0), + (177, 330035, 0, 0, 0), + (177, 340001, 0, 0, 0), + (177, 1000136, 0, 0, 0), + (177, 1100101, 0, 0, 0), + (177, 1200038, 0, 0, 0), + (178, 1001, 0, 1, 1), + (178, 2001, 0, 1, 1), + (178, 4001, 0, 0, 0), + (178, 5001, 0, 0, 0), + (178, 6001, 0, 0, 0), + (178, 10002, 10, 0, 0), + (178, 10010, 11, 0, 0), + (178, 11004, 10, 0, 0), + (178, 11004, 11, 0, 0), + (178, 12007, 10, 0, 0), + (178, 12009, 11, 0, 0), + (178, 15001, 0, 0, 0), + (178, 20151, 0, 0, 0), + (178, 36001, 0, 0, 0), + (178, 37001, 0, 0, 0), + (178, 40031, 0, 0, 0), + (178, 100002, 10, 0, 0), + (178, 100002, 11, 0, 0), + (178, 110040, 10, 1, 1), + (178, 110040, 11, 1, 1), + (178, 130048, 0, 0, 0), + (178, 140006, 0, 0, 0), + (178, 160028, 0, 0, 0), + (178, 180018, 0, 0, 0), + (178, 190077, 0, 0, 0), + (178, 200042, 0, 0, 0), + (178, 230001, 0, 0, 0), + (178, 240001, 0, 0, 0), + (178, 250001, 0, 0, 0), + (178, 280030, 0, 0, 0), + (178, 290003, 0, 0, 0), + (178, 300001, 0, 0, 0), + (178, 320040, 0, 0, 0), + (178, 330035, 0, 0, 0), + (178, 340002, 0, 0, 0), + (178, 1000099, 0, 0, 0), + (178, 1100119, 0, 0, 0), + (178, 1200048, 0, 0, 0), + (179, 1001, 0, 1, 1), + (179, 2001, 0, 1, 1), + (179, 4001, 0, 0, 0), + (179, 5001, 0, 0, 0), + (179, 6001, 0, 0, 0), + (179, 10001, 10, 0, 0), + (179, 10004, 11, 0, 0), + (179, 11004, 10, 0, 0), + (179, 11004, 11, 0, 0), + (179, 12007, 10, 0, 0), + (179, 12009, 11, 0, 0), + (179, 15001, 0, 0, 0), + (179, 20152, 0, 0, 0), + (179, 36001, 0, 0, 0), + (179, 37001, 0, 0, 0), + (179, 40031, 0, 0, 0), + (179, 100002, 10, 0, 0), + (179, 100002, 11, 0, 0), + (179, 110040, 10, 1, 1), + (179, 110040, 11, 1, 1), + (179, 130048, 0, 0, 0), + (179, 140006, 0, 0, 0), + (179, 160012, 0, 0, 0), + (179, 180003, 0, 0, 0), + (179, 190016, 0, 0, 0), + (179, 200002, 0, 0, 0), + (179, 230001, 0, 0, 0), + (179, 240006, 0, 0, 0), + (179, 250002, 0, 0, 0), + (179, 280016, 0, 0, 0), + (179, 290003, 0, 0, 0), + (179, 300001, 0, 0, 0), + (179, 320020, 0, 0, 0), + (179, 330056, 0, 0, 0), + (179, 340002, 0, 0, 0), + (179, 1000074, 0, 0, 0), + (179, 1100001, 0, 0, 0), + (179, 1200034, 0, 0, 0), + (180, 1001, 0, 1, 1), + (180, 2001, 0, 1, 1), + (180, 4001, 0, 0, 0), + (180, 5001, 0, 0, 0), + (180, 6001, 0, 0, 0), + (180, 10001, 10, 0, 0), + (180, 10004, 11, 0, 0), + (180, 11004, 10, 0, 0), + (180, 11004, 11, 0, 0), + (180, 12007, 10, 0, 0), + (180, 12009, 11, 0, 0), + (180, 15001, 0, 0, 0), + (180, 20153, 0, 0, 0), + (180, 36001, 0, 0, 0), + (180, 37001, 0, 0, 0), + (180, 40031, 0, 0, 0), + (180, 100002, 10, 0, 0), + (180, 100002, 11, 0, 0), + (180, 110040, 10, 1, 1), + (180, 110040, 11, 1, 1), + (180, 130048, 0, 0, 0), + (180, 140006, 0, 0, 0), + (180, 160042, 0, 0, 0), + (180, 180028, 0, 0, 0), + (180, 190025, 0, 0, 0), + (180, 200027, 0, 0, 0), + (180, 230003, 0, 0, 0), + (180, 240005, 0, 0, 0), + (180, 250002, 0, 0, 0), + (180, 280029, 0, 0, 0), + (180, 290003, 0, 0, 0), + (180, 300001, 0, 0, 0), + (180, 320027, 0, 0, 0), + (180, 330018, 0, 0, 0), + (180, 340002, 0, 0, 0), + (180, 1000092, 0, 0, 0), + (180, 1100037, 0, 0, 0), + (180, 1200035, 0, 0, 0), + (184, 1001, 0, 1, 1), + (184, 2001, 0, 1, 1), + (184, 4001, 0, 0, 0), + (184, 5001, 0, 0, 0), + (184, 6001, 0, 0, 0), + (184, 10011, 10, 0, 0), + (184, 10011, 11, 0, 0), + (184, 11004, 10, 0, 0), + (184, 11004, 11, 0, 0), + (184, 12006, 10, 0, 0), + (184, 12022, 11, 0, 0), + (184, 15001, 0, 0, 0), + (184, 20157, 0, 0, 0), + (184, 22008, 0, 0, 0), + (184, 31153, 0, 0, 0), + (184, 36001, 0, 0, 0), + (184, 37001, 0, 0, 0), + (184, 40033, 0, 0, 0), + (184, 100132, 10, 0, 0), + (184, 100132, 11, 0, 0), + (184, 110045, 10, 1, 1), + (184, 110045, 11, 1, 1), + (184, 130001, 0, 0, 0), + (184, 140020, 0, 0, 0), + (184, 160055, 0, 0, 0), + (184, 180036, 0, 0, 0), + (184, 190017, 0, 0, 0), + (184, 200029, 0, 0, 0), + (184, 230001, 0, 0, 0), + (184, 240005, 0, 0, 0), + (184, 250002, 0, 0, 0), + (184, 280034, 0, 0, 0), + (184, 290004, 0, 0, 0), + (184, 300001, 0, 0, 0), + (184, 320089, 0, 0, 0), + (184, 330034, 0, 0, 0), + (184, 340002, 0, 0, 0), + (184, 1000113, 0, 0, 0), + (184, 1100044, 0, 0, 0), + (184, 1200015, 0, 0, 0), + (190, 1001, 0, 1, 1), + (190, 2001, 0, 1, 1), + (190, 4001, 0, 0, 0), + (190, 5001, 0, 0, 0), + (190, 6001, 0, 0, 0), + (190, 10007, 10, 0, 0), + (190, 10007, 11, 0, 0), + (190, 11004, 10, 0, 0), + (190, 11004, 11, 0, 0), + (190, 12006, 10, 0, 0), + (190, 12022, 11, 0, 0), + (190, 15001, 0, 0, 0), + (190, 20131, 0, 0, 0), + (190, 22008, 0, 0, 0), + (190, 31153, 0, 0, 0), + (190, 36001, 0, 0, 0), + (190, 37001, 0, 0, 0), + (190, 40034, 0, 0, 0), + (190, 100132, 10, 0, 0), + (190, 100132, 11, 0, 0), + (190, 110104, 10, 1, 1), + (190, 110109, 11, 1, 1), + (190, 130048, 0, 0, 0), + (190, 140007, 0, 0, 0), + (190, 160050, 0, 0, 0), + (190, 180053, 0, 0, 0), + (190, 190024, 0, 0, 0), + (190, 200007, 0, 0, 0), + (190, 230003, 0, 0, 0), + (190, 240005, 0, 0, 0), + (190, 250003, 0, 0, 0), + (190, 280010, 0, 0, 0), + (190, 290003, 0, 0, 0), + (190, 300001, 0, 0, 0), + (190, 320053, 0, 0, 0), + (190, 330043, 0, 0, 0), + (190, 340002, 0, 0, 0), + (190, 1000007, 0, 0, 0), + (190, 1100019, 0, 0, 0), + (190, 1200021, 0, 0, 0), + (208, 1001, 0, 1, 1), + (208, 2001, 0, 1, 1), + (208, 4001, 0, 0, 0), + (208, 5001, 0, 0, 0), + (208, 6001, 0, 0, 0), + (208, 10009, 11, 0, 0), + (208, 10010, 10, 0, 0), + (208, 11004, 10, 0, 0), + (208, 11004, 11, 0, 0), + (208, 12009, 11, 0, 0), + (208, 12010, 10, 0, 0), + (208, 15001, 0, 0, 0), + (208, 20127, 0, 0, 0), + (208, 22009, 0, 0, 0), + (208, 31153, 0, 0, 0), + (208, 36001, 0, 0, 0), + (208, 37001, 0, 0, 0), + (208, 40015, 0, 0, 0), + (208, 100002, 10, 0, 0), + (208, 100002, 11, 0, 0), + (208, 110044, 10, 1, 1), + (208, 110044, 11, 1, 1), + (208, 130049, 0, 0, 0), + (208, 140018, 0, 0, 0), + (208, 160001, 0, 0, 0), + (208, 180049, 0, 0, 0), + (208, 190013, 0, 0, 0), + (208, 200057, 0, 0, 0), + (208, 230001, 0, 0, 0), + (208, 240001, 0, 0, 0), + (208, 250022, 0, 0, 0), + (208, 280045, 0, 0, 0), + (208, 290003, 0, 0, 0), + (208, 300001, 0, 0, 0), + (208, 320033, 0, 0, 0), + (208, 330053, 0, 0, 0), + (208, 340002, 0, 0, 0), + (208, 1000162, 0, 0, 0), + (208, 1100113, 0, 0, 0), + (208, 1200013, 0, 0, 0), + (236, 1001, 0, 1, 1), + (236, 2001, 0, 1, 1), + (236, 4001, 0, 0, 0), + (236, 5001, 0, 0, 0), + (236, 6001, 0, 0, 0), + (236, 10010, 10, 0, 0), + (236, 10010, 11, 0, 0), + (236, 11004, 10, 0, 0), + (236, 11004, 11, 0, 0), + (236, 12007, 10, 0, 0), + (236, 12029, 11, 0, 0), + (236, 15001, 0, 0, 0), + (236, 20113, 0, 0, 0), + (236, 22010, 0, 0, 0), + (236, 31153, 0, 0, 0), + (236, 36001, 0, 0, 0), + (236, 37001, 0, 0, 0), + (236, 40016, 0, 0, 0), + (236, 100002, 10, 0, 0), + (236, 100002, 11, 0, 0), + (236, 110032, 10, 1, 1), + (236, 110032, 11, 1, 1), + (236, 130049, 0, 0, 0), + (236, 140009, 0, 0, 0), + (236, 160006, 0, 0, 0), + (236, 180014, 0, 0, 0), + (236, 190016, 0, 0, 0), + (236, 200002, 0, 0, 0), + (236, 230001, 0, 0, 0), + (236, 240001, 0, 0, 0), + (236, 250026, 0, 0, 0), + (236, 280024, 0, 0, 0), + (236, 290003, 0, 0, 0), + (236, 300001, 0, 0, 0), + (236, 320020, 0, 0, 0), + (236, 330052, 0, 0, 0), + (236, 340002, 0, 0, 0), + (236, 1000123, 0, 0, 0), + (236, 1100001, 0, 0, 0), + (236, 1200034, 0, 0, 0), + (320, 1001, 0, 0, 0), + (320, 2001, 0, 0, 0), + (320, 4001, 0, 0, 0), + (320, 5001, 0, 0, 0), + (320, 6001, 0, 0, 0), + (320, 10014, 11, 0, 0), + (320, 10021, 10, 0, 0), + (320, 11009, 10, 0, 0), + (320, 11009, 11, 0, 0), + (320, 12009, 11, 0, 0), + (320, 12010, 10, 0, 0), + (320, 13011, 10, 0, 0), + (320, 13012, 11, 0, 0), + (320, 15001, 0, 0, 0), + (320, 20207, 0, 0, 0), + (320, 22010, 0, 0, 0), + (320, 31152, 0, 0, 0), + (320, 35003, 10, 0, 0), + (320, 35003, 11, 0, 0), + (320, 36001, 0, 0, 0), + (320, 37001, 0, 0, 0), + (320, 40060, 0, 0, 0), + (320, 100002, 10, 0, 0), + (320, 100002, 11, 0, 0), + (320, 110026, 11, 0, 0), + (320, 110044, 10, 0, 0), + (320, 130035, 0, 0, 0), + (320, 140011, 0, 0, 0), + (320, 160032, 0, 0, 0), + (320, 180017, 0, 0, 0), + (320, 190019, 0, 0, 0), + (320, 200001, 0, 0, 0), + (320, 230003, 0, 0, 0), + (320, 240005, 0, 0, 0), + (320, 250008, 0, 0, 0), + (320, 280040, 0, 0, 0), + (320, 290002, 0, 0, 0), + (320, 300010, 0, 0, 0), + (320, 320006, 0, 0, 0), + (320, 330027, 0, 0, 0), + (320, 340002, 0, 0, 0), + (320, 1000005, 0, 0, 0), + (320, 1100040, 0, 0, 0), + (320, 1200029, 0, 0, 0), + (335, 1001, 0, 0, 0), + (335, 2001, 0, 0, 0), + (335, 4001, 0, 0, 0), + (335, 5001, 0, 0, 0), + (335, 6001, 0, 0, 0), + (335, 10002, 10, 0, 0), + (335, 10010, 11, 0, 0), + (335, 11006, 10, 0, 0), + (335, 11006, 11, 0, 0), + (335, 12009, 10, 0, 0), + (335, 12029, 11, 0, 0), + (335, 15001, 0, 0, 0), + (335, 20210, 0, 0, 0), + (335, 22014, 0, 0, 0), + (335, 31153, 0, 0, 0), + (335, 36001, 0, 0, 0), + (335, 37001, 0, 0, 0), + (335, 40013, 0, 0, 0), + (335, 100002, 10, 0, 0), + (335, 100002, 11, 0, 0), + (335, 110031, 10, 0, 0), + (335, 110031, 11, 0, 0), + (335, 130034, 0, 0, 0), + (335, 140011, 0, 0, 0), + (335, 160027, 0, 0, 0), + (335, 180030, 0, 0, 0), + (335, 190020, 0, 0, 0), + (335, 200004, 0, 0, 0), + (335, 230001, 0, 0, 0), + (335, 240001, 0, 0, 0), + (335, 250001, 0, 0, 0), + (335, 280018, 0, 0, 0), + (335, 290001, 0, 0, 0), + (335, 300001, 0, 0, 0), + (335, 320022, 0, 0, 0), + (335, 330003, 0, 0, 0), + (335, 340002, 0, 0, 0), + (335, 1000138, 0, 0, 0), + (335, 1100005, 0, 0, 0), + (335, 1200017, 0, 0, 0), + (336, 1001, 0, 0, 0), + (336, 2001, 0, 0, 0), + (336, 4001, 0, 0, 0), + (336, 5001, 0, 0, 0), + (336, 6001, 0, 0, 0), + (336, 10002, 10, 0, 0), + (336, 10010, 11, 0, 0), + (336, 11006, 10, 0, 0), + (336, 11006, 11, 0, 0), + (336, 12010, 10, 0, 0), + (336, 12022, 11, 0, 0), + (336, 15001, 0, 0, 0), + (336, 20211, 0, 0, 0), + (336, 22014, 0, 0, 0), + (336, 30001, 0, 0, 0), + (336, 31153, 0, 0, 0), + (336, 36001, 0, 0, 0), + (336, 37001, 0, 0, 0), + (336, 40039, 0, 0, 0), + (336, 100002, 10, 0, 0), + (336, 100002, 11, 0, 0), + (336, 110025, 10, 0, 0), + (336, 110025, 11, 0, 0), + (336, 130034, 0, 0, 0), + (336, 140011, 0, 0, 0), + (336, 160033, 0, 0, 0), + (336, 180051, 0, 0, 0), + (336, 190027, 0, 0, 0), + (336, 200028, 0, 0, 0), + (336, 230001, 0, 0, 0), + (336, 240001, 0, 0, 0), + (336, 250001, 0, 0, 0), + (336, 280008, 0, 0, 0), + (336, 290002, 0, 0, 0), + (336, 300002, 0, 0, 0), + (336, 320011, 0, 0, 0), + (336, 330033, 0, 0, 0), + (336, 340003, 0, 0, 0), + (336, 1000005, 0, 0, 0), + (336, 1100040, 0, 0, 0), + (336, 1200029, 0, 0, 0), + (337, 1001, 0, 0, 0), + (337, 2001, 0, 0, 0), + (337, 4001, 0, 0, 0), + (337, 5001, 0, 0, 0), + (337, 6001, 0, 0, 0), + (337, 10002, 10, 0, 0), + (337, 10010, 11, 0, 0), + (337, 11006, 10, 0, 0), + (337, 11006, 11, 0, 0), + (337, 12009, 10, 0, 0), + (337, 12029, 11, 0, 0), + (337, 15001, 0, 0, 0), + (337, 20212, 0, 0, 0), + (337, 22014, 0, 0, 0), + (337, 29001, 0, 0, 0), + (337, 30001, 0, 0, 0), + (337, 31153, 0, 0, 0), + (337, 36001, 0, 0, 0), + (337, 37001, 0, 0, 0), + (337, 40062, 0, 0, 0), + (337, 100002, 10, 0, 0), + (337, 100002, 11, 0, 0), + (337, 110025, 10, 0, 0), + (337, 110025, 11, 0, 0), + (337, 130034, 0, 0, 0), + (337, 140009, 0, 0, 0), + (337, 160019, 0, 0, 0), + (337, 180030, 0, 0, 0), + (337, 190020, 0, 0, 0), + (337, 200004, 0, 0, 0), + (337, 230001, 0, 0, 0), + (337, 240001, 0, 0, 0), + (337, 250001, 0, 0, 0), + (337, 280018, 0, 0, 0), + (337, 290002, 0, 0, 0), + (337, 300002, 0, 0, 0), + (337, 320022, 0, 0, 0), + (337, 330062, 0, 0, 0), + (337, 340002, 0, 0, 0), + (337, 1000137, 0, 0, 0), + (337, 1100101, 0, 0, 0), + (337, 1200017, 0, 0, 0), + (338, 1001, 0, 0, 0), + (338, 2001, 0, 0, 0), + (338, 4001, 0, 0, 0), + (338, 5001, 0, 0, 0), + (338, 6001, 0, 0, 0), + (338, 10002, 10, 0, 0), + (338, 10010, 11, 0, 0), + (338, 11007, 10, 0, 0), + (338, 11007, 11, 0, 0), + (338, 12010, 10, 0, 0), + (338, 12022, 11, 0, 0), + (338, 13008, 10, 0, 0), + (338, 15001, 0, 0, 0), + (338, 20213, 0, 0, 0), + (338, 22001, 0, 0, 0), + (338, 31153, 0, 0, 0), + (338, 36001, 0, 0, 0), + (338, 37001, 0, 0, 0), + (338, 40058, 0, 0, 0), + (338, 100128, 10, 0, 0), + (338, 100128, 11, 0, 0), + (338, 110026, 10, 0, 0), + (338, 110026, 11, 0, 0), + (338, 130044, 0, 0, 0), + (338, 140008, 0, 0, 0), + (338, 160078, 0, 0, 0), + (338, 180037, 0, 0, 0), + (338, 190069, 0, 0, 0), + (338, 200053, 0, 0, 0), + (338, 230004, 0, 0, 0), + (338, 240005, 0, 0, 0), + (338, 250006, 0, 0, 0), + (338, 280042, 0, 0, 0), + (338, 290007, 0, 0, 0), + (338, 300001, 0, 0, 0), + (338, 320065, 0, 0, 0), + (338, 330019, 0, 0, 0), + (338, 340003, 0, 0, 0), + (338, 1000011, 0, 0, 0), + (338, 1100045, 0, 0, 0), + (338, 1200041, 0, 0, 0), + (339, 1001, 0, 0, 0), + (339, 2001, 0, 0, 0), + (339, 4001, 0, 0, 0), + (339, 5001, 0, 0, 0), + (339, 6001, 0, 0, 0), + (339, 10002, 10, 0, 0), + (339, 10010, 11, 0, 0), + (339, 11006, 10, 0, 0), + (339, 11006, 11, 0, 0), + (339, 12010, 10, 0, 0), + (339, 12022, 11, 0, 0), + (339, 15001, 0, 0, 0), + (339, 20214, 0, 0, 0), + (339, 22001, 0, 0, 0), + (339, 31153, 0, 0, 0), + (339, 36001, 0, 0, 0), + (339, 37001, 0, 0, 0), + (339, 40054, 0, 0, 0), + (339, 100128, 10, 0, 0), + (339, 100128, 11, 0, 0), + (339, 110026, 10, 0, 0), + (339, 110026, 11, 0, 0), + (339, 130044, 0, 0, 0), + (339, 140011, 0, 0, 0), + (339, 160055, 0, 0, 0), + (339, 180015, 0, 0, 0), + (339, 190017, 0, 0, 0), + (339, 200029, 0, 0, 0), + (339, 230001, 0, 0, 0), + (339, 240001, 0, 0, 0), + (339, 250003, 0, 0, 0), + (339, 280034, 0, 0, 0), + (339, 290007, 0, 0, 0), + (339, 300001, 0, 0, 0), + (339, 320089, 0, 0, 0), + (339, 330034, 0, 0, 0), + (339, 340002, 0, 0, 0), + (339, 1000038, 0, 0, 0), + (339, 1100044, 0, 0, 0), + (339, 1200015, 0, 0, 0), + (340, 1001, 0, 0, 0), + (340, 2001, 0, 0, 0), + (340, 4001, 0, 0, 0), + (340, 5001, 0, 0, 0), + (340, 6001, 0, 0, 0), + (340, 10002, 10, 0, 0), + (340, 10010, 11, 0, 0), + (340, 11007, 10, 0, 0), + (340, 11007, 11, 0, 0), + (340, 12010, 10, 0, 0), + (340, 12022, 11, 0, 0), + (340, 13006, 11, 0, 0), + (340, 13008, 10, 0, 0), + (340, 15001, 0, 0, 0), + (340, 20215, 0, 0, 0), + (340, 22001, 0, 0, 0), + (340, 31153, 0, 0, 0), + (340, 36001, 0, 0, 0), + (340, 37001, 0, 0, 0), + (340, 40054, 0, 0, 0), + (340, 100128, 10, 0, 0), + (340, 100128, 11, 0, 0), + (340, 110041, 10, 0, 0), + (340, 110041, 11, 0, 0), + (340, 130044, 0, 0, 0), + (340, 140009, 0, 0, 0), + (340, 160057, 0, 0, 0), + (340, 180016, 0, 0, 0), + (340, 190018, 0, 0, 0), + (340, 200006, 0, 0, 0), + (340, 230001, 0, 0, 0), + (340, 240005, 0, 0, 0), + (340, 250003, 0, 0, 0), + (340, 280003, 0, 0, 0), + (340, 290007, 0, 0, 0), + (340, 300001, 0, 0, 0), + (340, 320052, 0, 0, 0), + (340, 330021, 0, 0, 0), + (340, 340002, 0, 0, 0), + (340, 1000012, 0, 0, 0), + (340, 1100048, 0, 0, 0), + (340, 1200002, 0, 0, 0), + (341, 1001, 0, 0, 0), + (341, 2001, 0, 0, 0), + (341, 4001, 0, 0, 0), + (341, 5001, 0, 0, 0), + (341, 6001, 0, 0, 0), + (341, 10002, 10, 0, 0), + (341, 10010, 11, 0, 0), + (341, 11006, 10, 0, 0), + (341, 11006, 11, 0, 0), + (341, 12009, 10, 0, 0), + (341, 12030, 11, 0, 0), + (341, 15001, 0, 0, 0), + (341, 20216, 0, 0, 0), + (341, 22008, 0, 0, 0), + (341, 31153, 0, 0, 0), + (341, 36001, 0, 0, 0), + (341, 37001, 0, 0, 0), + (341, 40036, 0, 0, 0), + (341, 100128, 10, 0, 0), + (341, 100128, 11, 0, 0), + (341, 110025, 10, 0, 0), + (341, 110025, 11, 0, 0), + (341, 130044, 0, 0, 0), + (341, 140007, 0, 0, 0), + (341, 160057, 0, 0, 0), + (341, 180016, 0, 0, 0), + (341, 190018, 0, 0, 0), + (341, 200006, 0, 0, 0), + (341, 230001, 0, 0, 0), + (341, 240026, 0, 0, 0), + (341, 250027, 0, 0, 0), + (341, 280003, 0, 0, 0), + (341, 290015, 0, 0, 0), + (341, 300001, 0, 0, 0), + (341, 320003, 0, 0, 0), + (341, 330034, 0, 0, 0), + (341, 340002, 0, 0, 0), + (341, 1000117, 0, 0, 0), + (341, 1100002, 0, 0, 0), + (341, 1200002, 0, 0, 0), + (342, 1001, 0, 0, 0), + (342, 2001, 0, 0, 0), + (342, 4001, 0, 0, 0), + (342, 5001, 0, 0, 0), + (342, 6001, 0, 0, 0), + (342, 10009, 11, 0, 0), + (342, 10010, 10, 0, 0), + (342, 11006, 10, 0, 0), + (342, 11006, 11, 0, 0), + (342, 12008, 11, 0, 0), + (342, 12009, 10, 0, 0), + (342, 15001, 0, 0, 0), + (342, 20217, 0, 0, 0), + (342, 22009, 0, 0, 0), + (342, 31153, 0, 0, 0), + (342, 36001, 0, 0, 0), + (342, 37001, 0, 0, 0), + (342, 40022, 0, 0, 0), + (342, 100002, 10, 0, 0), + (342, 100002, 11, 0, 0), + (342, 110025, 10, 0, 0), + (342, 110025, 11, 0, 0), + (342, 130033, 0, 0, 0), + (342, 140010, 0, 0, 0), + (342, 160009, 0, 0, 0), + (342, 180014, 0, 0, 0), + (342, 190016, 0, 0, 0), + (342, 200002, 0, 0, 0), + (342, 230001, 0, 0, 0), + (342, 240001, 0, 0, 0), + (342, 250002, 0, 0, 0), + (342, 280024, 0, 0, 0), + (342, 290004, 0, 0, 0), + (342, 300001, 0, 0, 0), + (342, 320020, 0, 0, 0), + (342, 330053, 0, 0, 0), + (342, 340002, 0, 0, 0), + (342, 1000121, 0, 0, 0), + (342, 1100001, 0, 0, 0), + (342, 1200034, 0, 0, 0), + (343, 1001, 0, 0, 0), + (343, 2001, 0, 0, 0), + (343, 4001, 0, 0, 0), + (343, 5001, 0, 0, 0), + (343, 6001, 0, 0, 0), + (343, 10009, 11, 0, 0), + (343, 10010, 10, 0, 0), + (343, 11006, 10, 0, 0), + (343, 11006, 11, 0, 0), + (343, 12009, 10, 0, 0), + (343, 12030, 11, 0, 0), + (343, 15001, 0, 0, 0), + (343, 20218, 0, 0, 0), + (343, 22009, 0, 0, 0), + (343, 31153, 0, 0, 0), + (343, 36001, 0, 0, 0), + (343, 37001, 0, 0, 0), + (343, 40041, 0, 0, 0), + (343, 100002, 10, 0, 0), + (343, 100002, 11, 0, 0), + (343, 110025, 10, 0, 0), + (343, 110025, 11, 0, 0), + (343, 130033, 0, 0, 0), + (343, 140011, 0, 0, 0), + (343, 160014, 0, 0, 0), + (343, 180002, 0, 0, 0), + (343, 190015, 0, 0, 0), + (343, 200003, 0, 0, 0), + (343, 230001, 0, 0, 0), + (343, 240001, 0, 0, 0), + (343, 250002, 0, 0, 0), + (343, 280002, 0, 0, 0), + (343, 290004, 0, 0, 0), + (343, 300001, 0, 0, 0), + (343, 320002, 0, 0, 0), + (343, 330018, 0, 0, 0), + (343, 340002, 0, 0, 0), + (343, 1000075, 0, 0, 0), + (343, 1100014, 0, 0, 0), + (343, 1200001, 0, 0, 0), + (344, 1001, 0, 0, 0), + (344, 2001, 0, 0, 0), + (344, 4001, 0, 0, 0), + (344, 5001, 0, 0, 0), + (344, 6001, 0, 0, 0), + (344, 10002, 10, 0, 0), + (344, 10010, 11, 0, 0), + (344, 11006, 10, 0, 0), + (344, 11006, 11, 0, 0), + (344, 12009, 10, 0, 0), + (344, 12030, 11, 0, 0), + (344, 15001, 0, 0, 0), + (344, 20219, 0, 0, 0), + (344, 22009, 0, 0, 0), + (344, 31153, 0, 0, 0), + (344, 36001, 0, 0, 0), + (344, 37001, 0, 0, 0), + (344, 40025, 0, 0, 0), + (344, 100002, 10, 0, 0), + (344, 100002, 11, 0, 0), + (344, 110026, 10, 0, 0), + (344, 110026, 11, 0, 0), + (344, 130033, 0, 0, 0), + (344, 140009, 0, 0, 0), + (344, 160012, 0, 0, 0), + (344, 180014, 0, 0, 0), + (344, 190016, 0, 0, 0), + (344, 200002, 0, 0, 0), + (344, 230001, 0, 0, 0), + (344, 240001, 0, 0, 0), + (344, 250002, 0, 0, 0), + (344, 280016, 0, 0, 0), + (344, 290004, 0, 0, 0), + (344, 300001, 0, 0, 0), + (344, 320020, 0, 0, 0), + (344, 330018, 0, 0, 0), + (344, 340002, 0, 0, 0), + (344, 1000122, 0, 0, 0), + (344, 1100001, 0, 0, 0), + (344, 1200034, 0, 0, 0), + (345, 1001, 0, 0, 0), + (345, 2001, 0, 0, 0), + (345, 4001, 0, 0, 0), + (345, 5001, 0, 0, 0), + (345, 6001, 0, 0, 0), + (345, 10002, 10, 0, 0), + (345, 10010, 11, 0, 0), + (345, 11007, 10, 0, 0), + (345, 11007, 11, 0, 0), + (345, 12010, 10, 0, 0), + (345, 12022, 11, 0, 0), + (345, 15001, 0, 0, 0), + (345, 20220, 0, 0, 0), + (345, 22009, 0, 0, 0), + (345, 29001, 0, 0, 0), + (345, 31153, 0, 0, 0), + (345, 36001, 0, 0, 0), + (345, 37001, 0, 0, 0), + (345, 40025, 0, 0, 0), + (345, 100002, 10, 0, 0), + (345, 100002, 11, 0, 0), + (345, 110027, 10, 0, 0), + (345, 110027, 11, 0, 0), + (345, 130033, 0, 0, 0), + (345, 140011, 0, 0, 0), + (345, 160007, 0, 0, 0), + (345, 180014, 0, 0, 0), + (345, 190016, 0, 0, 0), + (345, 200047, 0, 0, 0), + (345, 230002, 0, 0, 0), + (345, 240005, 0, 0, 0), + (345, 250002, 0, 0, 0), + (345, 280024, 0, 0, 0), + (345, 290004, 0, 0, 0), + (345, 300003, 0, 0, 0), + (345, 320029, 0, 0, 0), + (345, 330025, 0, 0, 0), + (345, 340003, 0, 0, 0), + (345, 1000125, 0, 0, 0), + (345, 1100022, 0, 0, 0), + (345, 1200023, 0, 0, 0), + (346, 1001, 0, 0, 0), + (346, 2001, 0, 0, 0), + (346, 4001, 0, 0, 0), + (346, 5001, 0, 0, 0), + (346, 6001, 0, 0, 0), + (346, 10002, 10, 0, 0), + (346, 10010, 11, 0, 0), + (346, 11006, 10, 0, 0), + (346, 11006, 11, 0, 0), + (346, 12009, 11, 0, 0), + (346, 12010, 10, 0, 0), + (346, 15001, 0, 0, 0), + (346, 20221, 0, 0, 0), + (346, 22009, 0, 0, 0), + (346, 30001, 0, 0, 0), + (346, 31153, 0, 0, 0), + (346, 36001, 0, 0, 0), + (346, 37001, 0, 0, 0), + (346, 40061, 0, 0, 0), + (346, 100002, 10, 0, 0), + (346, 100002, 11, 0, 0), + (346, 110104, 10, 0, 0), + (346, 110109, 11, 0, 0), + (346, 130033, 0, 0, 0), + (346, 140008, 0, 0, 0), + (346, 160014, 0, 0, 0), + (346, 180002, 0, 0, 0), + (346, 190015, 0, 0, 0), + (346, 200003, 0, 0, 0), + (346, 230001, 0, 0, 0), + (346, 240001, 0, 0, 0), + (346, 250002, 0, 0, 0), + (346, 280002, 0, 0, 0), + (346, 290004, 0, 0, 0), + (346, 300001, 0, 0, 0), + (346, 320002, 0, 0, 0), + (346, 330018, 0, 0, 0), + (346, 340002, 0, 0, 0), + (346, 1000075, 0, 0, 0), + (346, 1100014, 0, 0, 0), + (346, 1200001, 0, 0, 0), + (347, 1001, 0, 0, 0), + (347, 2001, 0, 0, 0), + (347, 4001, 0, 0, 0), + (347, 5001, 0, 0, 0), + (347, 6001, 0, 0, 0), + (347, 10002, 10, 0, 0), + (347, 10010, 11, 0, 0), + (347, 11006, 10, 0, 0), + (347, 11006, 11, 0, 0), + (347, 12009, 11, 0, 0), + (347, 12010, 10, 0, 0), + (347, 15001, 0, 0, 0), + (347, 20222, 0, 0, 0), + (347, 22004, 0, 0, 0), + (347, 31153, 0, 0, 0), + (347, 36001, 0, 0, 0), + (347, 37001, 0, 0, 0), + (347, 40028, 0, 0, 0), + (347, 100002, 10, 0, 0), + (347, 100002, 11, 0, 0), + (347, 110041, 10, 0, 0), + (347, 110041, 11, 0, 0), + (347, 130033, 0, 0, 0), + (347, 140011, 0, 0, 0), + (347, 160014, 0, 0, 0), + (347, 180002, 0, 0, 0), + (347, 190015, 0, 0, 0), + (347, 200003, 0, 0, 0), + (347, 230001, 0, 0, 0), + (347, 240001, 0, 0, 0), + (347, 250002, 0, 0, 0), + (347, 280002, 0, 0, 0), + (347, 290004, 0, 0, 0), + (347, 300001, 0, 0, 0), + (347, 320002, 0, 0, 0), + (347, 330018, 0, 0, 0), + (347, 340002, 0, 0, 0), + (347, 1000075, 0, 0, 0), + (347, 1100014, 0, 0, 0), + (347, 1200001, 0, 0, 0), + (348, 1001, 0, 0, 0), + (348, 2001, 0, 0, 0), + (348, 4001, 0, 0, 0), + (348, 5001, 0, 0, 0), + (348, 6001, 0, 0, 0), + (348, 10001, 10, 0, 0), + (348, 10010, 11, 0, 0), + (348, 11006, 10, 0, 0), + (348, 11006, 11, 0, 0), + (348, 12008, 10, 0, 0), + (348, 12029, 11, 0, 0), + (348, 15001, 0, 0, 0), + (348, 20223, 0, 0, 0), + (348, 22009, 0, 0, 0), + (348, 31153, 0, 0, 0), + (348, 36001, 0, 0, 0), + (348, 37001, 0, 0, 0), + (348, 40029, 0, 0, 0), + (348, 100002, 10, 0, 0), + (348, 100002, 11, 0, 0), + (348, 110025, 10, 0, 0), + (348, 110025, 11, 0, 0), + (348, 130033, 0, 0, 0), + (348, 140007, 0, 0, 0), + (348, 160012, 0, 0, 0), + (348, 180003, 0, 0, 0), + (348, 190016, 0, 0, 0), + (348, 200002, 0, 0, 0), + (348, 230001, 0, 0, 0), + (348, 240005, 0, 0, 0), + (348, 250002, 0, 0, 0), + (348, 280016, 0, 0, 0), + (348, 290004, 0, 0, 0), + (348, 300001, 0, 0, 0), + (348, 320020, 0, 0, 0), + (348, 330056, 0, 0, 0), + (348, 340002, 0, 0, 0), + (348, 1000074, 0, 0, 0), + (348, 1100001, 0, 0, 0), + (348, 1200034, 0, 0, 0), + (349, 1001, 0, 0, 0), + (349, 2001, 0, 0, 0), + (349, 4001, 0, 0, 0), + (349, 5001, 0, 0, 0), + (349, 6001, 0, 0, 0), + (349, 10002, 10, 0, 0), + (349, 10010, 11, 0, 0), + (349, 11006, 10, 0, 0), + (349, 11006, 11, 0, 0), + (349, 12009, 11, 0, 0), + (349, 12010, 10, 0, 0), + (349, 15001, 0, 0, 0), + (349, 20224, 0, 0, 0), + (349, 22009, 0, 0, 0), + (349, 31153, 0, 0, 0), + (349, 36001, 0, 0, 0), + (349, 37001, 0, 0, 0), + (349, 40046, 0, 0, 0), + (349, 100002, 10, 0, 0), + (349, 100002, 11, 0, 0), + (349, 110041, 10, 0, 0), + (349, 110041, 11, 0, 0), + (349, 130033, 0, 0, 0), + (349, 140017, 0, 0, 0), + (349, 160037, 0, 0, 0), + (349, 180020, 0, 0, 0), + (349, 190022, 0, 0, 0), + (349, 200052, 0, 0, 0), + (349, 230001, 0, 0, 0), + (349, 240001, 0, 0, 0), + (349, 250002, 0, 0, 0), + (349, 280027, 0, 0, 0), + (349, 290004, 0, 0, 0), + (349, 300001, 0, 0, 0), + (349, 320037, 0, 0, 0), + (349, 330043, 0, 0, 0), + (349, 340002, 0, 0, 0), + (349, 1000017, 0, 0, 0), + (349, 1100032, 0, 0, 0), + (349, 1200019, 0, 0, 0), + (350, 1001, 0, 0, 0), + (350, 2001, 0, 0, 0), + (350, 4001, 0, 0, 0), + (350, 5001, 0, 0, 0), + (350, 6001, 0, 0, 0), + (350, 10002, 10, 0, 0), + (350, 10010, 11, 0, 0), + (350, 11006, 10, 0, 0), + (350, 11006, 11, 0, 0), + (350, 12009, 11, 0, 0), + (350, 12010, 10, 0, 0), + (350, 15001, 0, 0, 0), + (350, 20225, 0, 0, 0), + (350, 22009, 0, 0, 0), + (350, 30001, 0, 0, 0), + (350, 31153, 0, 0, 0), + (350, 36001, 0, 0, 0), + (350, 37001, 0, 0, 0), + (350, 40038, 0, 0, 0), + (350, 100119, 10, 0, 0), + (350, 100119, 11, 0, 0), + (350, 110041, 10, 0, 0), + (350, 110041, 11, 0, 0), + (350, 130045, 0, 0, 0), + (350, 140011, 0, 0, 0), + (350, 160038, 0, 0, 0), + (350, 180026, 0, 0, 0), + (350, 190022, 0, 0, 0), + (350, 200020, 0, 0, 0), + (350, 230001, 0, 0, 0), + (350, 240001, 0, 0, 0), + (350, 250002, 0, 0, 0), + (350, 280027, 0, 0, 0), + (350, 290004, 0, 0, 0), + (350, 300003, 0, 0, 0), + (350, 320024, 0, 0, 0), + (350, 330043, 0, 0, 0), + (350, 340002, 0, 0, 0), + (350, 1000017, 0, 0, 0), + (350, 1100098, 0, 0, 0), + (350, 1200019, 0, 0, 0), + (351, 1001, 0, 0, 0), + (351, 2001, 0, 0, 0), + (351, 4001, 0, 0, 0), + (351, 5001, 0, 0, 0), + (351, 6001, 0, 0, 0), + (351, 10002, 10, 0, 0), + (351, 10010, 11, 0, 0), + (351, 11006, 10, 0, 0), + (351, 11006, 11, 0, 0), + (351, 12009, 11, 0, 0), + (351, 12010, 10, 0, 0), + (351, 15001, 0, 0, 0), + (351, 20226, 0, 0, 0), + (351, 22009, 0, 0, 0), + (351, 30001, 0, 0, 0), + (351, 31153, 0, 0, 0), + (351, 36001, 0, 0, 0), + (351, 37001, 0, 0, 0), + (351, 40027, 0, 0, 0), + (351, 100002, 10, 0, 0), + (351, 100002, 11, 0, 0), + (351, 110041, 10, 0, 0), + (351, 110041, 11, 0, 0), + (351, 130045, 0, 0, 0), + (351, 140009, 0, 0, 0), + (351, 160040, 0, 0, 0), + (351, 180023, 0, 0, 0), + (351, 190006, 0, 0, 0), + (351, 200023, 0, 0, 0), + (351, 230001, 0, 0, 0), + (351, 240001, 0, 0, 0), + (351, 250002, 0, 0, 0), + (351, 280028, 0, 0, 0), + (351, 290004, 0, 0, 0), + (351, 300002, 0, 0, 0), + (351, 320027, 0, 0, 0), + (351, 330043, 0, 0, 0), + (351, 340002, 0, 0, 0), + (351, 1000051, 0, 0, 0), + (351, 1100034, 0, 0, 0), + (351, 1200035, 0, 0, 0), + (352, 1001, 0, 0, 0), + (352, 2001, 0, 0, 0), + (352, 4001, 0, 0, 0), + (352, 5001, 0, 0, 0), + (352, 6001, 0, 0, 0), + (352, 10002, 10, 0, 0), + (352, 10010, 11, 0, 0), + (352, 11006, 10, 0, 0), + (352, 11006, 11, 0, 0), + (352, 12009, 10, 0, 0), + (352, 12030, 11, 0, 0), + (352, 15001, 0, 0, 0), + (352, 20227, 0, 0, 0), + (352, 22006, 0, 0, 0), + (352, 31153, 0, 0, 0), + (352, 36001, 0, 0, 0), + (352, 37001, 0, 0, 0), + (352, 40047, 0, 0, 0), + (352, 100002, 10, 0, 0), + (352, 100002, 11, 0, 0), + (352, 110027, 10, 0, 0), + (352, 110027, 11, 0, 0), + (352, 130033, 0, 0, 0), + (352, 140009, 0, 0, 0), + (352, 160040, 0, 0, 0), + (352, 180023, 0, 0, 0), + (352, 190006, 0, 0, 0), + (352, 200023, 0, 0, 0), + (352, 230001, 0, 0, 0), + (352, 240005, 0, 0, 0), + (352, 250002, 0, 0, 0), + (352, 280023, 0, 0, 0), + (352, 290004, 0, 0, 0), + (352, 300001, 0, 0, 0), + (352, 320027, 0, 0, 0), + (352, 330043, 0, 0, 0), + (352, 340002, 0, 0, 0), + (352, 1000016, 0, 0, 0), + (352, 1100020, 0, 0, 0), + (352, 1200037, 0, 0, 0), + (353, 1001, 0, 0, 0), + (353, 2001, 0, 0, 0), + (353, 4001, 0, 0, 0), + (353, 5001, 0, 0, 0), + (353, 6001, 0, 0, 0), + (353, 10002, 10, 0, 0), + (353, 10010, 11, 0, 0), + (353, 11006, 10, 0, 0), + (353, 11006, 11, 0, 0), + (353, 12009, 10, 0, 0), + (353, 12030, 11, 0, 0), + (353, 15001, 0, 0, 0), + (353, 20228, 0, 0, 0), + (353, 22006, 0, 0, 0), + (353, 31153, 0, 0, 0), + (353, 36001, 0, 0, 0), + (353, 37001, 0, 0, 0), + (353, 40031, 0, 0, 0), + (353, 100002, 10, 0, 0), + (353, 100002, 11, 0, 0), + (353, 110027, 10, 0, 0), + (353, 110027, 11, 0, 0), + (353, 130033, 0, 0, 0), + (353, 140007, 0, 0, 0), + (353, 160040, 0, 0, 0), + (353, 180023, 0, 0, 0), + (353, 190006, 0, 0, 0), + (353, 200023, 0, 0, 0), + (353, 230001, 0, 0, 0), + (353, 240005, 0, 0, 0), + (353, 250002, 0, 0, 0), + (353, 280023, 0, 0, 0), + (353, 290003, 0, 0, 0), + (353, 300002, 0, 0, 0), + (353, 320027, 0, 0, 0), + (353, 330059, 0, 0, 0), + (353, 340002, 0, 0, 0), + (353, 1000084, 0, 0, 0), + (353, 1100020, 0, 0, 0), + (353, 1200035, 0, 0, 0), + (354, 1001, 0, 0, 0), + (354, 2001, 0, 0, 0), + (354, 4001, 0, 0, 0), + (354, 5001, 0, 0, 0), + (354, 6001, 0, 0, 0), + (354, 10012, 10, 0, 0), + (354, 10012, 11, 0, 0), + (354, 11004, 10, 0, 0), + (354, 11004, 11, 0, 0), + (354, 12009, 10, 0, 0), + (354, 12027, 11, 0, 0), + (354, 15001, 0, 0, 0), + (354, 20124, 0, 0, 0), + (354, 22005, 0, 0, 0), + (354, 31153, 0, 0, 0), + (354, 36001, 0, 0, 0), + (354, 37001, 0, 0, 0), + (354, 40014, 0, 0, 0), + (354, 100002, 10, 0, 0), + (354, 100002, 11, 0, 0), + (354, 110047, 10, 0, 0), + (354, 110047, 11, 0, 0), + (354, 130033, 0, 0, 0), + (354, 140008, 0, 0, 0), + (354, 160010, 0, 0, 0), + (354, 180055, 0, 0, 0), + (354, 190071, 0, 0, 0), + (354, 200056, 0, 0, 0), + (354, 230001, 0, 0, 0), + (354, 240001, 0, 0, 0), + (354, 250021, 0, 0, 0), + (354, 280044, 0, 0, 0), + (354, 290003, 0, 0, 0), + (354, 300001, 0, 0, 0), + (354, 320092, 0, 0, 0), + (354, 330052, 0, 0, 0), + (354, 340002, 0, 0, 0), + (354, 1000154, 0, 0, 0), + (354, 1100112, 0, 0, 0), + (354, 1200042, 0, 0, 0), + (355, 1001, 0, 0, 0), + (355, 2001, 0, 0, 0), + (355, 4001, 0, 0, 0), + (355, 5001, 0, 0, 0), + (355, 6001, 0, 0, 0), + (355, 10001, 10, 0, 0), + (355, 10004, 11, 0, 0), + (355, 11004, 10, 0, 0), + (355, 11004, 11, 0, 0), + (355, 12003, 11, 0, 0), + (355, 12005, 10, 0, 0), + (355, 15001, 0, 0, 0), + (355, 20112, 0, 0, 0), + (355, 22014, 0, 0, 0), + (355, 31153, 0, 0, 0), + (355, 36001, 0, 0, 0), + (355, 37001, 0, 0, 0), + (355, 40004, 0, 0, 0), + (355, 100002, 10, 0, 0), + (355, 100002, 11, 0, 0), + (355, 110038, 10, 0, 0), + (355, 110038, 11, 0, 0), + (355, 130047, 0, 0, 0), + (355, 140024, 0, 0, 0), + (355, 160047, 0, 0, 0), + (355, 180019, 0, 0, 0), + (355, 190021, 0, 0, 0), + (355, 200019, 0, 0, 0), + (355, 230002, 0, 0, 0), + (355, 240001, 0, 0, 0), + (355, 250020, 0, 0, 0), + (355, 280019, 0, 0, 0), + (355, 290001, 0, 0, 0), + (355, 300001, 0, 0, 0), + (355, 320023, 0, 0, 0), + (355, 330006, 0, 0, 0), + (355, 340001, 0, 0, 0), + (355, 1000003, 0, 0, 0), + (355, 1100016, 0, 0, 0), + (355, 1200018, 0, 0, 0), + (356, 1001, 0, 0, 0), + (356, 2001, 0, 0, 0), + (356, 4001, 0, 0, 0), + (356, 5001, 0, 0, 0), + (356, 6001, 0, 0, 0), + (356, 10009, 11, 0, 0), + (356, 10010, 10, 0, 0), + (356, 11004, 10, 0, 0), + (356, 11004, 11, 0, 0), + (356, 12006, 10, 0, 0), + (356, 12028, 11, 0, 0), + (356, 15001, 0, 0, 0), + (356, 20103, 0, 0, 0), + (356, 22014, 0, 0, 0), + (356, 31153, 0, 0, 0), + (356, 36001, 0, 0, 0), + (356, 37001, 0, 0, 0), + (356, 40005, 0, 0, 0), + (356, 100002, 10, 0, 0), + (356, 100002, 11, 0, 0), + (356, 110012, 10, 0, 0), + (356, 110012, 11, 0, 0), + (356, 130012, 0, 0, 0), + (356, 140014, 0, 0, 0), + (356, 160022, 0, 0, 0), + (356, 180019, 0, 0, 0), + (356, 190021, 0, 0, 0), + (356, 200019, 0, 0, 0), + (356, 230001, 0, 0, 0), + (356, 240003, 0, 0, 0), + (356, 250020, 0, 0, 0), + (356, 280019, 0, 0, 0), + (356, 290001, 0, 0, 0), + (356, 300001, 0, 0, 0), + (356, 320023, 0, 0, 0), + (356, 330006, 0, 0, 0), + (356, 340001, 0, 0, 0), + (356, 1000004, 0, 0, 0), + (356, 1100016, 0, 0, 0), + (356, 1200018, 0, 0, 0), + (357, 1001, 0, 0, 0), + (357, 2001, 0, 0, 0), + (357, 4001, 0, 0, 0), + (357, 5001, 0, 0, 0), + (357, 6001, 0, 0, 0), + (357, 10001, 10, 0, 0), + (357, 10004, 11, 0, 0), + (357, 11004, 10, 0, 0), + (357, 11004, 11, 0, 0), + (357, 12009, 10, 0, 0), + (357, 12029, 11, 0, 0), + (357, 15001, 0, 0, 0), + (357, 20104, 0, 0, 0), + (357, 22014, 0, 0, 0), + (357, 31153, 0, 0, 0), + (357, 36001, 0, 0, 0), + (357, 37001, 0, 0, 0), + (357, 40006, 0, 0, 0), + (357, 100002, 10, 0, 0), + (357, 100002, 11, 0, 0), + (357, 110032, 10, 0, 0), + (357, 110032, 11, 0, 0), + (357, 130012, 0, 0, 0), + (357, 140016, 0, 0, 0), + (357, 160026, 0, 0, 0), + (357, 180018, 0, 0, 0), + (357, 190077, 0, 0, 0), + (357, 200066, 0, 0, 0), + (357, 230001, 0, 0, 0), + (357, 240001, 0, 0, 0), + (357, 250030, 0, 0, 0), + (357, 280030, 0, 0, 0), + (357, 290002, 0, 0, 0), + (357, 300001, 0, 0, 0), + (357, 320040, 0, 0, 0), + (357, 330035, 0, 0, 0), + (357, 340002, 0, 0, 0), + (357, 1000094, 0, 0, 0), + (357, 1100119, 0, 0, 0), + (357, 1200048, 0, 0, 0), + (358, 1001, 0, 0, 0), + (358, 2001, 0, 0, 0), + (358, 4001, 0, 0, 0), + (358, 5001, 0, 0, 0), + (358, 6001, 0, 0, 0), + (358, 10011, 10, 0, 0), + (358, 10011, 11, 0, 0), + (358, 11004, 10, 0, 0), + (358, 11004, 11, 0, 0), + (358, 12009, 10, 0, 0), + (358, 12022, 11, 0, 0), + (358, 15001, 0, 0, 0), + (358, 20105, 0, 0, 0), + (358, 22014, 0, 0, 0), + (358, 31153, 0, 0, 0), + (358, 36001, 0, 0, 0), + (358, 37001, 0, 0, 0), + (358, 40007, 0, 0, 0), + (358, 100002, 10, 0, 0), + (358, 100002, 11, 0, 0), + (358, 110032, 10, 0, 0), + (358, 110032, 11, 0, 0), + (358, 130012, 0, 0, 0), + (358, 140011, 0, 0, 0), + (358, 160026, 0, 0, 0), + (358, 180018, 0, 0, 0), + (358, 190077, 0, 0, 0), + (358, 200066, 0, 0, 0), + (358, 230001, 0, 0, 0), + (358, 240001, 0, 0, 0), + (358, 250030, 0, 0, 0), + (358, 280030, 0, 0, 0), + (358, 290002, 0, 0, 0), + (358, 300001, 0, 0, 0), + (358, 320040, 0, 0, 0), + (358, 330035, 0, 0, 0), + (358, 340002, 0, 0, 0), + (358, 1000001, 0, 0, 0), + (358, 1100119, 0, 0, 0), + (358, 1200048, 0, 0, 0), + (359, 1001, 0, 0, 0), + (359, 2001, 0, 0, 0), + (359, 4001, 0, 0, 0), + (359, 5001, 0, 0, 0), + (359, 6001, 0, 0, 0), + (359, 10011, 10, 0, 0), + (359, 10011, 11, 0, 0), + (359, 11004, 10, 0, 0), + (359, 11004, 11, 0, 0), + (359, 12009, 10, 0, 0), + (359, 12029, 11, 0, 0), + (359, 15001, 0, 0, 0), + (359, 20106, 0, 0, 0), + (359, 22014, 0, 0, 0), + (359, 31153, 0, 0, 0), + (359, 36001, 0, 0, 0), + (359, 37001, 0, 0, 0), + (359, 40008, 0, 0, 0), + (359, 100002, 10, 0, 0), + (359, 100002, 11, 0, 0), + (359, 110032, 10, 0, 0), + (359, 110032, 11, 0, 0), + (359, 130012, 0, 0, 0), + (359, 140003, 0, 0, 0), + (359, 160026, 0, 0, 0), + (359, 180018, 0, 0, 0), + (359, 190077, 0, 0, 0), + (359, 200042, 0, 0, 0), + (359, 230001, 0, 0, 0), + (359, 240001, 0, 0, 0), + (359, 250030, 0, 0, 0), + (359, 280030, 0, 0, 0), + (359, 290002, 0, 0, 0), + (359, 300001, 0, 0, 0), + (359, 320040, 0, 0, 0), + (359, 330035, 0, 0, 0), + (359, 340002, 0, 0, 0), + (359, 1000001, 0, 0, 0), + (359, 1100119, 0, 0, 0), + (359, 1200048, 0, 0, 0), + (360, 1001, 0, 0, 0), + (360, 2001, 0, 0, 0), + (360, 4001, 0, 0, 0), + (360, 5001, 0, 0, 0), + (360, 6001, 0, 0, 0), + (360, 10001, 10, 0, 0), + (360, 10004, 11, 0, 0), + (360, 11004, 10, 0, 0), + (360, 11004, 11, 0, 0), + (360, 12007, 10, 0, 0), + (360, 12029, 11, 0, 0), + (360, 15001, 0, 0, 0), + (360, 20113, 0, 0, 0), + (360, 22009, 0, 0, 0), + (360, 31153, 0, 0, 0), + (360, 36001, 0, 0, 0), + (360, 37001, 0, 0, 0), + (360, 40016, 0, 0, 0), + (360, 100002, 10, 0, 0), + (360, 100002, 11, 0, 0), + (360, 110032, 10, 0, 0), + (360, 110032, 11, 0, 0), + (360, 130022, 0, 0, 0), + (360, 140009, 0, 0, 0), + (360, 160006, 0, 0, 0), + (360, 180014, 0, 0, 0), + (360, 190016, 0, 0, 0), + (360, 200002, 0, 0, 0), + (360, 230001, 0, 0, 0), + (360, 240001, 0, 0, 0), + (360, 250026, 0, 0, 0), + (360, 280024, 0, 0, 0), + (360, 290003, 0, 0, 0), + (360, 300001, 0, 0, 0), + (360, 320020, 0, 0, 0), + (360, 330054, 0, 0, 0), + (360, 340002, 0, 0, 0), + (360, 1000123, 0, 0, 0), + (360, 1100022, 0, 0, 0), + (360, 1200034, 0, 0, 0), + (361, 1001, 0, 0, 0), + (361, 2001, 0, 0, 0), + (361, 4001, 0, 0, 0), + (361, 5001, 0, 0, 0), + (361, 6001, 0, 0, 0), + (361, 10011, 10, 0, 0), + (361, 10011, 11, 0, 0), + (361, 11004, 10, 0, 0), + (361, 11004, 11, 0, 0), + (361, 12007, 10, 0, 0), + (361, 12027, 11, 0, 0), + (361, 15001, 0, 0, 0), + (361, 20115, 0, 0, 0), + (361, 22009, 0, 0, 0), + (361, 31153, 0, 0, 0), + (361, 36001, 0, 0, 0), + (361, 37001, 0, 0, 0), + (361, 40017, 0, 0, 0), + (361, 100002, 10, 0, 0), + (361, 100002, 11, 0, 0), + (361, 110032, 10, 0, 0), + (361, 110032, 11, 0, 0), + (361, 130022, 0, 0, 0), + (361, 140009, 0, 0, 0), + (361, 160006, 0, 0, 0), + (361, 180014, 0, 0, 0), + (361, 190016, 0, 0, 0), + (361, 200002, 0, 0, 0), + (361, 230001, 0, 0, 0), + (361, 240001, 0, 0, 0), + (361, 250026, 0, 0, 0), + (361, 280024, 0, 0, 0), + (361, 290004, 0, 0, 0), + (361, 300001, 0, 0, 0), + (361, 320030, 0, 0, 0), + (361, 330053, 0, 0, 0), + (361, 340002, 0, 0, 0), + (361, 1000015, 0, 0, 0), + (361, 1100001, 0, 0, 0), + (361, 1200034, 0, 0, 0), + (362, 1001, 0, 0, 0), + (362, 2001, 0, 0, 0), + (362, 4001, 0, 0, 0), + (362, 5001, 0, 0, 0), + (362, 6001, 0, 0, 0), + (362, 10006, 11, 0, 0), + (362, 10015, 10, 0, 0), + (362, 11006, 10, 0, 0), + (362, 11006, 11, 0, 0), + (362, 12020, 10, 0, 0), + (362, 12028, 11, 0, 0), + (362, 13007, 10, 0, 0), + (362, 15001, 0, 0, 0), + (362, 20114, 0, 0, 0), + (362, 22009, 0, 0, 0), + (362, 31153, 0, 0, 0), + (362, 36001, 0, 0, 0), + (362, 37001, 0, 0, 0), + (362, 40018, 0, 0, 0), + (362, 100002, 10, 0, 0), + (362, 100002, 11, 0, 0), + (362, 110012, 10, 0, 0), + (362, 110012, 11, 0, 0), + (362, 130016, 0, 0, 0), + (362, 140009, 0, 0, 0), + (362, 160006, 0, 0, 0), + (362, 180014, 0, 0, 0), + (362, 190016, 0, 0, 0), + (362, 200002, 0, 0, 0), + (362, 230001, 0, 0, 0), + (362, 240001, 0, 0, 0), + (362, 250026, 0, 0, 0), + (362, 280024, 0, 0, 0), + (362, 290001, 0, 0, 0), + (362, 300001, 0, 0, 0), + (362, 320030, 0, 0, 0), + (362, 330052, 0, 0, 0), + (362, 340002, 0, 0, 0), + (362, 1000015, 0, 0, 0), + (362, 1100001, 0, 0, 0), + (362, 1200034, 0, 0, 0), + (363, 1001, 0, 0, 0), + (363, 2001, 0, 0, 0), + (363, 4001, 0, 0, 0), + (363, 5001, 0, 0, 0), + (363, 6001, 0, 0, 0), + (363, 10011, 10, 0, 0), + (363, 10011, 11, 0, 0), + (363, 11004, 10, 0, 0), + (363, 11004, 11, 0, 0), + (363, 12006, 10, 0, 0), + (363, 12009, 11, 0, 0), + (363, 15001, 0, 0, 0), + (363, 20118, 0, 0, 0), + (363, 22009, 0, 0, 0), + (363, 31153, 0, 0, 0), + (363, 36001, 0, 0, 0), + (363, 37001, 0, 0, 0), + (363, 40019, 0, 0, 0), + (363, 100002, 10, 0, 0), + (363, 100002, 11, 0, 0), + (363, 110032, 10, 0, 0), + (363, 110032, 11, 0, 0), + (363, 130022, 0, 0, 0), + (363, 140016, 0, 0, 0), + (363, 160011, 0, 0, 0), + (363, 180062, 0, 0, 0), + (363, 190067, 0, 0, 0), + (363, 200048, 0, 0, 0), + (363, 230001, 0, 0, 0), + (363, 240001, 0, 0, 0), + (363, 250026, 0, 0, 0), + (363, 280051, 0, 0, 0), + (363, 290004, 0, 0, 0), + (363, 300001, 0, 0, 0), + (363, 320100, 0, 0, 0), + (363, 330056, 0, 0, 0), + (363, 340002, 0, 0, 0), + (363, 1000057, 0, 0, 0), + (363, 1100120, 0, 0, 0), + (363, 1200049, 0, 0, 0), + (364, 1001, 0, 0, 0), + (364, 2001, 0, 0, 0), + (364, 4001, 0, 0, 0), + (364, 5001, 0, 0, 0), + (364, 6001, 0, 0, 0), + (364, 10021, 10, 0, 0), + (364, 10026, 11, 0, 0), + (364, 11006, 10, 0, 0), + (364, 11006, 11, 0, 0), + (364, 12007, 11, 0, 0), + (364, 12021, 10, 0, 0), + (364, 15001, 0, 0, 0), + (364, 20117, 0, 0, 0), + (364, 22009, 0, 0, 0), + (364, 31153, 0, 0, 0), + (364, 36001, 0, 0, 0), + (364, 37001, 0, 0, 0), + (364, 40021, 0, 0, 0), + (364, 100002, 10, 0, 0), + (364, 100002, 11, 0, 0), + (364, 110044, 10, 0, 0), + (364, 110044, 11, 0, 0), + (364, 130016, 0, 0, 0), + (364, 140005, 0, 0, 0), + (364, 160009, 0, 0, 0), + (364, 180014, 0, 0, 0), + (364, 190016, 0, 0, 0), + (364, 200002, 0, 0, 0), + (364, 230001, 0, 0, 0), + (364, 240006, 0, 0, 0), + (364, 250002, 0, 0, 0), + (364, 280024, 0, 0, 0), + (364, 290004, 0, 0, 0), + (364, 300001, 0, 0, 0), + (364, 320030, 0, 0, 0), + (364, 330057, 0, 0, 0), + (364, 340003, 0, 0, 0), + (364, 1000073, 0, 0, 0), + (364, 1100025, 0, 0, 0), + (364, 1200023, 0, 0, 0), + (365, 1001, 0, 0, 0), + (365, 2001, 0, 0, 0), + (365, 4001, 0, 0, 0), + (365, 5001, 0, 0, 0), + (365, 6001, 0, 0, 0), + (365, 10011, 10, 0, 0), + (365, 10011, 11, 0, 0), + (365, 11004, 10, 0, 0), + (365, 11004, 11, 0, 0), + (365, 12006, 11, 0, 0), + (365, 12009, 10, 0, 0), + (365, 15001, 0, 0, 0), + (365, 20116, 0, 0, 0), + (365, 22009, 0, 0, 0), + (365, 31153, 0, 0, 0), + (365, 36001, 0, 0, 0), + (365, 37001, 0, 0, 0), + (365, 40022, 0, 0, 0), + (365, 100002, 10, 0, 0), + (365, 100002, 11, 0, 0), + (365, 110035, 10, 0, 0), + (365, 110035, 11, 0, 0), + (365, 130022, 0, 0, 0), + (365, 140009, 0, 0, 0), + (365, 160006, 0, 0, 0), + (365, 180014, 0, 0, 0), + (365, 190016, 0, 0, 0), + (365, 200002, 0, 0, 0), + (365, 230001, 0, 0, 0), + (365, 240032, 0, 0, 0), + (365, 250026, 0, 0, 0), + (365, 280016, 0, 0, 0), + (365, 290004, 0, 0, 0), + (365, 300001, 0, 0, 0), + (365, 320020, 0, 0, 0), + (365, 330053, 0, 0, 0), + (365, 340002, 0, 0, 0), + (365, 1000070, 0, 0, 0), + (365, 1100001, 0, 0, 0), + (365, 1200034, 0, 0, 0), + (366, 1001, 0, 0, 0), + (366, 2001, 0, 0, 0), + (366, 4001, 0, 0, 0), + (366, 5001, 0, 0, 0), + (366, 6001, 0, 0, 0), + (366, 10010, 10, 0, 0), + (366, 10010, 11, 0, 0), + (366, 11004, 10, 0, 0), + (366, 11004, 11, 0, 0), + (366, 12009, 10, 0, 0), + (366, 12029, 11, 0, 0), + (366, 15001, 0, 0, 0), + (366, 20109, 0, 0, 0), + (366, 22014, 0, 0, 0), + (366, 31153, 0, 0, 0), + (366, 36001, 0, 0, 0), + (366, 37001, 0, 0, 0), + (366, 40011, 0, 0, 0), + (366, 100002, 10, 0, 0), + (366, 100002, 11, 0, 0), + (366, 110032, 10, 0, 0), + (366, 110032, 11, 0, 0), + (366, 130042, 0, 0, 0), + (366, 140003, 0, 0, 0), + (366, 160025, 0, 0, 0), + (366, 180030, 0, 0, 0), + (366, 190020, 0, 0, 0), + (366, 200004, 0, 0, 0), + (366, 230001, 0, 0, 0), + (366, 240001, 0, 0, 0), + (366, 250001, 0, 0, 0), + (366, 280018, 0, 0, 0), + (366, 290003, 0, 0, 0), + (366, 300001, 0, 0, 0), + (366, 320022, 0, 0, 0), + (366, 330003, 0, 0, 0), + (366, 340002, 0, 0, 0), + (366, 1000138, 0, 0, 0), + (366, 1100005, 0, 0, 0), + (366, 1200017, 0, 0, 0), + (367, 1001, 0, 0, 0), + (367, 2001, 0, 0, 0), + (367, 4001, 0, 0, 0), + (367, 5001, 0, 0, 0), + (367, 6001, 0, 0, 0), + (367, 10010, 10, 0, 0), + (367, 10010, 11, 0, 0), + (367, 11004, 10, 0, 0), + (367, 11004, 11, 0, 0), + (367, 12009, 10, 0, 0), + (367, 12029, 11, 0, 0), + (367, 15001, 0, 0, 0), + (367, 20108, 0, 0, 0), + (367, 22014, 0, 0, 0), + (367, 31153, 0, 0, 0), + (367, 36001, 0, 0, 0), + (367, 37001, 0, 0, 0), + (367, 40013, 0, 0, 0), + (367, 100002, 10, 0, 0), + (367, 100002, 11, 0, 0), + (367, 110044, 10, 0, 0), + (367, 110044, 11, 0, 0), + (367, 130042, 0, 0, 0), + (367, 140019, 0, 0, 0), + (367, 160025, 0, 0, 0), + (367, 180030, 0, 0, 0), + (367, 190020, 0, 0, 0), + (367, 200004, 0, 0, 0), + (367, 230001, 0, 0, 0), + (367, 240001, 0, 0, 0), + (367, 250001, 0, 0, 0), + (367, 280018, 0, 0, 0), + (367, 290001, 0, 0, 0), + (367, 300001, 0, 0, 0), + (367, 320022, 0, 0, 0), + (367, 330003, 0, 0, 0), + (367, 340002, 0, 0, 0), + (367, 1000138, 0, 0, 0), + (367, 1100005, 0, 0, 0), + (367, 1200017, 0, 0, 0), + (368, 1001, 0, 0, 0), + (368, 2001, 0, 0, 0), + (368, 4001, 0, 0, 0), + (368, 5001, 0, 0, 0), + (368, 6001, 0, 0, 0), + (368, 10010, 10, 0, 0), + (368, 10010, 11, 0, 0), + (368, 11004, 10, 0, 0), + (368, 11004, 11, 0, 0), + (368, 12006, 10, 0, 0), + (368, 12022, 11, 0, 0), + (368, 15001, 0, 0, 0), + (368, 20128, 0, 0, 0), + (368, 22009, 0, 0, 0), + (368, 31153, 0, 0, 0), + (368, 36001, 0, 0, 0), + (368, 37001, 0, 0, 0), + (368, 40023, 0, 0, 0), + (368, 100002, 10, 0, 0), + (368, 100002, 11, 0, 0), + (368, 110033, 10, 0, 0), + (368, 110033, 11, 0, 0), + (368, 130016, 0, 0, 0), + (368, 140009, 0, 0, 0), + (368, 160039, 0, 0, 0), + (368, 180023, 0, 0, 0), + (368, 190006, 0, 0, 0), + (368, 200023, 0, 0, 0), + (368, 230001, 0, 0, 0), + (368, 240005, 0, 0, 0), + (368, 250002, 0, 0, 0), + (368, 280023, 0, 0, 0), + (368, 290004, 0, 0, 0), + (368, 300001, 0, 0, 0), + (368, 320027, 0, 0, 0), + (368, 330043, 0, 0, 0), + (368, 340002, 0, 0, 0), + (368, 1000018, 0, 0, 0), + (368, 1100020, 0, 0, 0), + (368, 1200035, 0, 0, 0), + (369, 1001, 0, 0, 0), + (369, 2001, 0, 0, 0), + (369, 4001, 0, 0, 0), + (369, 5001, 0, 0, 0), + (369, 6001, 0, 0, 0), + (369, 10010, 10, 0, 0), + (369, 10010, 11, 0, 0), + (369, 11004, 10, 0, 0), + (369, 11004, 11, 0, 0), + (369, 12006, 10, 0, 0), + (369, 12022, 11, 0, 0), + (369, 15001, 0, 0, 0), + (369, 20119, 0, 0, 0), + (369, 22009, 0, 0, 0), + (369, 31153, 0, 0, 0), + (369, 36001, 0, 0, 0), + (369, 37001, 0, 0, 0), + (369, 40024, 0, 0, 0), + (369, 100002, 10, 0, 0), + (369, 100002, 11, 0, 0), + (369, 110032, 10, 0, 0), + (369, 110032, 11, 0, 0), + (369, 130022, 0, 0, 0), + (369, 140016, 0, 0, 0), + (369, 160006, 0, 0, 0), + (369, 180014, 0, 0, 0), + (369, 190016, 0, 0, 0), + (369, 200002, 0, 0, 0), + (369, 230001, 0, 0, 0), + (369, 240023, 0, 0, 0), + (369, 250026, 0, 0, 0), + (369, 280016, 0, 0, 0), + (369, 290004, 0, 0, 0), + (369, 300001, 0, 0, 0), + (369, 320020, 0, 0, 0), + (369, 330053, 0, 0, 0), + (369, 340002, 0, 0, 0), + (369, 1000070, 0, 0, 0), + (369, 1100001, 0, 0, 0), + (369, 1200034, 0, 0, 0), + (370, 1001, 0, 0, 0), + (370, 2001, 0, 0, 0), + (370, 4001, 0, 0, 0), + (370, 5001, 0, 0, 0), + (370, 6001, 0, 0, 0), + (370, 10002, 10, 0, 0), + (370, 10010, 11, 0, 0), + (370, 11004, 10, 0, 0), + (370, 11004, 11, 0, 0), + (370, 12006, 10, 0, 0), + (370, 12022, 11, 0, 0), + (370, 15001, 0, 0, 0), + (370, 20120, 0, 0, 0), + (370, 22009, 0, 0, 0), + (370, 31153, 0, 0, 0), + (370, 36001, 0, 0, 0), + (370, 37001, 0, 0, 0), + (370, 40025, 0, 0, 0), + (370, 100003, 10, 0, 0), + (370, 100003, 11, 0, 0), + (370, 110032, 10, 0, 0), + (370, 110032, 11, 0, 0), + (370, 130022, 0, 0, 0), + (370, 140016, 0, 0, 0), + (370, 160009, 0, 0, 0), + (370, 180014, 0, 0, 0), + (370, 190016, 0, 0, 0), + (370, 200002, 0, 0, 0), + (370, 230001, 0, 0, 0), + (370, 240023, 0, 0, 0), + (370, 250026, 0, 0, 0), + (370, 280016, 0, 0, 0), + (370, 290004, 0, 0, 0), + (370, 300001, 0, 0, 0), + (370, 320020, 0, 0, 0), + (370, 330053, 0, 0, 0), + (370, 340002, 0, 0, 0), + (370, 1000121, 0, 0, 0), + (370, 1100001, 0, 0, 0), + (370, 1200034, 0, 0, 0), + (371, 1001, 0, 0, 0), + (371, 2001, 0, 0, 0), + (371, 4001, 0, 0, 0), + (371, 5001, 0, 0, 0), + (371, 6001, 0, 0, 0), + (371, 10002, 10, 0, 0), + (371, 10010, 11, 0, 0), + (371, 11004, 10, 0, 0), + (371, 11004, 11, 0, 0), + (371, 12006, 10, 0, 0), + (371, 12009, 11, 0, 0), + (371, 15001, 0, 0, 0), + (371, 20126, 0, 0, 0), + (371, 22009, 0, 0, 0), + (371, 31153, 0, 0, 0), + (371, 36001, 0, 0, 0), + (371, 37001, 0, 0, 0), + (371, 40026, 0, 0, 0), + (371, 100002, 10, 0, 0), + (371, 100002, 11, 0, 0), + (371, 110027, 10, 0, 0), + (371, 110027, 11, 0, 0), + (371, 130022, 0, 0, 0), + (371, 140009, 0, 0, 0), + (371, 160037, 0, 0, 0), + (371, 180020, 0, 0, 0), + (371, 190022, 0, 0, 0), + (371, 200020, 0, 0, 0), + (371, 230001, 0, 0, 0), + (371, 240001, 0, 0, 0), + (371, 250002, 0, 0, 0), + (371, 280027, 0, 0, 0), + (371, 290004, 0, 0, 0), + (371, 300001, 0, 0, 0), + (371, 320024, 0, 0, 0), + (371, 330018, 0, 0, 0), + (371, 340002, 0, 0, 0), + (371, 1000017, 0, 0, 0), + (371, 1100098, 0, 0, 0), + (371, 1200019, 0, 0, 0), + (372, 1001, 0, 0, 0), + (372, 2001, 0, 0, 0), + (372, 4001, 0, 0, 0), + (372, 5001, 0, 0, 0), + (372, 6001, 0, 0, 0), + (372, 10010, 10, 0, 0), + (372, 10010, 11, 0, 0), + (372, 11004, 10, 0, 0), + (372, 11004, 11, 0, 0), + (372, 12006, 10, 0, 0), + (372, 12009, 11, 0, 0), + (372, 15001, 0, 0, 0), + (372, 20129, 0, 0, 0), + (372, 22009, 0, 0, 0), + (372, 25006, 0, 0, 0), + (372, 31153, 0, 0, 0), + (372, 36001, 0, 0, 0), + (372, 37001, 0, 0, 0), + (372, 40049, 0, 0, 0), + (372, 100002, 10, 0, 0), + (372, 100002, 11, 0, 0), + (372, 110033, 10, 0, 0), + (372, 110033, 11, 0, 0), + (372, 130016, 0, 0, 0), + (372, 140009, 0, 0, 0), + (372, 160040, 0, 0, 0), + (372, 180023, 0, 0, 0), + (372, 190006, 0, 0, 0), + (372, 200023, 0, 0, 0), + (372, 230001, 0, 0, 0), + (372, 240006, 0, 0, 0), + (372, 250002, 0, 0, 0), + (372, 280028, 0, 0, 0), + (372, 290003, 0, 0, 0), + (372, 300001, 0, 0, 0), + (372, 320027, 0, 0, 0), + (372, 330043, 0, 0, 0), + (372, 340002, 0, 0, 0), + (372, 1000051, 0, 0, 0), + (372, 1100034, 0, 0, 0), + (372, 1200035, 0, 0, 0), + (373, 1001, 0, 0, 0), + (373, 2001, 0, 0, 0), + (373, 4001, 0, 0, 0), + (373, 5001, 0, 0, 0), + (373, 6001, 0, 0, 0), + (373, 10002, 10, 0, 0), + (373, 10010, 11, 0, 0), + (373, 11004, 10, 0, 0), + (373, 11004, 11, 0, 0), + (373, 12006, 10, 0, 0), + (373, 12022, 11, 0, 0), + (373, 13010, 10, 0, 0), + (373, 15001, 0, 0, 0), + (373, 20133, 0, 0, 0), + (373, 22008, 0, 0, 0), + (373, 31153, 0, 0, 0), + (373, 36001, 0, 0, 0), + (373, 37001, 0, 0, 0), + (373, 40033, 0, 0, 0), + (373, 100132, 10, 0, 0), + (373, 100132, 11, 0, 0), + (373, 110045, 10, 0, 0), + (373, 110045, 11, 0, 0), + (373, 130022, 0, 0, 0), + (373, 140004, 0, 0, 0), + (373, 160073, 0, 0, 0), + (373, 180015, 0, 0, 0), + (373, 190017, 0, 0, 0), + (373, 200029, 0, 0, 0), + (373, 230001, 0, 0, 0), + (373, 240005, 0, 0, 0), + (373, 250002, 0, 0, 0), + (373, 280036, 0, 0, 0), + (373, 290004, 0, 0, 0), + (373, 300001, 0, 0, 0), + (373, 320004, 0, 0, 0), + (373, 330066, 0, 0, 0), + (373, 340002, 0, 0, 0), + (373, 1000120, 0, 0, 0), + (373, 1100044, 0, 0, 0), + (373, 1200015, 0, 0, 0), + (374, 1001, 0, 0, 0), + (374, 2001, 0, 0, 0), + (374, 4001, 0, 0, 0), + (374, 5001, 0, 0, 0), + (374, 6001, 0, 0, 0), + (374, 10002, 10, 0, 0), + (374, 10009, 11, 0, 0), + (374, 11004, 10, 0, 0), + (374, 11004, 11, 0, 0), + (374, 12006, 10, 0, 0), + (374, 12022, 11, 0, 0), + (374, 15001, 0, 0, 0), + (374, 20140, 0, 0, 0), + (374, 22009, 0, 0, 0), + (374, 31153, 0, 0, 0), + (374, 36001, 0, 0, 0), + (374, 37001, 0, 0, 0), + (374, 40042, 0, 0, 0), + (374, 100002, 10, 0, 0), + (374, 100002, 11, 0, 0), + (374, 110027, 10, 1, 1), + (374, 110027, 11, 1, 1), + (374, 130033, 0, 0, 0), + (374, 140011, 0, 0, 0), + (374, 160012, 0, 0, 0), + (374, 180014, 0, 0, 0), + (374, 190016, 0, 0, 0), + (374, 200024, 0, 0, 0), + (374, 230001, 0, 0, 0), + (374, 240001, 0, 0, 0), + (374, 250002, 0, 0, 0), + (374, 280016, 0, 0, 0), + (374, 290004, 0, 0, 0), + (374, 300002, 0, 0, 0), + (374, 320020, 0, 0, 0), + (374, 330008, 0, 0, 0), + (374, 340002, 0, 0, 0), + (374, 1000122, 0, 0, 0), + (374, 1100001, 0, 0, 0), + (374, 1200034, 0, 0, 0), + (375, 1001, 0, 0, 0), + (375, 2001, 0, 0, 0), + (375, 4001, 0, 0, 0), + (375, 5001, 0, 0, 0), + (375, 6001, 0, 0, 0), + (375, 10001, 11, 0, 0), + (375, 10021, 10, 0, 0), + (375, 11010, 10, 0, 0), + (375, 11010, 11, 0, 0), + (375, 12009, 10, 0, 0), + (375, 12030, 11, 0, 0), + (375, 13007, 10, 0, 0), + (375, 13009, 11, 0, 0), + (375, 15001, 0, 0, 0), + (375, 20106, 0, 0, 0), + (375, 22014, 0, 0, 0), + (375, 31153, 0, 0, 0), + (375, 36001, 0, 0, 0), + (375, 37001, 0, 0, 0), + (375, 40008, 0, 0, 0), + (375, 100002, 10, 0, 0), + (375, 100002, 11, 0, 0), + (375, 110084, 10, 0, 0), + (375, 110084, 11, 0, 0), + (375, 130026, 0, 0, 0), + (375, 140011, 0, 0, 0), + (375, 160026, 0, 0, 0), + (375, 180018, 0, 0, 0), + (375, 190077, 0, 0, 0), + (375, 200066, 0, 0, 0), + (375, 230001, 0, 0, 0), + (375, 240001, 0, 0, 0), + (375, 250001, 0, 0, 0), + (375, 280030, 0, 0, 0), + (375, 290001, 0, 0, 0), + (375, 300001, 0, 0, 0), + (375, 320098, 0, 0, 0), + (375, 330035, 0, 0, 0), + (375, 340002, 0, 0, 0), + (375, 1000096, 0, 0, 0), + (375, 1100119, 0, 0, 0), + (375, 1200048, 0, 0, 0), + (377, 1001, 0, 0, 0), + (377, 2001, 0, 0, 0), + (377, 4001, 0, 0, 0), + (377, 5001, 0, 0, 0), + (377, 6001, 0, 0, 0), + (377, 10001, 11, 0, 0), + (377, 10021, 10, 0, 0), + (377, 11010, 10, 0, 0), + (377, 11010, 11, 0, 0), + (377, 12009, 10, 0, 0), + (377, 12027, 11, 0, 0), + (377, 13007, 11, 0, 0), + (377, 13008, 10, 0, 0), + (377, 15001, 0, 0, 0), + (377, 20113, 0, 0, 0), + (377, 22009, 0, 0, 0), + (377, 31153, 0, 0, 0), + (377, 36001, 0, 0, 0), + (377, 37001, 0, 0, 0), + (377, 40016, 0, 0, 0), + (377, 100002, 10, 0, 0), + (377, 100002, 11, 0, 0), + (377, 110084, 10, 0, 0), + (377, 110084, 11, 0, 0), + (377, 130033, 0, 0, 0), + (377, 140005, 0, 0, 0), + (377, 160006, 0, 0, 0), + (377, 180014, 0, 0, 0), + (377, 190016, 0, 0, 0), + (377, 200002, 0, 0, 0), + (377, 230001, 0, 0, 0), + (377, 240001, 0, 0, 0), + (377, 250002, 0, 0, 0), + (377, 280024, 0, 0, 0), + (377, 290004, 0, 0, 0), + (377, 300001, 0, 0, 0), + (377, 320020, 0, 0, 0), + (377, 330056, 0, 0, 0), + (377, 340002, 0, 0, 0), + (377, 1000070, 0, 0, 0), + (377, 1100022, 0, 0, 0), + (377, 1200034, 0, 0, 0), + (378, 1001, 0, 0, 0), + (378, 2001, 0, 0, 0), + (378, 4001, 0, 0, 0), + (378, 5001, 0, 0, 0), + (378, 6001, 0, 0, 0), + (378, 10001, 11, 0, 0), + (378, 10021, 10, 0, 0), + (378, 11010, 10, 0, 0), + (378, 11010, 11, 0, 0), + (378, 12031, 11, 0, 0), + (378, 12033, 10, 0, 0), + (378, 13010, 11, 0, 0), + (378, 13011, 10, 0, 0), + (378, 15001, 0, 0, 0), + (378, 20127, 0, 0, 0), + (378, 22009, 0, 0, 0), + (378, 31153, 0, 0, 0), + (378, 36001, 0, 0, 0), + (378, 37001, 0, 0, 0), + (378, 40015, 0, 0, 0), + (378, 100002, 10, 0, 0), + (378, 100002, 11, 0, 0), + (378, 110084, 10, 0, 0), + (378, 110084, 11, 0, 0), + (378, 130033, 0, 0, 0), + (378, 140006, 0, 0, 0), + (378, 160001, 0, 0, 0), + (378, 180049, 0, 0, 0), + (378, 190013, 0, 0, 0), + (378, 200057, 0, 0, 0), + (378, 230001, 0, 0, 0), + (378, 240006, 0, 0, 0), + (378, 250002, 0, 0, 0), + (378, 280045, 0, 0, 0), + (378, 290004, 0, 0, 0), + (378, 300001, 0, 0, 0), + (378, 320033, 0, 0, 0), + (378, 330034, 0, 0, 0), + (378, 340002, 0, 0, 0), + (378, 1000060, 0, 0, 0), + (378, 1100113, 0, 0, 0), + (378, 1200013, 0, 0, 0), + (379, 1001, 0, 0, 0), + (379, 2001, 0, 0, 0), + (379, 4001, 0, 0, 0), + (379, 5001, 0, 0, 0), + (379, 6001, 0, 0, 0), + (379, 10001, 11, 0, 0), + (379, 10021, 10, 0, 0), + (379, 11010, 10, 0, 0), + (379, 11010, 11, 0, 0), + (379, 12008, 10, 0, 0), + (379, 12027, 11, 0, 0), + (379, 13007, 11, 0, 0), + (379, 13008, 10, 0, 0), + (379, 15001, 0, 0, 0), + (379, 20103, 0, 0, 0), + (379, 22014, 0, 0, 0), + (379, 31153, 0, 0, 0), + (379, 36001, 0, 0, 0), + (379, 37001, 0, 0, 0), + (379, 40005, 0, 0, 0), + (379, 100002, 10, 0, 0), + (379, 100002, 11, 0, 0), + (379, 110084, 10, 0, 0), + (379, 110084, 11, 0, 0), + (379, 130034, 0, 0, 0), + (379, 140007, 0, 0, 0), + (379, 160025, 0, 0, 0), + (379, 180030, 0, 0, 0), + (379, 190020, 0, 0, 0), + (379, 200004, 0, 0, 0), + (379, 230001, 0, 0, 0), + (379, 240006, 0, 0, 0), + (379, 250001, 0, 0, 0), + (379, 280018, 0, 0, 0), + (379, 290002, 0, 0, 0), + (379, 300001, 0, 0, 0), + (379, 320087, 0, 0, 0), + (379, 330035, 0, 0, 0), + (379, 340002, 0, 0, 0), + (379, 1000137, 0, 0, 0), + (379, 1100005, 0, 0, 0), + (379, 1200017, 0, 0, 0), + (383, 1001, 0, 0, 0), + (383, 2001, 0, 0, 0), + (383, 4001, 0, 0, 0), + (383, 5001, 0, 0, 0), + (383, 6001, 0, 0, 0), + (383, 10010, 10, 0, 0), + (383, 10010, 11, 0, 0), + (383, 11004, 10, 0, 0), + (383, 11004, 11, 0, 0), + (383, 12006, 10, 0, 0), + (383, 12009, 11, 0, 0), + (383, 15001, 0, 0, 0), + (383, 20129, 0, 0, 0), + (383, 22009, 0, 0, 0), + (383, 31153, 0, 0, 0), + (383, 36001, 0, 0, 0), + (383, 37001, 0, 0, 0), + (383, 40049, 0, 0, 0), + (383, 100002, 10, 0, 0), + (383, 100002, 11, 0, 0), + (383, 110104, 10, 0, 0), + (383, 110109, 11, 0, 0), + (383, 130033, 0, 0, 0), + (383, 140011, 0, 0, 0), + (383, 160025, 0, 0, 0), + (383, 180030, 0, 0, 0), + (383, 190020, 0, 0, 0), + (383, 200004, 0, 0, 0), + (383, 230001, 0, 0, 0), + (383, 240006, 0, 0, 0), + (383, 250001, 0, 0, 0), + (383, 280041, 0, 0, 0), + (383, 290002, 0, 0, 0), + (383, 300001, 0, 0, 0), + (383, 320022, 0, 0, 0), + (383, 330018, 0, 0, 0), + (383, 340002, 0, 0, 0), + (383, 1000138, 0, 0, 0), + (383, 1100005, 0, 0, 0), + (383, 1200017, 0, 0, 0), + (384, 1001, 0, 0, 0), + (384, 2001, 0, 0, 0), + (384, 4001, 0, 0, 0), + (384, 5001, 0, 0, 0), + (384, 6001, 0, 0, 0), + (384, 10002, 10, 0, 0), + (384, 10010, 11, 0, 0), + (384, 11009, 10, 0, 0), + (384, 11009, 11, 0, 0), + (384, 12007, 10, 0, 0), + (384, 12029, 11, 0, 0), + (384, 13008, 10, 0, 0), + (384, 15001, 0, 0, 0), + (384, 20108, 0, 0, 0), + (384, 22014, 0, 0, 0), + (384, 29002, 0, 0, 0), + (384, 30005, 0, 0, 0), + (384, 31153, 0, 0, 0), + (384, 36001, 0, 0, 0), + (384, 37001, 0, 0, 0), + (384, 40010, 0, 0, 0), + (384, 100002, 10, 0, 0), + (384, 100002, 11, 0, 0), + (384, 110083, 10, 0, 0), + (384, 110084, 11, 0, 0), + (384, 130034, 0, 0, 0), + (384, 140017, 0, 0, 0), + (384, 160027, 0, 0, 0), + (384, 180030, 0, 0, 0), + (384, 190020, 0, 0, 0), + (384, 200004, 0, 0, 0), + (384, 230001, 0, 0, 0), + (384, 240006, 0, 0, 0), + (384, 250001, 0, 0, 0), + (384, 280041, 0, 0, 0), + (384, 290002, 0, 0, 0), + (384, 300002, 0, 0, 0), + (384, 320022, 0, 0, 0), + (384, 330020, 0, 0, 0), + (384, 340002, 0, 0, 0), + (384, 1000138, 0, 0, 0), + (384, 1100101, 0, 0, 0), + (384, 1200038, 0, 0, 0), + (385, 1001, 0, 0, 0), + (385, 2001, 0, 0, 0), + (385, 4001, 0, 0, 0), + (385, 5001, 0, 0, 0), + (385, 6001, 0, 0, 0), + (385, 10011, 10, 0, 0), + (385, 10011, 11, 0, 0), + (385, 11004, 10, 0, 0), + (385, 11004, 11, 0, 0), + (385, 12009, 10, 0, 0), + (385, 12029, 11, 0, 0), + (385, 15001, 0, 0, 0), + (385, 20106, 0, 0, 0), + (385, 22014, 0, 0, 0), + (385, 31153, 0, 0, 0), + (385, 36001, 0, 0, 0), + (385, 37001, 0, 0, 0), + (385, 40008, 0, 0, 0), + (385, 100002, 10, 0, 0), + (385, 100002, 11, 0, 0), + (385, 110082, 10, 0, 0), + (385, 110082, 11, 0, 0), + (385, 130034, 0, 0, 0), + (385, 140003, 0, 0, 0), + (385, 160025, 0, 0, 0), + (385, 180030, 0, 0, 0), + (385, 190020, 0, 0, 0), + (385, 200004, 0, 0, 0), + (385, 230001, 0, 0, 0), + (385, 240001, 0, 0, 0), + (385, 250001, 0, 0, 0), + (385, 280041, 0, 0, 0), + (385, 290002, 0, 0, 0), + (385, 300001, 0, 0, 0), + (385, 320022, 0, 0, 0), + (385, 330053, 0, 0, 0), + (385, 340002, 0, 0, 0), + (385, 1000138, 0, 0, 0), + (385, 1100005, 0, 0, 0), + (385, 1200017, 0, 0, 0), + (386, 1001, 0, 0, 0), + (386, 2001, 0, 0, 0), + (386, 4001, 0, 0, 0), + (386, 5001, 0, 0, 0), + (386, 6001, 0, 0, 0), + (386, 10009, 11, 0, 0), + (386, 10010, 10, 0, 0), + (386, 11004, 10, 0, 0), + (386, 11004, 11, 0, 0), + (386, 12009, 11, 0, 0), + (386, 12010, 10, 0, 0), + (386, 15001, 0, 0, 0), + (386, 20127, 0, 0, 0), + (386, 22009, 0, 0, 0), + (386, 31153, 0, 0, 0), + (386, 36001, 0, 0, 0), + (386, 37001, 0, 0, 0), + (386, 40015, 0, 0, 0), + (386, 100002, 10, 0, 0), + (386, 100002, 11, 0, 0), + (386, 110082, 10, 0, 0), + (386, 110082, 11, 0, 0), + (386, 130033, 0, 0, 0), + (386, 140001, 0, 0, 0), + (386, 160012, 0, 0, 0), + (386, 180003, 0, 0, 0), + (386, 190016, 0, 0, 0), + (386, 200002, 0, 0, 0), + (386, 230001, 0, 0, 0), + (386, 240001, 0, 0, 0), + (386, 250002, 0, 0, 0), + (386, 280024, 0, 0, 0), + (386, 290004, 0, 0, 0), + (386, 300001, 0, 0, 0), + (386, 320020, 0, 0, 0), + (386, 330066, 0, 0, 0), + (386, 340002, 0, 0, 0), + (386, 1000043, 0, 0, 0), + (386, 1100001, 0, 0, 0), + (386, 1200034, 0, 0, 0), + (387, 1001, 0, 0, 0), + (387, 2001, 0, 0, 0), + (387, 4001, 0, 0, 0), + (387, 5001, 0, 0, 0), + (387, 6001, 0, 0, 0), + (387, 10002, 10, 0, 0), + (387, 10010, 11, 0, 0), + (387, 11004, 10, 0, 0), + (387, 11004, 11, 0, 0), + (387, 12006, 10, 0, 0), + (387, 12009, 11, 0, 0), + (387, 15001, 0, 0, 0), + (387, 20121, 0, 0, 0), + (387, 22009, 0, 0, 0), + (387, 31153, 0, 0, 0), + (387, 36001, 0, 0, 0), + (387, 37001, 0, 0, 0), + (387, 40030, 0, 0, 0), + (387, 100002, 10, 0, 0), + (387, 100002, 11, 0, 0), + (387, 110104, 10, 0, 0), + (387, 110109, 11, 0, 0), + (387, 130033, 0, 0, 0), + (387, 140016, 0, 0, 0), + (387, 160012, 0, 0, 0), + (387, 180003, 0, 0, 0), + (387, 190016, 0, 0, 0), + (387, 200032, 0, 0, 0), + (387, 230001, 0, 0, 0), + (387, 240006, 0, 0, 0), + (387, 250002, 0, 0, 0), + (387, 280016, 0, 0, 0), + (387, 290004, 0, 0, 0), + (387, 320020, 0, 0, 0), + (387, 330044, 0, 0, 0), + (387, 340002, 0, 0, 0), + (387, 1000122, 0, 0, 0), + (387, 1100001, 0, 0, 0), + (387, 1200023, 0, 0, 0), + (388, 1001, 0, 0, 0), + (388, 2001, 0, 0, 0), + (388, 4001, 0, 0, 0), + (388, 5001, 0, 0, 0), + (388, 6001, 0, 0, 0), + (388, 10010, 10, 0, 0), + (388, 10010, 11, 0, 0), + (388, 11004, 10, 0, 0), + (388, 11004, 11, 0, 0), + (388, 12009, 10, 0, 0), + (388, 12029, 11, 0, 0), + (388, 15001, 0, 0, 0), + (388, 20109, 0, 0, 0), + (388, 22014, 0, 0, 0), + (388, 31153, 0, 0, 0), + (388, 36001, 0, 0, 0), + (388, 37001, 0, 0, 0), + (388, 40011, 0, 0, 0), + (388, 100002, 10, 0, 0), + (388, 100002, 11, 0, 0), + (388, 110104, 10, 0, 0), + (388, 110109, 11, 0, 0), + (388, 130034, 0, 0, 0), + (388, 140016, 0, 0, 0), + (388, 160025, 0, 0, 0), + (388, 180030, 0, 0, 0), + (388, 190020, 0, 0, 0), + (388, 200031, 0, 0, 0), + (388, 230001, 0, 0, 0), + (388, 240006, 0, 0, 0), + (388, 250001, 0, 0, 0), + (388, 280041, 0, 0, 0), + (388, 290002, 0, 0, 0), + (388, 300001, 0, 0, 0), + (388, 320022, 0, 0, 0), + (388, 330065, 0, 0, 0), + (388, 340002, 0, 0, 0), + (388, 1000136, 0, 0, 0), + (388, 1100005, 0, 0, 0), + (388, 1200038, 0, 0, 0), + (389, 1001, 0, 0, 0), + (389, 2001, 0, 0, 0), + (389, 4001, 0, 0, 0), + (389, 5001, 0, 0, 0), + (389, 6001, 0, 0, 0), + (389, 10002, 10, 0, 0), + (389, 10010, 11, 0, 0), + (389, 11004, 10, 0, 0), + (389, 11004, 11, 0, 0), + (389, 12006, 10, 0, 0), + (389, 12022, 11, 0, 0), + (389, 15001, 0, 0, 0), + (389, 20132, 0, 0, 0), + (389, 22008, 0, 0, 0), + (389, 31153, 0, 0, 0), + (389, 36001, 0, 0, 0), + (389, 37001, 0, 0, 0), + (389, 40032, 0, 0, 0), + (389, 100132, 10, 0, 0), + (389, 100132, 11, 0, 0), + (389, 110104, 10, 0, 0), + (389, 110109, 11, 0, 0), + (389, 130044, 0, 0, 0), + (389, 140011, 0, 0, 0), + (389, 160054, 0, 0, 0), + (389, 180016, 0, 0, 0), + (389, 190018, 0, 0, 0), + (389, 200006, 0, 0, 0), + (389, 230001, 0, 0, 0), + (389, 240006, 0, 0, 0), + (389, 250003, 0, 0, 0), + (389, 280037, 0, 0, 0), + (389, 290003, 0, 0, 0), + (389, 300001, 0, 0, 0), + (389, 320003, 0, 0, 0), + (389, 330034, 0, 0, 0), + (389, 340002, 0, 0, 0), + (389, 1000117, 0, 0, 0), + (389, 1100002, 0, 0, 0), + (389, 1200033, 0, 0, 0), + (390, 1001, 0, 0, 0), + (390, 2001, 0, 0, 0), + (390, 4001, 0, 0, 0), + (390, 5001, 0, 0, 0), + (390, 6001, 0, 0, 0), + (390, 10001, 10, 0, 0), + (390, 10004, 11, 0, 0), + (390, 11009, 10, 0, 0), + (390, 11009, 11, 0, 0), + (390, 12007, 10, 0, 0), + (390, 12029, 11, 0, 0), + (390, 15001, 0, 0, 0), + (390, 20113, 0, 0, 0), + (390, 22009, 0, 0, 0), + (390, 31153, 0, 0, 0), + (390, 36001, 0, 0, 0), + (390, 37001, 0, 0, 0), + (390, 40016, 0, 0, 0), + (390, 100002, 10, 0, 0), + (390, 100002, 11, 0, 0), + (390, 110104, 10, 0, 0), + (390, 110109, 11, 0, 0), + (390, 130034, 0, 0, 0), + (390, 140019, 0, 0, 0), + (390, 160012, 0, 0, 0), + (390, 180014, 0, 0, 0), + (390, 190016, 0, 0, 0), + (390, 200002, 0, 0, 0), + (390, 230001, 0, 0, 0), + (390, 240006, 0, 0, 0), + (390, 250002, 0, 0, 0), + (390, 280024, 0, 0, 0), + (390, 290004, 0, 0, 0), + (390, 300001, 0, 0, 0), + (390, 320020, 0, 0, 0), + (390, 330018, 0, 0, 0), + (390, 340002, 0, 0, 0), + (390, 1000074, 0, 0, 0), + (390, 1100025, 0, 0, 0), + (390, 1200023, 0, 0, 0), + (391, 1001, 0, 0, 0), + (391, 2001, 0, 0, 0), + (391, 4001, 0, 0, 0), + (391, 5001, 0, 0, 0), + (391, 6001, 0, 0, 0), + (391, 10009, 11, 0, 0), + (391, 10010, 10, 0, 0), + (391, 11009, 10, 0, 0), + (391, 11009, 11, 0, 0), + (391, 12007, 10, 0, 0), + (391, 12029, 11, 0, 0), + (391, 13006, 10, 0, 0), + (391, 15001, 0, 0, 0), + (391, 20103, 0, 0, 0), + (391, 22014, 0, 0, 0), + (391, 31153, 0, 0, 0), + (391, 36001, 0, 0, 0), + (391, 37001, 0, 0, 0), + (391, 40005, 0, 0, 0), + (391, 100002, 10, 0, 0), + (391, 100002, 11, 0, 0), + (391, 110104, 10, 0, 0), + (391, 110109, 11, 0, 0), + (391, 130034, 0, 0, 0), + (391, 140007, 0, 0, 0), + (391, 160025, 0, 0, 0), + (391, 180030, 0, 0, 0), + (391, 190020, 0, 0, 0), + (391, 200004, 0, 0, 0), + (391, 230001, 0, 0, 0), + (391, 240006, 0, 0, 0), + (391, 250001, 0, 0, 0), + (391, 280041, 0, 0, 0), + (391, 290002, 0, 0, 0), + (391, 300001, 0, 0, 0), + (391, 320087, 0, 0, 0), + (391, 330020, 0, 0, 0), + (391, 340002, 0, 0, 0), + (391, 1000138, 0, 0, 0), + (391, 1100101, 0, 0, 0), + (391, 1200017, 0, 0, 0), + (392, 1001, 0, 0, 0), + (392, 2001, 0, 0, 0), + (392, 4001, 0, 0, 0), + (392, 5001, 0, 0, 0), + (392, 6001, 0, 0, 0), + (392, 10002, 10, 0, 0), + (392, 10010, 11, 0, 0), + (392, 11009, 10, 0, 0), + (392, 11009, 11, 0, 0), + (392, 12008, 10, 0, 0), + (392, 12029, 11, 0, 0), + (392, 13007, 10, 0, 0), + (392, 15001, 0, 0, 0), + (392, 20131, 0, 0, 0), + (392, 22008, 0, 0, 0), + (392, 31153, 0, 0, 0), + (392, 36001, 0, 0, 0), + (392, 37001, 0, 0, 0), + (392, 40034, 0, 0, 0), + (392, 100132, 10, 0, 0), + (392, 100132, 11, 0, 0), + (392, 110084, 10, 0, 0), + (392, 110084, 11, 0, 0), + (392, 130048, 0, 0, 0), + (392, 140013, 0, 0, 0), + (392, 160048, 0, 0, 0), + (392, 180022, 0, 0, 0), + (392, 190068, 0, 0, 0), + (392, 200022, 0, 0, 0), + (392, 230001, 0, 0, 0), + (392, 240006, 0, 0, 0), + (392, 250003, 0, 0, 0), + (392, 280022, 0, 0, 0), + (392, 290004, 0, 0, 0), + (392, 300001, 0, 0, 0), + (392, 320026, 0, 0, 0), + (392, 330053, 0, 0, 0), + (392, 340002, 0, 0, 0), + (392, 1000007, 0, 0, 0), + (392, 1100019, 0, 0, 0), + (392, 1200021, 0, 0, 0), + (393, 1001, 0, 0, 0), + (393, 2001, 0, 0, 0), + (393, 4001, 0, 0, 0), + (393, 5001, 0, 0, 0), + (393, 6001, 0, 0, 0), + (393, 10011, 10, 0, 0), + (393, 10011, 11, 0, 0), + (393, 11009, 10, 0, 0), + (393, 11009, 11, 0, 0), + (393, 12008, 10, 0, 0), + (393, 12027, 11, 0, 0), + (393, 13008, 10, 0, 0), + (393, 15001, 0, 0, 0), + (393, 20105, 0, 0, 0), + (393, 22014, 0, 0, 0), + (393, 31153, 0, 0, 0), + (393, 36001, 0, 0, 0), + (393, 37001, 0, 0, 0), + (393, 40007, 0, 0, 0), + (393, 100002, 10, 0, 0), + (393, 100002, 11, 0, 0), + (393, 110104, 10, 0, 0), + (393, 110109, 11, 0, 0), + (393, 130026, 0, 0, 0), + (393, 140011, 0, 0, 0), + (393, 160027, 0, 0, 0), + (393, 180034, 0, 0, 0), + (393, 190020, 0, 0, 0), + (393, 200004, 0, 0, 0), + (393, 230001, 0, 0, 0), + (393, 240006, 0, 0, 0), + (393, 250001, 0, 0, 0), + (393, 280041, 0, 0, 0), + (393, 290002, 0, 0, 0), + (393, 300007, 0, 0, 0), + (393, 320022, 0, 0, 0), + (393, 330034, 0, 0, 0), + (393, 340002, 0, 0, 0), + (393, 1000138, 0, 0, 0), + (393, 1100101, 0, 0, 0), + (393, 1200038, 0, 0, 0), + (394, 1001, 0, 0, 0), + (394, 2001, 0, 0, 0), + (394, 4001, 0, 0, 0), + (394, 5001, 0, 0, 0), + (394, 6001, 0, 0, 0), + (394, 10002, 11, 0, 0), + (394, 10022, 10, 0, 0), + (394, 11009, 10, 0, 0), + (394, 11009, 11, 0, 0), + (394, 12007, 10, 0, 0), + (394, 12023, 11, 0, 0), + (394, 13006, 11, 0, 0), + (394, 13008, 10, 0, 0), + (394, 15001, 0, 0, 0), + (394, 20120, 0, 0, 0), + (394, 22009, 0, 0, 0), + (394, 30003, 0, 0, 0), + (394, 31153, 0, 0, 0), + (394, 36001, 0, 0, 0), + (394, 37001, 0, 0, 0), + (394, 40025, 0, 0, 0), + (394, 100003, 10, 0, 0), + (394, 100003, 11, 0, 0), + (394, 110083, 10, 0, 0), + (394, 110084, 11, 0, 0), + (394, 130033, 0, 0, 0), + (394, 140011, 0, 0, 0), + (394, 160009, 0, 0, 0), + (394, 180014, 0, 0, 0), + (394, 190016, 0, 0, 0), + (394, 200002, 0, 0, 0), + (394, 230001, 0, 0, 0), + (394, 240006, 0, 0, 0), + (394, 250002, 0, 0, 0), + (394, 280016, 0, 0, 0), + (394, 290004, 0, 0, 0), + (394, 300001, 0, 0, 0), + (394, 320020, 0, 0, 0), + (394, 330053, 0, 0, 0), + (394, 340002, 0, 0, 0), + (394, 1000121, 0, 0, 0), + (394, 1100001, 0, 0, 0), + (394, 1200034, 0, 0, 0), + (395, 1001, 0, 0, 0), + (395, 2001, 0, 0, 0), + (395, 4001, 0, 0, 0), + (395, 5001, 0, 0, 0), + (395, 6001, 0, 0, 0), + (395, 10021, 10, 0, 0), + (395, 10021, 11, 0, 0), + (395, 11008, 10, 0, 0), + (395, 11008, 11, 0, 0), + (395, 12037, 10, 0, 0), + (395, 12039, 11, 0, 0), + (395, 15001, 0, 0, 0), + (395, 20112, 0, 0, 0), + (395, 22014, 0, 0, 0), + (395, 31151, 0, 0, 0), + (395, 36001, 0, 0, 0), + (395, 37001, 0, 0, 0), + (395, 40004, 0, 0, 0), + (395, 100005, 10, 0, 0), + (395, 100005, 11, 0, 0), + (395, 110104, 10, 0, 0), + (395, 110109, 11, 0, 0), + (395, 130036, 0, 0, 0), + (395, 140020, 0, 0, 0), + (395, 160017, 0, 0, 0), + (395, 180013, 0, 0, 0), + (395, 190015, 0, 0, 0), + (395, 200051, 0, 0, 0), + (395, 230002, 0, 0, 0), + (395, 240006, 0, 0, 0), + (395, 250006, 0, 0, 0), + (395, 280006, 0, 0, 0), + (395, 290005, 0, 0, 0), + (395, 300008, 0, 0, 0), + (395, 320031, 0, 0, 0), + (395, 330027, 0, 0, 0), + (395, 340003, 0, 0, 0), + (395, 1000025, 0, 0, 0), + (395, 1100027, 0, 0, 0), + (395, 1200024, 0, 0, 0), + (396, 1001, 0, 0, 0), + (396, 2001, 0, 0, 0), + (396, 4001, 0, 0, 0), + (396, 5001, 0, 0, 0), + (396, 6001, 0, 0, 0), + (396, 10030, 10, 0, 0), + (396, 10030, 11, 0, 0), + (396, 11008, 10, 0, 0), + (396, 11008, 11, 0, 0), + (396, 12038, 11, 0, 0), + (396, 12040, 10, 0, 0), + (396, 14003, 11, 0, 0), + (396, 15001, 0, 0, 0), + (396, 20113, 0, 0, 0), + (396, 22009, 0, 0, 0), + (396, 31153, 0, 0, 0), + (396, 36001, 0, 0, 0), + (396, 37001, 0, 0, 0), + (396, 40016, 0, 0, 0), + (396, 100129, 10, 0, 0), + (396, 100129, 11, 0, 0), + (396, 110080, 10, 0, 0), + (396, 110109, 11, 0, 0), + (396, 130046, 0, 0, 0), + (396, 140019, 0, 0, 0), + (396, 160017, 0, 0, 0), + (396, 180013, 0, 0, 0), + (396, 190015, 0, 0, 0), + (396, 200051, 0, 0, 0), + (396, 230004, 0, 0, 0), + (396, 240006, 0, 0, 0), + (396, 250006, 0, 0, 0), + (396, 280006, 0, 0, 0), + (396, 290005, 0, 0, 0), + (396, 300008, 0, 0, 0), + (396, 320031, 0, 0, 0), + (396, 330027, 0, 0, 0), + (396, 340003, 0, 0, 0), + (396, 1000025, 0, 0, 0), + (396, 1100027, 0, 0, 0), + (396, 1200024, 0, 0, 0), + (397, 1001, 0, 0, 0), + (397, 2001, 0, 0, 0), + (397, 4001, 0, 0, 0), + (397, 5001, 0, 0, 0), + (397, 6001, 0, 0, 0), + (397, 10030, 10, 0, 0), + (397, 10030, 11, 0, 0), + (397, 11008, 10, 0, 0), + (397, 11008, 11, 0, 0), + (397, 12038, 11, 0, 0), + (397, 12040, 10, 0, 0), + (397, 15001, 0, 0, 0), + (397, 20128, 0, 0, 0), + (397, 22009, 0, 0, 0), + (397, 25005, 0, 0, 0), + (397, 31153, 0, 0, 0), + (397, 36001, 0, 0, 0), + (397, 37001, 0, 0, 0), + (397, 40023, 0, 0, 0), + (397, 100095, 10, 0, 0), + (397, 100095, 11, 0, 0), + (397, 110094, 10, 0, 0), + (397, 110094, 11, 0, 0), + (397, 130036, 0, 0, 0), + (397, 140020, 0, 0, 0), + (397, 160017, 0, 0, 0), + (397, 180013, 0, 0, 0), + (397, 190015, 0, 0, 0), + (397, 200051, 0, 0, 0), + (397, 230004, 0, 0, 0), + (397, 240006, 0, 0, 0), + (397, 250004, 0, 0, 0), + (397, 280006, 0, 0, 0), + (397, 290005, 0, 0, 0), + (397, 300008, 0, 0, 0), + (397, 320031, 0, 0, 0), + (397, 330027, 0, 0, 0), + (397, 340003, 0, 0, 0), + (397, 350005, 0, 0, 0), + (397, 1000025, 0, 0, 0), + (397, 1100014, 0, 0, 0), + (397, 1200024, 0, 0, 0), + (398, 1001, 0, 0, 0), + (398, 2001, 0, 0, 0), + (398, 4001, 0, 0, 0), + (398, 5001, 0, 0, 0), + (398, 6001, 0, 0, 0), + (398, 10021, 10, 0, 0), + (398, 10021, 11, 0, 0), + (398, 11008, 10, 0, 0), + (398, 11008, 11, 0, 0), + (398, 12038, 11, 0, 0), + (398, 12040, 10, 0, 0), + (398, 14003, 11, 0, 0), + (398, 15001, 0, 0, 0), + (398, 20125, 0, 0, 0), + (398, 22009, 0, 0, 0), + (398, 31153, 0, 0, 0), + (398, 36001, 0, 0, 0), + (398, 37001, 0, 0, 0), + (398, 40020, 0, 0, 0), + (398, 100096, 10, 0, 0), + (398, 100096, 11, 0, 0), + (398, 110080, 10, 0, 0), + (398, 110109, 11, 0, 0), + (398, 130046, 0, 0, 0), + (398, 140002, 0, 0, 0), + (398, 160017, 0, 0, 0), + (398, 180013, 0, 0, 0), + (398, 190015, 0, 0, 0), + (398, 200051, 0, 0, 0), + (398, 230004, 0, 0, 0), + (398, 240006, 0, 0, 0), + (398, 250004, 0, 0, 0), + (398, 280006, 0, 0, 0), + (398, 290005, 0, 0, 0), + (398, 300008, 0, 0, 0), + (398, 320031, 0, 0, 0), + (398, 330027, 0, 0, 0), + (398, 340003, 0, 0, 0), + (398, 1000025, 0, 0, 0), + (398, 1100026, 0, 0, 0), + (398, 1200024, 0, 0, 0), + (399, 1001, 0, 0, 0), + (399, 2001, 0, 0, 0), + (399, 4001, 0, 0, 0), + (399, 5001, 0, 0, 0), + (399, 6001, 0, 0, 0), + (399, 10030, 10, 0, 0), + (399, 10030, 11, 0, 0), + (399, 11008, 10, 0, 0), + (399, 11008, 11, 0, 0), + (399, 12038, 11, 0, 0), + (399, 12040, 10, 0, 0), + (399, 14003, 11, 0, 0), + (399, 15001, 0, 0, 0), + (399, 20117, 0, 0, 0), + (399, 22009, 0, 0, 0), + (399, 29002, 0, 0, 0), + (399, 30004, 0, 0, 0), + (399, 31153, 0, 0, 0), + (399, 36001, 0, 0, 0), + (399, 37001, 0, 0, 0), + (399, 40021, 0, 0, 0), + (399, 100127, 10, 0, 0), + (399, 100127, 11, 0, 0), + (399, 110172, 10, 0, 0), + (399, 110172, 11, 0, 0), + (399, 130016, 0, 0, 0), + (399, 140002, 0, 0, 0), + (399, 160032, 0, 0, 0), + (399, 180033, 0, 0, 0), + (399, 190026, 0, 0, 0), + (399, 200010, 0, 0, 0), + (399, 230001, 0, 0, 0), + (399, 240007, 0, 0, 0), + (399, 250007, 0, 0, 0), + (399, 280040, 0, 0, 0), + (399, 290005, 0, 0, 0), + (399, 300008, 0, 0, 0), + (399, 320043, 0, 0, 0), + (399, 330047, 0, 0, 0), + (399, 340003, 0, 0, 0), + (399, 1000033, 0, 0, 0), + (399, 1100039, 0, 0, 0), + (399, 1200029, 0, 0, 0), + (400, 1001, 0, 0, 0), + (400, 2001, 0, 0, 0), + (400, 4001, 0, 0, 0), + (400, 5001, 0, 0, 0), + (400, 6001, 0, 0, 0), + (400, 10021, 10, 0, 0), + (400, 10021, 11, 0, 0), + (400, 11008, 10, 0, 0), + (400, 11008, 11, 0, 0), + (400, 12038, 11, 0, 0), + (400, 12040, 10, 0, 0), + (400, 13010, 10, 0, 0), + (400, 14003, 11, 0, 0), + (400, 15001, 0, 0, 0), + (400, 20108, 0, 0, 0), + (400, 22014, 0, 0, 0), + (400, 31153, 0, 0, 0), + (400, 36001, 0, 0, 0), + (400, 37001, 0, 0, 0), + (400, 40010, 0, 0, 0), + (400, 100129, 10, 0, 0), + (400, 100129, 11, 0, 0), + (400, 110108, 10, 0, 0), + (400, 110109, 11, 0, 0), + (400, 130034, 0, 0, 0), + (400, 140019, 0, 0, 0), + (400, 160032, 0, 0, 0), + (400, 180033, 0, 0, 0), + (400, 190026, 0, 0, 0), + (400, 200010, 0, 0, 0), + (400, 230003, 0, 0, 0), + (400, 240007, 0, 0, 0), + (400, 250005, 0, 0, 0), + (400, 280040, 0, 0, 0), + (400, 290005, 0, 0, 0), + (400, 300008, 0, 0, 0), + (400, 320043, 0, 0, 0), + (400, 330047, 0, 0, 0), + (400, 340003, 0, 0, 0), + (400, 1000033, 0, 0, 0), + (400, 1100039, 0, 0, 0), + (400, 1200029, 0, 0, 0), + (401, 1001, 0, 0, 0), + (401, 2001, 0, 0, 0), + (401, 4001, 0, 0, 0), + (401, 5001, 0, 0, 0), + (401, 6001, 0, 0, 0), + (401, 10030, 10, 0, 0), + (401, 10030, 11, 0, 0), + (401, 11008, 10, 0, 0), + (401, 11008, 11, 0, 0), + (401, 12038, 11, 0, 0), + (401, 12040, 10, 0, 0), + (401, 13012, 10, 0, 0), + (401, 14003, 11, 0, 0), + (401, 15001, 0, 0, 0), + (401, 20134, 0, 0, 0), + (401, 22001, 0, 0, 0), + (401, 31153, 0, 0, 0), + (401, 36001, 0, 0, 0), + (401, 37001, 0, 0, 0), + (401, 40035, 0, 0, 0), + (401, 100005, 10, 0, 0), + (401, 100005, 11, 0, 0), + (401, 110104, 10, 0, 0), + (401, 110109, 11, 0, 0), + (401, 130046, 0, 0, 0), + (401, 140019, 0, 0, 0), + (401, 160078, 0, 0, 0), + (401, 180037, 0, 0, 0), + (401, 190069, 0, 0, 0), + (401, 200053, 0, 0, 0), + (401, 230003, 0, 0, 0), + (401, 240007, 0, 0, 0), + (401, 250007, 0, 0, 0), + (401, 280042, 0, 0, 0), + (401, 290005, 0, 0, 0), + (401, 300008, 0, 0, 0), + (401, 320012, 0, 0, 0), + (401, 330019, 0, 0, 0), + (401, 340003, 0, 0, 0), + (401, 1000011, 0, 0, 0), + (401, 1100045, 0, 0, 0), + (401, 1200039, 0, 0, 0), + (402, 1001, 0, 1, 1), + (402, 2001, 0, 1, 1), + (402, 4001, 0, 0, 0), + (402, 5001, 0, 0, 0), + (402, 6001, 0, 0, 0), + (402, 10009, 11, 0, 0), + (402, 10010, 10, 0, 0), + (402, 11004, 10, 0, 0), + (402, 11004, 11, 0, 0), + (402, 12012, 11, 0, 0), + (402, 12064, 10, 0, 0), + (402, 13002, 10, 0, 0), + (402, 13004, 11, 0, 0), + (402, 15001, 0, 0, 0), + (402, 20127, 0, 0, 0), + (402, 22009, 0, 0, 0), + (402, 31153, 0, 0, 0), + (402, 36001, 0, 0, 0), + (402, 37001, 0, 0, 0), + (402, 40015, 0, 0, 0), + (402, 100002, 10, 0, 0), + (402, 100002, 11, 0, 0), + (402, 110082, 10, 1, 1), + (402, 110084, 11, 1, 1), + (402, 130045, 0, 0, 0), + (402, 140018, 0, 0, 0), + (402, 160090, 0, 0, 0), + (402, 180049, 0, 0, 0), + (402, 190013, 0, 0, 0), + (402, 200057, 0, 0, 0), + (402, 230001, 0, 0, 0), + (402, 240001, 0, 0, 0), + (402, 250002, 0, 0, 0), + (402, 280054, 0, 0, 0), + (402, 290006, 0, 0, 0), + (402, 300011, 0, 0, 0), + (402, 320104, 0, 0, 0), + (402, 330033, 0, 0, 0), + (402, 340002, 0, 0, 0), + (402, 1000162, 0, 0, 0), + (402, 1100124, 0, 0, 0), + (402, 1200013, 0, 0, 0), + (403, 1001, 0, 0, 0), + (403, 2001, 0, 0, 0), + (403, 4001, 0, 0, 0), + (403, 5001, 0, 0, 0), + (403, 6001, 0, 0, 0), + (403, 10002, 10, 0, 0), + (403, 10002, 11, 0, 0), + (403, 11004, 10, 0, 0), + (403, 11011, 11, 0, 0), + (403, 12011, 10, 0, 0), + (403, 12011, 11, 0, 0), + (403, 13004, 10, 0, 0), + (403, 13006, 11, 0, 0), + (403, 14002, 10, 0, 0), + (403, 14002, 11, 0, 0), + (403, 15001, 0, 0, 0), + (403, 20140, 0, 0, 0), + (403, 22009, 0, 0, 0), + (403, 25005, 0, 0, 0), + (403, 29001, 0, 0, 0), + (403, 30003, 0, 0, 0), + (403, 31153, 0, 0, 0), + (403, 36001, 0, 0, 0), + (403, 37001, 0, 0, 0), + (403, 40042, 0, 0, 0), + (403, 100002, 10, 0, 0), + (403, 100002, 11, 0, 0), + (403, 110102, 10, 1, 1), + (403, 110103, 11, 1, 1), + (403, 130048, 0, 0, 0), + (403, 140009, 0, 0, 0), + (403, 150004, 0, 0, 0), + (403, 160012, 0, 0, 0), + (403, 180014, 0, 0, 0), + (403, 190016, 0, 0, 0), + (403, 200036, 0, 0, 0), + (403, 230001, 0, 0, 0), + (403, 240007, 0, 0, 0), + (403, 250002, 0, 0, 0), + (403, 280038, 0, 0, 0), + (403, 290006, 0, 0, 0), + (403, 300007, 0, 0, 0), + (403, 320078, 0, 0, 0), + (403, 330040, 0, 0, 0), + (403, 350003, 0, 0, 0), + (403, 1000071, 0, 0, 0), + (403, 1100068, 0, 0, 0), + (403, 1200023, 0, 0, 0), + (404, 1001, 0, 0, 0), + (404, 2001, 0, 0, 0), + (404, 4001, 0, 0, 0), + (404, 5001, 0, 0, 0), + (404, 6001, 0, 0, 0), + (404, 10014, 11, 0, 0), + (404, 10021, 10, 0, 0), + (404, 11009, 10, 0, 0), + (404, 11009, 11, 0, 0), + (404, 12011, 11, 0, 0), + (404, 12064, 10, 0, 0), + (404, 13013, 10, 0, 0), + (404, 13016, 11, 0, 0), + (404, 14003, 10, 0, 0), + (404, 14004, 0, 0, 0), + (404, 14004, 11, 0, 0), + (404, 15001, 0, 0, 0), + (404, 20207, 0, 0, 0), + (404, 22010, 0, 0, 0), + (404, 25005, 0, 0, 0), + (404, 29003, 0, 0, 0), + (404, 30006, 0, 0, 0), + (404, 31152, 0, 0, 0), + (404, 36001, 0, 0, 0), + (404, 37001, 0, 0, 0), + (404, 40060, 0, 0, 0), + (404, 100005, 10, 0, 0), + (404, 100005, 11, 0, 0), + (404, 110173, 10, 1, 1), + (404, 110174, 11, 1, 1), + (404, 130051, 0, 0, 0), + (404, 140007, 0, 0, 0), + (404, 150003, 0, 0, 0), + (404, 160097, 0, 0, 0), + (404, 180060, 0, 0, 0), + (404, 190028, 0, 0, 0), + (404, 200012, 0, 0, 0), + (404, 230005, 0, 0, 0), + (404, 240007, 0, 0, 0), + (404, 250005, 0, 0, 0), + (404, 280032, 0, 0, 0), + (404, 290005, 0, 0, 0), + (404, 320007, 0, 0, 0), + (404, 330022, 0, 0, 0), + (404, 350005, 0, 0, 0), + (404, 1000054, 0, 0, 0), + (404, 1100043, 0, 0, 0), + (404, 1200099, 0, 0, 0), + (405, 1001, 0, 0, 0), + (405, 2001, 0, 0, 0), + (405, 4001, 0, 0, 0), + (405, 5001, 0, 0, 0), + (405, 6001, 0, 0, 0), + (405, 10021, 10, 0, 0), + (405, 10026, 11, 0, 0), + (405, 11006, 10, 0, 0), + (405, 11006, 11, 0, 0), + (405, 12007, 11, 0, 0), + (405, 12021, 10, 0, 0), + (405, 13006, 10, 0, 0), + (405, 15001, 0, 0, 0), + (405, 20117, 0, 0, 0), + (405, 22009, 0, 0, 0), + (405, 31153, 0, 0, 0), + (405, 36001, 0, 0, 0), + (405, 37001, 0, 0, 0), + (405, 40021, 0, 0, 0), + (405, 100120, 10, 0, 0), + (405, 100120, 11, 0, 0), + (405, 110174, 10, 0, 0), + (405, 110174, 11, 0, 0), + (405, 130008, 0, 0, 0), + (405, 140005, 0, 0, 0), + (405, 160009, 0, 0, 0), + (405, 180014, 0, 0, 0), + (405, 190016, 0, 0, 0), + (405, 200036, 0, 0, 0), + (405, 230003, 0, 0, 0), + (405, 240006, 0, 0, 0), + (405, 250006, 0, 0, 0), + (405, 280068, 0, 0, 0), + (405, 290006, 0, 0, 0), + (405, 300006, 0, 0, 0), + (405, 320030, 0, 0, 0), + (405, 330070, 0, 0, 0), + (405, 340003, 0, 0, 0), + (405, 1000073, 0, 0, 0), + (405, 1100025, 0, 0, 0), + (405, 1200023, 0, 0, 0), + (406, 1001, 0, 1, 1), + (406, 2001, 0, 1, 1), + (406, 4001, 0, 0, 0), + (406, 5001, 0, 0, 0), + (406, 6001, 0, 0, 0), + (406, 10001, 11, 0, 0), + (406, 10021, 10, 0, 0), + (406, 11009, 10, 0, 0), + (406, 11009, 11, 0, 0), + (406, 12009, 11, 0, 0), + (406, 12010, 10, 0, 0), + (406, 13011, 10, 0, 0), + (406, 13012, 11, 0, 0), + (406, 15001, 0, 0, 0), + (406, 20207, 0, 0, 0), + (406, 22010, 0, 0, 0), + (406, 31152, 0, 0, 0), + (406, 36001, 0, 0, 0), + (406, 37001, 0, 0, 0), + (406, 40060, 0, 0, 0), + (406, 100005, 10, 0, 0), + (406, 100005, 11, 0, 0), + (406, 110174, 10, 1, 1), + (406, 110174, 11, 1, 1), + (406, 130003, 0, 0, 0), + (406, 140010, 0, 0, 0), + (406, 160032, 0, 0, 0), + (406, 180035, 0, 0, 0), + (406, 190053, 0, 0, 0), + (406, 200043, 0, 0, 0), + (406, 230003, 0, 0, 0), + (406, 240006, 0, 0, 0), + (406, 250006, 0, 0, 0), + (406, 280040, 0, 0, 0), + (406, 290006, 0, 0, 0), + (406, 300010, 0, 0, 0), + (406, 320042, 0, 0, 0), + (406, 330027, 0, 0, 0), + (406, 340004, 0, 0, 0), + (406, 1000052, 0, 0, 0), + (406, 1100040, 0, 0, 0), + (406, 1200029, 0, 0, 0), + (407, 1001, 0, 1, 1), + (407, 2001, 0, 1, 1), + (407, 4001, 0, 0, 0), + (407, 5001, 0, 0, 0), + (407, 6001, 0, 0, 0), + (407, 10001, 11, 0, 0), + (407, 10021, 10, 0, 0), + (407, 11006, 10, 0, 0), + (407, 11006, 11, 0, 0), + (407, 12008, 11, 0, 0), + (407, 12009, 10, 0, 0), + (407, 13006, 10, 0, 0), + (407, 15001, 0, 0, 0), + (407, 20213, 0, 0, 0), + (407, 22001, 0, 0, 0), + (407, 31153, 0, 0, 0), + (407, 36001, 0, 0, 0), + (407, 37001, 0, 0, 0), + (407, 40058, 0, 0, 0), + (407, 100003, 10, 0, 0), + (407, 100003, 11, 0, 0), + (407, 110174, 10, 1, 1), + (407, 110174, 11, 1, 1), + (407, 130003, 0, 0, 0), + (407, 140007, 0, 0, 0), + (407, 160078, 0, 0, 0), + (407, 180037, 0, 0, 0), + (407, 190087, 0, 0, 0), + (407, 200071, 0, 0, 0), + (407, 230003, 0, 0, 0), + (407, 240006, 0, 0, 0), + (407, 250006, 0, 0, 0), + (407, 280042, 0, 0, 0), + (407, 290006, 0, 0, 0), + (407, 300011, 0, 0, 0), + (407, 320012, 0, 0, 0), + (407, 330027, 0, 0, 0), + (407, 340003, 0, 0, 0), + (407, 1000011, 0, 0, 0), + (407, 1100045, 0, 0, 0), + (407, 1200039, 0, 0, 0), + (408, 1001, 0, 1, 1), + (408, 2001, 0, 1, 1), + (408, 4001, 0, 0, 0), + (408, 5001, 0, 0, 0), + (408, 6001, 0, 0, 0), + (408, 10001, 11, 0, 0), + (408, 10021, 10, 0, 0), + (408, 11007, 10, 0, 0), + (408, 11007, 11, 0, 0), + (408, 12006, 11, 0, 0), + (408, 12008, 10, 0, 0), + (408, 13007, 11, 0, 0), + (408, 13009, 10, 0, 0), + (408, 15001, 0, 0, 0), + (408, 20111, 0, 0, 0), + (408, 22014, 0, 0, 0), + (408, 29002, 0, 0, 0), + (408, 30003, 0, 0, 0), + (408, 31153, 0, 0, 0), + (408, 36001, 0, 0, 0), + (408, 37001, 0, 0, 0), + (408, 40013, 0, 0, 0), + (408, 100005, 10, 0, 0), + (408, 100005, 11, 0, 0), + (408, 110174, 10, 1, 1), + (408, 110174, 11, 1, 1), + (408, 130003, 0, 0, 0), + (408, 140009, 0, 0, 0), + (408, 160084, 0, 0, 0), + (408, 180034, 0, 0, 0), + (408, 190052, 0, 0, 0), + (408, 200011, 0, 0, 0), + (408, 230003, 0, 0, 0), + (408, 240002, 0, 0, 0), + (408, 250005, 0, 0, 0), + (408, 280071, 0, 0, 0), + (408, 290005, 0, 0, 0), + (408, 300009, 0, 0, 0), + (408, 320097, 0, 0, 0), + (408, 330070, 0, 0, 0), + (408, 340004, 0, 0, 0), + (408, 1000139, 0, 0, 0), + (408, 1100101, 0, 0, 0), + (408, 1200101, 0, 0, 0), + (409, 1001, 0, 1, 1), + (409, 2001, 0, 1, 1), + (409, 4001, 0, 0, 0), + (409, 5001, 0, 0, 0), + (409, 6001, 0, 0, 0), + (409, 10001, 11, 0, 0), + (409, 10021, 10, 0, 0), + (409, 11007, 10, 0, 0), + (409, 11007, 11, 0, 0), + (409, 12008, 11, 0, 0), + (409, 12009, 10, 0, 0), + (409, 15001, 0, 0, 0), + (409, 20220, 0, 0, 0), + (409, 22009, 0, 0, 0), + (409, 31153, 0, 0, 0), + (409, 36001, 0, 0, 0), + (409, 37001, 0, 0, 0), + (409, 40025, 0, 0, 0), + (409, 100004, 10, 0, 0), + (409, 100004, 11, 0, 0), + (409, 110174, 10, 1, 1), + (409, 110174, 11, 1, 1), + (409, 130003, 0, 0, 0), + (409, 140007, 0, 0, 0), + (409, 160007, 0, 0, 0), + (409, 180005, 0, 0, 0), + (409, 190062, 0, 0, 0), + (409, 200036, 0, 0, 0), + (409, 230003, 0, 0, 0), + (409, 240006, 0, 0, 0), + (409, 250006, 0, 0, 0), + (409, 280007, 0, 0, 0), + (409, 290005, 0, 0, 0), + (409, 300007, 0, 0, 0), + (409, 320029, 0, 0, 0), + (409, 330027, 0, 0, 0), + (409, 340004, 0, 0, 0), + (409, 1000073, 0, 0, 0), + (409, 1100025, 0, 0, 0), + (409, 1200023, 0, 0, 0), + (410, 1001, 0, 1, 1), + (410, 2001, 0, 1, 1), + (410, 4001, 0, 0, 0), + (410, 5001, 0, 0, 0), + (410, 6001, 0, 0, 0), + (410, 10001, 11, 0, 0), + (410, 10021, 0, 0, 0), + (410, 10021, 10, 0, 0), + (410, 11007, 10, 0, 0), + (410, 11007, 11, 0, 0), + (410, 12006, 11, 0, 0), + (410, 12009, 10, 0, 0), + (410, 13008, 11, 0, 0), + (410, 13011, 10, 0, 0), + (410, 15001, 0, 0, 0), + (410, 20130, 0, 0, 0), + (410, 22006, 0, 0, 0), + (410, 31153, 0, 0, 0), + (410, 36001, 0, 0, 0), + (410, 37001, 0, 0, 0), + (410, 40055, 0, 0, 0), + (410, 100003, 10, 0, 0), + (410, 100003, 11, 0, 0), + (410, 110174, 10, 1, 1), + (410, 110174, 11, 1, 1), + (410, 130003, 0, 0, 0), + (410, 140010, 0, 0, 0), + (410, 160042, 0, 0, 0), + (410, 180029, 0, 0, 0), + (410, 190050, 0, 0, 0), + (410, 200009, 0, 0, 0), + (410, 230003, 0, 0, 0), + (410, 240006, 0, 0, 0), + (410, 250006, 0, 0, 0), + (410, 280063, 0, 0, 0), + (410, 290005, 0, 0, 0), + (410, 300009, 0, 0, 0), + (410, 320076, 0, 0, 0), + (410, 330071, 0, 0, 0), + (410, 340004, 0, 0, 0), + (410, 1000131, 0, 0, 0), + (410, 1100037, 0, 0, 0), + (410, 1200107, 0, 0, 0), + (411, 1001, 0, 0, 0), + (411, 2001, 0, 0, 0), + (411, 4001, 0, 0, 0), + (411, 5001, 0, 0, 0), + (411, 6001, 0, 0, 0), + (411, 10002, 10, 0, 0), + (411, 10010, 11, 0, 0), + (411, 11004, 10, 0, 0), + (411, 11004, 11, 0, 0), + (411, 12006, 10, 0, 0), + (411, 12022, 11, 0, 0), + (411, 13012, 10, 0, 0), + (411, 15001, 0, 0, 0), + (411, 20132, 0, 0, 0), + (411, 22008, 0, 0, 0), + (411, 31153, 0, 0, 0), + (411, 36001, 0, 0, 0), + (411, 37001, 0, 0, 0), + (411, 40032, 0, 0, 0), + (411, 100132, 10, 0, 0), + (411, 100132, 11, 0, 0), + (411, 110067, 10, 0, 0), + (411, 110067, 11, 0, 0), + (411, 130044, 0, 0, 0), + (411, 140008, 0, 0, 0), + (411, 160055, 0, 0, 0), + (411, 180015, 0, 0, 0), + (411, 190017, 0, 0, 0), + (411, 200029, 0, 0, 0), + (411, 230003, 0, 0, 0), + (411, 240006, 0, 0, 0), + (411, 250002, 0, 0, 0), + (411, 280036, 0, 0, 0), + (411, 290007, 0, 0, 0), + (411, 300004, 0, 0, 0), + (411, 320004, 0, 0, 0), + (411, 330067, 0, 0, 0), + (411, 340002, 0, 0, 0), + (411, 1000113, 0, 0, 0), + (411, 1100044, 0, 0, 0), + (411, 1200015, 0, 0, 0), + (412, 1001, 0, 0, 0), + (412, 2001, 0, 0, 0), + (412, 4001, 0, 0, 0), + (412, 5001, 0, 0, 0), + (412, 6001, 0, 0, 0), + (412, 10010, 11, 0, 0), + (412, 10017, 10, 0, 0), + (412, 11009, 10, 0, 0), + (412, 11009, 11, 0, 0), + (412, 12008, 10, 0, 0), + (412, 12029, 11, 0, 0), + (412, 13007, 11, 0, 0), + (412, 13009, 10, 0, 0), + (412, 15001, 0, 0, 0), + (412, 16001, 0, 0, 0), + (412, 20111, 0, 0, 0), + (412, 22014, 0, 0, 0), + (412, 29002, 10, 0, 0), + (412, 30003, 11, 0, 0), + (412, 31153, 0, 0, 0), + (412, 36001, 0, 0, 0), + (412, 37001, 0, 0, 0), + (412, 40013, 0, 0, 0), + (412, 100112, 10, 0, 0), + (412, 100112, 11, 0, 0), + (412, 110083, 10, 0, 0), + (412, 110084, 11, 0, 0), + (412, 130039, 0, 0, 0), + (412, 140020, 0, 0, 0), + (412, 160027, 0, 0, 0), + (412, 180034, 0, 0, 0), + (412, 190001, 0, 0, 0), + (412, 200054, 0, 0, 0), + (412, 230003, 0, 0, 0), + (412, 240005, 0, 0, 0), + (412, 250001, 0, 0, 0), + (412, 280041, 0, 0, 0), + (412, 290002, 0, 0, 0), + (412, 300011, 0, 0, 0), + (412, 320087, 0, 0, 0), + (412, 330025, 0, 0, 0), + (412, 340003, 0, 0, 0), + (412, 1000139, 0, 0, 0), + (412, 1100005, 0, 0, 0), + (412, 1200038, 0, 0, 0), + (413, 1001, 0, 0, 0), + (413, 2001, 0, 0, 0), + (413, 4001, 0, 0, 0), + (413, 5001, 0, 0, 0), + (413, 6001, 0, 0, 0), + (413, 10006, 11, 0, 0), + (413, 10015, 10, 0, 0), + (413, 11006, 10, 0, 0), + (413, 11006, 11, 0, 0), + (413, 12021, 10, 0, 0), + (413, 12029, 11, 0, 0), + (413, 13006, 10, 0, 0), + (413, 15001, 0, 0, 0), + (413, 20114, 0, 0, 0), + (413, 22009, 0, 0, 0), + (413, 31153, 0, 0, 0), + (413, 36001, 0, 0, 0), + (413, 37001, 0, 0, 0), + (413, 40018, 0, 0, 0), + (413, 100002, 10, 0, 0), + (413, 100002, 11, 0, 0), + (413, 110167, 10, 0, 0), + (413, 110168, 11, 0, 0), + (413, 130030, 0, 0, 0), + (413, 140009, 0, 0, 0), + (413, 160009, 0, 0, 0), + (413, 180014, 0, 0, 0), + (413, 190016, 0, 0, 0), + (413, 200002, 0, 0, 0), + (413, 230001, 0, 0, 0), + (413, 240006, 0, 0, 0), + (413, 250002, 0, 0, 0), + (413, 280024, 0, 0, 0), + (413, 290004, 0, 0, 0), + (413, 300001, 0, 0, 0), + (413, 320020, 0, 0, 0), + (413, 330034, 0, 0, 0), + (413, 340002, 0, 0, 0), + (413, 1000073, 0, 0, 0), + (413, 1100001, 0, 0, 0), + (413, 1200023, 0, 0, 0), + (414, 1001, 0, 0, 0), + (414, 2001, 0, 0, 0), + (414, 4001, 0, 0, 0), + (414, 5001, 0, 0, 0), + (414, 6001, 0, 0, 0), + (414, 10006, 11, 0, 0), + (414, 10015, 10, 0, 0), + (414, 11006, 10, 0, 0), + (414, 11006, 11, 0, 0), + (414, 12021, 10, 0, 0), + (414, 12029, 11, 0, 0), + (414, 13006, 10, 0, 0), + (414, 15001, 0, 0, 0), + (414, 20114, 0, 0, 0), + (414, 22009, 0, 0, 0), + (414, 31153, 0, 0, 0), + (414, 36001, 0, 0, 0), + (414, 37001, 0, 0, 0), + (414, 40018, 0, 0, 0), + (414, 100002, 10, 0, 0), + (414, 100002, 11, 0, 0), + (414, 110084, 10, 0, 0), + (414, 110168, 11, 0, 0), + (414, 130030, 0, 0, 0), + (414, 140009, 0, 0, 0), + (414, 160012, 0, 0, 0), + (414, 180014, 0, 0, 0), + (414, 190016, 0, 0, 0), + (414, 200002, 0, 0, 0), + (414, 230001, 0, 0, 0), + (414, 240001, 0, 0, 0), + (414, 250002, 0, 0, 0), + (414, 280016, 0, 0, 0), + (414, 290001, 0, 0, 0), + (414, 300001, 0, 0, 0), + (414, 320020, 0, 0, 0), + (414, 330018, 0, 0, 0), + (414, 340002, 0, 0, 0), + (414, 1000122, 0, 0, 0), + (414, 1100001, 0, 0, 0), + (414, 1200034, 0, 0, 0), + (415, 1001, 0, 0, 0), + (415, 2001, 0, 0, 0), + (415, 4001, 0, 0, 0), + (415, 5001, 0, 0, 0), + (415, 6001, 0, 0, 0), + (415, 10006, 11, 0, 0), + (415, 10015, 10, 0, 0), + (415, 11006, 10, 0, 0), + (415, 11006, 11, 0, 0), + (415, 12021, 10, 0, 0), + (415, 12029, 11, 0, 0), + (415, 13006, 10, 0, 0), + (415, 15001, 0, 0, 0), + (415, 20114, 0, 0, 0), + (415, 22009, 0, 0, 0), + (415, 31153, 0, 0, 0), + (415, 36001, 0, 0, 0), + (415, 37001, 0, 0, 0), + (415, 40018, 0, 0, 0), + (415, 100002, 10, 0, 0), + (415, 100002, 11, 0, 0), + (415, 110012, 10, 0, 0), + (415, 110012, 11, 0, 0), + (415, 130032, 0, 0, 0), + (415, 140009, 0, 0, 0), + (415, 160006, 0, 0, 0), + (415, 180014, 0, 0, 0), + (415, 190016, 0, 0, 0), + (415, 200002, 0, 0, 0), + (415, 230001, 0, 0, 0), + (415, 240001, 0, 0, 0), + (415, 250002, 0, 0, 0), + (415, 280024, 0, 0, 0), + (415, 290001, 0, 0, 0), + (415, 300001, 0, 0, 0), + (415, 320030, 0, 0, 0), + (415, 330013, 0, 0, 0), + (415, 340002, 0, 0, 0), + (415, 1000015, 0, 0, 0), + (415, 1100001, 0, 0, 0), + (415, 1200034, 0, 0, 0), + (416, 1001, 0, 0, 0), + (416, 2001, 0, 0, 0), + (416, 4001, 0, 0, 0), + (416, 5001, 0, 0, 0), + (416, 6001, 0, 0, 0), + (416, 10002, 10, 0, 0), + (416, 10010, 11, 0, 0), + (416, 11004, 10, 0, 0), + (416, 11004, 11, 0, 0), + (416, 12006, 10, 0, 0), + (416, 12022, 11, 0, 0), + (416, 13012, 10, 0, 0), + (416, 15001, 0, 0, 0), + (416, 20133, 0, 0, 0), + (416, 22008, 0, 0, 0), + (416, 31153, 0, 0, 0), + (416, 36001, 0, 0, 0), + (416, 37001, 0, 0, 0), + (416, 40033, 0, 0, 0), + (416, 100132, 10, 0, 0), + (416, 100132, 11, 0, 0), + (416, 110045, 10, 0, 0), + (416, 110045, 11, 0, 0), + (416, 130048, 0, 0, 0), + (416, 140004, 0, 0, 0), + (416, 160073, 0, 0, 0), + (416, 180015, 0, 0, 0), + (416, 190017, 0, 0, 0), + (416, 200029, 0, 0, 0), + (416, 230001, 0, 0, 0), + (416, 240005, 0, 0, 0), + (416, 250002, 0, 0, 0), + (416, 280036, 0, 0, 0), + (416, 290004, 0, 0, 0), + (416, 300001, 0, 0, 0), + (416, 320004, 0, 0, 0), + (416, 330066, 0, 0, 0), + (416, 340002, 0, 0, 0), + (416, 1000120, 0, 0, 0), + (416, 1100044, 0, 0, 0), + (416, 1200015, 0, 0, 0), + (417, 1001, 0, 0, 0), + (417, 2001, 0, 0, 0), + (417, 4001, 0, 0, 0), + (417, 5001, 0, 0, 0), + (417, 6001, 0, 0, 0), + (417, 10010, 10, 0, 0), + (417, 10010, 11, 0, 0), + (417, 11004, 10, 0, 0), + (417, 11004, 11, 0, 0), + (417, 12027, 10, 0, 0), + (417, 12029, 11, 0, 0), + (417, 13010, 10, 0, 0), + (417, 15001, 0, 0, 0), + (417, 20108, 0, 0, 0), + (417, 22014, 0, 0, 0), + (417, 31153, 0, 0, 0), + (417, 36001, 0, 0, 0), + (417, 37001, 0, 0, 0), + (417, 40013, 0, 0, 0), + (417, 100002, 10, 0, 0), + (417, 100002, 11, 0, 0), + (417, 110171, 10, 0, 0), + (417, 110171, 11, 0, 0), + (417, 130034, 0, 0, 0), + (417, 140019, 0, 0, 0), + (417, 160025, 0, 0, 0), + (417, 180030, 0, 0, 0), + (417, 190020, 0, 0, 0), + (417, 200004, 0, 0, 0), + (417, 230001, 0, 0, 0), + (417, 240001, 0, 0, 0), + (417, 250001, 0, 0, 0), + (417, 280018, 0, 0, 0), + (417, 290001, 0, 0, 0), + (417, 300001, 0, 0, 0), + (417, 320022, 0, 0, 0), + (417, 330003, 0, 0, 0), + (417, 340002, 0, 0, 0), + (417, 1000138, 0, 0, 0), + (417, 1100005, 0, 0, 0), + (417, 1200017, 0, 0, 0), + (418, 1001, 0, 0, 0), + (418, 2001, 0, 0, 0), + (418, 4001, 0, 0, 0), + (418, 5001, 0, 0, 0), + (418, 6001, 0, 0, 0), + (418, 10002, 10, 0, 0), + (418, 10010, 11, 0, 0), + (418, 11004, 10, 0, 0), + (418, 11004, 11, 0, 0), + (418, 12009, 10, 0, 0), + (418, 12021, 11, 0, 0), + (418, 13009, 10, 0, 0), + (418, 15001, 0, 0, 0), + (418, 20121, 0, 0, 0), + (418, 22009, 0, 0, 0), + (418, 31153, 0, 0, 0), + (418, 36001, 0, 0, 0), + (418, 37001, 0, 0, 0), + (418, 40030, 0, 0, 0), + (418, 100002, 10, 0, 0), + (418, 100002, 11, 0, 0), + (418, 110139, 10, 0, 0), + (418, 110139, 11, 0, 0), + (418, 130023, 0, 0, 0), + (418, 140016, 0, 0, 0), + (418, 160012, 0, 0, 0), + (418, 180003, 0, 0, 0), + (418, 190016, 0, 0, 0), + (418, 200002, 0, 0, 0), + (418, 230001, 0, 0, 0), + (418, 240006, 0, 0, 0), + (418, 250002, 0, 0, 0), + (418, 280016, 0, 0, 0), + (418, 290004, 0, 0, 0), + (418, 300001, 0, 0, 0), + (418, 320020, 0, 0, 0), + (418, 330008, 0, 0, 0), + (418, 340002, 0, 0, 0), + (418, 1000122, 0, 0, 0), + (418, 1100001, 0, 0, 0), + (418, 1200034, 0, 0, 0), + (419, 1001, 0, 0, 0), + (419, 2001, 0, 0, 0), + (419, 4001, 0, 0, 0), + (419, 5001, 0, 0, 0), + (419, 6001, 0, 0, 0), + (419, 10021, 10, 0, 0), + (419, 10021, 11, 0, 0), + (419, 11008, 10, 0, 0), + (419, 11008, 11, 0, 0), + (419, 12039, 11, 0, 0), + (419, 12040, 10, 0, 0), + (419, 15001, 0, 0, 0), + (419, 20112, 0, 0, 0), + (419, 22014, 0, 0, 0), + (419, 31151, 0, 0, 0), + (419, 36001, 0, 0, 0), + (419, 37001, 0, 0, 0), + (419, 40004, 0, 0, 0), + (419, 100005, 10, 0, 0), + (419, 100005, 11, 0, 0), + (419, 110173, 10, 0, 0), + (419, 110174, 11, 0, 0), + (419, 130036, 0, 0, 0), + (419, 140020, 0, 0, 0), + (419, 160017, 0, 0, 0), + (419, 180013, 0, 0, 0), + (419, 190015, 0, 0, 0), + (419, 200051, 0, 0, 0), + (419, 230002, 0, 0, 0), + (419, 240006, 0, 0, 0), + (419, 250006, 0, 0, 0), + (419, 280006, 0, 0, 0), + (419, 290005, 0, 0, 0), + (419, 300008, 0, 0, 0), + (419, 320031, 0, 0, 0), + (419, 330027, 0, 0, 0), + (419, 340003, 0, 0, 0), + (419, 1000025, 0, 0, 0), + (419, 1100027, 0, 0, 0), + (419, 1200024, 0, 0, 0), + (420, 1001, 0, 0, 0), + (420, 2001, 0, 0, 0), + (420, 4001, 0, 0, 0), + (420, 5001, 0, 0, 0), + (420, 6001, 0, 0, 0), + (420, 10009, 11, 0, 0), + (420, 10010, 10, 0, 0), + (420, 11004, 10, 0, 0), + (420, 11004, 11, 0, 0), + (420, 12007, 11, 0, 0), + (420, 12008, 10, 0, 0), + (420, 15001, 0, 0, 0), + (420, 20103, 0, 0, 0), + (420, 22014, 0, 0, 0), + (420, 31153, 0, 0, 0), + (420, 36001, 0, 0, 0), + (420, 37001, 0, 0, 0), + (420, 40005, 0, 0, 0), + (420, 100002, 10, 0, 0), + (420, 100002, 11, 0, 0), + (420, 110100, 10, 0, 0), + (420, 110100, 11, 0, 0), + (420, 130012, 0, 0, 0), + (420, 140014, 0, 0, 0), + (420, 160022, 0, 0, 0), + (420, 180019, 0, 0, 0), + (420, 190021, 0, 0, 0), + (420, 200019, 0, 0, 0), + (420, 230001, 0, 0, 0), + (420, 240003, 0, 0, 0), + (420, 250001, 0, 0, 0), + (420, 280019, 0, 0, 0), + (420, 290001, 0, 0, 0), + (420, 300001, 0, 0, 0), + (420, 320023, 0, 0, 0), + (420, 330006, 0, 0, 0), + (420, 340001, 0, 0, 0), + (420, 1000004, 0, 0, 0), + (420, 1100016, 0, 0, 0), + (420, 1200018, 0, 0, 0), + (421, 1001, 0, 0, 0), + (421, 2001, 0, 0, 0), + (421, 4001, 0, 0, 0), + (421, 5001, 0, 0, 0), + (421, 6001, 0, 0, 0), + (421, 10011, 10, 0, 0), + (421, 10011, 11, 0, 0), + (421, 11004, 10, 0, 0), + (421, 11004, 11, 0, 0), + (421, 12008, 11, 0, 0), + (421, 12031, 10, 0, 0), + (421, 15001, 0, 0, 0), + (421, 20118, 0, 0, 0), + (421, 22009, 0, 0, 0), + (421, 31153, 0, 0, 0), + (421, 36001, 0, 0, 0), + (421, 37001, 0, 0, 0), + (421, 40019, 0, 0, 0), + (421, 100002, 10, 0, 0), + (421, 100002, 11, 0, 0), + (421, 110100, 10, 0, 0), + (421, 110100, 11, 0, 0), + (421, 130032, 0, 0, 0), + (421, 140016, 0, 0, 0), + (421, 160011, 0, 0, 0), + (421, 180062, 0, 0, 0), + (421, 190067, 0, 0, 0), + (421, 200048, 0, 0, 0), + (421, 230001, 0, 0, 0), + (421, 240001, 0, 0, 0), + (421, 250002, 0, 0, 0), + (421, 280051, 0, 0, 0), + (421, 290004, 0, 0, 0), + (421, 300001, 0, 0, 0), + (421, 320100, 0, 0, 0), + (421, 330056, 0, 0, 0), + (421, 340002, 0, 0, 0), + (421, 1000057, 0, 0, 0), + (421, 1100120, 0, 0, 0), + (421, 1200049, 0, 0, 0), + (422, 1001, 0, 0, 0), + (422, 2001, 0, 0, 0), + (422, 4001, 0, 0, 0), + (422, 5001, 0, 0, 0), + (422, 6001, 0, 0, 0), + (422, 10001, 10, 0, 0), + (422, 10004, 11, 0, 0), + (422, 11009, 10, 0, 0), + (422, 11009, 11, 0, 0), + (422, 12009, 11, 0, 0), + (422, 12031, 10, 0, 0), + (422, 15001, 0, 0, 0), + (422, 20113, 0, 0, 0), + (422, 22009, 0, 0, 0), + (422, 31153, 0, 0, 0), + (422, 36001, 0, 0, 0), + (422, 37001, 0, 0, 0), + (422, 40016, 0, 0, 0), + (422, 100002, 10, 0, 0), + (422, 100002, 11, 0, 0), + (422, 110171, 10, 0, 0), + (422, 110171, 11, 0, 0), + (422, 130034, 0, 0, 0), + (422, 140019, 0, 0, 0), + (422, 160012, 0, 0, 0), + (422, 180014, 0, 0, 0), + (422, 190016, 0, 0, 0), + (422, 200002, 0, 0, 0), + (422, 230001, 0, 0, 0), + (422, 240006, 0, 0, 0), + (422, 250002, 0, 0, 0), + (422, 280024, 0, 0, 0), + (422, 290004, 0, 0, 0), + (422, 300001, 0, 0, 0), + (422, 320020, 0, 0, 0), + (422, 330018, 0, 0, 0), + (422, 340002, 0, 0, 0), + (422, 1000074, 0, 0, 0), + (422, 1100025, 0, 0, 0), + (422, 1200023, 0, 0, 0), + (423, 1001, 0, 0, 0), + (423, 2001, 0, 0, 0), + (423, 4001, 0, 0, 0), + (423, 5001, 0, 0, 0), + (423, 6001, 0, 0, 0), + (423, 10009, 11, 0, 0), + (423, 10010, 10, 0, 0), + (423, 11004, 10, 0, 0), + (423, 11004, 11, 0, 0), + (423, 12025, 10, 0, 0), + (423, 12026, 11, 0, 0), + (423, 13002, 10, 0, 0), + (423, 13004, 11, 0, 0), + (423, 15001, 0, 0, 0), + (423, 20127, 0, 0, 0), + (423, 22009, 0, 0, 0), + (423, 31153, 0, 0, 0), + (423, 36001, 0, 0, 0), + (423, 37001, 0, 0, 0), + (423, 40015, 0, 0, 0), + (423, 100002, 10, 0, 0), + (423, 100002, 11, 0, 0), + (423, 110173, 10, 0, 0), + (423, 110173, 11, 0, 0), + (423, 130045, 0, 0, 0), + (423, 140018, 0, 0, 0), + (423, 160090, 0, 0, 0), + (423, 180049, 0, 0, 0), + (423, 190013, 0, 0, 0), + (423, 200057, 0, 0, 0), + (423, 230001, 0, 0, 0), + (423, 240001, 0, 0, 0), + (423, 250002, 0, 0, 0), + (423, 280054, 0, 0, 0), + (423, 290006, 0, 0, 0), + (423, 300011, 0, 0, 0), + (423, 320104, 0, 0, 0), + (423, 330033, 0, 0, 0), + (423, 340002, 0, 0, 0), + (423, 1000162, 0, 0, 0), + (423, 1100124, 0, 0, 0), + (423, 1200013, 0, 0, 0), + (424, 1001, 0, 0, 0), + (424, 2001, 0, 0, 0), + (424, 4001, 0, 0, 0), + (424, 5001, 0, 0, 0), + (424, 6001, 0, 0, 0), + (424, 10009, 11, 0, 0), + (424, 10010, 10, 0, 0), + (424, 11006, 10, 0, 0), + (424, 11006, 11, 0, 0), + (424, 12031, 11, 0, 0), + (424, 12032, 10, 0, 0), + (424, 15001, 0, 0, 0), + (424, 20218, 0, 0, 0), + (424, 22009, 0, 0, 0), + (424, 31153, 0, 0, 0), + (424, 36001, 0, 0, 0), + (424, 37001, 0, 0, 0), + (424, 40041, 0, 0, 0), + (424, 100002, 10, 0, 0), + (424, 100002, 11, 0, 0), + (424, 110172, 10, 0, 0), + (424, 110172, 11, 0, 0), + (424, 130033, 0, 0, 0), + (424, 140011, 0, 0, 0), + (424, 160014, 0, 0, 0), + (424, 180002, 0, 0, 0), + (424, 190015, 0, 0, 0), + (424, 200003, 0, 0, 0), + (424, 230001, 0, 0, 0), + (424, 240001, 0, 0, 0), + (424, 250002, 0, 0, 0), + (424, 280002, 0, 0, 0), + (424, 290004, 0, 0, 0), + (424, 300001, 0, 0, 0), + (424, 320002, 0, 0, 0), + (424, 330018, 0, 0, 0), + (424, 340002, 0, 0, 0), + (424, 1000075, 0, 0, 0), + (424, 1100014, 0, 0, 0), + (424, 1200001, 0, 0, 0), + (425, 1001, 0, 0, 0), + (425, 2001, 0, 0, 0), + (425, 4001, 0, 0, 0), + (425, 5001, 0, 0, 0), + (425, 6001, 0, 0, 0), + (425, 10003, 10, 0, 0), + (425, 10010, 11, 0, 0), + (425, 11004, 10, 0, 0), + (425, 11004, 11, 0, 0), + (425, 12031, 11, 0, 0), + (425, 12033, 10, 0, 0), + (425, 15001, 0, 0, 0), + (425, 20111, 0, 0, 0), + (425, 22014, 0, 0, 0), + (425, 31153, 0, 0, 0), + (425, 36001, 0, 0, 0), + (425, 37001, 0, 0, 0), + (425, 40062, 0, 0, 0), + (425, 100002, 10, 0, 0), + (425, 100002, 11, 0, 0), + (425, 110170, 10, 0, 0), + (425, 110170, 11, 0, 0), + (425, 130039, 0, 0, 0), + (425, 140019, 0, 0, 0), + (425, 160034, 0, 0, 0), + (425, 180059, 0, 0, 0), + (425, 190029, 0, 0, 0), + (425, 200012, 0, 0, 0), + (425, 230005, 0, 0, 0), + (425, 240002, 0, 0, 0), + (425, 250005, 0, 0, 0), + (425, 280004, 0, 0, 0), + (425, 290007, 0, 0, 0), + (425, 300011, 0, 0, 0), + (425, 320007, 0, 0, 0), + (425, 330033, 0, 0, 0), + (425, 340003, 0, 0, 0), + (425, 1000006, 0, 0, 0), + (425, 1100043, 0, 0, 0), + (425, 1200005, 0, 0, 0), + (426, 1001, 0, 0, 0), + (426, 2001, 0, 0, 0), + (426, 4001, 0, 0, 0), + (426, 5001, 0, 0, 0), + (426, 6001, 0, 0, 0), + (426, 10030, 10, 0, 0), + (426, 10030, 11, 0, 0), + (426, 11008, 10, 0, 0), + (426, 11008, 11, 0, 0), + (426, 12038, 11, 0, 0), + (426, 12040, 10, 0, 0), + (426, 13012, 10, 0, 0), + (426, 14003, 11, 0, 0), + (426, 15001, 0, 0, 0), + (426, 20134, 0, 0, 0), + (426, 22001, 0, 0, 0), + (426, 31153, 0, 0, 0), + (426, 36001, 0, 0, 0), + (426, 37001, 0, 0, 0), + (426, 40035, 0, 0, 0), + (426, 100005, 10, 0, 0), + (426, 100005, 11, 0, 0), + (426, 110109, 10, 0, 0), + (426, 110109, 11, 0, 0), + (426, 130046, 0, 0, 0), + (426, 140019, 0, 0, 0), + (426, 160078, 0, 0, 0), + (426, 180037, 0, 0, 0), + (426, 190069, 0, 0, 0), + (426, 200053, 0, 0, 0), + (426, 230003, 0, 0, 0), + (426, 240007, 0, 0, 0), + (426, 250007, 0, 0, 0), + (426, 280042, 0, 0, 0), + (426, 290005, 0, 0, 0), + (426, 300008, 0, 0, 0), + (426, 320012, 0, 0, 0), + (426, 330019, 0, 0, 0), + (426, 340003, 0, 0, 0), + (426, 1000011, 0, 0, 0), + (426, 1100045, 0, 0, 0), + (426, 1200039, 0, 0, 0), + (427, 1001, 0, 0, 0), + (427, 2001, 0, 0, 0), + (427, 4001, 0, 0, 0), + (427, 5001, 0, 0, 0), + (427, 6001, 0, 0, 0), + (427, 10012, 10, 0, 0), + (427, 10012, 11, 0, 0), + (427, 11004, 10, 0, 0), + (427, 11004, 11, 0, 0), + (427, 12031, 11, 0, 0), + (427, 12033, 10, 0, 0), + (427, 15001, 0, 0, 0), + (427, 20124, 0, 0, 0), + (427, 22005, 0, 0, 0), + (427, 31153, 0, 0, 0), + (427, 36001, 0, 0, 0), + (427, 37001, 0, 0, 0), + (427, 40014, 0, 0, 0), + (427, 100002, 10, 0, 0), + (427, 100002, 11, 0, 0), + (427, 110100, 10, 0, 0), + (427, 110101, 11, 0, 0), + (427, 130033, 0, 0, 0), + (427, 140008, 0, 0, 0), + (427, 160010, 0, 0, 0), + (427, 180055, 0, 0, 0), + (427, 190071, 0, 0, 0), + (427, 200056, 0, 0, 0), + (427, 230001, 0, 0, 0), + (427, 240001, 0, 0, 0), + (427, 250002, 0, 0, 0), + (427, 280044, 0, 0, 0), + (427, 290003, 0, 0, 0), + (427, 300001, 0, 0, 0), + (427, 320092, 0, 0, 0), + (427, 330052, 0, 0, 0), + (427, 340002, 0, 0, 0), + (427, 1000154, 0, 0, 0), + (427, 1100112, 0, 0, 0), + (427, 1200042, 0, 0, 0), + (428, 1001, 0, 0, 0), + (428, 2001, 0, 0, 0), + (428, 4001, 0, 0, 0), + (428, 5001, 0, 0, 0), + (428, 6001, 0, 0, 0), + (428, 10006, 11, 0, 0), + (428, 10015, 10, 0, 0), + (428, 11006, 10, 0, 0), + (428, 11006, 11, 0, 0), + (428, 12027, 11, 0, 0), + (428, 12030, 10, 0, 0), + (428, 13007, 10, 0, 0), + (428, 15001, 0, 0, 0), + (428, 20114, 0, 0, 0), + (428, 22009, 0, 0, 0), + (428, 31153, 0, 0, 0), + (428, 36001, 0, 0, 0), + (428, 37001, 0, 0, 0), + (428, 40018, 0, 0, 0), + (428, 100002, 10, 0, 0), + (428, 100002, 11, 0, 0), + (428, 110168, 10, 0, 0), + (428, 110168, 11, 0, 0), + (428, 130016, 0, 0, 0), + (428, 140009, 0, 0, 0), + (428, 160006, 0, 0, 0), + (428, 180014, 0, 0, 0), + (428, 190016, 0, 0, 0), + (428, 200002, 0, 0, 0), + (428, 230001, 0, 0, 0), + (428, 240001, 0, 0, 0), + (428, 250002, 0, 0, 0), + (428, 280024, 0, 0, 0), + (428, 290001, 0, 0, 0), + (428, 300001, 0, 0, 0), + (428, 320030, 0, 0, 0), + (428, 330013, 0, 0, 0), + (428, 340002, 0, 0, 0), + (428, 1000015, 0, 0, 0), + (428, 1100001, 0, 0, 0), + (428, 1200034, 0, 0, 0), + (429, 1001, 0, 0, 0), + (429, 2001, 0, 0, 0), + (429, 4001, 0, 0, 0), + (429, 5001, 0, 0, 0), + (429, 6001, 0, 0, 0), + (429, 10011, 10, 0, 0), + (429, 10011, 11, 0, 0), + (429, 11004, 10, 0, 0), + (429, 11004, 11, 0, 0), + (429, 12031, 10, 0, 0), + (429, 12031, 11, 0, 0), + (429, 15001, 0, 0, 0), + (429, 20115, 0, 0, 0), + (429, 22009, 0, 0, 0), + (429, 31153, 0, 0, 0), + (429, 36001, 0, 0, 0), + (429, 37001, 0, 0, 0), + (429, 40017, 0, 0, 0), + (429, 100004, 10, 0, 0), + (429, 100004, 11, 0, 0), + (429, 110091, 10, 0, 0), + (429, 110091, 11, 0, 0), + (429, 130021, 0, 0, 0), + (429, 140009, 0, 0, 0), + (429, 160006, 0, 0, 0), + (429, 180014, 0, 0, 0), + (429, 190016, 0, 0, 0), + (429, 200002, 0, 0, 0), + (429, 230001, 0, 0, 0), + (429, 240001, 0, 0, 0), + (429, 250002, 0, 0, 0), + (429, 280024, 0, 0, 0), + (429, 290004, 0, 0, 0), + (429, 300001, 0, 0, 0), + (429, 320030, 0, 0, 0), + (429, 330053, 0, 0, 0), + (429, 340002, 0, 0, 0), + (429, 1000015, 0, 0, 0), + (429, 1100001, 0, 0, 0), + (429, 1200034, 0, 0, 0), + (430, 1001, 0, 0, 0), + (430, 2001, 0, 0, 0), + (430, 4001, 0, 0, 0), + (430, 5001, 0, 0, 0), + (430, 6001, 0, 0, 0), + (430, 10011, 10, 0, 0), + (430, 10011, 11, 0, 0), + (430, 11004, 10, 0, 0), + (430, 11004, 11, 0, 0), + (430, 12031, 10, 0, 0), + (430, 12031, 11, 0, 0), + (430, 15001, 0, 0, 0), + (430, 20105, 0, 0, 0), + (430, 22014, 0, 0, 0), + (430, 31153, 0, 0, 0), + (430, 36001, 0, 0, 0), + (430, 37001, 0, 0, 0), + (430, 40007, 0, 0, 0), + (430, 100002, 10, 0, 0), + (430, 100002, 11, 0, 0), + (430, 110091, 10, 0, 0), + (430, 110091, 11, 0, 0), + (430, 130047, 0, 0, 0), + (430, 140008, 0, 0, 0), + (430, 160026, 0, 0, 0), + (430, 180018, 0, 0, 0), + (430, 190077, 0, 0, 0), + (430, 200066, 0, 0, 0), + (430, 230001, 0, 0, 0), + (430, 240001, 0, 0, 0), + (430, 250001, 0, 0, 0), + (430, 280030, 0, 0, 0), + (430, 290002, 0, 0, 0), + (430, 300001, 0, 0, 0), + (430, 320098, 0, 0, 0), + (430, 330058, 0, 0, 0), + (430, 340002, 0, 0, 0), + (430, 1000001, 0, 0, 0), + (430, 1100119, 0, 0, 0), + (430, 1200048, 0, 0, 0), + (431, 1001, 0, 0, 0), + (431, 2001, 0, 0, 0), + (431, 4001, 0, 0, 0), + (431, 5001, 0, 0, 0), + (431, 6001, 0, 0, 0), + (431, 10030, 10, 0, 0), + (431, 10030, 11, 0, 0), + (431, 11008, 10, 0, 0), + (431, 11008, 11, 0, 0), + (431, 12038, 11, 0, 0), + (431, 12040, 10, 0, 0), + (431, 15001, 0, 0, 0), + (431, 20128, 0, 0, 0), + (431, 22009, 0, 0, 0), + (431, 25005, 0, 0, 0), + (431, 31153, 0, 0, 0), + (431, 36001, 0, 0, 0), + (431, 37001, 0, 0, 0), + (431, 40023, 0, 0, 0), + (431, 100095, 10, 0, 0), + (431, 100095, 11, 0, 0), + (431, 110174, 10, 0, 0), + (431, 110174, 11, 0, 0), + (431, 130036, 0, 0, 0), + (431, 140020, 0, 0, 0), + (431, 160017, 0, 0, 0), + (431, 180013, 0, 0, 0), + (431, 190015, 0, 0, 0), + (431, 200051, 0, 0, 0), + (431, 230004, 0, 0, 0), + (431, 240006, 0, 0, 0), + (431, 250004, 0, 0, 0), + (431, 280006, 0, 0, 0), + (431, 290005, 0, 0, 0), + (431, 300008, 0, 0, 0), + (431, 320031, 0, 0, 0), + (431, 330027, 0, 0, 0), + (431, 340003, 0, 0, 0), + (431, 350005, 0, 0, 0), + (431, 1000025, 0, 0, 0), + (431, 1100014, 0, 0, 0), + (431, 1200024, 0, 0, 0), + (432, 1001, 0, 0, 0), + (432, 2001, 0, 0, 0), + (432, 4001, 0, 0, 0), + (432, 5001, 0, 0, 0), + (432, 6001, 0, 0, 0), + (432, 10009, 11, 0, 0), + (432, 10010, 10, 0, 0), + (432, 11004, 10, 0, 0), + (432, 11004, 11, 0, 0), + (432, 12004, 11, 0, 0), + (432, 12006, 10, 0, 0), + (432, 15001, 0, 0, 0), + (432, 20101, 0, 0, 0), + (432, 22016, 0, 0, 0), + (432, 23003, 0, 0, 0), + (432, 31153, 0, 0, 0), + (432, 34001, 10, 0, 0), + (432, 34001, 11, 0, 0), + (432, 35001, 10, 0, 0), + (432, 35001, 11, 0, 0), + (432, 36001, 0, 0, 0), + (432, 37001, 0, 0, 0), + (432, 40002, 0, 0, 0), + (432, 100002, 10, 0, 0), + (432, 100002, 11, 0, 0), + (432, 110047, 10, 0, 0), + (432, 110047, 11, 0, 0), + (432, 130012, 0, 0, 0), + (432, 140036, 0, 0, 0), + (432, 160021, 0, 0, 0), + (432, 180019, 0, 0, 0), + (432, 190021, 0, 0, 0), + (432, 200019, 0, 0, 0), + (432, 230002, 0, 0, 0), + (432, 240003, 0, 0, 0), + (432, 250001, 0, 0, 0), + (432, 280019, 0, 0, 0), + (432, 290001, 0, 0, 0), + (432, 300001, 0, 0, 0), + (432, 320023, 0, 0, 0), + (432, 330016, 0, 0, 0), + (432, 340001, 0, 0, 0), + (432, 1000002, 0, 0, 0), + (432, 1100016, 0, 0, 0), + (432, 1200018, 0, 0, 0), + (433, 1001, 0, 0, 0), + (433, 2001, 0, 0, 0), + (433, 4001, 0, 0, 0), + (433, 5001, 0, 0, 0), + (433, 6001, 0, 0, 0), + (433, 10009, 11, 0, 0), + (433, 10010, 10, 0, 0), + (433, 11004, 10, 0, 0), + (433, 11004, 11, 0, 0), + (433, 12007, 10, 0, 0), + (433, 12028, 11, 0, 0), + (433, 15001, 0, 0, 0), + (433, 20102, 0, 0, 0), + (433, 22016, 0, 0, 0), + (433, 23009, 0, 0, 0), + (433, 31153, 0, 0, 0), + (433, 35002, 10, 0, 0), + (433, 35002, 11, 0, 0), + (433, 36001, 0, 0, 0), + (433, 37001, 0, 0, 0), + (433, 40003, 0, 0, 0), + (433, 100002, 10, 0, 0), + (433, 100002, 11, 0, 0), + (433, 110013, 10, 0, 0), + (433, 110013, 11, 0, 0), + (433, 130012, 0, 0, 0), + (433, 140025, 0, 0, 0), + (433, 160021, 0, 0, 0), + (433, 180019, 0, 0, 0), + (433, 190021, 0, 0, 0), + (433, 200019, 0, 0, 0), + (433, 230002, 0, 0, 0), + (433, 240003, 0, 0, 0), + (433, 250001, 0, 0, 0), + (433, 280019, 0, 0, 0), + (433, 290001, 0, 0, 0), + (433, 300001, 0, 0, 0), + (433, 320023, 0, 0, 0), + (433, 330006, 0, 0, 0), + (433, 340001, 0, 0, 0), + (433, 1000002, 0, 0, 0), + (433, 1100016, 0, 0, 0), + (433, 1200018, 0, 0, 0), + (434, 1001, 0, 0, 0), + (434, 2001, 0, 0, 0), + (434, 4001, 0, 0, 0), + (434, 5001, 0, 0, 0), + (434, 6001, 0, 0, 0), + (434, 10001, 10, 0, 0), + (434, 10004, 11, 0, 0), + (434, 11004, 10, 0, 0), + (434, 11004, 11, 0, 0), + (434, 12007, 11, 0, 0), + (434, 12031, 10, 0, 0), + (434, 15001, 0, 0, 0), + (434, 18001, 0, 0, 0), + (434, 20104, 0, 0, 0), + (434, 22014, 0, 0, 0), + (434, 31153, 0, 0, 0), + (434, 36001, 0, 0, 0), + (434, 37001, 0, 0, 0), + (434, 40006, 0, 0, 0), + (434, 100006, 10, 0, 0), + (434, 100006, 11, 0, 0), + (434, 110067, 10, 0, 0), + (434, 110067, 11, 0, 0), + (434, 130047, 0, 0, 0), + (434, 140007, 0, 0, 0), + (434, 160026, 0, 0, 0), + (434, 180018, 0, 0, 0), + (434, 190077, 0, 0, 0), + (434, 200066, 0, 0, 0), + (434, 230001, 0, 0, 0), + (434, 240001, 0, 0, 0), + (434, 250001, 0, 0, 0), + (434, 280030, 0, 0, 0), + (434, 290002, 0, 0, 0), + (434, 300001, 0, 0, 0), + (434, 320098, 0, 0, 0), + (434, 330058, 0, 0, 0), + (434, 340002, 0, 0, 0), + (434, 1000001, 0, 0, 0), + (434, 1100119, 0, 0, 0), + (434, 1200048, 0, 0, 0), + (435, 1001, 0, 0, 0), + (435, 2001, 0, 0, 0), + (435, 4001, 0, 0, 0), + (435, 5001, 0, 0, 0), + (435, 6001, 0, 0, 0), + (435, 10011, 10, 0, 0), + (435, 10011, 11, 0, 0), + (435, 11004, 10, 0, 0), + (435, 11004, 11, 0, 0), + (435, 12025, 11, 0, 0), + (435, 12032, 10, 0, 0), + (435, 15001, 0, 0, 0), + (435, 20106, 0, 0, 0), + (435, 22014, 0, 0, 0), + (435, 31153, 0, 0, 0), + (435, 36001, 0, 0, 0), + (435, 37001, 0, 0, 0), + (435, 40008, 0, 0, 0), + (435, 100002, 10, 0, 0), + (435, 100002, 11, 0, 0), + (435, 110061, 10, 0, 0), + (435, 110061, 11, 0, 0), + (435, 130026, 0, 0, 0), + (435, 140019, 0, 0, 0), + (435, 160028, 0, 0, 0), + (435, 180018, 0, 0, 0), + (435, 190077, 0, 0, 0), + (435, 200066, 0, 0, 0), + (435, 230001, 0, 0, 0), + (435, 240001, 0, 0, 0), + (435, 250001, 0, 0, 0), + (435, 280030, 0, 0, 0), + (435, 290002, 0, 0, 0), + (435, 300001, 0, 0, 0), + (435, 320040, 0, 0, 0), + (435, 330035, 0, 0, 0), + (435, 340002, 0, 0, 0), + (435, 1000099, 0, 0, 0), + (435, 1100119, 0, 0, 0), + (435, 1200048, 0, 0, 0), + (436, 1001, 0, 0, 0), + (436, 2001, 0, 0, 0), + (436, 4001, 0, 0, 0), + (436, 5001, 0, 0, 0), + (436, 6001, 0, 0, 0), + (436, 10010, 10, 0, 0), + (436, 10010, 11, 0, 0), + (436, 11004, 10, 0, 0), + (436, 11004, 11, 0, 0), + (436, 12009, 11, 0, 0), + (436, 12032, 10, 0, 0), + (436, 15001, 0, 0, 0), + (436, 20109, 0, 0, 0), + (436, 22014, 0, 0, 0), + (436, 31153, 0, 0, 0), + (436, 36001, 0, 0, 0), + (436, 37001, 0, 0, 0), + (436, 40011, 0, 0, 0), + (436, 100002, 10, 0, 0), + (436, 100002, 11, 0, 0), + (436, 110067, 10, 0, 0), + (436, 110067, 11, 0, 0), + (436, 130034, 0, 0, 0), + (436, 140019, 0, 0, 0), + (436, 160025, 0, 0, 0), + (436, 180030, 0, 0, 0), + (436, 190020, 0, 0, 0), + (436, 200004, 0, 0, 0), + (436, 230001, 0, 0, 0), + (436, 240001, 0, 0, 0), + (436, 250001, 0, 0, 0), + (436, 280018, 0, 0, 0), + (436, 290001, 0, 0, 0), + (436, 300001, 0, 0, 0), + (436, 320022, 0, 0, 0), + (436, 330003, 0, 0, 0), + (436, 340002, 0, 0, 0), + (436, 1000138, 0, 0, 0), + (436, 1100005, 0, 0, 0), + (436, 1200017, 0, 0, 0), + (437, 1001, 0, 0, 0), + (437, 2001, 0, 0, 0), + (437, 4001, 0, 0, 0), + (437, 5001, 0, 0, 0), + (437, 6001, 0, 0, 0), + (437, 10002, 10, 0, 0), + (437, 10010, 11, 0, 0), + (437, 11006, 10, 0, 0), + (437, 11006, 11, 0, 0), + (437, 12032, 11, 0, 0), + (437, 12033, 10, 0, 0), + (437, 15001, 0, 0, 0), + (437, 20211, 0, 0, 0), + (437, 22014, 0, 0, 0), + (437, 30001, 11, 0, 0), + (437, 31153, 0, 0, 0), + (437, 36001, 0, 0, 0), + (437, 37001, 0, 0, 0), + (437, 40039, 0, 0, 0), + (437, 100002, 10, 0, 0), + (437, 100002, 11, 0, 0), + (437, 110061, 10, 0, 0), + (437, 110061, 11, 0, 0), + (437, 130034, 0, 0, 0), + (437, 140009, 0, 0, 0), + (437, 160033, 0, 0, 0), + (437, 180051, 0, 0, 0), + (437, 190027, 0, 0, 0), + (437, 200028, 0, 0, 0), + (437, 230001, 0, 0, 0), + (437, 240001, 0, 0, 0), + (437, 250001, 0, 0, 0), + (437, 280008, 0, 0, 0), + (437, 290002, 0, 0, 0), + (437, 300002, 0, 0, 0), + (437, 320011, 0, 0, 0), + (437, 330033, 0, 0, 0), + (437, 340003, 0, 0, 0), + (437, 1000005, 0, 0, 0), + (437, 1100040, 0, 0, 0), + (437, 1200029, 0, 0, 0), + (438, 1001, 0, 0, 0), + (438, 2001, 0, 0, 0), + (438, 4001, 0, 0, 0), + (438, 5001, 0, 0, 0), + (438, 6001, 0, 0, 0), + (438, 10010, 11, 0, 0), + (438, 10017, 10, 0, 0), + (438, 11009, 10, 0, 0), + (438, 11009, 11, 0, 0), + (438, 12008, 11, 0, 0), + (438, 12031, 10, 0, 0), + (438, 13007, 11, 0, 0), + (438, 13009, 10, 0, 0), + (438, 15001, 0, 0, 0), + (438, 20111, 0, 0, 0), + (438, 22014, 0, 0, 0), + (438, 29002, 10, 0, 0), + (438, 30003, 11, 0, 0), + (438, 31153, 0, 0, 0), + (438, 36001, 0, 0, 0), + (438, 37001, 0, 0, 0), + (438, 40013, 0, 0, 0), + (438, 100112, 10, 0, 0), + (438, 100112, 11, 0, 0), + (438, 110094, 10, 0, 0), + (438, 110095, 11, 0, 0), + (438, 130034, 0, 0, 0), + (438, 140009, 0, 0, 0), + (438, 160027, 0, 0, 0), + (438, 180034, 0, 0, 0), + (438, 190001, 0, 0, 0), + (438, 200054, 0, 0, 0), + (438, 230003, 0, 0, 0), + (438, 240005, 0, 0, 0), + (438, 250001, 0, 0, 0), + (438, 280041, 0, 0, 0), + (438, 290002, 0, 0, 0), + (438, 300011, 0, 0, 0), + (438, 320087, 0, 0, 0), + (438, 330025, 0, 0, 0), + (438, 340003, 0, 0, 0), + (438, 1000139, 0, 0, 0), + (438, 1100005, 0, 0, 0), + (438, 1200038, 0, 0, 0), + (439, 1001, 0, 0, 0), + (439, 2001, 0, 0, 0), + (439, 4001, 0, 0, 0), + (439, 5001, 0, 0, 0), + (439, 6001, 0, 0, 0), + (439, 10011, 10, 0, 0), + (439, 10011, 11, 0, 0), + (439, 11004, 10, 0, 0), + (439, 11004, 11, 0, 0), + (439, 12008, 11, 0, 0), + (439, 12032, 10, 0, 0), + (439, 15001, 0, 0, 0), + (439, 20116, 0, 0, 0), + (439, 22009, 0, 0, 0), + (439, 31153, 0, 0, 0), + (439, 36001, 0, 0, 0), + (439, 37001, 0, 0, 0), + (439, 40022, 0, 0, 0), + (439, 100001, 10, 0, 0), + (439, 100001, 11, 0, 0), + (439, 110064, 10, 0, 0), + (439, 110064, 11, 0, 0), + (439, 130022, 0, 0, 0), + (439, 140009, 0, 0, 0), + (439, 160009, 0, 0, 0), + (439, 180014, 0, 0, 0), + (439, 190016, 0, 0, 0), + (439, 200002, 0, 0, 0), + (439, 230001, 0, 0, 0), + (439, 240006, 0, 0, 0), + (439, 250002, 0, 0, 0), + (439, 280016, 0, 0, 0), + (439, 290004, 0, 0, 0), + (439, 300001, 0, 0, 0), + (439, 320020, 0, 0, 0), + (439, 330053, 0, 0, 0), + (439, 340002, 0, 0, 0), + (439, 1000121, 0, 0, 0), + (439, 1100001, 0, 0, 0), + (439, 1200034, 0, 0, 0), + (440, 1001, 0, 0, 0), + (440, 2001, 0, 0, 0), + (440, 4001, 0, 0, 0), + (440, 5001, 0, 0, 0), + (440, 6001, 0, 0, 0), + (440, 10002, 10, 0, 0), + (440, 10010, 11, 0, 0), + (440, 11004, 10, 0, 0), + (440, 11004, 11, 0, 0), + (440, 12007, 11, 0, 0), + (440, 12032, 10, 0, 0), + (440, 13009, 10, 0, 0), + (440, 15001, 0, 0, 0), + (440, 20121, 0, 0, 0), + (440, 22009, 0, 0, 0), + (440, 31153, 0, 0, 0), + (440, 36001, 0, 0, 0), + (440, 37001, 0, 0, 0), + (440, 40030, 0, 0, 0), + (440, 100002, 10, 0, 0), + (440, 100002, 11, 0, 0), + (440, 110061, 10, 0, 0), + (440, 110061, 11, 0, 0), + (440, 130023, 0, 0, 0), + (440, 140007, 0, 0, 0), + (440, 160012, 0, 0, 0), + (440, 180003, 0, 0, 0), + (440, 190016, 0, 0, 0), + (440, 200002, 0, 0, 0), + (440, 230001, 0, 0, 0), + (440, 240006, 0, 0, 0), + (440, 250002, 0, 0, 0), + (440, 280016, 0, 0, 0), + (440, 290004, 0, 0, 0), + (440, 300001, 0, 0, 0), + (440, 320020, 0, 0, 0), + (440, 330008, 0, 0, 0), + (440, 340002, 0, 0, 0), + (440, 1000122, 0, 0, 0), + (440, 1100001, 0, 0, 0), + (440, 1200034, 0, 0, 0), + (441, 1001, 0, 0, 0), + (441, 2001, 0, 0, 0), + (441, 4001, 0, 0, 0), + (441, 5001, 0, 0, 0), + (441, 6001, 0, 0, 0), + (441, 10021, 10, 0, 0), + (441, 10026, 11, 0, 0), + (441, 11006, 10, 0, 0), + (441, 11006, 11, 0, 0), + (441, 12008, 10, 0, 0), + (441, 12009, 11, 0, 0), + (441, 15001, 0, 0, 0), + (441, 20117, 0, 0, 0), + (441, 22009, 0, 0, 0), + (441, 31153, 0, 0, 0), + (441, 36001, 0, 0, 0), + (441, 37001, 0, 0, 0), + (441, 40021, 0, 0, 0), + (441, 100002, 10, 0, 0), + (441, 100002, 11, 0, 0), + (441, 110173, 10, 0, 0), + (441, 110173, 11, 0, 0), + (441, 130016, 0, 0, 0), + (441, 140009, 0, 0, 0), + (441, 160009, 0, 0, 0), + (441, 180014, 0, 0, 0), + (441, 190016, 0, 0, 0), + (441, 200002, 0, 0, 0), + (441, 230001, 0, 0, 0), + (441, 240006, 0, 0, 0), + (441, 250002, 0, 0, 0), + (441, 280024, 0, 0, 0), + (441, 290004, 0, 0, 0), + (441, 300001, 0, 0, 0), + (441, 320030, 0, 0, 0), + (441, 330057, 0, 0, 0), + (441, 340003, 0, 0, 0), + (441, 1000073, 0, 0, 0), + (441, 1100025, 0, 0, 0), + (441, 1200023, 0, 0, 0), + (1001, 11004, 10, 0, 0), + (1001, 11004, 11, 0, 0), + (1001, 12006, 11, 0, 0), + (1001, 12009, 10, 0, 0), + (4001, 130012, 0, 0, 0), + (4001, 140014, 0, 0, 0), + (5001, 10021, 10, 0, 0), + (5001, 10026, 11, 0, 0), + (15001, 100002, 10, 0, 0), + (15001, 100002, 11, 0, 0), + (15001, 110027, 10, 1, 1), + (15001, 110027, 11, 0, 0), + (36002, 160021, 0, 0, 0), + (36002, 180019, 0, 0, 0), + (36002, 190021, 0, 0, 0), + (36002, 200019, 0, 0, 0), + (36002, 230001, 0, 0, 0), + (36002, 240003, 0, 0, 0), + (36002, 250001, 0, 0, 0), + (36002, 280019, 0, 0, 0), + (36002, 320023, 0, 0, 0), + (36002, 330016, 0, 0, 0), + (36002, 340001, 0, 0, 0), + (36002, 1000002, 0, 0, 0), + (36002, 1100016, 0, 0, 0), + (36002, 1200018, 0, 0, 0), + (36003, 160021, 0, 0, 0), + (36003, 180019, 0, 0, 0), + (36003, 190021, 0, 0, 0), + (36003, 200019, 0, 0, 0), + (36003, 230001, 0, 0, 0), + (36003, 240003, 0, 0, 0), + (36003, 250001, 0, 0, 0), + (36003, 280019, 0, 0, 0), + (36003, 320023, 0, 0, 0), + (36003, 330006, 0, 0, 0), + (36003, 340001, 0, 0, 0), + (36003, 1000020, 0, 0, 0), + (36003, 1100016, 0, 0, 0), + (36003, 1200018, 0, 0, 0), + (36004, 160047, 0, 0, 0), + (36004, 180019, 0, 0, 0), + (36004, 190021, 0, 0, 0), + (36004, 200019, 0, 0, 0), + (36004, 230002, 0, 0, 0), + (36004, 240001, 0, 0, 0), + (36004, 250001, 0, 0, 0), + (36004, 280019, 0, 0, 0), + (36004, 320023, 0, 0, 0), + (36004, 330005, 0, 0, 0), + (36004, 340001, 0, 0, 0), + (36004, 1000003, 0, 0, 0), + (36004, 1100016, 0, 0, 0), + (36004, 1200018, 0, 0, 0), + (36005, 160022, 0, 0, 0), + (36005, 180019, 0, 0, 0), + (36005, 190021, 0, 0, 0), + (36005, 200019, 0, 0, 0), + (36005, 230001, 0, 0, 0), + (36005, 240003, 0, 0, 0), + (36005, 250001, 0, 0, 0), + (36005, 280019, 0, 0, 0), + (36005, 320023, 0, 0, 0), + (36005, 330006, 0, 0, 0), + (36005, 340001, 0, 0, 0), + (36005, 1000002, 0, 0, 0), + (36005, 1100016, 0, 0, 0), + (36005, 1200018, 0, 0, 0), + (36006, 160028, 0, 0, 0), + (36006, 180018, 0, 0, 0), + (36006, 190077, 0, 0, 0), + (36006, 200042, 0, 0, 0), + (36006, 230001, 0, 0, 0), + (36006, 240001, 0, 0, 0), + (36006, 250001, 0, 0, 0), + (36006, 280030, 0, 0, 0), + (36006, 320040, 0, 0, 0), + (36006, 330035, 0, 0, 0), + (36006, 340002, 0, 0, 0), + (36006, 1000099, 0, 0, 0), + (36006, 1100119, 0, 0, 0), + (36006, 1200048, 0, 0, 0), + (36007, 160032, 0, 0, 0), + (36007, 180035, 0, 0, 0), + (36007, 190019, 0, 0, 0), + (36007, 200028, 0, 0, 0), + (36007, 230003, 0, 0, 0), + (36007, 240006, 0, 0, 0), + (36007, 250006, 0, 0, 0), + (36007, 280031, 0, 0, 0), + (36007, 320006, 0, 0, 0), + (36007, 330022, 0, 0, 0), + (36007, 340003, 0, 0, 0), + (36007, 1000005, 0, 0, 0), + (36007, 1100040, 0, 0, 0), + (36007, 1200029, 0, 0, 0), + (36008, 160025, 0, 0, 0), + (36008, 180030, 0, 0, 0), + (36008, 190020, 0, 0, 0), + (36008, 200004, 0, 0, 0), + (36008, 230001, 0, 0, 0), + (36008, 240001, 0, 0, 0), + (36008, 250001, 0, 0, 0), + (36008, 280018, 0, 0, 0), + (36008, 320022, 0, 0, 0), + (36008, 330003, 0, 0, 0), + (36008, 340002, 0, 0, 0), + (36008, 1000137, 0, 0, 0), + (36008, 1100005, 0, 0, 0), + (36008, 1200017, 0, 0, 0), + (36009, 160027, 0, 0, 0), + (36009, 180030, 0, 0, 0), + (36009, 190020, 0, 0, 0), + (36009, 200004, 0, 0, 0), + (36009, 230001, 0, 0, 0), + (36009, 240001, 0, 0, 0), + (36009, 250001, 0, 0, 0), + (36009, 280018, 0, 0, 0), + (36009, 320022, 0, 0, 0), + (36009, 330042, 0, 0, 0), + (36009, 340002, 0, 0, 0), + (36009, 1000137, 0, 0, 0), + (36009, 1100005, 0, 0, 0), + (36009, 1200017, 0, 0, 0), + (36010, 160082, 0, 0, 0), + (36010, 180059, 0, 0, 0), + (36010, 190029, 0, 0, 0), + (36010, 200012, 0, 0, 0), + (36010, 230005, 0, 0, 0), + (36010, 240002, 0, 0, 0), + (36010, 250005, 0, 0, 0), + (36010, 280004, 0, 0, 0), + (36010, 320007, 0, 0, 0), + (36010, 330033, 0, 0, 0), + (36010, 340003, 0, 0, 0), + (36010, 1000006, 0, 0, 0), + (36010, 1100043, 0, 0, 0), + (36010, 1200005, 0, 0, 0), + (36011, 160048, 0, 0, 0), + (36011, 180022, 0, 0, 0), + (36011, 190068, 0, 0, 0), + (36011, 200022, 0, 0, 0), + (36011, 230001, 0, 0, 0), + (36011, 240001, 0, 0, 0), + (36011, 250003, 0, 0, 0), + (36011, 280022, 0, 0, 0), + (36011, 320026, 0, 0, 0), + (36011, 330020, 0, 0, 0), + (36011, 340002, 0, 0, 0), + (36011, 1000007, 0, 0, 0), + (36011, 1100019, 0, 0, 0), + (36011, 1200021, 0, 0, 0), + (36012, 160049, 0, 0, 0), + (36012, 180022, 0, 0, 0), + (36012, 190068, 0, 0, 0), + (36012, 200022, 0, 0, 0), + (36012, 230001, 0, 0, 0), + (36012, 240001, 0, 0, 0), + (36012, 250003, 0, 0, 0), + (36012, 280022, 0, 0, 0), + (36012, 320026, 0, 0, 0), + (36012, 330020, 0, 0, 0), + (36012, 340002, 0, 0, 0), + (36012, 1000008, 0, 0, 0), + (36012, 1100019, 0, 0, 0), + (36012, 1200021, 0, 0, 0), + (36013, 160013, 0, 0, 0), + (36013, 180012, 0, 0, 0), + (36013, 190014, 0, 0, 0), + (36013, 200018, 0, 0, 0), + (36013, 230001, 0, 0, 0), + (36013, 240001, 0, 0, 0), + (36013, 250002, 0, 0, 0), + (36013, 280015, 0, 0, 0), + (36013, 320021, 0, 0, 0), + (36013, 330008, 0, 0, 0), + (36013, 340002, 0, 0, 0), + (36013, 1000068, 0, 0, 0), + (36013, 1100013, 0, 0, 0), + (36013, 1200014, 0, 0, 0), + (36014, 160054, 0, 0, 0), + (36014, 180016, 0, 0, 0), + (36014, 190018, 0, 0, 0), + (36014, 200006, 0, 0, 0), + (36014, 230001, 0, 0, 0), + (36014, 240001, 0, 0, 0), + (36014, 250002, 0, 0, 0), + (36014, 280003, 0, 0, 0), + (36014, 320003, 0, 0, 0), + (36014, 330052, 0, 0, 0), + (36014, 340002, 0, 0, 0), + (36014, 1000119, 0, 0, 0), + (36014, 1100002, 0, 0, 0), + (36014, 1200002, 0, 0, 0), + (36015, 160055, 0, 0, 0), + (36015, 180015, 0, 0, 0), + (36015, 190017, 0, 0, 0), + (36015, 200029, 0, 0, 0), + (36015, 230001, 0, 0, 0), + (36015, 240005, 0, 0, 0), + (36015, 250002, 0, 0, 0), + (36015, 280034, 0, 0, 0), + (36015, 320089, 0, 0, 0), + (36015, 330034, 0, 0, 0), + (36015, 340002, 0, 0, 0), + (36015, 1000113, 0, 0, 0), + (36015, 1000120, 0, 0, 0), + (36015, 1100044, 0, 0, 0), + (36015, 1200015, 0, 0, 0), + (36016, 160078, 0, 0, 0), + (36016, 180037, 0, 0, 0), + (36016, 190069, 0, 0, 0), + (36016, 200053, 0, 0, 0), + (36016, 230003, 0, 0, 0), + (36016, 240007, 0, 0, 0), + (36016, 250007, 0, 0, 0), + (36016, 280042, 0, 0, 0), + (36016, 320065, 0, 0, 0), + (36016, 330019, 0, 0, 0), + (36016, 340003, 0, 0, 0), + (36016, 1000011, 0, 0, 0), + (36016, 1000021, 0, 0, 0), + (36016, 1100045, 0, 0, 0), + (36016, 1200039, 0, 0, 0), + (36017, 160057, 0, 0, 0), + (36017, 180016, 0, 0, 0), + (36017, 190018, 0, 0, 0), + (36017, 200006, 0, 0, 0), + (36017, 230001, 0, 0, 0), + (36017, 240001, 0, 0, 0), + (36017, 250002, 0, 0, 0), + (36017, 280003, 0, 0, 0), + (36017, 320003, 0, 0, 0), + (36017, 330034, 0, 0, 0), + (36017, 340002, 0, 0, 0), + (36017, 1000117, 0, 0, 0), + (36017, 1100002, 0, 0, 0), + (36017, 1200002, 0, 0, 0), + (36018, 160057, 0, 0, 0), + (36018, 180016, 0, 0, 0), + (36018, 190018, 0, 0, 0), + (36018, 200006, 0, 0, 0), + (36018, 230003, 0, 0, 0), + (36018, 240005, 0, 0, 0), + (36018, 250002, 0, 0, 0), + (36018, 280003, 0, 0, 0), + (36018, 320052, 0, 0, 0), + (36018, 330021, 0, 0, 0), + (36018, 340002, 0, 0, 0), + (36018, 1000012, 0, 0, 0), + (36018, 1100048, 0, 0, 0), + (36018, 1200002, 0, 0, 0), + (36019, 160010, 0, 0, 0), + (36019, 180055, 0, 0, 0), + (36019, 190071, 0, 0, 0), + (36019, 200056, 0, 0, 0), + (36019, 230001, 0, 0, 0), + (36019, 240001, 0, 0, 0), + (36019, 250002, 0, 0, 0), + (36019, 280044, 0, 0, 0), + (36019, 320092, 0, 0, 0), + (36019, 330052, 0, 0, 0), + (36019, 340002, 0, 0, 0), + (36019, 1000154, 0, 0, 0), + (36019, 1100112, 0, 0, 0), + (36019, 1200042, 0, 0, 0), + (36020, 160001, 0, 0, 0), + (36020, 180049, 0, 0, 0), + (36020, 190013, 0, 0, 0), + (36020, 200059, 0, 0, 0), + (36020, 230001, 0, 0, 0), + (36020, 240001, 0, 0, 0), + (36020, 250002, 0, 0, 0), + (36020, 280045, 0, 0, 0), + (36020, 320033, 0, 0, 0), + (36020, 330034, 0, 0, 0), + (36020, 340002, 0, 0, 0), + (36020, 1000060, 0, 0, 0), + (36020, 1100113, 0, 0, 0), + (36020, 1200013, 0, 0, 0), + (36021, 160006, 0, 0, 0), + (36021, 180014, 0, 0, 0), + (36021, 190016, 0, 0, 0), + (36021, 200002, 0, 0, 0), + (36021, 230001, 0, 0, 0), + (36021, 240001, 0, 0, 0), + (36021, 250002, 0, 0, 0), + (36021, 280024, 0, 0, 0), + (36021, 320030, 0, 0, 0), + (36021, 330013, 0, 0, 0), + (36021, 340002, 0, 0, 0), + (36021, 1000015, 0, 0, 0), + (36021, 1100001, 0, 0, 0), + (36021, 1200034, 0, 0, 0), + (36022, 160013, 0, 0, 0), + (36022, 180012, 0, 0, 0), + (36022, 190014, 0, 0, 0), + (36022, 200018, 0, 0, 0), + (36022, 230001, 0, 0, 0), + (36022, 240001, 0, 0, 0), + (36022, 250002, 0, 0, 0), + (36022, 280015, 0, 0, 0), + (36022, 320021, 0, 0, 0), + (36022, 330029, 0, 0, 0), + (36022, 340002, 0, 0, 0), + (36022, 1000068, 0, 0, 0), + (36022, 1100013, 0, 0, 0), + (36022, 1200014, 0, 0, 0), + (36023, 160009, 0, 0, 0), + (36023, 180014, 0, 0, 0), + (36023, 190016, 0, 0, 0), + (36023, 200002, 0, 0, 0), + (36023, 230001, 0, 0, 0), + (36023, 240006, 0, 0, 0), + (36023, 250002, 0, 0, 0), + (36023, 280016, 0, 0, 0), + (36023, 320020, 0, 0, 0), + (36023, 330053, 0, 0, 0), + (36023, 340002, 0, 0, 0), + (36023, 1000121, 0, 0, 0), + (36023, 1100001, 0, 0, 0), + (36023, 1200034, 0, 0, 0), + (36024, 160039, 0, 0, 0), + (36024, 180023, 0, 0, 0), + (36024, 190006, 0, 0, 0), + (36024, 200023, 0, 0, 0), + (36024, 230001, 0, 0, 0), + (36024, 240005, 0, 0, 0), + (36024, 250002, 0, 0, 0), + (36024, 280023, 0, 0, 0), + (36024, 320027, 0, 0, 0), + (36024, 330043, 0, 0, 0), + (36024, 340002, 0, 0, 0), + (36024, 1000018, 0, 0, 0), + (36024, 1100020, 0, 0, 0), + (36024, 1200035, 0, 0, 0), + (36025, 160014, 0, 0, 0), + (36025, 180013, 0, 0, 0), + (36025, 190015, 0, 0, 0), + (36025, 200046, 0, 0, 0), + (36025, 230003, 0, 0, 0), + (36025, 240006, 0, 0, 0), + (36025, 250002, 0, 0, 0), + (36025, 280002, 0, 0, 0), + (36025, 320031, 0, 0, 0), + (36025, 330033, 0, 0, 0), + (36025, 340003, 0, 0, 0), + (36025, 1000019, 0, 0, 0), + (36025, 1100014, 0, 0, 0), + (36025, 1200001, 0, 0, 0), + (36026, 25006, 0, 0, 0), + (36026, 160040, 0, 0, 0), + (36026, 180023, 0, 0, 0), + (36026, 190006, 0, 0, 0), + (36026, 200023, 0, 0, 0), + (36026, 200027, 0, 0, 0), + (36026, 230001, 0, 0, 0), + (36026, 240006, 0, 0, 0), + (36026, 250002, 0, 0, 0), + (36026, 280028, 0, 0, 0), + (36026, 320027, 0, 0, 0), + (36026, 330043, 0, 0, 0), + (36026, 340002, 0, 0, 0), + (36026, 1000051, 0, 0, 0), + (36026, 1100034, 0, 0, 0), + (36026, 1200035, 0, 0, 0), + (36027, 160012, 0, 0, 0), + (36027, 180003, 0, 0, 0), + (36027, 190016, 0, 0, 0), + (36027, 200002, 0, 0, 0), + (36027, 230001, 0, 0, 0), + (36027, 240006, 0, 0, 0), + (36027, 250002, 0, 0, 0), + (36027, 280016, 0, 0, 0), + (36027, 320020, 0, 0, 0), + (36027, 330008, 0, 0, 0), + (36027, 340002, 0, 0, 0), + (36027, 1000122, 0, 0, 0), + (36027, 1100001, 0, 0, 0), + (36027, 1200034, 0, 0, 0), + (36028, 160038, 0, 0, 0), + (36028, 180026, 0, 0, 0), + (36028, 190022, 0, 0, 0), + (36028, 200020, 0, 0, 0), + (36028, 230003, 0, 0, 0), + (36028, 240006, 0, 0, 0), + (36028, 250002, 0, 0, 0), + (36028, 280020, 0, 0, 0), + (36028, 320024, 0, 0, 0), + (36028, 330043, 0, 0, 0), + (36028, 340002, 0, 0, 0), + (36028, 1000017, 0, 0, 0), + (36028, 1100017, 0, 0, 0), + (36028, 1200019, 0, 0, 0), + (36029, 160042, 0, 0, 0), + (36029, 180028, 0, 0, 0), + (36029, 190025, 0, 0, 0), + (36029, 200027, 0, 0, 0), + (36029, 230003, 0, 0, 0), + (36029, 240005, 0, 0, 0), + (36029, 250002, 0, 0, 0), + (36029, 280029, 0, 0, 0), + (36029, 320039, 0, 0, 0), + (36029, 330043, 0, 0, 0), + (36029, 340003, 0, 0, 0), + (36029, 1000092, 0, 0, 0), + (36029, 1100037, 0, 0, 0), + (36029, 1200035, 0, 0, 0), + (36030, 160001, 0, 0, 0), + (36030, 180049, 0, 0, 0), + (36030, 190013, 0, 0, 0), + (36030, 200060, 0, 0, 0), + (36030, 230001, 0, 0, 0), + (36030, 240001, 0, 0, 0), + (36030, 250002, 0, 0, 0), + (36030, 280045, 0, 0, 0), + (36030, 320033, 0, 0, 0), + (36030, 330034, 0, 0, 0), + (36030, 340002, 0, 0, 0), + (36030, 1000060, 0, 0, 0), + (36030, 1100113, 0, 0, 0), + (36030, 1200013, 0, 0, 0), + (36031, 160005, 0, 0, 0), + (36031, 180014, 0, 0, 0), + (36031, 190016, 0, 0, 0), + (36031, 200002, 0, 0, 0), + (36031, 230002, 0, 0, 0), + (36031, 240001, 0, 0, 0), + (36031, 250002, 0, 0, 0), + (36031, 280016, 0, 0, 0), + (36031, 320020, 0, 0, 0), + (36031, 330054, 0, 0, 0), + (36031, 340001, 0, 0, 0), + (36031, 1000069, 0, 0, 0), + (36031, 1100001, 0, 0, 0), + (36031, 1200034, 0, 0, 0), + (36032, 160005, 0, 0, 0), + (36032, 180014, 0, 0, 0), + (36032, 190016, 0, 0, 0), + (36032, 200002, 0, 0, 0), + (36032, 230002, 0, 0, 0), + (36032, 240001, 0, 0, 0), + (36032, 250002, 0, 0, 0), + (36032, 280016, 0, 0, 0), + (36032, 320020, 0, 0, 0), + (36032, 330020, 0, 0, 0), + (36032, 340001, 0, 0, 0), + (36032, 1000069, 0, 0, 0), + (36032, 1100001, 0, 0, 0), + (36032, 1200034, 0, 0, 0), + (36033, 160005, 0, 0, 0), + (36033, 180014, 0, 0, 0), + (36033, 190016, 0, 0, 0), + (36033, 200002, 0, 0, 0), + (36033, 230001, 0, 0, 0), + (36033, 240001, 0, 0, 0), + (36033, 250002, 0, 0, 0), + (36033, 280016, 0, 0, 0), + (36033, 320020, 0, 0, 0), + (36033, 330053, 0, 0, 0), + (36033, 340002, 0, 0, 0), + (36033, 1000069, 0, 0, 0), + (36033, 1100001, 0, 0, 0), + (36033, 1200023, 0, 0, 0), + (36034, 160006, 0, 0, 0), + (36034, 180014, 0, 0, 0), + (36034, 190016, 0, 0, 0), + (36034, 200002, 0, 0, 0), + (36034, 230001, 0, 0, 0), + (36034, 240001, 0, 0, 0), + (36034, 250002, 0, 0, 0), + (36034, 280024, 0, 0, 0), + (36034, 320020, 0, 0, 0), + (36034, 330054, 0, 0, 0), + (36034, 340002, 0, 0, 0), + (36034, 1000123, 0, 0, 0), + (36034, 1100022, 0, 0, 0), + (36034, 1200034, 0, 0, 0), + (36035, 160006, 0, 0, 0), + (36035, 180014, 0, 0, 0), + (36035, 190016, 0, 0, 0), + (36035, 200002, 0, 0, 0), + (36035, 230001, 0, 0, 0), + (36035, 240001, 0, 0, 0), + (36035, 250002, 0, 0, 0), + (36035, 280024, 0, 0, 0), + (36035, 320020, 0, 0, 0), + (36035, 330056, 0, 0, 0), + (36035, 340002, 0, 0, 0), + (36035, 1000015, 0, 0, 0), + (36035, 1100022, 0, 0, 0), + (36035, 1200034, 0, 0, 0), + (36036, 160006, 0, 0, 0), + (36036, 180014, 0, 0, 0), + (36036, 190016, 0, 0, 0), + (36036, 200002, 0, 0, 0), + (36036, 230001, 0, 0, 0), + (36036, 240001, 0, 0, 0), + (36036, 250002, 0, 0, 0), + (36036, 280024, 0, 0, 0), + (36036, 320020, 0, 0, 0), + (36036, 330055, 0, 0, 0), + (36036, 340002, 0, 0, 0), + (36036, 1000015, 0, 0, 0), + (36036, 1100022, 0, 0, 0), + (36036, 1200034, 0, 0, 0), + (36037, 160006, 0, 0, 0), + (36037, 180014, 0, 0, 0), + (36037, 190016, 0, 0, 0), + (36037, 200002, 0, 0, 0), + (36037, 230001, 0, 0, 0), + (36037, 240001, 0, 0, 0), + (36037, 250002, 0, 0, 0), + (36037, 280024, 0, 0, 0), + (36037, 320020, 0, 0, 0), + (36037, 330055, 0, 0, 0), + (36037, 340002, 0, 0, 0), + (36037, 1000123, 0, 0, 0), + (36037, 1100025, 0, 0, 0), + (36037, 1200034, 0, 0, 0), + (36038, 160006, 0, 0, 0), + (36038, 180014, 0, 0, 0), + (36038, 190016, 0, 0, 0), + (36038, 200002, 0, 0, 0), + (36038, 230001, 0, 0, 0), + (36038, 240001, 0, 0, 0), + (36038, 250002, 0, 0, 0), + (36038, 280024, 0, 0, 0), + (36038, 320030, 0, 0, 0), + (36038, 330013, 0, 0, 0), + (36038, 340002, 0, 0, 0), + (36038, 1000071, 0, 0, 0), + (36038, 1100025, 0, 0, 0), + (36038, 1200034, 0, 0, 0), + (36039, 160006, 0, 0, 0), + (36039, 180014, 0, 0, 0), + (36039, 190016, 0, 0, 0), + (36039, 200002, 0, 0, 0), + (36039, 230001, 0, 0, 0), + (36039, 240001, 0, 0, 0), + (36039, 250002, 0, 0, 0), + (36039, 280024, 0, 0, 0), + (36039, 320030, 0, 0, 0), + (36039, 330057, 0, 0, 0), + (36039, 340002, 0, 0, 0), + (36039, 1000071, 0, 0, 0), + (36039, 1100025, 0, 0, 0), + (36039, 1200034, 0, 0, 0), + (36040, 160006, 0, 0, 0), + (36040, 180014, 0, 0, 0), + (36040, 190016, 0, 0, 0), + (36040, 200002, 0, 0, 0), + (36040, 230001, 0, 0, 0), + (36040, 240001, 0, 0, 0), + (36040, 250002, 0, 0, 0), + (36040, 280024, 0, 0, 0), + (36040, 320030, 0, 0, 0), + (36040, 330057, 0, 0, 0), + (36040, 340002, 0, 0, 0), + (36040, 1000072, 0, 0, 0), + (36040, 1100022, 0, 0, 0), + (36040, 1200034, 0, 0, 0), + (36041, 160006, 0, 0, 0), + (36041, 180014, 0, 0, 0), + (36041, 190016, 0, 0, 0), + (36041, 200002, 0, 0, 0), + (36041, 230001, 0, 0, 0), + (36041, 240001, 0, 0, 0), + (36041, 250002, 0, 0, 0), + (36041, 280024, 0, 0, 0), + (36041, 320029, 0, 0, 0), + (36041, 330057, 0, 0, 0), + (36041, 340002, 0, 0, 0), + (36041, 1000072, 0, 0, 0), + (36041, 1100023, 0, 0, 0), + (36041, 1200034, 0, 0, 0), + (36042, 160005, 0, 0, 0), + (36042, 180014, 0, 0, 0), + (36042, 190016, 0, 0, 0), + (36042, 200024, 0, 0, 0), + (36042, 230001, 0, 0, 0), + (36042, 240005, 0, 0, 0), + (36042, 250002, 0, 0, 0), + (36042, 280016, 0, 0, 0), + (36042, 320028, 0, 0, 0), + (36042, 330055, 0, 0, 0), + (36042, 340002, 0, 0, 0), + (36042, 1000070, 0, 0, 0), + (36042, 1100025, 0, 0, 0), + (36042, 1200023, 0, 0, 0), + (36043, 160009, 0, 0, 0), + (36043, 180014, 0, 0, 0), + (36043, 190016, 0, 0, 0), + (36043, 200002, 0, 0, 0), + (36043, 230001, 0, 0, 0), + (36043, 240001, 0, 0, 0), + (36043, 250002, 0, 0, 0), + (36043, 280024, 0, 0, 0), + (36043, 320020, 0, 0, 0), + (36043, 330053, 0, 0, 0), + (36043, 340002, 0, 0, 0), + (36043, 1000071, 0, 0, 0), + (36043, 1100001, 0, 0, 0), + (36043, 1200034, 0, 0, 0), + (36044, 160009, 0, 0, 0), + (36044, 180014, 0, 0, 0), + (36044, 190016, 0, 0, 0), + (36044, 200002, 0, 0, 0), + (36044, 230001, 0, 0, 0), + (36044, 240001, 0, 0, 0), + (36044, 250002, 0, 0, 0), + (36044, 280024, 0, 0, 0), + (36044, 320020, 0, 0, 0), + (36044, 330053, 0, 0, 0), + (36044, 340002, 0, 0, 0), + (36044, 1000121, 0, 0, 0), + (36044, 1100001, 0, 0, 0), + (36044, 1200034, 0, 0, 0), + (36045, 160009, 0, 0, 0), + (36045, 180014, 0, 0, 0), + (36045, 190016, 0, 0, 0), + (36045, 200002, 0, 0, 0), + (36045, 230001, 0, 0, 0), + (36045, 240001, 0, 0, 0), + (36045, 250002, 0, 0, 0), + (36045, 280024, 0, 0, 0), + (36045, 320020, 0, 0, 0), + (36045, 330034, 0, 0, 0), + (36045, 340002, 0, 0, 0), + (36045, 1000073, 0, 0, 0), + (36045, 1100001, 0, 0, 0), + (36045, 1200023, 0, 0, 0), + (36046, 160009, 0, 0, 0), + (36046, 180014, 0, 0, 0), + (36046, 190016, 0, 0, 0), + (36046, 200002, 0, 0, 0), + (36046, 230001, 0, 0, 0), + (36046, 240006, 0, 0, 0), + (36046, 250002, 0, 0, 0), + (36046, 280024, 0, 0, 0), + (36046, 320030, 0, 0, 0), + (36046, 330057, 0, 0, 0), + (36046, 340002, 0, 0, 0), + (36046, 1000073, 0, 0, 0), + (36046, 1100025, 0, 0, 0), + (36046, 1200023, 0, 0, 0), + (36047, 160009, 0, 0, 0), + (36047, 180014, 0, 0, 0), + (36047, 190016, 0, 0, 0), + (36047, 200002, 0, 0, 0), + (36047, 230001, 0, 0, 0), + (36047, 240006, 0, 0, 0), + (36047, 250002, 0, 0, 0), + (36047, 280024, 0, 0, 0), + (36047, 320020, 0, 0, 0), + (36047, 330034, 0, 0, 0), + (36047, 340002, 0, 0, 0), + (36047, 1000125, 0, 0, 0), + (36047, 1100001, 0, 0, 0), + (36047, 1200023, 0, 0, 0), + (36048, 160009, 0, 0, 0), + (36048, 180014, 0, 0, 0), + (36048, 190016, 0, 0, 0), + (36048, 200002, 0, 0, 0), + (36048, 230001, 0, 0, 0), + (36048, 240006, 0, 0, 0), + (36048, 250002, 0, 0, 0), + (36048, 280024, 0, 0, 0), + (36048, 320030, 0, 0, 0), + (36048, 330057, 0, 0, 0), + (36048, 340003, 0, 0, 0), + (36048, 1000125, 0, 0, 0), + (36048, 1100025, 0, 0, 0), + (36048, 1200023, 0, 0, 0), + (36049, 160007, 0, 0, 0), + (36049, 180014, 0, 0, 0), + (36049, 190016, 0, 0, 0), + (36049, 200047, 0, 0, 0), + (36049, 230003, 0, 0, 0), + (36049, 240008, 0, 0, 0), + (36049, 250002, 0, 0, 0), + (36049, 280024, 0, 0, 0), + (36049, 320029, 0, 0, 0), + (36049, 330025, 0, 0, 0), + (36049, 340003, 0, 0, 0), + (36049, 1000125, 0, 0, 0), + (36049, 1100024, 0, 0, 0), + (36049, 1100025, 0, 0, 0), + (36049, 1200023, 0, 0, 0), + (36050, 160012, 0, 0, 0), + (36050, 180014, 0, 0, 0), + (36050, 190016, 0, 0, 0), + (36050, 200002, 0, 0, 0), + (36050, 230001, 0, 0, 0), + (36050, 240006, 0, 0, 0), + (36050, 250002, 0, 0, 0), + (36050, 280016, 0, 0, 0), + (36050, 320020, 0, 0, 0), + (36050, 330018, 0, 0, 0), + (36050, 340002, 0, 0, 0), + (36050, 1000122, 0, 0, 0), + (36050, 1100001, 0, 0, 0), + (36050, 1200034, 0, 0, 0), + (36051, 160012, 0, 0, 0), + (36051, 180003, 0, 0, 0), + (36051, 190016, 0, 0, 0), + (36051, 200002, 0, 0, 0), + (36051, 230001, 0, 0, 0), + (36051, 240006, 0, 0, 0), + (36051, 250002, 0, 0, 0), + (36051, 280016, 0, 0, 0), + (36051, 320020, 0, 0, 0), + (36051, 330056, 0, 0, 0), + (36051, 340002, 0, 0, 0), + (36051, 1000074, 0, 0, 0), + (36051, 1100001, 0, 0, 0), + (36051, 1200034, 0, 0, 0), + (36052, 160012, 0, 0, 0), + (36052, 180003, 0, 0, 0), + (36052, 190016, 0, 0, 0), + (36052, 200002, 0, 0, 0), + (36052, 230001, 0, 0, 0), + (36052, 240006, 0, 0, 0), + (36052, 250002, 0, 0, 0), + (36052, 280016, 0, 0, 0), + (36052, 320020, 0, 0, 0), + (36052, 330018, 0, 0, 0), + (36052, 340002, 0, 0, 0), + (36052, 1000072, 0, 0, 0), + (36052, 1100025, 0, 0, 0), + (36052, 1200034, 0, 0, 0), + (36053, 160012, 0, 0, 0), + (36053, 180014, 0, 0, 0), + (36053, 190016, 0, 0, 0), + (36053, 200047, 0, 0, 0), + (36053, 230003, 0, 0, 0), + (36053, 240006, 0, 0, 0), + (36053, 250002, 0, 0, 0), + (36053, 280016, 0, 0, 0), + (36053, 320030, 0, 0, 0), + (36053, 330025, 0, 0, 0), + (36053, 340003, 0, 0, 0), + (36053, 1000125, 0, 0, 0), + (36053, 1100025, 0, 0, 0), + (36053, 1200023, 0, 0, 0), + (36054, 160012, 0, 0, 0), + (36054, 180014, 0, 0, 0), + (36054, 190016, 0, 0, 0), + (36054, 200047, 0, 0, 0), + (36054, 230003, 0, 0, 0), + (36054, 240006, 0, 0, 0), + (36054, 250002, 0, 0, 0), + (36054, 280038, 0, 0, 0), + (36054, 320029, 0, 0, 0), + (36054, 330025, 0, 0, 0), + (36054, 340003, 0, 0, 0), + (36054, 1000125, 0, 0, 0), + (36054, 1100025, 0, 0, 0), + (36054, 1200023, 0, 0, 0), + (36055, 160015, 0, 0, 0), + (36055, 180001, 0, 0, 0), + (36055, 190066, 0, 0, 0), + (36055, 200002, 0, 0, 0), + (36055, 230001, 0, 0, 0), + (36055, 240001, 0, 0, 0), + (36055, 250002, 0, 0, 0), + (36055, 280016, 0, 0, 0), + (36055, 320020, 0, 0, 0), + (36055, 330008, 0, 0, 0), + (36055, 340002, 0, 0, 0), + (36055, 1000074, 0, 0, 0), + (36055, 1100001, 0, 0, 0), + (36055, 1200034, 0, 0, 0), + (36056, 160011, 0, 0, 0), + (36056, 180062, 0, 0, 0), + (36056, 190067, 0, 0, 0), + (36056, 200048, 0, 0, 0), + (36056, 230001, 0, 0, 0), + (36056, 240001, 0, 0, 0), + (36056, 250002, 0, 0, 0), + (36056, 280051, 0, 0, 0), + (36056, 320100, 0, 0, 0), + (36056, 330056, 0, 0, 0), + (36056, 340002, 0, 0, 0), + (36056, 1000057, 0, 0, 0), + (36056, 1100120, 0, 0, 0), + (36056, 1200049, 0, 0, 0), + (36057, 160011, 0, 0, 0), + (36057, 180062, 0, 0, 0), + (36057, 190067, 0, 0, 0), + (36057, 200048, 0, 0, 0), + (36057, 230001, 0, 0, 0), + (36057, 240001, 0, 0, 0), + (36057, 250002, 0, 0, 0), + (36057, 280051, 0, 0, 0), + (36057, 320100, 0, 0, 0), + (36057, 330030, 0, 0, 0), + (36057, 340002, 0, 0, 0), + (36057, 1000057, 0, 0, 0), + (36057, 1100120, 0, 0, 0), + (36057, 1200049, 0, 0, 0), + (36058, 160011, 0, 0, 0), + (36058, 180062, 0, 0, 0), + (36058, 190067, 0, 0, 0), + (36058, 200030, 0, 0, 0), + (36058, 230001, 0, 0, 0), + (36058, 240006, 0, 0, 0), + (36058, 250002, 0, 0, 0), + (36058, 280051, 0, 0, 0), + (36058, 320101, 0, 0, 0), + (36058, 330018, 0, 0, 0), + (36058, 340002, 0, 0, 0), + (36058, 1000057, 0, 0, 0), + (36058, 1100121, 0, 0, 0), + (36058, 1200049, 0, 0, 0), + (36059, 160011, 0, 0, 0), + (36059, 180062, 0, 0, 0), + (36059, 190067, 0, 0, 0), + (36059, 200030, 0, 0, 0), + (36059, 230001, 0, 0, 0), + (36059, 240006, 0, 0, 0), + (36059, 250002, 0, 0, 0), + (36059, 280052, 0, 0, 0), + (36059, 320101, 0, 0, 0), + (36059, 330043, 0, 0, 0), + (36059, 340002, 0, 0, 0), + (36059, 1000057, 0, 0, 0), + (36059, 1100121, 0, 0, 0), + (36059, 1200049, 0, 0, 0), + (36060, 160011, 0, 0, 0), + (36060, 180062, 0, 0, 0), + (36060, 190067, 0, 0, 0), + (36060, 200030, 0, 0, 0), + (36060, 230001, 0, 0, 0), + (36060, 240005, 0, 0, 0), + (36060, 250002, 0, 0, 0), + (36060, 280052, 0, 0, 0), + (36060, 320101, 0, 0, 0), + (36060, 330030, 0, 0, 0), + (36060, 340002, 0, 0, 0), + (36060, 1000057, 0, 0, 0), + (36060, 1100121, 0, 0, 0), + (36060, 1200049, 0, 0, 0), + (36061, 160011, 0, 0, 0), + (36061, 180062, 0, 0, 0), + (36061, 190067, 0, 0, 0), + (36061, 200049, 0, 0, 0), + (36061, 230001, 0, 0, 0), + (36061, 240006, 0, 0, 0), + (36061, 250002, 0, 0, 0), + (36061, 280052, 0, 0, 0), + (36061, 320101, 0, 0, 0), + (36061, 330008, 0, 0, 0), + (36061, 340002, 0, 0, 0), + (36061, 1000057, 0, 0, 0), + (36061, 1100121, 0, 0, 0), + (36061, 1200049, 0, 0, 0), + (36062, 160011, 0, 0, 0), + (36062, 180062, 0, 0, 0), + (36062, 190067, 0, 0, 0), + (36062, 200049, 0, 0, 0), + (36062, 230001, 0, 0, 0), + (36062, 240006, 0, 0, 0), + (36062, 250002, 0, 0, 0), + (36062, 280052, 0, 0, 0), + (36062, 320101, 0, 0, 0), + (36062, 330030, 0, 0, 0), + (36062, 340002, 0, 0, 0), + (36062, 1000057, 0, 0, 0), + (36062, 1100121, 0, 0, 0), + (36062, 1200050, 0, 0, 0), + (36063, 160011, 0, 0, 0), + (36063, 180062, 0, 0, 0), + (36063, 190015, 0, 0, 0), + (36063, 200049, 0, 0, 0), + (36063, 230001, 0, 0, 0), + (36063, 240006, 0, 0, 0), + (36063, 250002, 0, 0, 0), + (36063, 280052, 0, 0, 0), + (36063, 320101, 0, 0, 0), + (36063, 330043, 0, 0, 0), + (36063, 340002, 0, 0, 0), + (36063, 1000022, 0, 0, 0), + (36063, 1100120, 0, 0, 0), + (36063, 1200050, 0, 0, 0), + (36064, 160011, 0, 0, 0), + (36064, 180062, 0, 0, 0), + (36064, 190067, 0, 0, 0), + (36064, 200049, 0, 0, 0), + (36064, 230001, 0, 0, 0), + (36064, 240005, 0, 0, 0), + (36064, 250002, 0, 0, 0), + (36064, 280052, 0, 0, 0), + (36064, 320100, 0, 0, 0), + (36064, 330030, 0, 0, 0), + (36064, 340002, 0, 0, 0), + (36064, 1000057, 0, 0, 0), + (36064, 1100121, 0, 0, 0), + (36064, 1200050, 0, 0, 0), + (36065, 160016, 0, 0, 0), + (36065, 180062, 0, 0, 0), + (36065, 190067, 0, 0, 0), + (36065, 200049, 0, 0, 0), + (36065, 230001, 0, 0, 0), + (36065, 240005, 0, 0, 0), + (36065, 250002, 0, 0, 0), + (36065, 280052, 0, 0, 0), + (36065, 320101, 0, 0, 0), + (36065, 330043, 0, 0, 0), + (36065, 340002, 0, 0, 0), + (36065, 1000022, 0, 0, 0), + (36065, 1100121, 0, 0, 0), + (36065, 1200050, 0, 0, 0), + (36066, 160016, 0, 0, 0), + (36066, 180062, 0, 0, 0), + (36066, 190067, 0, 0, 0), + (36066, 200030, 0, 0, 0), + (36066, 230001, 0, 0, 0), + (36066, 240005, 0, 0, 0), + (36066, 250002, 0, 0, 0), + (36066, 280052, 0, 0, 0), + (36066, 320101, 0, 0, 0), + (36066, 330017, 0, 0, 0), + (36066, 340002, 0, 0, 0), + (36066, 1000126, 0, 0, 0), + (36066, 1100121, 0, 0, 0), + (36066, 1200050, 0, 0, 0), + (36067, 160016, 0, 0, 0), + (36067, 180062, 0, 0, 0), + (36067, 190067, 0, 0, 0), + (36067, 200030, 0, 0, 0), + (36067, 230001, 0, 0, 0), + (36067, 240005, 0, 0, 0), + (36067, 250002, 0, 0, 0), + (36067, 280052, 0, 0, 0), + (36067, 320101, 0, 0, 0), + (36067, 330019, 0, 0, 0), + (36067, 340002, 0, 0, 0), + (36067, 1000126, 0, 0, 0), + (36067, 1100121, 0, 0, 0), + (36067, 1200050, 0, 0, 0), + (36068, 160016, 0, 0, 0), + (36068, 180062, 0, 0, 0), + (36068, 190067, 0, 0, 0), + (36068, 200050, 0, 0, 0), + (36068, 230001, 0, 0, 0), + (36068, 240005, 0, 0, 0), + (36068, 250002, 0, 0, 0), + (36068, 280052, 0, 0, 0), + (36068, 320100, 0, 0, 0), + (36068, 330043, 0, 0, 0), + (36068, 340002, 0, 0, 0), + (36068, 1000022, 0, 0, 0), + (36068, 1100121, 0, 0, 0), + (36068, 1200050, 0, 0, 0), + (36069, 160016, 0, 0, 0), + (36069, 180062, 0, 0, 0), + (36069, 190067, 0, 0, 0), + (36069, 200030, 0, 0, 0), + (36069, 230001, 0, 0, 0), + (36069, 240005, 0, 0, 0), + (36069, 250002, 0, 0, 0), + (36069, 280052, 0, 0, 0), + (36069, 320101, 0, 0, 0), + (36069, 330043, 0, 0, 0), + (36069, 340002, 0, 0, 0), + (36069, 1000126, 0, 0, 0), + (36069, 1100121, 0, 0, 0), + (36069, 1200050, 0, 0, 0), + (36070, 160004, 0, 0, 0), + (36070, 180062, 0, 0, 0), + (36070, 190067, 0, 0, 0), + (36070, 200008, 0, 0, 0), + (36070, 230004, 0, 0, 0), + (36070, 240005, 0, 0, 0), + (36070, 250002, 0, 0, 0), + (36070, 280005, 0, 0, 0), + (36070, 320010, 0, 0, 0), + (36070, 330019, 0, 0, 0), + (36070, 340003, 0, 0, 0), + (36070, 1000126, 0, 0, 0), + (36070, 1100122, 0, 0, 0), + (36070, 1200050, 0, 0, 0), + (36071, 160014, 0, 0, 0), + (36071, 180002, 0, 0, 0), + (36071, 190015, 0, 0, 0), + (36071, 200003, 0, 0, 0), + (36071, 230003, 0, 0, 0), + (36071, 240006, 0, 0, 0), + (36071, 250002, 0, 0, 0), + (36071, 280002, 0, 0, 0), + (36071, 320002, 0, 0, 0), + (36071, 330018, 0, 0, 0), + (36071, 340002, 0, 0, 0), + (36071, 1000075, 0, 0, 0), + (36071, 1100014, 0, 0, 0), + (36071, 1200001, 0, 0, 0), + (36072, 160014, 0, 0, 0), + (36072, 180002, 0, 0, 0), + (36072, 190015, 0, 0, 0), + (36072, 200046, 0, 0, 0), + (36072, 230003, 0, 0, 0), + (36072, 240006, 0, 0, 0), + (36072, 250002, 0, 0, 0), + (36072, 280006, 0, 0, 0), + (36072, 320002, 0, 0, 0), + (36072, 330004, 0, 0, 0), + (36072, 340002, 0, 0, 0), + (36072, 1000075, 0, 0, 0), + (36072, 1100026, 0, 0, 0), + (36072, 1200001, 0, 0, 0), + (36073, 160014, 0, 0, 0), + (36073, 180013, 0, 0, 0), + (36073, 190015, 0, 0, 0), + (36073, 200046, 0, 0, 0), + (36073, 230003, 0, 0, 0), + (36073, 240006, 0, 0, 0), + (36073, 250002, 0, 0, 0), + (36073, 280006, 0, 0, 0), + (36073, 320031, 0, 0, 0), + (36073, 330033, 0, 0, 0), + (36073, 340003, 0, 0, 0), + (36073, 1000023, 0, 0, 0), + (36073, 1100025, 0, 0, 0), + (36073, 1200024, 0, 0, 0), + (36074, 160014, 0, 0, 0), + (36074, 180002, 0, 0, 0), + (36074, 190015, 0, 0, 0), + (36074, 200046, 0, 0, 0), + (36074, 230003, 0, 0, 0), + (36074, 240006, 0, 0, 0), + (36074, 250002, 0, 0, 0), + (36074, 280006, 0, 0, 0), + (36074, 320002, 0, 0, 0), + (36074, 330033, 0, 0, 0), + (36074, 340003, 0, 0, 0), + (36074, 1000075, 0, 0, 0), + (36074, 1100026, 0, 0, 0), + (36074, 1200001, 0, 0, 0), + (36075, 160087, 0, 0, 0), + (36075, 180002, 0, 0, 0), + (36075, 190015, 0, 0, 0), + (36075, 200003, 0, 0, 0), + (36075, 230001, 0, 0, 0), + (36075, 240005, 0, 0, 0), + (36075, 250002, 0, 0, 0), + (36075, 280006, 0, 0, 0), + (36075, 320002, 0, 0, 0), + (36075, 330043, 0, 0, 0), + (36075, 340002, 0, 0, 0), + (36075, 1000127, 0, 0, 0), + (36075, 1100025, 0, 0, 0), + (36075, 1200001, 0, 0, 0), + (36076, 160087, 0, 0, 0), + (36076, 180013, 0, 0, 0), + (36076, 190015, 0, 0, 0), + (36076, 200046, 0, 0, 0), + (36076, 230001, 0, 0, 0), + (36076, 240005, 0, 0, 0), + (36076, 250002, 0, 0, 0), + (36076, 280006, 0, 0, 0), + (36076, 320009, 0, 0, 0), + (36076, 330027, 0, 0, 0), + (36076, 340002, 0, 0, 0), + (36076, 1000023, 0, 0, 0), + (36076, 1100026, 0, 0, 0), + (36076, 1200024, 0, 0, 0), + (36077, 160087, 0, 0, 0), + (36077, 180002, 0, 0, 0), + (36077, 190015, 0, 0, 0), + (36077, 200046, 0, 0, 0), + (36077, 230001, 0, 0, 0), + (36077, 240005, 0, 0, 0), + (36077, 250002, 0, 0, 0), + (36077, 280006, 0, 0, 0), + (36077, 320002, 0, 0, 0), + (36077, 330014, 0, 0, 0), + (36077, 340002, 0, 0, 0), + (36077, 1000127, 0, 0, 0), + (36077, 1100026, 0, 0, 0), + (36077, 1200001, 0, 0, 0), + (36078, 160087, 0, 0, 0), + (36078, 180013, 0, 0, 0), + (36078, 190015, 0, 0, 0), + (36078, 200046, 0, 0, 0), + (36078, 230003, 0, 0, 0), + (36078, 240007, 0, 0, 0), + (36078, 250002, 0, 0, 0), + (36078, 280006, 0, 0, 0), + (36078, 320031, 0, 0, 0), + (36078, 330027, 0, 0, 0), + (36078, 340003, 0, 0, 0), + (36078, 1000024, 0, 0, 0), + (36078, 1100026, 0, 0, 0), + (36078, 1200024, 0, 0, 0), + (36079, 160087, 0, 0, 0), + (36079, 180013, 0, 0, 0), + (36079, 190015, 0, 0, 0), + (36079, 200046, 0, 0, 0), + (36079, 230003, 0, 0, 0), + (36079, 240007, 0, 0, 0), + (36079, 250002, 0, 0, 0), + (36079, 280006, 0, 0, 0), + (36079, 320009, 0, 0, 0), + (36079, 330014, 0, 0, 0), + (36079, 340003, 0, 0, 0), + (36079, 1000025, 0, 0, 0), + (36079, 1100026, 0, 0, 0), + (36079, 1200024, 0, 0, 0), + (36080, 160087, 0, 0, 0), + (36080, 180013, 0, 0, 0), + (36080, 190015, 0, 0, 0), + (36080, 200046, 0, 0, 0), + (36080, 230003, 0, 0, 0), + (36080, 240007, 0, 0, 0), + (36080, 250002, 0, 0, 0), + (36080, 280006, 0, 0, 0), + (36080, 320009, 0, 0, 0), + (36080, 330014, 0, 0, 0), + (36080, 340003, 0, 0, 0), + (36080, 1000023, 0, 0, 0), + (36080, 1100026, 0, 0, 0), + (36080, 1200024, 0, 0, 0), + (36081, 160072, 0, 0, 0), + (36081, 180002, 0, 0, 0), + (36081, 190015, 0, 0, 0), + (36081, 200003, 0, 0, 0), + (36081, 230003, 0, 0, 0), + (36081, 240006, 0, 0, 0), + (36081, 250002, 0, 0, 0), + (36081, 280002, 0, 0, 0), + (36081, 320002, 0, 0, 0), + (36081, 330018, 0, 0, 0), + (36081, 340002, 0, 0, 0), + (36081, 1000075, 0, 0, 0), + (36081, 1100014, 0, 0, 0), + (36081, 1200001, 0, 0, 0), + (36082, 160017, 0, 0, 0), + (36082, 180002, 0, 0, 0), + (36082, 190015, 0, 0, 0), + (36082, 200046, 0, 0, 0), + (36082, 230001, 0, 0, 0), + (36082, 240005, 0, 0, 0), + (36082, 250002, 0, 0, 0), + (36082, 280002, 0, 0, 0), + (36082, 320002, 0, 0, 0), + (36082, 330043, 0, 0, 0), + (36082, 340002, 0, 0, 0), + (36082, 1000075, 0, 0, 0), + (36082, 1100026, 0, 0, 0), + (36082, 1200001, 0, 0, 0), + (36083, 160017, 0, 0, 0), + (36083, 180002, 0, 0, 0), + (36083, 190015, 0, 0, 0), + (36083, 200046, 0, 0, 0), + (36083, 230003, 0, 0, 0), + (36083, 240005, 0, 0, 0), + (36083, 250002, 0, 0, 0), + (36083, 280006, 0, 0, 0), + (36083, 320002, 0, 0, 0), + (36083, 330043, 0, 0, 0), + (36083, 340003, 0, 0, 0), + (36083, 1000075, 0, 0, 0), + (36083, 1100026, 0, 0, 0), + (36083, 1200001, 0, 0, 0), + (36084, 160017, 0, 0, 0), + (36084, 180002, 0, 0, 0), + (36084, 190015, 0, 0, 0), + (36084, 200046, 0, 0, 0), + (36084, 230003, 0, 0, 0), + (36084, 240005, 0, 0, 0), + (36084, 250002, 0, 0, 0), + (36084, 280006, 0, 0, 0), + (36084, 320002, 0, 0, 0), + (36084, 330043, 0, 0, 0), + (36084, 340003, 0, 0, 0), + (36084, 1000075, 0, 0, 0), + (36084, 1100026, 0, 0, 0), + (36084, 1200024, 0, 0, 0), + (36085, 160017, 0, 0, 0), + (36085, 180002, 0, 0, 0), + (36085, 190015, 0, 0, 0), + (36085, 200046, 0, 0, 0), + (36085, 230003, 0, 0, 0), + (36085, 240007, 0, 0, 0), + (36085, 250002, 0, 0, 0), + (36085, 280006, 0, 0, 0), + (36085, 320032, 0, 0, 0), + (36085, 330025, 0, 0, 0), + (36085, 340003, 0, 0, 0), + (36085, 1000077, 0, 0, 0), + (36085, 1100026, 0, 0, 0), + (36085, 1200024, 0, 0, 0), + (36086, 160017, 0, 0, 0), + (36086, 180002, 0, 0, 0), + (36086, 190015, 0, 0, 0), + (36086, 200051, 0, 0, 0), + (36086, 230003, 0, 0, 0), + (36086, 240007, 0, 0, 0), + (36086, 250002, 0, 0, 0), + (36086, 280006, 0, 0, 0), + (36086, 320032, 0, 0, 0), + (36086, 330025, 0, 0, 0), + (36086, 340003, 0, 0, 0), + (36086, 1000025, 0, 0, 0), + (36086, 1100026, 0, 0, 0), + (36086, 1200024, 0, 0, 0), + (36087, 160017, 0, 0, 0), + (36087, 180013, 0, 0, 0), + (36087, 190015, 0, 0, 0), + (36087, 200051, 0, 0, 0), + (36087, 230003, 0, 0, 0), + (36087, 240007, 0, 0, 0), + (36087, 250002, 0, 0, 0), + (36087, 280006, 0, 0, 0), + (36087, 320031, 0, 0, 0), + (36087, 330027, 0, 0, 0), + (36087, 340003, 0, 0, 0), + (36087, 1000025, 0, 0, 0), + (36087, 1100027, 0, 0, 0), + (36087, 1200024, 0, 0, 0), + (36088, 160038, 0, 0, 0), + (36088, 180025, 0, 0, 0), + (36088, 190022, 0, 0, 0), + (36088, 200020, 0, 0, 0), + (36088, 230001, 0, 0, 0), + (36088, 240001, 0, 0, 0), + (36088, 250002, 0, 0, 0), + (36088, 280020, 0, 0, 0), + (36088, 320024, 0, 0, 0), + (36088, 330058, 0, 0, 0), + (36088, 340002, 0, 0, 0), + (36088, 1000081, 0, 0, 0), + (36088, 1100017, 0, 0, 0), + (36088, 1200019, 0, 0, 0), + (36089, 160038, 0, 0, 0), + (36089, 180026, 0, 0, 0), + (36089, 190022, 0, 0, 0), + (36089, 200020, 0, 0, 0), + (36089, 230003, 0, 0, 0), + (36089, 240006, 0, 0, 0), + (36089, 250002, 0, 0, 0), + (36089, 280027, 0, 0, 0), + (36089, 320024, 0, 0, 0), + (36089, 330043, 0, 0, 0), + (36089, 340002, 0, 0, 0), + (36089, 1000017, 0, 0, 0), + (36089, 1100098, 0, 0, 0), + (36089, 1200019, 0, 0, 0), + (36090, 160038, 0, 0, 0), + (36090, 180026, 0, 0, 0), + (36090, 190022, 0, 0, 0), + (36090, 200020, 0, 0, 0), + (36090, 230003, 0, 0, 0), + (36090, 240006, 0, 0, 0), + (36090, 250002, 0, 0, 0), + (36090, 280027, 0, 0, 0), + (36090, 320024, 0, 0, 0), + (36090, 330043, 0, 0, 0), + (36090, 340002, 0, 0, 0), + (36090, 1000017, 0, 0, 0), + (36090, 1100098, 0, 0, 0), + (36090, 1200019, 0, 0, 0), + (36091, 160038, 0, 0, 0), + (36091, 180026, 0, 0, 0), + (36091, 190022, 0, 0, 0), + (36091, 200020, 0, 0, 0), + (36091, 230003, 0, 0, 0), + (36091, 240006, 0, 0, 0), + (36091, 250002, 0, 0, 0), + (36091, 280027, 0, 0, 0), + (36091, 320024, 0, 0, 0), + (36091, 330043, 0, 0, 0), + (36091, 340002, 0, 0, 0), + (36091, 1000017, 0, 0, 0), + (36091, 1100098, 0, 0, 0), + (36091, 1200019, 0, 0, 0), + (36092, 160038, 0, 0, 0), + (36092, 180026, 0, 0, 0), + (36092, 190022, 0, 0, 0), + (36092, 200020, 0, 0, 0), + (36092, 230003, 0, 0, 0), + (36092, 240006, 0, 0, 0), + (36092, 250002, 0, 0, 0), + (36092, 280027, 0, 0, 0), + (36092, 320024, 0, 0, 0), + (36092, 330043, 0, 0, 0), + (36092, 340002, 0, 0, 0), + (36092, 1000017, 0, 0, 0), + (36092, 1100098, 0, 0, 0), + (36092, 1200019, 0, 0, 0), + (36093, 160037, 0, 0, 0), + (36093, 180020, 0, 0, 0), + (36093, 190022, 0, 0, 0), + (36093, 200020, 0, 0, 0), + (36093, 230001, 0, 0, 0), + (36093, 240001, 0, 0, 0), + (36093, 250002, 0, 0, 0), + (36093, 280027, 0, 0, 0), + (36093, 320024, 0, 0, 0), + (36093, 330018, 0, 0, 0), + (36093, 340002, 0, 0, 0), + (36093, 1000017, 0, 0, 0), + (36093, 1100098, 0, 0, 0), + (36093, 1200019, 0, 0, 0), + (36094, 160037, 0, 0, 0), + (36094, 180020, 0, 0, 0), + (36094, 190022, 0, 0, 0), + (36094, 200052, 0, 0, 0), + (36094, 230001, 0, 0, 0), + (36094, 240001, 0, 0, 0), + (36094, 250002, 0, 0, 0), + (36094, 280027, 0, 0, 0), + (36094, 320024, 0, 0, 0), + (36094, 330043, 0, 0, 0), + (36094, 340002, 0, 0, 0), + (36094, 1000017, 0, 0, 0), + (36094, 1100098, 0, 0, 0), + (36094, 1200019, 0, 0, 0), + (36095, 160037, 0, 0, 0), + (36095, 180020, 0, 0, 0), + (36095, 190022, 0, 0, 0), + (36095, 200052, 0, 0, 0), + (36095, 230001, 0, 0, 0), + (36095, 240001, 0, 0, 0), + (36095, 250002, 0, 0, 0), + (36095, 280027, 0, 0, 0), + (36095, 320024, 0, 0, 0), + (36095, 330030, 0, 0, 0), + (36095, 340002, 0, 0, 0), + (36095, 1000017, 0, 0, 0), + (36095, 1100098, 0, 0, 0), + (36095, 1200019, 0, 0, 0), + (36096, 160037, 0, 0, 0), + (36096, 180020, 0, 0, 0), + (36096, 190022, 0, 0, 0), + (36096, 200020, 0, 0, 0), + (36096, 230001, 0, 0, 0), + (36096, 240001, 0, 0, 0), + (36096, 250002, 0, 0, 0), + (36096, 280020, 0, 0, 0), + (36096, 320024, 0, 0, 0), + (36096, 330018, 0, 0, 0), + (36096, 340002, 0, 0, 0), + (36096, 1000017, 0, 0, 0), + (36096, 1100017, 0, 0, 0), + (36096, 1200019, 0, 0, 0), + (36097, 25007, 0, 0, 0), + (36097, 160037, 0, 0, 0), + (36097, 180020, 0, 0, 0), + (36097, 190022, 0, 0, 0), + (36097, 200052, 0, 0, 0), + (36097, 230003, 0, 0, 0), + (36097, 240005, 0, 0, 0), + (36097, 250002, 0, 0, 0), + (36097, 280027, 0, 0, 0), + (36097, 320037, 0, 0, 0), + (36097, 330043, 0, 0, 0), + (36097, 340002, 0, 0, 0), + (36097, 1000017, 0, 0, 0), + (36097, 1100032, 0, 0, 0), + (36097, 1200019, 0, 0, 0), + (36098, 160039, 0, 0, 0), + (36098, 180023, 0, 0, 0), + (36098, 190025, 0, 0, 0), + (36098, 200023, 0, 0, 0), + (36098, 230001, 0, 0, 0), + (36098, 240001, 0, 0, 0), + (36098, 250002, 0, 0, 0), + (36098, 280023, 0, 0, 0), + (36098, 320027, 0, 0, 0), + (36098, 330058, 0, 0, 0), + (36098, 340002, 0, 0, 0), + (36098, 1000084, 0, 0, 0), + (36098, 1100020, 0, 0, 0), + (36098, 1200035, 0, 0, 0), + (36099, 160039, 0, 0, 0), + (36099, 180023, 0, 0, 0), + (36099, 190025, 0, 0, 0), + (36099, 200023, 0, 0, 0), + (36099, 230001, 0, 0, 0), + (36099, 240001, 0, 0, 0), + (36099, 250002, 0, 0, 0), + (36099, 280023, 0, 0, 0), + (36099, 320027, 0, 0, 0), + (36099, 330058, 0, 0, 0), + (36099, 340002, 0, 0, 0), + (36099, 1000084, 0, 0, 0), + (36099, 1100099, 0, 0, 0), + (36099, 1200035, 0, 0, 0), + (36100, 160039, 0, 0, 0), + (36100, 180023, 0, 0, 0), + (36100, 190025, 0, 0, 0), + (36100, 200023, 0, 0, 0), + (36100, 230001, 0, 0, 0), + (36100, 240001, 0, 0, 0), + (36100, 250002, 0, 0, 0), + (36100, 280023, 0, 0, 0), + (36100, 320027, 0, 0, 0), + (36100, 330008, 0, 0, 0), + (36100, 340002, 0, 0, 0), + (36100, 1000084, 0, 0, 0), + (36100, 1100099, 0, 0, 0), + (36100, 1200035, 0, 0, 0), + (36101, 160039, 0, 0, 0), + (36101, 180023, 0, 0, 0), + (36101, 190025, 0, 0, 0), + (36101, 200023, 0, 0, 0), + (36101, 230001, 0, 0, 0), + (36101, 240001, 0, 0, 0), + (36101, 250002, 0, 0, 0), + (36101, 280023, 0, 0, 0), + (36101, 320027, 0, 0, 0), + (36101, 330059, 0, 0, 0), + (36101, 340002, 0, 0, 0), + (36101, 1000085, 0, 0, 0), + (36101, 1100099, 0, 0, 0), + (36101, 1200035, 0, 0, 0), + (36102, 160039, 0, 0, 0), + (36102, 180023, 0, 0, 0), + (36102, 190025, 0, 0, 0), + (36102, 200023, 0, 0, 0), + (36102, 230001, 0, 0, 0), + (36102, 240001, 0, 0, 0), + (36102, 250002, 0, 0, 0), + (36102, 280023, 0, 0, 0), + (36102, 320027, 0, 0, 0), + (36102, 330060, 0, 0, 0), + (36102, 340002, 0, 0, 0), + (36102, 1000128, 0, 0, 0), + (36102, 1100099, 0, 0, 0), + (36102, 1200035, 0, 0, 0), + (36103, 160039, 0, 0, 0), + (36103, 180023, 0, 0, 0), + (36103, 190025, 0, 0, 0), + (36103, 200023, 0, 0, 0), + (36103, 230001, 0, 0, 0), + (36103, 240001, 0, 0, 0), + (36103, 250002, 0, 0, 0), + (36103, 280039, 0, 0, 0), + (36103, 320027, 0, 0, 0), + (36103, 330060, 0, 0, 0), + (36103, 340002, 0, 0, 0), + (36103, 1000085, 0, 0, 0), + (36103, 1100100, 0, 0, 0), + (36103, 1200035, 0, 0, 0), + (36104, 160039, 0, 0, 0), + (36104, 180023, 0, 0, 0), + (36104, 190025, 0, 0, 0), + (36104, 200023, 0, 0, 0), + (36104, 230001, 0, 0, 0), + (36104, 240001, 0, 0, 0), + (36104, 250002, 0, 0, 0), + (36104, 280039, 0, 0, 0), + (36104, 320027, 0, 0, 0), + (36104, 330030, 0, 0, 0), + (36104, 340002, 0, 0, 0), + (36104, 1000085, 0, 0, 0), + (36104, 1100100, 0, 0, 0), + (36104, 1200035, 0, 0, 0), + (36105, 160039, 0, 0, 0), + (36105, 180027, 0, 0, 0), + (36105, 190025, 0, 0, 0), + (36105, 200027, 0, 0, 0), + (36105, 230001, 0, 0, 0), + (36105, 240001, 0, 0, 0), + (36105, 250002, 0, 0, 0), + (36105, 280039, 0, 0, 0), + (36105, 320090, 0, 0, 0), + (36105, 330060, 0, 0, 0), + (36105, 340002, 0, 0, 0), + (36105, 1000037, 0, 0, 0), + (36105, 1100033, 0, 0, 0), + (36105, 1200035, 0, 0, 0), + (36106, 160039, 0, 0, 0), + (36106, 180027, 0, 0, 0), + (36106, 190025, 0, 0, 0), + (36106, 200027, 0, 0, 0), + (36106, 230001, 0, 0, 0), + (36106, 240005, 0, 0, 0), + (36106, 250002, 0, 0, 0), + (36106, 280039, 0, 0, 0), + (36106, 320090, 0, 0, 0), + (36106, 330030, 0, 0, 0), + (36106, 340002, 0, 0, 0), + (36106, 1000085, 0, 0, 0), + (36106, 1100033, 0, 0, 0), + (36106, 1200035, 0, 0, 0), + (36107, 160039, 0, 0, 0), + (36107, 180023, 0, 0, 0), + (36107, 190025, 0, 0, 0), + (36107, 200023, 0, 0, 0), + (36107, 230001, 0, 0, 0), + (36107, 240001, 0, 0, 0), + (36107, 250002, 0, 0, 0), + (36107, 280039, 0, 0, 0), + (36107, 320027, 0, 0, 0), + (36107, 330030, 0, 0, 0), + (36107, 340002, 0, 0, 0), + (36107, 1000018, 0, 0, 0), + (36107, 1100100, 0, 0, 0), + (36107, 1200035, 0, 0, 0), + (36108, 160039, 0, 0, 0), + (36108, 180023, 0, 0, 0), + (36108, 190025, 0, 0, 0), + (36108, 200023, 0, 0, 0), + (36108, 230001, 0, 0, 0), + (36108, 240001, 0, 0, 0), + (36108, 250002, 0, 0, 0), + (36108, 280039, 0, 0, 0), + (36108, 320027, 0, 0, 0), + (36108, 330060, 0, 0, 0), + (36108, 340002, 0, 0, 0), + (36108, 1000018, 0, 0, 0), + (36108, 1100100, 0, 0, 0), + (36108, 1200035, 0, 0, 0), + (36109, 160039, 0, 0, 0), + (36109, 180027, 0, 0, 0), + (36109, 190025, 0, 0, 0), + (36109, 200027, 0, 0, 0), + (36109, 230003, 0, 0, 0), + (36109, 240005, 0, 0, 0), + (36109, 250002, 0, 0, 0), + (36109, 280039, 0, 0, 0), + (36109, 320090, 0, 0, 0), + (36109, 330030, 0, 0, 0), + (36109, 340003, 0, 0, 0), + (36109, 1000129, 0, 0, 0), + (36109, 1100033, 0, 0, 0), + (36109, 1200037, 0, 0, 0), + (36110, 160070, 0, 0, 0), + (36110, 180029, 0, 0, 0), + (36110, 190025, 0, 0, 0), + (36110, 200027, 0, 0, 0), + (36110, 230003, 0, 0, 0), + (36110, 240005, 0, 0, 0), + (36110, 250002, 0, 0, 0), + (36110, 280029, 0, 0, 0), + (36110, 320039, 0, 0, 0), + (36110, 330055, 0, 0, 0), + (36110, 340002, 0, 0, 0), + (36110, 1000086, 0, 0, 0), + (36110, 1100037, 0, 0, 0), + (36110, 1200037, 0, 0, 0), + (36111, 160070, 0, 0, 0), + (36111, 180029, 0, 0, 0), + (36111, 190025, 0, 0, 0), + (36111, 200027, 0, 0, 0), + (36111, 230001, 0, 0, 0), + (36111, 240005, 0, 0, 0), + (36111, 250002, 0, 0, 0), + (36111, 280023, 0, 0, 0), + (36111, 320027, 0, 0, 0), + (36111, 330060, 0, 0, 0), + (36111, 340002, 0, 0, 0), + (36111, 1000130, 0, 0, 0), + (36111, 1100020, 0, 0, 0), + (36111, 1200035, 0, 0, 0), + (36112, 160070, 0, 0, 0), + (36112, 180029, 0, 0, 0), + (36112, 190025, 0, 0, 0), + (36112, 200027, 0, 0, 0), + (36112, 230003, 0, 0, 0), + (36112, 240007, 0, 0, 0), + (36112, 250002, 0, 0, 0), + (36112, 280029, 0, 0, 0), + (36112, 320039, 0, 0, 0), + (36112, 330017, 0, 0, 0), + (36112, 340002, 0, 0, 0), + (36112, 1000087, 0, 0, 0), + (36112, 1100037, 0, 0, 0), + (36112, 1200037, 0, 0, 0), + (36113, 160070, 0, 0, 0), + (36113, 180029, 0, 0, 0), + (36113, 190025, 0, 0, 0), + (36113, 200027, 0, 0, 0), + (36113, 230003, 0, 0, 0), + (36113, 240005, 0, 0, 0), + (36113, 250002, 0, 0, 0), + (36113, 280029, 0, 0, 0), + (36113, 320027, 0, 0, 0), + (36113, 330060, 0, 0, 0), + (36113, 340002, 0, 0, 0), + (36113, 1000088, 0, 0, 0), + (36113, 1100036, 0, 0, 0), + (36113, 1200035, 0, 0, 0), + (36114, 160070, 0, 0, 0), + (36114, 180029, 0, 0, 0), + (36114, 190025, 0, 0, 0), + (36114, 200027, 0, 0, 0), + (36114, 230003, 0, 0, 0), + (36114, 240005, 0, 0, 0), + (36114, 250002, 0, 0, 0), + (36114, 280029, 0, 0, 0), + (36114, 320027, 0, 0, 0), + (36114, 330030, 0, 0, 0), + (36114, 340002, 0, 0, 0), + (36114, 1000130, 0, 0, 0), + (36114, 1100036, 0, 0, 0), + (36114, 1200035, 0, 0, 0), + (36115, 160070, 0, 0, 0), + (36115, 180029, 0, 0, 0), + (36115, 190025, 0, 0, 0), + (36115, 200027, 0, 0, 0), + (36115, 230003, 0, 0, 0), + (36115, 240005, 0, 0, 0), + (36115, 250002, 0, 0, 0), + (36115, 280029, 0, 0, 0), + (36115, 320039, 0, 0, 0), + (36115, 330025, 0, 0, 0), + (36115, 340002, 0, 0, 0), + (36115, 1000049, 0, 0, 0), + (36115, 1100037, 0, 0, 0), + (36115, 1200035, 0, 0, 0), + (36116, 160070, 0, 0, 0), + (36116, 180029, 0, 0, 0), + (36116, 190025, 0, 0, 0), + (36116, 200027, 0, 0, 0), + (36116, 230003, 0, 0, 0), + (36116, 240005, 0, 0, 0), + (36116, 250002, 0, 0, 0), + (36116, 280029, 0, 0, 0), + (36116, 320039, 0, 0, 0), + (36116, 330017, 0, 0, 0), + (36116, 340002, 0, 0, 0), + (36116, 1000050, 0, 0, 0), + (36116, 1100037, 0, 0, 0), + (36116, 1200037, 0, 0, 0), + (36117, 160040, 0, 0, 0), + (36117, 180023, 0, 0, 0), + (36117, 190006, 0, 0, 0), + (36117, 200023, 0, 0, 0), + (36117, 230001, 0, 0, 0), + (36117, 240001, 0, 0, 0), + (36117, 250002, 0, 0, 0), + (36117, 280023, 0, 0, 0), + (36117, 320027, 0, 0, 0), + (36117, 330059, 0, 0, 0), + (36117, 340002, 0, 0, 0), + (36117, 1000084, 0, 0, 0), + (36117, 1100020, 0, 0, 0), + (36117, 1200035, 0, 0, 0), + (36118, 160040, 0, 0, 0), + (36118, 180023, 0, 0, 0), + (36118, 190006, 0, 0, 0), + (36118, 200006, 0, 0, 0), + (36118, 200023, 0, 0, 0), + (36118, 230003, 0, 0, 0), + (36118, 240005, 0, 0, 0), + (36118, 250002, 0, 0, 0), + (36118, 280023, 0, 0, 0), + (36118, 320027, 0, 0, 0), + (36118, 330043, 0, 0, 0), + (36118, 340002, 0, 0, 0), + (36118, 1000016, 0, 0, 0), + (36118, 1100020, 0, 0, 0), + (36118, 1200037, 0, 0, 0), + (36119, 25006, 0, 0, 0), + (36119, 160040, 0, 0, 0), + (36119, 180027, 0, 0, 0), + (36119, 190025, 0, 0, 0), + (36119, 200027, 0, 0, 0), + (36119, 230003, 0, 0, 0), + (36119, 240006, 0, 0, 0), + (36119, 250002, 0, 0, 0), + (36119, 280028, 0, 0, 0), + (36119, 320027, 0, 0, 0), + (36119, 330018, 0, 0, 0), + (36119, 340002, 0, 0, 0), + (36119, 1000016, 0, 0, 0), + (36119, 1100034, 0, 0, 0), + (36119, 1200035, 0, 0, 0), + (36120, 25006, 0, 0, 0), + (36120, 160040, 0, 0, 0), + (36120, 180027, 0, 0, 0), + (36120, 190025, 0, 0, 0), + (36120, 200023, 0, 0, 0), + (36120, 230003, 0, 0, 0), + (36120, 240006, 0, 0, 0), + (36120, 250002, 0, 0, 0), + (36120, 280028, 0, 0, 0), + (36120, 320027, 0, 0, 0), + (36120, 330018, 0, 0, 0), + (36120, 340002, 0, 0, 0), + (36120, 1000051, 0, 0, 0), + (36120, 1100034, 0, 0, 0), + (36120, 1200035, 0, 0, 0), + (36121, 25006, 0, 0, 0), + (36121, 160040, 0, 0, 0), + (36121, 180027, 0, 0, 0), + (36121, 190025, 0, 0, 0), + (36121, 200009, 0, 0, 0), + (36121, 230003, 0, 0, 0), + (36121, 240006, 0, 0, 0), + (36121, 250002, 0, 0, 0), + (36121, 280028, 0, 0, 0), + (36121, 320038, 0, 0, 0), + (36121, 330043, 0, 0, 0), + (36121, 340002, 0, 0, 0), + (36121, 1000129, 0, 0, 0), + (36121, 1100035, 0, 0, 0), + (36121, 1200035, 0, 0, 0), + (36122, 160042, 0, 0, 0), + (36122, 180028, 0, 0, 0), + (36122, 190025, 0, 0, 0), + (36122, 200027, 0, 0, 0), + (36122, 230003, 0, 0, 0), + (36122, 240005, 0, 0, 0), + (36122, 250002, 0, 0, 0), + (36122, 280023, 0, 0, 0), + (36122, 320027, 0, 0, 0), + (36122, 330043, 0, 0, 0), + (36122, 340002, 0, 0, 0), + (36122, 1000091, 0, 0, 0), + (36122, 1100020, 0, 0, 0), + (36122, 1200035, 0, 0, 0), + (36123, 160042, 0, 0, 0), + (36123, 180028, 0, 0, 0), + (36123, 190025, 0, 0, 0), + (36123, 200027, 0, 0, 0), + (36123, 230001, 0, 0, 0), + (36123, 240008, 0, 0, 0), + (36123, 250002, 0, 0, 0), + (36123, 280029, 0, 0, 0), + (36123, 320027, 0, 0, 0), + (36123, 330043, 0, 0, 0), + (36123, 340002, 0, 0, 0), + (36123, 1000090, 0, 0, 0), + (36123, 1100037, 0, 0, 0), + (36123, 1200035, 0, 0, 0), + (36124, 160042, 0, 0, 0), + (36124, 180028, 0, 0, 0), + (36124, 190025, 0, 0, 0), + (36124, 200027, 0, 0, 0), + (36124, 230001, 0, 0, 0), + (36124, 240005, 0, 0, 0), + (36124, 250002, 0, 0, 0), + (36124, 280029, 0, 0, 0), + (36124, 320039, 0, 0, 0), + (36124, 330043, 0, 0, 0), + (36124, 340002, 0, 0, 0), + (36124, 1000092, 0, 0, 0), + (36124, 1100037, 0, 0, 0), + (36124, 1200035, 0, 0, 0), + (36125, 160042, 0, 0, 0), + (36125, 180028, 0, 0, 0), + (36125, 190025, 0, 0, 0), + (36125, 200027, 0, 0, 0), + (36125, 230003, 0, 0, 0), + (36125, 240005, 0, 0, 0), + (36125, 250002, 0, 0, 0), + (36125, 280029, 0, 0, 0), + (36125, 320027, 0, 0, 0), + (36125, 330018, 0, 0, 0), + (36125, 340002, 0, 0, 0), + (36125, 1000092, 0, 0, 0), + (36125, 1100037, 0, 0, 0), + (36125, 1200035, 0, 0, 0), + (36126, 160026, 0, 0, 0), + (36126, 180018, 0, 0, 0), + (36126, 190077, 0, 0, 0), + (36126, 200066, 0, 0, 0), + (36126, 230001, 0, 0, 0), + (36126, 240001, 0, 0, 0), + (36126, 250001, 0, 0, 0), + (36126, 280050, 0, 0, 0), + (36126, 320098, 0, 0, 0), + (36126, 330024, 0, 0, 0), + (36126, 340002, 0, 0, 0), + (36126, 1000095, 0, 0, 0), + (36126, 1100119, 0, 0, 0), + (36126, 1200048, 0, 0, 0), + (36127, 160026, 0, 0, 0), + (36127, 180018, 0, 0, 0), + (36127, 190077, 0, 0, 0), + (36127, 200066, 0, 0, 0), + (36127, 230001, 0, 0, 0), + (36127, 240001, 0, 0, 0), + (36127, 250001, 0, 0, 0), + (36127, 280050, 0, 0, 0), + (36127, 320098, 0, 0, 0), + (36127, 330035, 0, 0, 0), + (36127, 340002, 0, 0, 0), + (36127, 1000094, 0, 0, 0), + (36127, 1100119, 0, 0, 0), + (36127, 1200048, 0, 0, 0), + (36128, 160026, 0, 0, 0), + (36128, 180018, 0, 0, 0), + (36128, 190077, 0, 0, 0), + (36128, 200066, 0, 0, 0), + (36128, 230001, 0, 0, 0), + (36128, 240001, 0, 0, 0), + (36128, 250001, 0, 0, 0), + (36128, 280050, 0, 0, 0), + (36128, 320098, 0, 0, 0), + (36128, 330035, 0, 0, 0), + (36128, 340002, 0, 0, 0), + (36128, 1000001, 0, 0, 0), + (36128, 1100119, 0, 0, 0), + (36128, 1200048, 0, 0, 0), + (36129, 160028, 0, 0, 0), + (36129, 180018, 0, 0, 0), + (36129, 190020, 0, 0, 0), + (36129, 200066, 0, 0, 0), + (36129, 230001, 0, 0, 0), + (36129, 240001, 0, 0, 0), + (36129, 250001, 0, 0, 0), + (36129, 280050, 0, 0, 0), + (36129, 320098, 0, 0, 0), + (36129, 330035, 0, 0, 0), + (36129, 340002, 0, 0, 0), + (36129, 1000096, 0, 0, 0), + (36129, 1100119, 0, 0, 0), + (36129, 1200048, 0, 0, 0), + (36130, 160028, 0, 0, 0), + (36130, 180018, 0, 0, 0), + (36130, 190077, 0, 0, 0), + (36130, 200066, 0, 0, 0), + (36130, 230001, 0, 0, 0), + (36130, 240001, 0, 0, 0), + (36130, 250001, 0, 0, 0), + (36130, 280050, 0, 0, 0), + (36130, 320098, 0, 0, 0), + (36130, 330035, 0, 0, 0), + (36130, 340002, 0, 0, 0), + (36130, 1000001, 0, 0, 0), + (36130, 1100119, 0, 0, 0), + (36130, 1200048, 0, 0, 0), + (36131, 160028, 0, 0, 0), + (36131, 180018, 0, 0, 0), + (36131, 190077, 0, 0, 0), + (36131, 200066, 0, 0, 0), + (36131, 230001, 0, 0, 0), + (36131, 240001, 0, 0, 0), + (36131, 250001, 0, 0, 0), + (36131, 280050, 0, 0, 0), + (36131, 320098, 0, 0, 0), + (36131, 330061, 0, 0, 0), + (36131, 340002, 0, 0, 0), + (36131, 1000099, 0, 0, 0), + (36131, 1100119, 0, 0, 0), + (36131, 1200048, 0, 0, 0), + (36132, 160035, 0, 0, 0), + (36132, 180017, 0, 0, 0), + (36132, 190019, 0, 0, 0), + (36132, 200028, 0, 0, 0), + (36132, 230003, 0, 0, 0), + (36132, 240005, 0, 0, 0), + (36132, 250001, 0, 0, 0), + (36132, 280001, 0, 0, 0), + (36132, 320001, 0, 0, 0), + (36132, 330036, 0, 0, 0), + (36132, 340002, 0, 0, 0), + (36132, 1000132, 0, 0, 0), + (36132, 1100010, 0, 0, 0), + (36132, 1200028, 0, 0, 0), + (36133, 160035, 0, 0, 0), + (36133, 180017, 0, 0, 0), + (36133, 190019, 0, 0, 0), + (36133, 200028, 0, 0, 0), + (36133, 230003, 0, 0, 0), + (36133, 240005, 0, 0, 0), + (36133, 250001, 0, 0, 0), + (36133, 280008, 0, 0, 0), + (36133, 320006, 0, 0, 0), + (36133, 330027, 0, 0, 0), + (36133, 340002, 0, 0, 0), + (36133, 1000053, 0, 0, 0), + (36133, 1100040, 0, 0, 0), + (36133, 1200003, 0, 0, 0), + (36134, 160035, 0, 0, 0), + (36134, 180017, 0, 0, 0), + (36134, 190019, 0, 0, 0), + (36134, 200028, 0, 0, 0), + (36134, 230003, 0, 0, 0), + (36134, 240005, 0, 0, 0), + (36134, 250001, 0, 0, 0), + (36134, 280001, 0, 0, 0), + (36134, 320001, 0, 0, 0), + (36134, 330062, 0, 0, 0), + (36134, 340002, 0, 0, 0), + (36134, 1000133, 0, 0, 0), + (36134, 1100010, 0, 0, 0), + (36134, 1200003, 0, 0, 0), + (36135, 160030, 0, 0, 0), + (36135, 180017, 0, 0, 0), + (36135, 190019, 0, 0, 0), + (36135, 200001, 0, 0, 0), + (36135, 230001, 0, 0, 0), + (36135, 240001, 0, 0, 0), + (36135, 250001, 0, 0, 0), + (36135, 280001, 0, 0, 0), + (36135, 320001, 0, 0, 0), + (36135, 330036, 0, 0, 0), + (36135, 340002, 0, 0, 0), + (36135, 1000030, 0, 0, 0), + (36135, 1100040, 0, 0, 0), + (36135, 1200003, 0, 0, 0), + (36136, 160030, 0, 0, 0), + (36136, 180050, 0, 0, 0), + (36136, 190003, 0, 0, 0), + (36136, 200028, 0, 0, 0), + (36136, 230001, 0, 0, 0), + (36136, 240001, 0, 0, 0), + (36136, 250001, 0, 0, 0), + (36136, 280040, 0, 0, 0), + (36136, 320006, 0, 0, 0), + (36136, 330025, 0, 0, 0), + (36136, 340002, 0, 0, 0), + (36136, 1000053, 0, 0, 0), + (36136, 1100039, 0, 0, 0), + (36136, 1200028, 0, 0, 0), + (36137, 160030, 0, 0, 0), + (36137, 180050, 0, 0, 0), + (36137, 190003, 0, 0, 0), + (36137, 200028, 0, 0, 0), + (36137, 230003, 0, 0, 0), + (36137, 240005, 0, 0, 0), + (36137, 250001, 0, 0, 0), + (36137, 280040, 0, 0, 0), + (36137, 320006, 0, 0, 0), + (36137, 330063, 0, 0, 0), + (36137, 340003, 0, 0, 0), + (36137, 1000053, 0, 0, 0), + (36137, 1100039, 0, 0, 0), + (36137, 1200028, 0, 0, 0), + (36138, 160030, 0, 0, 0), + (36138, 180017, 0, 0, 0), + (36138, 190019, 0, 0, 0), + (36138, 200028, 0, 0, 0), + (36138, 230003, 0, 0, 0), + (36138, 240008, 0, 0, 0), + (36138, 250001, 0, 0, 0), + (36138, 280040, 0, 0, 0), + (36138, 320001, 0, 0, 0), + (36138, 330027, 0, 0, 0), + (36138, 340002, 0, 0, 0), + (36138, 1000030, 0, 0, 0), + (36138, 1100042, 0, 0, 0), + (36138, 1200028, 0, 0, 0), + (36139, 160030, 0, 0, 0), + (36139, 180017, 0, 0, 0), + (36139, 190003, 0, 0, 0), + (36139, 200001, 0, 0, 0), + (36139, 230003, 0, 0, 0), + (36139, 240008, 0, 0, 0), + (36139, 250001, 0, 0, 0), + (36139, 280040, 0, 0, 0), + (36139, 320001, 0, 0, 0), + (36139, 330063, 0, 0, 0), + (36139, 340002, 0, 0, 0), + (36139, 1000053, 0, 0, 0), + (36139, 1100040, 0, 0, 0), + (36139, 1200028, 0, 0, 0), + (36140, 160030, 0, 0, 0), + (36140, 180017, 0, 0, 0), + (36140, 190019, 0, 0, 0), + (36140, 200001, 0, 0, 0), + (36140, 230001, 0, 0, 0), + (36140, 240001, 0, 0, 0), + (36140, 250001, 0, 0, 0), + (36140, 280001, 0, 0, 0), + (36140, 320001, 0, 0, 0), + (36140, 330062, 0, 0, 0), + (36140, 340002, 0, 0, 0), + (36140, 1000133, 0, 0, 0), + (36140, 1100040, 0, 0, 0), + (36140, 1200003, 0, 0, 0), + (36141, 160030, 0, 0, 0), + (36141, 180017, 0, 0, 0), + (36141, 190019, 0, 0, 0), + (36141, 200001, 0, 0, 0), + (36141, 230001, 0, 0, 0), + (36141, 240006, 0, 0, 0), + (36141, 250001, 0, 0, 0), + (36141, 280001, 0, 0, 0), + (36141, 320001, 0, 0, 0), + (36141, 330062, 0, 0, 0), + (36141, 340002, 0, 0, 0), + (36141, 1000106, 0, 0, 0), + (36141, 1100040, 0, 0, 0), + (36141, 1200003, 0, 0, 0), + (36142, 160030, 0, 0, 0), + (36142, 180017, 0, 0, 0), + (36142, 190019, 0, 0, 0), + (36142, 200001, 0, 0, 0), + (36142, 230003, 0, 0, 0), + (36142, 240005, 0, 0, 0), + (36142, 250001, 0, 0, 0), + (36142, 280040, 0, 0, 0), + (36142, 320001, 0, 0, 0), + (36142, 330036, 0, 0, 0), + (36142, 340002, 0, 0, 0), + (36142, 1000053, 0, 0, 0), + (36142, 1100040, 0, 0, 0), + (36142, 1200003, 0, 0, 0), + (36143, 160030, 0, 0, 0), + (36143, 180050, 0, 0, 0), + (36143, 190019, 0, 0, 0), + (36143, 200028, 0, 0, 0), + (36143, 230003, 0, 0, 0), + (36143, 240008, 0, 0, 0), + (36143, 250001, 0, 0, 0), + (36143, 280040, 0, 0, 0), + (36143, 320006, 0, 0, 0), + (36143, 330004, 0, 0, 0), + (36143, 340002, 0, 0, 0), + (36143, 1000053, 0, 0, 0), + (36143, 1100040, 0, 0, 0), + (36143, 1200003, 0, 0, 0), + (36144, 160031, 0, 0, 0), + (36144, 180050, 0, 0, 0), + (36144, 190003, 0, 0, 0), + (36144, 200028, 0, 0, 0), + (36144, 230003, 0, 0, 0), + (36144, 240005, 0, 0, 0), + (36144, 250001, 0, 0, 0), + (36144, 280040, 0, 0, 0), + (36144, 320006, 0, 0, 0), + (36144, 330004, 0, 0, 0), + (36144, 340002, 0, 0, 0), + (36144, 1000031, 0, 0, 0), + (36144, 1100039, 0, 0, 0), + (36144, 1200028, 0, 0, 0), + (36145, 160031, 0, 0, 0), + (36145, 180050, 0, 0, 0), + (36145, 190003, 0, 0, 0), + (36145, 200028, 0, 0, 0), + (36145, 230003, 0, 0, 0), + (36145, 240005, 0, 0, 0), + (36145, 250001, 0, 0, 0), + (36145, 280040, 0, 0, 0), + (36145, 320006, 0, 0, 0), + (36145, 330064, 0, 0, 0), + (36145, 340003, 0, 0, 0), + (36145, 1000103, 0, 0, 0), + (36145, 1100039, 0, 0, 0), + (36145, 1200028, 0, 0, 0), + (36146, 160032, 0, 0, 0), + (36146, 180017, 0, 0, 0), + (36146, 190019, 0, 0, 0), + (36146, 200001, 0, 0, 0), + (36146, 230003, 0, 0, 0), + (36146, 240006, 0, 0, 0), + (36146, 250001, 0, 0, 0), + (36146, 280040, 0, 0, 0), + (36146, 320006, 0, 0, 0), + (36146, 330027, 0, 0, 0), + (36146, 340002, 0, 0, 0), + (36146, 1000005, 0, 0, 0), + (36146, 1100040, 0, 0, 0), + (36146, 1200029, 0, 0, 0), + (36147, 160032, 0, 0, 0), + (36147, 180032, 0, 0, 0), + (36147, 190002, 0, 0, 0), + (36147, 200028, 0, 0, 0), + (36147, 230003, 0, 0, 0), + (36147, 240006, 0, 0, 0), + (36147, 250001, 0, 0, 0), + (36147, 280040, 0, 0, 0), + (36147, 320006, 0, 0, 0), + (36147, 330027, 0, 0, 0), + (36147, 340002, 0, 0, 0), + (36147, 1000052, 0, 0, 0), + (36147, 1100039, 0, 0, 0), + (36147, 1200029, 0, 0, 0), + (36148, 160032, 0, 0, 0), + (36148, 180032, 0, 0, 0), + (36148, 190002, 0, 0, 0), + (36148, 200028, 0, 0, 0), + (36148, 230003, 0, 0, 0), + (36148, 240006, 0, 0, 0), + (36148, 250001, 0, 0, 0), + (36148, 280040, 0, 0, 0), + (36148, 320044, 0, 0, 0), + (36148, 330022, 0, 0, 0), + (36148, 340003, 0, 0, 0), + (36148, 1000052, 0, 0, 0), + (36148, 1100039, 0, 0, 0), + (36148, 1200029, 0, 0, 0), + (36149, 160032, 0, 0, 0), + (36149, 180032, 0, 0, 0), + (36149, 190026, 0, 0, 0), + (36149, 200010, 0, 0, 0), + (36149, 230004, 0, 0, 0), + (36149, 240007, 0, 0, 0), + (36149, 250005, 0, 0, 0), + (36149, 280040, 0, 0, 0), + (36149, 320043, 0, 0, 0), + (36149, 330047, 0, 0, 0), + (36149, 340003, 0, 0, 0), + (36149, 1000033, 0, 0, 0), + (36149, 1100039, 0, 0, 0), + (36149, 1200029, 0, 0, 0), + (36150, 160033, 0, 0, 0), + (36150, 180017, 0, 0, 0), + (36150, 190020, 0, 0, 0), + (36150, 200028, 0, 0, 0), + (36150, 230003, 0, 0, 0), + (36150, 240005, 0, 0, 0), + (36150, 250001, 0, 0, 0), + (36150, 280040, 0, 0, 0), + (36150, 320001, 0, 0, 0), + (36150, 330033, 0, 0, 0), + (36150, 340002, 0, 0, 0), + (36150, 1000134, 0, 0, 0), + (36150, 1100040, 0, 0, 0), + (36150, 1200029, 0, 0, 0), + (36151, 160033, 0, 0, 0), + (36151, 180035, 0, 0, 0), + (36151, 190027, 0, 0, 0), + (36151, 200028, 0, 0, 0), + (36151, 230003, 0, 0, 0), + (36151, 240005, 0, 0, 0), + (36151, 250001, 0, 0, 0), + (36151, 280040, 0, 0, 0), + (36151, 320006, 0, 0, 0), + (36151, 330027, 0, 0, 0), + (36151, 340002, 0, 0, 0), + (36151, 1000134, 0, 0, 0), + (36151, 1100039, 0, 0, 0), + (36151, 1200029, 0, 0, 0), + (36152, 160033, 0, 0, 0), + (36152, 180051, 0, 0, 0), + (36152, 190027, 0, 0, 0), + (36152, 200028, 0, 0, 0), + (36152, 230003, 0, 0, 0), + (36152, 240006, 0, 0, 0), + (36152, 250008, 0, 0, 0), + (36152, 280008, 0, 0, 0), + (36152, 320011, 0, 0, 0), + (36152, 330033, 0, 0, 0), + (36152, 340003, 0, 0, 0), + (36152, 1000005, 0, 0, 0), + (36152, 1100040, 0, 0, 0), + (36152, 1200029, 0, 0, 0), + (36153, 160033, 0, 0, 0), + (36153, 180051, 0, 0, 0), + (36153, 190026, 0, 0, 0), + (36153, 200028, 0, 0, 0), + (36153, 230004, 0, 0, 0), + (36153, 240005, 0, 0, 0), + (36153, 250005, 0, 0, 0), + (36153, 280008, 0, 0, 0), + (36153, 320011, 0, 0, 0), + (36153, 330033, 0, 0, 0), + (36153, 340004, 0, 0, 0), + (36153, 1000005, 0, 0, 0), + (36153, 1100040, 0, 0, 0), + (36153, 1200029, 0, 0, 0), + (36154, 160023, 0, 0, 0), + (36154, 180030, 0, 0, 0), + (36154, 190020, 0, 0, 0), + (36154, 200004, 0, 0, 0), + (36154, 230002, 0, 0, 0), + (36154, 240001, 0, 0, 0), + (36154, 250001, 0, 0, 0), + (36154, 280018, 0, 0, 0), + (36154, 320022, 0, 0, 0), + (36154, 330003, 0, 0, 0), + (36154, 340001, 0, 0, 0), + (36154, 1000135, 0, 0, 0), + (36154, 1100005, 0, 0, 0), + (36154, 1200017, 0, 0, 0), + (36155, 160083, 0, 0, 0), + (36155, 180052, 0, 0, 0), + (36155, 190020, 0, 0, 0), + (36155, 200004, 0, 0, 0), + (36155, 230001, 0, 0, 0), + (36155, 240005, 0, 0, 0), + (36155, 250001, 0, 0, 0), + (36155, 280018, 0, 0, 0), + (36155, 320022, 0, 0, 0), + (36155, 330035, 0, 0, 0), + (36155, 340001, 0, 0, 0), + (36155, 1000136, 0, 0, 0), + (36155, 1100101, 0, 0, 0), + (36155, 1200038, 0, 0, 0), + (36156, 160025, 0, 0, 0), + (36156, 180030, 0, 0, 0), + (36156, 190020, 0, 0, 0), + (36156, 200004, 0, 0, 0), + (36156, 230002, 0, 0, 0), + (36156, 240001, 0, 0, 0), + (36156, 250001, 0, 0, 0), + (36156, 280018, 0, 0, 0), + (36156, 320022, 0, 0, 0), + (36156, 330024, 0, 0, 0), + (36156, 340001, 0, 0, 0), + (36156, 1000137, 0, 0, 0), + (36156, 1100005, 0, 0, 0), + (36156, 1200017, 0, 0, 0), + (36157, 160025, 0, 0, 0), + (36157, 180030, 0, 0, 0), + (36157, 190020, 0, 0, 0), + (36157, 200004, 0, 0, 0), + (36157, 230001, 0, 0, 0), + (36157, 240001, 0, 0, 0), + (36157, 250001, 0, 0, 0), + (36157, 280018, 0, 0, 0), + (36157, 320022, 0, 0, 0), + (36157, 330035, 0, 0, 0), + (36157, 340001, 0, 0, 0), + (36157, 1000136, 0, 0, 0), + (36157, 1100005, 0, 0, 0), + (36157, 1200017, 0, 0, 0), + (36158, 160027, 0, 0, 0), + (36158, 180030, 0, 0, 0), + (36158, 190020, 0, 0, 0), + (36158, 200004, 0, 0, 0), + (36158, 230002, 0, 0, 0), + (36158, 240001, 0, 0, 0), + (36158, 250001, 0, 0, 0), + (36158, 280018, 0, 0, 0), + (36158, 320022, 0, 0, 0), + (36158, 330042, 0, 0, 0), + (36158, 340001, 0, 0, 0), + (36158, 1000137, 0, 0, 0), + (36158, 1100005, 0, 0, 0), + (36158, 1200017, 0, 0, 0), + (36159, 160027, 0, 0, 0), + (36159, 180030, 0, 0, 0), + (36159, 190020, 0, 0, 0), + (36159, 200004, 0, 0, 0), + (36159, 230001, 0, 0, 0), + (36159, 240001, 0, 0, 0), + (36159, 250001, 0, 0, 0), + (36159, 280018, 0, 0, 0), + (36159, 320022, 0, 0, 0), + (36159, 330035, 0, 0, 0), + (36159, 340001, 0, 0, 0), + (36159, 1000138, 0, 0, 0), + (36159, 1100005, 0, 0, 0), + (36159, 1200017, 0, 0, 0), + (36160, 160084, 0, 0, 0), + (36160, 180034, 0, 0, 0), + (36160, 190001, 0, 0, 0), + (36160, 200054, 0, 0, 0), + (36160, 230003, 0, 0, 0), + (36160, 240005, 0, 0, 0), + (36160, 250001, 0, 0, 0), + (36160, 280041, 0, 0, 0), + (36160, 320087, 0, 0, 0), + (36160, 330025, 0, 0, 0), + (36160, 340003, 0, 0, 0), + (36160, 1000139, 0, 0, 0), + (36160, 1100005, 0, 0, 0), + (36160, 1200038, 0, 0, 0), + (36161, 160019, 0, 0, 0), + (36161, 180030, 0, 0, 0), + (36161, 190020, 0, 0, 0), + (36161, 200004, 0, 0, 0), + (36161, 230001, 0, 0, 0), + (36161, 240001, 0, 0, 0), + (36161, 250001, 0, 0, 0), + (36161, 280018, 0, 0, 0), + (36161, 320022, 0, 0, 0), + (36161, 330062, 0, 0, 0), + (36161, 340002, 0, 0, 0), + (36161, 1000140, 0, 0, 0), + (36161, 1100101, 0, 0, 0), + (36161, 1200017, 0, 0, 0), + (36162, 160019, 0, 0, 0), + (36162, 180030, 0, 0, 0), + (36162, 190020, 0, 0, 0), + (36162, 200004, 0, 0, 0), + (36162, 230001, 0, 0, 0), + (36162, 240006, 0, 0, 0), + (36162, 250001, 0, 0, 0), + (36162, 280018, 0, 0, 0), + (36162, 320022, 0, 0, 0), + (36162, 330036, 0, 0, 0), + (36162, 340002, 0, 0, 0), + (36162, 1000141, 0, 0, 0), + (36162, 1100101, 0, 0, 0), + (36162, 1200017, 0, 0, 0), + (36163, 160019, 0, 0, 0), + (36163, 180030, 0, 0, 0), + (36163, 190020, 0, 0, 0), + (36163, 200004, 0, 0, 0), + (36163, 230001, 0, 0, 0), + (36163, 240001, 0, 0, 0), + (36163, 250001, 0, 0, 0), + (36163, 280018, 0, 0, 0), + (36163, 320022, 0, 0, 0), + (36163, 330062, 0, 0, 0), + (36163, 340002, 0, 0, 0), + (36163, 1000137, 0, 0, 0), + (36163, 1100101, 0, 0, 0), + (36163, 1200017, 0, 0, 0), + (36164, 160029, 0, 0, 0), + (36164, 180056, 0, 0, 0), + (36164, 190073, 0, 0, 0), + (36164, 200063, 0, 0, 0), + (36164, 230001, 0, 0, 0), + (36164, 240001, 0, 0, 0), + (36164, 250001, 0, 0, 0), + (36164, 280046, 0, 0, 0), + (36164, 320093, 0, 0, 0), + (36164, 330062, 0, 0, 0), + (36164, 340002, 0, 0, 0), + (36164, 1000107, 0, 0, 0), + (36164, 1100114, 0, 0, 0), + (36164, 1200043, 0, 0, 0), + (36165, 160029, 0, 0, 0), + (36165, 180056, 0, 0, 0), + (36165, 190073, 0, 0, 0), + (36165, 200063, 0, 0, 0), + (36165, 230003, 0, 0, 0), + (36165, 240005, 0, 0, 0), + (36165, 250001, 0, 0, 0), + (36165, 280053, 0, 0, 0), + (36165, 320093, 0, 0, 0), + (36165, 330037, 0, 0, 0), + (36165, 340002, 0, 0, 0), + (36165, 1000108, 0, 0, 0), + (36165, 1100114, 0, 0, 0), + (36165, 1200043, 0, 0, 0), + (36166, 160029, 0, 0, 0), + (36166, 180056, 0, 0, 0), + (36166, 190073, 0, 0, 0), + (36166, 200063, 0, 0, 0), + (36166, 230003, 0, 0, 0), + (36166, 240005, 0, 0, 0), + (36166, 250001, 0, 0, 0), + (36166, 280053, 0, 0, 0), + (36166, 320093, 0, 0, 0), + (36166, 330038, 0, 0, 0), + (36166, 340002, 0, 0, 0), + (36166, 1000109, 0, 0, 0), + (36166, 1100114, 0, 0, 0), + (36166, 1200043, 0, 0, 0), + (36167, 160029, 0, 0, 0), + (36167, 180057, 0, 0, 0), + (36167, 190074, 0, 0, 0), + (36167, 200063, 0, 0, 0), + (36167, 230003, 0, 0, 0), + (36167, 240005, 0, 0, 0), + (36167, 250001, 0, 0, 0), + (36167, 280053, 0, 0, 0), + (36167, 320094, 0, 0, 0), + (36167, 330038, 0, 0, 0), + (36167, 340002, 0, 0, 0), + (36167, 1000058, 0, 0, 0), + (36167, 1100115, 0, 0, 0), + (36167, 1200044, 0, 0, 0), + (36168, 160029, 0, 0, 0), + (36168, 180057, 0, 0, 0), + (36168, 190074, 0, 0, 0), + (36168, 200063, 0, 0, 0), + (36168, 230003, 0, 0, 0), + (36168, 240005, 0, 0, 0), + (36168, 250001, 0, 0, 0), + (36168, 280053, 0, 0, 0), + (36168, 320094, 0, 0, 0), + (36168, 330037, 0, 0, 0), + (36168, 340002, 0, 0, 0), + (36168, 1000029, 0, 0, 0), + (36168, 1100116, 0, 0, 0), + (36168, 1200044, 0, 0, 0), + (36169, 160029, 0, 0, 0), + (36169, 180056, 0, 0, 0), + (36169, 190073, 0, 0, 0), + (36169, 200062, 0, 0, 0), + (36169, 230001, 0, 0, 0), + (36169, 240001, 0, 0, 0), + (36169, 250001, 0, 0, 0), + (36169, 280046, 0, 0, 0), + (36169, 320093, 0, 0, 0), + (36169, 330042, 0, 0, 0), + (36169, 340002, 0, 0, 0), + (36169, 1000110, 0, 0, 0), + (36169, 1100114, 0, 0, 0), + (36169, 1200043, 0, 0, 0), + (36170, 160020, 0, 0, 0), + (36170, 180056, 0, 0, 0), + (36170, 190073, 0, 0, 0), + (36170, 200062, 0, 0, 0), + (36170, 230001, 0, 0, 0), + (36170, 240001, 0, 0, 0), + (36170, 250001, 0, 0, 0), + (36170, 280053, 0, 0, 0), + (36170, 320093, 0, 0, 0), + (36170, 330042, 0, 0, 0), + (36170, 340002, 0, 0, 0), + (36170, 1000109, 0, 0, 0), + (36170, 1100114, 0, 0, 0), + (36170, 1200043, 0, 0, 0), + (36171, 160020, 0, 0, 0), + (36171, 180056, 0, 0, 0), + (36171, 190073, 0, 0, 0), + (36171, 200062, 0, 0, 0), + (36171, 230001, 0, 0, 0), + (36171, 240001, 0, 0, 0), + (36171, 250001, 0, 0, 0), + (36171, 280046, 0, 0, 0), + (36171, 320093, 0, 0, 0), + (36171, 330042, 0, 0, 0), + (36171, 340002, 0, 0, 0), + (36171, 1000110, 0, 0, 0), + (36171, 1100114, 0, 0, 0), + (36171, 1200043, 0, 0, 0), + (36172, 160034, 0, 0, 0), + (36172, 180058, 0, 0, 0), + (36172, 190075, 0, 0, 0), + (36172, 200064, 0, 0, 0), + (36172, 230003, 0, 0, 0), + (36172, 240005, 0, 0, 0), + (36172, 250001, 0, 0, 0), + (36172, 280048, 0, 0, 0), + (36172, 320095, 0, 0, 0), + (36172, 330038, 0, 0, 0), + (36172, 340002, 0, 0, 0), + (36172, 1000034, 0, 0, 0), + (36172, 1100118, 0, 0, 0), + (36172, 1200045, 0, 0, 0), + (36173, 160034, 0, 0, 0), + (36173, 180058, 0, 0, 0), + (36173, 190075, 0, 0, 0), + (36173, 200064, 0, 0, 0), + (36173, 230003, 0, 0, 0), + (36173, 240005, 0, 0, 0), + (36173, 250001, 0, 0, 0), + (36173, 280047, 0, 0, 0), + (36173, 320095, 0, 0, 0), + (36173, 330062, 0, 0, 0), + (36173, 340002, 0, 0, 0), + (36173, 1000034, 0, 0, 0), + (36173, 1100118, 0, 0, 0), + (36173, 1200045, 0, 0, 0), + (36174, 160034, 0, 0, 0), + (36174, 180058, 0, 0, 0), + (36174, 190075, 0, 0, 0), + (36174, 200012, 0, 0, 0), + (36174, 230003, 0, 0, 0), + (36174, 240005, 0, 0, 0), + (36174, 250006, 0, 0, 0), + (36174, 280048, 0, 0, 0), + (36174, 320096, 0, 0, 0), + (36174, 330025, 0, 0, 0), + (36174, 340002, 0, 0, 0), + (36174, 1000035, 0, 0, 0), + (36174, 1100118, 0, 0, 0), + (36174, 1200047, 0, 0, 0), + (36175, 160034, 0, 0, 0), + (36175, 180058, 0, 0, 0), + (36175, 190075, 0, 0, 0), + (36175, 200064, 0, 0, 0), + (36175, 230003, 0, 0, 0), + (36175, 240005, 0, 0, 0), + (36175, 250001, 0, 0, 0), + (36175, 280048, 0, 0, 0), + (36175, 320096, 0, 0, 0), + (36175, 330043, 0, 0, 0), + (36175, 340002, 0, 0, 0), + (36175, 1000035, 0, 0, 0), + (36175, 1100118, 0, 0, 0), + (36175, 1200045, 0, 0, 0), + (36176, 160034, 0, 0, 0), + (36176, 180058, 0, 0, 0), + (36176, 190075, 0, 0, 0), + (36176, 200064, 0, 0, 0), + (36176, 230001, 0, 0, 0), + (36176, 240001, 0, 0, 0), + (36176, 250001, 0, 0, 0), + (36176, 280047, 0, 0, 0), + (36176, 320095, 0, 0, 0), + (36176, 330035, 0, 0, 0), + (36176, 340002, 0, 0, 0), + (36176, 1000027, 0, 0, 0), + (36176, 1100117, 0, 0, 0), + (36176, 1200045, 0, 0, 0), + (36177, 160082, 0, 0, 0), + (36177, 180060, 0, 0, 0), + (36177, 190029, 0, 0, 0), + (36177, 200012, 0, 0, 0), + (36177, 230005, 0, 0, 0), + (36177, 240007, 0, 0, 0), + (36177, 250001, 0, 0, 0), + (36177, 280032, 0, 0, 0), + (36177, 320046, 0, 0, 0), + (36177, 330040, 0, 0, 0), + (36177, 340003, 0, 0, 0), + (36177, 1000054, 0, 0, 0), + (36177, 1100043, 0, 0, 0), + (36177, 1200005, 0, 0, 0), + (36178, 160044, 0, 0, 0), + (36178, 180058, 0, 0, 0), + (36178, 190075, 0, 0, 0), + (36178, 200064, 0, 0, 0), + (36178, 230003, 0, 0, 0), + (36178, 240005, 0, 0, 0), + (36178, 250001, 0, 0, 0), + (36178, 280048, 0, 0, 0), + (36178, 320095, 0, 0, 0), + (36178, 330038, 0, 0, 0), + (36178, 340002, 0, 0, 0), + (36178, 1000034, 0, 0, 0), + (36178, 1100118, 0, 0, 0), + (36178, 1200045, 0, 0, 0), + (36179, 160044, 0, 0, 0), + (36179, 180058, 0, 0, 0), + (36179, 190075, 0, 0, 0), + (36179, 200064, 0, 0, 0), + (36179, 230003, 0, 0, 0), + (36179, 240003, 0, 0, 0), + (36179, 250001, 0, 0, 0), + (36179, 280047, 0, 0, 0), + (36179, 320095, 0, 0, 0), + (36179, 330037, 0, 0, 0), + (36179, 340002, 0, 0, 0), + (36179, 1000027, 0, 0, 0), + (36179, 1100117, 0, 0, 0), + (36179, 1200045, 0, 0, 0), + (36180, 160044, 0, 0, 0), + (36180, 180058, 0, 0, 0), + (36180, 190075, 0, 0, 0), + (36180, 200012, 0, 0, 0), + (36180, 230003, 0, 0, 0), + (36180, 240005, 0, 0, 0), + (36180, 250001, 0, 0, 0), + (36180, 280048, 0, 0, 0), + (36180, 320096, 0, 0, 0), + (36180, 330038, 0, 0, 0), + (36180, 340002, 0, 0, 0), + (36180, 1000027, 0, 0, 0), + (36180, 1100118, 0, 0, 0), + (36180, 1200047, 0, 0, 0), + (36181, 160073, 0, 0, 0), + (36181, 180015, 0, 0, 0), + (36181, 190017, 0, 0, 0), + (36181, 200029, 0, 0, 0), + (36181, 230001, 0, 0, 0), + (36181, 240006, 0, 0, 0), + (36181, 250002, 0, 0, 0), + (36181, 280036, 0, 0, 0), + (36181, 320004, 0, 0, 0), + (36181, 330065, 0, 0, 0), + (36181, 340002, 0, 0, 0), + (36181, 1000120, 0, 0, 0), + (36181, 1100044, 0, 0, 0), + (36181, 1200015, 0, 0, 0), + (36182, 160073, 0, 0, 0), + (36182, 180015, 0, 0, 0), + (36182, 190017, 0, 0, 0), + (36182, 200029, 0, 0, 0), + (36182, 230001, 0, 0, 0), + (36182, 240005, 0, 0, 0), + (36182, 250002, 0, 0, 0), + (36182, 280036, 0, 0, 0), + (36182, 320004, 0, 0, 0), + (36182, 330066, 0, 0, 0), + (36182, 340002, 0, 0, 0), + (36182, 1000120, 0, 0, 0), + (36182, 1100044, 0, 0, 0), + (36182, 1200015, 0, 0, 0), + (36183, 160073, 0, 0, 0), + (36183, 180015, 0, 0, 0), + (36183, 190017, 0, 0, 0), + (36183, 200029, 0, 0, 0), + (36183, 230001, 0, 0, 0), + (36183, 240001, 0, 0, 0), + (36183, 250002, 0, 0, 0), + (36183, 280017, 0, 0, 0), + (36183, 320004, 0, 0, 0), + (36183, 330065, 0, 0, 0), + (36183, 340002, 0, 0, 0), + (36183, 1000114, 0, 0, 0), + (36183, 1100044, 0, 0, 0), + (36183, 1200015, 0, 0, 0), + (36184, 160073, 0, 0, 0), + (36184, 180015, 0, 0, 0), + (36184, 190017, 0, 0, 0), + (36184, 200029, 0, 0, 0), + (36184, 230003, 0, 0, 0), + (36184, 240005, 0, 0, 0), + (36184, 250002, 0, 0, 0), + (36184, 280036, 0, 0, 0), + (36184, 320049, 0, 0, 0), + (36184, 330019, 0, 0, 0), + (36184, 340002, 0, 0, 0), + (36184, 1000120, 0, 0, 0), + (36184, 1100044, 0, 0, 0), + (36184, 1200015, 0, 0, 0), + (36185, 160074, 0, 0, 0), + (36185, 180036, 0, 0, 0), + (36185, 190017, 0, 0, 0), + (36185, 200014, 0, 0, 0), + (36185, 230001, 0, 0, 0), + (36185, 240001, 0, 0, 0), + (36185, 250002, 0, 0, 0), + (36185, 280017, 0, 0, 0), + (36185, 320004, 0, 0, 0), + (36185, 330052, 0, 0, 0), + (36185, 340002, 0, 0, 0), + (36185, 1000142, 0, 0, 0), + (36185, 1100015, 0, 0, 0), + (36185, 1200015, 0, 0, 0), + (36186, 160073, 0, 0, 0), + (36186, 180036, 0, 0, 0), + (36186, 190017, 0, 0, 0), + (36186, 200029, 0, 0, 0), + (36186, 230001, 0, 0, 0), + (36186, 240006, 0, 0, 0), + (36186, 250002, 0, 0, 0), + (36186, 280036, 0, 0, 0), + (36186, 320004, 0, 0, 0), + (36186, 330034, 0, 0, 0), + (36186, 340002, 0, 0, 0), + (36186, 1000142, 0, 0, 0), + (36186, 1100015, 0, 0, 0), + (36186, 1200015, 0, 0, 0), + (36187, 160073, 0, 0, 0), + (36187, 180036, 0, 0, 0), + (36187, 190017, 0, 0, 0), + (36187, 200014, 0, 0, 0), + (36187, 230001, 0, 0, 0), + (36187, 240001, 0, 0, 0), + (36187, 250002, 0, 0, 0), + (36187, 280017, 0, 0, 0), + (36187, 320004, 0, 0, 0), + (36187, 330034, 0, 0, 0), + (36187, 340002, 0, 0, 0), + (36187, 1000142, 0, 0, 0), + (36187, 1100015, 0, 0, 0), + (36187, 1200015, 0, 0, 0), + (36188, 160075, 0, 0, 0), + (36188, 180015, 0, 0, 0), + (36188, 190017, 0, 0, 0), + (36188, 200029, 0, 0, 0), + (36188, 230003, 0, 0, 0), + (36188, 240005, 0, 0, 0), + (36188, 250002, 0, 0, 0), + (36188, 280036, 0, 0, 0), + (36188, 320004, 0, 0, 0), + (36188, 330067, 0, 0, 0), + (36188, 340002, 0, 0, 0), + (36188, 1000113, 0, 0, 0), + (36188, 1100044, 0, 0, 0), + (36188, 1200015, 0, 0, 0), + (36189, 160075, 0, 0, 0), + (36189, 180015, 0, 0, 0), + (36189, 190017, 0, 0, 0), + (36189, 200029, 0, 0, 0), + (36189, 230003, 0, 0, 0), + (36189, 240005, 0, 0, 0), + (36189, 250002, 0, 0, 0), + (36189, 280036, 0, 0, 0), + (36189, 320004, 0, 0, 0), + (36189, 330019, 0, 0, 0), + (36189, 340002, 0, 0, 0), + (36189, 1000113, 0, 0, 0), + (36189, 1100044, 0, 0, 0), + (36189, 1200032, 0, 0, 0), + (36190, 160075, 0, 0, 0), + (36190, 180015, 0, 0, 0), + (36190, 190017, 0, 0, 0), + (36190, 200045, 0, 0, 0), + (36190, 230003, 0, 0, 0), + (36190, 240005, 0, 0, 0), + (36190, 250002, 0, 0, 0), + (36190, 280036, 0, 0, 0), + (36190, 320049, 0, 0, 0), + (36190, 330019, 0, 0, 0), + (36190, 340003, 0, 0, 0), + (36190, 1000113, 0, 0, 0), + (36190, 1100044, 0, 0, 0), + (36190, 1200015, 0, 0, 0), + (36191, 160075, 0, 0, 0), + (36191, 180015, 0, 0, 0), + (36191, 190017, 0, 0, 0), + (36191, 200045, 0, 0, 0), + (36191, 230003, 0, 0, 0), + (36191, 240007, 0, 0, 0), + (36191, 250002, 0, 0, 0), + (36191, 280036, 0, 0, 0), + (36191, 320050, 0, 0, 0), + (36191, 330019, 0, 0, 0), + (36191, 340003, 0, 0, 0), + (36191, 1000113, 0, 0, 0), + (36191, 1100044, 0, 0, 0), + (36191, 1200032, 0, 0, 0), + (36192, 160075, 0, 0, 0), + (36192, 180015, 0, 0, 0), + (36192, 190017, 0, 0, 0), + (36192, 200029, 0, 0, 0), + (36192, 230003, 0, 0, 0), + (36192, 240007, 0, 0, 0), + (36192, 250002, 0, 0, 0), + (36192, 280033, 0, 0, 0), + (36192, 320013, 0, 0, 0), + (36192, 330019, 0, 0, 0), + (36192, 340003, 0, 0, 0), + (36192, 1000038, 0, 0, 0), + (36192, 1100046, 0, 0, 0), + (36192, 1200032, 0, 0, 0), + (36193, 160075, 0, 0, 0), + (36193, 180015, 0, 0, 0), + (36193, 190017, 0, 0, 0), + (36193, 200029, 0, 0, 0), + (36193, 230003, 0, 0, 0), + (36193, 240007, 0, 0, 0), + (36193, 250002, 0, 0, 0), + (36193, 280033, 0, 0, 0), + (36193, 320013, 0, 0, 0), + (36193, 330067, 0, 0, 0), + (36193, 340003, 0, 0, 0), + (36193, 1000039, 0, 0, 0), + (36193, 1100046, 0, 0, 0), + (36193, 1200032, 0, 0, 0), + (36194, 160075, 0, 0, 0), + (36194, 180015, 0, 0, 0), + (36194, 190017, 0, 0, 0), + (36194, 200029, 0, 0, 0), + (36194, 230003, 0, 0, 0), + (36194, 240005, 0, 0, 0), + (36194, 250002, 0, 0, 0), + (36194, 280036, 0, 0, 0), + (36194, 320004, 0, 0, 0), + (36194, 330067, 0, 0, 0), + (36194, 340002, 0, 0, 0), + (36194, 1000038, 0, 0, 0), + (36194, 1100044, 0, 0, 0), + (36194, 1200015, 0, 0, 0), + (36195, 160075, 0, 0, 0), + (36195, 180015, 0, 0, 0), + (36195, 190017, 0, 0, 0), + (36195, 200029, 0, 0, 0), + (36195, 230003, 0, 0, 0), + (36195, 240005, 0, 0, 0), + (36195, 250002, 0, 0, 0), + (36195, 280036, 0, 0, 0), + (36195, 320050, 0, 0, 0), + (36195, 330019, 0, 0, 0), + (36195, 340002, 0, 0, 0), + (36195, 1000114, 0, 0, 0), + (36195, 1100044, 0, 0, 0), + (36195, 1200032, 0, 0, 0), + (36196, 160056, 0, 0, 0), + (36196, 180015, 0, 0, 0), + (36196, 190017, 0, 0, 0), + (36196, 200029, 0, 0, 0), + (36196, 230003, 0, 0, 0), + (36196, 240007, 0, 0, 0), + (36196, 250002, 0, 0, 0), + (36196, 280033, 0, 0, 0), + (36196, 320013, 0, 0, 0), + (36196, 330019, 0, 0, 0), + (36196, 340003, 0, 0, 0), + (36196, 1000038, 0, 0, 0), + (36196, 1100047, 0, 0, 0), + (36196, 1200007, 0, 0, 0), + (36197, 160056, 0, 0, 0), + (36197, 180015, 0, 0, 0), + (36197, 190017, 0, 0, 0), + (36197, 200029, 0, 0, 0), + (36197, 230003, 0, 0, 0), + (36197, 240007, 0, 0, 0), + (36197, 250002, 0, 0, 0), + (36197, 280033, 0, 0, 0), + (36197, 320013, 0, 0, 0), + (36197, 330019, 0, 0, 0), + (36197, 340003, 0, 0, 0), + (36197, 1000055, 0, 0, 0), + (36197, 1100047, 0, 0, 0), + (36197, 1200007, 0, 0, 0), + (36198, 160056, 0, 0, 0), + (36198, 180015, 0, 0, 0), + (36198, 190017, 0, 0, 0), + (36198, 200029, 0, 0, 0), + (36198, 230003, 0, 0, 0), + (36198, 240007, 0, 0, 0), + (36198, 250002, 0, 0, 0), + (36198, 280033, 0, 0, 0), + (36198, 320013, 0, 0, 0), + (36198, 330019, 0, 0, 0), + (36198, 340003, 0, 0, 0), + (36198, 1000038, 0, 0, 0), + (36198, 1100046, 0, 0, 0), + (36198, 1200032, 0, 0, 0), + (36199, 160056, 0, 0, 0), + (36199, 180015, 0, 0, 0), + (36199, 190017, 0, 0, 0), + (36199, 200029, 0, 0, 0), + (36199, 230003, 0, 0, 0), + (36199, 240007, 0, 0, 0), + (36199, 250002, 0, 0, 0), + (36199, 280033, 0, 0, 0), + (36199, 320013, 0, 0, 0), + (36199, 330019, 0, 0, 0), + (36199, 340003, 0, 0, 0), + (36199, 1000039, 0, 0, 0), + (36199, 1100046, 0, 0, 0), + (36199, 1200032, 0, 0, 0), + (36200, 160056, 0, 0, 0), + (36200, 180015, 0, 0, 0), + (36200, 190017, 0, 0, 0), + (36200, 200029, 0, 0, 0), + (36200, 230003, 0, 0, 0), + (36200, 240005, 0, 0, 0), + (36200, 250002, 0, 0, 0), + (36200, 280036, 0, 0, 0), + (36200, 320004, 0, 0, 0), + (36200, 330067, 0, 0, 0), + (36200, 340002, 0, 0, 0), + (36200, 1000144, 0, 0, 0), + (36200, 1100044, 0, 0, 0), + (36200, 1200015, 0, 0, 0), + (36201, 160055, 0, 0, 0), + (36201, 180015, 0, 0, 0), + (36201, 190017, 0, 0, 0), + (36201, 200029, 0, 0, 0), + (36201, 230003, 0, 0, 0), + (36201, 240005, 0, 0, 0), + (36201, 250002, 0, 0, 0), + (36201, 280036, 0, 0, 0), + (36201, 320004, 0, 0, 0), + (36201, 330067, 0, 0, 0), + (36201, 340002, 0, 0, 0), + (36201, 1000113, 0, 0, 0), + (36201, 1100044, 0, 0, 0), + (36201, 1200015, 0, 0, 0), + (36202, 160055, 0, 0, 0), + (36202, 180015, 0, 0, 0), + (36202, 190017, 0, 0, 0), + (36202, 200029, 0, 0, 0), + (36202, 230003, 0, 0, 0), + (36202, 240007, 0, 0, 0), + (36202, 250002, 0, 0, 0), + (36202, 280036, 0, 0, 0), + (36202, 320013, 0, 0, 0), + (36202, 330064, 0, 0, 0), + (36202, 340002, 0, 0, 0), + (36202, 1000144, 0, 0, 0), + (36202, 1100044, 0, 0, 0), + (36202, 1200032, 0, 0, 0), + (36203, 160049, 0, 0, 0), + (36203, 180022, 0, 0, 0), + (36203, 190068, 0, 0, 0), + (36203, 200022, 0, 0, 0), + (36203, 230001, 0, 0, 0), + (36203, 240001, 0, 0, 0), + (36203, 250003, 0, 0, 0), + (36203, 280022, 0, 0, 0), + (36203, 320026, 0, 0, 0), + (36203, 330058, 0, 0, 0), + (36203, 340002, 0, 0, 0), + (36203, 1000149, 0, 0, 0), + (36203, 1100019, 0, 0, 0), + (36203, 1200021, 0, 0, 0), + (36204, 160050, 0, 0, 0), + (36204, 180022, 0, 0, 0), + (36204, 190068, 0, 0, 0), + (36204, 200022, 0, 0, 0), + (36204, 230003, 0, 0, 0), + (36204, 240005, 0, 0, 0), + (36204, 250003, 0, 0, 0), + (36204, 280010, 0, 0, 0), + (36204, 320026, 0, 0, 0), + (36204, 330043, 0, 0, 0), + (36204, 340002, 0, 0, 0), + (36204, 1000008, 0, 0, 0), + (36204, 1100049, 0, 0, 0), + (36204, 1200021, 0, 0, 0), + (36205, 160050, 0, 0, 0), + (36205, 180022, 0, 0, 0), + (36205, 190068, 0, 0, 0), + (36205, 200022, 0, 0, 0), + (36205, 230003, 0, 0, 0), + (36205, 240005, 0, 0, 0), + (36205, 250003, 0, 0, 0), + (36205, 280010, 0, 0, 0), + (36205, 320026, 0, 0, 0), + (36205, 330043, 0, 0, 0), + (36205, 340002, 0, 0, 0), + (36205, 1000007, 0, 0, 0), + (36205, 1100049, 0, 0, 0), + (36205, 1200021, 0, 0, 0), + (36206, 160050, 0, 0, 0), + (36206, 180053, 0, 0, 0), + (36206, 190024, 0, 0, 0), + (36206, 200007, 0, 0, 0), + (36206, 230003, 0, 0, 0), + (36206, 240004, 0, 0, 0), + (36206, 250003, 0, 0, 0), + (36206, 280010, 0, 0, 0), + (36206, 320053, 0, 0, 0), + (36206, 330043, 0, 0, 0), + (36206, 340003, 0, 0, 0), + (36206, 1000007, 0, 0, 0), + (36206, 1100049, 0, 0, 0), + (36206, 1200036, 0, 0, 0), + (36208, 160005, 0, 0, 0), + (36208, 180014, 0, 0, 0), + (36208, 190016, 0, 0, 0), + (36208, 200024, 0, 0, 0), + (36208, 230001, 0, 0, 0), + (36208, 240001, 0, 0, 0), + (36208, 250002, 0, 0, 0), + (36208, 280016, 0, 0, 0), + (36208, 320020, 0, 0, 0), + (36208, 330056, 0, 0, 0), + (36208, 340002, 0, 0, 0), + (36208, 1000070, 0, 0, 0), + (36208, 1100022, 0, 0, 0), + (36208, 1200034, 0, 0, 0), + (36209, 160016, 0, 0, 0), + (36209, 180062, 0, 0, 0), + (36209, 190067, 0, 0, 0), + (36209, 200030, 0, 0, 0), + (36209, 230001, 0, 0, 0), + (36209, 240005, 0, 0, 0), + (36209, 250002, 0, 0, 0), + (36209, 280052, 0, 0, 0), + (36209, 320101, 0, 0, 0), + (36209, 330019, 0, 0, 0), + (36209, 340002, 0, 0, 0), + (36209, 1000126, 0, 0, 0), + (36209, 1100121, 0, 0, 0), + (36209, 1200050, 0, 0, 0), + (36210, 160072, 0, 0, 0), + (36210, 180002, 0, 0, 0), + (36210, 190015, 0, 0, 0), + (36210, 200046, 0, 0, 0), + (36210, 230003, 0, 0, 0), + (36210, 240006, 0, 0, 0), + (36210, 250002, 0, 0, 0), + (36210, 280006, 0, 0, 0), + (36210, 320002, 0, 0, 0), + (36210, 330004, 0, 0, 0), + (36210, 340002, 0, 0, 0), + (36210, 1000075, 0, 0, 0), + (36210, 1100026, 0, 0, 0), + (36210, 1200001, 0, 0, 0), + (36211, 160072, 0, 0, 0), + (36211, 180013, 0, 0, 0), + (36211, 190015, 0, 0, 0), + (36211, 200046, 0, 0, 0), + (36211, 230003, 0, 0, 0), + (36211, 240006, 0, 0, 0), + (36211, 250002, 0, 0, 0), + (36211, 280002, 0, 0, 0), + (36211, 320031, 0, 0, 0), + (36211, 330033, 0, 0, 0), + (36211, 340003, 0, 0, 0), + (36211, 1000019, 0, 0, 0), + (36211, 1100014, 0, 0, 0), + (36211, 1200001, 0, 0, 0), + (36212, 25006, 0, 0, 0), + (36212, 160040, 0, 0, 0), + (36212, 180027, 0, 0, 0), + (36212, 190025, 0, 0, 0), + (36212, 200023, 0, 0, 0), + (36212, 230003, 0, 0, 0), + (36212, 240006, 0, 0, 0), + (36212, 250002, 0, 0, 0), + (36212, 280028, 0, 0, 0), + (36212, 320027, 0, 0, 0), + (36212, 330043, 0, 0, 0), + (36212, 340002, 0, 0, 0), + (36212, 1000051, 0, 0, 0), + (36212, 1100034, 0, 0, 0), + (36212, 1200037, 0, 0, 0), + (36213, 25006, 0, 0, 0), + (36213, 160040, 0, 0, 0), + (36213, 180027, 0, 0, 0), + (36213, 190004, 0, 0, 0), + (36213, 200009, 0, 0, 0), + (36213, 230003, 0, 0, 0), + (36213, 240006, 0, 0, 0), + (36213, 250002, 0, 0, 0), + (36213, 280028, 0, 0, 0), + (36213, 320038, 0, 0, 0), + (36213, 330027, 0, 0, 0), + (36213, 340002, 0, 0, 0), + (36213, 1000131, 0, 0, 0), + (36213, 1100035, 0, 0, 0), + (36213, 1200026, 0, 0, 0), + (36214, 160035, 0, 0, 0), + (36214, 180017, 0, 0, 0), + (36214, 190019, 0, 0, 0), + (36214, 200028, 0, 0, 0), + (36214, 230003, 0, 0, 0), + (36214, 240005, 0, 0, 0), + (36214, 250001, 0, 0, 0), + (36214, 280001, 0, 0, 0), + (36214, 320001, 0, 0, 0), + (36214, 330036, 0, 0, 0), + (36214, 340002, 0, 0, 0), + (36214, 1000133, 0, 0, 0), + (36214, 1100010, 0, 0, 0), + (36214, 1200003, 0, 0, 0), + (36215, 160076, 0, 0, 0), + (36215, 180001, 0, 0, 0), + (36215, 190016, 0, 0, 0), + (36215, 200002, 0, 0, 0), + (36215, 230002, 0, 0, 0), + (36215, 240003, 0, 0, 0), + (36215, 250002, 0, 0, 0), + (36215, 280016, 0, 0, 0), + (36215, 320020, 0, 0, 0), + (36215, 330003, 0, 0, 0), + (36215, 340001, 0, 0, 0), + (36215, 1000148, 0, 0, 0), + (36215, 1100111, 0, 0, 0), + (36215, 1200034, 0, 0, 0), + (37001, 290003, 0, 0, 0), + (37001, 300001, 0, 0, 0); \ No newline at end of file diff --git a/migrations/0034-seedSkinType.sql b/migrations/0034-seedSkinType.sql new file mode 100644 index 000000000..0f8460322 --- /dev/null +++ b/migrations/0034-seedSkinType.sql @@ -0,0 +1,13 @@ +INSERT INTO + skin_type (skin_type_id, skin_type) +VALUES + (1, '''Tinted'''), + (2, '''Custom'''), + (3, '''Cop'''), + (4, 'Flames'), + (5, 'Scallops'), + (6, 'Decals'), + (7, 'Rust'), + (8, 'Traffic'), + (9, 'Bad-ass'), + (10, '''Starter'''); \ No newline at end of file diff --git a/migrations/0035-seedPTSkin.sql b/migrations/0035-seedPTSkin.sql new file mode 100644 index 000000000..f64cb5f19 --- /dev/null +++ b/migrations/0035-seedPTSkin.sql @@ -0,0 +1,77052 @@ +INSERT INTO + pt_skin ( + skin_id, + creator_id, + skin_type_id, + part_type_id, + e_skin, + g_skin, + f_skin, + s_skin, + i_skin, + j_skin, + sw_skin, + b_skin, + price, + part_filename, + h0, + s0, + v0, + c0, + x0, + y0, + h1, + s1, + v1, + c1, + x1, + y1, + h2, + s2, + v2, + c2, + x2, + y2, + h3, + s3, + v3, + c3, + x3, + y3, + h4, + s4, + v4, + c4, + x4, + y4, + h5, + s5, + v5, + c5, + x5, + y5, + h6, + s6, + v6, + c6, + x6, + y6, + h7, + s7, + v7, + c7, + x7, + y7, + default_flag, + creator_name, + comment_text + ) +VALUES + ( + 1, + 10, + 1, + 101, + 'Candy Apple Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 1, + 211, + 255, + 128, + 32, + 255, + 1, + 211, + 255, + 128, + 32, + 255, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 40, + 20, + 20, + 128, + 1, + 165, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'As per 32 Ford CSV' + ), + ( + 2, + 10, + 1, + 101, + 'Blue Pearl', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 146, + 254, + 96, + 128, + 1, + 210, + 146, + 254, + 96, + 128, + 1, + 210, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 40, + 20, + 20, + 128, + 1, + 165, + 146, + 254, + 96, + 128, + 1, + 210, + 146, + 254, + 96, + 128, + 1, + 210, + 146, + 254, + 96, + 128, + 1, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 3, + 10, + 1, + 101, + 'Powder Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 138, + 138, + 255, + 128, + 20, + 255, + 138, + 138, + 255, + 128, + 20, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 138, + 138, + 255, + 128, + 0, + 255, + 138, + 138, + 255, + 128, + 0, + 255, + 138, + 138, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 4, + 10, + 1, + 101, + 'Peach', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 20, + 129, + 255, + 128, + 44, + 255, + 20, + 129, + 255, + 128, + 44, + 255, + 29, + 69, + 255, + 128, + 13, + 211, + 29, + 69, + 255, + 128, + 13, + 211, + 40, + 20, + 20, + 128, + 1, + 165, + 20, + 129, + 255, + 128, + 15, + 255, + 20, + 129, + 255, + 128, + 15, + 255, + 20, + 129, + 255, + 128, + 15, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 5, + 10, + 1, + 101, + 'Light Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 61, + 109, + 255, + 128, + 7, + 250, + 61, + 109, + 255, + 128, + 7, + 250, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 27, + 78, + 112, + 128, + 1, + 203, + 61, + 109, + 255, + 128, + 11, + 219, + 61, + 109, + 255, + 128, + 11, + 219, + 61, + 109, + 255, + 128, + 11, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 6, + 10, + 1, + 101, + 'Bright Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 35, + 255, + 255, + 128, + 20, + 255, + 35, + 255, + 255, + 128, + 20, + 255, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 40, + 20, + 255, + 128, + 10, + 255, + 35, + 255, + 255, + 128, + 20, + 255, + 35, + 255, + 255, + 128, + 20, + 255, + 35, + 255, + 255, + 128, + 20, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 7, + 10, + 1, + 101, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 7, + 255, + 128, + 110, + 192, + 128, + 7, + 255, + 128, + 110, + 192, + 3, + 254, + 100, + 128, + 11, + 237, + 3, + 254, + 100, + 128, + 11, + 237, + 40, + 20, + 20, + 128, + 1, + 165, + 128, + 7, + 255, + 128, + 110, + 192, + 128, + 7, + 255, + 128, + 110, + 192, + 128, + 7, + 255, + 128, + 110, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 8, + 10, + 1, + 101, + 'Black Pearl', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 33, + 7, + 255, + 128, + 0, + 180, + 33, + 7, + 1, + 128, + 0, + 225, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 27, + 78, + 112, + 128, + 1, + 203, + 33, + 7, + 1, + 128, + 0, + 175, + 33, + 7, + 1, + 128, + 0, + 175, + 33, + 7, + 1, + 128, + 0, + 175, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 9, + 10, + 1, + 101, + 'Rose Pewter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 33, + 7, + 255, + 128, + 0, + 180, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 27, + 78, + 112, + 128, + 1, + 203, + 30, + 26, + 65, + 128, + 0, + 216, + 30, + 26, + 65, + 128, + 0, + 216, + 30, + 26, + 65, + 128, + 0, + 216, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 10, + 10, + 1, + 101, + 'Violet Pearl', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 232, + 250, + 80, + 128, + 0, + 244, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 20, + 128, + 1, + 165, + 232, + 250, + 80, + 128, + 0, + 194, + 232, + 250, + 80, + 128, + 0, + 194, + 232, + 250, + 80, + 128, + 0, + 194, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 11, + 10, + 1, + 101, + 'Copper Brown', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 16, + 164, + 58, + 128, + 0, + 232, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 40, + 20, + 20, + 128, + 1, + 165, + 16, + 164, + 58, + 128, + 0, + 203, + 16, + 164, + 58, + 128, + 0, + 203, + 16, + 164, + 58, + 128, + 0, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 12, + 10, + 1, + 101, + 'Dark Teal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 27, + 78, + 112, + 128, + 1, + 203, + 125, + 125, + 49, + 128, + 0, + 188, + 125, + 125, + 49, + 128, + 0, + 188, + 125, + 125, + 49, + 128, + 0, + 188, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 13, + 10, + 1, + 101, + 'Sand Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 29, + 69, + 255, + 128, + 13, + 246, + 19, + 24, + 35, + 128, + 1, + 220, + 19, + 24, + 35, + 128, + 1, + 220, + 40, + 20, + 20, + 128, + 1, + 165, + 30, + 70, + 169, + 128, + 0, + 245, + 30, + 70, + 169, + 128, + 0, + 245, + 30, + 70, + 169, + 128, + 0, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 14, + 10, + 1, + 101, + 'Dark Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 71, + 109, + 33, + 128, + 0, + 240, + 29, + 69, + 255, + 128, + 13, + 237, + 29, + 69, + 255, + 128, + 13, + 237, + 40, + 20, + 20, + 128, + 1, + 165, + 71, + 169, + 52, + 128, + 0, + 192, + 71, + 169, + 52, + 128, + 0, + 192, + 71, + 169, + 52, + 128, + 0, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 15, + 10, + 1, + 102, + 'Dark Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 27, + 99, + 116, + 128, + 15, + 206, + 27, + 99, + 116, + 128, + 15, + 206, + 35, + 15, + 40, + 128, + 0, + 177, + 6, + 222, + 99, + 128, + 0, + 195, + 6, + 108, + 99, + 128, + 0, + 211, + 6, + 222, + 99, + 128, + 0, + 195, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 16, + 10, + 1, + 102, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 35, + 15, + 2, + 128, + 0, + 176, + 35, + 15, + 2, + 128, + 0, + 199, + 35, + 15, + 2, + 128, + 0, + 176, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 17, + 10, + 1, + 102, + 'Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 15, + 172, + 35, + 15, + 40, + 128, + 0, + 177, + 20, + 255, + 255, + 107, + 32, + 255, + 20, + 129, + 255, + 128, + 11, + 255, + 20, + 255, + 255, + 107, + 32, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 18, + 10, + 1, + 102, + 'Polar Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 151, + 200, + 109, + 128, + 0, + 225, + 151, + 94, + 109, + 128, + 0, + 233, + 151, + 200, + 109, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 19, + 10, + 1, + 102, + 'Pale Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 15, + 172, + 35, + 15, + 40, + 128, + 0, + 177, + 64, + 83, + 146, + 128, + 5, + 240, + 64, + 31, + 146, + 128, + 5, + 241, + 64, + 83, + 146, + 128, + 5, + 240, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 20, + 10, + 1, + 102, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 7, + 254, + 198, + 154, + 1, + 228, + 1, + 108, + 198, + 128, + 0, + 232, + 7, + 254, + 198, + 154, + 1, + 228, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 21, + 10, + 1, + 102, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 27, + 99, + 116, + 128, + 15, + 206, + 27, + 99, + 116, + 128, + 15, + 206, + 27, + 99, + 116, + 128, + 15, + 228, + 92, + 133, + 54, + 128, + 0, + 194, + 53, + 82, + 54, + 128, + 0, + 203, + 92, + 133, + 54, + 128, + 0, + 194, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 22, + 10, + 1, + 102, + 'Sea Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 125, + 160, + 130, + 128, + 22, + 220, + 125, + 49, + 130, + 128, + 22, + 219, + 125, + 160, + 130, + 128, + 22, + 220, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 23, + 10, + 1, + 102, + 'Lemon Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 15, + 172, + 35, + 15, + 40, + 128, + 0, + 177, + 36, + 255, + 255, + 128, + 16, + 255, + 40, + 113, + 255, + 128, + 0, + 246, + 36, + 255, + 255, + 128, + 16, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 24, + 10, + 1, + 102, + 'Slate Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 134, + 148, + 43, + 128, + 0, + 193, + 134, + 56, + 43, + 128, + 0, + 211, + 134, + 148, + 43, + 128, + 0, + 193, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 25, + 10, + 1, + 102, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 24, + 172, + 126, + 6, + 120, + 128, + 15, + 172, + 35, + 15, + 40, + 128, + 0, + 177, + 128, + 5, + 255, + 128, + 31, + 255, + 128, + 5, + 255, + 128, + 18, + 241, + 128, + 5, + 255, + 128, + 31, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 26, + 10, + 1, + 102, + 'Saddle Brown', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '40fortin', + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 38, + 38, + 255, + 128, + 15, + 235, + 35, + 15, + 40, + 128, + 0, + 177, + 18, + 66, + 118, + 122, + 1, + 212, + 18, + 43, + 118, + 128, + 0, + 227, + 18, + 66, + 118, + 122, + 1, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 27, + 10, + 1, + 103, + 'Coral Flame Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 128, + 0, + 241, + 246, + 255, + 255, + 128, + 5, + 255, + 246, + 255, + 255, + 128, + 5, + 255, + 25, + 9, + 3, + 128, + 0, + 152, + 246, + 255, + 255, + 128, + 5, + 255, + 45, + 5, + 255, + 128, + 35, + 254, + 246, + 255, + 255, + 128, + 5, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 28, + 10, + 1, + 103, + 'Sheridan Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 26, + 67, + 255, + 128, + 14, + 253, + 26, + 67, + 255, + 128, + 37, + 253, + 26, + 67, + 255, + 117, + 37, + 245, + 45, + 5, + 255, + 128, + 0, + 244, + 172, + 255, + 32, + 128, + 0, + 227, + 172, + 255, + 32, + 128, + 0, + 227, + 172, + 255, + 32, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 29, + 10, + 1, + 103, + 'Sandpiper Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 128, + 0, + 214, + 39, + 22, + 104, + 128, + 0, + 235, + 39, + 22, + 104, + 128, + 0, + 220, + 25, + 9, + 3, + 128, + 0, + 152, + 30, + 47, + 171, + 128, + 20, + 255, + 30, + 47, + 171, + 128, + 20, + 255, + 30, + 47, + 171, + 128, + 20, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 30, + 10, + 1, + 103, + 'Carnival Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 26, + 67, + 255, + 128, + 14, + 253, + 26, + 67, + 255, + 128, + 37, + 253, + 26, + 67, + 255, + 117, + 37, + 245, + 25, + 9, + 3, + 128, + 0, + 152, + 250, + 255, + 56, + 128, + 0, + 231, + 250, + 255, + 56, + 128, + 0, + 231, + 250, + 255, + 56, + 128, + 0, + 231, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 31, + 10, + 1, + 103, + 'Sungate Ivory', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 128, + 0, + 241, + 1, + 254, + 255, + 128, + 0, + 246, + 1, + 254, + 255, + 128, + 0, + 240, + 25, + 9, + 3, + 128, + 0, + 152, + 32, + 40, + 255, + 128, + 62, + 255, + 32, + 40, + 255, + 128, + 62, + 255, + 32, + 40, + 255, + 128, + 62, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 32, + 10, + 1, + 103, + 'Woodsmoke Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 128, + 0, + 201, + 28, + 22, + 39, + 128, + 0, + 229, + 28, + 22, + 39, + 128, + 0, + 218, + 25, + 9, + 3, + 128, + 0, + 152, + 28, + 22, + 104, + 128, + 0, + 253, + 28, + 22, + 104, + 128, + 0, + 253, + 28, + 22, + 104, + 128, + 0, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 33, + 10, + 1, + 103, + 'Glacier Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 128, + 0, + 233, + 142, + 130, + 255, + 128, + 16, + 241, + 142, + 130, + 255, + 128, + 16, + 255, + 45, + 5, + 255, + 128, + 0, + 244, + 142, + 130, + 255, + 128, + 28, + 255, + 45, + 5, + 255, + 128, + 35, + 254, + 142, + 130, + 255, + 128, + 28, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 34, + 10, + 1, + 103, + 'Fernmist Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 26, + 67, + 255, + 128, + 5, + 239, + 26, + 67, + 255, + 128, + 14, + 220, + 26, + 67, + 255, + 128, + 14, + 210, + 25, + 9, + 3, + 128, + 0, + 152, + 111, + 82, + 133, + 128, + 0, + 252, + 111, + 82, + 133, + 128, + 0, + 252, + 111, + 82, + 133, + 128, + 0, + 252, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 35, + 10, + 1, + 103, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 128, + 0, + 241, + 1, + 254, + 255, + 128, + 0, + 246, + 1, + 254, + 255, + 128, + 0, + 240, + 45, + 5, + 255, + 128, + 0, + 244, + 128, + 0, + 3, + 128, + 0, + 205, + 128, + 0, + 3, + 128, + 0, + 205, + 128, + 0, + 3, + 128, + 0, + 205, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 36, + 10, + 1, + 103, + 'Canary Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 26, + 67, + 255, + 128, + 14, + 210, + 26, + 67, + 255, + 128, + 14, + 210, + 26, + 67, + 255, + 128, + 14, + 210, + 25, + 9, + 3, + 128, + 0, + 152, + 34, + 225, + 255, + 49, + 91, + 254, + 45, + 5, + 255, + 128, + 35, + 254, + 34, + 225, + 255, + 49, + 91, + 254, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 37, + 10, + 1, + 103, + 'Peach', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 67, + 26, + 253, + 47, + 28, + 255, + 67, + 75, + 253, + 47, + 28, + 255, + 67, + 67, + 253, + 25, + 9, + 3, + 128, + 0, + 152, + 13, + 190, + 219, + 94, + 74, + 255, + 45, + 5, + 255, + 128, + 35, + 254, + 13, + 190, + 219, + 94, + 74, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 38, + 10, + 1, + 103, + 'Black Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 18, + 255, + 128, + 9, + 224, + 248, + 122, + 70, + 141, + 0, + 222, + 248, + 122, + 70, + 141, + 0, + 222, + 25, + 9, + 3, + 128, + 0, + 152, + 248, + 122, + 70, + 141, + 0, + 222, + 248, + 122, + 70, + 141, + 0, + 222, + 248, + 122, + 70, + 141, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 39, + 10, + 1, + 103, + 'Cold River Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '53fortin', + 128, + 0, + 255, + 128, + 0, + 255, + 47, + 28, + 255, + 128, + 9, + 241, + 128, + 117, + 57, + 128, + 0, + 231, + 128, + 117, + 57, + 128, + 0, + 231, + 25, + 9, + 3, + 128, + 0, + 152, + 128, + 117, + 57, + 128, + 0, + 242, + 45, + 5, + 255, + 128, + 35, + 254, + 128, + 117, + 57, + 128, + 0, + 242, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 40, + 10, + 1, + 104, + 'White / Mint Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 65, + 79, + 255, + 128, + 0, + 255, + 65, + 79, + 255, + 128, + 0, + 255, + 40, + 15, + 255, + 128, + 24, + 254, + 65, + 79, + 255, + 128, + 0, + 255, + 20, + 5, + 24, + 128, + 0, + 177, + 28, + 203, + 232, + 128, + 33, + 255, + 128, + 3, + 255, + 128, + 30, + 255, + 65, + 79, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 41, + 10, + 1, + 104, + 'White / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 1, + 255, + 255, + 128, + 0, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 1, + 255, + 255, + 128, + 0, + 244, + 20, + 5, + 24, + 128, + 0, + 177, + 28, + 203, + 232, + 128, + 20, + 255, + 128, + 3, + 255, + 128, + 30, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 42, + 10, + 1, + 104, + 'White / Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 151, + 255, + 176, + 128, + 0, + 252, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 151, + 255, + 176, + 128, + 0, + 252, + 40, + 10, + 255, + 128, + 22, + 255, + 28, + 203, + 232, + 128, + 20, + 255, + 128, + 3, + 255, + 128, + 30, + 255, + 151, + 255, + 176, + 128, + 0, + 252, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 43, + 10, + 1, + 104, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57faitin', + 20, + 5, + 14, + 128, + 0, + 222, + 40, + 15, + 13, + 128, + 1, + 229, + 40, + 15, + 13, + 128, + 1, + 244, + 20, + 5, + 14, + 128, + 0, + 222, + 20, + 5, + 24, + 128, + 0, + 177, + 28, + 203, + 232, + 128, + 20, + 255, + 20, + 5, + 10, + 128, + 0, + 154, + 20, + 5, + 10, + 128, + 0, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 44, + 10, + 1, + 104, + 'Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57faitin', + 28, + 94, + 79, + 128, + 15, + 235, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 28, + 94, + 79, + 128, + 15, + 235, + 40, + 10, + 255, + 128, + 22, + 255, + 122, + 16, + 255, + 128, + 13, + 255, + 33, + 255, + 255, + 128, + 36, + 255, + 33, + 255, + 255, + 128, + 36, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 45, + 10, + 1, + 104, + 'White / Powder Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 146, + 100, + 255, + 128, + 13, + 255, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 146, + 100, + 255, + 128, + 13, + 255, + 20, + 5, + 24, + 128, + 0, + 177, + 28, + 203, + 232, + 128, + 20, + 255, + 128, + 3, + 255, + 128, + 30, + 255, + 146, + 100, + 255, + 128, + 13, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 46, + 10, + 1, + 104, + 'Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57faitin', + 28, + 94, + 79, + 128, + 15, + 235, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 28, + 94, + 79, + 128, + 15, + 235, + 20, + 5, + 24, + 128, + 0, + 177, + 248, + 248, + 65, + 128, + 0, + 239, + 254, + 248, + 65, + 128, + 0, + 231, + 248, + 248, + 65, + 128, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 47, + 10, + 1, + 104, + 'Peach / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 16, + 128, + 255, + 128, + 9, + 240, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 16, + 128, + 255, + 128, + 9, + 240, + 40, + 10, + 255, + 128, + 22, + 255, + 28, + 203, + 232, + 128, + 20, + 255, + 16, + 128, + 255, + 128, + 9, + 240, + 128, + 3, + 255, + 128, + 30, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 48, + 10, + 1, + 104, + 'Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 15, + 13, + 128, + 1, + 229, + 40, + 15, + 13, + 128, + 1, + 244, + 1, + 255, + 255, + 128, + 0, + 255, + 20, + 5, + 24, + 128, + 0, + 177, + 28, + 203, + 232, + 128, + 33, + 255, + 20, + 5, + 10, + 128, + 0, + 167, + 1, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 49, + 10, + 1, + 104, + 'Silver / Slate Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 137, + 14, + 64, + 128, + 0, + 233, + 137, + 14, + 64, + 128, + 0, + 233, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 20, + 5, + 24, + 128, + 0, + 177, + 1, + 255, + 64, + 128, + 0, + 248, + 137, + 14, + 64, + 128, + 0, + 233, + 137, + 14, + 64, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 50, + 10, + 1, + 104, + 'Teal / Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57faitin', + 120, + 192, + 50, + 128, + 0, + 245, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 120, + 192, + 50, + 128, + 0, + 245, + 40, + 10, + 255, + 128, + 22, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 120, + 192, + 50, + 128, + 0, + 202, + 128, + 3, + 255, + 128, + 2, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 51, + 10, + 1, + 105, + 'White / Mint Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 65, + 79, + 255, + 128, + 0, + 255, + 65, + 79, + 255, + 128, + 0, + 255, + 40, + 15, + 255, + 128, + 24, + 254, + 65, + 79, + 255, + 128, + 0, + 255, + 20, + 5, + 24, + 128, + 0, + 156, + 28, + 203, + 232, + 128, + 33, + 255, + 128, + 3, + 255, + 128, + 52, + 255, + 65, + 79, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 52, + 10, + 1, + 105, + 'White / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 1, + 255, + 255, + 128, + 0, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 1, + 255, + 255, + 128, + 0, + 244, + 20, + 5, + 24, + 128, + 0, + 156, + 28, + 203, + 232, + 128, + 20, + 255, + 128, + 3, + 255, + 128, + 52, + 255, + 1, + 255, + 255, + 128, + 11, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 53, + 10, + 1, + 105, + 'White / Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 151, + 255, + 176, + 128, + 0, + 252, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 151, + 255, + 176, + 128, + 0, + 252, + 40, + 10, + 255, + 128, + 22, + 255, + 28, + 203, + 232, + 128, + 20, + 255, + 128, + 3, + 255, + 128, + 52, + 255, + 151, + 255, + 176, + 128, + 11, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 54, + 10, + 1, + 105, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57rantin', + 20, + 5, + 14, + 128, + 0, + 222, + 40, + 15, + 13, + 128, + 1, + 229, + 40, + 15, + 13, + 128, + 1, + 244, + 20, + 5, + 14, + 128, + 0, + 222, + 20, + 5, + 24, + 128, + 0, + 156, + 28, + 203, + 232, + 128, + 20, + 255, + 20, + 5, + 10, + 96, + 0, + 207, + 20, + 5, + 10, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 55, + 10, + 1, + 105, + 'Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57rantin', + 28, + 94, + 79, + 128, + 15, + 235, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 28, + 94, + 79, + 128, + 15, + 235, + 40, + 10, + 255, + 128, + 22, + 255, + 122, + 16, + 255, + 128, + 13, + 255, + 33, + 255, + 255, + 128, + 50, + 255, + 33, + 255, + 255, + 128, + 45, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 56, + 10, + 1, + 105, + 'White / Powder Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 146, + 100, + 255, + 128, + 13, + 255, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 24, + 254, + 146, + 100, + 255, + 128, + 13, + 255, + 20, + 5, + 24, + 128, + 0, + 156, + 28, + 203, + 232, + 128, + 20, + 255, + 128, + 3, + 255, + 128, + 52, + 255, + 146, + 128, + 255, + 128, + 33, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 57, + 10, + 1, + 105, + 'Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57rantin', + 28, + 94, + 79, + 128, + 15, + 235, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 28, + 94, + 79, + 128, + 15, + 235, + 20, + 5, + 24, + 128, + 0, + 156, + 248, + 248, + 65, + 128, + 0, + 239, + 254, + 248, + 65, + 128, + 0, + 231, + 248, + 248, + 65, + 128, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 58, + 10, + 1, + 105, + 'Peach / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 16, + 128, + 255, + 128, + 9, + 240, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 16, + 128, + 255, + 128, + 9, + 240, + 40, + 10, + 255, + 128, + 22, + 255, + 28, + 203, + 232, + 128, + 20, + 255, + 16, + 128, + 255, + 128, + 40, + 255, + 128, + 3, + 255, + 128, + 41, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 59, + 10, + 1, + 105, + 'Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 15, + 13, + 128, + 1, + 229, + 40, + 15, + 13, + 128, + 1, + 244, + 1, + 255, + 255, + 128, + 0, + 255, + 20, + 5, + 24, + 128, + 0, + 156, + 28, + 203, + 232, + 128, + 33, + 255, + 20, + 5, + 10, + 96, + 0, + 207, + 1, + 255, + 255, + 128, + 13, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 60, + 10, + 1, + 105, + 'Slate Gray / Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 137, + 14, + 64, + 128, + 0, + 233, + 137, + 14, + 64, + 128, + 0, + 233, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 20, + 5, + 24, + 128, + 0, + 156, + 1, + 255, + 64, + 128, + 0, + 248, + 137, + 14, + 64, + 128, + 0, + 216, + 137, + 14, + 64, + 128, + 7, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 61, + 10, + 1, + 105, + 'Teal / Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57rantin', + 120, + 192, + 50, + 128, + 0, + 245, + 40, + 15, + 255, + 128, + 26, + 244, + 40, + 15, + 255, + 128, + 26, + 244, + 120, + 192, + 50, + 128, + 0, + 245, + 40, + 10, + 255, + 128, + 22, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 128, + 192, + 50, + 128, + 0, + 228, + 128, + 3, + 255, + 128, + 3, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 62, + 10, + 1, + 106, + 'Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 1, + 255, + 188, + 128, + 0, + 214, + 41, + 10, + 255, + 128, + 0, + 227, + 1, + 255, + 188, + 128, + 0, + 214, + 1, + 255, + 188, + 128, + 0, + 229, + 30, + 10, + 26, + 128, + 0, + 192, + 128, + 13, + 173, + 128, + 0, + 244, + 128, + 13, + 173, + 128, + 0, + 244, + 128, + 13, + 173, + 128, + 0, + 244, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 63, + 10, + 1, + 106, + 'Mist Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 218, + 27, + 114, + 77, + 128, + 0, + 215, + 27, + 114, + 77, + 128, + 0, + 202, + 27, + 114, + 77, + 128, + 0, + 220, + 40, + 10, + 255, + 128, + 35, + 255, + 84, + 67, + 130, + 128, + 0, + 255, + 45, + 10, + 255, + 128, + 60, + 255, + 84, + 67, + 130, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 64, + 10, + 1, + 106, + 'Moss Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 218, + 41, + 10, + 255, + 128, + 0, + 218, + 124, + 163, + 77, + 128, + 0, + 206, + 124, + 163, + 77, + 128, + 0, + 223, + 30, + 10, + 26, + 128, + 0, + 192, + 124, + 163, + 77, + 128, + 0, + 223, + 124, + 163, + 77, + 128, + 0, + 223, + 124, + 163, + 77, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 65, + 10, + 1, + 106, + 'Pale Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 233, + 38, + 150, + 255, + 116, + 16, + 255, + 38, + 150, + 255, + 116, + 16, + 255, + 40, + 10, + 255, + 128, + 35, + 255, + 38, + 167, + 255, + 116, + 35, + 255, + 38, + 167, + 255, + 116, + 35, + 255, + 38, + 167, + 255, + 116, + 35, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 66, + 10, + 1, + 106, + 'Slate Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 233, + 142, + 219, + 94, + 198, + 0, + 180, + 142, + 219, + 94, + 198, + 0, + 180, + 30, + 10, + 26, + 128, + 0, + 192, + 142, + 219, + 94, + 198, + 0, + 180, + 45, + 10, + 255, + 128, + 60, + 255, + 142, + 219, + 94, + 198, + 0, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 67, + 10, + 1, + 106, + 'Blue Silver Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 233, + 139, + 70, + 255, + 128, + 6, + 233, + 139, + 70, + 255, + 128, + 6, + 255, + 40, + 10, + 255, + 128, + 35, + 255, + 139, + 70, + 255, + 128, + 6, + 255, + 45, + 10, + 255, + 128, + 60, + 255, + 139, + 70, + 255, + 128, + 6, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 68, + 10, + 1, + 106, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 227, + 1, + 255, + 188, + 128, + 0, + 214, + 1, + 255, + 188, + 128, + 0, + 229, + 30, + 10, + 26, + 128, + 0, + 192, + 1, + 255, + 188, + 128, + 0, + 248, + 45, + 10, + 255, + 128, + 60, + 255, + 1, + 255, + 188, + 128, + 0, + 248, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 69, + 10, + 1, + 106, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 227, + 1, + 255, + 188, + 128, + 0, + 214, + 1, + 255, + 188, + 128, + 0, + 229, + 30, + 10, + 26, + 128, + 0, + 192, + 30, + 5, + 1, + 159, + 0, + 156, + 45, + 10, + 255, + 128, + 60, + 255, + 30, + 5, + 1, + 159, + 0, + 156, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 70, + 10, + 1, + 106, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 227, + 1, + 255, + 188, + 128, + 0, + 214, + 1, + 255, + 188, + 128, + 0, + 229, + 30, + 10, + 26, + 128, + 0, + 192, + 128, + 0, + 255, + 107, + 50, + 255, + 128, + 0, + 255, + 107, + 50, + 255, + 128, + 0, + 255, + 107, + 50, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 71, + 10, + 1, + 106, + 'Peach', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 227, + 19, + 94, + 255, + 128, + 0, + 246, + 19, + 94, + 255, + 128, + 0, + 255, + 30, + 10, + 26, + 128, + 0, + 192, + 19, + 94, + 255, + 128, + 0, + 255, + 45, + 10, + 255, + 128, + 60, + 255, + 19, + 113, + 255, + 113, + 33, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 72, + 10, + 1, + 106, + 'Indigo Pearl', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 128, + 13, + 23, + 128, + 0, + 181, + 128, + 13, + 23, + 128, + 0, + 181, + 128, + 13, + 23, + 128, + 0, + 181, + 128, + 13, + 23, + 128, + 0, + 208, + 30, + 10, + 26, + 128, + 0, + 192, + 198, + 104, + 32, + 128, + 0, + 184, + 198, + 104, + 32, + 128, + 0, + 184, + 198, + 104, + 32, + 128, + 0, + 184, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 73, + 10, + 1, + 106, + 'Pink Rose', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57tbitin', + 41, + 10, + 255, + 128, + 0, + 235, + 41, + 10, + 255, + 128, + 0, + 227, + 252, + 82, + 194, + 128, + 2, + 255, + 252, + 82, + 194, + 128, + 2, + 255, + 40, + 10, + 255, + 128, + 35, + 255, + 252, + 88, + 194, + 113, + 28, + 255, + 45, + 10, + 255, + 128, + 60, + 255, + 252, + 88, + 194, + 113, + 28, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 74, + 10, + 1, + 107, + 'Chantilly Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 35, + 47, + 126, + 128, + 0, + 249, + 0, + 255, + 255, + 128, + 0, + 248, + 0, + 255, + 255, + 128, + 0, + 248, + 0, + 255, + 255, + 128, + 0, + 248, + 40, + 15, + 255, + 128, + 11, + 255, + 35, + 111, + 126, + 128, + 0, + 240, + 40, + 15, + 255, + 128, + 15, + 255, + 35, + 111, + 126, + 128, + 0, + 240, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 75, + 10, + 1, + 107, + 'Rangoon Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 0, + 129, + 255, + 128, + 0, + 255, + 40, + 18, + 236, + 128, + 19, + 255, + 40, + 18, + 175, + 128, + 19, + 239, + 40, + 18, + 160, + 128, + 19, + 232, + 40, + 15, + 45, + 128, + 11, + 170, + 0, + 255, + 255, + 128, + 0, + 240, + 40, + 15, + 255, + 128, + 15, + 255, + 0, + 255, + 255, + 128, + 0, + 240, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 76, + 10, + 1, + 107, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 45, + 27, + 255, + 128, + 9, + 255, + 253, + 255, + 203, + 128, + 0, + 250, + 253, + 255, + 114, + 128, + 0, + 236, + 253, + 255, + 104, + 128, + 0, + 228, + 40, + 15, + 255, + 128, + 14, + 255, + 45, + 47, + 255, + 128, + 24, + 255, + 40, + 15, + 255, + 128, + 15, + 255, + 45, + 47, + 255, + 128, + 24, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 77, + 10, + 1, + 107, + 'Skylight Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 142, + 48, + 255, + 128, + 9, + 255, + 40, + 18, + 236, + 128, + 39, + 255, + 40, + 18, + 175, + 128, + 19, + 250, + 40, + 18, + 160, + 128, + 19, + 246, + 40, + 15, + 45, + 128, + 11, + 170, + 142, + 99, + 255, + 128, + 0, + 255, + 40, + 15, + 255, + 128, + 15, + 255, + 142, + 99, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 78, + 10, + 1, + 107, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 20, + 7, + 94, + 128, + 0, + 237, + 253, + 255, + 203, + 128, + 0, + 250, + 253, + 255, + 114, + 128, + 0, + 236, + 253, + 255, + 104, + 128, + 0, + 228, + 40, + 15, + 45, + 128, + 11, + 170, + 20, + 7, + 14, + 128, + 0, + 177, + 40, + 15, + 255, + 128, + 15, + 255, + 20, + 7, + 14, + 128, + 0, + 177, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 79, + 10, + 1, + 107, + 'Silver Smoke Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 137, + 22, + 159, + 128, + 0, + 249, + 40, + 18, + 52, + 128, + 2, + 227, + 40, + 18, + 75, + 128, + 2, + 222, + 40, + 18, + 52, + 128, + 2, + 208, + 40, + 15, + 45, + 128, + 11, + 170, + 137, + 22, + 122, + 128, + 0, + 231, + 40, + 15, + 255, + 128, + 15, + 255, + 137, + 22, + 122, + 128, + 0, + 231, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 80, + 10, + 1, + 107, + 'Vintage Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 247, + 35, + 151, + 128, + 1, + 244, + 40, + 18, + 236, + 128, + 19, + 255, + 40, + 18, + 175, + 128, + 19, + 239, + 40, + 18, + 160, + 128, + 19, + 232, + 40, + 15, + 45, + 128, + 11, + 170, + 247, + 224, + 57, + 128, + 0, + 207, + 247, + 224, + 57, + 128, + 0, + 207, + 247, + 224, + 57, + 128, + 0, + 207, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 81, + 10, + 1, + 107, + 'Dynasty Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 126, + 24, + 116, + 128, + 0, + 237, + 40, + 18, + 236, + 128, + 19, + 255, + 126, + 57, + 97, + 128, + 0, + 222, + 126, + 57, + 97, + 128, + 0, + 222, + 40, + 15, + 45, + 128, + 11, + 170, + 126, + 57, + 71, + 128, + 0, + 203, + 40, + 15, + 255, + 128, + 15, + 255, + 126, + 57, + 71, + 128, + 0, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 82, + 10, + 1, + 107, + 'Phoenician Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 128, + 3, + 138, + 128, + 19, + 255, + 40, + 18, + 236, + 128, + 30, + 255, + 45, + 47, + 255, + 128, + 24, + 255, + 45, + 47, + 255, + 128, + 24, + 255, + 40, + 15, + 45, + 128, + 11, + 170, + 32, + 192, + 255, + 128, + 35, + 255, + 128, + 3, + 255, + 128, + 35, + 255, + 32, + 192, + 255, + 128, + 35, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 83, + 10, + 1, + 107, + 'Guardsman Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 172, + 43, + 58, + 128, + 0, + 237, + 40, + 18, + 236, + 128, + 39, + 255, + 40, + 15, + 45, + 128, + 11, + 206, + 40, + 15, + 45, + 128, + 11, + 194, + 40, + 15, + 45, + 128, + 11, + 170, + 154, + 165, + 58, + 128, + 0, + 201, + 40, + 15, + 255, + 128, + 15, + 255, + 154, + 165, + 58, + 128, + 0, + 201, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 84, + 10, + 1, + 107, + 'Pagoda Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 245, + 23, + 255, + 128, + 10, + 255, + 40, + 18, + 236, + 128, + 39, + 255, + 120, + 141, + 71, + 128, + 0, + 237, + 120, + 141, + 71, + 128, + 0, + 237, + 40, + 15, + 255, + 128, + 14, + 255, + 120, + 185, + 71, + 128, + 0, + 216, + 40, + 15, + 255, + 128, + 15, + 255, + 120, + 185, + 71, + 128, + 0, + 216, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 85, + 10, + 1, + 107, + 'Gunmetal Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63tbitin', + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 2, + 128, + 0, + 222, + 33, + 19, + 67, + 128, + 0, + 219, + 33, + 19, + 67, + 128, + 0, + 219, + 40, + 15, + 45, + 128, + 11, + 170, + 33, + 19, + 67, + 128, + 0, + 219, + 40, + 15, + 255, + 128, + 15, + 255, + 33, + 19, + 67, + 128, + 0, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 86, + 10, + 1, + 108, + 'Navajo Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 27, + 80, + 255, + 128, + 0, + 255, + 27, + 80, + 255, + 128, + 0, + 255, + 27, + 80, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 87, + 10, + 1, + 108, + 'Vintage Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 246, + 242, + 84, + 128, + 5, + 253, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 246, + 242, + 84, + 128, + 0, + 210, + 246, + 242, + 84, + 128, + 0, + 210, + 246, + 242, + 84, + 128, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 88, + 10, + 1, + 108, + 'Chantilly Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 225, + 40, + 20, + 6, + 128, + 0, + 176, + 35, + 66, + 86, + 128, + 3, + 225, + 128, + 0, + 1, + 128, + 0, + 168, + 35, + 66, + 86, + 128, + 3, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 89, + 10, + 1, + 108, + 'Pagoda Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 120, + 100, + 49, + 128, + 5, + 250, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 255, + 128, + 15, + 255, + 124, + 254, + 77, + 128, + 13, + 225, + 124, + 254, + 77, + 128, + 13, + 225, + 124, + 254, + 77, + 128, + 13, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 90, + 10, + 1, + 108, + 'Skylight Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 132, + 126, + 255, + 128, + 35, + 225, + 131, + 11, + 255, + 128, + 15, + 255, + 131, + 11, + 255, + 128, + 15, + 255, + 131, + 11, + 255, + 128, + 15, + 255, + 40, + 20, + 255, + 128, + 15, + 255, + 132, + 126, + 255, + 128, + 35, + 235, + 132, + 126, + 255, + 128, + 35, + 235, + 132, + 126, + 255, + 128, + 35, + 235, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 91, + 10, + 1, + 108, + 'Dynasty Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 120, + 100, + 49, + 128, + 0, + 222, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 254, + 40, + 20, + 6, + 128, + 0, + 176, + 120, + 100, + 49, + 128, + 0, + 222, + 128, + 0, + 1, + 128, + 0, + 168, + 120, + 100, + 49, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 92, + 10, + 1, + 108, + 'Prairie Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 255, + 128, + 15, + 255, + 19, + 163, + 113, + 128, + 0, + 255, + 44, + 30, + 255, + 128, + 38, + 255, + 19, + 163, + 113, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 93, + 10, + 1, + 108, + 'Phoenician Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 32, + 215, + 255, + 128, + 45, + 249, + 32, + 215, + 255, + 128, + 45, + 249, + 32, + 215, + 255, + 128, + 45, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 94, + 10, + 1, + 108, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 40, + 20, + 255, + 128, + 0, + 180, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 128, + 0, + 1, + 128, + 0, + 181, + 128, + 0, + 1, + 128, + 0, + 181, + 128, + 0, + 1, + 128, + 0, + 181, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 95, + 10, + 1, + 108, + 'Guardsman Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 148, + 218, + 49, + 128, + 0, + 210, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 148, + 218, + 49, + 128, + 0, + 210, + 148, + 218, + 49, + 128, + 0, + 210, + 148, + 218, + 49, + 128, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 96, + 10, + 1, + 108, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 28, + 50, + 255, + 128, + 38, + 255, + 128, + 0, + 1, + 128, + 0, + 168, + 28, + 50, + 255, + 128, + 38, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 97, + 10, + 1, + 108, + 'Silver Smoke Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 121, + 36, + 85, + 128, + 3, + 254, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 121, + 36, + 85, + 128, + 0, + 222, + 121, + 36, + 85, + 128, + 0, + 222, + 121, + 36, + 85, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 98, + 10, + 1, + 108, + 'Rangoon Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64statin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 2, + 255, + 255, + 128, + 0, + 250, + 2, + 255, + 255, + 128, + 0, + 250, + 2, + 255, + 255, + 128, + 0, + 250, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 99, + 10, + 1, + 109, + 'Dynasty Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 208, + 104, + 22, + 254, + 40, + 15, + 160, + 128, + 10, + 255, + 114, + 163, + 64, + 128, + 0, + 225, + 114, + 163, + 64, + 128, + 0, + 212, + 40, + 15, + 255, + 128, + 9, + 255, + 114, + 163, + 64, + 128, + 0, + 212, + 40, + 14, + 255, + 128, + 27, + 255, + 114, + 163, + 64, + 128, + 0, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 100, + 10, + 1, + 109, + 'Navajo Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 105, + 194, + 22, + 168, + 33, + 83, + 155, + 128, + 3, + 250, + 40, + 15, + 109, + 128, + 2, + 235, + 33, + 83, + 155, + 128, + 0, + 255, + 30, + 10, + 30, + 128, + 0, + 175, + 33, + 83, + 155, + 128, + 9, + 255, + 33, + 83, + 155, + 128, + 0, + 215, + 33, + 83, + 155, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 101, + 10, + 1, + 109, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 1, + 255, + 130, + 128, + 1, + 250, + 1, + 255, + 121, + 128, + 1, + 244, + 39, + 16, + 255, + 128, + 19, + 255, + 39, + 16, + 255, + 128, + 56, + 255, + 30, + 10, + 30, + 128, + 0, + 175, + 26, + 37, + 255, + 128, + 56, + 255, + 26, + 37, + 255, + 128, + 56, + 255, + 26, + 37, + 255, + 128, + 56, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 102, + 10, + 1, + 109, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 19, + 7, + 1, + 128, + 0, + 201, + 19, + 7, + 1, + 128, + 0, + 164, + 39, + 7, + 255, + 128, + 9, + 248, + 19, + 7, + 1, + 128, + 0, + 164, + 30, + 10, + 30, + 128, + 0, + 175, + 19, + 7, + 1, + 128, + 0, + 176, + 19, + 7, + 1, + 128, + 0, + 176, + 19, + 7, + 1, + 128, + 0, + 176, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 103, + 10, + 1, + 109, + 'Silver Smoke Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 30, + 10, + 30, + 128, + 0, + 241, + 30, + 10, + 30, + 128, + 0, + 248, + 30, + 10, + 30, + 128, + 0, + 241, + 124, + 31, + 116, + 128, + 0, + 241, + 30, + 10, + 30, + 128, + 0, + 175, + 124, + 31, + 116, + 128, + 0, + 250, + 124, + 31, + 116, + 128, + 0, + 236, + 124, + 31, + 116, + 128, + 0, + 236, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 104, + 10, + 1, + 109, + 'Phoenician Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 208, + 104, + 22, + 254, + 40, + 15, + 160, + 128, + 10, + 255, + 33, + 208, + 255, + 128, + 50, + 255, + 33, + 208, + 255, + 128, + 50, + 255, + 40, + 15, + 255, + 128, + 9, + 255, + 33, + 208, + 255, + 128, + 50, + 255, + 40, + 14, + 255, + 128, + 27, + 255, + 33, + 208, + 255, + 128, + 50, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 105, + 10, + 1, + 109, + 'Guardsman Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 109, + 128, + 2, + 188, + 151, + 193, + 58, + 128, + 0, + 211, + 40, + 15, + 109, + 128, + 2, + 235, + 151, + 193, + 58, + 128, + 0, + 211, + 30, + 10, + 30, + 128, + 0, + 175, + 151, + 193, + 58, + 128, + 0, + 211, + 40, + 14, + 255, + 128, + 27, + 255, + 151, + 193, + 58, + 128, + 0, + 211, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 106, + 10, + 1, + 109, + 'Pagoda Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 129, + 32, + 36, + 128, + 0, + 223, + 129, + 32, + 52, + 128, + 0, + 244, + 129, + 255, + 91, + 128, + 0, + 225, + 129, + 255, + 91, + 128, + 0, + 230, + 40, + 15, + 255, + 128, + 9, + 255, + 129, + 255, + 91, + 128, + 0, + 249, + 40, + 14, + 255, + 128, + 27, + 255, + 129, + 255, + 91, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 107, + 10, + 1, + 109, + 'Prairie Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 105, + 128, + 22, + 216, + 33, + 83, + 155, + 128, + 3, + 250, + 40, + 15, + 109, + 128, + 2, + 235, + 26, + 201, + 151, + 128, + 15, + 255, + 30, + 10, + 30, + 128, + 0, + 175, + 26, + 201, + 151, + 128, + 15, + 255, + 40, + 14, + 255, + 128, + 27, + 255, + 26, + 201, + 151, + 128, + 15, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 108, + 10, + 1, + 109, + 'Vintage Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 109, + 128, + 2, + 188, + 40, + 15, + 109, + 128, + 2, + 188, + 40, + 15, + 109, + 128, + 2, + 188, + 248, + 250, + 54, + 128, + 0, + 219, + 30, + 10, + 30, + 128, + 0, + 175, + 248, + 250, + 54, + 128, + 0, + 250, + 248, + 250, + 54, + 128, + 0, + 219, + 248, + 250, + 54, + 128, + 0, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 109, + 10, + 1, + 109, + 'Rangoon Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 109, + 128, + 18, + 242, + 40, + 15, + 109, + 128, + 18, + 242, + 40, + 15, + 109, + 128, + 18, + 235, + 0, + 255, + 255, + 128, + 2, + 250, + 36, + 45, + 125, + 128, + 0, + 228, + 0, + 255, + 255, + 128, + 7, + 254, + 40, + 14, + 255, + 128, + 27, + 255, + 0, + 255, + 255, + 128, + 2, + 250, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 110, + 10, + 1, + 109, + 'Skylight Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 255, + 128, + 41, + 249, + 40, + 15, + 255, + 128, + 41, + 231, + 40, + 15, + 255, + 128, + 41, + 214, + 134, + 167, + 197, + 128, + 16, + 255, + 40, + 15, + 255, + 128, + 9, + 255, + 134, + 167, + 197, + 128, + 16, + 255, + 40, + 14, + 255, + 128, + 27, + 255, + 134, + 167, + 197, + 128, + 16, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 111, + 10, + 1, + 109, + 'Chantilly Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64galtin', + 40, + 15, + 109, + 128, + 2, + 188, + 40, + 15, + 109, + 128, + 2, + 188, + 40, + 15, + 109, + 128, + 2, + 188, + 37, + 71, + 86, + 128, + 0, + 250, + 40, + 15, + 255, + 128, + 9, + 255, + 37, + 71, + 86, + 128, + 0, + 241, + 37, + 71, + 86, + 128, + 0, + 241, + 37, + 71, + 86, + 128, + 0, + 241, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 112, + 10, + 1, + 110, + 'Lime Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 40, + 50, + 146, + 128, + 0, + 241, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 40, + 131, + 146, + 128, + 0, + 233, + 128, + 0, + 2, + 128, + 0, + 173, + 48, + 122, + 146, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 113, + 10, + 1, + 110, + 'Winter Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 142, + 62, + 73, + 128, + 0, + 237, + 142, + 13, + 73, + 128, + 0, + 252, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 142, + 252, + 73, + 128, + 0, + 227, + 142, + 54, + 73, + 128, + 0, + 237, + 142, + 13, + 73, + 128, + 0, + 252, + 142, + 252, + 73, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 114, + 10, + 1, + 110, + 'Royal Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 250, + 65, + 52, + 128, + 0, + 235, + 32, + 177, + 128, + 128, + 0, + 236, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 250, + 237, + 52, + 128, + 0, + 206, + 26, + 237, + 52, + 128, + 0, + 222, + 32, + 177, + 128, + 128, + 0, + 236, + 250, + 237, + 52, + 128, + 0, + 206, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 115, + 10, + 1, + 110, + 'Acapulco Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 159, + 61, + 53, + 128, + 0, + 233, + 159, + 249, + 53, + 128, + 0, + 208, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 159, + 249, + 53, + 128, + 0, + 208, + 159, + 249, + 53, + 128, + 0, + 208, + 159, + 249, + 53, + 128, + 0, + 208, + 159, + 249, + 53, + 128, + 0, + 208, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 116, + 10, + 1, + 110, + 'New Lime', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 37, + 43, + 152, + 128, + 22, + 220, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 37, + 142, + 152, + 128, + 22, + 220, + 37, + 142, + 152, + 128, + 22, + 220, + 37, + 142, + 152, + 128, + 22, + 220, + 37, + 142, + 152, + 128, + 22, + 220, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 117, + 10, + 1, + 110, + 'Silver Jade', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 124, + 57, + 56, + 128, + 0, + 240, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 114, + 54, + 124, + 128, + 0, + 219, + 128, + 0, + 2, + 128, + 0, + 173, + 109, + 54, + 124, + 128, + 0, + 231, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 118, + 10, + 1, + 110, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 128, + 0, + 255, + 128, + 1, + 252, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 44, + 45, + 255, + 128, + 45, + 222, + 128, + 0, + 2, + 128, + 0, + 173, + 44, + 45, + 255, + 128, + 66, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 119, + 10, + 1, + 110, + 'Black Jade', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 30, + 10, + 1, + 128, + 2, + 224, + 30, + 10, + 1, + 128, + 2, + 155, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 30, + 10, + 1, + 128, + 2, + 155, + 1, + 254, + 163, + 128, + 13, + 220, + 1, + 254, + 163, + 128, + 13, + 241, + 30, + 10, + 1, + 128, + 2, + 155, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 120, + 10, + 1, + 110, + 'Gulfstream Aqua', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 130, + 32, + 47, + 163, + 0, + 214, + 130, + 172, + 47, + 163, + 0, + 195, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 130, + 172, + 47, + 163, + 0, + 195, + 130, + 172, + 47, + 163, + 0, + 195, + 130, + 172, + 47, + 163, + 0, + 195, + 130, + 172, + 47, + 163, + 0, + 195, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 121, + 10, + 1, + 110, + 'Rangoon Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 1, + 41, + 163, + 128, + 7, + 241, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 1, + 254, + 163, + 128, + 1, + 224, + 128, + 0, + 2, + 128, + 0, + 173, + 1, + 254, + 163, + 128, + 13, + 241, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 122, + 10, + 1, + 110, + 'Indian Fire Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 6, + 60, + 135, + 165, + 11, + 212, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 6, + 255, + 135, + 165, + 11, + 203, + 6, + 255, + 135, + 165, + 11, + 203, + 6, + 255, + 135, + 165, + 11, + 203, + 6, + 255, + 135, + 165, + 11, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 123, + 10, + 1, + 110, + 'Dresden Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 128, + 24, + 212, + 128, + 2, + 250, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 133, + 116, + 212, + 128, + 13, + 227, + 133, + 116, + 212, + 128, + 13, + 207, + 128, + 0, + 2, + 128, + 0, + 173, + 133, + 116, + 212, + 128, + 13, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 124, + 10, + 1, + 110, + 'Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 30, + 30, + 255, + 118, + 27, + 252, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 30, + 254, + 255, + 118, + 45, + 212, + 128, + 0, + 2, + 128, + 0, + 173, + 30, + 254, + 255, + 118, + 45, + 252, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 125, + 10, + 1, + 110, + 'Pastel Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 128, + 18, + 164, + 128, + 6, + 253, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 33, + 164, + 128, + 0, + 248, + 128, + 33, + 164, + 128, + 0, + 248, + 128, + 33, + 164, + 128, + 0, + 248, + 128, + 33, + 164, + 128, + 0, + 248, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 126, + 10, + 1, + 110, + 'Presidential Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 148, + 69, + 103, + 186, + 2, + 210, + 148, + 255, + 103, + 186, + 2, + 185, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 148, + 255, + 103, + 186, + 2, + 185, + 148, + 255, + 103, + 186, + 2, + 185, + 148, + 255, + 103, + 186, + 2, + 185, + 148, + 255, + 103, + 186, + 2, + 185, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 127, + 10, + 1, + 110, + 'Champagne', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 19, + 32, + 88, + 155, + 0, + 223, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 19, + 90, + 88, + 155, + 0, + 202, + 128, + 0, + 2, + 128, + 0, + 173, + 19, + 90, + 88, + 155, + 0, + 211, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 128, + 10, + 1, + 110, + 'Brittany Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69tortin', + 138, + 50, + 92, + 137, + 0, + 240, + 128, + 0, + 2, + 128, + 0, + 163, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 163, + 138, + 219, + 92, + 137, + 0, + 214, + 128, + 0, + 2, + 128, + 0, + 163, + 138, + 219, + 92, + 137, + 0, + 224, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 129, + 10, + 1, + 111, + 'Medium Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 151, + 135, + 158, + 128, + 16, + 232, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 151, + 135, + 158, + 128, + 16, + 232, + 128, + 0, + 0, + 128, + 0, + 128, + 151, + 135, + 158, + 128, + 16, + 232, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 130, + 10, + 1, + 111, + 'Medium Lime', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 45, + 102, + 112, + 128, + 16, + 211, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 102, + 112, + 128, + 16, + 211, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 102, + 112, + 128, + 16, + 211, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 131, + 10, + 1, + 111, + 'Candyapple Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 6, + 194, + 143, + 128, + 6, + 240, + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 6, + 194, + 143, + 128, + 6, + 240, + 35, + 64, + 158, + 128, + 16, + 244, + 6, + 194, + 143, + 128, + 6, + 240, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 132, + 10, + 1, + 111, + 'Raven Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 20, + 10, + 1, + 128, + 0, + 177, + 1, + 253, + 163, + 128, + 24, + 242, + 254, + 207, + 78, + 128, + 0, + 244, + 254, + 207, + 78, + 128, + 0, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 20, + 10, + 1, + 128, + 0, + 177, + 1, + 253, + 163, + 128, + 24, + 242, + 20, + 10, + 1, + 128, + 0, + 177, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 133, + 10, + 1, + 111, + 'Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 1, + 99, + 138, + 128, + 0, + 248, + 20, + 1, + 6, + 128, + 1, + 177, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 1, + 254, + 138, + 128, + 0, + 218, + 20, + 1, + 6, + 128, + 1, + 177, + 1, + 254, + 138, + 128, + 0, + 228, + 0, + 'Factory', + 'Not listed as factory color. Left over from old CSV file.' + ), + ( + 134, + 10, + 1, + 111, + 'Grabber Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb3tin', + 116, + 255, + 151, + 128, + 6, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 116, + 255, + 151, + 128, + 6, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 116, + 255, + 151, + 128, + 6, + 255, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 135, + 10, + 1, + 111, + 'Grabber Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb3tin', + 152, + 189, + 199, + 128, + 16, + 250, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 152, + 189, + 199, + 128, + 16, + 250, + 128, + 0, + 0, + 128, + 0, + 128, + 152, + 189, + 199, + 128, + 16, + 250, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 136, + 10, + 1, + 111, + 'Grabber Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb3tin', + 19, + 255, + 255, + 128, + 78, + 225, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 19, + 255, + 255, + 128, + 78, + 225, + 128, + 0, + 0, + 128, + 0, + 128, + 19, + 255, + 255, + 128, + 78, + 225, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 137, + 10, + 1, + 111, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 43, + 18, + 255, + 128, + 32, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 18, + 255, + 128, + 32, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 18, + 255, + 128, + 32, + 255, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 138, + 10, + 1, + 111, + 'Medium Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 35, + 64, + 158, + 128, + 16, + 244, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 139, + 10, + 1, + 111, + 'Calypso Coral', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 11, + 232, + 242, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 11, + 232, + 242, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 11, + 232, + 242, + 128, + 24, + 255, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 140, + 10, + 1, + 111, + 'Bright Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 154, + 176, + 105, + 121, + 16, + 224, + 43, + 0, + 255, + 128, + 32, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 154, + 176, + 105, + 121, + 16, + 224, + 43, + 0, + 255, + 128, + 32, + 255, + 154, + 176, + 105, + 121, + 16, + 224, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 141, + 10, + 1, + 111, + 'Dark Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 85, + 43, + 51, + 128, + 0, + 192, + 35, + 64, + 158, + 128, + 16, + 244, + 31, + 92, + 73, + 128, + 0, + 236, + 31, + 92, + 73, + 128, + 0, + 236, + 20, + 10, + 1, + 128, + 0, + 178, + 85, + 43, + 51, + 128, + 0, + 192, + 35, + 64, + 158, + 128, + 16, + 244, + 85, + 43, + 51, + 128, + 0, + 192, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 142, + 10, + 1, + 111, + 'Bright Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb3tin', + 38, + 64, + 253, + 128, + 48, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 38, + 64, + 253, + 128, + 48, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 38, + 64, + 253, + 128, + 48, + 244, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 143, + 10, + 1, + 111, + 'Bright Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 43, + 133, + 255, + 128, + 48, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 133, + 255, + 128, + 48, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 133, + 255, + 128, + 48, + 255, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 144, + 10, + 1, + 111, + 'Pastel Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb3tin', + 147, + 64, + 255, + 128, + 32, + 240, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 147, + 64, + 255, + 128, + 32, + 240, + 128, + 0, + 0, + 128, + 0, + 128, + 147, + 64, + 255, + 128, + 32, + 240, + 0, + 'Factory', + 'As per 70 Boss 302 CSV.' + ), + ( + 145, + 10, + 1, + 111, + 'Light Ivy Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 45, + 60, + 232, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 45, + 60, + 232, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 60, + 232, + 128, + 24, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 146, + 10, + 1, + 112, + 'Indigo', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 197, + 224, + 71, + 128, + 0, + 186, + 197, + 224, + 71, + 128, + 0, + 207, + 128, + 0, + 7, + 128, + 0, + 175, + 197, + 224, + 71, + 128, + 0, + 207, + 40, + 15, + 9, + 128, + 0, + 207, + 197, + 224, + 71, + 128, + 0, + 186, + 197, + 224, + 71, + 128, + 0, + 186, + 197, + 224, + 71, + 128, + 0, + 186, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 147, + 10, + 1, + 112, + 'Pale Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 128, + 16, + 255, + 128, + 0, + 249, + 35, + 83, + 255, + 128, + 23, + 255, + 40, + 15, + 255, + 128, + 0, + 255, + 35, + 83, + 255, + 128, + 23, + 255, + 35, + 15, + 255, + 128, + 58, + 255, + 128, + 0, + 255, + 128, + 0, + 211, + 128, + 16, + 255, + 128, + 0, + 231, + 35, + 83, + 255, + 128, + 23, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 148, + 10, + 1, + 112, + 'Light Green Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 77, + 20, + 124, + 128, + 0, + 252, + 77, + 37, + 124, + 128, + 0, + 242, + 40, + 15, + 255, + 128, + 0, + 255, + 77, + 37, + 124, + 128, + 0, + 242, + 35, + 15, + 255, + 128, + 58, + 255, + 128, + 0, + 255, + 128, + 0, + 178, + 128, + 16, + 255, + 128, + 0, + 231, + 77, + 37, + 124, + 128, + 0, + 242, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 149, + 10, + 1, + 112, + 'Burgundy Flame', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 252, + 79, + 41, + 128, + 0, + 231, + 252, + 255, + 41, + 128, + 0, + 208, + 40, + 15, + 255, + 128, + 0, + 255, + 252, + 255, + 41, + 128, + 0, + 208, + 40, + 15, + 9, + 128, + 0, + 207, + 252, + 97, + 41, + 128, + 0, + 181, + 128, + 16, + 255, + 128, + 0, + 231, + 252, + 255, + 41, + 128, + 0, + 208, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 150, + 10, + 1, + 112, + 'Fire Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 5, + 255, + 255, + 128, + 0, + 237, + 5, + 7, + 7, + 128, + 0, + 193, + 5, + 7, + 7, + 128, + 0, + 193, + 5, + 7, + 7, + 128, + 0, + 193, + 40, + 15, + 9, + 128, + 0, + 207, + 5, + 255, + 255, + 128, + 0, + 237, + 5, + 255, + 255, + 128, + 0, + 237, + 5, + 255, + 255, + 128, + 0, + 237, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 151, + 10, + 1, + 112, + 'Black Pearl', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 165, + 8, + 255, + 128, + 0, + 180, + 165, + 8, + 255, + 128, + 0, + 180, + 33, + 23, + 255, + 128, + 0, + 240, + 165, + 8, + 255, + 128, + 0, + 180, + 40, + 15, + 9, + 128, + 0, + 207, + 20, + 8, + 1, + 58, + 0, + 155, + 20, + 8, + 1, + 58, + 0, + 155, + 20, + 8, + 1, + 58, + 0, + 155, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 152, + 10, + 1, + 112, + 'Gray Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 128, + 11, + 133, + 128, + 20, + 252, + 128, + 16, + 133, + 128, + 0, + 242, + 128, + 0, + 255, + 128, + 0, + 194, + 128, + 16, + 133, + 128, + 0, + 242, + 40, + 15, + 9, + 128, + 0, + 207, + 128, + 0, + 255, + 128, + 0, + 194, + 128, + 11, + 255, + 128, + 0, + 253, + 128, + 16, + 133, + 128, + 0, + 242, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 153, + 10, + 1, + 112, + 'Steel Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 27, + 36, + 66, + 128, + 0, + 241, + 27, + 36, + 66, + 128, + 0, + 225, + 33, + 11, + 255, + 128, + 0, + 228, + 27, + 36, + 66, + 128, + 0, + 225, + 40, + 15, + 9, + 128, + 0, + 207, + 128, + 0, + 255, + 128, + 0, + 184, + 128, + 16, + 255, + 128, + 0, + 231, + 27, + 36, + 66, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 154, + 10, + 1, + 112, + 'Blue Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 129, + 65, + 61, + 128, + 0, + 220, + 129, + 65, + 61, + 128, + 0, + 220, + 33, + 11, + 255, + 128, + 0, + 228, + 129, + 65, + 61, + 128, + 0, + 220, + 40, + 15, + 9, + 128, + 0, + 207, + 128, + 0, + 255, + 128, + 0, + 184, + 128, + 16, + 255, + 128, + 0, + 231, + 129, + 65, + 61, + 128, + 0, + 220, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 155, + 10, + 1, + 112, + 'Sunburst Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 20, + 255, + 254, + 128, + 40, + 240, + 20, + 255, + 254, + 128, + 40, + 240, + 33, + 23, + 255, + 128, + 0, + 240, + 20, + 255, + 254, + 128, + 40, + 240, + 40, + 15, + 9, + 128, + 0, + 207, + 20, + 255, + 254, + 128, + 40, + 240, + 20, + 255, + 254, + 128, + 40, + 240, + 20, + 255, + 254, + 128, + 40, + 240, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 156, + 10, + 1, + 112, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 128, + 0, + 255, + 128, + 35, + 255, + 2, + 255, + 58, + 128, + 0, + 214, + 2, + 255, + 58, + 128, + 0, + 214, + 2, + 255, + 58, + 128, + 0, + 214, + 40, + 15, + 9, + 128, + 0, + 207, + 128, + 6, + 255, + 128, + 37, + 255, + 128, + 6, + 255, + 128, + 37, + 255, + 128, + 6, + 255, + 128, + 37, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 157, + 10, + 1, + 112, + 'Sky Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '49mertin', + 40, + 15, + 255, + 128, + 0, + 240, + 143, + 121, + 255, + 128, + 6, + 255, + 40, + 15, + 255, + 128, + 0, + 255, + 143, + 121, + 255, + 128, + 6, + 255, + 35, + 15, + 255, + 128, + 58, + 255, + 128, + 0, + 255, + 128, + 0, + 188, + 128, + 0, + 255, + 128, + 0, + 233, + 143, + 121, + 255, + 128, + 6, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 158, + 10, + 1, + 113, + 'Harbor Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 40, + 26, + 255, + 128, + 28, + 249, + 156, + 241, + 94, + 122, + 0, + 246, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 156, + 241, + 94, + 122, + 0, + 246, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 159, + 10, + 1, + 113, + 'Inca Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 203, + 20, + 10, + 11, + 128, + 0, + 233, + 20, + 10, + 22, + 128, + 0, + 184, + 40, + 10, + 172, + 100, + 31, + 250, + 0, + 255, + 255, + 128, + 0, + 255, + 40, + 10, + 172, + 100, + 31, + 250, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 160, + 10, + 1, + 113, + 'Tropical Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 120, + 95, + 255, + 108, + 37, + 255, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 120, + 95, + 255, + 108, + 37, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 161, + 10, + 1, + 113, + 'Onyx Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 233, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 10, + 11, + 128, + 0, + 193, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 162, + 10, + 1, + 113, + 'Onyx Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 4, + 255, + 255, + 128, + 21, + 222, + 4, + 255, + 255, + 128, + 21, + 241, + 20, + 10, + 22, + 128, + 0, + 184, + 20, + 10, + 11, + 128, + 0, + 193, + 0, + 255, + 255, + 128, + 0, + 255, + 20, + 10, + 11, + 128, + 0, + 193, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 163, + 10, + 1, + 113, + 'Imperial Ivory', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 4, + 255, + 255, + 128, + 21, + 222, + 4, + 255, + 255, + 128, + 21, + 241, + 20, + 10, + 22, + 128, + 0, + 184, + 33, + 47, + 255, + 97, + 71, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 33, + 47, + 255, + 97, + 71, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 164, + 10, + 1, + 113, + 'Coronado Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 40, + 26, + 255, + 128, + 28, + 249, + 33, + 228, + 255, + 47, + 82, + 255, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 33, + 228, + 255, + 47, + 88, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 165, + 10, + 1, + 113, + 'Laurel Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 40, + 26, + 255, + 128, + 28, + 249, + 60, + 92, + 114, + 128, + 0, + 242, + 20, + 10, + 22, + 128, + 0, + 184, + 60, + 92, + 114, + 128, + 0, + 242, + 128, + 0, + 255, + 128, + 0, + 255, + 60, + 92, + 114, + 128, + 0, + 242, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 166, + 10, + 1, + 113, + 'Sierra Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 233, + 20, + 10, + 22, + 128, + 0, + 184, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 33, + 190, + 155, + 122, + 22, + 254, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 167, + 10, + 1, + 113, + 'Matador Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57chetin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 28, + 255, + 128, + 36, + 252, + 4, + 255, + 255, + 128, + 21, + 222, + 4, + 255, + 255, + 128, + 21, + 241, + 20, + 10, + 22, + 128, + 0, + 184, + 4, + 255, + 255, + 128, + 21, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 4, + 255, + 255, + 128, + 21, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 168, + 10, + 1, + 114, + 'Venetian Red / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 25, + 255, + 128, + 0, + 250, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 169, + 10, + 1, + 114, + 'Venetian Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57vettin', + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 25, + 255, + 128, + 0, + 250, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 232, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 170, + 10, + 1, + 114, + 'Polo White / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 128, + 5, + 255, + 128, + 41, + 255, + 128, + 5, + 255, + 128, + 41, + 255, + 1, + 255, + 255, + 128, + 0, + 235, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 170, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 128, + 5, + 255, + 128, + 48, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 171, + 10, + 1, + 114, + 'Polo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57vettin', + 128, + 5, + 255, + 128, + 41, + 255, + 128, + 5, + 255, + 128, + 41, + 255, + 1, + 255, + 255, + 128, + 0, + 235, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 170, + 128, + 5, + 255, + 128, + 41, + 248, + 128, + 5, + 255, + 128, + 48, + 255, + 128, + 5, + 255, + 128, + 48, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 172, + 10, + 1, + 114, + 'Onyx Black / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 25, + 255, + 128, + 0, + 250, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 1, + 128, + 0, + 154, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 173, + 10, + 1, + 114, + 'Onyx Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57vettin', + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 25, + 255, + 128, + 0, + 171, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 177, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 1, + 128, + 0, + 154, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 174, + 10, + 1, + 114, + 'Onyx Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 255, + 128, + 0, + 170, + 1, + 255, + 255, + 128, + 0, + 235, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 170, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 20, + 1, + 128, + 0, + 154, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 175, + 10, + 1, + 114, + 'Inca Silver / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 40, + 15, + 255, + 128, + 12, + 255, + 40, + 15, + 255, + 128, + 12, + 255, + 1, + 255, + 255, + 128, + 0, + 235, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 20, + 255, + 128, + 0, + 170, + 1, + 255, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 40, + 15, + 109, + 128, + 12, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 176, + 10, + 1, + 114, + 'Inca Silver / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 40, + 15, + 255, + 128, + 12, + 255, + 40, + 15, + 255, + 128, + 12, + 255, + 40, + 25, + 255, + 128, + 0, + 250, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 255, + 128, + 0, + 170, + 128, + 0, + 255, + 128, + 0, + 255, + 40, + 15, + 255, + 128, + 12, + 255, + 40, + 15, + 109, + 128, + 12, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 177, + 10, + 1, + 114, + 'Aztec Copper / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 10, + 146, + 161, + 128, + 18, + 221, + 10, + 146, + 161, + 128, + 18, + 221, + 40, + 25, + 255, + 128, + 0, + 250, + 10, + 146, + 161, + 128, + 18, + 221, + 40, + 25, + 255, + 128, + 0, + 250, + 128, + 0, + 255, + 128, + 0, + 255, + 10, + 146, + 161, + 128, + 18, + 221, + 10, + 146, + 161, + 128, + 18, + 221, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 178, + 10, + 1, + 114, + 'Arctic Blue / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 140, + 61, + 143, + 128, + 14, + 219, + 140, + 61, + 143, + 128, + 14, + 219, + 40, + 25, + 255, + 128, + 0, + 250, + 140, + 61, + 143, + 128, + 14, + 219, + 40, + 25, + 255, + 128, + 0, + 250, + 128, + 0, + 255, + 128, + 0, + 255, + 140, + 61, + 143, + 128, + 14, + 219, + 140, + 61, + 143, + 128, + 14, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 179, + 10, + 1, + 114, + 'Arctic Blue / Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 140, + 61, + 143, + 128, + 14, + 219, + 140, + 61, + 143, + 128, + 14, + 219, + 1, + 214, + 207, + 128, + 9, + 225, + 140, + 61, + 143, + 128, + 14, + 219, + 40, + 20, + 255, + 128, + 0, + 170, + 128, + 0, + 255, + 128, + 0, + 222, + 140, + 61, + 143, + 128, + 14, + 219, + 140, + 61, + 143, + 128, + 14, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 180, + 10, + 1, + 114, + 'Arctic Blue / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57vettin', + 140, + 61, + 143, + 128, + 14, + 219, + 140, + 61, + 143, + 128, + 14, + 219, + 1, + 214, + 207, + 128, + 9, + 225, + 140, + 61, + 143, + 128, + 14, + 219, + 40, + 20, + 255, + 128, + 0, + 170, + 1, + 255, + 255, + 128, + 0, + 255, + 140, + 61, + 143, + 128, + 14, + 219, + 140, + 61, + 143, + 128, + 14, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 181, + 10, + 1, + 114, + 'Cascade Green / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57vettin', + 127, + 251, + 211, + 128, + 0, + 255, + 127, + 251, + 211, + 128, + 0, + 255, + 40, + 25, + 255, + 128, + 0, + 250, + 127, + 251, + 211, + 128, + 0, + 255, + 40, + 25, + 255, + 128, + 0, + 250, + 128, + 0, + 255, + 128, + 0, + 255, + 127, + 251, + 211, + 128, + 0, + 255, + 127, + 251, + 211, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 182, + 10, + 1, + 114, + 'Cascade Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57vettin', + 127, + 251, + 211, + 128, + 0, + 255, + 127, + 251, + 211, + 128, + 0, + 255, + 40, + 25, + 255, + 128, + 0, + 250, + 127, + 251, + 211, + 128, + 0, + 255, + 40, + 25, + 255, + 128, + 0, + 250, + 127, + 251, + 211, + 128, + 0, + 231, + 127, + 251, + 211, + 128, + 0, + 255, + 127, + 251, + 211, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 183, + 10, + 1, + 115, + 'Matador Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 4, + 255, + 255, + 128, + 21, + 222, + 4, + 255, + 255, + 128, + 21, + 241, + 20, + 10, + 22, + 128, + 0, + 184, + 4, + 255, + 255, + 128, + 21, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 4, + 255, + 255, + 128, + 21, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 184, + 10, + 1, + 115, + 'Inca Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 4, + 255, + 255, + 128, + 21, + 241, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 233, + 20, + 10, + 22, + 128, + 0, + 184, + 40, + 10, + 172, + 100, + 31, + 250, + 0, + 255, + 255, + 128, + 0, + 255, + 40, + 10, + 172, + 100, + 31, + 250, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 185, + 10, + 1, + 115, + 'Tropical Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 120, + 95, + 255, + 108, + 37, + 255, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 120, + 95, + 255, + 108, + 37, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 186, + 10, + 1, + 115, + 'Onyx Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 233, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 10, + 11, + 128, + 0, + 193, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 187, + 10, + 1, + 115, + 'Onyx Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 4, + 255, + 255, + 128, + 21, + 222, + 4, + 255, + 255, + 128, + 21, + 241, + 20, + 10, + 22, + 128, + 0, + 184, + 20, + 10, + 11, + 128, + 0, + 193, + 0, + 255, + 255, + 128, + 0, + 255, + 20, + 10, + 11, + 128, + 0, + 193, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 188, + 10, + 1, + 115, + 'Imperial Ivory', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 4, + 255, + 255, + 128, + 21, + 222, + 4, + 255, + 255, + 128, + 21, + 241, + 20, + 10, + 22, + 128, + 0, + 184, + 33, + 47, + 255, + 97, + 71, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 33, + 47, + 255, + 97, + 71, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 189, + 10, + 1, + 115, + 'Coronado Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 40, + 26, + 255, + 128, + 28, + 249, + 33, + 228, + 255, + 47, + 82, + 255, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 33, + 228, + 255, + 47, + 88, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 190, + 10, + 1, + 115, + 'Laurel Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 40, + 26, + 255, + 128, + 28, + 249, + 60, + 92, + 114, + 128, + 0, + 242, + 20, + 10, + 22, + 128, + 0, + 184, + 60, + 92, + 114, + 128, + 0, + 242, + 128, + 0, + 255, + 128, + 0, + 255, + 60, + 92, + 114, + 128, + 0, + 242, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 191, + 10, + 1, + 115, + 'Sierra Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 216, + 20, + 10, + 11, + 128, + 0, + 233, + 20, + 10, + 22, + 128, + 0, + 184, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 33, + 190, + 155, + 122, + 22, + 254, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 192, + 10, + 1, + 115, + 'Harbor Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '57nomtin', + 24, + 28, + 255, + 128, + 36, + 252, + 24, + 28, + 255, + 128, + 36, + 252, + 40, + 26, + 255, + 128, + 28, + 249, + 156, + 241, + 94, + 122, + 0, + 246, + 40, + 15, + 255, + 128, + 28, + 255, + 33, + 35, + 255, + 97, + 78, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 156, + 241, + 94, + 122, + 0, + 246, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 193, + 10, + 1, + 116, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 1, + 254, + 255, + 128, + 0, + 246, + 40, + 15, + 255, + 128, + 0, + 255, + 1, + 254, + 255, + 128, + 0, + 229, + 40, + 20, + 255, + 128, + 0, + 229, + 1, + 71, + 255, + 128, + 0, + 249, + 40, + 24, + 255, + 128, + 32, + 255, + 1, + 254, + 255, + 128, + 0, + 218, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 194, + 10, + 1, + 116, + 'Gray-Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 125, + 47, + 90, + 128, + 0, + 202, + 128, + 0, + 255, + 128, + 0, + 186, + 125, + 47, + 90, + 128, + 0, + 202, + 40, + 20, + 10, + 128, + 0, + 224, + 125, + 18, + 90, + 128, + 0, + 248, + 40, + 24, + 255, + 128, + 32, + 255, + 125, + 47, + 90, + 128, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 195, + 10, + 1, + 116, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 5, + 255, + 128, + 0, + 199, + 128, + 0, + 255, + 128, + 0, + 186, + 20, + 5, + 255, + 128, + 0, + 199, + 40, + 20, + 10, + 128, + 0, + 224, + 20, + 5, + 1, + 128, + 0, + 208, + 20, + 5, + 1, + 128, + 0, + 159, + 20, + 5, + 1, + 128, + 0, + 159, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 196, + 10, + 1, + 116, + 'Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 127, + 254, + 53, + 128, + 1, + 195, + 128, + 0, + 255, + 128, + 0, + 186, + 127, + 254, + 53, + 128, + 1, + 195, + 40, + 20, + 10, + 128, + 0, + 224, + 127, + 49, + 53, + 128, + 1, + 229, + 127, + 254, + 53, + 128, + 1, + 195, + 127, + 254, + 53, + 128, + 1, + 195, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 197, + 10, + 1, + 116, + 'Light Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 40, + 15, + 255, + 128, + 0, + 255, + 108, + 69, + 143, + 128, + 0, + 219, + 40, + 15, + 255, + 128, + 0, + 255, + 108, + 69, + 143, + 128, + 0, + 219, + 40, + 20, + 10, + 128, + 0, + 224, + 108, + 24, + 143, + 128, + 0, + 233, + 40, + 24, + 255, + 128, + 32, + 255, + 108, + 69, + 143, + 128, + 0, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 198, + 10, + 1, + 116, + 'Off-White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 31, + 43, + 255, + 128, + 32, + 255, + 1, + 249, + 154, + 128, + 0, + 224, + 31, + 43, + 255, + 128, + 32, + 255, + 40, + 20, + 10, + 128, + 0, + 224, + 31, + 43, + 255, + 128, + 23, + 255, + 31, + 43, + 255, + 128, + 32, + 255, + 31, + 43, + 255, + 128, + 32, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 199, + 10, + 1, + 116, + 'Dark Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 170, + 255, + 47, + 128, + 0, + 242, + 128, + 0, + 255, + 128, + 0, + 186, + 170, + 255, + 47, + 128, + 0, + 218, + 40, + 20, + 10, + 128, + 0, + 224, + 147, + 75, + 47, + 128, + 0, + 211, + 147, + 255, + 47, + 128, + 0, + 180, + 147, + 255, + 47, + 128, + 0, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 200, + 10, + 1, + 116, + 'Dark Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 30, + 79, + 30, + 128, + 0, + 241, + 30, + 79, + 30, + 128, + 0, + 241, + 30, + 79, + 30, + 128, + 0, + 253, + 30, + 79, + 30, + 128, + 0, + 212, + 40, + 20, + 10, + 128, + 0, + 224, + 94, + 54, + 47, + 128, + 0, + 220, + 107, + 185, + 47, + 114, + 0, + 175, + 107, + 185, + 47, + 114, + 0, + 175, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 201, + 10, + 1, + 116, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 8, + 255, + 128, + 33, + 233, + 1, + 249, + 154, + 128, + 0, + 224, + 128, + 8, + 255, + 128, + 33, + 255, + 40, + 20, + 255, + 128, + 0, + 229, + 128, + 8, + 255, + 128, + 7, + 255, + 128, + 8, + 255, + 128, + 33, + 255, + 128, + 8, + 255, + 128, + 33, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 202, + 10, + 1, + 116, + 'Fawn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 40, + 15, + 255, + 128, + 0, + 255, + 30, + 83, + 255, + 128, + 7, + 239, + 40, + 15, + 255, + 128, + 0, + 255, + 30, + 83, + 255, + 128, + 7, + 239, + 40, + 20, + 10, + 128, + 0, + 224, + 30, + 49, + 255, + 128, + 7, + 250, + 40, + 24, + 255, + 128, + 32, + 255, + 30, + 83, + 255, + 128, + 7, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 203, + 10, + 1, + 116, + 'Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 19, + 254, + 255, + 128, + 11, + 255, + 40, + 15, + 255, + 128, + 0, + 255, + 19, + 254, + 255, + 128, + 11, + 255, + 40, + 20, + 255, + 128, + 0, + 229, + 23, + 65, + 255, + 128, + 20, + 255, + 40, + 24, + 255, + 128, + 32, + 255, + 19, + 254, + 255, + 128, + 11, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 204, + 10, + 1, + 116, + 'Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 28, + 232, + 255, + 128, + 30, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 28, + 232, + 255, + 128, + 30, + 255, + 40, + 20, + 255, + 128, + 73, + 255, + 37, + 44, + 255, + 128, + 6, + 240, + 40, + 24, + 255, + 128, + 32, + 255, + 28, + 232, + 255, + 128, + 30, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 205, + 10, + 1, + 116, + 'Light Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 139, + 139, + 255, + 128, + 6, + 237, + 128, + 0, + 255, + 128, + 0, + 255, + 139, + 139, + 255, + 128, + 6, + 237, + 40, + 20, + 255, + 128, + 73, + 255, + 139, + 45, + 255, + 128, + 6, + 250, + 40, + 24, + 255, + 128, + 32, + 255, + 139, + 139, + 255, + 128, + 6, + 237, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 206, + 10, + 1, + 116, + 'Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64imptin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 5, + 255, + 128, + 0, + 229, + 1, + 2, + 154, + 128, + 0, + 173, + 20, + 5, + 255, + 128, + 0, + 214, + 40, + 20, + 255, + 128, + 0, + 229, + 20, + 5, + 255, + 128, + 0, + 240, + 20, + 5, + 255, + 128, + 0, + 206, + 20, + 5, + 255, + 128, + 0, + 206, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 207, + 10, + 1, + 117, + 'Sebring Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 240, + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 128, + 5, + 109, + 128, + 0, + 255, + 128, + 5, + 109, + 128, + 0, + 255, + 128, + 5, + 109, + 128, + 0, + 255, + 128, + 5, + 109, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 208, + 10, + 1, + 117, + 'Silver Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 158, + 133, + 75, + 128, + 30, + 229, + 158, + 133, + 75, + 128, + 30, + 218, + 158, + 133, + 75, + 128, + 30, + 229, + 158, + 133, + 75, + 128, + 30, + 229, + 146, + 73, + 186, + 128, + 56, + 195, + 146, + 73, + 186, + 128, + 56, + 195, + 146, + 73, + 186, + 128, + 56, + 195, + 146, + 73, + 186, + 128, + 56, + 195, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 209, + 10, + 1, + 117, + 'Daytona Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 240, + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 146, + 255, + 114, + 128, + 1, + 232, + 146, + 255, + 114, + 128, + 1, + 232, + 146, + 255, + 114, + 128, + 1, + 232, + 146, + 255, + 114, + 128, + 1, + 232, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 210, + 10, + 1, + 117, + 'Riverside Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 240, + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 5, + 255, + 219, + 128, + 0, + 255, + 5, + 255, + 219, + 128, + 0, + 255, + 5, + 255, + 219, + 128, + 0, + 248, + 5, + 255, + 219, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 211, + 10, + 1, + 117, + 'Ermine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 240, + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 128, + 5, + 255, + 128, + 69, + 236, + 128, + 5, + 255, + 128, + 69, + 236, + 128, + 5, + 255, + 128, + 69, + 236, + 128, + 5, + 255, + 128, + 69, + 236, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 212, + 10, + 1, + 117, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 240, + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 35, + 10, + 1, + 130, + 0, + 161, + 35, + 10, + 1, + 130, + 0, + 161, + 35, + 10, + 1, + 130, + 0, + 161, + 35, + 10, + 1, + 130, + 0, + 161, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 213, + 10, + 1, + 117, + 'Saddle Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 23, + 164, + 107, + 128, + 30, + 235, + 23, + 164, + 107, + 128, + 30, + 228, + 23, + 164, + 107, + 128, + 30, + 225, + 23, + 164, + 107, + 128, + 30, + 235, + 20, + 97, + 202, + 128, + 18, + 241, + 20, + 97, + 202, + 128, + 18, + 241, + 20, + 97, + 202, + 128, + 18, + 241, + 20, + 97, + 202, + 128, + 18, + 241, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 214, + 10, + 1, + 117, + 'Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 30, + 15, + 255, + 128, + 1, + 255, + 28, + 146, + 207, + 128, + 13, + 249, + 28, + 146, + 207, + 128, + 13, + 249, + 28, + 146, + 207, + 128, + 13, + 249, + 28, + 146, + 207, + 128, + 13, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 215, + 10, + 1, + 117, + 'Black Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '63vettin', + 23, + 164, + 107, + 128, + 30, + 235, + 23, + 164, + 107, + 128, + 30, + 235, + 23, + 164, + 107, + 128, + 30, + 235, + 23, + 164, + 107, + 128, + 30, + 235, + 250, + 255, + 70, + 150, + 0, + 210, + 250, + 255, + 70, + 150, + 0, + 210, + 250, + 255, + 70, + 150, + 0, + 210, + 250, + 255, + 70, + 150, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 216, + 10, + 1, + 118, + 'Rio Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 40, + 15, + 255, + 128, + 15, + 255, + 40, + 15, + 35, + 128, + 1, + 216, + 1, + 255, + 255, + 128, + 0, + 240, + 1, + 255, + 255, + 128, + 0, + 240, + 40, + 16, + 255, + 128, + 13, + 255, + 1, + 255, + 255, + 128, + 0, + 240, + 128, + 1, + 255, + 128, + 35, + 255, + 1, + 255, + 255, + 128, + 0, + 240, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 217, + 10, + 1, + 118, + 'Forest Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 107, + 163, + 52, + 128, + 0, + 224, + 121, + 245, + 52, + 128, + 0, + 184, + 121, + 245, + 52, + 128, + 0, + 210, + 121, + 245, + 52, + 128, + 0, + 191, + 40, + 16, + 30, + 128, + 13, + 175, + 121, + 245, + 52, + 128, + 0, + 192, + 39, + 52, + 255, + 128, + 18, + 255, + 109, + 245, + 79, + 128, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 218, + 10, + 1, + 118, + 'Colonial Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 33, + 45, + 255, + 128, + 0, + 185, + 40, + 15, + 35, + 128, + 1, + 216, + 39, + 52, + 255, + 128, + 18, + 255, + 39, + 52, + 255, + 128, + 18, + 255, + 40, + 16, + 30, + 128, + 13, + 175, + 39, + 52, + 255, + 128, + 18, + 255, + 128, + 1, + 255, + 128, + 35, + 255, + 39, + 52, + 255, + 128, + 18, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 219, + 10, + 1, + 118, + 'Fathom Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 40, + 15, + 255, + 128, + 15, + 255, + 40, + 15, + 35, + 128, + 1, + 216, + 137, + 186, + 105, + 128, + 2, + 207, + 137, + 186, + 105, + 128, + 2, + 207, + 128, + 0, + 255, + 128, + 0, + 255, + 137, + 186, + 105, + 128, + 2, + 207, + 1, + 0, + 255, + 128, + 20, + 255, + 137, + 186, + 105, + 128, + 2, + 207, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 220, + 10, + 1, + 118, + 'Silver Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 40, + 15, + 255, + 128, + 15, + 255, + 40, + 15, + 35, + 128, + 1, + 216, + 141, + 65, + 138, + 113, + 0, + 236, + 141, + 65, + 138, + 113, + 0, + 236, + 40, + 16, + 30, + 128, + 13, + 175, + 141, + 65, + 138, + 113, + 0, + 236, + 1, + 0, + 255, + 128, + 20, + 255, + 141, + 65, + 138, + 113, + 0, + 236, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 221, + 10, + 1, + 118, + 'Onyx Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 1, + 255, + 108, + 128, + 0, + 185, + 1, + 255, + 108, + 128, + 0, + 205, + 20, + 7, + 7, + 128, + 0, + 185, + 20, + 7, + 7, + 128, + 0, + 174, + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 7, + 128, + 0, + 176, + 1, + 0, + 255, + 128, + 20, + 255, + 20, + 7, + 7, + 128, + 0, + 160, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 222, + 10, + 1, + 118, + 'Tropic Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 40, + 15, + 255, + 128, + 15, + 255, + 150, + 50, + 35, + 128, + 1, + 216, + 131, + 187, + 181, + 128, + 2, + 251, + 131, + 187, + 181, + 128, + 2, + 251, + 128, + 0, + 255, + 128, + 0, + 255, + 131, + 187, + 181, + 128, + 2, + 251, + 131, + 187, + 181, + 128, + 2, + 251, + 131, + 187, + 181, + 128, + 2, + 251, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 223, + 10, + 1, + 118, + 'Snowcrest White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 1, + 255, + 108, + 128, + 0, + 224, + 1, + 255, + 108, + 128, + 0, + 219, + 128, + 1, + 255, + 128, + 13, + 255, + 128, + 1, + 255, + 128, + 35, + 255, + 40, + 16, + 30, + 128, + 13, + 175, + 128, + 1, + 255, + 128, + 35, + 255, + 128, + 1, + 255, + 128, + 35, + 255, + 128, + 1, + 255, + 128, + 35, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 224, + 10, + 1, + 118, + 'Anniversary Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 33, + 45, + 255, + 128, + 0, + 223, + 40, + 15, + 35, + 128, + 1, + 216, + 30, + 99, + 158, + 128, + 0, + 236, + 30, + 99, + 158, + 128, + 0, + 236, + 40, + 16, + 30, + 128, + 13, + 175, + 30, + 99, + 158, + 128, + 0, + 236, + 128, + 1, + 255, + 128, + 35, + 255, + 30, + 99, + 158, + 128, + 0, + 236, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 225, + 10, + 1, + 118, + 'Cay Coral', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '58imptin', + 33, + 45, + 255, + 128, + 0, + 223, + 128, + 0, + 133, + 128, + 7, + 255, + 13, + 138, + 195, + 103, + 20, + 255, + 13, + 138, + 195, + 103, + 20, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 13, + 138, + 195, + 103, + 20, + 255, + 128, + 1, + 255, + 128, + 35, + 255, + 13, + 138, + 195, + 103, + 20, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 226, + 10, + 1, + 119, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 83, + 255, + 128, + 15, + 255, + 0, + 255, + 255, + 111, + 16, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 227, + 10, + 1, + 119, + 'Dark Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 148, + 255, + 54, + 152, + 0, + 211, + 170, + 33, + 54, + 128, + 0, + 231, + 148, + 255, + 54, + 152, + 0, + 211, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 228, + 10, + 1, + 119, + 'Off White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 245, + 2, + 184, + 73, + 128, + 0, + 239, + 2, + 184, + 73, + 128, + 0, + 239, + 30, + 15, + 255, + 128, + 60, + 255, + 43, + 26, + 255, + 100, + 48, + 255, + 43, + 54, + 255, + 128, + 10, + 255, + 43, + 26, + 255, + 100, + 48, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 229, + 10, + 1, + 119, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 99, + 0, + 206, + 20, + 5, + 1, + 128, + 0, + 208, + 20, + 5, + 1, + 99, + 0, + 206, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 230, + 10, + 1, + 119, + 'Vermillion', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 252, + 22, + 104, + 94, + 128, + 0, + 252, + 22, + 104, + 94, + 128, + 0, + 252, + 30, + 15, + 2, + 128, + 0, + 214, + 3, + 250, + 64, + 128, + 0, + 227, + 248, + 45, + 64, + 128, + 0, + 228, + 3, + 250, + 64, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 231, + 10, + 1, + 119, + 'Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 15, + 2, + 128, + 0, + 173, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 130, + 5, + 124, + 122, + 1, + 232, + 130, + 5, + 126, + 128, + 0, + 253, + 130, + 5, + 124, + 122, + 1, + 232, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 232, + 10, + 1, + 119, + 'Light Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 142, + 181, + 171, + 128, + 0, + 233, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 30, + 15, + 255, + 128, + 60, + 255, + 142, + 181, + 171, + 128, + 0, + 254, + 121, + 40, + 171, + 128, + 0, + 249, + 142, + 181, + 171, + 128, + 0, + 254, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 233, + 10, + 1, + 119, + 'Light Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 15, + 2, + 128, + 0, + 173, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 35, + 233, + 255, + 128, + 43, + 255, + 35, + 82, + 255, + 128, + 7, + 255, + 35, + 233, + 255, + 128, + 43, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 234, + 10, + 1, + 119, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 15, + 2, + 128, + 0, + 173, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 128, + 5, + 255, + 83, + 58, + 255, + 128, + 5, + 255, + 128, + 14, + 255, + 128, + 5, + 255, + 83, + 58, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 235, + 10, + 1, + 119, + 'Light Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 30, + 15, + 2, + 128, + 0, + 173, + 28, + 104, + 94, + 128, + 20, + 252, + 28, + 104, + 94, + 128, + 20, + 252, + 28, + 104, + 94, + 128, + 20, + 252, + 30, + 15, + 2, + 128, + 0, + 214, + 95, + 147, + 91, + 128, + 0, + 240, + 66, + 39, + 91, + 128, + 0, + 241, + 95, + 147, + 91, + 128, + 0, + 240, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 236, + 10, + 1, + 119, + 'Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 22, + 255, + 239, + 108, + 30, + 255, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 22, + 255, + 239, + 86, + 50, + 255, + 22, + 135, + 239, + 108, + 30, + 255, + 22, + 255, + 239, + 86, + 50, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 237, + 10, + 1, + 119, + 'Dark Aqua', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67chetin', + 128, + 254, + 71, + 143, + 0, + 202, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 128, + 254, + 71, + 143, + 0, + 212, + 128, + 56, + 137, + 143, + 0, + 224, + 128, + 254, + 71, + 143, + 0, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 238, + 10, + 1, + 120, + 'Bolero Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 255, + 255, + 128, + 0, + 250, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 52, + 255, + 128, + 0, + 249, + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 239, + 10, + 1, + 120, + 'Deepwater Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 148, + 255, + 54, + 152, + 0, + 202, + 148, + 255, + 54, + 152, + 0, + 202, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 170, + 33, + 54, + 128, + 0, + 231, + 148, + 255, + 54, + 152, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 240, + 10, + 1, + 120, + 'Capri Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 2, + 184, + 73, + 128, + 0, + 239, + 2, + 184, + 73, + 128, + 0, + 239, + 30, + 15, + 255, + 128, + 60, + 255, + 20, + 5, + 1, + 128, + 0, + 168, + 43, + 48, + 255, + 128, + 11, + 255, + 43, + 48, + 255, + 128, + 23, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 241, + 10, + 1, + 120, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 20, + 5, + 1, + 128, + 0, + 168, + 20, + 5, + 1, + 128, + 0, + 168, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 0, + 255, + 255, + 128, + 0, + 250, + 20, + 5, + 1, + 128, + 0, + 208, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 242, + 10, + 1, + 120, + 'Tahoe Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 142, + 58, + 138, + 0, + 201, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 2, + 128, + 0, + 214, + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 71, + 58, + 138, + 0, + 241, + 131, + 142, + 58, + 138, + 0, + 201, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 243, + 10, + 1, + 120, + 'Silverglaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 41, + 24, + 163, + 128, + 1, + 248, + 41, + 24, + 163, + 128, + 1, + 235, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 244, + 10, + 1, + 120, + 'Marina Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 142, + 181, + 171, + 128, + 0, + 233, + 142, + 181, + 171, + 128, + 0, + 233, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 255, + 128, + 60, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 121, + 40, + 171, + 128, + 0, + 249, + 142, + 181, + 171, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 245, + 10, + 1, + 120, + 'Butternut Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 32, + 175, + 255, + 128, + 20, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 35, + 82, + 255, + 128, + 7, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 246, + 10, + 1, + 120, + 'Provincial White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 16, + 255, + 255, + 128, + 22, + 255, + 128, + 5, + 255, + 128, + 14, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 247, + 10, + 1, + 120, + 'Verde Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 95, + 147, + 37, + 128, + 0, + 180, + 95, + 147, + 37, + 128, + 0, + 180, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 95, + 147, + 37, + 128, + 0, + 180, + 66, + 39, + 91, + 128, + 0, + 241, + 95, + 147, + 37, + 128, + 0, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 248, + 10, + 1, + 120, + 'Mountain Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 69, + 60, + 167, + 108, + 1, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 69, + 60, + 167, + 108, + 11, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 249, + 10, + 1, + 120, + 'Emerald Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 134, + 90, + 139, + 144, + 0, + 212, + 134, + 90, + 139, + 144, + 0, + 212, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 128, + 56, + 137, + 143, + 0, + 224, + 134, + 90, + 139, + 144, + 0, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 250, + 10, + 1, + 120, + 'Madeira Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 3, + 250, + 64, + 128, + 0, + 205, + 3, + 250, + 64, + 128, + 0, + 205, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 248, + 45, + 64, + 128, + 0, + 228, + 3, + 250, + 64, + 128, + 0, + 205, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 251, + 10, + 1, + 120, + 'Antique Pewter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 32, + 24, + 83, + 137, + 1, + 236, + 32, + 24, + 83, + 137, + 1, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 252, + 10, + 1, + 120, + 'Plum Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 231, + 253, + 44, + 128, + 0, + 181, + 231, + 253, + 44, + 128, + 0, + 181, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 231, + 49, + 44, + 128, + 0, + 253, + 231, + 253, + 44, + 128, + 0, + 181, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 253, + 10, + 1, + 120, + 'Sierra Fawn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 26, + 28, + 147, + 138, + 0, + 249, + 26, + 58, + 147, + 138, + 0, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 254, + 10, + 1, + 120, + 'Nantucket Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 184, + 43, + 169, + 128, + 0, + 255, + 184, + 43, + 169, + 128, + 0, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 184, + 43, + 169, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 253, + 184, + 43, + 169, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 255, + 10, + 1, + 120, + 'Granada Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67camtin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 36, + 33, + 168, + 138, + 0, + 249, + 36, + 104, + 168, + 138, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 256, + 10, + 1, + 121, + 'Monza Red / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 1, + 47, + 255, + 128, + 0, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 1, + 255, + 255, + 139, + 0, + 211, + 1, + 1, + 1, + 128, + 1, + 147, + 1, + 255, + 255, + 139, + 0, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 257, + 10, + 1, + 121, + 'Classic White / Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 128, + 5, + 255, + 128, + 27, + 255, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 20, + 7, + 18, + 128, + 0, + 165, + 1, + 41, + 101, + 128, + 0, + 254, + 15, + 255, + 101, + 128, + 14, + 255, + 128, + 5, + 255, + 128, + 18, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 258, + 10, + 1, + 121, + 'Misty Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 128, + 52, + 58, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 128, + 255, + 58, + 152, + 0, + 203, + 128, + 255, + 58, + 152, + 0, + 203, + 128, + 255, + 58, + 152, + 0, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 259, + 10, + 1, + 121, + 'Champagne Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 33, + 60, + 126, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 27, + 138, + 126, + 128, + 0, + 223, + 27, + 138, + 126, + 128, + 0, + 223, + 27, + 138, + 126, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 260, + 10, + 1, + 121, + 'Cortez Silver / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 122, + 10, + 160, + 128, + 11, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 122, + 10, + 160, + 128, + 0, + 227, + 1, + 1, + 1, + 128, + 1, + 147, + 122, + 10, + 160, + 142, + 0, + 220, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 261, + 10, + 1, + 121, + 'Green Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 104, + 18, + 147, + 128, + 0, + 253, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 104, + 101, + 147, + 128, + 0, + 219, + 104, + 101, + 147, + 128, + 0, + 219, + 104, + 101, + 147, + 128, + 0, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 262, + 10, + 1, + 121, + 'Forest Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 64, + 14, + 53, + 128, + 0, + 232, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 97, + 130, + 53, + 128, + 0, + 190, + 97, + 130, + 53, + 128, + 0, + 190, + 97, + 130, + 53, + 128, + 0, + 190, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 263, + 10, + 1, + 121, + 'Cranberry Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 6, + 56, + 91, + 128, + 0, + 245, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 248, + 254, + 91, + 176, + 0, + 180, + 1, + 1, + 1, + 128, + 1, + 147, + 248, + 254, + 91, + 176, + 0, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 264, + 10, + 1, + 121, + 'Astro Blue / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 142, + 57, + 255, + 128, + 18, + 255, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 250, + 20, + 7, + 18, + 128, + 0, + 165, + 142, + 101, + 255, + 128, + 2, + 254, + 142, + 3, + 255, + 128, + 36, + 255, + 142, + 175, + 88, + 184, + 2, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 265, + 10, + 1, + 121, + 'Laguna Gray / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 242, + 18, + 83, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 242, + 28, + 83, + 171, + 0, + 180, + 1, + 1, + 1, + 128, + 1, + 147, + 242, + 28, + 83, + 171, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 266, + 10, + 1, + 121, + 'Fathom Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 170, + 73, + 255, + 128, + 22, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 155, + 254, + 70, + 146, + 11, + 184, + 155, + 254, + 70, + 146, + 11, + 184, + 155, + 254, + 70, + 146, + 11, + 184, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 267, + 10, + 1, + 121, + 'Shadow Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 128, + 6, + 94, + 128, + 6, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 26, + 41, + 53, + 128, + 0, + 199, + 26, + 41, + 53, + 128, + 0, + 199, + 26, + 41, + 53, + 128, + 0, + 199, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 268, + 10, + 1, + 121, + 'Gold Beige / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 31, + 13, + 112, + 128, + 0, + 249, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 31, + 148, + 112, + 109, + 11, + 228, + 1, + 1, + 1, + 128, + 1, + 147, + 31, + 148, + 112, + 109, + 11, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 269, + 10, + 1, + 121, + 'Black Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 229, + 43, + 66, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 245, + 255, + 66, + 128, + 0, + 198, + 245, + 255, + 66, + 128, + 0, + 198, + 245, + 255, + 66, + 128, + 0, + 198, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 270, + 10, + 1, + 121, + 'Autumn Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70chetin', + 23, + 39, + 62, + 128, + 0, + 240, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 23, + 126, + 62, + 128, + 0, + 194, + 23, + 126, + 62, + 128, + 0, + 194, + 23, + 126, + 62, + 128, + 0, + 194, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 271, + 10, + 1, + 121, + 'Plum / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 229, + 43, + 66, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 215, + 255, + 53, + 128, + 0, + 188, + 1, + 1, + 1, + 128, + 1, + 147, + 215, + 255, + 53, + 128, + 0, + 198, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 272, + 10, + 1, + 121, + 'Yellow / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 18, + 86, + 255, + 117, + 20, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 31, + 255, + 255, + 117, + 26, + 229, + 1, + 1, + 1, + 128, + 1, + 147, + 31, + 255, + 255, + 117, + 26, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 273, + 10, + 1, + 121, + 'Monza Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70chetin', + 1, + 47, + 255, + 128, + 0, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 1, + 236, + 255, + 128, + 0, + 219, + 1, + 1, + 1, + 128, + 1, + 147, + 1, + 255, + 255, + 139, + 0, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 274, + 10, + 1, + 122, + 'Laguna Gray / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70camtin', + 242, + 18, + 83, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 242, + 28, + 83, + 128, + 0, + 214, + 1, + 1, + 1, + 128, + 1, + 168, + 242, + 28, + 83, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 275, + 10, + 1, + 122, + 'Classic White / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70camtin', + 128, + 5, + 255, + 128, + 27, + 255, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 20, + 7, + 18, + 128, + 0, + 248, + 1, + 41, + 101, + 128, + 0, + 254, + 1, + 255, + 101, + 128, + 0, + 236, + 128, + 5, + 255, + 128, + 39, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 276, + 10, + 1, + 122, + 'Misty Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 128, + 52, + 58, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 128, + 57, + 58, + 128, + 0, + 248, + 128, + 0, + 255, + 128, + 35, + 255, + 128, + 255, + 58, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 277, + 10, + 1, + 122, + 'Champagne Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 33, + 60, + 126, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 27, + 138, + 126, + 128, + 0, + 248, + 27, + 138, + 126, + 128, + 0, + 248, + 27, + 138, + 126, + 128, + 0, + 248, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 278, + 10, + 1, + 122, + 'Cortez Silver / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70camtin', + 122, + 10, + 160, + 128, + 11, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 122, + 10, + 160, + 128, + 0, + 227, + 1, + 1, + 1, + 128, + 1, + 168, + 122, + 10, + 160, + 128, + 0, + 248, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 279, + 10, + 1, + 122, + 'Green Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 104, + 18, + 147, + 128, + 0, + 253, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 104, + 101, + 147, + 128, + 0, + 239, + 104, + 101, + 147, + 128, + 0, + 239, + 104, + 101, + 147, + 128, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 280, + 10, + 1, + 122, + 'Forest Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 64, + 14, + 53, + 128, + 0, + 232, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 97, + 130, + 53, + 128, + 0, + 210, + 97, + 130, + 53, + 128, + 0, + 210, + 97, + 130, + 53, + 128, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 281, + 10, + 1, + 122, + 'Cranberry Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 6, + 56, + 91, + 128, + 0, + 245, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 6, + 254, + 91, + 128, + 0, + 233, + 6, + 254, + 91, + 128, + 0, + 233, + 6, + 254, + 91, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 282, + 10, + 1, + 122, + 'Astro Blue / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70camtin', + 142, + 57, + 255, + 128, + 18, + 255, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 250, + 20, + 7, + 18, + 128, + 0, + 248, + 142, + 101, + 255, + 128, + 2, + 254, + 142, + 3, + 255, + 128, + 36, + 255, + 142, + 175, + 88, + 128, + 2, + 228, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 283, + 10, + 1, + 122, + 'Monza Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70camtin', + 1, + 47, + 255, + 128, + 0, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 1, + 141, + 255, + 128, + 0, + 214, + 1, + 1, + 1, + 128, + 1, + 168, + 1, + 255, + 255, + 139, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 284, + 10, + 1, + 122, + 'Fathom Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 170, + 73, + 255, + 128, + 22, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 155, + 254, + 70, + 146, + 11, + 206, + 155, + 254, + 70, + 146, + 11, + 206, + 155, + 254, + 70, + 146, + 11, + 206, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 285, + 10, + 1, + 122, + 'Shadow Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 128, + 6, + 94, + 128, + 6, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 26, + 41, + 53, + 128, + 0, + 224, + 26, + 41, + 53, + 128, + 0, + 224, + 26, + 41, + 53, + 128, + 0, + 224, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 286, + 10, + 1, + 122, + 'Gold Beige / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70camtin', + 31, + 13, + 112, + 128, + 0, + 249, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 31, + 176, + 112, + 109, + 18, + 206, + 1, + 1, + 1, + 128, + 1, + 168, + 31, + 176, + 112, + 109, + 18, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 287, + 10, + 1, + 122, + 'Black Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 229, + 43, + 66, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 245, + 255, + 66, + 128, + 0, + 225, + 245, + 255, + 66, + 128, + 0, + 225, + 245, + 255, + 66, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 288, + 10, + 1, + 122, + 'Autumn Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70camtin', + 23, + 39, + 62, + 128, + 0, + 240, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 23, + 126, + 62, + 128, + 0, + 215, + 23, + 126, + 62, + 128, + 0, + 215, + 23, + 126, + 62, + 128, + 0, + 215, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 289, + 10, + 1, + 123, + 'Green Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70novtin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 48, + 83, + 139, + 128, + 0, + 223, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 48, + 28, + 139, + 128, + 0, + 240, + 20, + 7, + 18, + 128, + 0, + 161, + 48, + 83, + 139, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 290, + 10, + 1, + 123, + 'Monza Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 0, + 255, + 255, + 128, + 0, + 241, + 0, + 255, + 255, + 128, + 0, + 241, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 0, + 86, + 255, + 128, + 0, + 252, + 0, + 255, + 255, + 128, + 0, + 241, + 0, + 255, + 255, + 128, + 0, + 241, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 291, + 10, + 1, + 123, + 'Astro Blue / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 145, + 210, + 142, + 128, + 0, + 216, + 145, + 210, + 142, + 128, + 0, + 216, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 150, + 79, + 142, + 128, + 0, + 241, + 145, + 210, + 142, + 128, + 0, + 216, + 145, + 210, + 142, + 128, + 0, + 216, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 292, + 10, + 1, + 123, + 'Shadow Grey', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70novtin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 24, + 66, + 86, + 128, + 0, + 207, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 24, + 40, + 75, + 128, + 0, + 231, + 20, + 7, + 18, + 128, + 0, + 161, + 24, + 66, + 86, + 128, + 0, + 207, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 293, + 10, + 1, + 123, + 'Gold / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 22, + 107, + 142, + 128, + 0, + 225, + 22, + 107, + 142, + 128, + 0, + 225, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 28, + 47, + 142, + 128, + 0, + 245, + 22, + 107, + 142, + 128, + 0, + 225, + 22, + 107, + 142, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 294, + 10, + 1, + 123, + 'Forest Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70novtin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 101, + 178, + 33, + 128, + 0, + 193, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 64, + 84, + 33, + 128, + 36, + 206, + 20, + 7, + 18, + 128, + 0, + 161, + 101, + 178, + 33, + 128, + 0, + 193, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 295, + 10, + 1, + 123, + 'Fathom Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70novtin', + 137, + 255, + 52, + 128, + 0, + 192, + 137, + 255, + 52, + 128, + 0, + 192, + 137, + 255, + 52, + 128, + 0, + 192, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 137, + 57, + 52, + 128, + 0, + 237, + 137, + 255, + 52, + 128, + 0, + 192, + 137, + 255, + 52, + 128, + 0, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 296, + 10, + 1, + 123, + 'Classic White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70novtin', + 128, + 0, + 255, + 128, + 58, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 40, + 7, + 255, + 128, + 27, + 255, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 40, + 7, + 255, + 128, + 27, + 225, + 20, + 7, + 18, + 128, + 0, + 161, + 40, + 7, + 255, + 128, + 27, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 297, + 10, + 1, + 123, + 'Misty Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70novtin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 130, + 182, + 97, + 128, + 0, + 222, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 130, + 73, + 97, + 128, + 0, + 235, + 20, + 7, + 18, + 128, + 0, + 161, + 130, + 182, + 97, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 298, + 10, + 1, + 123, + 'Black Cherry / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 1, + 255, + 80, + 128, + 2, + 203, + 1, + 255, + 80, + 128, + 2, + 203, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 1, + 66, + 80, + 128, + 2, + 241, + 1, + 255, + 80, + 128, + 2, + 203, + 1, + 255, + 80, + 128, + 2, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 299, + 10, + 1, + 123, + 'Autumn Gold / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 26, + 134, + 134, + 137, + 0, + 199, + 26, + 134, + 134, + 137, + 0, + 199, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 26, + 74, + 134, + 128, + 0, + 245, + 26, + 134, + 134, + 137, + 0, + 199, + 26, + 134, + 134, + 137, + 0, + 199, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 300, + 10, + 1, + 123, + 'Cortez Silver / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 129, + 1, + 189, + 128, + 1, + 222, + 129, + 1, + 189, + 128, + 1, + 222, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 129, + 1, + 189, + 128, + 1, + 231, + 129, + 1, + 189, + 128, + 1, + 222, + 129, + 1, + 189, + 128, + 1, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 301, + 10, + 1, + 123, + 'Desert Sand', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70novtin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 22, + 147, + 147, + 128, + 0, + 244, + 20, + 7, + 31, + 128, + 0, + 246, + 40, + 10, + 255, + 128, + 77, + 255, + 22, + 53, + 147, + 128, + 0, + 250, + 20, + 7, + 18, + 128, + 0, + 161, + 22, + 147, + 147, + 128, + 0, + 244, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 302, + 10, + 1, + 123, + 'Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 20, + 5, + 1, + 128, + 0, + 184, + 20, + 5, + 1, + 128, + 0, + 184, + 0, + 255, + 255, + 128, + 0, + 241, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 20, + 5, + 66, + 128, + 0, + 245, + 20, + 5, + 1, + 128, + 0, + 184, + 20, + 5, + 1, + 128, + 0, + 177, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 303, + 10, + 1, + 123, + 'Yellow / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70novtin', + 29, + 255, + 255, + 128, + 34, + 255, + 29, + 255, + 255, + 128, + 34, + 255, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 37, + 64, + 255, + 128, + 16, + 239, + 29, + 255, + 255, + 128, + 34, + 255, + 29, + 255, + 255, + 128, + 34, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 304, + 10, + 1, + 124, + 'Madeira Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 252, + 70, + 92, + 122, + 0, + 231, + 252, + 254, + 92, + 122, + 10, + 255, + 40, + 20, + 255, + 128, + 0, + 250, + 252, + 254, + 92, + 122, + 23, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 9, + 254, + 40, + 20, + 255, + 128, + 0, + 250, + 254, + 255, + 92, + 128, + 0, + 199, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 305, + 10, + 1, + 124, + 'Berkeley Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 32, + 14, + 87, + 101, + 0, + 224, + 32, + 43, + 87, + 101, + 24, + 254, + 40, + 20, + 255, + 128, + 0, + 250, + 32, + 43, + 87, + 101, + 24, + 254, + 40, + 20, + 255, + 128, + 0, + 170, + 40, + 20, + 255, + 128, + 9, + 254, + 40, + 20, + 255, + 128, + 0, + 250, + 32, + 43, + 87, + 101, + 0, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 306, + 10, + 1, + 124, + 'Cavern Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 83, + 43, + 18, + 104, + 5, + 215, + 67, + 111, + 48, + 128, + 1, + 237, + 27, + 94, + 113, + 128, + 0, + 229, + 67, + 111, + 48, + 128, + 1, + 237, + 40, + 20, + 2, + 128, + 0, + 165, + 27, + 43, + 113, + 128, + 0, + 239, + 27, + 94, + 113, + 128, + 0, + 207, + 83, + 148, + 18, + 104, + 5, + 156, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 307, + 10, + 1, + 124, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 128, + 0, + 2, + 128, + 0, + 203, + 40, + 20, + 255, + 128, + 0, + 235, + 40, + 20, + 255, + 128, + 0, + 250, + 128, + 0, + 2, + 128, + 0, + 228, + 40, + 20, + 2, + 128, + 0, + 165, + 128, + 0, + 2, + 64, + 0, + 248, + 128, + 0, + 2, + 64, + 0, + 160, + 128, + 0, + 2, + 64, + 0, + 160, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 308, + 10, + 1, + 124, + 'Gunmetal Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 35, + 13, + 71, + 128, + 9, + 218, + 35, + 20, + 71, + 128, + 9, + 255, + 40, + 20, + 255, + 128, + 0, + 184, + 35, + 20, + 71, + 128, + 9, + 255, + 40, + 20, + 2, + 128, + 0, + 165, + 128, + 0, + 2, + 64, + 0, + 248, + 128, + 0, + 2, + 64, + 0, + 160, + 19, + 24, + 41, + 128, + 0, + 185, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 309, + 10, + 1, + 124, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 92, + 52, + 74, + 128, + 19, + 197, + 92, + 150, + 74, + 128, + 19, + 231, + 40, + 20, + 255, + 128, + 0, + 250, + 92, + 150, + 74, + 128, + 19, + 231, + 40, + 20, + 2, + 128, + 0, + 165, + 92, + 52, + 74, + 128, + 19, + 197, + 92, + 150, + 74, + 128, + 19, + 159, + 92, + 150, + 74, + 128, + 19, + 159, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 310, + 10, + 1, + 124, + 'Shetland Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 35, + 20, + 71, + 128, + 9, + 241, + 35, + 40, + 240, + 128, + 35, + 255, + 40, + 20, + 255, + 128, + 0, + 184, + 35, + 40, + 240, + 128, + 35, + 255, + 40, + 20, + 2, + 128, + 0, + 165, + 40, + 20, + 255, + 128, + 9, + 254, + 40, + 20, + 255, + 128, + 0, + 250, + 35, + 40, + 172, + 128, + 0, + 229, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 311, + 10, + 1, + 124, + 'Pawnee Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 22, + 45, + 186, + 128, + 1, + 231, + 22, + 133, + 186, + 128, + 7, + 252, + 40, + 20, + 255, + 128, + 0, + 250, + 22, + 133, + 186, + 128, + 23, + 252, + 40, + 20, + 255, + 128, + 0, + 250, + 22, + 45, + 186, + 128, + 1, + 231, + 22, + 133, + 186, + 128, + 1, + 215, + 22, + 133, + 186, + 128, + 1, + 215, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 312, + 10, + 1, + 124, + 'Asbury Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 62, + 30, + 194, + 128, + 0, + 235, + 62, + 53, + 194, + 128, + 19, + 253, + 40, + 20, + 255, + 128, + 0, + 250, + 62, + 53, + 194, + 128, + 19, + 253, + 40, + 20, + 255, + 128, + 0, + 250, + 40, + 20, + 255, + 128, + 9, + 254, + 40, + 20, + 255, + 128, + 0, + 250, + 62, + 53, + 194, + 128, + 0, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 313, + 10, + 1, + 124, + 'Marlboro Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '47cadtin', + 158, + 65, + 54, + 128, + 0, + 222, + 158, + 254, + 54, + 128, + 0, + 244, + 40, + 20, + 255, + 128, + 0, + 250, + 158, + 254, + 54, + 128, + 0, + 244, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 9, + 254, + 40, + 20, + 255, + 128, + 0, + 250, + 158, + 254, + 54, + 128, + 0, + 177, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 314, + 10, + 1, + 125, + 'Carnation Pink', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 4, + 74, + 255, + 128, + 40, + 240, + 40, + 20, + 255, + 128, + 10, + 255, + 4, + 74, + 255, + 128, + 40, + 240, + 170, + 5, + 255, + 128, + 30, + 254, + 4, + 74, + 255, + 128, + 40, + 240, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 315, + 10, + 1, + 125, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 253, + 246, + 255, + 128, + 0, + 245, + 40, + 20, + 255, + 128, + 10, + 255, + 253, + 246, + 255, + 128, + 0, + 245, + 170, + 5, + 255, + 128, + 30, + 254, + 253, + 246, + 255, + 128, + 0, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 316, + 10, + 10, + 125, + 'Lemon Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 36, + 167, + 255, + 128, + 45, + 252, + 40, + 20, + 255, + 128, + 10, + 255, + 36, + 167, + 255, + 128, + 45, + 252, + 170, + 5, + 255, + 128, + 30, + 254, + 36, + 167, + 255, + 128, + 45, + 252, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 317, + 10, + 1, + 125, + 'Pistachio', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 100, + 144, + 255, + 128, + 1, + 245, + 40, + 20, + 255, + 128, + 10, + 255, + 100, + 144, + 255, + 128, + 1, + 245, + 170, + 5, + 255, + 128, + 30, + 254, + 100, + 144, + 255, + 128, + 1, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 318, + 10, + 1, + 125, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 10, + 255, + 128, + 0, + 185, + 40, + 20, + 5, + 128, + 1, + 137, + 40, + 10, + 6, + 128, + 0, + 161, + 170, + 5, + 255, + 128, + 30, + 254, + 40, + 10, + 6, + 128, + 0, + 161, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 319, + 10, + 10, + 125, + 'Light Blue Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 130, + 78, + 180, + 128, + 14, + 233, + 40, + 20, + 255, + 128, + 10, + 255, + 130, + 78, + 180, + 128, + 14, + 233, + 170, + 5, + 255, + 128, + 30, + 254, + 130, + 78, + 180, + 128, + 14, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 320, + 10, + 1, + 125, + 'Executive Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 1, + 189, + 40, + 20, + 255, + 128, + 1, + 189, + 40, + 20, + 255, + 128, + 1, + 189, + 158, + 156, + 75, + 128, + 0, + 197, + 40, + 20, + 5, + 128, + 1, + 137, + 158, + 156, + 75, + 128, + 0, + 197, + 158, + 156, + 75, + 128, + 0, + 197, + 158, + 156, + 75, + 128, + 0, + 197, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 321, + 10, + 10, + 125, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 1, + 255, + 171, + 128, + 1, + 220, + 1, + 255, + 171, + 128, + 1, + 220, + 1, + 255, + 171, + 128, + 1, + 220, + 130, + 9, + 255, + 128, + 53, + 231, + 40, + 20, + 5, + 128, + 1, + 137, + 130, + 9, + 255, + 128, + 53, + 231, + 130, + 9, + 255, + 128, + 53, + 231, + 130, + 9, + 255, + 128, + 53, + 244, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 322, + 10, + 1, + 125, + 'Saddle Rose', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 21, + 114, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 21, + 114, + 255, + 128, + 10, + 255, + 170, + 5, + 255, + 128, + 30, + 254, + 21, + 114, + 255, + 128, + 10, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 323, + 10, + 1, + 125, + 'Sky Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 142, + 125, + 255, + 128, + 44, + 225, + 40, + 20, + 255, + 128, + 10, + 255, + 142, + 125, + 255, + 128, + 44, + 225, + 170, + 5, + 255, + 128, + 30, + 254, + 142, + 125, + 255, + 128, + 44, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 324, + 10, + 1, + 125, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 246, + 242, + 74, + 128, + 0, + 197, + 246, + 242, + 74, + 128, + 0, + 197, + 246, + 242, + 74, + 128, + 0, + 197, + 40, + 10, + 255, + 128, + 0, + 185, + 40, + 20, + 5, + 128, + 1, + 137, + 40, + 10, + 6, + 128, + 0, + 161, + 40, + 10, + 6, + 128, + 0, + 161, + 40, + 10, + 6, + 128, + 0, + 161, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 325, + 10, + 1, + 125, + 'Yellow Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 40, + 20, + 255, + 128, + 1, + 189, + 40, + 20, + 255, + 128, + 10, + 255, + 40, + 20, + 255, + 128, + 10, + 255, + 36, + 129, + 255, + 128, + 24, + 237, + 40, + 20, + 5, + 128, + 1, + 137, + 36, + 129, + 255, + 128, + 24, + 237, + 170, + 5, + 255, + 128, + 30, + 254, + 36, + 129, + 255, + 128, + 24, + 237, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 326, + 10, + 1, + 125, + 'Dark Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '59cadtin', + 246, + 242, + 74, + 128, + 0, + 197, + 246, + 242, + 74, + 128, + 0, + 197, + 246, + 242, + 74, + 128, + 0, + 197, + 254, + 254, + 96, + 128, + 0, + 206, + 40, + 20, + 5, + 128, + 1, + 137, + 254, + 254, + 96, + 128, + 0, + 206, + 254, + 254, + 96, + 128, + 0, + 206, + 254, + 254, + 96, + 128, + 0, + 206, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 327, + 10, + 1, + 126, + 'Crimson', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 2, + 150, + 255, + 128, + 0, + 236, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 328, + 10, + 1, + 126, + 'Platinum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 134, + 10, + 126, + 128, + 6, + 245, + 134, + 10, + 158, + 128, + 1, + 232, + 134, + 10, + 158, + 128, + 1, + 232, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 134, + 10, + 158, + 128, + 1, + 232, + 134, + 10, + 158, + 128, + 1, + 232, + 134, + 10, + 158, + 128, + 1, + 232, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 329, + 10, + 1, + 126, + 'Trophy Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 170, + 128, + 192, + 128, + 0, + 214, + 147, + 255, + 79, + 128, + 0, + 184, + 147, + 255, + 79, + 128, + 0, + 184, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 147, + 255, + 79, + 128, + 0, + 184, + 147, + 255, + 79, + 128, + 0, + 184, + 147, + 255, + 79, + 128, + 0, + 184, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 330, + 10, + 1, + 126, + 'Ebony Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 6, + 10, + 9, + 128, + 0, + 197, + 6, + 10, + 9, + 128, + 0, + 161, + 6, + 10, + 9, + 128, + 0, + 161, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 6, + 10, + 9, + 128, + 0, + 161, + 6, + 10, + 9, + 128, + 0, + 161, + 6, + 10, + 9, + 128, + 0, + 161, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 331, + 10, + 1, + 126, + 'Topaz', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 37, + 65, + 145, + 128, + 0, + 243, + 31, + 143, + 178, + 128, + 0, + 224, + 31, + 143, + 178, + 128, + 0, + 224, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 31, + 143, + 178, + 128, + 0, + 224, + 31, + 143, + 178, + 128, + 0, + 224, + 31, + 143, + 178, + 128, + 0, + 224, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 332, + 10, + 1, + 126, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 128, + 10, + 255, + 128, + 18, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 128, + 10, + 255, + 128, + 43, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 333, + 10, + 1, + 126, + 'Powder Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 135, + 61, + 190, + 128, + 0, + 242, + 135, + 99, + 190, + 128, + 0, + 237, + 135, + 99, + 190, + 128, + 0, + 237, + 28, + 26, + 164, + 128, + 10, + 255, + 30, + 10, + 1, + 128, + 0, + 194, + 135, + 99, + 190, + 128, + 0, + 237, + 135, + 99, + 190, + 128, + 0, + 237, + 135, + 99, + 190, + 128, + 0, + 237, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 334, + 10, + 1, + 126, + 'Chestnut Bronze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 5, + 91, + 82, + 128, + 0, + 218, + 5, + 231, + 82, + 128, + 0, + 193, + 5, + 231, + 82, + 128, + 0, + 193, + 28, + 116, + 164, + 128, + 1, + 224, + 30, + 10, + 1, + 128, + 0, + 194, + 5, + 231, + 82, + 128, + 0, + 193, + 5, + 231, + 82, + 128, + 0, + 193, + 5, + 231, + 82, + 128, + 0, + 193, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 335, + 10, + 1, + 126, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 2, + 150, + 255, + 128, + 0, + 236, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 28, + 26, + 164, + 128, + 10, + 255, + 30, + 10, + 1, + 128, + 0, + 194, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 0, + 'Factory', + 'This color is not in the 60 Olds 442 CSV and can not be verified. It is also not a referenced factory color.' + ), + ( + 336, + 10, + 1, + 126, + 'Saffron', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 33, + 96, + 255, + 128, + 16, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 28, + 165, + 255, + 128, + 33, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 337, + 10, + 1, + 126, + 'Flamingo Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 246, + 33, + 80, + 128, + 7, + 242, + 246, + 43, + 80, + 128, + 7, + 232, + 246, + 43, + 80, + 128, + 7, + 232, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 246, + 43, + 80, + 128, + 7, + 232, + 246, + 43, + 80, + 128, + 7, + 232, + 246, + 43, + 80, + 128, + 7, + 232, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 338, + 10, + 1, + 126, + 'Meadow Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 77, + 44, + 109, + 128, + 1, + 242, + 65, + 75, + 109, + 128, + 1, + 220, + 65, + 75, + 109, + 128, + 1, + 220, + 28, + 116, + 164, + 128, + 1, + 224, + 30, + 10, + 1, + 128, + 0, + 194, + 65, + 75, + 109, + 128, + 1, + 220, + 65, + 75, + 109, + 128, + 1, + 220, + 65, + 75, + 109, + 128, + 1, + 220, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 339, + 10, + 1, + 126, + 'Palomino Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 32, + 56, + 118, + 128, + 0, + 245, + 32, + 92, + 118, + 128, + 0, + 233, + 32, + 92, + 118, + 128, + 0, + 233, + 28, + 116, + 164, + 128, + 1, + 224, + 30, + 10, + 1, + 128, + 0, + 194, + 32, + 92, + 118, + 128, + 0, + 233, + 32, + 92, + 118, + 128, + 0, + 233, + 32, + 92, + 118, + 128, + 0, + 233, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 340, + 10, + 10, + 127, + 'Orange / Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '55centin', + 18, + 43, + 255, + 128, + 20, + 255, + 28, + 24, + 255, + 128, + 53, + 254, + 28, + 24, + 255, + 128, + 53, + 254, + 28, + 24, + 255, + 128, + 53, + 254, + 31, + 5, + 255, + 128, + 0, + 252, + 24, + 11, + 255, + 128, + 44, + 255, + 24, + 11, + 255, + 128, + 66, + 255, + 18, + 255, + 255, + 128, + 28, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 341, + 10, + 10, + 127, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '55centin', + 1, + 70, + 255, + 128, + 10, + 255, + 43, + 9, + 255, + 128, + 0, + 245, + 41, + 28, + 20, + 92, + 11, + 255, + 41, + 28, + 20, + 92, + 11, + 202, + 15, + 5, + 1, + 128, + 0, + 150, + 1, + 255, + 255, + 128, + 10, + 255, + 1, + 255, + 255, + 128, + 10, + 255, + 1, + 255, + 255, + 128, + 10, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 342, + 10, + 10, + 127, + 'Yellow / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '55centin', + 38, + 61, + 255, + 128, + 43, + 223, + 28, + 24, + 255, + 128, + 53, + 254, + 28, + 24, + 255, + 128, + 53, + 254, + 28, + 24, + 255, + 128, + 53, + 254, + 31, + 5, + 255, + 128, + 0, + 252, + 24, + 11, + 255, + 128, + 44, + 255, + 24, + 11, + 255, + 128, + 66, + 255, + 33, + 254, + 255, + 128, + 43, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 343, + 10, + 1, + 127, + 'Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '55centin', + 1, + 112, + 255, + 128, + 3, + 240, + 1, + 255, + 255, + 128, + 3, + 229, + 41, + 28, + 20, + 92, + 11, + 255, + 41, + 28, + 20, + 92, + 11, + 202, + 15, + 5, + 1, + 128, + 0, + 150, + 1, + 255, + 255, + 128, + 10, + 255, + 15, + 7, + 3, + 128, + 0, + 194, + 15, + 7, + 3, + 128, + 0, + 169, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 344, + 10, + 1, + 127, + 'Light Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '55centin', + 67, + 80, + 129, + 128, + 0, + 253, + 28, + 24, + 255, + 128, + 9, + 254, + 41, + 28, + 20, + 92, + 11, + 255, + 41, + 28, + 20, + 92, + 11, + 202, + 15, + 5, + 1, + 128, + 0, + 150, + 67, + 107, + 129, + 128, + 0, + 246, + 67, + 107, + 129, + 128, + 0, + 246, + 67, + 107, + 129, + 128, + 0, + 246, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 345, + 10, + 1, + 127, + 'Stone Gray / Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '55centin', + 45, + 15, + 131, + 128, + 0, + 239, + 41, + 28, + 20, + 92, + 11, + 231, + 41, + 28, + 20, + 92, + 11, + 255, + 41, + 28, + 20, + 92, + 11, + 202, + 15, + 5, + 1, + 128, + 0, + 150, + 45, + 15, + 131, + 128, + 0, + 250, + 45, + 15, + 131, + 128, + 0, + 223, + 45, + 15, + 131, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 346, + 10, + 1, + 127, + 'Pearl White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '55centin', + 128, + 7, + 255, + 128, + 19, + 255, + 28, + 36, + 255, + 128, + 18, + 254, + 1, + 255, + 255, + 128, + 3, + 244, + 1, + 255, + 255, + 128, + 3, + 229, + 15, + 5, + 1, + 128, + 0, + 150, + 128, + 7, + 255, + 128, + 39, + 255, + 128, + 7, + 255, + 128, + 39, + 255, + 128, + 1, + 255, + 128, + 52, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 347, + 10, + 1, + 127, + 'Purple / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '55centin', + 138, + 28, + 66, + 128, + 30, + 253, + 41, + 28, + 20, + 92, + 11, + 231, + 41, + 28, + 20, + 92, + 11, + 255, + 41, + 28, + 20, + 92, + 11, + 202, + 31, + 5, + 255, + 128, + 0, + 252, + 24, + 11, + 255, + 128, + 44, + 255, + 205, + 255, + 66, + 128, + 0, + 225, + 205, + 255, + 66, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 348, + 10, + 1, + 127, + 'Plum Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '55centin', + 128, + 0, + 255, + 128, + 7, + 255, + 20, + 7, + 6, + 128, + 0, + 211, + 20, + 7, + 6, + 128, + 0, + 218, + 41, + 28, + 20, + 92, + 11, + 202, + 15, + 5, + 1, + 128, + 0, + 150, + 248, + 41, + 88, + 128, + 0, + 228, + 248, + 41, + 88, + 128, + 0, + 228, + 248, + 41, + 88, + 128, + 0, + 228, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 349, + 10, + 1, + 127, + 'Dark Teal / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '55centin', + 128, + 41, + 53, + 128, + 0, + 254, + 43, + 9, + 255, + 128, + 0, + 245, + 43, + 9, + 255, + 128, + 0, + 245, + 41, + 28, + 20, + 92, + 11, + 202, + 31, + 5, + 255, + 128, + 0, + 252, + 128, + 7, + 255, + 128, + 39, + 255, + 128, + 7, + 255, + 128, + 39, + 255, + 128, + 79, + 53, + 128, + 0, + 224, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 350, + 10, + 1, + 127, + 'Sapphire Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '55centin', + 151, + 95, + 62, + 128, + 0, + 246, + 43, + 9, + 255, + 128, + 0, + 245, + 151, + 150, + 62, + 128, + 0, + 248, + 151, + 150, + 62, + 128, + 0, + 212, + 15, + 5, + 1, + 128, + 0, + 150, + 151, + 255, + 62, + 128, + 0, + 227, + 151, + 255, + 62, + 128, + 0, + 227, + 151, + 255, + 62, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 351, + 10, + 1, + 128, + 'Teal Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 40, + 20, + 35, + 128, + 0, + 188, + 40, + 20, + 255, + 128, + 0, + 180, + 40, + 20, + 255, + 128, + 0, + 211, + 30, + 32, + 255, + 128, + 0, + 175, + 40, + 20, + 19, + 128, + 0, + 197, + 120, + 255, + 65, + 128, + 0, + 227, + 120, + 255, + 65, + 128, + 0, + 227, + 120, + 255, + 65, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 352, + 10, + 1, + 128, + 'Medium Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 40, + 20, + 35, + 128, + 0, + 188, + 40, + 20, + 255, + 128, + 0, + 180, + 40, + 20, + 255, + 128, + 0, + 211, + 30, + 32, + 255, + 128, + 0, + 175, + 40, + 20, + 19, + 128, + 0, + 197, + 139, + 190, + 158, + 128, + 0, + 242, + 139, + 190, + 158, + 128, + 0, + 242, + 139, + 190, + 158, + 128, + 0, + 242, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 353, + 10, + 1, + 128, + 'Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 40, + 20, + 70, + 128, + 0, + 216, + 40, + 20, + 255, + 128, + 0, + 239, + 40, + 20, + 255, + 128, + 0, + 239, + 30, + 65, + 255, + 128, + 0, + 190, + 40, + 20, + 19, + 128, + 0, + 197, + 250, + 255, + 56, + 128, + 0, + 227, + 250, + 255, + 56, + 128, + 0, + 227, + 250, + 255, + 56, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 354, + 10, + 1, + 128, + 'Midnight Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 40, + 20, + 35, + 128, + 0, + 188, + 40, + 20, + 255, + 128, + 0, + 180, + 40, + 20, + 255, + 128, + 0, + 211, + 30, + 32, + 255, + 128, + 0, + 175, + 40, + 20, + 19, + 128, + 0, + 197, + 148, + 255, + 58, + 128, + 0, + 215, + 148, + 255, + 58, + 128, + 0, + 215, + 148, + 255, + 58, + 128, + 0, + 215, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 355, + 10, + 1, + 128, + 'Cherry Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 30, + 65, + 108, + 128, + 0, + 208, + 40, + 20, + 255, + 128, + 0, + 239, + 40, + 20, + 255, + 128, + 0, + 239, + 30, + 65, + 255, + 128, + 0, + 190, + 40, + 20, + 19, + 128, + 0, + 197, + 3, + 255, + 121, + 128, + 0, + 252, + 3, + 255, + 121, + 128, + 0, + 252, + 3, + 255, + 121, + 128, + 0, + 252, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 356, + 10, + 1, + 128, + 'Antique Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 128, + 0, + 32, + 128, + 0, + 199, + 128, + 0, + 5, + 128, + 0, + 180, + 128, + 0, + 23, + 128, + 0, + 211, + 128, + 0, + 16, + 128, + 0, + 183, + 40, + 20, + 19, + 128, + 0, + 197, + 31, + 165, + 180, + 128, + 0, + 246, + 31, + 165, + 180, + 128, + 0, + 246, + 31, + 165, + 180, + 128, + 0, + 246, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 357, + 10, + 1, + 128, + 'Champagne', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 30, + 65, + 108, + 128, + 0, + 208, + 40, + 20, + 255, + 128, + 0, + 239, + 40, + 20, + 255, + 128, + 0, + 239, + 30, + 65, + 255, + 128, + 0, + 190, + 40, + 20, + 19, + 128, + 0, + 197, + 31, + 82, + 79, + 128, + 0, + 246, + 31, + 82, + 79, + 128, + 0, + 246, + 31, + 82, + 79, + 128, + 0, + 246, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 358, + 10, + 1, + 128, + 'Starlight Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 128, + 0, + 32, + 128, + 0, + 199, + 128, + 0, + 5, + 128, + 0, + 180, + 128, + 0, + 23, + 128, + 0, + 211, + 128, + 0, + 16, + 128, + 0, + 183, + 40, + 20, + 19, + 128, + 0, + 197, + 20, + 6, + 1, + 128, + 0, + 199, + 20, + 6, + 1, + 128, + 0, + 199, + 20, + 6, + 1, + 128, + 0, + 186, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 359, + 10, + 1, + 128, + 'Windward Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 30, + 65, + 108, + 128, + 0, + 208, + 40, + 20, + 255, + 128, + 0, + 239, + 40, + 20, + 255, + 128, + 0, + 239, + 30, + 65, + 255, + 128, + 0, + 190, + 40, + 20, + 19, + 128, + 0, + 197, + 138, + 108, + 105, + 128, + 0, + 236, + 138, + 108, + 105, + 128, + 0, + 236, + 138, + 108, + 105, + 128, + 0, + 236, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 360, + 10, + 1, + 128, + 'Goldenrod Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 30, + 65, + 108, + 128, + 0, + 208, + 40, + 20, + 255, + 128, + 0, + 239, + 40, + 20, + 255, + 128, + 0, + 239, + 30, + 65, + 255, + 128, + 0, + 190, + 35, + 10, + 255, + 128, + 26, + 255, + 35, + 255, + 255, + 128, + 52, + 255, + 35, + 255, + 255, + 128, + 52, + 255, + 35, + 255, + 255, + 128, + 52, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 361, + 10, + 1, + 128, + 'Midnight Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 128, + 0, + 32, + 128, + 0, + 199, + 128, + 0, + 5, + 128, + 0, + 180, + 128, + 0, + 23, + 128, + 0, + 211, + 128, + 0, + 16, + 128, + 0, + 183, + 40, + 20, + 19, + 128, + 0, + 197, + 104, + 248, + 47, + 128, + 0, + 214, + 104, + 248, + 47, + 128, + 0, + 214, + 104, + 248, + 47, + 128, + 0, + 214, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 362, + 10, + 1, + 128, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 128, + 0, + 32, + 128, + 0, + 199, + 128, + 0, + 5, + 128, + 0, + 180, + 128, + 0, + 23, + 128, + 0, + 211, + 128, + 0, + 16, + 128, + 0, + 183, + 40, + 20, + 19, + 128, + 0, + 197, + 128, + 5, + 255, + 128, + 50, + 255, + 128, + 5, + 255, + 128, + 50, + 255, + 128, + 5, + 255, + 128, + 50, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 363, + 10, + 1, + 128, + 'Mayfair Maize', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 128, + 0, + 32, + 128, + 0, + 199, + 128, + 0, + 5, + 128, + 0, + 180, + 128, + 0, + 23, + 128, + 0, + 211, + 128, + 0, + 16, + 128, + 0, + 183, + 40, + 20, + 19, + 128, + 0, + 197, + 40, + 137, + 255, + 128, + 32, + 255, + 40, + 137, + 255, + 128, + 32, + 255, + 40, + 137, + 255, + 128, + 32, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 364, + 10, + 1, + 128, + 'Limelight Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 128, + 0, + 32, + 128, + 0, + 199, + 128, + 0, + 5, + 128, + 0, + 180, + 128, + 0, + 23, + 128, + 0, + 211, + 128, + 0, + 16, + 128, + 0, + 183, + 40, + 20, + 19, + 128, + 0, + 197, + 54, + 104, + 120, + 128, + 0, + 235, + 54, + 104, + 120, + 128, + 0, + 235, + 54, + 104, + 120, + 128, + 0, + 235, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 365, + 10, + 1, + 128, + 'Palladium Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66gtotin', + 30, + 19, + 255, + 128, + 0, + 201, + 40, + 20, + 255, + 128, + 0, + 239, + 40, + 13, + 255, + 128, + 0, + 239, + 30, + 35, + 255, + 128, + 0, + 190, + 40, + 20, + 19, + 128, + 0, + 197, + 128, + 24, + 96, + 128, + 1, + 244, + 128, + 24, + 96, + 128, + 1, + 244, + 128, + 24, + 96, + 128, + 1, + 244, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 366, + 10, + 1, + 129, + 'Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 17, + 122, + 255, + 128, + 15, + 253, + 24, + 255, + 255, + 128, + 15, + 253, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 28, + 255, + 255, + 128, + 15, + 253, + 37, + 255, + 255, + 128, + 17, + 255, + 15, + 255, + 255, + 128, + 23, + 253, + 0, + 'Factory', + 'As per 69 GTO CSV, but this color does not appear in the reference material for the car.' + ), + ( + 367, + 10, + 1, + 129, + 'Warwick Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 142, + 129, + 167, + 128, + 6, + 229, + 142, + 142, + 167, + 128, + 6, + 208, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 14, + 128, + 0, + 215, + 30, + 10, + 19, + 128, + 0, + 175, + 142, + 88, + 167, + 128, + 6, + 212, + 142, + 5, + 167, + 128, + 6, + 240, + 142, + 255, + 167, + 128, + 6, + 201, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 368, + 10, + 1, + 129, + 'Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 249, + 79, + 61, + 128, + 0, + 229, + 11, + 255, + 255, + 128, + 1, + 233, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 74, + 142, + 128, + 0, + 241, + 23, + 255, + 255, + 128, + 17, + 255, + 37, + 255, + 255, + 128, + 17, + 255, + 249, + 255, + 61, + 128, + 0, + 198, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 369, + 10, + 1, + 129, + 'Liberty Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 144, + 69, + 58, + 128, + 0, + 208, + 142, + 129, + 167, + 128, + 6, + 211, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 142, + 101, + 167, + 128, + 6, + 236, + 142, + 5, + 167, + 128, + 6, + 240, + 144, + 255, + 58, + 128, + 0, + 180, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 370, + 10, + 1, + 129, + 'Matador Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 2, + 69, + 144, + 128, + 0, + 227, + 15, + 255, + 255, + 128, + 17, + 255, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 23, + 255, + 255, + 128, + 17, + 255, + 37, + 255, + 255, + 128, + 17, + 255, + 2, + 255, + 144, + 128, + 0, + 227, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 371, + 10, + 1, + 129, + 'Antique Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 31, + 64, + 182, + 128, + 0, + 239, + 26, + 169, + 182, + 128, + 0, + 232, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 26, + 169, + 182, + 128, + 0, + 232, + 26, + 169, + 182, + 128, + 0, + 232, + 26, + 169, + 182, + 128, + 0, + 232, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 372, + 10, + 1, + 129, + 'Champagne', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 34, + 45, + 73, + 128, + 0, + 231, + 34, + 91, + 105, + 128, + 0, + 212, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 30, + 36, + 145, + 128, + 0, + 224, + 30, + 36, + 145, + 128, + 0, + 224, + 30, + 36, + 145, + 128, + 0, + 224, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 373, + 10, + 1, + 129, + 'Starlight Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 30, + 10, + 5, + 154, + 0, + 192, + 2, + 255, + 255, + 128, + 0, + 195, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 1, + 255, + 255, + 128, + 0, + 237, + 1, + 255, + 255, + 128, + 26, + 255, + 30, + 10, + 5, + 154, + 0, + 155, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 374, + 10, + 1, + 129, + 'Windward Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 147, + 41, + 74, + 128, + 0, + 224, + 134, + 186, + 74, + 128, + 0, + 198, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 134, + 186, + 74, + 128, + 0, + 198, + 134, + 186, + 74, + 128, + 0, + 198, + 134, + 186, + 74, + 128, + 0, + 198, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 375, + 10, + 1, + 129, + 'Goldenrod Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 37, + 62, + 255, + 128, + 18, + 255, + 28, + 255, + 255, + 128, + 26, + 225, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 24, + 255, + 255, + 128, + 26, + 255, + 18, + 255, + 255, + 128, + 26, + 255, + 31, + 255, + 255, + 128, + 17, + 255, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 376, + 10, + 1, + 129, + 'Verdoro Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 103, + 41, + 28, + 154, + 0, + 206, + 60, + 255, + 255, + 128, + 1, + 214, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 47, + 255, + 255, + 128, + 1, + 244, + 37, + 255, + 255, + 128, + 17, + 255, + 69, + 125, + 28, + 154, + 0, + 176, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 377, + 10, + 1, + 129, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 128, + 5, + 255, + 128, + 14, + 255, + 2, + 73, + 255, + 128, + 19, + 225, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 2, + 146, + 255, + 128, + 19, + 255, + 2, + 255, + 255, + 128, + 19, + 255, + 47, + 11, + 255, + 128, + 27, + 255, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 378, + 10, + 1, + 129, + 'Crystal Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 121, + 44, + 71, + 128, + 0, + 218, + 121, + 255, + 71, + 128, + 0, + 205, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 14, + 128, + 0, + 215, + 30, + 10, + 19, + 128, + 0, + 175, + 121, + 255, + 71, + 128, + 0, + 205, + 121, + 255, + 71, + 128, + 0, + 205, + 121, + 255, + 71, + 128, + 0, + 205, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 379, + 10, + 1, + 129, + 'Limelight Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 50, + 45, + 95, + 128, + 0, + 229, + 50, + 108, + 95, + 128, + 0, + 211, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 50, + 108, + 95, + 128, + 0, + 211, + 50, + 108, + 95, + 128, + 0, + 211, + 50, + 108, + 95, + 128, + 0, + 211, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 380, + 10, + 1, + 129, + 'Carousel Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 2, + 77, + 255, + 128, + 0, + 245, + 13, + 255, + 255, + 128, + 9, + 255, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 22, + 255, + 255, + 128, + 9, + 255, + 32, + 255, + 255, + 128, + 9, + 255, + 2, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 381, + 10, + 1, + 129, + 'Paladium Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtotin', + 128, + 15, + 94, + 128, + 0, + 237, + 32, + 73, + 255, + 128, + 0, + 237, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 32, + 142, + 255, + 128, + 0, + 240, + 32, + 255, + 255, + 128, + 9, + 255, + 128, + 15, + 94, + 128, + 0, + 228, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 382, + 10, + 1, + 130, + 'Buccaneer Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 6, + 77, + 255, + 128, + 0, + 242, + 26, + 255, + 203, + 128, + 0, + 255, + 18, + 255, + 203, + 128, + 27, + 255, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 14, + 255, + 203, + 128, + 27, + 255, + 10, + 255, + 203, + 128, + 9, + 255, + 6, + 255, + 255, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 383, + 10, + 1, + 130, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 128, + 0, + 255, + 128, + 1, + 254, + 159, + 255, + 121, + 128, + 1, + 250, + 154, + 189, + 161, + 128, + 9, + 255, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 154, + 163, + 184, + 128, + 23, + 255, + 154, + 100, + 184, + 128, + 32, + 255, + 128, + 0, + 255, + 128, + 14, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 384, + 10, + 1, + 130, + 'Brewster Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 107, + 39, + 28, + 128, + 0, + 211, + 109, + 255, + 80, + 128, + 0, + 244, + 109, + 255, + 80, + 128, + 0, + 227, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 109, + 255, + 80, + 128, + 0, + 212, + 109, + 255, + 80, + 128, + 0, + 193, + 107, + 255, + 28, + 138, + 0, + 168, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 385, + 10, + 1, + 130, + 'Starlight Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 128, + 0, + 1, + 82, + 0, + 206, + 33, + 236, + 203, + 128, + 0, + 253, + 28, + 236, + 203, + 128, + 0, + 241, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 23, + 236, + 203, + 128, + 0, + 245, + 23, + 236, + 203, + 128, + 0, + 206, + 128, + 0, + 1, + 82, + 0, + 156, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 386, + 10, + 1, + 130, + 'Windward Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 135, + 78, + 77, + 158, + 0, + 218, + 135, + 40, + 77, + 158, + 0, + 222, + 135, + 40, + 77, + 158, + 0, + 231, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 135, + 27, + 77, + 158, + 0, + 241, + 135, + 125, + 77, + 158, + 0, + 223, + 135, + 250, + 77, + 158, + 0, + 182, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 387, + 10, + 1, + 130, + 'Palladium Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 128, + 0, + 195, + 148, + 0, + 232, + 18, + 255, + 203, + 128, + 0, + 255, + 10, + 255, + 203, + 128, + 0, + 241, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 2, + 255, + 203, + 128, + 1, + 220, + 2, + 173, + 203, + 128, + 1, + 244, + 128, + 13, + 122, + 148, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 388, + 10, + 1, + 130, + 'Goldenrod Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 31, + 146, + 255, + 128, + 5, + 255, + 31, + 50, + 255, + 128, + 0, + 240, + 31, + 50, + 255, + 128, + 0, + 218, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 31, + 133, + 255, + 128, + 0, + 218, + 31, + 239, + 255, + 128, + 0, + 231, + 31, + 255, + 255, + 128, + 11, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 389, + 10, + 1, + 130, + 'Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 250, + 79, + 45, + 128, + 0, + 222, + 33, + 236, + 203, + 128, + 0, + 253, + 28, + 236, + 203, + 128, + 0, + 241, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 23, + 236, + 203, + 128, + 0, + 245, + 23, + 236, + 203, + 128, + 0, + 206, + 250, + 255, + 45, + 128, + 0, + 172, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 390, + 10, + 1, + 130, + 'Midnight Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73tratin', + 150, + 53, + 54, + 152, + 0, + 210, + 33, + 236, + 203, + 128, + 0, + 253, + 28, + 236, + 203, + 128, + 0, + 241, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 23, + 236, + 203, + 128, + 0, + 245, + 23, + 236, + 203, + 128, + 0, + 206, + 150, + 255, + 54, + 152, + 0, + 185, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 391, + 10, + 1, + 131, + 'Matador Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 0, + 41, + 255, + 128, + 0, + 255, + 128, + 0, + 156, + 128, + 0, + 218, + 0, + 120, + 255, + 128, + 18, + 255, + 26, + 56, + 99, + 128, + 0, + 250, + 26, + 56, + 99, + 128, + 0, + 250, + 126, + 7, + 255, + 128, + 31, + 255, + 0, + 255, + 255, + 128, + 0, + 255, + 0, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 392, + 10, + 1, + 131, + 'Black Mink', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 20, + 7, + 69, + 128, + 0, + 214, + 128, + 0, + 156, + 128, + 0, + 218, + 20, + 7, + 16, + 128, + 0, + 152, + 10, + 10, + 10, + 128, + 0, + 246, + 10, + 10, + 10, + 128, + 0, + 246, + 20, + 7, + 16, + 128, + 0, + 152, + 0, + 255, + 255, + 128, + 0, + 255, + 20, + 7, + 16, + 128, + 0, + 152, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 393, + 10, + 1, + 131, + 'Beale St. Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 156, + 48, + 134, + 128, + 0, + 233, + 128, + 0, + 156, + 128, + 0, + 218, + 151, + 176, + 134, + 128, + 0, + 210, + 26, + 32, + 206, + 128, + 22, + 255, + 26, + 32, + 206, + 128, + 22, + 255, + 151, + 176, + 134, + 128, + 0, + 210, + 151, + 5, + 134, + 128, + 0, + 229, + 151, + 176, + 134, + 128, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 394, + 10, + 1, + 131, + 'Hunter Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 58, + 31, + 75, + 128, + 0, + 224, + 128, + 0, + 156, + 128, + 0, + 218, + 86, + 133, + 75, + 128, + 0, + 202, + 26, + 56, + 99, + 128, + 0, + 250, + 26, + 56, + 99, + 128, + 0, + 250, + 86, + 133, + 75, + 128, + 0, + 202, + 86, + 133, + 75, + 128, + 0, + 202, + 86, + 133, + 75, + 128, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 395, + 10, + 1, + 131, + 'Pompei Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 34, + 150, + 255, + 128, + 26, + 255, + 128, + 0, + 156, + 128, + 0, + 218, + 34, + 255, + 255, + 108, + 26, + 255, + 26, + 56, + 99, + 128, + 0, + 250, + 26, + 56, + 99, + 128, + 0, + 250, + 34, + 255, + 255, + 108, + 26, + 255, + 7, + 7, + 14, + 128, + 0, + 171, + 34, + 255, + 255, + 108, + 26, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 396, + 10, + 1, + 131, + 'Frost White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 126, + 7, + 255, + 128, + 1, + 253, + 128, + 0, + 156, + 128, + 0, + 218, + 126, + 7, + 255, + 103, + 31, + 255, + 10, + 10, + 10, + 128, + 0, + 246, + 10, + 10, + 10, + 128, + 0, + 246, + 126, + 7, + 255, + 103, + 31, + 255, + 7, + 7, + 14, + 128, + 0, + 171, + 126, + 7, + 255, + 103, + 31, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 397, + 10, + 1, + 131, + 'Butternut Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 23, + 50, + 150, + 128, + 0, + 244, + 128, + 0, + 156, + 128, + 0, + 218, + 23, + 175, + 150, + 128, + 0, + 222, + 10, + 10, + 10, + 128, + 0, + 246, + 10, + 10, + 10, + 128, + 0, + 246, + 23, + 175, + 150, + 128, + 0, + 222, + 7, + 7, + 14, + 128, + 0, + 171, + 23, + 175, + 150, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 398, + 10, + 1, + 131, + 'Alamosa Aqua', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 120, + 22, + 74, + 128, + 0, + 235, + 128, + 0, + 156, + 128, + 0, + 218, + 120, + 90, + 74, + 128, + 1, + 248, + 26, + 32, + 206, + 128, + 22, + 255, + 26, + 32, + 206, + 128, + 22, + 255, + 126, + 7, + 255, + 128, + 31, + 255, + 120, + 126, + 74, + 128, + 0, + 214, + 120, + 126, + 74, + 128, + 0, + 214, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 399, + 10, + 1, + 131, + 'Bittersweet Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 18, + 126, + 255, + 128, + 27, + 255, + 128, + 0, + 156, + 128, + 0, + 218, + 18, + 231, + 255, + 128, + 1, + 207, + 128, + 0, + 2, + 128, + 0, + 239, + 128, + 0, + 2, + 128, + 0, + 239, + 7, + 7, + 14, + 128, + 0, + 171, + 18, + 231, + 255, + 128, + 19, + 246, + 18, + 231, + 255, + 128, + 19, + 246, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 400, + 10, + 1, + 131, + 'Castillian Grey', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 15, + 10, + 109, + 128, + 0, + 240, + 128, + 0, + 156, + 128, + 0, + 218, + 15, + 10, + 109, + 128, + 0, + 248, + 128, + 0, + 2, + 128, + 0, + 239, + 128, + 0, + 2, + 128, + 0, + 239, + 126, + 7, + 255, + 128, + 31, + 255, + 15, + 10, + 109, + 128, + 0, + 229, + 15, + 10, + 109, + 128, + 0, + 229, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 401, + 10, + 1, + 131, + 'Willow Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 75, + 49, + 163, + 128, + 1, + 253, + 128, + 0, + 156, + 128, + 0, + 218, + 75, + 100, + 163, + 128, + 1, + 242, + 26, + 56, + 99, + 128, + 0, + 250, + 26, + 56, + 99, + 128, + 0, + 250, + 75, + 100, + 163, + 128, + 1, + 242, + 75, + 100, + 163, + 128, + 1, + 242, + 75, + 100, + 163, + 128, + 1, + 242, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 402, + 10, + 1, + 131, + 'Regatta Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 170, + 77, + 82, + 128, + 10, + 228, + 128, + 0, + 156, + 128, + 0, + 218, + 146, + 255, + 82, + 128, + 10, + 199, + 128, + 0, + 2, + 128, + 0, + 239, + 128, + 0, + 2, + 128, + 0, + 239, + 146, + 255, + 82, + 128, + 10, + 199, + 146, + 255, + 82, + 128, + 10, + 199, + 146, + 255, + 82, + 128, + 10, + 199, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 403, + 10, + 1, + 131, + 'Big Bad Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 84, + 70, + 255, + 128, + 0, + 249, + 66, + 255, + 255, + 128, + 0, + 253, + 66, + 255, + 255, + 128, + 0, + 253, + 26, + 56, + 99, + 128, + 0, + 255, + 26, + 56, + 99, + 128, + 0, + 250, + 66, + 255, + 255, + 128, + 0, + 253, + 7, + 7, + 14, + 128, + 0, + 171, + 66, + 255, + 255, + 128, + 0, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 404, + 10, + 1, + 131, + 'Big Bad Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 16, + 113, + 255, + 128, + 23, + 255, + 16, + 254, + 255, + 113, + 23, + 255, + 16, + 254, + 255, + 113, + 23, + 255, + 10, + 10, + 10, + 128, + 0, + 246, + 10, + 10, + 10, + 128, + 0, + 246, + 16, + 254, + 255, + 113, + 23, + 255, + 7, + 7, + 14, + 128, + 0, + 171, + 16, + 254, + 255, + 113, + 23, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 405, + 10, + 1, + 131, + 'Big Bad Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 170, + 101, + 205, + 128, + 0, + 255, + 158, + 255, + 205, + 128, + 0, + 245, + 158, + 255, + 205, + 128, + 0, + 245, + 10, + 10, + 10, + 128, + 0, + 246, + 10, + 10, + 10, + 128, + 0, + 246, + 158, + 255, + 205, + 128, + 0, + 245, + 7, + 7, + 14, + 128, + 0, + 171, + 158, + 255, + 205, + 128, + 0, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 406, + 10, + 1, + 132, + 'Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 18, + 255, + 255, + 128, + 37, + 248, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 2, + 163, + 22, + 105, + 255, + 128, + 18, + 248, + 18, + 255, + 255, + 128, + 37, + 248, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 407, + 10, + 1, + 132, + 'Mountain Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 69, + 99, + 125, + 128, + 0, + 224, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 2, + 163, + 69, + 37, + 125, + 128, + 0, + 240, + 69, + 99, + 125, + 128, + 0, + 224, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 408, + 10, + 1, + 132, + 'Lime Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 88, + 244, + 255, + 128, + 1, + 255, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 2, + 163, + 88, + 77, + 255, + 128, + 1, + 255, + 88, + 244, + 255, + 128, + 1, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 409, + 10, + 1, + 132, + 'Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 31, + 253, + 255, + 97, + 49, + 255, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 2, + 163, + 39, + 95, + 255, + 128, + 22, + 255, + 31, + 253, + 255, + 97, + 49, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 410, + 10, + 1, + 132, + 'Daytona Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 152, + 233, + 147, + 128, + 0, + 246, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 16, + 253, + 170, + 83, + 147, + 128, + 0, + 246, + 152, + 233, + 147, + 128, + 0, + 246, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 411, + 10, + 1, + 132, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 1, + 255, + 255, + 128, + 0, + 255, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 2, + 163, + 1, + 95, + 255, + 128, + 0, + 255, + 1, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 412, + 10, + 1, + 132, + 'Green Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 117, + 62, + 77, + 128, + 0, + 215, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 117, + 62, + 77, + 128, + 0, + 215, + 117, + 31, + 77, + 128, + 0, + 233, + 117, + 62, + 77, + 128, + 0, + 215, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 413, + 10, + 1, + 132, + 'Fire Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 27, + 194, + 211, + 128, + 13, + 241, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 27, + 194, + 211, + 128, + 13, + 241, + 27, + 54, + 211, + 128, + 13, + 241, + 27, + 194, + 211, + 128, + 13, + 241, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 414, + 10, + 1, + 132, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 30, + 5, + 19, + 128, + 0, + 185, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 1, + 255, + 116, + 128, + 0, + 233, + 30, + 5, + 19, + 128, + 0, + 218, + 30, + 5, + 19, + 128, + 0, + 165, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 415, + 10, + 1, + 132, + 'Purple', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 225, + 255, + 62, + 128, + 0, + 215, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 2, + 163, + 225, + 60, + 62, + 128, + 0, + 231, + 225, + 255, + 62, + 128, + 0, + 215, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 416, + 10, + 1, + 132, + 'Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 35, + 13, + 100, + 128, + 0, + 229, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 22, + 16, + 1, + 128, + 2, + 163, + 35, + 13, + 100, + 128, + 0, + 229, + 35, + 13, + 100, + 128, + 0, + 229, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 417, + 10, + 1, + 132, + 'Copper', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 15, + 169, + 52, + 128, + 16, + 208, + 23, + 1, + 1, + 128, + 20, + 141, + 26, + 10, + 13, + 128, + 5, + 255, + 30, + 7, + 22, + 128, + 0, + 245, + 40, + 20, + 19, + 128, + 20, + 156, + 15, + 169, + 52, + 128, + 16, + 208, + 15, + 52, + 52, + 128, + 16, + 208, + 15, + 169, + 52, + 128, + 16, + 208, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 418, + 10, + 1, + 132, + 'White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69chatin', + 1, + 253, + 255, + 128, + 0, + 178, + 1, + 253, + 255, + 128, + 0, + 178, + 1, + 253, + 255, + 128, + 0, + 255, + 1, + 253, + 255, + 128, + 0, + 255, + 40, + 20, + 19, + 128, + 20, + 156, + 0, + 255, + 255, + 128, + 13, + 246, + 44, + 9, + 255, + 128, + 2, + 249, + 44, + 9, + 255, + 128, + 39, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 419, + 10, + 1, + 133, + 'Lime Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 66, + 78, + 48, + 128, + 0, + 231, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 66, + 143, + 48, + 128, + 0, + 211, + 1, + 0, + 2, + 128, + 0, + 182, + 66, + 143, + 48, + 128, + 0, + 211, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 420, + 10, + 1, + 133, + 'Blue Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 147, + 79, + 101, + 128, + 0, + 239, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 147, + 255, + 101, + 128, + 0, + 223, + 1, + 0, + 2, + 128, + 0, + 182, + 147, + 255, + 101, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 421, + 10, + 1, + 133, + 'Scorch Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 5, + 124, + 165, + 128, + 0, + 245, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 5, + 255, + 165, + 128, + 0, + 225, + 1, + 0, + 2, + 128, + 0, + 182, + 5, + 255, + 165, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 422, + 10, + 1, + 133, + 'Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 189, + 88, + 52, + 128, + 0, + 239, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 184, + 255, + 52, + 128, + 0, + 219, + 1, + 0, + 2, + 128, + 0, + 182, + 184, + 255, + 52, + 128, + 0, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 423, + 10, + 1, + 133, + 'Frosted Teal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 134, + 73, + 62, + 128, + 0, + 227, + 134, + 255, + 62, + 128, + 0, + 242, + 30, + 15, + 255, + 128, + 10, + 255, + 30, + 15, + 255, + 128, + 27, + 255, + 30, + 10, + 203, + 128, + 33, + 255, + 134, + 2, + 219, + 128, + 23, + 255, + 134, + 255, + 62, + 128, + 0, + 207, + 134, + 255, + 62, + 128, + 0, + 207, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 424, + 10, + 1, + 133, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 20, + 137, + 181, + 82, + 36, + 253, + 20, + 255, + 231, + 52, + 49, + 253, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 20, + 255, + 231, + 52, + 49, + 253, + 1, + 0, + 2, + 128, + 0, + 182, + 20, + 255, + 231, + 52, + 49, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 425, + 10, + 1, + 133, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 66, + 47, + 33, + 128, + 0, + 236, + 66, + 143, + 33, + 128, + 0, + 192, + 30, + 107, + 62, + 128, + 0, + 241, + 30, + 107, + 62, + 128, + 0, + 254, + 30, + 10, + 10, + 128, + 0, + 206, + 48, + 80, + 164, + 128, + 1, + 239, + 66, + 143, + 33, + 128, + 0, + 192, + 66, + 143, + 33, + 128, + 0, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 426, + 10, + 1, + 133, + 'Ice Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 134, + 43, + 109, + 128, + 0, + 254, + 134, + 163, + 109, + 94, + 13, + 244, + 30, + 15, + 255, + 128, + 10, + 255, + 30, + 15, + 255, + 128, + 27, + 255, + 30, + 10, + 203, + 128, + 33, + 255, + 134, + 2, + 219, + 128, + 23, + 255, + 134, + 163, + 109, + 94, + 13, + 244, + 134, + 163, + 109, + 94, + 13, + 244, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 427, + 10, + 1, + 133, + 'Limelight Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 83, + 108, + 202, + 128, + 0, + 250, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 73, + 205, + 202, + 128, + 6, + 239, + 1, + 0, + 2, + 128, + 0, + 182, + 73, + 205, + 202, + 128, + 6, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 428, + 10, + 1, + 133, + 'Platinum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 26, + 28, + 135, + 128, + 0, + 249, + 60, + 56, + 135, + 128, + 0, + 233, + 30, + 107, + 62, + 128, + 0, + 241, + 30, + 107, + 62, + 128, + 0, + 254, + 30, + 10, + 10, + 128, + 0, + 206, + 1, + 0, + 2, + 128, + 0, + 182, + 60, + 56, + 135, + 128, + 0, + 233, + 60, + 56, + 135, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 429, + 10, + 1, + 133, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 9, + 7, + 1, + 128, + 0, + 232, + 0, + 255, + 248, + 128, + 24, + 253, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 0, + 255, + 248, + 128, + 24, + 253, + 9, + 7, + 1, + 128, + 0, + 188, + 9, + 7, + 1, + 128, + 0, + 188, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 430, + 10, + 1, + 133, + 'Sahara Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 27, + 88, + 96, + 128, + 0, + 249, + 27, + 161, + 96, + 128, + 0, + 254, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 1, + 0, + 2, + 128, + 0, + 182, + 27, + 161, + 96, + 128, + 0, + 231, + 27, + 161, + 96, + 128, + 0, + 231, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 431, + 10, + 1, + 133, + 'Burnt Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 13, + 83, + 122, + 128, + 0, + 237, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 107, + 62, + 128, + 0, + 241, + 30, + 107, + 62, + 128, + 0, + 254, + 30, + 10, + 10, + 128, + 0, + 206, + 13, + 176, + 122, + 128, + 0, + 229, + 1, + 0, + 2, + 128, + 0, + 182, + 13, + 176, + 122, + 128, + 0, + 229, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 432, + 10, + 1, + 133, + 'Walnut', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 20, + 66, + 58, + 128, + 0, + 236, + 20, + 137, + 58, + 128, + 0, + 239, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 48, + 80, + 164, + 128, + 1, + 239, + 20, + 137, + 58, + 128, + 0, + 211, + 20, + 137, + 58, + 128, + 0, + 211, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 433, + 10, + 1, + 133, + 'Rally Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 0, + 139, + 248, + 128, + 24, + 253, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 0, + 255, + 248, + 97, + 13, + 253, + 1, + 0, + 2, + 128, + 0, + 182, + 0, + 255, + 248, + 97, + 13, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 434, + 10, + 1, + 133, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 30, + 47, + 255, + 87, + 45, + 255, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 30, + 47, + 255, + 87, + 45, + 255, + 1, + 0, + 2, + 128, + 0, + 182, + 30, + 47, + 255, + 87, + 45, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 435, + 10, + 1, + 133, + 'Sunfire Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 38, + 141, + 255, + 128, + 9, + 255, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 255, + 128, + 10, + 255, + 30, + 15, + 255, + 128, + 27, + 255, + 30, + 10, + 203, + 128, + 33, + 255, + 32, + 219, + 255, + 88, + 44, + 255, + 1, + 0, + 2, + 128, + 0, + 182, + 32, + 219, + 255, + 88, + 44, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 436, + 10, + 1, + 133, + 'Yellow Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69runtin', + 32, + 87, + 210, + 128, + 35, + 227, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 32, + 189, + 210, + 128, + 35, + 249, + 1, + 0, + 2, + 128, + 0, + 182, + 32, + 189, + 210, + 128, + 35, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 437, + 10, + 1, + 134, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 9, + 255, + 255, + 92, + 44, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 438, + 10, + 1, + 134, + 'Lime Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 47, + 163, + 165, + 128, + 1, + 250, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 439, + 10, + 1, + 134, + 'Jamaica Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 148, + 203, + 101, + 141, + 0, + 229, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 440, + 10, + 1, + 134, + 'Frosted Teal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 138, + 163, + 73, + 128, + 0, + 235, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 441, + 10, + 1, + 134, + 'Blue Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 156, + 208, + 189, + 128, + 0, + 253, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 442, + 10, + 1, + 134, + 'Citron Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 49, + 97, + 139, + 128, + 0, + 239, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 443, + 10, + 1, + 134, + 'Ice Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 142, + 126, + 112, + 128, + 0, + 240, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 444, + 10, + 1, + 134, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 96, + 176, + 48, + 148, + 0, + 203, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 445, + 10, + 1, + 134, + 'Sassy Grass Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 90, + 235, + 255, + 128, + 16, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 446, + 10, + 1, + 134, + 'Tor-Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 255, + 133, + 15, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 447, + 10, + 1, + 134, + 'Burnt Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 13, + 210, + 146, + 128, + 0, + 248, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 448, + 10, + 1, + 134, + 'Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 27, + 45, + 120, + 101, + 16, + 254, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 449, + 10, + 1, + 134, + 'Scorch Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 82, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 450, + 10, + 1, + 134, + 'Burnt Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 19, + 163, + 75, + 128, + 0, + 220, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 451, + 10, + 1, + 134, + 'In-Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 222, + 255, + 74, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 452, + 10, + 1, + 134, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 1, + 215, + 48, + 128, + 7, + 255, + 1, + 215, + 48, + 128, + 0, + 245, + 1, + 215, + 48, + 128, + 0, + 233, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 128, + 3, + 255, + 97, + 45, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 453, + 10, + 1, + 134, + 'Lemon Twist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 33, + 255, + 255, + 128, + 34, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 454, + 10, + 1, + 134, + 'Citron Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 28, + 172, + 255, + 116, + 27, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 455, + 10, + 1, + 134, + 'Black Velvet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70vcutin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 7, + 7, + 0, + 128, + 0, + 178, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 456, + 10, + 1, + 135, + 'Tahitian Walnut', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 19, + 62, + 84, + 128, + 0, + 239, + 19, + 177, + 47, + 143, + 0, + 194, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 19, + 177, + 47, + 143, + 0, + 194, + 19, + 177, + 47, + 143, + 0, + 194, + 19, + 177, + 47, + 143, + 0, + 194, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 457, + 10, + 1, + 135, + 'Amber Sherwood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 58, + 35, + 77, + 128, + 0, + 233, + 122, + 5, + 184, + 128, + 0, + 246, + 22, + 134, + 45, + 128, + 0, + 241, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 58, + 147, + 77, + 151, + 0, + 205, + 20, + 7, + 6, + 128, + 0, + 165, + 58, + 147, + 77, + 151, + 0, + 205, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 458, + 10, + 1, + 135, + 'Lime Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 50, + 41, + 135, + 128, + 0, + 240, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 45, + 147, + 135, + 135, + 0, + 232, + 20, + 7, + 6, + 128, + 0, + 165, + 45, + 147, + 135, + 135, + 0, + 232, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 459, + 10, + 1, + 135, + 'Bahama Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 28, + 60, + 208, + 128, + 0, + 249, + 122, + 5, + 184, + 128, + 0, + 246, + 45, + 37, + 246, + 128, + 9, + 255, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 26, + 233, + 208, + 128, + 0, + 239, + 20, + 7, + 6, + 128, + 0, + 165, + 26, + 233, + 208, + 128, + 0, + 239, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 460, + 10, + 1, + 135, + 'Rallye Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 0, + 97, + 255, + 128, + 0, + 244, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 0, + 255, + 255, + 128, + 0, + 245, + 20, + 7, + 6, + 128, + 0, + 165, + 0, + 255, + 255, + 128, + 0, + 245, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 461, + 10, + 1, + 135, + 'In Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 197, + 50, + 87, + 128, + 0, + 236, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 186, + 177, + 87, + 156, + 0, + 203, + 20, + 7, + 6, + 128, + 0, + 165, + 186, + 177, + 87, + 156, + 0, + 203, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 462, + 10, + 1, + 135, + 'Avocado', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 80, + 35, + 24, + 128, + 0, + 218, + 70, + 192, + 24, + 103, + 0, + 186, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 70, + 192, + 24, + 103, + 0, + 186, + 70, + 192, + 24, + 103, + 0, + 186, + 70, + 192, + 24, + 103, + 0, + 186, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 463, + 10, + 1, + 135, + 'True Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 147, + 48, + 109, + 143, + 0, + 222, + 142, + 255, + 109, + 143, + 0, + 212, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 142, + 255, + 109, + 143, + 0, + 212, + 142, + 255, + 109, + 143, + 0, + 212, + 142, + 255, + 109, + 143, + 0, + 212, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 464, + 10, + 1, + 135, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 40, + 19, + 255, + 88, + 36, + 255, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 40, + 19, + 255, + 88, + 36, + 255, + 20, + 7, + 6, + 128, + 0, + 165, + 40, + 19, + 255, + 88, + 36, + 255, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 465, + 10, + 1, + 135, + 'Coral Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 131, + 62, + 124, + 146, + 0, + 229, + 131, + 214, + 57, + 143, + 0, + 192, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 131, + 214, + 57, + 143, + 0, + 192, + 131, + 214, + 57, + 143, + 0, + 192, + 131, + 214, + 57, + 143, + 0, + 192, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 466, + 10, + 1, + 135, + 'Sandpebble Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 27, + 35, + 108, + 128, + 0, + 246, + 24, + 118, + 176, + 133, + 0, + 240, + 45, + 37, + 246, + 128, + 9, + 255, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 24, + 118, + 176, + 133, + 0, + 240, + 24, + 118, + 176, + 133, + 0, + 240, + 24, + 118, + 176, + 133, + 0, + 240, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 467, + 10, + 1, + 135, + 'Aztec Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 27, + 82, + 160, + 128, + 0, + 254, + 23, + 215, + 160, + 128, + 0, + 252, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 23, + 215, + 160, + 128, + 0, + 252, + 23, + 215, + 160, + 128, + 0, + 252, + 23, + 215, + 160, + 128, + 0, + 252, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 468, + 10, + 1, + 135, + 'Winchester Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 136, + 24, + 202, + 116, + 9, + 255, + 136, + 24, + 202, + 116, + 5, + 229, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 136, + 24, + 202, + 116, + 5, + 229, + 20, + 7, + 6, + 128, + 0, + 165, + 136, + 24, + 202, + 116, + 5, + 229, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 469, + 10, + 1, + 135, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 14, + 69, + 255, + 97, + 19, + 255, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 18, + 255, + 255, + 94, + 28, + 255, + 20, + 7, + 6, + 128, + 0, + 165, + 18, + 255, + 255, + 94, + 28, + 255, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 470, + 10, + 1, + 135, + 'Burnished Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 254, + 48, + 79, + 128, + 0, + 233, + 254, + 252, + 79, + 148, + 0, + 212, + 45, + 37, + 246, + 128, + 9, + 255, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 254, + 252, + 79, + 148, + 0, + 212, + 254, + 252, + 79, + 148, + 0, + 212, + 254, + 252, + 79, + 148, + 0, + 212, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 471, + 10, + 1, + 135, + 'Lemon Twist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 33, + 131, + 255, + 118, + 19, + 255, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 33, + 255, + 255, + 118, + 26, + 255, + 20, + 7, + 6, + 128, + 0, + 165, + 33, + 255, + 255, + 118, + 26, + 255, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 472, + 10, + 1, + 135, + 'Black Velvet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 37, + 10, + 1, + 73, + 1, + 239, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 37, + 10, + 1, + 69, + 1, + 194, + 37, + 10, + 1, + 69, + 1, + 194, + 37, + 10, + 1, + 69, + 1, + 194, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 473, + 10, + 1, + 135, + 'Autumn Bronze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71dustin', + 14, + 82, + 79, + 144, + 0, + 220, + 14, + 252, + 79, + 144, + 0, + 212, + 22, + 134, + 45, + 128, + 0, + 241, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 14, + 252, + 79, + 144, + 0, + 212, + 14, + 252, + 79, + 144, + 0, + 212, + 14, + 252, + 79, + 144, + 0, + 212, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 474, + 10, + 4, + 101, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '32forfla', + 179, + 230, + 240, + 128, + 0, + 255, + 179, + 230, + 240, + 128, + 0, + 255, + 179, + 230, + 240, + 128, + 0, + 255, + 179, + 230, + 240, + 128, + 0, + 255, + 179, + 230, + 240, + 128, + 0, + 255, + 179, + 230, + 240, + 128, + 0, + 255, + 179, + 230, + 240, + 128, + 0, + 255, + 179, + 230, + 240, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 475, + 10, + 5, + 101, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '32forsca', + 1, + 255, + 168, + 128, + 0, + 255, + 1, + 255, + 168, + 128, + 0, + 255, + 1, + 255, + 168, + 128, + 0, + 255, + 1, + 255, + 168, + 128, + 0, + 255, + 1, + 255, + 168, + 128, + 0, + 255, + 1, + 255, + 168, + 128, + 0, + 255, + 1, + 255, + 168, + 128, + 0, + 255, + 1, + 255, + 168, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 476, + 10, + 6, + 101, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '32fordec', + 28, + 196, + 245, + 128, + 0, + 255, + 28, + 196, + 245, + 128, + 0, + 255, + 28, + 196, + 245, + 128, + 0, + 255, + 28, + 196, + 245, + 128, + 0, + 255, + 28, + 196, + 245, + 128, + 0, + 255, + 28, + 196, + 245, + 128, + 0, + 255, + 28, + 196, + 245, + 128, + 0, + 255, + 28, + 196, + 245, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 477, + 10, + 7, + 101, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '32forrus', + 91, + 48, + 143, + 128, + 0, + 255, + 91, + 48, + 143, + 128, + 0, + 255, + 91, + 48, + 143, + 128, + 0, + 255, + 91, + 48, + 143, + 128, + 0, + 255, + 91, + 48, + 143, + 128, + 0, + 255, + 91, + 48, + 143, + 128, + 0, + 255, + 91, + 48, + 143, + 128, + 0, + 255, + 91, + 48, + 143, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 478, + 10, + 3, + 102, + 'Cop', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 99999999, + '40forcop', + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 479, + 10, + 4, + 102, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '40forfla', + 1, + 186, + 255, + 128, + 0, + 255, + 1, + 186, + 255, + 128, + 0, + 255, + 1, + 186, + 255, + 128, + 0, + 255, + 1, + 186, + 255, + 128, + 0, + 255, + 1, + 186, + 255, + 128, + 0, + 255, + 1, + 186, + 255, + 128, + 0, + 255, + 1, + 186, + 255, + 128, + 0, + 255, + 1, + 186, + 255, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 480, + 10, + 5, + 102, + 'Runnin'' Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '40forsca', + 196, + 184, + 224, + 128, + 0, + 255, + 196, + 184, + 224, + 128, + 0, + 255, + 196, + 184, + 224, + 128, + 0, + 255, + 196, + 184, + 224, + 128, + 0, + 255, + 196, + 184, + 224, + 128, + 0, + 255, + 196, + 184, + 224, + 128, + 0, + 255, + 196, + 184, + 224, + 128, + 0, + 255, + 196, + 184, + 224, + 128, + 0, + 255, + 0, + 'Dane Anderson', + 'I spent seven weeks on this, getting it just right for the ''40 Coupe. I hope you enjoy it.' + ), + ( + 481, + 10, + 6, + 102, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '40fordec', + 1, + 255, + 237, + 128, + 0, + 255, + 1, + 255, + 237, + 128, + 0, + 255, + 1, + 255, + 237, + 128, + 0, + 255, + 1, + 255, + 237, + 128, + 0, + 255, + 1, + 255, + 237, + 128, + 0, + 255, + 1, + 255, + 237, + 128, + 0, + 255, + 1, + 255, + 237, + 128, + 0, + 255, + 1, + 255, + 237, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 482, + 10, + 7, + 102, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '40forrus', + 38, + 112, + 92, + 128, + 0, + 255, + 38, + 112, + 92, + 128, + 0, + 255, + 38, + 112, + 92, + 128, + 0, + 255, + 38, + 112, + 92, + 128, + 0, + 255, + 38, + 112, + 92, + 128, + 0, + 255, + 38, + 112, + 92, + 128, + 0, + 255, + 38, + 112, + 92, + 128, + 0, + 255, + 38, + 112, + 92, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 483, + 10, + 4, + 103, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '53forfla', + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 252, + 161, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 484, + 10, + 5, + 103, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '53forsca', + 131, + 255, + 178, + 128, + 0, + 255, + 131, + 255, + 178, + 128, + 0, + 255, + 131, + 255, + 178, + 128, + 0, + 255, + 131, + 255, + 178, + 128, + 0, + 255, + 131, + 255, + 178, + 128, + 0, + 255, + 131, + 255, + 178, + 128, + 0, + 255, + 131, + 255, + 178, + 128, + 0, + 255, + 131, + 255, + 178, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 485, + 10, + 6, + 103, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '53fordec', + 152, + 173, + 196, + 128, + 0, + 255, + 152, + 173, + 196, + 128, + 0, + 255, + 152, + 173, + 196, + 128, + 0, + 255, + 152, + 173, + 196, + 128, + 0, + 255, + 152, + 173, + 196, + 128, + 0, + 255, + 152, + 173, + 196, + 128, + 0, + 255, + 152, + 173, + 196, + 128, + 0, + 255, + 152, + 173, + 196, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 486, + 10, + 7, + 103, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '53forrus', + 18, + 82, + 120, + 128, + 0, + 255, + 18, + 82, + 120, + 128, + 0, + 255, + 18, + 82, + 120, + 128, + 0, + 255, + 18, + 82, + 120, + 128, + 0, + 255, + 18, + 82, + 120, + 128, + 0, + 255, + 18, + 82, + 120, + 128, + 0, + 255, + 18, + 82, + 120, + 128, + 0, + 255, + 18, + 82, + 120, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 487, + 10, + 4, + 104, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57faifla', + 196, + 212, + 212, + 128, + 0, + 255, + 196, + 212, + 212, + 128, + 0, + 255, + 196, + 212, + 212, + 128, + 0, + 255, + 196, + 212, + 212, + 128, + 0, + 255, + 196, + 212, + 212, + 128, + 0, + 255, + 196, + 212, + 212, + 128, + 0, + 255, + 196, + 212, + 212, + 128, + 0, + 255, + 196, + 212, + 212, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 488, + 10, + 5, + 104, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57faisca', + 126, + 255, + 207, + 128, + 0, + 255, + 126, + 255, + 207, + 128, + 0, + 255, + 126, + 255, + 207, + 128, + 0, + 255, + 126, + 255, + 207, + 128, + 0, + 255, + 126, + 255, + 207, + 128, + 0, + 255, + 126, + 255, + 207, + 128, + 0, + 255, + 126, + 255, + 207, + 128, + 0, + 255, + 126, + 255, + 207, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 489, + 10, + 6, + 104, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57faidec', + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 255, + 245, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 490, + 10, + 7, + 104, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57fairus', + 23, + 48, + 224, + 128, + 0, + 255, + 23, + 48, + 224, + 128, + 0, + 255, + 23, + 48, + 224, + 128, + 0, + 255, + 23, + 48, + 224, + 128, + 0, + 255, + 23, + 48, + 224, + 128, + 0, + 255, + 23, + 48, + 224, + 128, + 0, + 255, + 23, + 48, + 224, + 128, + 0, + 255, + 23, + 48, + 224, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 491, + 10, + 4, + 105, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57ranfla', + 182, + 184, + 204, + 128, + 0, + 255, + 182, + 184, + 204, + 128, + 0, + 255, + 182, + 184, + 204, + 128, + 0, + 255, + 182, + 184, + 204, + 128, + 0, + 255, + 182, + 184, + 204, + 128, + 0, + 255, + 182, + 184, + 204, + 128, + 0, + 255, + 182, + 184, + 204, + 128, + 0, + 255, + 182, + 184, + 204, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 492, + 10, + 5, + 105, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57ransca', + 242, + 235, + 184, + 128, + 0, + 255, + 242, + 235, + 184, + 128, + 0, + 255, + 242, + 235, + 184, + 128, + 0, + 255, + 242, + 235, + 184, + 128, + 0, + 255, + 242, + 235, + 184, + 128, + 0, + 255, + 242, + 235, + 184, + 128, + 0, + 255, + 242, + 235, + 184, + 128, + 0, + 255, + 242, + 235, + 184, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 493, + 10, + 6, + 105, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57randec', + 148, + 227, + 237, + 128, + 0, + 255, + 148, + 227, + 237, + 128, + 0, + 255, + 148, + 227, + 237, + 128, + 0, + 255, + 148, + 227, + 237, + 128, + 0, + 255, + 148, + 227, + 237, + 128, + 0, + 255, + 148, + 227, + 237, + 128, + 0, + 255, + 148, + 227, + 237, + 128, + 0, + 255, + 148, + 227, + 237, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 494, + 10, + 7, + 105, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57ranrus', + 47, + 107, + 99, + 128, + 0, + 255, + 47, + 107, + 99, + 128, + 0, + 255, + 47, + 107, + 99, + 128, + 0, + 255, + 47, + 107, + 99, + 128, + 0, + 255, + 47, + 107, + 99, + 128, + 0, + 255, + 47, + 107, + 99, + 128, + 0, + 255, + 47, + 107, + 99, + 128, + 0, + 255, + 47, + 107, + 99, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 495, + 10, + 4, + 106, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57tbifla', + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 222, + 196, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 496, + 10, + 5, + 106, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57tbisca', + 188, + 255, + 222, + 128, + 0, + 255, + 188, + 255, + 222, + 128, + 0, + 255, + 188, + 255, + 222, + 128, + 0, + 255, + 188, + 255, + 222, + 128, + 0, + 255, + 188, + 255, + 222, + 128, + 0, + 255, + 188, + 255, + 222, + 128, + 0, + 255, + 188, + 255, + 222, + 128, + 0, + 255, + 188, + 255, + 222, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 497, + 10, + 6, + 106, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57tbidec', + 159, + 201, + 219, + 128, + 0, + 255, + 159, + 201, + 219, + 128, + 0, + 255, + 159, + 201, + 219, + 128, + 0, + 255, + 159, + 201, + 219, + 128, + 0, + 255, + 159, + 201, + 219, + 128, + 0, + 255, + 159, + 201, + 219, + 128, + 0, + 255, + 159, + 201, + 219, + 128, + 0, + 255, + 159, + 201, + 219, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 498, + 10, + 7, + 106, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57tbirus', + 147, + 107, + 130, + 128, + 0, + 255, + 147, + 107, + 130, + 128, + 0, + 255, + 147, + 107, + 130, + 128, + 0, + 255, + 147, + 107, + 130, + 128, + 0, + 255, + 147, + 107, + 130, + 128, + 0, + 255, + 147, + 107, + 130, + 128, + 0, + 255, + 147, + 107, + 130, + 128, + 0, + 255, + 147, + 107, + 130, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 499, + 10, + 4, + 107, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '63tbifla', + 111, + 92, + 189, + 128, + 0, + 255, + 111, + 92, + 189, + 128, + 0, + 255, + 111, + 92, + 189, + 128, + 0, + 255, + 111, + 92, + 189, + 128, + 0, + 255, + 111, + 92, + 189, + 128, + 0, + 255, + 111, + 92, + 189, + 128, + 0, + 255, + 111, + 92, + 189, + 128, + 0, + 255, + 111, + 92, + 189, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 500, + 10, + 5, + 107, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '63tbisca', + 191, + 199, + 255, + 128, + 0, + 255, + 191, + 199, + 255, + 128, + 0, + 255, + 191, + 199, + 255, + 128, + 0, + 255, + 191, + 199, + 255, + 128, + 0, + 255, + 191, + 199, + 255, + 128, + 0, + 255, + 191, + 199, + 255, + 128, + 0, + 255, + 191, + 199, + 255, + 128, + 0, + 255, + 191, + 199, + 255, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 501, + 10, + 6, + 107, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '63tbidec', + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 0, + 240, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 502, + 10, + 7, + 107, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '63tbirus', + 23, + 143, + 156, + 128, + 0, + 255, + 23, + 143, + 156, + 128, + 0, + 255, + 23, + 143, + 156, + 128, + 0, + 255, + 23, + 143, + 156, + 128, + 0, + 255, + 23, + 143, + 156, + 128, + 0, + 255, + 23, + 143, + 156, + 128, + 0, + 255, + 23, + 143, + 156, + 128, + 0, + 255, + 23, + 143, + 156, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 503, + 10, + 4, + 108, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64stafla', + 174, + 255, + 186, + 128, + 0, + 255, + 174, + 255, + 186, + 128, + 0, + 255, + 174, + 255, + 186, + 128, + 0, + 255, + 174, + 255, + 186, + 128, + 0, + 255, + 174, + 255, + 186, + 128, + 0, + 255, + 174, + 255, + 186, + 128, + 0, + 255, + 174, + 255, + 186, + 128, + 0, + 255, + 174, + 255, + 186, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 504, + 10, + 5, + 108, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64stasca', + 0, + 255, + 125, + 128, + 0, + 255, + 0, + 255, + 125, + 128, + 0, + 255, + 0, + 255, + 125, + 128, + 0, + 255, + 0, + 255, + 125, + 128, + 0, + 255, + 0, + 255, + 125, + 128, + 0, + 255, + 0, + 255, + 125, + 128, + 0, + 255, + 0, + 255, + 125, + 128, + 0, + 255, + 0, + 255, + 125, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 505, + 10, + 6, + 108, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64stadec', + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 506, + 10, + 7, + 108, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '64starus', + 135, + 143, + 105, + 128, + 0, + 255, + 135, + 143, + 105, + 128, + 0, + 255, + 135, + 143, + 105, + 128, + 0, + 255, + 135, + 143, + 105, + 128, + 0, + 255, + 135, + 143, + 105, + 128, + 0, + 255, + 135, + 143, + 105, + 128, + 0, + 255, + 135, + 143, + 105, + 128, + 0, + 255, + 135, + 143, + 105, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 507, + 10, + 3, + 109, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 99999999, + '64galcop', + 32, + 178, + 156, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 508, + 10, + 4, + 109, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64galfla', + 113, + 235, + 140, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 509, + 10, + 5, + 109, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64galsca', + 162, + 112, + 232, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 510, + 10, + 6, + 109, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64galdec', + 2, + 222, + 237, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 511, + 10, + 7, + 109, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '64galrus', + 0, + 145, + 135, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 512, + 10, + 4, + 110, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69torfla', + 185, + 173, + 163, + 128, + 0, + 255, + 185, + 173, + 163, + 128, + 0, + 255, + 185, + 173, + 163, + 128, + 0, + 255, + 185, + 173, + 163, + 128, + 0, + 255, + 185, + 173, + 163, + 128, + 0, + 255, + 185, + 173, + 163, + 128, + 0, + 255, + 185, + 173, + 163, + 128, + 0, + 255, + 185, + 173, + 163, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 513, + 10, + 5, + 110, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69torsca', + 230, + 150, + 204, + 128, + 0, + 255, + 230, + 150, + 204, + 128, + 0, + 255, + 230, + 150, + 204, + 128, + 0, + 255, + 230, + 150, + 204, + 128, + 0, + 255, + 230, + 150, + 204, + 128, + 0, + 255, + 230, + 150, + 204, + 128, + 0, + 255, + 230, + 150, + 204, + 128, + 0, + 255, + 230, + 150, + 204, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 514, + 10, + 6, + 110, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69tordec', + 170, + 163, + 196, + 128, + 0, + 255, + 170, + 163, + 196, + 128, + 0, + 255, + 170, + 163, + 196, + 128, + 0, + 255, + 170, + 163, + 196, + 128, + 0, + 255, + 170, + 163, + 196, + 128, + 0, + 255, + 170, + 163, + 196, + 128, + 0, + 255, + 170, + 163, + 196, + 128, + 0, + 255, + 170, + 163, + 196, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 515, + 10, + 7, + 110, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69torrus', + 19, + 92, + 66, + 128, + 0, + 255, + 19, + 92, + 66, + 128, + 0, + 255, + 19, + 92, + 66, + 128, + 0, + 255, + 19, + 92, + 66, + 128, + 0, + 255, + 19, + 92, + 66, + 128, + 0, + 255, + 19, + 92, + 66, + 128, + 0, + 255, + 19, + 92, + 66, + 128, + 0, + 255, + 19, + 92, + 66, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 516, + 10, + 4, + 111, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70mb3fla', + 170, + 150, + 117, + 128, + 0, + 255, + 170, + 150, + 117, + 128, + 0, + 255, + 170, + 150, + 117, + 128, + 0, + 255, + 170, + 150, + 117, + 128, + 0, + 255, + 170, + 150, + 117, + 128, + 0, + 255, + 170, + 150, + 117, + 128, + 0, + 255, + 170, + 150, + 117, + 128, + 0, + 255, + 170, + 150, + 117, + 128, + 0, + 255, + 0, + 'Matt Kovacs', + 'This paint job ain''t for punks!' + ), + ( + 517, + 10, + 5, + 111, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70mb3sca', + 158, + 69, + 194, + 128, + 0, + 255, + 158, + 69, + 194, + 128, + 0, + 255, + 158, + 69, + 194, + 128, + 0, + 255, + 158, + 69, + 194, + 128, + 0, + 255, + 158, + 69, + 194, + 128, + 0, + 255, + 158, + 69, + 194, + 128, + 0, + 255, + 158, + 69, + 194, + 128, + 0, + 255, + 158, + 69, + 194, + 128, + 0, + 255, + 0, + 'Jeff Grantz', + 'You''ll smoke ''em with this paint job.' + ), + ( + 518, + 10, + 6, + 111, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70mb3dec', + 3, + 201, + 235, + 128, + 0, + 255, + 3, + 201, + 235, + 128, + 0, + 255, + 3, + 201, + 235, + 128, + 0, + 255, + 3, + 201, + 235, + 128, + 0, + 255, + 3, + 201, + 235, + 128, + 0, + 255, + 3, + 201, + 235, + 128, + 0, + 255, + 3, + 201, + 235, + 128, + 0, + 255, + 3, + 201, + 235, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 519, + 10, + 7, + 111, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70mb3rus', + 50, + 69, + 171, + 128, + 0, + 255, + 50, + 69, + 171, + 128, + 0, + 255, + 50, + 69, + 171, + 128, + 0, + 255, + 50, + 69, + 171, + 128, + 0, + 255, + 50, + 69, + 171, + 128, + 0, + 255, + 50, + 69, + 171, + 128, + 0, + 255, + 50, + 69, + 171, + 128, + 0, + 255, + 50, + 69, + 171, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 520, + 10, + 4, + 112, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '49merfla', + 183, + 196, + 138, + 128, + 0, + 255, + 183, + 196, + 138, + 128, + 0, + 255, + 183, + 196, + 138, + 128, + 0, + 255, + 183, + 196, + 138, + 128, + 0, + 255, + 183, + 196, + 138, + 128, + 0, + 255, + 183, + 196, + 138, + 128, + 0, + 255, + 183, + 196, + 138, + 128, + 0, + 255, + 183, + 196, + 138, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 521, + 10, + 5, + 112, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '49mersca', + 254, + 235, + 209, + 128, + 0, + 255, + 254, + 235, + 209, + 128, + 0, + 255, + 254, + 235, + 209, + 128, + 0, + 255, + 254, + 235, + 209, + 128, + 0, + 255, + 254, + 235, + 209, + 128, + 0, + 255, + 254, + 235, + 209, + 128, + 0, + 255, + 254, + 235, + 209, + 128, + 0, + 255, + 254, + 235, + 209, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 522, + 10, + 6, + 112, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '49merdec', + 125, + 64, + 166, + 128, + 0, + 255, + 125, + 64, + 166, + 128, + 0, + 255, + 125, + 64, + 166, + 128, + 0, + 255, + 125, + 64, + 166, + 128, + 0, + 255, + 125, + 64, + 166, + 128, + 0, + 255, + 125, + 64, + 166, + 128, + 0, + 255, + 125, + 64, + 166, + 128, + 0, + 255, + 125, + 64, + 166, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 523, + 10, + 7, + 112, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '49merrus', + 160, + 143, + 156, + 128, + 0, + 255, + 160, + 143, + 156, + 128, + 0, + 255, + 160, + 143, + 156, + 128, + 0, + 255, + 160, + 143, + 156, + 128, + 0, + 255, + 160, + 143, + 156, + 128, + 0, + 255, + 160, + 143, + 156, + 128, + 0, + 255, + 160, + 143, + 156, + 128, + 0, + 255, + 160, + 143, + 156, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 524, + 10, + 4, + 113, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57chefla', + 177, + 255, + 161, + 128, + 0, + 255, + 177, + 255, + 161, + 128, + 0, + 255, + 177, + 255, + 161, + 128, + 0, + 255, + 177, + 255, + 161, + 128, + 0, + 255, + 177, + 255, + 161, + 128, + 0, + 255, + 177, + 255, + 161, + 128, + 0, + 255, + 177, + 255, + 161, + 128, + 0, + 255, + 177, + 255, + 161, + 128, + 0, + 255, + 0, + 'Pete Hammond', + 'Your Bel Air will be the will ring everyone''s bell when they see these flames coming!' + ), + ( + 525, + 10, + 5, + 113, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57chesca', + 128, + 255, + 161, + 128, + 0, + 255, + 128, + 255, + 161, + 128, + 0, + 255, + 128, + 255, + 161, + 128, + 0, + 255, + 128, + 255, + 161, + 128, + 0, + 255, + 128, + 255, + 161, + 128, + 0, + 255, + 128, + 255, + 161, + 128, + 0, + 255, + 128, + 255, + 161, + 128, + 0, + 255, + 128, + 255, + 161, + 128, + 0, + 255, + 0, + 'Joe Kasinski', + 'Does the Big K know his stuff? This is AWESOME!' + ), + ( + 526, + 10, + 6, + 113, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57chedec', + 164, + 130, + 153, + 128, + 0, + 255, + 164, + 130, + 153, + 128, + 0, + 255, + 164, + 130, + 153, + 128, + 0, + 255, + 164, + 130, + 153, + 128, + 0, + 255, + 164, + 130, + 153, + 128, + 0, + 255, + 164, + 130, + 153, + 128, + 0, + 255, + 164, + 130, + 153, + 128, + 0, + 255, + 164, + 130, + 153, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 527, + 10, + 7, + 113, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57cherus', + 61, + 82, + 71, + 128, + 0, + 255, + 61, + 82, + 71, + 128, + 0, + 255, + 61, + 82, + 71, + 128, + 0, + 255, + 61, + 82, + 71, + 128, + 0, + 255, + 61, + 82, + 71, + 128, + 0, + 255, + 61, + 82, + 71, + 128, + 0, + 255, + 61, + 82, + 71, + 128, + 0, + 255, + 61, + 82, + 71, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 528, + 10, + 4, + 114, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57vetfla', + 26, + 255, + 245, + 128, + 0, + 255, + 26, + 255, + 245, + 128, + 0, + 255, + 26, + 255, + 245, + 128, + 0, + 255, + 26, + 255, + 245, + 128, + 0, + 255, + 26, + 255, + 245, + 128, + 0, + 255, + 26, + 255, + 245, + 128, + 0, + 255, + 26, + 255, + 245, + 128, + 0, + 255, + 26, + 255, + 245, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 529, + 10, + 5, + 114, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57vetsca', + 155, + 79, + 199, + 128, + 0, + 255, + 155, + 79, + 199, + 128, + 0, + 255, + 155, + 79, + 199, + 128, + 0, + 255, + 155, + 79, + 199, + 128, + 0, + 255, + 155, + 79, + 199, + 128, + 0, + 255, + 155, + 79, + 199, + 128, + 0, + 255, + 155, + 79, + 199, + 128, + 0, + 255, + 155, + 79, + 199, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 530, + 10, + 6, + 114, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57vetdec', + 149, + 255, + 212, + 128, + 0, + 255, + 149, + 255, + 212, + 128, + 0, + 255, + 149, + 255, + 212, + 128, + 0, + 255, + 149, + 255, + 212, + 128, + 0, + 255, + 149, + 255, + 212, + 128, + 0, + 255, + 149, + 255, + 212, + 128, + 0, + 255, + 149, + 255, + 212, + 128, + 0, + 255, + 149, + 255, + 212, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 531, + 10, + 7, + 114, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57vetrus', + 5, + 176, + 97, + 128, + 0, + 255, + 5, + 176, + 97, + 128, + 0, + 255, + 5, + 176, + 97, + 128, + 0, + 255, + 5, + 176, + 97, + 128, + 0, + 255, + 5, + 176, + 97, + 128, + 0, + 255, + 5, + 176, + 97, + 128, + 0, + 255, + 5, + 176, + 97, + 128, + 0, + 255, + 5, + 176, + 97, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 532, + 10, + 4, + 115, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57nomfla', + 249, + 255, + 158, + 128, + 0, + 255, + 249, + 255, + 158, + 128, + 0, + 255, + 249, + 255, + 158, + 128, + 0, + 255, + 249, + 255, + 158, + 128, + 0, + 255, + 249, + 255, + 158, + 128, + 0, + 255, + 249, + 255, + 158, + 128, + 0, + 255, + 249, + 255, + 158, + 128, + 0, + 255, + 249, + 255, + 158, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 533, + 10, + 5, + 115, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57nomsca', + 74, + 255, + 107, + 128, + 0, + 255, + 74, + 255, + 107, + 128, + 0, + 255, + 74, + 255, + 107, + 128, + 0, + 255, + 74, + 255, + 107, + 128, + 0, + 255, + 74, + 255, + 107, + 128, + 0, + 255, + 74, + 255, + 107, + 128, + 0, + 255, + 74, + 255, + 107, + 128, + 0, + 255, + 74, + 255, + 107, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 534, + 10, + 6, + 115, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '57nomdec', + 171, + 207, + 145, + 128, + 0, + 255, + 171, + 207, + 145, + 128, + 0, + 255, + 171, + 207, + 145, + 128, + 0, + 255, + 171, + 207, + 145, + 128, + 0, + 255, + 171, + 207, + 145, + 128, + 0, + 255, + 171, + 207, + 145, + 128, + 0, + 255, + 171, + 207, + 145, + 128, + 0, + 255, + 171, + 207, + 145, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 535, + 10, + 7, + 115, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57nomrus', + 7, + 153, + 140, + 128, + 0, + 255, + 7, + 153, + 140, + 128, + 0, + 255, + 7, + 153, + 140, + 128, + 0, + 255, + 7, + 153, + 140, + 128, + 0, + 255, + 7, + 153, + 140, + 128, + 0, + 255, + 7, + 153, + 140, + 128, + 0, + 255, + 7, + 153, + 140, + 128, + 0, + 255, + 7, + 153, + 140, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 536, + 10, + 3, + 116, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 99999999, + '64impcop', + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 537, + 10, + 4, + 116, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64impfla', + 195, + 237, + 227, + 128, + 0, + 255, + 195, + 237, + 227, + 128, + 0, + 255, + 195, + 237, + 227, + 128, + 0, + 255, + 195, + 237, + 227, + 128, + 0, + 255, + 195, + 237, + 227, + 128, + 0, + 255, + 195, + 237, + 227, + 128, + 0, + 255, + 195, + 237, + 227, + 128, + 0, + 255, + 195, + 237, + 227, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 538, + 10, + 5, + 116, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64impsca', + 32, + 255, + 227, + 128, + 0, + 255, + 32, + 255, + 227, + 128, + 0, + 255, + 32, + 255, + 227, + 128, + 0, + 255, + 32, + 255, + 227, + 128, + 0, + 255, + 32, + 255, + 227, + 128, + 0, + 255, + 32, + 255, + 227, + 128, + 0, + 255, + 32, + 255, + 227, + 128, + 0, + 255, + 32, + 255, + 227, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 539, + 10, + 6, + 116, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64impdec', + 142, + 107, + 186, + 128, + 0, + 255, + 142, + 107, + 186, + 128, + 0, + 255, + 142, + 107, + 186, + 128, + 0, + 255, + 142, + 107, + 186, + 128, + 0, + 255, + 142, + 107, + 186, + 128, + 0, + 255, + 142, + 107, + 186, + 128, + 0, + 255, + 142, + 107, + 186, + 128, + 0, + 255, + 142, + 107, + 186, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 540, + 10, + 7, + 116, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '64imprus', + 30, + 36, + 130, + 128, + 0, + 255, + 30, + 36, + 130, + 128, + 0, + 255, + 30, + 36, + 130, + 128, + 0, + 255, + 30, + 36, + 130, + 128, + 0, + 255, + 30, + 36, + 130, + 128, + 0, + 255, + 30, + 36, + 130, + 128, + 0, + 255, + 30, + 36, + 130, + 128, + 0, + 255, + 30, + 36, + 130, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 541, + 10, + 4, + 117, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '63vetfla', + 186, + 240, + 242, + 128, + 0, + 255, + 186, + 240, + 242, + 128, + 0, + 255, + 186, + 240, + 242, + 128, + 0, + 255, + 186, + 240, + 242, + 128, + 0, + 255, + 186, + 240, + 242, + 128, + 0, + 255, + 186, + 240, + 242, + 128, + 0, + 255, + 186, + 240, + 242, + 128, + 0, + 255, + 186, + 240, + 242, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 542, + 10, + 5, + 117, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '63vetsca', + 169, + 194, + 209, + 128, + 0, + 255, + 169, + 194, + 209, + 128, + 0, + 255, + 169, + 194, + 209, + 128, + 0, + 255, + 169, + 194, + 209, + 128, + 0, + 255, + 169, + 194, + 209, + 128, + 0, + 255, + 169, + 194, + 209, + 128, + 0, + 255, + 169, + 194, + 209, + 128, + 0, + 255, + 169, + 194, + 209, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 543, + 10, + 6, + 117, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '63vetdec', + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 217, + 255, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 544, + 10, + 7, + 117, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '63vetrus', + 0, + 145, + 135, + 128, + 0, + 255, + 0, + 145, + 135, + 128, + 0, + 255, + 0, + 145, + 135, + 128, + 0, + 255, + 0, + 145, + 135, + 128, + 0, + 255, + 0, + 145, + 135, + 128, + 0, + 255, + 0, + 145, + 135, + 128, + 0, + 255, + 0, + 145, + 135, + 128, + 0, + 255, + 0, + 145, + 135, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 545, + 10, + 4, + 118, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '58impfla', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 546, + 10, + 5, + 118, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '58impsca', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + NULL, + NULL + ), + ( + 547, + 10, + 6, + 118, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '58impdec', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 548, + 10, + 7, + 118, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '58imprus', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 549, + 10, + 4, + 119, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67chefla', + 166, + 255, + 240, + 128, + 0, + 255, + 166, + 255, + 240, + 128, + 0, + 255, + 166, + 255, + 240, + 128, + 0, + 255, + 166, + 255, + 240, + 128, + 0, + 255, + 166, + 255, + 240, + 128, + 0, + 255, + 166, + 255, + 240, + 128, + 0, + 255, + 166, + 255, + 240, + 128, + 0, + 255, + 166, + 255, + 240, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 550, + 10, + 5, + 119, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67chesca', + 186, + 219, + 255, + 128, + 0, + 255, + 186, + 219, + 255, + 128, + 0, + 255, + 186, + 219, + 255, + 128, + 0, + 255, + 186, + 219, + 255, + 128, + 0, + 255, + 186, + 219, + 255, + 128, + 0, + 255, + 186, + 219, + 255, + 128, + 0, + 255, + 186, + 219, + 255, + 128, + 0, + 255, + 186, + 219, + 255, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 551, + 10, + 6, + 119, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67chedec', + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 255, + 240, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 552, + 10, + 7, + 119, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '67cherus', + 33, + 18, + 189, + 128, + 0, + 255, + 33, + 18, + 189, + 128, + 0, + 255, + 33, + 18, + 189, + 128, + 0, + 255, + 33, + 18, + 189, + 128, + 0, + 255, + 33, + 18, + 189, + 128, + 0, + 255, + 33, + 18, + 189, + 128, + 0, + 255, + 33, + 18, + 189, + 128, + 0, + 255, + 33, + 18, + 189, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 553, + 10, + 4, + 120, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67camfla', + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 0, + 31, + 128, + 0, + 255, + 0, + 'Steve Hayes', + 'Sssssssmokin!' + ), + ( + 554, + 10, + 5, + 120, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67camsca', + 23, + 186, + 227, + 128, + 0, + 255, + 23, + 186, + 227, + 128, + 0, + 255, + 23, + 186, + 227, + 128, + 0, + 255, + 23, + 186, + 227, + 128, + 0, + 255, + 23, + 186, + 227, + 128, + 0, + 255, + 23, + 186, + 227, + 128, + 0, + 255, + 23, + 186, + 227, + 128, + 0, + 255, + 23, + 186, + 227, + 128, + 0, + 255, + 0, + 'Grant Weyman', + 'This is THE Big One! Check it out!' + ), + ( + 555, + 10, + 6, + 120, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67camdec', + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 0, + 247, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 556, + 10, + 7, + 120, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '67camrus', + 29, + 181, + 128, + 128, + 0, + 255, + 29, + 181, + 128, + 128, + 0, + 255, + 29, + 181, + 128, + 128, + 0, + 255, + 29, + 181, + 128, + 128, + 0, + 255, + 29, + 181, + 128, + 128, + 0, + 255, + 29, + 181, + 128, + 128, + 0, + 255, + 29, + 181, + 128, + 128, + 0, + 255, + 29, + 181, + 128, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 557, + 10, + 4, + 121, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70chefla', + 106, + 252, + 89, + 128, + 0, + 255, + 106, + 252, + 89, + 128, + 0, + 255, + 106, + 252, + 89, + 128, + 0, + 255, + 106, + 252, + 89, + 128, + 0, + 255, + 106, + 252, + 89, + 128, + 0, + 255, + 106, + 252, + 89, + 128, + 0, + 255, + 106, + 252, + 89, + 128, + 0, + 255, + 106, + 252, + 89, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 558, + 10, + 5, + 121, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70chesca', + 134, + 230, + 166, + 128, + 0, + 255, + 134, + 230, + 166, + 128, + 0, + 255, + 134, + 230, + 166, + 128, + 0, + 255, + 134, + 230, + 166, + 128, + 0, + 255, + 134, + 230, + 166, + 128, + 0, + 255, + 134, + 230, + 166, + 128, + 0, + 255, + 134, + 230, + 166, + 128, + 0, + 255, + 134, + 230, + 166, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 559, + 10, + 6, + 121, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70chedec', + 169, + 166, + 181, + 128, + 0, + 255, + 169, + 166, + 181, + 128, + 0, + 255, + 169, + 166, + 181, + 128, + 0, + 255, + 169, + 166, + 181, + 128, + 0, + 255, + 169, + 166, + 181, + 128, + 0, + 255, + 169, + 166, + 181, + 128, + 0, + 255, + 169, + 166, + 181, + 128, + 0, + 255, + 169, + 166, + 181, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 560, + 10, + 7, + 121, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70cherus', + 191, + 54, + 110, + 128, + 0, + 255, + 191, + 54, + 110, + 128, + 0, + 255, + 191, + 54, + 110, + 128, + 0, + 255, + 191, + 54, + 110, + 128, + 0, + 255, + 191, + 54, + 110, + 128, + 0, + 255, + 191, + 54, + 110, + 128, + 0, + 255, + 191, + 54, + 110, + 128, + 0, + 255, + 191, + 54, + 110, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 561, + 10, + 4, + 122, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70camfla', + 205, + 237, + 122, + 128, + 0, + 255, + 205, + 237, + 122, + 128, + 0, + 255, + 205, + 237, + 122, + 128, + 0, + 255, + 205, + 237, + 122, + 128, + 0, + 255, + 205, + 237, + 122, + 128, + 0, + 255, + 205, + 237, + 122, + 128, + 0, + 255, + 205, + 237, + 122, + 128, + 0, + 255, + 205, + 237, + 122, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 562, + 10, + 5, + 122, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70camsca', + 0, + 0, + 36, + 128, + 0, + 255, + 0, + 0, + 36, + 128, + 0, + 255, + 0, + 0, + 36, + 128, + 0, + 255, + 0, + 0, + 36, + 128, + 0, + 255, + 0, + 0, + 36, + 128, + 0, + 255, + 0, + 0, + 36, + 128, + 0, + 255, + 0, + 0, + 36, + 128, + 0, + 255, + 0, + 0, + 36, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 563, + 10, + 6, + 122, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70camdec', + 12, + 255, + 133, + 128, + 0, + 255, + 12, + 255, + 133, + 128, + 0, + 255, + 12, + 255, + 133, + 128, + 0, + 255, + 12, + 255, + 133, + 128, + 0, + 255, + 12, + 255, + 133, + 128, + 0, + 255, + 12, + 255, + 133, + 128, + 0, + 255, + 12, + 255, + 133, + 128, + 0, + 255, + 12, + 255, + 133, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 564, + 10, + 7, + 122, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70camrus', + 135, + 201, + 133, + 128, + 0, + 255, + 135, + 201, + 133, + 128, + 0, + 255, + 135, + 201, + 133, + 128, + 0, + 255, + 135, + 201, + 133, + 128, + 0, + 255, + 135, + 201, + 133, + 128, + 0, + 255, + 135, + 201, + 133, + 128, + 0, + 255, + 135, + 201, + 133, + 128, + 0, + 255, + 135, + 201, + 133, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 565, + 10, + 4, + 123, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70novfla', + 36, + 255, + 201, + 128, + 0, + 255, + 36, + 255, + 201, + 128, + 0, + 255, + 36, + 255, + 201, + 128, + 0, + 255, + 36, + 255, + 201, + 128, + 0, + 255, + 36, + 255, + 201, + 128, + 0, + 255, + 36, + 255, + 201, + 128, + 0, + 255, + 36, + 255, + 201, + 128, + 0, + 255, + 36, + 255, + 201, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 566, + 10, + 5, + 123, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70novsca', + 176, + 255, + 117, + 128, + 0, + 255, + 176, + 255, + 117, + 128, + 0, + 255, + 176, + 255, + 117, + 128, + 0, + 255, + 176, + 255, + 117, + 128, + 0, + 255, + 176, + 255, + 117, + 128, + 0, + 255, + 176, + 255, + 117, + 128, + 0, + 255, + 176, + 255, + 117, + 128, + 0, + 255, + 176, + 255, + 117, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 567, + 10, + 6, + 123, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70novdec', + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 0, + 0, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 568, + 10, + 7, + 123, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70novrus', + 97, + 255, + 84, + 128, + 0, + 255, + 97, + 255, + 84, + 128, + 0, + 255, + 97, + 255, + 84, + 128, + 0, + 255, + 97, + 255, + 84, + 128, + 0, + 255, + 97, + 255, + 84, + 128, + 0, + 255, + 97, + 255, + 84, + 128, + 0, + 255, + 97, + 255, + 84, + 128, + 0, + 255, + 97, + 255, + 84, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 569, + 10, + 4, + 124, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '47cadfla', + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 0, + 51, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 570, + 10, + 5, + 124, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '47cadsca', + 108, + 255, + 222, + 128, + 0, + 255, + 108, + 255, + 222, + 128, + 0, + 255, + 108, + 255, + 222, + 128, + 0, + 255, + 108, + 255, + 222, + 128, + 0, + 255, + 108, + 255, + 222, + 128, + 0, + 255, + 108, + 255, + 222, + 128, + 0, + 255, + 108, + 255, + 222, + 128, + 0, + 255, + 108, + 255, + 222, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 571, + 10, + 6, + 124, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '47caddec', + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 219, + 227, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 572, + 10, + 7, + 124, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '47cadrus', + 23, + 31, + 143, + 128, + 0, + 255, + 23, + 31, + 143, + 128, + 0, + 255, + 23, + 31, + 143, + 128, + 0, + 255, + 23, + 31, + 143, + 128, + 0, + 255, + 23, + 31, + 143, + 128, + 0, + 255, + 23, + 31, + 143, + 128, + 0, + 255, + 23, + 31, + 143, + 128, + 0, + 255, + 23, + 31, + 143, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 573, + 10, + 4, + 125, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '59cadfla', + 243, + 166, + 252, + 128, + 0, + 255, + 243, + 166, + 252, + 128, + 0, + 255, + 243, + 166, + 252, + 128, + 0, + 255, + 243, + 166, + 252, + 128, + 0, + 255, + 243, + 166, + 252, + 128, + 0, + 255, + 243, + 166, + 252, + 128, + 0, + 255, + 243, + 166, + 252, + 128, + 0, + 255, + 243, + 166, + 252, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 574, + 10, + 5, + 125, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '59cadsca', + 26, + 59, + 166, + 128, + 0, + 255, + 26, + 59, + 166, + 128, + 0, + 255, + 26, + 59, + 166, + 128, + 0, + 255, + 26, + 59, + 166, + 128, + 0, + 255, + 26, + 59, + 166, + 128, + 0, + 255, + 26, + 59, + 166, + 128, + 0, + 255, + 26, + 59, + 166, + 128, + 0, + 255, + 26, + 59, + 166, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 575, + 10, + 6, + 125, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '59caddec', + 78, + 115, + 199, + 128, + 0, + 255, + 78, + 115, + 199, + 128, + 0, + 255, + 78, + 115, + 199, + 128, + 0, + 255, + 78, + 115, + 199, + 128, + 0, + 255, + 78, + 115, + 199, + 128, + 0, + 255, + 78, + 115, + 199, + 128, + 0, + 255, + 78, + 115, + 199, + 128, + 0, + 255, + 78, + 115, + 199, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 576, + 10, + 7, + 125, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '59cadrus', + 28, + 97, + 186, + 128, + 0, + 255, + 28, + 97, + 186, + 128, + 0, + 255, + 28, + 97, + 186, + 128, + 0, + 255, + 28, + 97, + 186, + 128, + 0, + 255, + 28, + 97, + 186, + 128, + 0, + 255, + 28, + 97, + 186, + 128, + 0, + 255, + 28, + 97, + 186, + 128, + 0, + 255, + 28, + 97, + 186, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 577, + 10, + 4, + 126, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69oldfla', + 155, + 178, + 209, + 128, + 0, + 255, + 155, + 178, + 209, + 128, + 0, + 255, + 155, + 178, + 209, + 128, + 0, + 255, + 155, + 178, + 209, + 128, + 0, + 255, + 155, + 178, + 209, + 128, + 0, + 255, + 155, + 178, + 209, + 128, + 0, + 255, + 155, + 178, + 209, + 128, + 0, + 255, + 155, + 178, + 209, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 578, + 10, + 5, + 126, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69oldsca', + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 579, + 10, + 6, + 126, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69olddec', + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 580, + 10, + 7, + 126, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69oldrus', + 153, + 97, + 143, + 128, + 0, + 255, + 153, + 97, + 143, + 128, + 0, + 255, + 153, + 97, + 143, + 128, + 0, + 255, + 153, + 97, + 143, + 128, + 0, + 255, + 153, + 97, + 143, + 128, + 0, + 255, + 153, + 97, + 143, + 128, + 0, + 255, + 153, + 97, + 143, + 128, + 0, + 255, + 153, + 97, + 143, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 581, + 10, + 3, + 127, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 99999999, + '55cencop', + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 169, + 207, + 74, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 582, + 10, + 4, + 127, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '55cenfla', + 38, + 252, + 255, + 128, + 0, + 255, + 38, + 252, + 255, + 128, + 0, + 255, + 38, + 252, + 255, + 128, + 0, + 255, + 38, + 252, + 255, + 128, + 0, + 255, + 38, + 252, + 255, + 128, + 0, + 255, + 38, + 252, + 255, + 128, + 0, + 255, + 38, + 252, + 255, + 128, + 0, + 255, + 38, + 252, + 255, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 583, + 10, + 5, + 127, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '55censca', + 183, + 240, + 242, + 128, + 0, + 255, + 183, + 240, + 242, + 128, + 0, + 255, + 183, + 240, + 242, + 128, + 0, + 255, + 183, + 240, + 242, + 128, + 0, + 255, + 183, + 240, + 242, + 128, + 0, + 255, + 183, + 240, + 242, + 128, + 0, + 255, + 183, + 240, + 242, + 128, + 0, + 255, + 183, + 240, + 242, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 584, + 10, + 6, + 127, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '55cendec', + 1, + 242, + 242, + 128, + 0, + 255, + 1, + 242, + 242, + 128, + 0, + 255, + 1, + 242, + 242, + 128, + 0, + 255, + 1, + 242, + 242, + 128, + 0, + 255, + 1, + 242, + 242, + 128, + 0, + 255, + 1, + 242, + 242, + 128, + 0, + 255, + 1, + 242, + 242, + 128, + 0, + 255, + 1, + 242, + 242, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 585, + 10, + 7, + 127, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '55cenrus', + 120, + 140, + 107, + 128, + 0, + 255, + 120, + 140, + 107, + 128, + 0, + 255, + 120, + 140, + 107, + 128, + 0, + 255, + 120, + 140, + 107, + 128, + 0, + 255, + 120, + 140, + 107, + 128, + 0, + 255, + 120, + 140, + 107, + 128, + 0, + 255, + 120, + 140, + 107, + 128, + 0, + 255, + 120, + 140, + 107, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 586, + 10, + 4, + 128, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '66gtofla', + 192, + 252, + 196, + 128, + 0, + 255, + 192, + 252, + 196, + 128, + 0, + 255, + 192, + 252, + 196, + 128, + 0, + 255, + 192, + 252, + 196, + 128, + 0, + 255, + 192, + 252, + 196, + 128, + 0, + 255, + 192, + 252, + 196, + 128, + 0, + 255, + 192, + 252, + 196, + 128, + 0, + 255, + 192, + 252, + 196, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 587, + 10, + 5, + 128, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '66gtosca', + 190, + 255, + 232, + 128, + 0, + 255, + 190, + 255, + 232, + 128, + 0, + 255, + 190, + 255, + 232, + 128, + 0, + 255, + 190, + 255, + 232, + 128, + 0, + 255, + 190, + 255, + 232, + 128, + 0, + 255, + 190, + 255, + 232, + 128, + 0, + 255, + 190, + 255, + 232, + 128, + 0, + 255, + 190, + 255, + 232, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 588, + 10, + 6, + 128, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '66gtodec', + 162, + 252, + 196, + 128, + 0, + 255, + 162, + 252, + 196, + 128, + 0, + 255, + 162, + 252, + 196, + 128, + 0, + 255, + 162, + 252, + 196, + 128, + 0, + 255, + 162, + 252, + 196, + 128, + 0, + 255, + 162, + 252, + 196, + 128, + 0, + 255, + 162, + 252, + 196, + 128, + 0, + 255, + 162, + 252, + 196, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 589, + 10, + 7, + 128, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '66gtorus', + 49, + 10, + 189, + 128, + 0, + 255, + 49, + 10, + 189, + 128, + 0, + 255, + 49, + 10, + 189, + 128, + 0, + 255, + 49, + 10, + 189, + 128, + 0, + 255, + 49, + 10, + 189, + 128, + 0, + 255, + 49, + 10, + 189, + 128, + 0, + 255, + 49, + 10, + 189, + 128, + 0, + 255, + 49, + 10, + 189, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 590, + 10, + 4, + 129, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gtofla', + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 591, + 10, + 5, + 129, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gtosca', + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 28, + 227, + 255, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 592, + 10, + 6, + 129, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gtodec', + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 0, + 255, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 593, + 10, + 7, + 129, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69gtorus', + 82, + 64, + 61, + 128, + 0, + 255, + 82, + 64, + 61, + 128, + 0, + 255, + 82, + 64, + 61, + 128, + 0, + 255, + 82, + 64, + 61, + 128, + 0, + 255, + 82, + 64, + 61, + 128, + 0, + 255, + 82, + 64, + 61, + 128, + 0, + 255, + 82, + 64, + 61, + 128, + 0, + 255, + 82, + 64, + 61, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 594, + 10, + 4, + 130, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73trafla', + 181, + 255, + 245, + 128, + 0, + 255, + 181, + 255, + 245, + 128, + 0, + 255, + 181, + 255, + 245, + 128, + 0, + 255, + 181, + 255, + 245, + 128, + 0, + 255, + 181, + 255, + 245, + 128, + 0, + 255, + 181, + 255, + 245, + 128, + 0, + 255, + 181, + 255, + 245, + 128, + 0, + 255, + 181, + 255, + 245, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 595, + 10, + 5, + 130, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73trasca', + 149, + 255, + 242, + 128, + 0, + 255, + 149, + 255, + 242, + 128, + 0, + 255, + 149, + 255, + 242, + 128, + 0, + 255, + 149, + 255, + 242, + 128, + 0, + 255, + 149, + 255, + 242, + 128, + 0, + 255, + 149, + 255, + 242, + 128, + 0, + 255, + 149, + 255, + 242, + 128, + 0, + 255, + 149, + 255, + 242, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 596, + 10, + 6, + 130, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73tradec', + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 255, + 201, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 597, + 10, + 7, + 130, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '73trarus', + 118, + 201, + 107, + 128, + 0, + 255, + 118, + 201, + 107, + 128, + 0, + 255, + 118, + 201, + 107, + 128, + 0, + 255, + 118, + 201, + 107, + 128, + 0, + 255, + 118, + 201, + 107, + 128, + 0, + 255, + 118, + 201, + 107, + 128, + 0, + 255, + 118, + 201, + 107, + 128, + 0, + 255, + 118, + 201, + 107, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 598, + 10, + 4, + 131, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69amcfla', + 155, + 18, + 242, + 128, + 0, + 255, + 155, + 18, + 242, + 128, + 0, + 255, + 155, + 18, + 242, + 128, + 0, + 255, + 155, + 18, + 242, + 128, + 0, + 255, + 155, + 18, + 242, + 128, + 0, + 255, + 155, + 18, + 242, + 128, + 0, + 255, + 155, + 18, + 242, + 128, + 0, + 255, + 155, + 18, + 242, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 599, + 10, + 5, + 131, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69amcsca', + 33, + 242, + 255, + 128, + 0, + 255, + 33, + 242, + 255, + 128, + 0, + 255, + 33, + 242, + 255, + 128, + 0, + 255, + 33, + 242, + 255, + 128, + 0, + 255, + 33, + 242, + 255, + 128, + 0, + 255, + 33, + 242, + 255, + 128, + 0, + 255, + 33, + 242, + 255, + 128, + 0, + 255, + 33, + 242, + 255, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 600, + 10, + 6, + 131, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69amcdec', + 169, + 117, + 79, + 128, + 0, + 255, + 169, + 117, + 79, + 128, + 0, + 255, + 169, + 117, + 79, + 128, + 0, + 255, + 169, + 117, + 79, + 128, + 0, + 255, + 169, + 117, + 79, + 128, + 0, + 255, + 169, + 117, + 79, + 128, + 0, + 255, + 169, + 117, + 79, + 128, + 0, + 255, + 169, + 117, + 79, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 601, + 10, + 7, + 131, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69amcrus', + 31, + 140, + 138, + 128, + 0, + 255, + 31, + 140, + 138, + 128, + 0, + 255, + 31, + 140, + 138, + 128, + 0, + 255, + 31, + 140, + 138, + 128, + 0, + 255, + 31, + 140, + 138, + 128, + 0, + 255, + 31, + 140, + 138, + 128, + 0, + 255, + 31, + 140, + 138, + 128, + 0, + 255, + 31, + 140, + 138, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 602, + 10, + 4, + 132, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69chafla', + 161, + 135, + 33, + 128, + 0, + 255, + 161, + 135, + 33, + 128, + 0, + 255, + 161, + 135, + 33, + 128, + 0, + 255, + 161, + 135, + 33, + 128, + 0, + 255, + 161, + 135, + 33, + 128, + 0, + 255, + 161, + 135, + 33, + 128, + 0, + 255, + 161, + 135, + 33, + 128, + 0, + 255, + 161, + 135, + 33, + 128, + 0, + 255, + 0, + 'Eric Saakian', + 'These flames should frighten away the posers. Real racers ONLY!' + ), + ( + 603, + 10, + 5, + 132, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69chasca', + 27, + 245, + 250, + 128, + 0, + 255, + 27, + 245, + 250, + 128, + 0, + 255, + 27, + 245, + 250, + 128, + 0, + 255, + 27, + 245, + 250, + 128, + 0, + 255, + 27, + 245, + 250, + 128, + 0, + 255, + 27, + 245, + 250, + 128, + 0, + 255, + 27, + 245, + 250, + 128, + 0, + 255, + 27, + 245, + 250, + 128, + 0, + 255, + 0, + 'Mike Wojtas', + 'You don''t get it much better than this. Rock on!' + ), + ( + 604, + 10, + 6, + 132, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69chadec', + 159, + 186, + 194, + 128, + 0, + 255, + 159, + 186, + 194, + 128, + 0, + 255, + 159, + 186, + 194, + 128, + 0, + 255, + 159, + 186, + 194, + 128, + 0, + 255, + 159, + 186, + 194, + 128, + 0, + 255, + 159, + 186, + 194, + 128, + 0, + 255, + 159, + 186, + 194, + 128, + 0, + 255, + 159, + 186, + 194, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 605, + 10, + 7, + 132, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69charus', + 137, + 76, + 112, + 128, + 0, + 255, + 137, + 76, + 112, + 128, + 0, + 255, + 137, + 76, + 112, + 128, + 0, + 255, + 137, + 76, + 112, + 128, + 0, + 255, + 137, + 76, + 112, + 128, + 0, + 255, + 137, + 76, + 112, + 128, + 0, + 255, + 137, + 76, + 112, + 128, + 0, + 255, + 137, + 76, + 112, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 606, + 10, + 3, + 133, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 99999999, + '69runcop', + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 32, + 178, + 156, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 607, + 10, + 4, + 133, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69runfla', + 16, + 173, + 230, + 128, + 0, + 255, + 16, + 173, + 230, + 128, + 0, + 255, + 16, + 173, + 230, + 128, + 0, + 255, + 16, + 173, + 230, + 128, + 0, + 255, + 16, + 173, + 230, + 128, + 0, + 255, + 16, + 173, + 230, + 128, + 0, + 255, + 16, + 173, + 230, + 128, + 0, + 255, + 16, + 173, + 230, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 608, + 10, + 5, + 133, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69runsca', + 33, + 232, + 252, + 128, + 0, + 255, + 33, + 232, + 252, + 128, + 0, + 255, + 33, + 232, + 252, + 128, + 0, + 255, + 33, + 232, + 252, + 128, + 0, + 255, + 33, + 232, + 252, + 128, + 0, + 255, + 33, + 232, + 252, + 128, + 0, + 255, + 33, + 232, + 252, + 128, + 0, + 255, + 33, + 232, + 252, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 609, + 10, + 6, + 133, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69rundec', + 132, + 255, + 222, + 128, + 0, + 255, + 132, + 255, + 222, + 128, + 0, + 255, + 132, + 255, + 222, + 128, + 0, + 255, + 132, + 255, + 222, + 128, + 0, + 255, + 132, + 255, + 222, + 128, + 0, + 255, + 132, + 255, + 222, + 128, + 0, + 255, + 132, + 255, + 222, + 128, + 0, + 255, + 132, + 255, + 222, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 610, + 10, + 7, + 133, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69runrus', + 97, + 117, + 150, + 128, + 0, + 255, + 97, + 117, + 150, + 128, + 0, + 255, + 97, + 117, + 150, + 128, + 0, + 255, + 97, + 117, + 150, + 128, + 0, + 255, + 97, + 117, + 150, + 128, + 0, + 255, + 97, + 117, + 150, + 128, + 0, + 255, + 97, + 117, + 150, + 128, + 0, + 255, + 97, + 117, + 150, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 611, + 10, + 4, + 134, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70cudfla', + 20, + 250, + 227, + 128, + 0, + 255, + 20, + 250, + 227, + 128, + 0, + 255, + 20, + 250, + 227, + 128, + 0, + 255, + 20, + 250, + 227, + 128, + 0, + 255, + 20, + 250, + 227, + 128, + 0, + 255, + 20, + 250, + 227, + 128, + 0, + 255, + 20, + 250, + 227, + 128, + 0, + 255, + 20, + 250, + 227, + 128, + 0, + 255, + 0, + 'Bret Gootch', + 'All that power under the hood''s got only one way to go!' + ), + ( + 612, + 10, + 5, + 134, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70cudsca', + 40, + 214, + 255, + 128, + 0, + 255, + 40, + 214, + 255, + 128, + 0, + 255, + 40, + 214, + 255, + 128, + 0, + 255, + 40, + 214, + 255, + 128, + 0, + 255, + 40, + 214, + 255, + 128, + 0, + 255, + 40, + 214, + 255, + 128, + 0, + 255, + 40, + 214, + 255, + 128, + 0, + 255, + 40, + 214, + 255, + 128, + 0, + 255, + 0, + 'Paul O''Tuna', + 'I made it this way ''cuz I''m swe-e-e-eet!' + ), + ( + 613, + 10, + 6, + 134, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70cuddec', + 6, + 252, + 255, + 128, + 0, + 255, + 6, + 252, + 255, + 128, + 0, + 255, + 6, + 252, + 255, + 128, + 0, + 255, + 6, + 252, + 255, + 128, + 0, + 255, + 6, + 252, + 255, + 128, + 0, + 255, + 6, + 252, + 255, + 128, + 0, + 255, + 6, + 252, + 255, + 128, + 0, + 255, + 6, + 252, + 255, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 614, + 10, + 7, + 134, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70cudrus', + 141, + 107, + 107, + 128, + 0, + 255, + 141, + 107, + 107, + 128, + 0, + 255, + 141, + 107, + 107, + 128, + 0, + 255, + 141, + 107, + 107, + 128, + 0, + 255, + 141, + 107, + 107, + 128, + 0, + 255, + 141, + 107, + 107, + 128, + 0, + 255, + 141, + 107, + 107, + 128, + 0, + 255, + 141, + 107, + 107, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 615, + 10, + 4, + 135, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '71dusfla', + 158, + 209, + 153, + 128, + 0, + 255, + 158, + 209, + 153, + 128, + 0, + 255, + 158, + 209, + 153, + 128, + 0, + 255, + 158, + 209, + 153, + 128, + 0, + 255, + 158, + 209, + 153, + 128, + 0, + 255, + 158, + 209, + 153, + 128, + 0, + 255, + 158, + 209, + 153, + 128, + 0, + 255, + 158, + 209, + 153, + 128, + 0, + 255, + 0, + 'Mac Emerson', + 'This paint job rocks!' + ), + ( + 616, + 10, + 5, + 135, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '71dussca', + 101, + 191, + 148, + 128, + 0, + 255, + 101, + 191, + 148, + 128, + 0, + 255, + 101, + 191, + 148, + 128, + 0, + 255, + 101, + 191, + 148, + 128, + 0, + 255, + 101, + 191, + 148, + 128, + 0, + 255, + 101, + 191, + 148, + 128, + 0, + 255, + 101, + 191, + 148, + 128, + 0, + 255, + 101, + 191, + 148, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 617, + 10, + 6, + 135, + 'Decal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '71dusdec', + 169, + 189, + 255, + 128, + 0, + 255, + 169, + 189, + 255, + 128, + 0, + 255, + 169, + 189, + 255, + 128, + 0, + 255, + 169, + 189, + 255, + 128, + 0, + 255, + 169, + 189, + 255, + 128, + 0, + 255, + 169, + 189, + 255, + 128, + 0, + 255, + 169, + 189, + 255, + 128, + 0, + 255, + 169, + 189, + 255, + 128, + 0, + 255, + 0, + 'Corporate sponsor', + 'You''ve sold out to The Man.' + ), + ( + 618, + 10, + 7, + 135, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '71dusrus', + 29, + 181, + 135, + 128, + 0, + 255, + 29, + 181, + 135, + 128, + 0, + 255, + 29, + 181, + 135, + 128, + 0, + 255, + 29, + 181, + 135, + 128, + 0, + 255, + 29, + 181, + 135, + 128, + 0, + 255, + 29, + 181, + 135, + 128, + 0, + 255, + 29, + 181, + 135, + 128, + 0, + 255, + 29, + 181, + 135, + 128, + 0, + 255, + 1, + 'Oxidation', + 'This process mimics the natural process of paint damage due to weather.' + ), + ( + 619, + 10, + 9, + 106, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '57tbibad', + 0, + 3, + 76, + 128, + 0, + 255, + 0, + 3, + 76, + 128, + 0, + 255, + 0, + 3, + 76, + 128, + 0, + 255, + 0, + 3, + 76, + 128, + 0, + 255, + 0, + 3, + 76, + 128, + 0, + 255, + 0, + 3, + 76, + 128, + 0, + 255, + 0, + 3, + 76, + 128, + 0, + 255, + 0, + 3, + 76, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 620, + 10, + 9, + 117, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '63vetbad', + 31, + 107, + 143, + 128, + 0, + 255, + 31, + 107, + 143, + 128, + 0, + 255, + 31, + 107, + 143, + 128, + 0, + 255, + 31, + 107, + 143, + 128, + 0, + 255, + 31, + 107, + 143, + 128, + 0, + 255, + 31, + 107, + 143, + 128, + 0, + 255, + 31, + 107, + 143, + 128, + 0, + 255, + 31, + 107, + 143, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 621, + 10, + 9, + 120, + 'The Grim Reaper', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '67cambad', + 154, + 36, + 227, + 128, + 0, + 255, + 154, + 36, + 227, + 128, + 0, + 255, + 154, + 36, + 227, + 128, + 0, + 255, + 154, + 36, + 227, + 128, + 0, + 255, + 154, + 36, + 227, + 128, + 0, + 255, + 154, + 36, + 227, + 128, + 0, + 255, + 154, + 36, + 227, + 128, + 0, + 255, + 154, + 36, + 227, + 128, + 0, + 255, + 0, + 'Jim Fink', + 'This time, you better fear the Reaper...' + ), + ( + 622, + 10, + 9, + 134, + 'American Pie', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '70cudbad', + 163, + 181, + 252, + 128, + 0, + 255, + 163, + 181, + 252, + 128, + 0, + 255, + 163, + 181, + 252, + 128, + 0, + 255, + 163, + 181, + 252, + 128, + 0, + 255, + 163, + 181, + 252, + 128, + 0, + 255, + 163, + 181, + 252, + 128, + 0, + 255, + 163, + 181, + 252, + 128, + 0, + 255, + 163, + 181, + 252, + 128, + 0, + 255, + 0, + 'Mongo Pena', + 'Mongo like!' + ), + ( + 623, + 10, + 9, + 111, + 'My Lady', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '70stabad', + 188, + 105, + 255, + 128, + 0, + 255, + 188, + 105, + 255, + 128, + 0, + 255, + 188, + 105, + 255, + 128, + 0, + 255, + 188, + 105, + 255, + 128, + 0, + 255, + 188, + 105, + 255, + 128, + 0, + 255, + 188, + 105, + 255, + 128, + 0, + 255, + 188, + 105, + 255, + 128, + 0, + 255, + 188, + 105, + 255, + 128, + 0, + 255, + 0, + 'Carl Lipowitz', + 'NOBODY touches My Lady!' + ), + ( + 624, + 10, + 9, + 130, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '73trabad', + 37, + 255, + 237, + 128, + 0, + 255, + 37, + 255, + 237, + 128, + 0, + 255, + 37, + 255, + 237, + 128, + 0, + 255, + 37, + 255, + 237, + 128, + 0, + 255, + 37, + 255, + 237, + 128, + 0, + 255, + 37, + 255, + 237, + 128, + 0, + 255, + 37, + 255, + 237, + 128, + 0, + 255, + 37, + 255, + 237, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 625, + 10, + 8, + 125, + 'taxi 1', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '59cadtr1', + 25, + 184, + 255, + 128, + 0, + 255, + 25, + 184, + 255, + 128, + 0, + 255, + 25, + 184, + 255, + 128, + 0, + 255, + 25, + 184, + 255, + 128, + 0, + 255, + 25, + 184, + 255, + 128, + 0, + 255, + 25, + 184, + 255, + 128, + 0, + 255, + 25, + 184, + 255, + 128, + 0, + 255, + 25, + 184, + 255, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 626, + 10, + 8, + 125, + 'taxi 2', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '59cadtr2', + 84, + 255, + 122, + 128, + 0, + 255, + 84, + 255, + 122, + 128, + 0, + 255, + 84, + 255, + 122, + 128, + 0, + 255, + 84, + 255, + 122, + 128, + 0, + 255, + 84, + 255, + 122, + 128, + 0, + 255, + 84, + 255, + 122, + 128, + 0, + 255, + 84, + 255, + 122, + 128, + 0, + 255, + 84, + 255, + 122, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 627, + 10, + 9, + 113, + 'Meat Wagon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '57chebad', + 186, + 178, + 110, + 128, + 0, + 255, + 186, + 178, + 110, + 128, + 0, + 255, + 186, + 178, + 110, + 128, + 0, + 255, + 186, + 178, + 110, + 128, + 0, + 255, + 186, + 178, + 110, + 128, + 0, + 255, + 186, + 178, + 110, + 128, + 0, + 255, + 186, + 178, + 110, + 128, + 0, + 255, + 186, + 178, + 110, + 128, + 0, + 255, + 0, + 'Art Siebold', + 'When the Meat Wagon comes to town, better get out of it''s way!' + ), + ( + 628, + 10, + 9, + 109, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '64galbad', + 200, + 130, + 191, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + NULL, + NULL, + NULL, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 629, + 10, + 9, + 123, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '70novbad', + 18, + 255, + 150, + 128, + 0, + 255, + 18, + 255, + 150, + 128, + 0, + 255, + 18, + 255, + 150, + 128, + 0, + 255, + 18, + 255, + 150, + 128, + 0, + 255, + 18, + 255, + 150, + 128, + 0, + 255, + 18, + 255, + 150, + 128, + 0, + 255, + 18, + 255, + 150, + 128, + 0, + 255, + 18, + 255, + 150, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 630, + 10, + 9, + 121, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '70chebad', + 22, + 209, + 255, + 128, + 0, + 255, + 22, + 209, + 255, + 128, + 0, + 255, + 22, + 209, + 255, + 128, + 0, + 255, + 22, + 209, + 255, + 128, + 0, + 255, + 22, + 209, + 255, + 128, + 0, + 255, + 22, + 209, + 255, + 128, + 0, + 255, + 22, + 209, + 255, + 128, + 0, + 255, + 22, + 209, + 255, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 631, + 10, + 1, + 207, + 'Navajo Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 27, + 80, + 255, + 128, + 0, + 255, + NULL, + 80, + 255, + 128, + 0, + 255, + 27, + 80, + NULL, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 632, + 10, + 1, + 207, + 'Vintage Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 246, + 242, + 84, + 128, + 5, + 253, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 246, + 242, + 84, + 128, + 0, + 210, + NULL, + 242, + 84, + 128, + 0, + 210, + 246, + 242, + NULL, + 128, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 633, + 10, + 1, + 207, + 'Chantilly Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 225, + 40, + 20, + 6, + 128, + 0, + 176, + 35, + 66, + 86, + 128, + 3, + 225, + NULL, + 0, + 1, + 128, + 0, + 168, + 35, + 66, + NULL, + 128, + 3, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 634, + 10, + 1, + 207, + 'Pagoda Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 120, + 100, + 49, + 128, + 5, + 250, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 255, + 128, + 15, + 255, + 124, + 254, + 77, + 128, + 13, + 225, + NULL, + 254, + 77, + 128, + 13, + 225, + 124, + 254, + NULL, + 128, + 13, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 635, + 10, + 1, + 207, + 'Skylight Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 132, + 126, + 255, + 128, + 35, + 225, + 131, + 11, + 255, + 128, + 15, + 255, + 131, + 11, + 255, + 128, + 15, + 255, + 131, + 11, + 255, + 128, + 15, + 255, + 40, + 20, + 255, + 128, + 15, + 255, + 132, + 126, + 255, + 128, + 35, + 235, + NULL, + 126, + 255, + 128, + 35, + 235, + 132, + 126, + NULL, + 128, + 35, + 235, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 636, + 10, + 1, + 207, + 'Dynasty Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 120, + 100, + 49, + 128, + 0, + 222, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 254, + 35, + 66, + 86, + 128, + 3, + 254, + 40, + 20, + 6, + 128, + 0, + 176, + 120, + 100, + 49, + 128, + 0, + 222, + NULL, + 0, + 1, + 128, + 0, + 168, + 120, + 100, + NULL, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 637, + 10, + 1, + 207, + 'Prairie Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 255, + 128, + 15, + 255, + 19, + 163, + 113, + 128, + 0, + 255, + NULL, + 30, + 255, + 128, + 38, + 255, + 19, + 163, + NULL, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 638, + 10, + 1, + 207, + 'Phoenician Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 32, + 215, + 255, + 128, + 45, + 249, + NULL, + 215, + 255, + 128, + 45, + 249, + 32, + 215, + NULL, + 128, + 45, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 639, + 10, + 1, + 207, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 40, + 20, + 255, + 128, + 0, + 180, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 128, + 0, + 1, + 128, + 0, + 181, + NULL, + 0, + 1, + 128, + 0, + 181, + 128, + 0, + NULL, + 128, + 0, + 181, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 640, + 10, + 1, + 207, + 'Guardsman Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 148, + 218, + 49, + 128, + 0, + 210, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 148, + 218, + 49, + 128, + 0, + 210, + NULL, + 218, + 49, + 128, + 0, + 210, + 148, + 218, + NULL, + 128, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 641, + 10, + 1, + 207, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 28, + 50, + 255, + 128, + 38, + 255, + NULL, + 0, + 1, + 128, + 0, + 168, + 28, + 50, + NULL, + 128, + 38, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 642, + 10, + 1, + 207, + 'Silver Smoke Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 121, + 36, + 85, + 128, + 3, + 254, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 121, + 36, + 85, + 128, + 0, + 222, + NULL, + 36, + 85, + 128, + 0, + 222, + 121, + 36, + NULL, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 643, + 10, + 1, + 207, + 'Rangoon Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 35, + 66, + 86, + 128, + 3, + 252, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 216, + 40, + 20, + 6, + 128, + 0, + 176, + 2, + 255, + 255, + 128, + 0, + 250, + NULL, + 255, + 255, + 128, + 0, + 250, + 2, + 255, + NULL, + 128, + 0, + 250, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 720, + 10, + 3, + 226, + 'Judge GTO Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '69judtin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'System', + 'This skin attached for testing purposes.' + ), + ( + 721, + 10, + 1, + 140, + 'Bolero Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 255, + 255, + 128, + 0, + 250, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 52, + 255, + 128, + 0, + 249, + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 'Factory', + 'Copied from 67 Camaro base paint scheme for temporary use.' + ), + ( + 722, + 10, + 1, + 140, + 'Deepwater Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 148, + 255, + 54, + 152, + 0, + 202, + 148, + 255, + 54, + 152, + 0, + 202, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 170, + 33, + 54, + 128, + 0, + 231, + 148, + 255, + 54, + 152, + 0, + 202, + 0, + 'factory', + 'Copied from 67 Camaro base paint scheme for temporary use.' + ), + ( + 723, + 10, + 1, + 142, + 'Medium Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 151, + 135, + 158, + 128, + 16, + 232, + 151, + 135, + 158, + 128, + 16, + 232, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 151, + 135, + 158, + 128, + 16, + 232, + 151, + 135, + 158, + 128, + 16, + 232, + 151, + 135, + 158, + 128, + 16, + 232, + 0, + 'factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 724, + 10, + 1, + 142, + 'Medium Lime', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 45, + 102, + 112, + 128, + 16, + 211, + 45, + 102, + 112, + 128, + 16, + 211, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 102, + 112, + 128, + 16, + 211, + 45, + 102, + 112, + 128, + 16, + 211, + 45, + 102, + 112, + 128, + 16, + 211, + 0, + 'factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 726, + 1, + 3, + 142, + 'Boss 429', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '70mb4tin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Unknown creator. Skin attached for testing purposes.' + ), + ( + 727, + 10, + 1, + 210, + 'Medium Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 151, + 135, + 158, + 128, + 16, + 232, + 151, + 135, + 158, + 128, + 16, + 232, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 151, + 135, + 158, + 128, + 16, + 232, + 151, + 135, + 158, + 128, + 16, + 232, + 151, + 135, + 158, + 128, + 16, + 232, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 728, + 10, + 1, + 218, + 'Bolero Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 30, + 10, + 5, + 128, + 0, + 214, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 0, + 255, + 255, + 111, + 16, + 255, + 0, + 83, + 255, + 128, + 15, + 255, + 0, + 255, + 255, + 111, + 16, + 255, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 729, + 10, + 1, + 218, + 'Deep Water Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 30, + 10, + 126, + 128, + 0, + 248, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 148, + 255, + 54, + 135, + 0, + 194, + 170, + 33, + 54, + 128, + 0, + 239, + 148, + 255, + 54, + 135, + 0, + 194, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 730, + 10, + 1, + 219, + 'Provincial White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 16, + 255, + 255, + 128, + 22, + 255, + 128, + 5, + 255, + 128, + 14, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 0, + 'system', + 'Skin taken from 67 Camaro (base) for temporary use.' + ), + ( + 731, + 10, + 1, + 219, + 'Bolero Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 255, + 255, + 128, + 0, + 250, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 52, + 255, + 128, + 0, + 168, + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 'system', + 'Skin taken from 67 Camaro (base) for temporary use.' + ), + ( + 732, + 10, + 3, + 219, + 'RS Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '67rsctin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Skin attached for testing purposes.' + ), + ( + 733, + 10, + 1, + 220, + 'Provincial White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 16, + 255, + 255, + 128, + 22, + 255, + 128, + 5, + 255, + 128, + 14, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 0, + 'system', + 'Skin taken from 67 Camaro (base) for temporary use.' + ), + ( + 734, + 10, + 3, + 220, + 'Z-28 Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '67Z28tin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Skin attached for testing purposes.' + ), + ( + 735, + 10, + 1, + 154, + 'Big Bad Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 84, + 70, + 255, + 128, + 0, + 249, + 66, + 255, + 255, + 128, + 0, + 253, + 66, + 255, + 255, + 128, + 0, + 253, + 26, + 56, + 94, + 128, + 0, + 255, + 26, + 56, + 94, + 128, + 0, + 250, + 66, + 255, + 255, + 128, + 0, + 253, + 7, + 7, + 14, + 128, + 0, + 171, + 66, + 255, + 255, + 128, + 0, + 253, + 0, + 'system', + 'Skin taken from 69 AMX (base). Should be a correct skin for this car.' + ), + ( + 736, + 10, + 1, + 154, + 'Big Bad Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 16, + 113, + 255, + 128, + 23, + 255, + 16, + 254, + 255, + 113, + 23, + 255, + 16, + 254, + 255, + 113, + 23, + 255, + 10, + 10, + 10, + 128, + 0, + 246, + 10, + 10, + 10, + 128, + 0, + 246, + 16, + 254, + 255, + 113, + 23, + 255, + 7, + 7, + 14, + 128, + 0, + 171, + 16, + 254, + 255, + 113, + 23, + 255, + 0, + 'system', + 'Skin taken from 69 AMX (base). Should be a correct skin for this car.' + ), + ( + 737, + 10, + 1, + 154, + 'Big Bad Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69amctin', + 170, + 101, + 205, + 128, + 0, + 255, + 158, + 255, + 205, + 128, + 0, + 245, + 158, + 255, + 205, + 128, + 0, + 245, + 10, + 10, + 10, + 128, + 0, + 246, + 10, + 10, + 10, + 128, + 0, + 246, + 158, + 255, + 205, + 128, + 0, + 171, + 7, + 7, + 14, + 128, + 0, + 171, + 158, + 255, + 205, + 128, + 0, + 245, + 0, + 'system', + 'Skin taken from 69 AMX (base). Should be a correct skin for this car.' + ), + ( + 738, + 10, + 1, + 157, + 'Ice Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 134, + 43, + 109, + 128, + 0, + 254, + 134, + 163, + 109, + 94, + 13, + 244, + 30, + 15, + 255, + 128, + 10, + 255, + 30, + 15, + 255, + 128, + 27, + 255, + 30, + 10, + 203, + 128, + 33, + 255, + 134, + 2, + 219, + 128, + 23, + 255, + 134, + 163, + 109, + 94, + 13, + 244, + 134, + 163, + 109, + 94, + 13, + 244, + 0, + 'system', + 'Skin taken from 69 Road Runner (base) for temporary use.' + ), + ( + 739, + 10, + 1, + 157, + 'Platinum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 26, + 28, + 135, + 128, + 0, + 249, + 60, + 56, + 135, + 128, + 0, + 233, + 30, + 107, + 62, + 128, + 0, + 241, + 30, + 107, + 62, + 128, + 0, + 254, + 30, + 10, + 10, + 128, + 0, + 206, + 1, + 0, + 2, + 128, + 0, + 182, + 60, + 56, + 135, + 128, + 0, + 233, + 60, + 56, + 135, + 128, + 0, + 233, + 0, + 'system', + 'Skin taken from 69 Road Runner (base) for temporary use.' + ), + ( + 740, + 10, + 1, + 210, + 'Medium Lime', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 45, + 102, + 112, + 128, + 16, + 211, + 45, + 102, + 112, + 128, + 16, + 211, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 102, + 112, + 128, + 16, + 211, + 45, + 102, + 112, + 128, + 16, + 211, + 45, + 102, + 112, + 128, + 16, + 211, + 0, + 'system', + 'As per 70 Mustang CSV.' + ), + ( + 743, + 10, + 2, + 211, + 'GT Cobra Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '69gtttin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Skin applied for testing purposes.' + ), + ( + 744, + 10, + 1, + 212, + 'Medium Lime', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 45, + 102, + 112, + 128, + 16, + 211, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 102, + 112, + 128, + 16, + 211, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 102, + 112, + 128, + 16, + 211, + 0, + 'system', + 'As per 70 Mach 1 CSV.' + ), + ( + 745, + 10, + 3, + 212, + 'Mach 1 Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '70mactin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Skin attached for testing purposes.' + ), + ( + 746, + 10, + 1, + 213, + 'Lime Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 47, + 163, + 165, + 128, + 1, + 250, + 0, + 'system', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 748, + 10, + 1, + 214, + 'Lime Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 47, + 163, + 165, + 128, + 1, + 250, + 0, + 'system', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 749, + 10, + 3, + 214, + '440 Cuda Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '70h44tin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Skin attached for testing purposes.' + ), + ( + 750, + 10, + 1, + 215, + 'Lime Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 47, + 163, + 165, + 128, + 1, + 250, + 0, + 'system', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 751, + 10, + 3, + 215, + 'AAR Cuda Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '70aartin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Skin attached for testing purposes.' + ), + ( + 752, + 10, + 1, + 216, + 'Tahitian Walnut', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 19, + 62, + 84, + 128, + 0, + 239, + 19, + 177, + 47, + 143, + 0, + 194, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 19, + 177, + 47, + 143, + 0, + 194, + 19, + 177, + 47, + 143, + 0, + 194, + 19, + 177, + 47, + 143, + 0, + 194, + 0, + 'System', + 'As per 71 Duster CSV.' + ), + ( + 753, + 10, + 3, + 216, + '340 Duster Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '71wedtin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'Skin attached for testing purposes.' + ), + ( + 754, + 10, + 1, + 222, + 'Cranberry Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 6, + 56, + 91, + 128, + 0, + 245, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 6, + 254, + 91, + 128, + 0, + 233, + 6, + 254, + 91, + 128, + 0, + 233, + 6, + 254, + 91, + 128, + 0, + 233, + 0, + 'system', + 'As per 70 El Camino CSV.' + ), + ( + 755, + 10, + 3, + 222, + 'El Camino SS Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '70ssetin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'This skin assigned for testing purposes.' + ), + ( + 756, + 10, + 1, + 223, + 'Fathom Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssntin', + 137, + 255, + 52, + 128, + 0, + 192, + 137, + 255, + 52, + 128, + 0, + 192, + 137, + 255, + 52, + 128, + 0, + 192, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 137, + 57, + 52, + 128, + 0, + 237, + 137, + 255, + 52, + 128, + 0, + 192, + 137, + 255, + 52, + 128, + 0, + 192, + 0, + 'system', + 'As per 70 Nova CSV.' + ), + ( + 757, + 10, + 3, + 223, + 'Nova SS Paint', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 300, + '70ssntin', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 0, + 'system', + 'This skin assigned for testing purposes.' + ), + ( + 758, + 10, + 1, + 227, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 128, + 0, + 255, + 128, + 1, + 254, + 20, + 7, + 14, + 128, + 0, + 227, + 128, + 0, + 255, + 128, + 14, + 255, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 128, + 0, + 255, + 128, + 14, + 255, + 0, + 'System', + 'As per 70 Firebird CSV' + ), + ( + 760, + 10, + 1, + 226, + 'Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 17, + 122, + 255, + 128, + 15, + 253, + 24, + 255, + 255, + 128, + 15, + 253, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 28, + 255, + 255, + 128, + 15, + 253, + 37, + 255, + 255, + 128, + 17, + 255, + 15, + 255, + 255, + 128, + 23, + 253, + 0, + 'system', + 'As per 69 GTO CSV, but this color does not appear in the reference material for the car.' + ), + ( + 761, + 10, + 1, + 224, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69oldtin', + 2, + 150, + 255, + 128, + 0, + 236, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 28, + 26, + 164, + 128, + 10, + 255, + 30, + 10, + 1, + 128, + 0, + 194, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 0, + 'system', + 'This color is not in the 60 Olds 442 CSV and can not be verified. It is also not a referenced factory color.' + ), + ( + 763, + 10, + 1, + 221, + 'Monza Red/White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 1, + 47, + 255, + 128, + 0, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 1, + 47, + 255, + 128, + 0, + 255, + 142, + 3, + 255, + 128, + 36, + 255, + 1, + 255, + 255, + 139, + 0, + 249, + 0, + 'system', + 'This skin taken from 70 Chevelle (base) for testing purposes.' + ), + ( + 764, + 10, + 1, + 217, + 'Ember Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 5, + 254, + 146, + 128, + 0, + 231, + 24, + 71, + 202, + 152, + 3, + 214, + 5, + 254, + 146, + 128, + 0, + 219, + 24, + 71, + 202, + 152, + 3, + 231, + 1, + 71, + 255, + 128, + 0, + 249, + 24, + 71, + 202, + 152, + 3, + 231, + 5, + 254, + 146, + 128, + 0, + 219, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 765, + 10, + 1, + 216, + 'Amber Sherwood', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 58, + 35, + 77, + 128, + 0, + 233, + 122, + 5, + 184, + 128, + 0, + 246, + 22, + 134, + 45, + 128, + 0, + 241, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 58, + 147, + 77, + 151, + 0, + 205, + 20, + 7, + 6, + 128, + 0, + 165, + 58, + 147, + 77, + 151, + 0, + 205, + 0, + 'system', + 'As per 71 Duster CSV.' + ), + ( + 766, + 10, + 1, + 215, + 'Lime Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 58, + 35, + 77, + 128, + 0, + 233, + 122, + 5, + 184, + 128, + 0, + 246, + 22, + 134, + 45, + 128, + 0, + 241, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 58, + 147, + 77, + 151, + 0, + 205, + 20, + 7, + 6, + 128, + 0, + 165, + 58, + 147, + 77, + 151, + 0, + 205, + 0, + 'system', + 'Skin taken from 71 Duster (base) for testing purposes. Should be removed at conclusion of Beta or sooner.' + ), + ( + 767, + 10, + 1, + 214, + 'Lime Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 58, + 35, + 77, + 128, + 0, + 233, + 122, + 5, + 184, + 128, + 0, + 246, + 22, + 134, + 45, + 128, + 0, + 241, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 58, + 147, + 77, + 151, + 0, + 205, + 20, + 7, + 6, + 128, + 0, + 165, + 58, + 147, + 77, + 151, + 0, + 205, + 0, + 'system', + 'Skin taken from 71 Duster (base) for testing purposes. Should be removed at conclusion of Beta or sooner.' + ), + ( + 768, + 10, + 1, + 213, + 'Jamaica Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 148, + 203, + 101, + 141, + 0, + 229, + 0, + 'system', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 769, + 10, + 1, + 212, + 'Candyapple Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mactin', + 6, + 194, + 143, + 128, + 6, + 240, + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 6, + 194, + 143, + 128, + 6, + 240, + 35, + 64, + 158, + 128, + 16, + 244, + 6, + 164, + 143, + 128, + 6, + 240, + 0, + 'system', + 'As per 70 Mach 1 CSV.' + ), + ( + 775, + 10, + 1, + 207, + 'Stock Color 5', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 35, + 44, + 178, + 128, + 3, + 252, + 35, + 108, + 64, + 116, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 44, + 178, + 128, + 128, + 223, + 168, + 173, + 78, + 124, + 18, + 228, + 168, + 173, + 78, + 124, + 18, + 228, + 168, + 173, + 78, + 124, + 18, + 228, + 0, + NULL, + NULL + ), + ( + 776, + 10, + 1, + 207, + 'Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '66cobtin', + 35, + 44, + 178, + 128, + 3, + 252, + 35, + 108, + 64, + 116, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 1, + 1, + 2, + 1, + 0, + 254, + 1, + 253, + 131, + 121, + 40, + 214, + 1, + 253, + 131, + 121, + 40, + 214, + 1, + 253, + 131, + 121, + 40, + 214, + 0, + NULL, + NULL + ), + ( + 777, + 10, + 1, + 207, + 'Sebring Silver / White Stripes', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '66cobtin', + 35, + 44, + 178, + 128, + 3, + 252, + 35, + 108, + 64, + 116, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 44, + 178, + 128, + 128, + 223, + 3, + 1, + 255, + 127, + 2, + 250, + 148, + 66, + 126, + 152, + 67, + 199, + 148, + 66, + 126, + 152, + 67, + 199, + 0, + NULL, + NULL + ), + ( + 778, + 10, + 1, + 207, + 'Red / White Stripes', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '66cobtin', + 35, + 44, + 178, + 128, + 3, + 252, + 35, + 108, + 64, + 116, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 1, + 1, + 2, + 1, + 0, + 254, + 3, + 1, + 255, + 127, + 2, + 250, + 1, + 253, + 131, + 121, + 40, + 214, + 1, + 253, + 131, + 121, + 40, + 214, + 0, + NULL, + NULL + ), + ( + 779, + 10, + 1, + 207, + 'Blue / White Stripes', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '66cobtin', + 35, + 44, + 178, + 128, + 3, + 252, + 35, + 108, + 64, + 116, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 66, + 86, + 128, + 3, + 252, + 35, + 44, + 178, + 128, + 128, + 223, + 3, + 1, + 255, + 127, + 2, + 250, + 168, + 173, + 78, + 124, + 18, + 228, + 168, + 173, + 78, + 124, + 18, + 228, + 0, + NULL, + NULL + ), + ( + 780, + 10, + 4, + 207, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '66cobfla', + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 247, + 232, + 128, + 0, + 255, + 0, + 'Ryan Blinsky', + NULL + ), + ( + 781, + 10, + 5, + 207, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '66cobsca', + 22, + 255, + 224, + 128, + 0, + 255, + 22, + 255, + 224, + 128, + 0, + 255, + 22, + 255, + 224, + 128, + 0, + 255, + 22, + 255, + 224, + 128, + 0, + 255, + 22, + 255, + 224, + 128, + 0, + 255, + 22, + 255, + 224, + 128, + 0, + 255, + 22, + 255, + 224, + 128, + 0, + 255, + 22, + 255, + 224, + 128, + 0, + 255, + 0, + 'Ryan Blinsky', + NULL + ), + ( + 782, + 10, + 6, + 207, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '66cobdec', + 18, + 247, + 207, + 128, + 0, + 255, + 18, + 247, + 207, + 128, + 0, + 255, + 18, + 247, + 207, + 128, + 0, + 255, + 18, + 247, + 207, + 128, + 0, + 255, + 18, + 247, + 207, + 128, + 0, + 255, + 18, + 247, + 207, + 128, + 0, + 255, + 18, + 247, + 207, + 128, + 0, + 255, + 18, + 247, + 207, + 128, + 0, + 255, + 0, + 'Ryan Blinsky', + NULL + ), + ( + 783, + 10, + 7, + 207, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '66cobrus', + 162, + 87, + 92, + 128, + 0, + 255, + 162, + 87, + 92, + 128, + 0, + 255, + 162, + 87, + 92, + 128, + 0, + 255, + 162, + 87, + 92, + 128, + 0, + 255, + 162, + 87, + 92, + 128, + 0, + 255, + 162, + 87, + 92, + 128, + 0, + 255, + 162, + 87, + 92, + 128, + 0, + 255, + 162, + 87, + 92, + 128, + 0, + 255, + 0, + 'Ryan Blinsky', + NULL + ), + ( + 784, + 10, + 4, + 217, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64ssifla', + 129, + 255, + 163, + 128, + 0, + 255, + 129, + 255, + 163, + 128, + 0, + 255, + 129, + 255, + 163, + 128, + 0, + 255, + 129, + 255, + 163, + 128, + 0, + 255, + 129, + 255, + 163, + 128, + 0, + 255, + 129, + 255, + 163, + 128, + 0, + 255, + 129, + 255, + 163, + 128, + 0, + 255, + 129, + 255, + 163, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 785, + 10, + 7, + 217, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '64ssirus', + 250, + 28, + 84, + 128, + 0, + 255, + 250, + 28, + 84, + 128, + 0, + 255, + 250, + 28, + 84, + 128, + 0, + 255, + 250, + 28, + 84, + 128, + 0, + 255, + 250, + 28, + 84, + 128, + 0, + 255, + 250, + 28, + 84, + 128, + 0, + 255, + 250, + 28, + 84, + 128, + 0, + 255, + 250, + 28, + 84, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 786, + 10, + 5, + 217, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64ssisca', + 235, + 153, + 227, + 128, + 0, + 255, + 235, + 153, + 227, + 128, + 0, + 255, + 235, + 153, + 227, + 128, + 0, + 255, + 235, + 153, + 227, + 128, + 0, + 255, + 235, + 153, + 227, + 128, + 0, + 255, + 235, + 153, + 227, + 128, + 0, + 255, + 235, + 153, + 227, + 128, + 0, + 255, + 235, + 153, + 227, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 787, + 10, + 6, + 217, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '64ssidec', + 35, + 204, + 247, + 128, + 0, + 255, + 35, + 204, + 247, + 128, + 0, + 255, + 35, + 204, + 247, + 128, + 0, + 255, + 35, + 204, + 247, + 128, + 0, + 255, + 35, + 204, + 247, + 128, + 0, + 255, + 35, + 204, + 247, + 128, + 0, + 255, + 35, + 204, + 247, + 128, + 0, + 255, + 35, + 204, + 247, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 788, + 10, + 4, + 218, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67cssfla', + 250, + 219, + 184, + 128, + 0, + 255, + 250, + 219, + 184, + 128, + 0, + 255, + 250, + 219, + 184, + 128, + 0, + 255, + 250, + 219, + 184, + 128, + 0, + 255, + 250, + 219, + 184, + 128, + 0, + 255, + 250, + 219, + 184, + 128, + 0, + 255, + 250, + 219, + 184, + 128, + 0, + 255, + 250, + 219, + 184, + 128, + 0, + 255, + 0, + 'Blinksy', + NULL + ), + ( + 789, + 10, + 5, + 218, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67csssca', + 190, + 214, + 189, + 128, + 0, + 255, + 190, + 214, + 189, + 128, + 0, + 255, + 190, + 214, + 189, + 128, + 0, + 255, + 190, + 214, + 189, + 128, + 0, + 255, + 190, + 214, + 189, + 128, + 0, + 255, + 190, + 214, + 189, + 128, + 0, + 255, + 190, + 214, + 189, + 128, + 0, + 255, + 190, + 214, + 189, + 128, + 0, + 255, + 0, + 'Blinksy', + NULL + ), + ( + 790, + 10, + 7, + 218, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '67cssrus', + 10, + 89, + 84, + 128, + 0, + 255, + 10, + 89, + 84, + 128, + 0, + 255, + 10, + 89, + 84, + 128, + 0, + 255, + 10, + 89, + 84, + 128, + 0, + 255, + 10, + 89, + 84, + 128, + 0, + 255, + 10, + 89, + 84, + 128, + 0, + 255, + 10, + 89, + 84, + 128, + 0, + 255, + 10, + 89, + 84, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 791, + 10, + 6, + 218, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67cssdec', + 55, + 230, + 166, + 128, + 0, + 255, + 55, + 230, + 166, + 128, + 0, + 255, + 55, + 230, + 166, + 128, + 0, + 255, + 55, + 230, + 166, + 128, + 0, + 255, + 55, + 230, + 166, + 128, + 0, + 255, + 55, + 230, + 166, + 128, + 0, + 255, + 55, + 230, + 166, + 128, + 0, + 255, + 55, + 230, + 166, + 128, + 0, + 255, + 0, + 'Blinksy', + NULL + ), + ( + 792, + 10, + 4, + 219, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67rscfla', + 152, + 178, + 201, + 128, + 0, + 255, + 152, + 178, + 201, + 128, + 0, + 255, + 152, + 178, + 201, + 128, + 0, + 255, + 152, + 178, + 201, + 128, + 0, + 255, + 152, + 178, + 201, + 128, + 0, + 255, + 152, + 178, + 201, + 128, + 0, + 255, + 152, + 178, + 201, + 128, + 0, + 255, + 152, + 178, + 201, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 793, + 10, + 6, + 219, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67rscdec', + 114, + 168, + 209, + 128, + 0, + 255, + 114, + 168, + 209, + 128, + 0, + 255, + 114, + 168, + 209, + 128, + 0, + 255, + 114, + 168, + 209, + 128, + 0, + 255, + 114, + 168, + 209, + 128, + 0, + 255, + 114, + 168, + 209, + 128, + 0, + 255, + 114, + 168, + 209, + 128, + 0, + 255, + 114, + 168, + 209, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 794, + 10, + 5, + 219, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67rscsca', + 35, + 176, + 219, + 128, + 0, + 255, + 35, + 176, + 219, + 128, + 0, + 255, + 35, + 176, + 219, + 128, + 0, + 255, + 35, + 176, + 219, + 128, + 0, + 255, + 35, + 176, + 219, + 128, + 0, + 255, + 35, + 176, + 219, + 128, + 0, + 255, + 35, + 176, + 219, + 128, + 0, + 255, + 35, + 176, + 219, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 795, + 10, + 7, + 219, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '67rscrus', + 4, + 102, + 115, + 128, + 0, + 255, + 4, + 102, + 115, + 128, + 0, + 255, + 4, + 102, + 115, + 128, + 0, + 255, + 4, + 102, + 115, + 128, + 0, + 255, + 4, + 102, + 115, + 128, + 0, + 255, + 4, + 102, + 115, + 128, + 0, + 255, + 4, + 102, + 115, + 128, + 0, + 255, + 4, + 102, + 115, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 796, + 10, + 4, + 140, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67sscfla', + 146, + 168, + 194, + 128, + 0, + 255, + 146, + 168, + 194, + 128, + 0, + 255, + 146, + 168, + 194, + 128, + 0, + 255, + 146, + 168, + 194, + 128, + 0, + 255, + 146, + 168, + 194, + 128, + 0, + 255, + 146, + 168, + 194, + 128, + 0, + 255, + 146, + 168, + 194, + 128, + 0, + 255, + 146, + 168, + 194, + 128, + 0, + 255, + 0, + 'Blinksy', + NULL + ), + ( + 797, + 10, + 5, + 140, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67sscsca', + 105, + 138, + 199, + 128, + 0, + 255, + 105, + 138, + 199, + 128, + 0, + 255, + 105, + 138, + 199, + 128, + 0, + 255, + 105, + 138, + 199, + 128, + 0, + 255, + 105, + 138, + 199, + 128, + 0, + 255, + 105, + 138, + 199, + 128, + 0, + 255, + 105, + 138, + 199, + 128, + 0, + 255, + 105, + 138, + 199, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 798, + 10, + 6, + 140, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67sscdec', + 163, + 92, + 207, + 128, + 0, + 255, + 163, + 92, + 207, + 128, + 0, + 255, + 163, + 92, + 207, + 128, + 0, + 255, + 163, + 92, + 207, + 128, + 0, + 255, + 163, + 92, + 207, + 128, + 0, + 255, + 163, + 92, + 207, + 128, + 0, + 255, + 163, + 92, + 207, + 128, + 0, + 255, + 163, + 92, + 207, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 799, + 10, + 7, + 140, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '67sscrus', + 6, + 84, + 102, + 128, + 0, + 255, + 6, + 84, + 102, + 128, + 0, + 255, + 6, + 84, + 102, + 128, + 0, + 255, + 6, + 84, + 102, + 128, + 0, + 255, + 6, + 84, + 102, + 128, + 0, + 255, + 6, + 84, + 102, + 128, + 0, + 255, + 6, + 84, + 102, + 128, + 0, + 255, + 6, + 84, + 102, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 800, + 10, + 4, + 220, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67z28fla', + 16, + 184, + 214, + 128, + 0, + 255, + 16, + 184, + 214, + 128, + 0, + 255, + 16, + 184, + 214, + 128, + 0, + 255, + 16, + 184, + 214, + 128, + 0, + 255, + 16, + 184, + 214, + 128, + 0, + 255, + 16, + 184, + 214, + 128, + 0, + 255, + 16, + 184, + 214, + 128, + 0, + 255, + 16, + 184, + 214, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 801, + 10, + 5, + 220, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67z28sca', + 246, + 171, + 186, + 128, + 0, + 255, + 246, + 171, + 186, + 128, + 0, + 255, + 246, + 171, + 186, + 128, + 0, + 255, + 246, + 171, + 186, + 128, + 0, + 255, + 246, + 171, + 186, + 128, + 0, + 255, + 246, + 171, + 186, + 128, + 0, + 255, + 246, + 171, + 186, + 128, + 0, + 255, + 246, + 171, + 186, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 802, + 10, + 6, + 220, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '67z28dec', + 112, + 92, + 178, + 128, + 0, + 255, + 112, + 92, + 178, + 128, + 0, + 255, + 112, + 92, + 178, + 128, + 0, + 255, + 112, + 92, + 178, + 128, + 0, + 255, + 112, + 92, + 178, + 128, + 0, + 255, + 112, + 92, + 178, + 128, + 0, + 255, + 112, + 92, + 178, + 128, + 0, + 255, + 112, + 92, + 178, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 803, + 10, + 7, + 220, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '67z28rus', + 10, + 33, + 99, + 128, + 0, + 255, + 10, + 33, + 99, + 128, + 0, + 255, + 10, + 33, + 99, + 128, + 0, + 255, + 10, + 33, + 99, + 128, + 0, + 255, + 10, + 33, + 99, + 128, + 0, + 255, + 10, + 33, + 99, + 128, + 0, + 255, + 10, + 33, + 99, + 128, + 0, + 255, + 10, + 33, + 99, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 804, + 10, + 4, + 154, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69bigfla', + 46, + 184, + 199, + 128, + 0, + 255, + 46, + 184, + 199, + 128, + 0, + 255, + 46, + 184, + 199, + 128, + 0, + 255, + 46, + 184, + 199, + 128, + 0, + 255, + 46, + 184, + 199, + 128, + 0, + 255, + 46, + 184, + 199, + 128, + 0, + 255, + 46, + 184, + 199, + 128, + 0, + 255, + 46, + 184, + 199, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 805, + 10, + 5, + 154, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69bigsca', + 200, + 166, + 232, + 128, + 0, + 255, + 200, + 166, + 232, + 128, + 0, + 255, + 200, + 166, + 232, + 128, + 0, + 255, + 200, + 166, + 232, + 128, + 0, + 255, + 200, + 166, + 232, + 128, + 0, + 255, + 200, + 166, + 232, + 128, + 0, + 255, + 200, + 166, + 232, + 128, + 0, + 255, + 200, + 166, + 232, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 806, + 10, + 6, + 154, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69bigdec', + 201, + 20, + 199, + 128, + 0, + 255, + 201, + 20, + 199, + 128, + 0, + 255, + 201, + 20, + 199, + 128, + 0, + 255, + 201, + 20, + 199, + 128, + 0, + 255, + 201, + 20, + 199, + 128, + 0, + 255, + 201, + 20, + 199, + 128, + 0, + 255, + 201, + 20, + 199, + 128, + 0, + 255, + 201, + 20, + 199, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 807, + 10, + 7, + 154, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69bigrus', + 246, + 23, + 105, + 128, + 0, + 255, + 246, + 23, + 105, + 128, + 0, + 255, + 246, + 23, + 105, + 128, + 0, + 255, + 246, + 23, + 105, + 128, + 0, + 255, + 246, + 23, + 105, + 128, + 0, + 255, + 246, + 23, + 105, + 128, + 0, + 255, + 246, + 23, + 105, + 128, + 0, + 255, + 246, + 23, + 105, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 808, + 10, + 4, + 224, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69w30fla', + 25, + 255, + 192, + 128, + 0, + 255, + 25, + 255, + 192, + 128, + 0, + 255, + 25, + 255, + 192, + 128, + 0, + 255, + 25, + 255, + 192, + 128, + 0, + 255, + 25, + 255, + 192, + 128, + 0, + 255, + 25, + 255, + 192, + 128, + 0, + 255, + 25, + 255, + 192, + 128, + 0, + 255, + 25, + 255, + 192, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 809, + 10, + 5, + 224, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69w30sca', + 157, + 120, + 209, + 128, + 0, + 255, + 157, + 120, + 209, + 128, + 0, + 255, + 157, + 120, + 209, + 128, + 0, + 255, + 157, + 120, + 209, + 128, + 0, + 255, + 157, + 120, + 209, + 128, + 0, + 255, + 157, + 120, + 209, + 128, + 0, + 255, + 157, + 120, + 209, + 128, + 0, + 255, + 157, + 120, + 209, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 810, + 10, + 6, + 224, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69w30dec', + 170, + 255, + 191, + 128, + 0, + 255, + 170, + 255, + 191, + 128, + 0, + 255, + 170, + 255, + 191, + 128, + 0, + 255, + 170, + 255, + 191, + 128, + 0, + 255, + 170, + 255, + 191, + 128, + 0, + 255, + 170, + 255, + 191, + 128, + 0, + 255, + 170, + 255, + 191, + 128, + 0, + 255, + 170, + 255, + 191, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 811, + 10, + 7, + 224, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69w30rus', + 112, + 140, + 69, + 128, + 0, + 255, + 112, + 140, + 69, + 128, + 0, + 255, + 112, + 140, + 69, + 128, + 0, + 255, + 112, + 140, + 69, + 128, + 0, + 255, + 112, + 140, + 69, + 128, + 0, + 255, + 112, + 140, + 69, + 128, + 0, + 255, + 112, + 140, + 69, + 128, + 0, + 255, + 112, + 140, + 69, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 812, + 10, + 4, + 211, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gttfla', + 155, + 232, + 255, + 128, + 0, + 255, + 155, + 232, + 255, + 128, + 0, + 255, + 155, + 232, + 255, + 128, + 0, + 255, + 155, + 232, + 255, + 128, + 0, + 255, + 155, + 232, + 255, + 128, + 0, + 255, + 155, + 232, + 255, + 128, + 0, + 255, + 155, + 232, + 255, + 128, + 0, + 255, + 155, + 232, + 255, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 813, + 10, + 5, + 211, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gttsca', + 251, + 255, + 212, + 128, + 0, + 255, + 251, + 255, + 212, + 128, + 0, + 255, + 251, + 255, + 212, + 128, + 0, + 255, + 251, + 255, + 212, + 128, + 0, + 255, + 251, + 255, + 212, + 128, + 0, + 255, + 251, + 255, + 212, + 128, + 0, + 255, + 251, + 255, + 212, + 128, + 0, + 255, + 251, + 255, + 212, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 814, + 10, + 6, + 211, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gttdec', + 105, + 107, + 158, + 128, + 0, + 255, + 105, + 107, + 158, + 128, + 0, + 255, + 105, + 107, + 158, + 128, + 0, + 255, + 105, + 107, + 158, + 128, + 0, + 255, + 105, + 107, + 158, + 128, + 0, + 255, + 105, + 107, + 158, + 128, + 0, + 255, + 105, + 107, + 158, + 128, + 0, + 255, + 105, + 107, + 158, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 815, + 10, + 7, + 211, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69gttrus', + 212, + 13, + 112, + 128, + 0, + 255, + 212, + 13, + 112, + 128, + 0, + 255, + 212, + 13, + 112, + 128, + 0, + 255, + 212, + 13, + 112, + 128, + 0, + 255, + 212, + 13, + 112, + 128, + 0, + 255, + 212, + 13, + 112, + 128, + 0, + 255, + 212, + 13, + 112, + 128, + 0, + 255, + 212, + 13, + 112, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 816, + 10, + 4, + 225, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69hurfla', + 197, + 128, + 212, + 128, + 0, + 255, + 197, + 128, + 212, + 128, + 0, + 255, + 197, + 128, + 212, + 128, + 0, + 255, + 197, + 128, + 212, + 128, + 0, + 255, + 197, + 128, + 212, + 128, + 0, + 255, + 197, + 128, + 212, + 128, + 0, + 255, + 197, + 128, + 212, + 128, + 0, + 255, + 197, + 128, + 212, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 817, + 10, + 5, + 225, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69hursca', + 41, + 143, + 204, + 128, + 0, + 255, + 41, + 143, + 204, + 128, + 0, + 255, + 41, + 143, + 204, + 128, + 0, + 255, + 41, + 143, + 204, + 128, + 0, + 255, + 41, + 143, + 204, + 128, + 0, + 255, + 41, + 143, + 204, + 128, + 0, + 255, + 41, + 143, + 204, + 128, + 0, + 255, + 41, + 143, + 204, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 818, + 10, + 6, + 225, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69hurdec', + 174, + 43, + 59, + 128, + 0, + 255, + 174, + 43, + 59, + 128, + 0, + 255, + 174, + 43, + 59, + 128, + 0, + 255, + 174, + 43, + 59, + 128, + 0, + 255, + 174, + 43, + 59, + 128, + 0, + 255, + 174, + 43, + 59, + 128, + 0, + 255, + 174, + 43, + 59, + 128, + 0, + 255, + 174, + 43, + 59, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 819, + 10, + 7, + 225, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69hurrus', + 11, + 69, + 69, + 128, + 0, + 255, + 11, + 69, + 69, + 128, + 0, + 255, + 11, + 69, + 69, + 128, + 0, + 255, + 11, + 69, + 69, + 128, + 0, + 255, + 11, + 69, + 69, + 128, + 0, + 255, + 11, + 69, + 69, + 128, + 0, + 255, + 11, + 69, + 69, + 128, + 0, + 255, + 11, + 69, + 69, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 820, + 10, + 4, + 226, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69judfla', + 186, + 117, + 222, + 128, + 0, + 255, + 186, + 117, + 222, + 128, + 0, + 255, + 186, + 117, + 222, + 128, + 0, + 255, + 186, + 117, + 222, + 128, + 0, + 255, + 186, + 117, + 222, + 128, + 0, + 255, + 186, + 117, + 222, + 128, + 0, + 255, + 186, + 117, + 222, + 128, + 0, + 255, + 186, + 117, + 222, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 821, + 10, + 5, + 226, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69judsca', + 35, + 201, + 224, + 128, + 0, + 255, + 35, + 201, + 224, + 128, + 0, + 255, + 35, + 201, + 224, + 128, + 0, + 255, + 35, + 201, + 224, + 128, + 0, + 255, + 35, + 201, + 224, + 128, + 0, + 255, + 35, + 201, + 224, + 128, + 0, + 255, + 35, + 201, + 224, + 128, + 0, + 255, + 35, + 201, + 224, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 822, + 10, + 6, + 226, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69juddec', + 246, + 181, + 222, + 128, + 0, + 255, + 246, + 181, + 222, + 128, + 0, + 255, + 246, + 181, + 222, + 128, + 0, + 255, + 246, + 181, + 222, + 128, + 0, + 255, + 246, + 181, + 222, + 128, + 0, + 255, + 246, + 181, + 222, + 128, + 0, + 255, + 246, + 181, + 222, + 128, + 0, + 255, + 246, + 181, + 222, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 823, + 10, + 7, + 226, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69judrus', + 5, + 107, + 84, + 128, + 0, + 255, + 5, + 107, + 84, + 128, + 0, + 255, + 5, + 107, + 84, + 128, + 0, + 255, + 5, + 107, + 84, + 128, + 0, + 255, + 5, + 107, + 84, + 128, + 0, + 255, + 5, + 107, + 84, + 128, + 0, + 255, + 5, + 107, + 84, + 128, + 0, + 255, + 5, + 107, + 84, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 824, + 10, + 4, + 222, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70ssefla', + 163, + 232, + 150, + 128, + 0, + 255, + 163, + 232, + 150, + 128, + 0, + 255, + 163, + 232, + 150, + 128, + 0, + 255, + 163, + 232, + 150, + 128, + 0, + 255, + 163, + 232, + 150, + 128, + 0, + 255, + 163, + 232, + 150, + 128, + 0, + 255, + 163, + 232, + 150, + 128, + 0, + 255, + 163, + 232, + 150, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 825, + 10, + 5, + 222, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70ssesca', + 10, + 235, + 194, + 128, + 0, + 255, + 10, + 235, + 194, + 128, + 0, + 255, + 10, + 235, + 194, + 128, + 0, + 255, + 10, + 235, + 194, + 128, + 0, + 255, + 10, + 235, + 194, + 128, + 0, + 255, + 10, + 235, + 194, + 128, + 0, + 255, + 10, + 235, + 194, + 128, + 0, + 255, + 10, + 235, + 194, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 826, + 10, + 6, + 222, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70ssedec', + 80, + 168, + 125, + 128, + 0, + 255, + 80, + 168, + 125, + 128, + 0, + 255, + 80, + 168, + 125, + 128, + 0, + 255, + 80, + 168, + 125, + 128, + 0, + 255, + 80, + 168, + 125, + 128, + 0, + 255, + 80, + 168, + 125, + 128, + 0, + 255, + 80, + 168, + 125, + 128, + 0, + 255, + 80, + 168, + 125, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 827, + 10, + 7, + 222, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70sserus', + 8, + 150, + 92, + 128, + 0, + 255, + 8, + 150, + 92, + 128, + 0, + 255, + 8, + 150, + 92, + 128, + 0, + 255, + 8, + 150, + 92, + 128, + 0, + 255, + 8, + 150, + 92, + 128, + 0, + 255, + 8, + 150, + 92, + 128, + 0, + 255, + 8, + 150, + 92, + 128, + 0, + 255, + 8, + 150, + 92, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 828, + 10, + 4, + 223, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70ssnfla', + 140, + 212, + 150, + 128, + 0, + 255, + 140, + 212, + 150, + 128, + 0, + 255, + 140, + 212, + 150, + 128, + 0, + 255, + 140, + 212, + 150, + 128, + 0, + 255, + 140, + 212, + 150, + 128, + 0, + 255, + 140, + 212, + 150, + 128, + 0, + 255, + 140, + 212, + 150, + 128, + 0, + 255, + 140, + 212, + 150, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 829, + 10, + 5, + 223, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70ssnsca', + 33, + 201, + 184, + 128, + 0, + 255, + 33, + 201, + 184, + 128, + 0, + 255, + 33, + 201, + 184, + 128, + 0, + 255, + 33, + 201, + 184, + 128, + 0, + 255, + 33, + 201, + 184, + 128, + 0, + 255, + 33, + 201, + 184, + 128, + 0, + 255, + 33, + 201, + 184, + 128, + 0, + 255, + 33, + 201, + 184, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 830, + 10, + 6, + 223, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70ssndec', + 179, + 184, + 201, + 128, + 0, + 255, + 179, + 184, + 201, + 128, + 0, + 255, + 179, + 184, + 201, + 128, + 0, + 255, + 179, + 184, + 201, + 128, + 0, + 255, + 179, + 184, + 201, + 128, + 0, + 255, + 179, + 184, + 201, + 128, + 0, + 255, + 179, + 184, + 201, + 128, + 0, + 255, + 179, + 184, + 201, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 831, + 10, + 7, + 223, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70ssnrus', + 249, + 43, + 87, + 128, + 0, + 255, + 249, + 43, + 87, + 128, + 0, + 255, + 249, + 43, + 87, + 128, + 0, + 255, + 249, + 43, + 87, + 128, + 0, + 255, + 249, + 43, + 87, + 128, + 0, + 255, + 249, + 43, + 87, + 128, + 0, + 255, + 249, + 43, + 87, + 128, + 0, + 255, + 249, + 43, + 87, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 832, + 10, + 4, + 221, + 'Blaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70cssfla', + 227, + 161, + 199, + 128, + 0, + 255, + 227, + 161, + 199, + 128, + 0, + 255, + 227, + 161, + 199, + 128, + 0, + 255, + 227, + 161, + 199, + 128, + 0, + 255, + 227, + 161, + 199, + 128, + 0, + 255, + 227, + 161, + 199, + 128, + 0, + 255, + 227, + 161, + 199, + 128, + 0, + 255, + 227, + 161, + 199, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 833, + 10, + 5, + 221, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70csssca', + 139, + 247, + 189, + 128, + 0, + 255, + 139, + 247, + 189, + 128, + 0, + 255, + 139, + 247, + 189, + 128, + 0, + 255, + 139, + 247, + 189, + 128, + 0, + 255, + 139, + 247, + 189, + 128, + 0, + 255, + 139, + 247, + 189, + 128, + 0, + 255, + 139, + 247, + 189, + 128, + 0, + 255, + 139, + 247, + 189, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 834, + 10, + 6, + 221, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70cssdec', + 28, + 186, + 214, + 128, + 0, + 255, + 28, + 186, + 214, + 128, + 0, + 255, + 28, + 186, + 214, + 128, + 0, + 255, + 28, + 186, + 214, + 128, + 0, + 255, + 28, + 186, + 214, + 128, + 0, + 255, + 28, + 186, + 214, + 128, + 0, + 255, + 28, + 186, + 214, + 128, + 0, + 255, + 28, + 186, + 214, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 835, + 10, + 7, + 221, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70cssrus', + 2, + 97, + 92, + 128, + 0, + 255, + 2, + 97, + 92, + 128, + 0, + 255, + 2, + 97, + 92, + 128, + 0, + 255, + 2, + 97, + 92, + 128, + 0, + 255, + 2, + 97, + 92, + 128, + 0, + 255, + 2, + 97, + 92, + 128, + 0, + 255, + 2, + 97, + 92, + 128, + 0, + 255, + 2, + 97, + 92, + 128, + 0, + 255, + 0, + 'Blinsky', + NULL + ), + ( + 836, + 10, + 4, + 212, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70macfla', + 250, + 255, + 112, + 128, + 0, + 255, + 250, + 255, + 112, + 128, + 0, + 255, + 250, + 255, + 112, + 128, + 0, + 255, + 250, + 255, + 112, + 128, + 0, + 255, + 250, + 255, + 112, + 128, + 0, + 255, + 250, + 255, + 112, + 128, + 0, + 255, + 250, + 255, + 112, + 128, + 0, + 255, + 250, + 255, + 112, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 837, + 10, + 5, + 212, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70macsca', + 186, + 74, + 209, + 128, + 0, + 255, + 186, + 74, + 209, + 128, + 0, + 255, + 186, + 74, + 209, + 128, + 0, + 255, + 186, + 74, + 209, + 128, + 0, + 255, + 186, + 74, + 209, + 128, + 0, + 255, + 186, + 74, + 209, + 128, + 0, + 255, + 186, + 74, + 209, + 128, + 0, + 255, + 186, + 74, + 209, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 838, + 10, + 6, + 212, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70macdec', + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 0, + 227, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 839, + 10, + 7, + 212, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70macrus', + 125, + 125, + 143, + 128, + 0, + 255, + 125, + 125, + 143, + 128, + 0, + 255, + 125, + 125, + 143, + 128, + 0, + 255, + 125, + 125, + 143, + 128, + 0, + 255, + 125, + 125, + 143, + 128, + 0, + 255, + 125, + 125, + 143, + 128, + 0, + 255, + 125, + 125, + 143, + 128, + 0, + 255, + 125, + 125, + 143, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 840, + 10, + 4, + 214, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70h44fla', + 187, + 217, + 214, + 128, + 0, + 255, + 187, + 217, + 214, + 128, + 0, + 255, + 187, + 217, + 214, + 128, + 0, + 255, + 187, + 217, + 214, + 128, + 0, + 255, + 187, + 217, + 214, + 128, + 0, + 255, + 187, + 217, + 214, + 128, + 0, + 255, + 187, + 217, + 214, + 128, + 0, + 255, + 187, + 217, + 214, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 841, + 10, + 5, + 214, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70h44sca', + 37, + 117, + 217, + 128, + 0, + 255, + 37, + 117, + 217, + 128, + 0, + 255, + 37, + 117, + 217, + 128, + 0, + 255, + 37, + 117, + 217, + 128, + 0, + 255, + 37, + 117, + 217, + 128, + 0, + 255, + 37, + 117, + 217, + 128, + 0, + 255, + 37, + 117, + 217, + 128, + 0, + 255, + 37, + 117, + 217, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 842, + 10, + 6, + 214, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70h44dec', + 154, + 184, + 189, + 128, + 0, + 255, + 154, + 184, + 189, + 128, + 0, + 255, + 154, + 184, + 189, + 128, + 0, + 255, + 154, + 184, + 189, + 128, + 0, + 255, + 154, + 184, + 189, + 128, + 0, + 255, + 154, + 184, + 189, + 128, + 0, + 255, + 154, + 184, + 189, + 128, + 0, + 255, + 154, + 184, + 189, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 843, + 10, + 7, + 214, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70h44rus', + 91, + 31, + 171, + 128, + 0, + 255, + 91, + 31, + 171, + 128, + 0, + 255, + 91, + 31, + 171, + 128, + 0, + 255, + 91, + 31, + 171, + 128, + 0, + 255, + 91, + 31, + 171, + 128, + 0, + 255, + 91, + 31, + 171, + 128, + 0, + 255, + 91, + 31, + 171, + 128, + 0, + 255, + 91, + 31, + 171, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 844, + 10, + 4, + 215, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70aarfla', + 139, + 31, + 184, + 128, + 0, + 255, + 139, + 31, + 184, + 128, + 0, + 255, + 139, + 31, + 184, + 128, + 0, + 255, + 139, + 31, + 184, + 128, + 0, + 255, + 139, + 31, + 184, + 128, + 0, + 255, + 139, + 31, + 184, + 128, + 0, + 255, + 139, + 31, + 184, + 128, + 0, + 255, + 139, + 31, + 184, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 845, + 10, + 5, + 215, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70aarsca', + 185, + 145, + 214, + 128, + 0, + 255, + 185, + 145, + 214, + 128, + 0, + 255, + 185, + 145, + 214, + 128, + 0, + 255, + 185, + 145, + 214, + 128, + 0, + 255, + 185, + 145, + 214, + 128, + 0, + 255, + 185, + 145, + 214, + 128, + 0, + 255, + 185, + 145, + 214, + 128, + 0, + 255, + 185, + 145, + 214, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 846, + 10, + 6, + 215, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70aardec', + 26, + 201, + 224, + 128, + 0, + 255, + 26, + 201, + 224, + 128, + 0, + 255, + 26, + 201, + 224, + 128, + 0, + 255, + 26, + 201, + 224, + 128, + 0, + 255, + 26, + 201, + 224, + 128, + 0, + 255, + 26, + 201, + 224, + 128, + 0, + 255, + 26, + 201, + 224, + 128, + 0, + 255, + 26, + 201, + 224, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 847, + 10, + 7, + 215, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70aarrus', + 60, + 74, + 178, + 128, + 0, + 255, + 60, + 74, + 178, + 128, + 0, + 255, + 60, + 74, + 178, + 128, + 0, + 255, + 60, + 74, + 178, + 128, + 0, + 255, + 60, + 74, + 178, + 128, + 0, + 255, + 60, + 74, + 178, + 128, + 0, + 255, + 60, + 74, + 178, + 128, + 0, + 255, + 60, + 74, + 178, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 848, + 10, + 4, + 213, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70hemfla', + 23, + 43, + 222, + 128, + 0, + 255, + 23, + 43, + 222, + 128, + 0, + 255, + 23, + 43, + 222, + 128, + 0, + 255, + 23, + 43, + 222, + 128, + 0, + 255, + 23, + 43, + 222, + 128, + 0, + 255, + 23, + 43, + 222, + 128, + 0, + 255, + 23, + 43, + 222, + 128, + 0, + 255, + 23, + 43, + 222, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 849, + 10, + 5, + 213, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70hemsca', + 162, + 69, + 189, + 128, + 0, + 255, + 162, + 69, + 189, + 128, + 0, + 255, + 162, + 69, + 189, + 128, + 0, + 255, + 162, + 69, + 189, + 128, + 0, + 255, + 162, + 69, + 189, + 128, + 0, + 255, + 162, + 69, + 189, + 128, + 0, + 255, + 162, + 69, + 189, + 128, + 0, + 255, + 162, + 69, + 189, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 850, + 10, + 6, + 213, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70hemdec', + 28, + 209, + 227, + 128, + 0, + 255, + 28, + 209, + 227, + 128, + 0, + 255, + 28, + 209, + 227, + 128, + 0, + 255, + 28, + 209, + 227, + 128, + 0, + 255, + 28, + 209, + 227, + 128, + 0, + 255, + 28, + 209, + 227, + 128, + 0, + 255, + 28, + 209, + 227, + 128, + 0, + 255, + 28, + 209, + 227, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 851, + 10, + 7, + 213, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70hemrus', + 145, + 76, + 184, + 128, + 0, + 255, + 145, + 76, + 184, + 128, + 0, + 255, + 145, + 76, + 184, + 128, + 0, + 255, + 145, + 76, + 184, + 128, + 0, + 255, + 145, + 76, + 184, + 128, + 0, + 255, + 145, + 76, + 184, + 128, + 0, + 255, + 145, + 76, + 184, + 128, + 0, + 255, + 145, + 76, + 184, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 852, + 10, + 4, + 216, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '71wedfla', + 9, + 181, + 219, + 128, + 0, + 255, + 9, + 181, + 219, + 128, + 0, + 255, + 9, + 181, + 219, + 128, + 0, + 255, + 9, + 181, + 219, + 128, + 0, + 255, + 9, + 181, + 219, + 128, + 0, + 255, + 9, + 181, + 219, + 128, + 0, + 255, + 9, + 181, + 219, + 128, + 0, + 255, + 9, + 181, + 219, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 853, + 10, + 5, + 216, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '71wedsca', + 119, + 196, + 150, + 128, + 0, + 255, + 119, + 196, + 150, + 128, + 0, + 255, + 119, + 196, + 150, + 128, + 0, + 255, + 119, + 196, + 150, + 128, + 0, + 255, + 119, + 196, + 150, + 128, + 0, + 255, + 119, + 196, + 150, + 128, + 0, + 255, + 119, + 196, + 150, + 128, + 0, + 255, + 119, + 196, + 150, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 854, + 10, + 7, + 216, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '71wedrus', + 154, + 135, + 102, + 128, + 0, + 255, + 154, + 135, + 102, + 128, + 0, + 255, + 154, + 135, + 102, + 128, + 0, + 255, + 154, + 135, + 102, + 128, + 0, + 255, + 154, + 135, + 102, + 128, + 0, + 255, + 154, + 135, + 102, + 128, + 0, + 255, + 154, + 135, + 102, + 128, + 0, + 255, + 154, + 135, + 102, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 855, + 10, + 4, + 228, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73firfla', + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 255, + 135, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 856, + 10, + 5, + 228, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73firsca', + 33, + 250, + 230, + 128, + 0, + 255, + 33, + 250, + 230, + 128, + 0, + 255, + 33, + 250, + 230, + 128, + 0, + 255, + 33, + 250, + 230, + 128, + 0, + 255, + 33, + 250, + 230, + 128, + 0, + 255, + 33, + 250, + 230, + 128, + 0, + 255, + 33, + 250, + 230, + 128, + 0, + 255, + 33, + 250, + 230, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 857, + 10, + 6, + 228, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73firdec', + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 0, + 214, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 858, + 10, + 7, + 228, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '73firrus', + 27, + 71, + 89, + 128, + 0, + 255, + 27, + 71, + 89, + 128, + 0, + 255, + 27, + 71, + 89, + 128, + 0, + 255, + 27, + 71, + 89, + 128, + 0, + 255, + 27, + 71, + 89, + 128, + 0, + 255, + 27, + 71, + 89, + 128, + 0, + 255, + 27, + 71, + 89, + 128, + 0, + 255, + 27, + 71, + 89, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 859, + 10, + 4, + 227, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73forfla', + 33, + 163, + 240, + 128, + 0, + 255, + 33, + 163, + 240, + 128, + 0, + 255, + 33, + 163, + 240, + 128, + 0, + 255, + 33, + 163, + 240, + 128, + 0, + 255, + 33, + 163, + 240, + 128, + 0, + 255, + 33, + 163, + 240, + 128, + 0, + 255, + 33, + 163, + 240, + 128, + 0, + 255, + 33, + 163, + 240, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 860, + 10, + 5, + 227, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73forsca', + 174, + 194, + 138, + 128, + 0, + 255, + 174, + 194, + 138, + 128, + 0, + 255, + 174, + 194, + 138, + 128, + 0, + 255, + 174, + 194, + 138, + 128, + 0, + 255, + 174, + 194, + 138, + 128, + 0, + 255, + 174, + 194, + 138, + 128, + 0, + 255, + 174, + 194, + 138, + 128, + 0, + 255, + 174, + 194, + 138, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 861, + 10, + 6, + 227, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '73fordec', + 131, + 71, + 46, + 128, + 0, + 255, + 131, + 71, + 46, + 128, + 0, + 255, + 131, + 71, + 46, + 128, + 0, + 255, + 131, + 71, + 46, + 128, + 0, + 255, + 131, + 71, + 46, + 128, + 0, + 255, + 131, + 71, + 46, + 128, + 0, + 255, + 131, + 71, + 46, + 128, + 0, + 255, + 131, + 71, + 46, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 862, + 10, + 7, + 227, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '73forrus', + 172, + 51, + 107, + 128, + 0, + 255, + 172, + 51, + 107, + 128, + 0, + 255, + 172, + 51, + 107, + 128, + 0, + 255, + 172, + 51, + 107, + 128, + 0, + 255, + 172, + 51, + 107, + 128, + 0, + 255, + 172, + 51, + 107, + 128, + 0, + 255, + 172, + 51, + 107, + 128, + 0, + 255, + 172, + 51, + 107, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 863, + 10, + 4, + 142, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70mb4fla', + 33, + 102, + 242, + 128, + 0, + 255, + 33, + 102, + 242, + 128, + 0, + 255, + 33, + 102, + 242, + 128, + 0, + 255, + 33, + 102, + 242, + 128, + 0, + 255, + 33, + 102, + 242, + 128, + 0, + 255, + 33, + 102, + 242, + 128, + 0, + 255, + 33, + 102, + 242, + 128, + 0, + 255, + 33, + 102, + 242, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 864, + 10, + 5, + 142, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70mb4sca', + 130, + 219, + 153, + 128, + 0, + 255, + 130, + 219, + 153, + 128, + 0, + 255, + 130, + 219, + 153, + 128, + 0, + 255, + 130, + 219, + 153, + 128, + 0, + 255, + 130, + 219, + 153, + 128, + 0, + 255, + 130, + 219, + 153, + 128, + 0, + 255, + 130, + 219, + 153, + 128, + 0, + 255, + 130, + 219, + 153, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 865, + 10, + 6, + 142, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70mb4dec', + 17, + 201, + 194, + 128, + 0, + 255, + 17, + 201, + 194, + 128, + 0, + 255, + 17, + 201, + 194, + 128, + 0, + 255, + 17, + 201, + 194, + 128, + 0, + 255, + 17, + 201, + 194, + 128, + 0, + 255, + 17, + 201, + 194, + 128, + 0, + 255, + 17, + 201, + 194, + 128, + 0, + 255, + 17, + 201, + 194, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 866, + 10, + 7, + 142, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70mb4rus', + 26, + 122, + 122, + 128, + 0, + 255, + 26, + 122, + 122, + 128, + 0, + 255, + 26, + 122, + 122, + 128, + 0, + 255, + 26, + 122, + 122, + 128, + 0, + 255, + 26, + 122, + 122, + 128, + 0, + 255, + 26, + 122, + 122, + 128, + 0, + 255, + 26, + 122, + 122, + 128, + 0, + 255, + 26, + 122, + 122, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 867, + 10, + 6, + 216, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '71weddec', + 32, + 252, + 150, + 128, + 0, + 255, + 32, + 252, + 150, + 128, + 0, + 255, + 32, + 252, + 150, + 128, + 0, + 255, + 32, + 252, + 150, + 128, + 0, + 255, + 32, + 252, + 150, + 128, + 0, + 255, + 32, + 252, + 150, + 128, + 0, + 255, + 32, + 252, + 150, + 128, + 0, + 255, + 32, + 252, + 150, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 868, + 10, + 9, + 132, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '69chabad', + 6, + 255, + 219, + 128, + 0, + 255, + 6, + 255, + 219, + 128, + 0, + 255, + 6, + 255, + 219, + 128, + 0, + 255, + 6, + 255, + 219, + 128, + 0, + 255, + 6, + 255, + 219, + 128, + 0, + 255, + 6, + 255, + 219, + 128, + 0, + 255, + 6, + 255, + 219, + 128, + 0, + 255, + 6, + 255, + 219, + 128, + 0, + 255, + 0, + 'Unknown', + NULL + ), + ( + 869, + 10, + 4, + 210, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70stafla', + 42, + 71, + 189, + 128, + 0, + 255, + 42, + 71, + 189, + 128, + 0, + 255, + 42, + 71, + 189, + 128, + 0, + 255, + 42, + 71, + 189, + 128, + 0, + 255, + 42, + 71, + 189, + 128, + 0, + 255, + 42, + 71, + 189, + 128, + 0, + 255, + 42, + 71, + 189, + 128, + 0, + 255, + 42, + 71, + 189, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 870, + 10, + 5, + 210, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70stasca', + 166, + 79, + 255, + 128, + 0, + 255, + 166, + 79, + 255, + 128, + 0, + 255, + 166, + 79, + 255, + 128, + 0, + 255, + 166, + 79, + 255, + 128, + 0, + 255, + 166, + 79, + 255, + 128, + 0, + 255, + 166, + 79, + 255, + 128, + 0, + 255, + 166, + 79, + 255, + 128, + 0, + 255, + 166, + 79, + 255, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 871, + 10, + 6, + 210, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '70stadec', + 13, + 255, + 237, + 128, + 0, + 255, + 13, + 255, + 237, + 128, + 0, + 255, + 13, + 255, + 237, + 128, + 0, + 255, + 13, + 255, + 237, + 128, + 0, + 255, + 13, + 255, + 237, + 128, + 0, + 255, + 13, + 255, + 237, + 128, + 0, + 255, + 13, + 255, + 237, + 128, + 0, + 255, + 13, + 255, + 237, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 872, + 10, + 7, + 210, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '70starus', + 153, + 79, + 158, + 128, + 0, + 255, + 153, + 79, + 158, + 128, + 0, + 255, + 153, + 79, + 158, + 128, + 0, + 255, + 153, + 79, + 158, + 128, + 0, + 255, + 153, + 79, + 158, + 128, + 0, + 255, + 153, + 79, + 158, + 128, + 0, + 255, + 153, + 79, + 158, + 128, + 0, + 255, + 153, + 79, + 158, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 873, + 10, + 4, + 157, + 'Flames', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gtxfla', + 142, + 255, + 140, + 128, + 0, + 255, + 142, + 255, + 140, + 128, + 0, + 255, + 142, + 255, + 140, + 128, + 0, + 255, + 142, + 255, + 140, + 128, + 0, + 255, + 142, + 255, + 140, + 128, + 0, + 255, + 142, + 255, + 140, + 128, + 0, + 255, + 142, + 255, + 140, + 128, + 0, + 255, + 142, + 255, + 140, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 874, + 10, + 5, + 157, + 'Scallops', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gtxsca', + 43, + 255, + 138, + 128, + 0, + 255, + 43, + 255, + 138, + 128, + 0, + 255, + 43, + 255, + 138, + 128, + 0, + 255, + 43, + 255, + 138, + 128, + 0, + 255, + 43, + 255, + 138, + 128, + 0, + 255, + 43, + 255, + 138, + 128, + 0, + 255, + 43, + 255, + 138, + 128, + 0, + 255, + 43, + 255, + 138, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 875, + 10, + 6, + 157, + 'Decals', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 5000, + '69gtxdec', + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 0, + 204, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 876, + 10, + 7, + 157, + 'Rust Bucket', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '69gtxrus', + 132, + 232, + 84, + 128, + 0, + 255, + 132, + 232, + 84, + 128, + 0, + 255, + 132, + 232, + 84, + 128, + 0, + 255, + 132, + 232, + 84, + 128, + 0, + 255, + 132, + 232, + 84, + 128, + 0, + 255, + 132, + 232, + 84, + 128, + 0, + 255, + 132, + 232, + 84, + 128, + 0, + 255, + 132, + 232, + 84, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 877, + 10, + 7, + 127, + 'Spray Paint Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '55cenru2', + 18, + 140, + 77, + 128, + 0, + 255, + 18, + 140, + 77, + 128, + 0, + 255, + 18, + 140, + 77, + 128, + 0, + 255, + 18, + 140, + 77, + 128, + 0, + 255, + 18, + 140, + 77, + 128, + 0, + 255, + 18, + 140, + 77, + 128, + 0, + 255, + 18, + 140, + 77, + 128, + 0, + 255, + 18, + 140, + 77, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 878, + 10, + 7, + 127, + 'Graffiti', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '55cenru3', + 142, + 219, + 94, + 128, + 0, + 255, + 142, + 219, + 94, + 128, + 0, + 255, + 142, + 219, + 94, + 128, + 0, + 255, + 142, + 219, + 94, + 128, + 0, + 255, + 142, + 219, + 94, + 128, + 0, + 255, + 142, + 219, + 94, + 128, + 0, + 255, + 142, + 219, + 94, + 128, + 0, + 255, + 142, + 219, + 94, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 879, + 10, + 7, + 104, + 'Spray Paint Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57fairu2', + 145, + 97, + 105, + 128, + 0, + 255, + 145, + 97, + 105, + 128, + 0, + 255, + 145, + 97, + 105, + 128, + 0, + 255, + 145, + 97, + 105, + 128, + 0, + 255, + 145, + 97, + 105, + 128, + 0, + 255, + 145, + 97, + 105, + 128, + 0, + 255, + 145, + 97, + 105, + 128, + 0, + 255, + 145, + 97, + 105, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 880, + 10, + 7, + 104, + 'Graffiti', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57fairu3', + 59, + 102, + 102, + 128, + 0, + 255, + 59, + 102, + 102, + 128, + 0, + 255, + 59, + 102, + 102, + 128, + 0, + 255, + 59, + 102, + 102, + 128, + 0, + 255, + 59, + 102, + 102, + 128, + 0, + 255, + 59, + 102, + 102, + 128, + 0, + 255, + 59, + 102, + 102, + 128, + 0, + 255, + 59, + 102, + 102, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 881, + 10, + 9, + 207, + 'Bad-Ass', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10000, + '66cobbad', + 172, + 46, + 120, + 128, + 0, + 255, + 172, + 46, + 120, + 128, + 0, + 255, + 172, + 46, + 120, + 128, + 0, + 255, + 172, + 46, + 120, + 128, + 0, + 255, + 172, + 46, + 120, + 128, + 0, + 255, + 172, + 46, + 120, + 128, + 0, + 255, + 172, + 46, + 120, + 128, + 0, + 255, + 172, + 46, + 120, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 882, + 10, + 7, + 113, + 'Spray Paint Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57cheru2', + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 0, + 41, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 883, + 10, + 7, + 113, + 'Graffiti', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57cheru3', + 132, + 102, + 196, + 128, + 0, + 255, + 132, + 102, + 196, + 128, + 0, + 255, + 132, + 102, + 196, + 128, + 0, + 255, + 132, + 102, + 196, + 128, + 0, + 255, + 132, + 102, + 196, + 128, + 0, + 255, + 132, + 102, + 196, + 128, + 0, + 255, + 132, + 102, + 196, + 128, + 0, + 255, + 132, + 102, + 196, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 884, + 10, + 7, + 105, + 'Spray Paint Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57ranru2', + 140, + 31, + 145, + 128, + 0, + 255, + 140, + 31, + 145, + 128, + 0, + 255, + 140, + 31, + 145, + 128, + 0, + 255, + 140, + 31, + 145, + 128, + 0, + 255, + 140, + 31, + 145, + 128, + 0, + 255, + 140, + 31, + 145, + 128, + 0, + 255, + 140, + 31, + 145, + 128, + 0, + 255, + 140, + 31, + 145, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 885, + 10, + 7, + 105, + 'Graffiti', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57ranru3', + 195, + 105, + 125, + 128, + 0, + 255, + 195, + 105, + 125, + 128, + 0, + 255, + 195, + 105, + 125, + 128, + 0, + 255, + 195, + 105, + 125, + 128, + 0, + 255, + 195, + 105, + 125, + 128, + 0, + 255, + 195, + 105, + 125, + 128, + 0, + 255, + 195, + 105, + 125, + 128, + 0, + 255, + 195, + 105, + 125, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 886, + 10, + 1, + 225, + 'Hurst Olds', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69hurtin', + 31, + 143, + 204, + 129, + 40, + 255, + 31, + 143, + 204, + 129, + 40, + 255, + 31, + 143, + 204, + 129, + 40, + 255, + 31, + 143, + 204, + 129, + 40, + 255, + 27, + 173, + 209, + 97, + 126, + 124, + 27, + 173, + 209, + 127, + 126, + 124, + 32, + 16, + 252, + 190, + 48, + 248, + 32, + 16, + 252, + 190, + 48, + 248, + 0, + 'Medina', + NULL + ), + ( + 888, + 10, + 1, + 212, + 'Medium Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mactin', + 151, + 135, + 158, + 128, + 16, + 232, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 151, + 135, + 158, + 128, + 16, + 232, + 128, + 0, + 0, + 128, + 0, + 128, + 151, + 135, + 158, + 128, + 16, + 232, + 0, + 'system', + 'As per 70 Mach 1 CSV.' + ), + ( + 889, + 10, + 1, + 211, + 'Red/Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 1, + 41, + 163, + 128, + 7, + 241, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 1, + 254, + 163, + 128, + 13, + 241, + 1, + 254, + 163, + 128, + 13, + 241, + 1, + 254, + 163, + 128, + 13, + 241, + 1, + 254, + 163, + 128, + 13, + 241, + 0, + 'system', + NULL + ), + ( + 890, + 10, + 7, + 115, + 'Spray Paint Special', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57nomru2', + 18, + 207, + 115, + 128, + 0, + 255, + 18, + 207, + 115, + 128, + 0, + 255, + 18, + 207, + 115, + 128, + 0, + 255, + 18, + 207, + 115, + 128, + 0, + 255, + 18, + 207, + 115, + 128, + 0, + 255, + 18, + 207, + 115, + 128, + 0, + 255, + 18, + 207, + 115, + 128, + 0, + 255, + 18, + 207, + 115, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 891, + 10, + 7, + 115, + 'Graffiti', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 50, + '57nomru3', + 231, + 27, + 87, + 128, + 0, + 255, + 231, + 27, + 87, + 128, + 0, + 255, + 231, + 27, + 87, + 128, + 0, + 255, + 231, + 27, + 87, + 128, + 0, + 255, + 231, + 27, + 87, + 128, + 0, + 255, + 231, + 27, + 87, + 128, + 0, + 255, + 231, + 27, + 87, + 128, + 0, + 255, + 231, + 27, + 87, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 893, + 10, + 1, + 228, + 'Admiralty Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 150, + 53, + 54, + 152, + 0, + 210, + 20, + 7, + 14, + 128, + 0, + 227, + 150, + 255, + 54, + 152, + 0, + 172, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 150, + 255, + 54, + 152, + 0, + 172, + 0, + 'Factory', + 'As per 70 Firebird CSV' + ), + ( + 894, + 10, + 1, + 211, + 'Lime Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 40, + 50, + 146, + 128, + 0, + 241, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 40, + 131, + 146, + 128, + 0, + 233, + 128, + 0, + 2, + 128, + 0, + 173, + 48, + 122, + 146, + 128, + 0, + 255, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 895, + 10, + 1, + 211, + 'Winter Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 142, + 62, + 73, + 128, + 0, + 237, + 142, + 13, + 73, + 128, + 0, + 252, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 142, + 252, + 73, + 128, + 0, + 227, + 142, + 54, + 73, + 128, + 0, + 237, + 142, + 13, + 73, + 128, + 0, + 252, + 142, + 252, + 73, + 128, + 0, + 227, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 896, + 10, + 1, + 211, + 'Royal Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 250, + 65, + 52, + 128, + 0, + 235, + 32, + 177, + 128, + 128, + 0, + 236, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 250, + 237, + 52, + 128, + 0, + 206, + 26, + 237, + 52, + 128, + 0, + 222, + 32, + 177, + 128, + 128, + 0, + 236, + 250, + 237, + 52, + 128, + 0, + 206, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 897, + 10, + 1, + 211, + 'Acapulco Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 159, + 61, + 53, + 128, + 0, + 233, + 159, + 249, + 53, + 128, + 0, + 208, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 159, + 249, + 53, + 128, + 0, + 208, + 159, + 249, + 53, + 128, + 0, + 208, + 159, + 249, + 53, + 128, + 0, + 208, + 159, + 249, + 53, + 128, + 0, + 208, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 898, + 10, + 1, + 211, + 'New Lime', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 37, + 43, + 152, + 128, + 22, + 220, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 37, + 142, + 152, + 128, + 22, + 220, + 37, + 142, + 152, + 128, + 22, + 220, + 37, + 142, + 152, + 128, + 22, + 220, + 37, + 142, + 152, + 128, + 22, + 220, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 899, + 10, + 1, + 211, + 'Silver Jade', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 124, + 57, + 56, + 128, + 0, + 240, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 114, + 54, + 124, + 128, + 0, + 219, + 128, + 0, + 2, + 128, + 0, + 173, + 109, + 54, + 124, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 900, + 10, + 1, + 211, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 128, + 0, + 255, + 128, + 1, + 252, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 44, + 45, + 255, + 128, + 45, + 222, + 128, + 0, + 2, + 128, + 0, + 173, + 44, + 45, + 255, + 128, + 66, + 222, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 901, + 10, + 1, + 211, + 'Black Jade', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 30, + 10, + 1, + 128, + 2, + 224, + 30, + 10, + 1, + 128, + 2, + 155, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 30, + 10, + 1, + 128, + 2, + 155, + 1, + 254, + 163, + 128, + 13, + 220, + 1, + 254, + 163, + 128, + 13, + 241, + 30, + 10, + 1, + 128, + 2, + 155, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 902, + 10, + 1, + 211, + 'Gulfstream Aqua', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 130, + 32, + 47, + 163, + 0, + 214, + 130, + 172, + 47, + 163, + 0, + 195, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 130, + 172, + 47, + 163, + 0, + 195, + 130, + 172, + 47, + 163, + 0, + 195, + 130, + 172, + 47, + 163, + 0, + 195, + 130, + 172, + 47, + 163, + 0, + 195, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 903, + 10, + 1, + 211, + 'Rangoon Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 1, + 41, + 163, + 128, + 7, + 241, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 1, + 254, + 163, + 128, + 1, + 224, + 128, + 0, + 2, + 128, + 0, + 173, + 1, + 254, + 163, + 128, + 13, + 241, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 904, + 10, + 1, + 211, + 'Indian Fire Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 6, + 60, + 135, + 165, + 11, + 212, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 6, + 255, + 135, + 165, + 11, + 203, + 6, + 255, + 135, + 165, + 11, + 203, + 6, + 255, + 135, + 165, + 11, + 203, + 6, + 255, + 135, + 165, + 11, + 203, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 905, + 10, + 1, + 211, + 'Dresden Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 128, + 24, + 212, + 128, + 2, + 250, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 133, + 116, + 212, + 128, + 13, + 227, + 133, + 116, + 212, + 128, + 13, + 207, + 128, + 0, + 2, + 128, + 0, + 173, + 133, + 116, + 116, + 128, + 13, + 227, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 906, + 10, + 1, + 211, + 'Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 30, + 30, + 255, + 118, + 27, + 252, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 30, + 254, + 255, + 118, + 45, + 212, + 128, + 0, + 2, + 128, + 0, + 173, + 30, + 254, + 255, + 118, + 45, + 252, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 907, + 10, + 1, + 211, + 'Pastel Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 128, + 18, + 164, + 128, + 6, + 253, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 33, + 164, + 128, + 0, + 248, + 128, + 33, + 164, + 128, + 0, + 248, + 128, + 33, + 164, + 128, + 0, + 248, + 128, + 33, + 164, + 128, + 0, + 248, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 908, + 10, + 1, + 211, + 'Presidential Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 148, + 69, + 103, + 186, + 2, + 210, + 148, + 255, + 103, + 186, + 2, + 185, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 148, + 255, + 103, + 186, + 2, + 185, + 148, + 255, + 103, + 186, + 2, + 185, + 148, + 255, + 103, + 186, + 2, + 185, + 148, + 255, + 103, + 186, + 2, + 185, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 909, + 10, + 1, + 211, + 'Champagne', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 19, + 32, + 88, + 155, + 0, + 223, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 19, + 90, + 88, + 155, + 0, + 202, + 128, + 0, + 2, + 128, + 0, + 173, + 19, + 90, + 88, + 155, + 0, + 211, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 910, + 10, + 1, + 211, + 'Brittany Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtttin', + 138, + 50, + 92, + 137, + 0, + 240, + 128, + 0, + 2, + 128, + 0, + 163, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 163, + 138, + 219, + 92, + 137, + 0, + 214, + 128, + 0, + 2, + 128, + 0, + 163, + 138, + 219, + 92, + 137, + 0, + 224, + 0, + 'Factory', + 'As per 69 Torino CSV' + ), + ( + 911, + 10, + 1, + 218, + 'Capri Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 3, + 250, + 64, + 128, + 0, + 252, + 30, + 10, + 5, + 128, + 0, + 245, + 2, + 184, + 73, + 128, + 0, + 239, + 2, + 184, + 73, + 128, + 0, + 239, + 30, + 15, + 255, + 128, + 60, + 255, + 43, + 26, + 255, + 100, + 48, + 255, + 43, + 26, + 255, + 100, + 35, + 255, + 43, + 26, + 255, + 100, + 48, + 255, + 0, + 'System', + 'As per 67 Chevelle CSV' + ), + ( + 912, + 10, + 1, + 218, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 20, + 5, + 1, + 99, + 0, + 206, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 99, + 0, + 206, + 20, + 5, + 1, + 128, + 0, + 229, + 20, + 5, + 1, + 99, + 0, + 206, + 0, + 'System', + 'As per 67 Chevelle CSV' + ), + ( + 913, + 10, + 1, + 218, + 'Madeira Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 3, + 250, + 64, + 128, + 0, + 227, + 22, + 104, + 94, + 128, + 0, + 252, + 22, + 104, + 94, + 128, + 0, + 252, + 22, + 104, + 94, + 128, + 0, + 252, + 30, + 15, + 2, + 128, + 0, + 214, + 3, + 250, + 64, + 128, + 0, + 227, + 248, + 45, + 64, + 128, + 0, + 244, + 3, + 250, + 64, + 128, + 0, + 227, + 0, + 'System', + 'As per 67 Chevelle CSV' + ), + ( + 914, + 10, + 1, + 218, + 'Sierra Fawn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 30, + 10, + 126, + 128, + 0, + 248, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 130, + 5, + 124, + 122, + 1, + 232, + 28, + 14, + 124, + 122, + 1, + 253, + 28, + 14, + 124, + 122, + 1, + 232, + 0, + 'System', + 'As per 67 Chevelle CSV' + ), + ( + 915, + 10, + 1, + 218, + 'Nantucket Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 30, + 10, + 126, + 128, + 36, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 154, + 30, + 15, + 255, + 128, + 60, + 255, + 142, + 117, + 141, + 128, + 0, + 235, + 142, + 44, + 171, + 128, + 0, + 253, + 142, + 117, + 141, + 128, + 0, + 235, + 0, + 'System', + 'As per 67 Chevelle CSV' + ), + ( + 916, + 10, + 1, + 218, + 'Butternut Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 35, + 134, + 255, + 128, + 43, + 255, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 255, + 128, + 60, + 255, + 35, + 134, + 255, + 128, + 43, + 255, + 35, + 82, + 255, + 128, + 7, + 255, + 35, + 134, + 255, + 128, + 43, + 255, + 0, + 'System', + 'As per 67 Chevelle CSV' + ), + ( + 917, + 10, + 1, + 218, + 'Ermine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 128, + 5, + 255, + 83, + 58, + 255, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 128, + 5, + 255, + 83, + 58, + 255, + 128, + 5, + 255, + 128, + 14, + 255, + 128, + 5, + 255, + 83, + 58, + 255, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 918, + 10, + 1, + 218, + 'Mountain Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 79, + 64, + 91, + 118, + 0, + 249, + 28, + 104, + 94, + 128, + 20, + 252, + 28, + 104, + 94, + 128, + 20, + 252, + 28, + 104, + 94, + 128, + 20, + 252, + 30, + 15, + 2, + 128, + 0, + 214, + 79, + 64, + 91, + 118, + 0, + 249, + 79, + 36, + 91, + 118, + 15, + 254, + 79, + 64, + 91, + 118, + 0, + 249, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 919, + 10, + 1, + 218, + 'Granada Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 30, + 10, + 5, + 128, + 0, + 214, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 31, + 135, + 142, + 128, + 2, + 249, + 31, + 22, + 142, + 128, + 11, + 254, + 31, + 135, + 142, + 128, + 2, + 249, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 920, + 10, + 1, + 218, + 'Tahoe Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 128, + 254, + 43, + 143, + 0, + 197, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 128, + 254, + 43, + 143, + 0, + 197, + 128, + 56, + 137, + 143, + 0, + 224, + 128, + 254, + 43, + 143, + 0, + 197, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 921, + 10, + 1, + 218, + 'Royal Plum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 224, + 253, + 32, + 114, + 0, + 198, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 224, + 253, + 32, + 114, + 0, + 198, + 224, + 53, + 32, + 114, + 0, + 252, + 224, + 253, + 32, + 114, + 0, + 198, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 922, + 10, + 1, + 218, + 'Marina Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 133, + 171, + 108, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 133, + 171, + 108, + 128, + 0, + 237, + 133, + 28, + 108, + 128, + 10, + 255, + 133, + 171, + 108, + 128, + 0, + 237, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 923, + 10, + 1, + 218, + 'Emerald Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67csstin', + 128, + 0, + 255, + 128, + 33, + 255, + 30, + 15, + 255, + 78, + 60, + 255, + 30, + 15, + 255, + 78, + 60, + 255, + 30, + 15, + 255, + 78, + 60, + 255, + 30, + 15, + 255, + 128, + 60, + 255, + 124, + 171, + 193, + 134, + 0, + 246, + 124, + 53, + 193, + 134, + 9, + 255, + 124, + 171, + 193, + 134, + 0, + 246, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 924, + 10, + 1, + 218, + 'White/Medium Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '67csstin', + 128, + 5, + 255, + 83, + 58, + 255, + 30, + 15, + 2, + 128, + 0, + 214, + 30, + 15, + 2, + 128, + 0, + 214, + 30, + 15, + 2, + 128, + 0, + 214, + 30, + 15, + 2, + 128, + 0, + 214, + 142, + 131, + 141, + 128, + 16, + 235, + 128, + 5, + 255, + 83, + 58, + 255, + 128, + 5, + 255, + 83, + 58, + 255, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 925, + 10, + 1, + 218, + 'Medium Blue/White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '67csstin', + 30, + 10, + 126, + 128, + 36, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 30, + 15, + 255, + 128, + 60, + 255, + 128, + 5, + 255, + 83, + 58, + 255, + 142, + 131, + 141, + 128, + 16, + 235, + 142, + 131, + 141, + 128, + 16, + 235, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 926, + 10, + 1, + 218, + 'Medium Blue/Dark Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '67csstin', + 30, + 10, + 126, + 128, + 36, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 32, + 26, + 207, + 108, + 52, + 254, + 30, + 15, + 255, + 128, + 60, + 255, + 148, + 255, + 54, + 135, + 0, + 194, + 142, + 131, + 141, + 128, + 16, + 235, + 142, + 131, + 141, + 128, + 16, + 235, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 927, + 10, + 1, + 218, + 'Dark Blue/Medium Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '67csstin', + 30, + 10, + 126, + 128, + 0, + 248, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 237, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 142, + 131, + 141, + 128, + 16, + 235, + 148, + 255, + 54, + 135, + 0, + 194, + 148, + 255, + 54, + 135, + 0, + 194, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 928, + 10, + 1, + 218, + 'Gold/Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '67csstin', + 30, + 10, + 5, + 128, + 0, + 214, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 43, + 26, + 255, + 100, + 48, + 255, + 31, + 22, + 142, + 128, + 11, + 254, + 31, + 135, + 142, + 128, + 2, + 249, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 929, + 10, + 1, + 218, + 'Dark Turquoise/White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '67csstin', + 128, + 254, + 43, + 143, + 0, + 197, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 240, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 128, + 5, + 255, + 83, + 58, + 255, + 128, + 56, + 137, + 143, + 0, + 224, + 128, + 254, + 43, + 143, + 0, + 197, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 930, + 10, + 1, + 218, + 'Fawn/Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '67csstin', + 30, + 10, + 126, + 128, + 0, + 248, + 30, + 10, + 5, + 128, + 0, + 250, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 43, + 26, + 255, + 100, + 48, + 255, + 28, + 14, + 124, + 122, + 1, + 232, + 28, + 14, + 124, + 122, + 1, + 232, + 0, + 'system', + 'As per 67 Chevelle CSV' + ), + ( + 931, + 10, + 1, + 101, + 'Lime Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 40, + 50, + 146, + 128, + 0, + 241, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 40, + 0, + 0, + 135, + 0, + 212, + 128, + 0, + 2, + 128, + 0, + 173, + 48, + 122, + 146, + 128, + 0, + 255, + 0, + NULL, + NULL + ), + ( + 932, + 10, + 1, + 101, + 'Winter Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 142, + 62, + 73, + 128, + 0, + 237, + 142, + 13, + 73, + 128, + 0, + 252, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 142, + 252, + 73, + 128, + 0, + 227, + 32, + 177, + 128, + 128, + 8, + 249, + 142, + 13, + 73, + 128, + 0, + 252, + 142, + 252, + 73, + 128, + 0, + 227, + 0, + NULL, + NULL + ), + ( + 933, + 10, + 1, + 101, + 'Royal Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 250, + 65, + 52, + 128, + 0, + 235, + 32, + 177, + 128, + 128, + 0, + 236, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 250, + 237, + 52, + 128, + 0, + 206, + 32, + 177, + 128, + 128, + 8, + 249, + 32, + 177, + 128, + 128, + 0, + 236, + 250, + 237, + 52, + 128, + 0, + 206, + 0, + NULL, + NULL + ), + ( + 934, + 10, + 1, + 101, + 'Acapulco Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 159, + 61, + 53, + 128, + 0, + 233, + 159, + 249, + 53, + 128, + 0, + 208, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 159, + 249, + 53, + 128, + 0, + 208, + 142, + 0, + 252, + 128, + 34, + 237, + 159, + 249, + 53, + 128, + 0, + 208, + 159, + 249, + 53, + 128, + 0, + 208, + 0, + NULL, + NULL + ), + ( + 935, + 10, + 1, + 101, + 'New Lime', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 37, + 43, + 152, + 128, + 22, + 220, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 37, + 142, + 152, + 128, + 22, + 220, + 40, + 0, + 0, + 135, + 0, + 212, + 37, + 142, + 152, + 128, + 22, + 220, + 37, + 142, + 152, + 128, + 22, + 220, + 0, + NULL, + NULL + ), + ( + 936, + 10, + 1, + 101, + 'Silver Jade', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 124, + 57, + 56, + 128, + 0, + 240, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 142, + 0, + 252, + 128, + 34, + 237, + 128, + 0, + 2, + 128, + 0, + 173, + 109, + 54, + 124, + 128, + 0, + 231, + 0, + NULL, + NULL + ), + ( + 937, + 10, + 1, + 101, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 0, + 255, + 128, + 1, + 252, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 253, + 234, + 191, + 128, + 48, + 229, + 128, + 0, + 2, + 128, + 0, + 173, + 44, + 45, + 255, + 128, + 66, + 222, + 0, + NULL, + NULL + ), + ( + 938, + 10, + 1, + 101, + 'Black Jade', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 30, + 10, + 1, + 128, + 2, + 224, + 30, + 10, + 1, + 128, + 2, + 155, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 30, + 10, + 1, + 128, + 2, + 155, + 253, + 234, + 191, + 128, + 48, + 229, + 1, + 254, + 163, + 128, + 13, + 241, + 30, + 10, + 1, + 128, + 2, + 155, + 0, + NULL, + NULL + ), + ( + 939, + 10, + 1, + 101, + 'Gulfstream Aqua', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 130, + 32, + 47, + 163, + 0, + 214, + 130, + 172, + 47, + 163, + 0, + 195, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 130, + 172, + 47, + 163, + 0, + 195, + 32, + 177, + 128, + 128, + 8, + 249, + 130, + 172, + 47, + 163, + 0, + 195, + 130, + 172, + 47, + 163, + 0, + 195, + 0, + NULL, + NULL + ), + ( + 940, + 10, + 1, + 101, + 'Rangoon Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 1, + 41, + 163, + 128, + 7, + 241, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 142, + 0, + 252, + 128, + 34, + 237, + 128, + 0, + 2, + 128, + 0, + 173, + 1, + 254, + 163, + 128, + 13, + 241, + 0, + NULL, + NULL + ), + ( + 941, + 10, + 1, + 101, + 'Indian Fire Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 6, + 60, + 135, + 165, + 11, + 212, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 6, + 255, + 135, + 165, + 11, + 203, + 32, + 177, + 128, + 128, + 8, + 249, + 6, + 255, + 135, + 165, + 11, + 203, + 6, + 255, + 135, + 165, + 11, + 203, + 0, + NULL, + NULL + ), + ( + 942, + 10, + 1, + 101, + 'Dresden Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 24, + 212, + 128, + 2, + 250, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 133, + 116, + 212, + 128, + 13, + 227, + 142, + 0, + 252, + 128, + 34, + 237, + 128, + 0, + 2, + 128, + 0, + 173, + 133, + 116, + 212, + 128, + 13, + 227, + 0, + NULL, + NULL + ), + ( + 943, + 10, + 1, + 101, + 'Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 30, + 30, + 255, + 118, + 27, + 252, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 40, + 0, + 0, + 135, + 0, + 212, + 128, + 0, + 2, + 128, + 0, + 173, + 30, + 254, + 255, + 118, + 45, + 252, + 0, + NULL, + NULL + ), + ( + 944, + 10, + 1, + 101, + 'Pastel Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 128, + 18, + 164, + 128, + 6, + 253, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 33, + 164, + 128, + 0, + 248, + 142, + 0, + 252, + 128, + 34, + 237, + 128, + 33, + 164, + 128, + 0, + 248, + 128, + 33, + 164, + 128, + 0, + 248, + 0, + NULL, + NULL + ), + ( + 945, + 10, + 1, + 101, + 'Presidential Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 148, + 69, + 103, + 186, + 2, + 210, + 148, + 255, + 103, + 186, + 2, + 185, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 148, + 255, + 103, + 186, + 2, + 185, + 253, + 234, + 191, + 128, + 48, + 229, + 148, + 255, + 103, + 186, + 2, + 185, + 148, + 255, + 103, + 186, + 2, + 185, + 0, + NULL, + NULL + ), + ( + 946, + 10, + 1, + 101, + 'Champagne', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 19, + 32, + 88, + 155, + 0, + 223, + 128, + 0, + 2, + 128, + 0, + 173, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 173, + 142, + 0, + 252, + 128, + 34, + 237, + 128, + 0, + 2, + 128, + 0, + 173, + 19, + 90, + 88, + 155, + 0, + 211, + 0, + NULL, + NULL + ), + ( + 947, + 10, + 1, + 101, + 'Brittany Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '32fortin', + 138, + 50, + 92, + 137, + 0, + 240, + 128, + 0, + 2, + 128, + 0, + 163, + 128, + 0, + 54, + 128, + 0, + 242, + 128, + 0, + 49, + 128, + 0, + 242, + 128, + 0, + 2, + 128, + 0, + 163, + 142, + 0, + 252, + 128, + 34, + 237, + 128, + 0, + 2, + 128, + 0, + 163, + 138, + 219, + 92, + 137, + 0, + 224, + 0, + NULL, + NULL + ), + ( + 965, + 10, + 1, + 228, + 'Florentine Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 250, + 79, + 45, + 128, + 0, + 236, + 26, + 101, + 184, + 128, + 0, + 222, + 252, + 255, + 75, + 128, + 0, + 173, + 20, + 7, + 9, + 118, + 3, + 241, + 26, + 101, + 184, + 128, + 0, + 214, + 131, + 20, + 168, + 128, + 0, + 215, + 26, + 101, + 184, + 128, + 0, + 214, + 252, + 255, + 75, + 128, + 0, + 173, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 966, + 10, + 1, + 228, + 'Sunlight Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 31, + 146, + 255, + 128, + 5, + 255, + 20, + 7, + 14, + 128, + 0, + 227, + 31, + 236, + 255, + 128, + 6, + 255, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 31, + 236, + 255, + 128, + 6, + 255, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 967, + 10, + 1, + 228, + 'Brewster Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 107, + 39, + 28, + 128, + 0, + 211, + 26, + 101, + 184, + 128, + 0, + 222, + 107, + 255, + 28, + 138, + 0, + 168, + 20, + 7, + 9, + 118, + 3, + 241, + 26, + 101, + 184, + 128, + 0, + 214, + 131, + 20, + 168, + 128, + 0, + 215, + 26, + 101, + 184, + 128, + 0, + 214, + 107, + 255, + 28, + 138, + 0, + 168, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 968, + 10, + 1, + 228, + 'Starlight Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 128, + 0, + 75, + 82, + 0, + 242, + 128, + 0, + 1, + 82, + 0, + 206, + 128, + 0, + 1, + 82, + 0, + 156, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 128, + 0, + 1, + 82, + 0, + 156, + 128, + 0, + 1, + 82, + 0, + 156, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 969, + 10, + 1, + 228, + 'Regatta Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 135, + 78, + 77, + 158, + 0, + 218, + 20, + 7, + 14, + 128, + 0, + 227, + 146, + 255, + 109, + 135, + 0, + 214, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 146, + 255, + 109, + 135, + 0, + 214, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 970, + 10, + 1, + 228, + 'Ascot Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 128, + 0, + 195, + 148, + 0, + 232, + 20, + 7, + 14, + 128, + 0, + 227, + 128, + 13, + 122, + 137, + 0, + 220, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 128, + 13, + 122, + 137, + 0, + 220, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 971, + 10, + 1, + 228, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 128, + 0, + 255, + 128, + 1, + 254, + 20, + 7, + 14, + 128, + 0, + 227, + 128, + 0, + 255, + 128, + 14, + 255, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 128, + 0, + 255, + 128, + 14, + 255, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 972, + 10, + 1, + 228, + 'Buccaneer Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 6, + 77, + 255, + 128, + 0, + 242, + 20, + 7, + 14, + 128, + 0, + 227, + 1, + 255, + 255, + 128, + 0, + 240, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 1, + 255, + 255, + 128, + 0, + 240, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 973, + 10, + 1, + 228, + 'Golden Olive', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 45, + 33, + 134, + 154, + 0, + 210, + 20, + 7, + 14, + 128, + 0, + 227, + 37, + 165, + 109, + 154, + 0, + 199, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 37, + 165, + 109, + 154, + 0, + 199, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 974, + 10, + 1, + 228, + 'Desert Sand', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 27, + 44, + 156, + 128, + 0, + 254, + 20, + 7, + 14, + 128, + 0, + 227, + 27, + 180, + 156, + 128, + 0, + 248, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 27, + 180, + 156, + 128, + 0, + 248, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 975, + 10, + 1, + 228, + 'Burnished Amber', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73firtin', + 35, + 22, + 61, + 158, + 0, + 208, + 26, + 101, + 184, + 128, + 0, + 222, + 35, + 83, + 61, + 158, + 0, + 181, + 20, + 7, + 9, + 118, + 3, + 241, + 26, + 101, + 184, + 128, + 0, + 214, + 131, + 20, + 168, + 128, + 0, + 215, + 26, + 101, + 184, + 128, + 0, + 214, + 35, + 83, + 61, + 158, + 0, + 181, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 976, + 10, + 1, + 227, + 'Florentine Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 250, + 79, + 45, + 128, + 0, + 236, + 26, + 101, + 184, + 128, + 0, + 222, + 252, + 255, + 75, + 128, + 0, + 173, + 20, + 7, + 9, + 118, + 3, + 241, + 26, + 101, + 184, + 128, + 0, + 214, + 131, + 20, + 168, + 128, + 0, + 215, + 26, + 101, + 184, + 128, + 0, + 214, + 252, + 255, + 75, + 128, + 0, + 173, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 977, + 10, + 1, + 227, + 'Sunlight Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 31, + 146, + 255, + 128, + 5, + 255, + 20, + 7, + 14, + 128, + 0, + 227, + 31, + 236, + 255, + 128, + 6, + 255, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 31, + 236, + 255, + 128, + 6, + 255, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 978, + 10, + 1, + 227, + 'Brewster Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 107, + 39, + 28, + 128, + 0, + 211, + 26, + 101, + 184, + 128, + 0, + 222, + 107, + 255, + 28, + 138, + 0, + 168, + 20, + 7, + 9, + 118, + 3, + 241, + 26, + 101, + 184, + 128, + 0, + 214, + 131, + 20, + 168, + 128, + 0, + 215, + 26, + 101, + 184, + 128, + 0, + 214, + 107, + 255, + 28, + 138, + 0, + 168, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 979, + 10, + 1, + 227, + 'Starlight Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 128, + 0, + 75, + 82, + 0, + 242, + 128, + 0, + 1, + 82, + 0, + 206, + 128, + 0, + 1, + 82, + 0, + 156, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 128, + 0, + 1, + 82, + 0, + 156, + 128, + 0, + 1, + 82, + 0, + 156, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 980, + 10, + 1, + 227, + 'Regatta Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 135, + 78, + 77, + 158, + 0, + 218, + 20, + 7, + 14, + 128, + 0, + 227, + 146, + 255, + 109, + 135, + 0, + 214, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 146, + 255, + 109, + 135, + 0, + 214, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 981, + 10, + 1, + 227, + 'Ascot Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 128, + 0, + 195, + 148, + 0, + 232, + 20, + 7, + 14, + 128, + 0, + 227, + 128, + 13, + 122, + 137, + 0, + 220, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 128, + 13, + 122, + 137, + 0, + 220, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 982, + 10, + 1, + 227, + 'Buccaneer Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 6, + 77, + 255, + 128, + 0, + 242, + 20, + 7, + 14, + 128, + 0, + 227, + 1, + 255, + 255, + 128, + 0, + 240, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 1, + 255, + 255, + 128, + 0, + 240, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 983, + 10, + 1, + 227, + 'Golden Olive', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 45, + 33, + 134, + 154, + 0, + 210, + 20, + 7, + 14, + 128, + 0, + 227, + 37, + 165, + 109, + 154, + 0, + 199, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 37, + 165, + 109, + 154, + 0, + 199, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 984, + 10, + 1, + 227, + 'Desert Sand', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 27, + 44, + 156, + 128, + 0, + 254, + 20, + 7, + 14, + 128, + 0, + 227, + 27, + 180, + 156, + 128, + 0, + 248, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 215, + 20, + 7, + 14, + 128, + 0, + 158, + 27, + 180, + 156, + 128, + 0, + 248, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 985, + 10, + 1, + 227, + 'Burnished Amber', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 35, + 22, + 61, + 158, + 0, + 208, + 26, + 101, + 184, + 128, + 0, + 222, + 35, + 83, + 61, + 158, + 0, + 181, + 20, + 7, + 9, + 118, + 3, + 241, + 26, + 101, + 184, + 128, + 0, + 214, + 131, + 20, + 168, + 128, + 0, + 215, + 26, + 101, + 184, + 128, + 0, + 214, + 35, + 83, + 61, + 158, + 0, + 181, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 986, + 10, + 1, + 226, + 'Expresso Brown', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 19, + 54, + 52, + 128, + 0, + 208, + 19, + 169, + 52, + 128, + 0, + 193, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 19, + 169, + 52, + 128, + 0, + 193, + 19, + 169, + 52, + 128, + 0, + 193, + 19, + 169, + 52, + 128, + 0, + 193, + 0, + 'system', + 'As per 69 GTO CSV' + ), + ( + 987, + 10, + 1, + 226, + 'Mayfair Maize', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 30, + 79, + 255, + 128, + 7, + 255, + 30, + 151, + 255, + 128, + 7, + 255, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 30, + 151, + 255, + 128, + 7, + 255, + 30, + 151, + 255, + 128, + 7, + 255, + 30, + 151, + 255, + 128, + 7, + 255, + 0, + 'system', + 'As per 69 GTO CSV' + ), + ( + 988, + 10, + 1, + 226, + 'Warwick Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 142, + 129, + 167, + 128, + 6, + 229, + 142, + 142, + 167, + 128, + 6, + 208, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 14, + 128, + 0, + 215, + 30, + 10, + 19, + 128, + 0, + 175, + 142, + 88, + 167, + 128, + 6, + 212, + 142, + 5, + 167, + 128, + 6, + 240, + 142, + 255, + 167, + 128, + 6, + 201, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 989, + 10, + 1, + 226, + 'Burgundy', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 249, + 79, + 61, + 128, + 0, + 229, + 11, + 255, + 255, + 128, + 1, + 233, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 74, + 142, + 128, + 0, + 241, + 23, + 255, + 255, + 128, + 17, + 255, + 37, + 255, + 255, + 128, + 17, + 255, + 249, + 255, + 61, + 128, + 0, + 198, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 990, + 10, + 1, + 226, + 'Liberty Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 144, + 69, + 58, + 128, + 0, + 208, + 142, + 129, + 167, + 128, + 6, + 211, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 142, + 101, + 167, + 128, + 6, + 236, + 142, + 5, + 167, + 128, + 6, + 240, + 144, + 255, + 58, + 128, + 0, + 180, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 991, + 10, + 1, + 226, + 'Matador Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 2, + 69, + 144, + 128, + 0, + 227, + 15, + 255, + 255, + 128, + 17, + 255, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 23, + 255, + 255, + 128, + 17, + 255, + 37, + 255, + 255, + 128, + 17, + 255, + 2, + 255, + 144, + 128, + 0, + 227, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 992, + 10, + 1, + 226, + 'Antique Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 31, + 64, + 182, + 128, + 0, + 239, + 26, + 169, + 182, + 128, + 0, + 232, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 26, + 169, + 182, + 128, + 0, + 232, + 26, + 169, + 182, + 128, + 0, + 232, + 26, + 169, + 182, + 128, + 0, + 232, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 993, + 10, + 1, + 226, + 'Champagne', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 34, + 45, + 73, + 128, + 0, + 231, + 34, + 91, + 105, + 128, + 0, + 212, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 30, + 36, + 145, + 128, + 0, + 224, + 30, + 36, + 145, + 128, + 0, + 224, + 30, + 36, + 145, + 128, + 0, + 224, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 994, + 10, + 1, + 226, + 'Starlight Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 30, + 10, + 5, + 154, + 0, + 192, + 2, + 255, + 255, + 128, + 0, + 195, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 1, + 255, + 255, + 128, + 0, + 237, + 1, + 255, + 255, + 128, + 26, + 255, + 30, + 10, + 5, + 154, + 0, + 155, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 995, + 10, + 1, + 226, + 'Windward Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 147, + 41, + 74, + 128, + 0, + 224, + 134, + 186, + 74, + 128, + 0, + 198, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 134, + 186, + 74, + 128, + 0, + 198, + 134, + 186, + 74, + 128, + 0, + 198, + 134, + 186, + 74, + 128, + 0, + 198, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 996, + 10, + 1, + 226, + 'Goldenrod Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 37, + 62, + 255, + 128, + 18, + 255, + 28, + 255, + 255, + 128, + 26, + 225, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 24, + 255, + 255, + 128, + 26, + 255, + 18, + 255, + 255, + 128, + 26, + 255, + 31, + 255, + 255, + 128, + 17, + 255, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 997, + 10, + 1, + 226, + 'Verdoro Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 103, + 41, + 28, + 154, + 0, + 206, + 60, + 255, + 255, + 128, + 1, + 214, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 47, + 255, + 255, + 128, + 1, + 244, + 37, + 255, + 255, + 128, + 17, + 255, + 69, + 125, + 28, + 154, + 0, + 176, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 998, + 10, + 1, + 226, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 128, + 5, + 255, + 128, + 14, + 255, + 2, + 73, + 255, + 128, + 19, + 225, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 2, + 146, + 255, + 128, + 19, + 255, + 2, + 255, + 255, + 128, + 19, + 255, + 47, + 11, + 255, + 128, + 27, + 255, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 999, + 10, + 1, + 226, + 'Crystal Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 121, + 44, + 71, + 128, + 0, + 218, + 121, + 255, + 71, + 128, + 0, + 205, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 14, + 128, + 0, + 215, + 30, + 10, + 19, + 128, + 0, + 175, + 121, + 255, + 71, + 128, + 0, + 205, + 121, + 255, + 71, + 128, + 0, + 205, + 121, + 255, + 71, + 128, + 0, + 205, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 1000, + 10, + 1, + 226, + 'Limelight Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 50, + 45, + 95, + 128, + 0, + 229, + 50, + 108, + 95, + 128, + 0, + 211, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 50, + 108, + 95, + 128, + 0, + 211, + 50, + 108, + 95, + 128, + 0, + 211, + 50, + 108, + 95, + 128, + 0, + 211, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 1001, + 10, + 1, + 226, + 'Carousel Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 2, + 77, + 255, + 128, + 0, + 245, + 13, + 255, + 255, + 128, + 9, + 255, + 40, + 7, + 16, + 128, + 0, + 194, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 10, + 19, + 128, + 0, + 175, + 22, + 255, + 255, + 128, + 9, + 255, + 32, + 255, + 255, + 128, + 9, + 255, + 2, + 255, + 255, + 128, + 0, + 255, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 1002, + 10, + 1, + 226, + 'Paladium Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69judtin', + 128, + 15, + 94, + 128, + 0, + 237, + 32, + 73, + 255, + 128, + 0, + 237, + 40, + 20, + 255, + 128, + 0, + 249, + 128, + 0, + 18, + 128, + 0, + 219, + 30, + 48, + 142, + 128, + 45, + 241, + 32, + 142, + 255, + 128, + 0, + 240, + 32, + 255, + 255, + 128, + 9, + 255, + 128, + 15, + 94, + 128, + 0, + 228, + 0, + 'Factory', + 'As per 69 GTO CSV' + ), + ( + 1005, + 10, + 1, + 213, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 9, + 255, + 255, + 92, + 44, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1006, + 10, + 1, + 214, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 9, + 255, + 255, + 92, + 44, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1007, + 10, + 1, + 215, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 9, + 255, + 255, + 92, + 44, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1008, + 10, + 1, + 134, + 'Jamaica Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + NULL, + 7, + 0, + 128, + 0, + 172, + 148, + 203, + NULL, + 141, + 0, + 229, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1009, + 10, + 1, + 213, + 'Frosted Teal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 138, + 163, + 73, + 128, + 0, + 235, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1010, + 10, + 1, + 213, + 'Blue Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 156, + 208, + 189, + 128, + 0, + 253, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1011, + 10, + 1, + 213, + 'Citron Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 49, + 97, + 139, + 128, + 0, + 239, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1012, + 10, + 1, + 213, + 'Ice Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 142, + 126, + 112, + 128, + 0, + 240, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1013, + 10, + 1, + 213, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 96, + 176, + 48, + 148, + 0, + 203, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1014, + 10, + 1, + 213, + 'Sassy Grass Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 90, + 235, + 255, + 128, + 16, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1015, + 10, + 1, + 213, + 'Tor-Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 255, + 133, + 15, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1016, + 10, + 1, + 213, + 'Burnt Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 13, + 210, + 146, + 128, + 0, + 248, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1017, + 10, + 1, + 213, + 'Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 27, + 45, + 120, + 101, + 16, + 254, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1018, + 10, + 1, + 213, + 'Scorch Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 82, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1019, + 10, + 1, + 213, + 'Burnt Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 19, + 163, + 75, + 128, + 0, + 220, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1020, + 10, + 1, + 213, + 'In-Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 222, + 255, + 74, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1021, + 10, + 1, + 213, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 1, + 215, + 48, + 128, + 7, + 255, + 1, + 215, + 48, + 128, + 0, + 245, + 1, + 215, + 48, + 128, + 0, + 233, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 128, + 3, + 255, + 97, + 45, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1022, + 10, + 1, + 213, + 'Lemon Twist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 33, + 255, + 255, + 128, + 34, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1023, + 10, + 1, + 213, + 'Citron Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 28, + 172, + 255, + 116, + 27, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1024, + 10, + 1, + 213, + 'Black Velvet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70hemtin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 7, + 7, + 0, + 128, + 0, + 178, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1025, + 10, + 1, + 214, + 'Jamaica Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 148, + 203, + 101, + 141, + 0, + 229, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1026, + 10, + 1, + 214, + 'Frosted Teal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 138, + 163, + 73, + 128, + 0, + 235, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1027, + 10, + 1, + 214, + 'Blue Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 156, + 208, + 189, + 128, + 0, + 253, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1028, + 10, + 1, + 214, + 'Citron Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 49, + 97, + 139, + 128, + 0, + 239, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1029, + 10, + 1, + 214, + 'Ice Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 142, + 126, + 112, + 128, + 0, + 240, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1030, + 10, + 1, + 214, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 96, + 176, + 48, + 148, + 0, + 203, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1031, + 10, + 1, + 214, + 'Sassy Grass Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 90, + 235, + 255, + 128, + 16, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1032, + 10, + 1, + 214, + 'Tor-Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 255, + 133, + 15, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1033, + 10, + 1, + 214, + 'Burnt Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 13, + 210, + 146, + 128, + 0, + 248, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1034, + 10, + 1, + 214, + 'Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 27, + 45, + 120, + 101, + 16, + 254, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1035, + 10, + 1, + 214, + 'Scorch Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 82, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1036, + 10, + 1, + 214, + 'Burnt Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 19, + 163, + 75, + 128, + 0, + 220, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1037, + 10, + 1, + 214, + 'In-Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 222, + 255, + 74, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1038, + 10, + 1, + 214, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 1, + 215, + 48, + 128, + 7, + 255, + 1, + 215, + 48, + 128, + 0, + 245, + 1, + 215, + 48, + 128, + 0, + 233, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 128, + 3, + 255, + 97, + 45, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1039, + 10, + 1, + 214, + 'Lemon Twist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 33, + 255, + 255, + 128, + 34, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1040, + 10, + 1, + 214, + 'Citron Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 28, + 172, + 255, + 116, + 27, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1041, + 10, + 1, + 214, + 'Black Velvet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70h44tin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 7, + 7, + 0, + 128, + 0, + 178, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1042, + 10, + 1, + 215, + 'Jamaica Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 148, + 203, + 101, + 141, + 0, + 229, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1043, + 10, + 1, + 215, + 'Frosted Teal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 138, + 163, + 73, + 128, + 0, + 235, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1044, + 10, + 1, + 215, + 'Blue Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 156, + 208, + 189, + 128, + 0, + 253, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1045, + 10, + 1, + 215, + 'Citron Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 49, + 97, + 139, + 128, + 0, + 239, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1046, + 10, + 1, + 215, + 'Ice Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 142, + 126, + 112, + 128, + 0, + 240, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1047, + 10, + 1, + 215, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 96, + 176, + 48, + 148, + 0, + 203, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1048, + 10, + 1, + 215, + 'Sassy Grass Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 90, + 235, + 255, + 128, + 16, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1049, + 10, + 1, + 215, + 'Tor-Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 255, + 133, + 15, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1050, + 10, + 1, + 215, + 'Burnt Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 13, + 210, + 146, + 128, + 0, + 248, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1051, + 10, + 1, + 215, + 'Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 27, + 45, + 120, + 101, + 16, + 254, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1052, + 10, + 1, + 215, + 'Scorch Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 1, + 255, + 82, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1053, + 10, + 1, + 215, + 'Burnt Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 97, + 48, + 128, + 6, + 255, + 20, + 97, + 48, + 128, + 0, + 249, + 20, + 97, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 19, + 163, + 75, + 128, + 0, + 220, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1054, + 10, + 1, + 215, + 'In-Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 222, + 255, + 74, + 128, + 0, + 231, + 0, + 'Factory', + 'As per 70 Cuda CSV. Does not match reference as a factory stock color.' + ), + ( + 1055, + 10, + 1, + 215, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 1, + 215, + 48, + 128, + 7, + 255, + 1, + 215, + 48, + 128, + 0, + 245, + 1, + 215, + 48, + 128, + 0, + 233, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 128, + 3, + 255, + 97, + 45, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1056, + 10, + 1, + 215, + 'Lemon Twist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 33, + 255, + 255, + 128, + 34, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1057, + 10, + 1, + 215, + 'Citron Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 28, + 172, + 255, + 116, + 27, + 255, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1058, + 10, + 1, + 215, + 'Black Velvet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70aartin', + 7, + 7, + 0, + 128, + 0, + 224, + 20, + 7, + 48, + 128, + 0, + 255, + 20, + 7, + 58, + 128, + 0, + 244, + 20, + 7, + 48, + 128, + 0, + 241, + 20, + 7, + 16, + 128, + 0, + 188, + 9, + 9, + 9, + 92, + 1, + 219, + 7, + 7, + 0, + 128, + 0, + 172, + 7, + 7, + 0, + 128, + 0, + 178, + 0, + 'Factory', + 'As per 70 Cuda CSV.' + ), + ( + 1059, + 10, + 1, + 227, + 'Admiralty Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '73fortin', + 150, + 53, + 54, + 152, + 0, + 210, + 20, + 7, + 14, + 128, + 0, + 227, + 150, + 255, + 54, + 152, + 0, + 172, + 20, + 7, + 9, + 118, + 3, + 241, + 20, + 7, + 14, + 128, + 0, + 158, + 131, + 20, + 168, + 128, + 0, + 237, + 20, + 7, + 14, + 128, + 0, + 158, + 150, + 255, + 54, + 152, + 0, + 172, + 0, + 'system', + 'As per 70 Firebird CSV' + ), + ( + 1060, + 10, + 1, + 216, + 'Lime Light', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 50, + 41, + 135, + 128, + 0, + 240, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 45, + 147, + 135, + 135, + 0, + 232, + 20, + 7, + 6, + 128, + 0, + 165, + 45, + 147, + 135, + 135, + 0, + 232, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1061, + 10, + 1, + 216, + 'Bahama Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 28, + 60, + 208, + 128, + 0, + 249, + 122, + 5, + 184, + 128, + 0, + 246, + 45, + 37, + 246, + 128, + 9, + 255, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 26, + 233, + 208, + 128, + 0, + 239, + 20, + 7, + 6, + 128, + 0, + 165, + 26, + 233, + 208, + 128, + 0, + 239, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1062, + 10, + 1, + 216, + 'Rallye Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 0, + 97, + 255, + 128, + 0, + 244, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 0, + 255, + 255, + 128, + 0, + 245, + 20, + 7, + 6, + 128, + 0, + 165, + 0, + 255, + 255, + 128, + 0, + 245, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1063, + 10, + 1, + 216, + 'In Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 197, + 50, + 87, + 128, + 0, + 236, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 186, + 177, + 87, + 156, + 0, + 203, + 20, + 7, + 6, + 128, + 0, + 165, + 186, + 177, + 87, + 156, + 0, + 203, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1064, + 10, + 1, + 216, + 'Avocado', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 80, + 35, + 24, + 128, + 0, + 218, + 70, + 192, + 24, + 103, + 0, + 186, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 70, + 192, + 24, + 103, + 0, + 186, + 70, + 192, + 24, + 103, + 0, + 186, + 70, + 192, + 24, + 103, + 0, + 186, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1065, + 10, + 1, + 216, + 'True Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 147, + 48, + 109, + 143, + 0, + 222, + 142, + 255, + 109, + 143, + 0, + 212, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 142, + 255, + 109, + 143, + 0, + 212, + 142, + 255, + 109, + 143, + 0, + 212, + 142, + 255, + 109, + 143, + 0, + 212, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1066, + 10, + 1, + 216, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 40, + 19, + 255, + 88, + 36, + 255, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 40, + 19, + 255, + 88, + 36, + 255, + 20, + 7, + 6, + 128, + 0, + 165, + 40, + 19, + 255, + 88, + 36, + 255, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1067, + 10, + 1, + 216, + 'Coral Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 131, + 62, + 124, + 146, + 0, + 229, + 131, + 214, + 57, + 143, + 0, + 192, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 131, + 214, + 57, + 143, + 0, + 192, + 131, + 214, + 57, + 143, + 0, + 192, + 131, + 214, + 57, + 143, + 0, + 192, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1068, + 10, + 1, + 216, + 'Sandpebble Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 27, + 35, + 108, + 128, + 0, + 246, + 24, + 118, + 176, + 133, + 0, + 240, + 45, + 37, + 246, + 128, + 9, + 255, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 24, + 118, + 176, + 133, + 0, + 240, + 24, + 118, + 176, + 133, + 0, + 240, + 24, + 118, + 176, + 133, + 0, + 240, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1069, + 10, + 1, + 216, + 'Aztec Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 27, + 82, + 160, + 128, + 0, + 254, + 23, + 215, + 160, + 128, + 0, + 252, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 23, + 215, + 160, + 128, + 0, + 252, + 23, + 215, + 160, + 128, + 0, + 252, + 23, + 215, + 160, + 128, + 0, + 252, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1070, + 10, + 1, + 216, + 'Winchester Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 136, + 24, + 202, + 116, + 9, + 255, + 136, + 24, + 202, + 116, + 5, + 229, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 136, + 24, + 202, + 116, + 5, + 229, + 20, + 7, + 6, + 128, + 0, + 165, + 136, + 24, + 202, + 116, + 5, + 229, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1071, + 10, + 1, + 216, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 14, + 69, + 255, + 97, + 19, + 255, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 18, + 255, + 255, + 94, + 28, + 255, + 20, + 7, + 6, + 128, + 0, + 165, + 18, + 255, + 255, + 94, + 28, + 255, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1072, + 10, + 1, + 216, + 'Burnished Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 254, + 48, + 79, + 128, + 0, + 233, + 254, + 252, + 79, + 148, + 0, + 212, + 45, + 37, + 246, + 128, + 9, + 255, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 254, + 252, + 79, + 148, + 0, + 212, + 254, + 252, + 79, + 148, + 0, + 212, + 254, + 252, + 79, + 148, + 0, + 212, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1073, + 10, + 1, + 216, + 'Lemon Twist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 33, + 131, + 255, + 118, + 19, + 255, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 33, + 255, + 255, + 118, + 26, + 255, + 20, + 7, + 6, + 128, + 0, + 165, + 33, + 255, + 255, + 118, + 26, + 255, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1074, + 10, + 1, + 216, + 'Black Velvet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 37, + 10, + 1, + 73, + 1, + 239, + 122, + 5, + 184, + 128, + 0, + 246, + 20, + 7, + 30, + 116, + 0, + 244, + 20, + 7, + 30, + 117, + 0, + 240, + 20, + 7, + 23, + 128, + 0, + 242, + 37, + 10, + 1, + 69, + 1, + 194, + 37, + 10, + 1, + 69, + 1, + 194, + 37, + 10, + 1, + 69, + 1, + 194, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1075, + 10, + 1, + 216, + 'Autumn Bronze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '71wedtin', + 14, + 82, + 79, + 144, + 0, + 220, + 14, + 252, + 79, + 144, + 0, + 212, + 22, + 134, + 45, + 128, + 0, + 241, + 22, + 134, + 100, + 128, + 0, + 255, + 20, + 7, + 23, + 128, + 0, + 242, + 14, + 252, + 79, + 144, + 0, + 212, + 14, + 252, + 79, + 144, + 0, + 212, + 14, + 252, + 79, + 144, + 0, + 212, + 0, + 'Factory', + 'As per 71 Duster CSV.' + ), + ( + 1076, + 10, + 1, + 224, + 'Crimson', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 2, + 150, + 255, + 128, + 0, + 236, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 2, + 255, + 255, + 128, + 0, + 228, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1077, + 10, + 1, + 224, + 'Platinum', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 134, + 10, + 126, + 128, + 6, + 245, + 134, + 10, + 158, + 128, + 1, + 232, + 134, + 10, + 158, + 128, + 1, + 232, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 134, + 10, + 158, + 128, + 1, + 232, + 134, + 10, + 158, + 128, + 1, + 232, + 134, + 10, + 158, + 128, + 1, + 232, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1078, + 10, + 1, + 224, + 'Trophy Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 170, + 128, + 192, + 128, + 0, + 214, + 147, + 255, + 79, + 128, + 0, + 184, + 147, + 255, + 79, + 128, + 0, + 184, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 147, + 255, + 79, + 128, + 0, + 184, + 147, + 255, + 79, + 128, + 0, + 184, + 147, + 255, + 79, + 128, + 0, + 184, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1079, + 10, + 1, + 224, + 'Ebony Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 6, + 10, + 9, + 128, + 0, + 197, + 6, + 10, + 9, + 128, + 0, + 161, + 6, + 10, + 9, + 128, + 0, + 161, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 6, + 10, + 9, + 128, + 0, + 161, + 6, + 10, + 9, + 128, + 0, + 161, + 6, + 10, + 9, + 128, + 0, + 161, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1080, + 10, + 1, + 224, + 'Topaz', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 37, + 65, + 145, + 128, + 0, + 243, + 31, + 143, + 178, + 128, + 0, + 224, + 31, + 143, + 178, + 128, + 0, + 224, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 31, + 143, + 178, + 128, + 0, + 224, + 31, + 143, + 178, + 128, + 0, + 224, + 31, + 143, + 178, + 128, + 0, + 224, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1081, + 10, + 1, + 224, + 'Cameo White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 128, + 10, + 255, + 128, + 18, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 128, + 10, + 255, + 128, + 43, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 128, + 10, + 255, + 128, + 43, + 255, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1082, + 10, + 1, + 224, + 'Powder Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 135, + 61, + 190, + 128, + 0, + 242, + 135, + 99, + 190, + 128, + 0, + 237, + 135, + 99, + 190, + 128, + 0, + 237, + 28, + 26, + 164, + 128, + 10, + 255, + 30, + 10, + 1, + 128, + 0, + 194, + 135, + 99, + 190, + 128, + 0, + 237, + 135, + 99, + 190, + 128, + 0, + 237, + 135, + 99, + 190, + 128, + 0, + 237, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1083, + 10, + 1, + 224, + 'Chestnut Bronze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 5, + 91, + 82, + 128, + 0, + 218, + 5, + 231, + 82, + 128, + 0, + 193, + 5, + 231, + 82, + 128, + 0, + 193, + 28, + 116, + 164, + 128, + 1, + 224, + 30, + 10, + 1, + 128, + 0, + 194, + 5, + 231, + 82, + 128, + 0, + 193, + 5, + 231, + 82, + 128, + 0, + 193, + 5, + 231, + 82, + 128, + 0, + 193, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1084, + 10, + 1, + 224, + 'Saffron', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 33, + 96, + 255, + 128, + 16, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 28, + 165, + 255, + 128, + 33, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 28, + 165, + 255, + 128, + 33, + 255, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1085, + 10, + 1, + 224, + 'Flamingo Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 246, + 33, + 80, + 128, + 7, + 242, + 246, + 43, + 80, + 128, + 7, + 232, + 246, + 43, + 80, + 128, + 7, + 232, + 11, + 10, + 26, + 128, + 0, + 205, + 30, + 10, + 1, + 128, + 0, + 194, + 246, + 43, + 80, + 128, + 7, + 232, + 246, + 43, + 80, + 128, + 7, + 232, + 246, + 43, + 80, + 128, + 7, + 232, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1086, + 10, + 1, + 224, + 'Meadow Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 77, + 44, + 109, + 128, + 1, + 242, + 65, + 75, + 109, + 128, + 1, + 220, + 65, + 75, + 109, + 128, + 1, + 220, + 28, + 116, + 164, + 128, + 1, + 224, + 30, + 10, + 1, + 128, + 0, + 194, + 65, + 75, + 109, + 128, + 1, + 220, + 65, + 75, + 109, + 128, + 1, + 220, + 65, + 75, + 109, + 128, + 1, + 220, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1087, + 10, + 1, + 224, + 'Palomino Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69w30tin', + 32, + 56, + 118, + 128, + 0, + 245, + 32, + 92, + 118, + 128, + 0, + 233, + 32, + 92, + 118, + 128, + 0, + 233, + 28, + 116, + 164, + 128, + 1, + 224, + 30, + 10, + 1, + 128, + 0, + 194, + 32, + 92, + 118, + 128, + 0, + 233, + 32, + 92, + 118, + 128, + 0, + 233, + 32, + 92, + 118, + 128, + 0, + 233, + 0, + 'Factory', + 'As per 69 Olds 442 CSV.' + ), + ( + 1088, + 10, + 1, + 157, + 'Lime Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 66, + 78, + 48, + 128, + 0, + 231, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 66, + 143, + 48, + 128, + 0, + 211, + 1, + 0, + 2, + 128, + 0, + 182, + 66, + 143, + 48, + 128, + 0, + 211, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1089, + 10, + 1, + 157, + 'Blue Fire', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 147, + 79, + 101, + 128, + 0, + 239, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 147, + 255, + 101, + 128, + 0, + 223, + 1, + 0, + 2, + 128, + 0, + 182, + 147, + 255, + 101, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1090, + 10, + 1, + 157, + 'Scorch Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 5, + 124, + 165, + 128, + 0, + 245, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 5, + 255, + 165, + 128, + 0, + 225, + 1, + 0, + 2, + 128, + 0, + 182, + 5, + 255, + 165, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1091, + 10, + 1, + 157, + 'Violet', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 189, + 88, + 52, + 128, + 0, + 239, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 184, + 255, + 52, + 128, + 0, + 219, + 1, + 0, + 2, + 128, + 0, + 182, + 184, + 255, + 52, + 128, + 0, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1092, + 10, + 1, + 157, + 'Frosted Teal', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 134, + 73, + 62, + 128, + 0, + 227, + 134, + 255, + 62, + 128, + 0, + 242, + 30, + 15, + 255, + 128, + 10, + 255, + 30, + 15, + 255, + 128, + 27, + 255, + 30, + 10, + 203, + 128, + 33, + 255, + 134, + 2, + 219, + 128, + 23, + 255, + 134, + 255, + 62, + 128, + 0, + 207, + 134, + 255, + 62, + 128, + 0, + 207, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1093, + 10, + 1, + 157, + 'Vitamin C', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 20, + 137, + 181, + 82, + 36, + 253, + 20, + 255, + 231, + 52, + 49, + 253, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 20, + 255, + 231, + 52, + 49, + 253, + 1, + 0, + 2, + 128, + 0, + 182, + 20, + 255, + 231, + 52, + 49, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1094, + 10, + 1, + 157, + 'Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 66, + 47, + 33, + 128, + 0, + 236, + 66, + 143, + 33, + 128, + 0, + 192, + 30, + 107, + 62, + 128, + 0, + 241, + 30, + 107, + 62, + 128, + 0, + 254, + 30, + 10, + 10, + 128, + 0, + 206, + 48, + 80, + 164, + 128, + 1, + 239, + 66, + 143, + 33, + 128, + 0, + 192, + 66, + 143, + 33, + 128, + 0, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1095, + 10, + 1, + 157, + 'Limelight Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 83, + 108, + 202, + 128, + 0, + 250, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 73, + 205, + 202, + 128, + 6, + 239, + 1, + 0, + 2, + 128, + 0, + 182, + 73, + 205, + 202, + 128, + 6, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1096, + 10, + 1, + 157, + 'Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 9, + 7, + 1, + 128, + 0, + 232, + 0, + 255, + 248, + 128, + 24, + 253, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 0, + 255, + 248, + 128, + 24, + 253, + 9, + 7, + 1, + 128, + 0, + 188, + 9, + 7, + 1, + 128, + 0, + 188, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1097, + 10, + 1, + 157, + 'Sahara Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 27, + 88, + 96, + 128, + 0, + 249, + 27, + 161, + 96, + 128, + 0, + 254, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 1, + 0, + 2, + 128, + 0, + 182, + 27, + 161, + 96, + 128, + 0, + 231, + 27, + 161, + 96, + 128, + 0, + 231, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1098, + 10, + 1, + 157, + 'Burnt Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 13, + 83, + 122, + 128, + 0, + 237, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 107, + 62, + 128, + 0, + 241, + 30, + 107, + 62, + 128, + 0, + 254, + 30, + 10, + 10, + 128, + 0, + 206, + 13, + 176, + 122, + 128, + 0, + 229, + 1, + 0, + 2, + 128, + 0, + 182, + 13, + 176, + 122, + 128, + 0, + 229, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1099, + 10, + 1, + 157, + 'Walnut', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 20, + 66, + 58, + 128, + 0, + 236, + 20, + 137, + 58, + 128, + 0, + 239, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 48, + 80, + 164, + 128, + 1, + 239, + 20, + 137, + 58, + 128, + 0, + 211, + 20, + 137, + 58, + 128, + 0, + 211, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1100, + 10, + 1, + 157, + 'Rally Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 0, + 139, + 248, + 128, + 24, + 253, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 0, + 255, + 248, + 97, + 13, + 253, + 1, + 0, + 2, + 128, + 0, + 182, + 0, + 255, + 248, + 97, + 13, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1101, + 10, + 1, + 157, + 'Alpine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 30, + 47, + 255, + 87, + 45, + 255, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 30, + 47, + 255, + 87, + 45, + 255, + 1, + 0, + 2, + 128, + 0, + 182, + 30, + 47, + 255, + 87, + 45, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1102, + 10, + 1, + 157, + 'Sunfire Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 38, + 141, + 255, + 128, + 9, + 255, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 255, + 128, + 10, + 255, + 30, + 15, + 255, + 128, + 27, + 255, + 30, + 10, + 203, + 128, + 33, + 255, + 32, + 219, + 255, + 88, + 44, + 255, + 1, + 0, + 2, + 128, + 0, + 182, + 32, + 219, + 255, + 88, + 44, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1103, + 10, + 1, + 157, + 'Yellow Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '69gtxtin', + 32, + 87, + 210, + 128, + 35, + 227, + 20, + 255, + 255, + 128, + 15, + 255, + 30, + 15, + 23, + 128, + 0, + 242, + 30, + 15, + 33, + 128, + 0, + 249, + 30, + 10, + 10, + 128, + 0, + 206, + 32, + 189, + 210, + 128, + 35, + 249, + 1, + 0, + 2, + 128, + 0, + 182, + 32, + 189, + 210, + 128, + 35, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1104, + 10, + 1, + 217, + 'Azure Aqua', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 125, + 47, + 90, + 128, + 0, + 202, + 128, + 0, + 255, + 128, + 0, + 186, + 125, + 47, + 90, + 128, + 0, + 202, + 40, + 20, + 10, + 128, + 0, + 224, + 125, + 18, + 90, + 128, + 0, + 248, + 40, + 24, + 255, + 128, + 32, + 255, + 128, + 128, + 90, + 129, + 0, + 211, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1105, + 10, + 1, + 217, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 5, + 255, + 128, + 0, + 199, + 128, + 0, + 255, + 128, + 0, + 186, + 20, + 5, + 255, + 128, + 0, + 199, + 40, + 20, + 10, + 128, + 0, + 224, + 20, + 5, + 1, + 128, + 0, + 208, + 20, + 5, + 1, + 128, + 0, + 159, + 20, + 5, + 1, + 128, + 0, + 159, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1106, + 10, + 1, + 217, + 'Lagoon Aqua', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 127, + 254, + 53, + 128, + 1, + 195, + 128, + 0, + 255, + 128, + 0, + 186, + 127, + 254, + 53, + 128, + 1, + 195, + 40, + 20, + 10, + 128, + 0, + 224, + 127, + 116, + 53, + 128, + 1, + 228, + 127, + 202, + 53, + 128, + 1, + 178, + 127, + 202, + 53, + 128, + 1, + 178, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1107, + 10, + 1, + 217, + 'Meadow Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 40, + 15, + 255, + 128, + 0, + 255, + 73, + 60, + 143, + 128, + 0, + 212, + 24, + 71, + 202, + 152, + 3, + 214, + 73, + 60, + 143, + 128, + 0, + 212, + 40, + 20, + 10, + 128, + 0, + 224, + 108, + 24, + 143, + 128, + 0, + 233, + 40, + 24, + 255, + 128, + 32, + 255, + 73, + 60, + 143, + 128, + 0, + 212, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1108, + 10, + 1, + 217, + 'Desert Beige', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 24, + 71, + 202, + 121, + 3, + 255, + 24, + 71, + 202, + 152, + 3, + 214, + 24, + 71, + 202, + 121, + 3, + 255, + 40, + 20, + 10, + 128, + 0, + 224, + 24, + 24, + 202, + 121, + 9, + 255, + 24, + 71, + 202, + 121, + 3, + 255, + 24, + 71, + 202, + 121, + 3, + 255, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1109, + 10, + 1, + 217, + 'Daytona Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 147, + 255, + 47, + 128, + 0, + 208, + 147, + 212, + 47, + 128, + 0, + 178, + 147, + 255, + 47, + 128, + 0, + 208, + 40, + 20, + 10, + 128, + 0, + 224, + 147, + 75, + 47, + 128, + 0, + 211, + 147, + 255, + 47, + 128, + 0, + 180, + 147, + 255, + 47, + 128, + 0, + 180, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1110, + 10, + 1, + 217, + 'Bahama Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 30, + 79, + 30, + 128, + 0, + 241, + 30, + 79, + 30, + 128, + 0, + 241, + 24, + 71, + 202, + 152, + 3, + 214, + 30, + 79, + 30, + 128, + 0, + 212, + 40, + 20, + 10, + 128, + 0, + 224, + 94, + 54, + 47, + 128, + 0, + 220, + 107, + 185, + 47, + 114, + 0, + 175, + 107, + 185, + 47, + 114, + 0, + 175, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1111, + 10, + 1, + 217, + 'Ermine White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 8, + 255, + 128, + 33, + 233, + 1, + 249, + 154, + 128, + 0, + 224, + 128, + 8, + 255, + 128, + 33, + 255, + 40, + 20, + 255, + 128, + 0, + 229, + 128, + 8, + 255, + 128, + 7, + 255, + 128, + 8, + 255, + 128, + 33, + 255, + 128, + 8, + 255, + 128, + 33, + 255, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1112, + 10, + 1, + 217, + 'Almond Fawn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 40, + 15, + 255, + 128, + 0, + 255, + 13, + 48, + 255, + 105, + 0, + 232, + 40, + 15, + 255, + 128, + 0, + 255, + 13, + 48, + 255, + 105, + 0, + 232, + 40, + 20, + 10, + 128, + 0, + 224, + 13, + 26, + 255, + 105, + 7, + 254, + 40, + 24, + 255, + 128, + 32, + 255, + 13, + 48, + 255, + 105, + 0, + 232, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1113, + 10, + 1, + 217, + 'Palomar Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 13, + 254, + 75, + 118, + 0, + 223, + 24, + 71, + 202, + 152, + 3, + 214, + 13, + 254, + 75, + 118, + 0, + 208, + 40, + 20, + 255, + 128, + 0, + 229, + 13, + 44, + 75, + 118, + 0, + 220, + 13, + 254, + 75, + 118, + 0, + 185, + 13, + 254, + 75, + 118, + 0, + 185, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1114, + 10, + 1, + 217, + 'Goldwood Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 32, + 122, + 255, + 128, + 20, + 255, + 24, + 71, + 202, + 152, + 3, + 231, + 32, + 122, + 255, + 128, + 20, + 255, + 24, + 71, + 202, + 152, + 3, + 231, + 37, + 44, + 255, + 128, + 6, + 240, + 24, + 71, + 202, + 152, + 3, + 231, + 32, + 122, + 255, + 128, + 20, + 255, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1115, + 10, + 1, + 217, + 'Silver Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 139, + 65, + 138, + 114, + 6, + 231, + 128, + 0, + 255, + 128, + 0, + 255, + 139, + 65, + 138, + 114, + 6, + 220, + 40, + 20, + 255, + 128, + 73, + 255, + 139, + 36, + 138, + 114, + 6, + 249, + 40, + 24, + 255, + 128, + 32, + 255, + 139, + 65, + 138, + 114, + 6, + 212, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1116, + 10, + 1, + 217, + 'Saddle Tan', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 97, + 143, + 128, + 0, + 233, + 24, + 71, + 202, + 152, + 3, + 231, + 20, + 97, + 143, + 128, + 0, + 218, + 40, + 20, + 255, + 128, + 0, + 229, + 20, + 49, + 143, + 128, + 0, + 240, + 20, + 97, + 143, + 128, + 0, + 218, + 20, + 97, + 143, + 128, + 0, + 218, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1117, + 10, + 1, + 217, + 'Satin Silver', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '64ssitin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 5, + 255, + 128, + 0, + 229, + 1, + 2, + 154, + 128, + 0, + 173, + 20, + 5, + 255, + 128, + 0, + 214, + 40, + 20, + 255, + 128, + 0, + 229, + 20, + 5, + 255, + 128, + 0, + 240, + 20, + 5, + 255, + 128, + 0, + 206, + 117, + 5, + 159, + 84, + 0, + 248, + 0, + 'system', + 'As per 64 Impala CSV.' + ), + ( + 1118, + 10, + 1, + 221, + 'Classic White / Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 128, + 5, + 255, + 128, + 27, + 255, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 20, + 7, + 18, + 128, + 0, + 165, + 1, + 41, + 101, + 128, + 0, + 254, + 15, + 255, + 101, + 128, + 14, + 255, + 128, + 5, + 255, + 128, + 18, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1119, + 10, + 1, + 221, + 'Misty Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 128, + 52, + 58, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 128, + 255, + 58, + 152, + 0, + 203, + 128, + 255, + 58, + 152, + 0, + 203, + 128, + 255, + 58, + 152, + 0, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1120, + 10, + 1, + 221, + 'Champagne Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 33, + 60, + 126, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 27, + 138, + 126, + 128, + 0, + 223, + 27, + 138, + 126, + 128, + 0, + 223, + 27, + 138, + 126, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1121, + 10, + 1, + 221, + 'Cortez Silver / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 122, + 10, + 160, + 128, + 11, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 122, + 10, + 160, + 128, + 0, + 227, + 1, + 1, + 1, + 128, + 1, + 147, + 122, + 10, + 160, + 142, + 0, + 220, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1122, + 10, + 1, + 221, + 'Green Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 104, + 18, + 147, + 128, + 0, + 253, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 104, + 101, + 147, + 128, + 0, + 219, + 104, + 101, + 147, + 128, + 0, + 219, + 104, + 101, + 147, + 128, + 0, + 219, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1123, + 10, + 1, + 221, + 'Forest Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 64, + 14, + 53, + 128, + 0, + 232, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 97, + 130, + 53, + 128, + 0, + 190, + 97, + 130, + 53, + 128, + 0, + 190, + 97, + 130, + 53, + 128, + 0, + 190, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1124, + 10, + 1, + 221, + 'Cranberry Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 6, + 56, + 91, + 128, + 0, + 245, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 248, + 254, + 91, + 176, + 0, + 180, + 1, + 1, + 1, + 128, + 1, + 147, + 248, + 254, + 91, + 176, + 0, + 192, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1125, + 10, + 1, + 221, + 'Astro Blue / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 142, + 57, + 255, + 128, + 18, + 255, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 250, + 20, + 7, + 18, + 128, + 0, + 165, + 142, + 101, + 255, + 128, + 2, + 254, + 142, + 3, + 255, + 128, + 36, + 255, + 142, + 175, + 88, + 184, + 2, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1126, + 10, + 1, + 221, + 'Laguna Gray / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 242, + 18, + 83, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 242, + 28, + 83, + 171, + 0, + 180, + 1, + 1, + 1, + 128, + 1, + 147, + 242, + 28, + 83, + 171, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1127, + 10, + 1, + 221, + 'Fathom Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 170, + 73, + 255, + 128, + 22, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 155, + 254, + 70, + 146, + 11, + 184, + 155, + 254, + 70, + 146, + 11, + 184, + 155, + 254, + 70, + 146, + 11, + 184, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1128, + 10, + 1, + 221, + 'Shadow Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 128, + 6, + 94, + 128, + 6, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 26, + 41, + 53, + 128, + 0, + 199, + 26, + 41, + 53, + 128, + 0, + 199, + 26, + 41, + 53, + 128, + 0, + 199, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1129, + 10, + 1, + 221, + 'Gold Beige / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 31, + 13, + 112, + 128, + 0, + 249, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 31, + 148, + 112, + 109, + 11, + 228, + 1, + 1, + 1, + 128, + 1, + 147, + 31, + 148, + 112, + 109, + 11, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1130, + 10, + 1, + 221, + 'Black Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 229, + 43, + 66, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 245, + 255, + 66, + 128, + 0, + 198, + 245, + 255, + 66, + 128, + 0, + 198, + 245, + 255, + 66, + 128, + 0, + 198, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1131, + 10, + 1, + 221, + 'Autumn Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70csstin', + 23, + 39, + 62, + 128, + 0, + 240, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 23, + 126, + 62, + 128, + 0, + 194, + 23, + 126, + 62, + 128, + 0, + 194, + 23, + 126, + 62, + 128, + 0, + 194, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1132, + 10, + 1, + 221, + 'Plum / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 229, + 43, + 66, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 215, + 255, + 53, + 128, + 0, + 188, + 1, + 1, + 1, + 128, + 1, + 147, + 215, + 255, + 53, + 128, + 0, + 198, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1133, + 10, + 1, + 221, + 'Yellow / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 18, + 86, + 255, + 117, + 20, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 31, + 255, + 255, + 117, + 26, + 229, + 1, + 1, + 1, + 128, + 1, + 147, + 31, + 255, + 255, + 117, + 26, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1134, + 10, + 1, + 221, + 'Monza Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70csstin', + 1, + 47, + 255, + 128, + 0, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 165, + 1, + 236, + 255, + 128, + 0, + 219, + 1, + 1, + 1, + 128, + 1, + 147, + 1, + 255, + 255, + 139, + 0, + 249, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1135, + 10, + 1, + 223, + 'Green Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssntin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 48, + 83, + 139, + 128, + 0, + 223, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 48, + 28, + 139, + 128, + 0, + 240, + 20, + 7, + 18, + 128, + 0, + 161, + 48, + 83, + 139, + 128, + 0, + 223, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1136, + 10, + 1, + 223, + 'Monza Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 0, + 255, + 255, + 128, + 0, + 241, + 0, + 255, + 255, + 128, + 0, + 241, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 0, + 86, + 255, + 128, + 0, + 252, + 0, + 255, + 255, + 128, + 0, + 241, + 0, + 255, + 255, + 128, + 0, + 241, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1137, + 10, + 1, + 223, + 'Astro Blue / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 145, + 210, + 142, + 128, + 0, + 216, + 145, + 210, + 142, + 128, + 0, + 216, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 150, + 79, + 142, + 128, + 0, + 241, + 145, + 210, + 142, + 128, + 0, + 216, + 145, + 210, + 142, + 128, + 0, + 216, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1138, + 10, + 1, + 223, + 'Shadow Grey', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssntin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 24, + 66, + 86, + 128, + 0, + 207, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 24, + 40, + 75, + 128, + 0, + 231, + 20, + 7, + 18, + 128, + 0, + 161, + 24, + 66, + 86, + 128, + 0, + 207, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1139, + 10, + 1, + 223, + 'Gold / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 22, + 107, + 142, + 128, + 0, + 225, + 22, + 107, + 142, + 128, + 0, + 225, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 28, + 47, + 142, + 128, + 0, + 245, + 22, + 107, + 142, + 128, + 0, + 225, + 22, + 107, + 142, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1140, + 10, + 1, + 223, + 'Forest Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssntin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 101, + 178, + 33, + 128, + 0, + 193, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 64, + 84, + 33, + 128, + 36, + 206, + 20, + 7, + 18, + 128, + 0, + 161, + 101, + 178, + 33, + 128, + 0, + 193, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1141, + 10, + 1, + 223, + 'Classic White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssntin', + 128, + 0, + 255, + 128, + 58, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 40, + 7, + 255, + 128, + 27, + 255, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 40, + 7, + 255, + 128, + 27, + 225, + 20, + 7, + 18, + 128, + 0, + 161, + 40, + 7, + 255, + 128, + 27, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1142, + 10, + 1, + 223, + 'Misty Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssntin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 130, + 182, + 97, + 128, + 0, + 222, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 130, + 73, + 97, + 128, + 0, + 235, + 20, + 7, + 18, + 128, + 0, + 161, + 130, + 182, + 97, + 128, + 0, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1143, + 10, + 1, + 223, + 'Black Cherry / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 1, + 255, + 80, + 128, + 2, + 203, + 1, + 255, + 80, + 128, + 2, + 203, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 1, + 66, + 80, + 128, + 2, + 241, + 1, + 255, + 80, + 128, + 2, + 203, + 1, + 255, + 80, + 128, + 2, + 203, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1144, + 10, + 1, + 223, + 'Autumn Gold / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 26, + 134, + 134, + 137, + 0, + 199, + 26, + 134, + 134, + 137, + 0, + 199, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 26, + 74, + 134, + 128, + 0, + 245, + 26, + 134, + 134, + 137, + 0, + 199, + 26, + 134, + 134, + 137, + 0, + 199, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1145, + 10, + 1, + 223, + 'Cortez Silver / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 129, + 1, + 189, + 128, + 1, + 222, + 129, + 1, + 189, + 128, + 1, + 222, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 129, + 1, + 189, + 128, + 1, + 231, + 129, + 1, + 189, + 128, + 1, + 222, + 129, + 1, + 189, + 128, + 1, + 222, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1146, + 10, + 1, + 223, + 'Desert Sand', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssntin', + 128, + 0, + 255, + 128, + 0, + 255, + 20, + 7, + 18, + 128, + 0, + 208, + 22, + 147, + 147, + 128, + 0, + 244, + 20, + 7, + 31, + 128, + 0, + 246, + 40, + 10, + 255, + 128, + 77, + 255, + 22, + 53, + 147, + 128, + 0, + 250, + 20, + 7, + 18, + 128, + 0, + 161, + 22, + 147, + 147, + 128, + 0, + 244, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1147, + 10, + 1, + 223, + 'Black / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 20, + 5, + 1, + 128, + 0, + 184, + 20, + 5, + 1, + 128, + 0, + 184, + 0, + 255, + 255, + 128, + 0, + 241, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 20, + 5, + 66, + 128, + 0, + 245, + 20, + 5, + 1, + 128, + 0, + 184, + 20, + 5, + 1, + 128, + 0, + 177, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1148, + 10, + 1, + 223, + 'Yellow / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssntin', + 29, + 255, + 255, + 128, + 34, + 255, + 29, + 255, + 255, + 128, + 34, + 255, + 20, + 7, + 18, + 128, + 0, + 161, + 20, + 7, + 31, + 128, + 0, + 246, + 20, + 7, + 9, + 128, + 0, + 244, + 37, + 64, + 255, + 128, + 16, + 239, + 29, + 255, + 255, + 128, + 34, + 255, + 29, + 255, + 255, + 128, + 34, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1149, + 10, + 1, + 222, + 'Laguna Gray / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssetin', + 242, + 18, + 83, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 242, + 28, + 83, + 128, + 0, + 214, + 1, + 1, + 1, + 128, + 1, + 168, + 242, + 28, + 83, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1150, + 10, + 1, + 222, + 'Classic White / Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssetin', + 128, + 5, + 255, + 128, + 27, + 255, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 1, + 255, + 71, + 128, + 0, + 249, + 20, + 7, + 18, + 128, + 0, + 248, + 1, + 41, + 101, + 128, + 0, + 254, + 1, + 255, + 101, + 128, + 0, + 236, + 128, + 5, + 255, + 128, + 39, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1151, + 10, + 1, + 222, + 'Misty Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 128, + 52, + 58, + 128, + 0, + 250, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 128, + 57, + 58, + 128, + 0, + 248, + 128, + 0, + 255, + 128, + 35, + 255, + 128, + 255, + 58, + 128, + 0, + 227, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1152, + 10, + 1, + 222, + 'Champagne Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 33, + 60, + 126, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 27, + 138, + 126, + 128, + 0, + 248, + 27, + 138, + 126, + 128, + 0, + 248, + 27, + 138, + 126, + 128, + 0, + 248, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1153, + 10, + 1, + 222, + 'Cortez Silver / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssetin', + 122, + 10, + 160, + 128, + 11, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 122, + 10, + 160, + 128, + 0, + 227, + 1, + 1, + 1, + 128, + 1, + 168, + 122, + 10, + 160, + 128, + 0, + 248, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1154, + 10, + 1, + 222, + 'Green Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 104, + 18, + 147, + 128, + 0, + 253, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 104, + 101, + 147, + 128, + 0, + 239, + 104, + 101, + 147, + 128, + 0, + 239, + 104, + 101, + 147, + 128, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1155, + 10, + 1, + 222, + 'Forest Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 64, + 14, + 53, + 128, + 0, + 232, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 97, + 130, + 53, + 128, + 0, + 210, + 97, + 130, + 53, + 128, + 0, + 210, + 97, + 130, + 53, + 128, + 0, + 210, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1156, + 10, + 1, + 222, + 'Astro Blue / White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssetin', + 142, + 57, + 255, + 128, + 18, + 255, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 245, + 142, + 152, + 86, + 128, + 1, + 250, + 20, + 7, + 18, + 128, + 0, + 248, + 142, + 101, + 255, + 128, + 2, + 254, + 142, + 3, + 255, + 128, + 36, + 255, + 142, + 175, + 88, + 128, + 2, + 228, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1157, + 10, + 1, + 222, + 'Monza Red / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssetin', + 1, + 47, + 255, + 128, + 0, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 1, + 141, + 255, + 128, + 0, + 214, + 1, + 1, + 1, + 128, + 1, + 168, + 1, + 255, + 255, + 139, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1158, + 10, + 1, + 222, + 'Fathom Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 170, + 73, + 255, + 128, + 22, + 255, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 155, + 254, + 70, + 146, + 11, + 206, + 155, + 254, + 70, + 146, + 11, + 206, + 155, + 254, + 70, + 146, + 11, + 206, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1159, + 10, + 1, + 222, + 'Shadow Gray', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 128, + 6, + 94, + 128, + 6, + 254, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 26, + 41, + 53, + 128, + 0, + 224, + 26, + 41, + 53, + 128, + 0, + 224, + 26, + 41, + 53, + 128, + 0, + 224, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1160, + 10, + 1, + 222, + 'Gold Beige / Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70ssetin', + 31, + 13, + 112, + 128, + 0, + 249, + 128, + 0, + 20, + 128, + 0, + 249, + 128, + 0, + 23, + 128, + 0, + 248, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 31, + 176, + 112, + 109, + 18, + 206, + 1, + 1, + 1, + 128, + 1, + 168, + 31, + 176, + 112, + 109, + 18, + 253, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1161, + 10, + 1, + 222, + 'Black Cherry', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 229, + 43, + 66, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 128, + 0, + 23, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 245, + 255, + 66, + 128, + 0, + 225, + 245, + 255, + 66, + 128, + 0, + 225, + 245, + 255, + 66, + 128, + 0, + 225, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1162, + 10, + 1, + 222, + 'Autumn Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70ssetin', + 23, + 39, + 62, + 128, + 0, + 240, + 36, + 66, + 57, + 128, + 0, + 252, + 36, + 66, + 57, + 128, + 0, + 248, + 36, + 66, + 57, + 128, + 0, + 252, + 20, + 7, + 18, + 128, + 0, + 248, + 23, + 126, + 62, + 128, + 0, + 215, + NULL, + 126, + 62, + 128, + 0, + 215, + 23, + 126, + NULL, + 128, + 0, + 215, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1163, + 10, + 1, + 142, + 'Candyapple Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 6, + 194, + 143, + 128, + 6, + 240, + 6, + 194, + 143, + 128, + 6, + 240, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 6, + 194, + 143, + 128, + 6, + 240, + 6, + 194, + 143, + 128, + 6, + 240, + 6, + 194, + 143, + 128, + 6, + 240, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1164, + 10, + 1, + 142, + 'Raven Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 20, + 10, + 1, + 128, + 0, + 177, + 20, + 10, + 1, + 128, + 0, + 177, + 254, + 207, + 78, + 128, + 0, + 244, + 254, + 207, + 78, + 128, + 0, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 20, + 10, + 1, + 128, + 0, + 177, + 20, + 10, + 1, + 128, + 0, + 177, + 20, + 10, + 1, + 128, + 0, + 177, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1165, + 10, + 1, + 142, + 'Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 1, + 99, + 138, + 128, + 0, + 248, + 20, + 1, + 6, + 128, + 1, + 177, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 1, + 254, + 138, + 128, + 0, + 218, + 20, + 1, + 6, + 128, + 1, + 177, + 1, + 254, + 138, + 128, + 0, + 228, + 0, + 'Factory', + 'This color is not factory by CSV. Left over from old CSV file.' + ), + ( + 1166, + 10, + 1, + 142, + 'Grabber Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb4tin', + 116, + 255, + 151, + 128, + 6, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 116, + 255, + 151, + 128, + 6, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 116, + 255, + 151, + 128, + 6, + 255, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1167, + 10, + 1, + 142, + 'Grabber Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb4tin', + 152, + 189, + 199, + 128, + 16, + 250, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 152, + 189, + 199, + 128, + 16, + 250, + 128, + 0, + 0, + 128, + 0, + 128, + 152, + 189, + 199, + 128, + 16, + 250, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1168, + 10, + 1, + 142, + 'Grabber Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb4tin', + 19, + 255, + 255, + 128, + 78, + 225, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 19, + 255, + 255, + 128, + 78, + 225, + 128, + 0, + 0, + 128, + 0, + 128, + 19, + 255, + 255, + 128, + 78, + 225, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1169, + 10, + 1, + 142, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 43, + 18, + 255, + 128, + 32, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 18, + 255, + 128, + 32, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 18, + 255, + 128, + 32, + 255, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1170, + 10, + 1, + 142, + 'Medium Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 35, + 64, + 158, + 128, + 16, + 244, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1171, + 10, + 1, + 142, + 'Calypso Coral', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 11, + 232, + 242, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 11, + 232, + 242, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 11, + 232, + 242, + 128, + 24, + 255, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1172, + 10, + 1, + 142, + 'Bright Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 154, + 176, + 105, + 121, + 16, + 224, + 43, + 0, + 255, + 128, + 32, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 154, + 176, + 105, + 121, + 16, + 224, + 43, + 0, + 255, + 128, + 32, + 255, + 154, + 176, + 105, + 121, + 16, + 224, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1173, + 10, + 1, + 142, + 'Dark Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 85, + 43, + 51, + 128, + 0, + 192, + 35, + 64, + 158, + 128, + 16, + 244, + 31, + 92, + 73, + 128, + 0, + 236, + 31, + 92, + 73, + 128, + 0, + 236, + 20, + 10, + 1, + 128, + 0, + 178, + 85, + 43, + 51, + 128, + 0, + 192, + 35, + 64, + 158, + 128, + 16, + 244, + 85, + 43, + 51, + 128, + 0, + 192, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1174, + 10, + 1, + 142, + 'Bright Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb4tin', + 38, + 64, + 253, + 128, + 48, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 38, + 64, + 253, + 128, + 48, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 38, + 64, + 253, + 128, + 48, + 244, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1175, + 10, + 1, + 142, + 'Bright Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 43, + 133, + 255, + 128, + 48, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 133, + 255, + 128, + 48, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 133, + 255, + 128, + 48, + 255, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1176, + 10, + 1, + 142, + 'Pastel Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mb4tin', + 147, + 64, + 255, + 128, + 32, + 240, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 147, + 64, + 255, + 128, + 32, + 240, + 128, + 0, + 0, + 128, + 0, + 128, + 147, + 64, + 255, + 128, + 32, + 240, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1177, + 10, + 1, + 142, + 'Light Ivy Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb4tin', + 45, + 60, + 232, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 45, + 60, + 232, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 60, + 232, + 128, + 24, + 255, + 0, + 'Factory', + 'As per 70 Boss 429 CSV.' + ), + ( + 1178, + 10, + 1, + 210, + 'Candyapple Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mb3tin', + 6, + 194, + 143, + 128, + 6, + 240, + 6, + 194, + 143, + 128, + 6, + 240, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 6, + 194, + 143, + 128, + 6, + 240, + 6, + 194, + 143, + 128, + 6, + 240, + 6, + 194, + 143, + 128, + 6, + 240, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1179, + 10, + 1, + 210, + 'Raven Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 20, + 10, + 1, + 128, + 0, + 177, + 20, + 10, + 1, + 128, + 0, + 177, + 254, + 207, + 78, + 128, + 0, + 244, + 254, + 207, + 78, + 128, + 0, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 20, + 10, + 1, + 128, + 0, + 177, + 20, + 10, + 1, + 128, + 0, + 177, + 20, + 10, + 1, + 128, + 0, + 177, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1180, + 10, + 1, + 210, + 'Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 1, + 99, + 138, + 128, + 0, + 248, + 20, + 1, + 6, + 128, + 1, + 177, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 1, + 254, + 138, + 128, + 0, + 218, + 20, + 1, + 6, + 128, + 1, + 177, + 1, + 254, + 138, + 128, + 0, + 228, + 0, + 'Factory', + 'This is not a factory color by CSV. Left over from old CSV file.' + ), + ( + 1181, + 10, + 1, + 210, + 'Grabber Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70statin', + 116, + 255, + 151, + 128, + 6, + 255, + 116, + 255, + 255, + 128, + 6, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 116, + 255, + 151, + 128, + 6, + 255, + 116, + 255, + 151, + 128, + 6, + 255, + 116, + 255, + 151, + 128, + 6, + 255, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1182, + 10, + 1, + 210, + 'Grabber Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70statin', + 152, + 189, + 199, + 128, + 16, + 250, + 152, + 189, + 199, + 128, + 16, + 250, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 152, + 189, + 199, + 128, + 16, + 250, + 152, + 189, + 199, + 128, + 16, + 250, + 152, + 189, + 199, + 128, + 16, + 250, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1183, + 10, + 1, + 210, + 'Grabber Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70statin', + 19, + 255, + 255, + 128, + 78, + 225, + 19, + 255, + 255, + 128, + 78, + 225, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 19, + 255, + 255, + 128, + 78, + 225, + 19, + 255, + 255, + 128, + 78, + 225, + 19, + 255, + 255, + 128, + 78, + 225, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1184, + 10, + 1, + 210, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 43, + 18, + 255, + 128, + 32, + 255, + 43, + 18, + 255, + 128, + 32, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 18, + 255, + 128, + 32, + 255, + 43, + 18, + 255, + 128, + 32, + 255, + 43, + 18, + 255, + 128, + 32, + 255, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1185, + 10, + 1, + 210, + 'Medium Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 35, + 64, + 158, + 128, + 16, + 244, + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 35, + 64, + 158, + 128, + 16, + 244, + 35, + 64, + 158, + 128, + 16, + 244, + 35, + 64, + 158, + 128, + 16, + 244, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1186, + 10, + 1, + 210, + 'Calypso Coral', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 11, + 232, + 242, + 128, + 24, + 255, + 11, + 232, + 242, + 128, + 24, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 11, + 232, + 242, + 128, + 24, + 255, + 11, + 232, + 242, + 128, + 24, + 255, + 11, + 232, + 242, + 128, + 24, + 255, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1187, + 10, + 1, + 210, + 'Bright Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 154, + 176, + 105, + 121, + 16, + 224, + 154, + 176, + 105, + 121, + 16, + 224, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 154, + 176, + 105, + 121, + 16, + 224, + 154, + 176, + 105, + 121, + 16, + 224, + 154, + 176, + 105, + 121, + 16, + 224, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1188, + 10, + 1, + 210, + 'Dark Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 85, + 43, + 51, + 128, + 0, + 192, + 85, + 43, + 51, + 128, + 0, + 192, + 31, + 92, + 73, + 128, + 0, + 236, + 31, + 92, + 73, + 128, + 0, + 236, + 20, + 10, + 1, + 128, + 0, + 178, + 85, + 43, + 51, + 128, + 0, + 192, + 85, + 43, + 51, + 128, + 0, + 192, + 85, + 43, + 51, + 128, + 0, + 192, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1189, + 10, + 1, + 210, + 'Bright Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70statin', + 38, + 64, + 253, + 128, + 48, + 244, + 38, + 64, + 253, + 128, + 48, + 244, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 38, + 64, + 253, + 128, + 48, + 244, + 38, + 64, + 253, + 128, + 48, + 244, + 38, + 64, + 253, + 128, + 48, + 244, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1190, + 10, + 1, + 210, + 'Bright Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 43, + 133, + 255, + 128, + 48, + 255, + 43, + 133, + 255, + 128, + 48, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 133, + 255, + 128, + 48, + 255, + 43, + 133, + 255, + 128, + 48, + 255, + 43, + 133, + 255, + 128, + 48, + 255, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1191, + 10, + 1, + 210, + 'Pastel Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70statin', + 147, + 64, + 255, + 128, + 32, + 240, + 147, + 64, + 255, + 128, + 32, + 240, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 147, + 64, + 255, + 128, + 32, + 240, + 147, + 64, + 255, + 128, + 32, + 240, + 147, + 64, + 255, + 128, + 32, + 240, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1192, + 10, + 1, + 210, + 'Light Ivy Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70statin', + 45, + 60, + 232, + 128, + 24, + 255, + 45, + 60, + 232, + 128, + 24, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 45, + 60, + 232, + 128, + 24, + 255, + 45, + 60, + 232, + 128, + 24, + 255, + 45, + 60, + 232, + 128, + 24, + 255, + 0, + 'Factory', + 'As per 70 Mustang CSV.' + ), + ( + 1193, + 10, + 1, + 212, + 'Raven Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 20, + 10, + 1, + 128, + 0, + 177, + 1, + 253, + 163, + 128, + 24, + 242, + 254, + 207, + 78, + 128, + 0, + 244, + 254, + 207, + 78, + 128, + 0, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 20, + 10, + 1, + 128, + 0, + 177, + 1, + 253, + 163, + 128, + 24, + 242, + 20, + 10, + 1, + 128, + 0, + 177, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1194, + 10, + 1, + 212, + 'Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 1, + 99, + 138, + 128, + 0, + 248, + 20, + 1, + 6, + 128, + 1, + 177, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 1, + 254, + 138, + 128, + 0, + 218, + 20, + 1, + 6, + 128, + 1, + 177, + 1, + 254, + 138, + 128, + 0, + 228, + 0, + 'Factory', + 'This is not a factory color according to the CSV. Left over from old CSV.' + ), + ( + 1195, + 10, + 1, + 212, + 'Grabber Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mactin', + 116, + 255, + 151, + 128, + 6, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 116, + 255, + 151, + 128, + 6, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 116, + 255, + 151, + 128, + 6, + 255, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1196, + 10, + 1, + 212, + 'Grabber Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mactin', + 152, + 189, + 199, + 128, + 16, + 250, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 152, + 189, + 199, + 128, + 16, + 250, + 128, + 0, + 0, + 128, + 0, + 128, + 152, + 189, + 199, + 128, + 16, + 250, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1197, + 10, + 1, + 212, + 'Grabber Orange', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mactin', + 19, + 255, + 255, + 128, + 78, + 225, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 19, + 255, + 255, + 128, + 78, + 225, + 128, + 0, + 0, + 128, + 0, + 128, + 19, + 255, + 255, + 128, + 78, + 225, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1198, + 10, + 1, + 212, + 'Wimbledon White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 43, + 18, + 255, + 128, + 32, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 18, + 255, + 128, + 32, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 18, + 255, + 128, + 32, + 255, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1199, + 10, + 1, + 212, + 'Medium Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 35, + 64, + 158, + 128, + 16, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 35, + 64, + 158, + 128, + 16, + 244, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1200, + 10, + 1, + 212, + 'Calypso Coral', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 11, + 232, + 242, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 11, + 232, + 242, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 11, + 232, + 242, + 128, + 24, + 255, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1201, + 10, + 1, + 212, + 'Bright Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 154, + 176, + 105, + 121, + 16, + 224, + 43, + 0, + 255, + 128, + 32, + 255, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 154, + 176, + 105, + 121, + 16, + 224, + 43, + 0, + 255, + 128, + 32, + 255, + 154, + 176, + 105, + 121, + 16, + 224, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1202, + 10, + 1, + 212, + 'Dark Ivy Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 85, + 43, + 51, + 128, + 0, + 192, + 35, + 64, + 158, + 128, + 16, + 244, + 31, + 92, + 73, + 128, + 0, + 236, + 31, + 92, + 73, + 128, + 0, + 236, + 20, + 10, + 1, + 128, + 0, + 178, + 85, + 43, + 51, + 128, + 0, + 192, + 35, + 64, + 158, + 128, + 16, + 244, + 85, + 43, + 51, + 128, + 0, + 192, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1203, + 10, + 1, + 212, + 'Bright Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mactin', + 38, + 64, + 253, + 128, + 48, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 38, + 64, + 253, + 128, + 48, + 244, + 128, + 0, + 0, + 128, + 0, + 128, + 38, + 64, + 253, + 128, + 48, + 244, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1204, + 10, + 1, + 212, + 'Bright Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 43, + 133, + 255, + 128, + 48, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 133, + 255, + 128, + 48, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 43, + 133, + 255, + 128, + 48, + 255, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1205, + 10, + 1, + 212, + 'Pastel Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '70mactin', + 147, + 64, + 255, + 128, + 32, + 240, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 147, + 64, + 255, + 128, + 32, + 240, + 128, + 0, + 0, + 128, + 0, + 128, + 147, + 64, + 255, + 128, + 32, + 240, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1206, + 10, + 1, + 212, + 'Light Ivy Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 250, + '70mactin', + 45, + 60, + 232, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 128, + 0, + 124, + 128, + 61, + 176, + 128, + 0, + 124, + 128, + 61, + 176, + 20, + 10, + 1, + 128, + 0, + 178, + 45, + 60, + 232, + 128, + 24, + 255, + 128, + 0, + 0, + 128, + 0, + 128, + 45, + 60, + 232, + 128, + 24, + 255, + 0, + 'Factory', + 'As per 70 Mach 1 CSV.' + ), + ( + 1207, + 10, + 1, + 220, + 'Bolero Red', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 255, + 255, + 128, + 0, + 250, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 52, + 255, + 128, + 0, + 249, + 0, + 255, + 255, + 128, + 0, + 250, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1208, + 10, + 1, + 220, + 'Deepwater Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 148, + 255, + 54, + 152, + 0, + 202, + 148, + 255, + 54, + 152, + 0, + 202, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 170, + 33, + 54, + 128, + 0, + 231, + 148, + 255, + 54, + 152, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1209, + 10, + 1, + 220, + 'Capri Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 2, + 184, + 73, + 128, + 0, + 239, + 2, + 184, + 73, + 128, + 0, + 239, + 30, + 15, + 255, + 128, + 60, + 255, + 20, + 5, + 1, + 128, + 0, + 168, + 43, + 48, + 255, + 128, + 11, + 255, + 43, + 48, + 255, + 128, + 23, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1210, + 10, + 1, + 220, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 20, + 5, + 1, + 128, + 0, + 168, + 20, + 5, + 1, + 128, + 0, + 168, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 0, + 255, + 255, + 128, + 0, + 250, + 20, + 5, + 1, + 128, + 0, + 208, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1211, + 10, + 1, + 220, + 'Tahoe Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 142, + 58, + 138, + 0, + 201, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 2, + 128, + 0, + 214, + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 71, + 58, + 138, + 0, + 241, + 131, + 142, + 58, + 138, + 0, + 201, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1212, + 10, + 1, + 220, + 'Silverglaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 41, + 24, + 163, + 128, + 1, + 248, + 41, + 24, + 163, + 128, + 1, + 235, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1213, + 10, + 1, + 220, + 'Marina Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 142, + 181, + 171, + 128, + 0, + 233, + 142, + 181, + 171, + 128, + 0, + 233, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 255, + 128, + 60, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 121, + 40, + 171, + 128, + 0, + 249, + 142, + 181, + 171, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1214, + 10, + 1, + 220, + 'Butternut Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 32, + 175, + 255, + 128, + 20, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 35, + 82, + 255, + 128, + 7, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1215, + 10, + 1, + 220, + 'Verde Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 95, + 147, + 37, + 128, + 0, + 180, + 95, + 147, + 37, + 128, + 0, + 180, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 95, + 147, + 37, + 128, + 0, + 180, + 66, + 39, + 91, + 128, + 0, + 241, + 95, + 147, + 37, + 128, + 0, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1216, + 10, + 1, + 220, + 'Mountain Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 69, + 60, + 167, + 108, + 1, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 69, + 60, + 167, + 108, + 11, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1217, + 10, + 1, + 220, + 'Emerald Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 134, + 90, + 139, + 144, + 0, + 212, + 134, + 90, + 139, + 144, + 0, + 212, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 126, + 56, + 137, + 143, + 0, + 224, + 134, + 90, + 139, + 144, + 0, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1218, + 10, + 1, + 220, + 'Madeira Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 3, + 250, + 64, + 128, + 0, + 205, + 3, + 250, + 64, + 128, + 0, + 205, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 248, + 45, + 64, + 128, + 0, + 228, + 3, + 250, + 64, + 128, + 0, + 205, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1219, + 10, + 1, + 220, + 'Antique Pewter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 32, + 24, + 83, + 137, + 1, + 236, + 32, + 24, + 83, + 137, + 1, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1220, + 10, + 1, + 220, + 'Plum Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 231, + 253, + 44, + 128, + 0, + 181, + 231, + 253, + 44, + 128, + 0, + 181, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 231, + 49, + 44, + 128, + 0, + 253, + 231, + 253, + 44, + 128, + 0, + 181, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1221, + 10, + 1, + 220, + 'Sierra Fawn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 26, + 28, + 147, + 138, + 0, + 249, + 26, + 58, + 147, + 138, + 0, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1222, + 10, + 1, + 220, + 'Nantucket Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 184, + 43, + 169, + 128, + 0, + 255, + 184, + 43, + 169, + 128, + 0, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 184, + 43, + 169, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 253, + 184, + 43, + 169, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1223, + 10, + 1, + 220, + 'Granada Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67z28tin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 36, + 33, + 168, + 138, + 0, + 249, + 36, + 104, + 168, + 138, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1224, + 10, + 1, + 219, + 'Deepwater Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 148, + 255, + 54, + 152, + 0, + 202, + 148, + 255, + 54, + 152, + 0, + 202, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 170, + 33, + 54, + 128, + 0, + 231, + 148, + 255, + 54, + 152, + 0, + 202, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1225, + 10, + 1, + 219, + 'Capri Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 2, + 184, + 73, + 128, + 0, + 239, + 2, + 184, + 73, + 128, + 0, + 239, + 30, + 15, + 255, + 128, + 60, + 255, + 20, + 5, + 1, + 128, + 0, + 168, + 43, + 48, + 255, + 128, + 11, + 255, + 43, + 48, + 255, + 128, + 23, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1226, + 10, + 1, + 219, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 20, + 5, + 1, + 128, + 0, + 168, + 20, + 5, + 1, + 128, + 0, + 168, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 0, + 255, + 255, + 128, + 0, + 250, + 20, + 5, + 1, + 128, + 0, + 208, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1227, + 10, + 1, + 219, + 'Tahoe Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 142, + 58, + 138, + 0, + 201, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 2, + 128, + 0, + 214, + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 71, + 58, + 138, + 0, + 241, + 131, + 142, + 58, + 138, + 0, + 201, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1228, + 10, + 1, + 219, + 'Silverglaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 41, + 24, + 163, + 128, + 1, + 248, + 41, + 24, + 163, + 128, + 1, + 235, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1229, + 10, + 1, + 219, + 'Marina Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 142, + 181, + 171, + 128, + 0, + 233, + 142, + 181, + 171, + 128, + 0, + 233, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 255, + 128, + 60, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 121, + 40, + 171, + 128, + 0, + 249, + 142, + 181, + 171, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1230, + 10, + 1, + 219, + 'Butternut Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 32, + 175, + 255, + 128, + 20, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 35, + 82, + 255, + 128, + 7, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1231, + 10, + 1, + 219, + 'Verde Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 95, + 147, + 37, + 128, + 0, + 180, + 95, + 147, + 37, + 128, + 0, + 180, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 95, + 147, + 37, + 128, + 0, + 180, + 66, + 39, + 91, + 128, + 0, + 241, + 95, + 147, + 37, + 128, + 0, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1232, + 10, + 1, + 219, + 'Mountain Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 69, + 60, + 167, + 108, + 1, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 69, + 60, + 167, + 108, + 11, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1233, + 10, + 1, + 219, + 'Emerald Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 134, + 90, + 139, + 144, + 0, + 212, + 134, + 90, + 139, + 144, + 0, + 212, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 126, + 56, + 137, + 143, + 0, + 224, + 134, + 90, + 139, + 144, + 0, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1234, + 10, + 1, + 219, + 'Madeira Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 3, + 250, + 64, + 128, + 0, + 205, + 3, + 250, + 64, + 128, + 0, + 205, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 248, + 45, + 64, + 128, + 0, + 228, + 3, + 250, + 64, + 128, + 0, + 205, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1235, + 10, + 1, + 219, + 'Antique Pewter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 32, + 24, + 83, + 137, + 1, + 236, + 32, + 24, + 83, + 137, + 1, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1236, + 10, + 1, + 219, + 'Plum Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 231, + 253, + 44, + 128, + 0, + 181, + 231, + 253, + 44, + 128, + 0, + 181, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 231, + 49, + 44, + 128, + 0, + 253, + 231, + 253, + 44, + 128, + 0, + 181, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1237, + 10, + 1, + 219, + 'Sierra Fawn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 26, + 28, + 147, + 138, + 0, + 249, + 26, + 58, + 147, + 138, + 0, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1238, + 10, + 1, + 219, + 'Nantucket Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 184, + 43, + 169, + 128, + 0, + 255, + 184, + 43, + 169, + 128, + 0, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 184, + 43, + 169, + 128, + 0, + 255, + 233, + 0, + 255, + 128, + 0, + 253, + 184, + 43, + 169, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1239, + 10, + 1, + 219, + 'Granada Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67rsctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 36, + 33, + 168, + 138, + 0, + 249, + 36, + 104, + 168, + 138, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1240, + 10, + 1, + 140, + 'Capri Cream', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 2, + 184, + 73, + 128, + 0, + 239, + 2, + 184, + 73, + 128, + 0, + 239, + 30, + 15, + 255, + 128, + 60, + 255, + 20, + 5, + 1, + 128, + 0, + 168, + 43, + 48, + 255, + 128, + 11, + 255, + 43, + 48, + 255, + 128, + 23, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1241, + 10, + 1, + 140, + 'Tuxedo Black', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 20, + 5, + 1, + 128, + 0, + 168, + 20, + 5, + 1, + 128, + 0, + 168, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 0, + 255, + 255, + 128, + 0, + 250, + 20, + 5, + 1, + 128, + 0, + 208, + 20, + 5, + 1, + 128, + 0, + 168, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1242, + 10, + 1, + 140, + 'Tahoe Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 142, + 58, + 138, + 0, + 201, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 2, + 128, + 0, + 214, + 131, + 142, + 58, + 138, + 0, + 201, + 131, + 71, + 58, + 138, + 0, + 241, + 131, + 142, + 58, + 138, + 0, + 201, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1243, + 10, + 1, + 140, + 'Silverglaze', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 41, + 24, + 163, + 128, + 1, + 248, + 41, + 24, + 163, + 128, + 1, + 235, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1244, + 10, + 1, + 140, + 'Marina Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 142, + 181, + 171, + 128, + 0, + 233, + 142, + 181, + 171, + 128, + 0, + 233, + 32, + 26, + 207, + 128, + 20, + 248, + 32, + 26, + 207, + 128, + 20, + 248, + 30, + 15, + 255, + 128, + 60, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 121, + 40, + 171, + 128, + 0, + 249, + 142, + 181, + 171, + 128, + 0, + 233, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1245, + 10, + 1, + 140, + 'Butternut Yellow', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 32, + 175, + 255, + 128, + 20, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 35, + 82, + 255, + 128, + 7, + 255, + 32, + 175, + 255, + 128, + 20, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1246, + 10, + 1, + 140, + 'Provincial White', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 16, + 255, + 255, + 128, + 22, + 255, + 128, + 5, + 255, + 128, + 14, + 255, + 128, + 5, + 255, + 128, + 30, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1247, + 10, + 1, + 140, + 'Verde Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 95, + 147, + 37, + 128, + 0, + 180, + 95, + 147, + 37, + 128, + 0, + 180, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 95, + 147, + 37, + 128, + 0, + 180, + 66, + 39, + 91, + 128, + 0, + 241, + 95, + 147, + 37, + 128, + 0, + 180, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1248, + 10, + 1, + 140, + 'Mountain Green', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 69, + 60, + 167, + 108, + 1, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 69, + 60, + 167, + 108, + 11, + 255, + 69, + 60, + 167, + 108, + 1, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1249, + 10, + 1, + 140, + 'Emerald Turquoise', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 134, + 90, + 139, + 144, + 0, + 212, + 134, + 90, + 139, + 144, + 0, + 212, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 126, + 56, + 137, + 143, + 0, + 224, + 134, + 90, + 139, + 144, + 0, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1250, + 10, + 1, + 140, + 'Madeira Maroon', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 3, + 250, + 64, + 128, + 0, + 205, + 3, + 250, + 64, + 128, + 0, + 205, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 248, + 45, + 64, + 128, + 0, + 228, + 3, + 250, + 64, + 128, + 0, + 205, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1251, + 10, + 1, + 140, + 'Antique Pewter', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 32, + 24, + 83, + 137, + 1, + 236, + 32, + 24, + 83, + 137, + 1, + 212, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1252, + 10, + 1, + 140, + 'Plum Mist', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 231, + 253, + 44, + 128, + 0, + 181, + 231, + 253, + 44, + 128, + 0, + 181, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 231, + 49, + 44, + 128, + 0, + 253, + 231, + 253, + 44, + 128, + 0, + 181, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1253, + 10, + 1, + 140, + 'Sierra Fawn', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 22, + 104, + 94, + 128, + 0, + 245, + 22, + 104, + 94, + 128, + 0, + 245, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + 26, + 28, + 147, + 138, + 0, + 249, + 26, + 58, + 147, + 138, + 0, + 245, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1254, + 10, + 1, + 140, + 'Nantucket Blue', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 184, + 43, + 169, + 128, + 0, + 255, + 184, + 43, + 169, + 128, + 0, + 255, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 184, + 43, + 169, + 128, + 0, + 255, + 128, + 0, + 255, + 128, + 0, + 253, + 184, + 43, + 169, + 128, + 0, + 255, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1255, + 10, + 1, + 140, + 'Granada Gold', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 200, + '67ssctin', + 30, + 15, + 2, + 128, + 0, + 173, + 131, + 16, + 158, + 128, + 10, + 254, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 10, + 5, + 128, + 0, + 232, + 30, + 15, + 2, + 128, + 0, + 214, + 20, + 5, + 1, + 128, + 0, + 168, + NULL, + 33, + 168, + 138, + 0, + 249, + 36, + 104, + NULL, + 138, + 0, + 239, + 0, + 'Factory', + 'This is a factory stock color.' + ), + ( + 1256, + 10, + 1, + 113, + 'Lady Liberty', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10, + '57chemem', + 176, + 194, + 71, + 128, + 0, + 255, + 176, + 194, + 71, + 128, + 0, + 255, + 176, + 194, + 71, + 128, + 0, + 255, + 176, + 194, + 71, + 128, + 0, + 255, + 176, + 194, + 71, + 128, + 0, + 255, + 176, + 194, + 71, + 128, + 0, + 255, + 176, + 194, + 71, + 128, + 0, + 255, + 176, + 194, + 71, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ), + ( + 1257, + 10, + 1, + 104, + 'All-American', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 10, + '57faimem', + 154, + 99, + 84, + 128, + 0, + 255, + 154, + 99, + 84, + 128, + 0, + 255, + 154, + 99, + 84, + 128, + 0, + 255, + 154, + 99, + 84, + 128, + 0, + 255, + 154, + 99, + 84, + 128, + 0, + 255, + 154, + 99, + 84, + 128, + 0, + 255, + 154, + 99, + 84, + 128, + 0, + 255, + 154, + 99, + 84, + 128, + 0, + 255, + 0, + 'McCormack', + NULL + ); \ No newline at end of file diff --git a/migrations/0037-createNextPartNumberSeq.sql b/migrations/0037-createNextPartNumberSeq.sql new file mode 100644 index 000000000..b622e831d --- /dev/null +++ b/migrations/0037-createNextPartNumberSeq.sql @@ -0,0 +1,3 @@ +CREATE SEQUENCE part_partid_seq START +WITH + 1 INCREMENT BY 1 NO MINVALUE MAXVALUE 4294967295 CACHE 1 OWNED BY part.part_id; \ No newline at end of file diff --git a/migrations/0038-createWarehouse.sql b/migrations/0038-createWarehouse.sql new file mode 100644 index 000000000..e49e34c2f --- /dev/null +++ b/migrations/0038-createWarehouse.sql @@ -0,0 +1,14 @@ +CREATE TABLE + if not exists warehouse ( + branded_part_id int NOT NULL, + skin_id int NOT NULL, + player_id int NOT NULL, + qty_avail int NULL, + CONSTRAINT sys_pk_12148 PRIMARY KEY (branded_part_id, skin_id, player_id) + ); + +CREATE INDEX sys_idx_warehouse_brandedpartwarehouse_12775 ON warehouse (branded_part_id); + +CREATE INDEX sys_idx_warehouse_playerwarehouse_12776 ON warehouse (player_id); + +CREATE INDEX sys_idx_warehouse_skinwarehouse_12777 ON warehouse (skin_id); \ No newline at end of file diff --git a/migrations/0039-createLogin.sql b/migrations/0039-createLogin.sql new file mode 100644 index 000000000..165b4b80e --- /dev/null +++ b/migrations/0039-createLogin.sql @@ -0,0 +1,9 @@ +create table if not exists login ( + customer_id integer not null unique, + login_name varchar(32) not null, + password varchar(32) not null, + login_level smallint default 0 not null, + constraint login_login_pk primary key (login_name) +); + +create unique index if not exists login_name_idx on login (login_name); \ No newline at end of file diff --git a/migrations/0040-createProfile.sql b/migrations/0040-createProfile.sql new file mode 100644 index 000000000..48cf70cd4 --- /dev/null +++ b/migrations/0040-createProfile.sql @@ -0,0 +1,26 @@ +create table + if not exists profile ( + customer_id integer not null, + profile_name varchar(32) not null, + server_id integer default 0 not null, + create_stamp integer default extract(epoch from now())::integer not null, + last_login_stamp integer default extract(epoch from now())::integer not null, + number_games integer default 1 not null, + profile_id integer not null, + is_online boolean default false not null, + game_purchase_stamp integer default extract(epoch from now())::integer not null, + game_serial_number varchar(32) not null, + time_online integer not null, + time_in_game integer not null, + game_blob varchar(512) not null, + personal_blob varchar(256) not null, + picture_blob varchar(1) not null, + dnd boolean default false not null, + game_start_stamp integer default extract(epoch from now())::integer not null, + current_key varchar(400) not null, + profile_level smallint default 0 not null, + shard_id integer not null, + constraint profile_profile_pk primary key (profile_id) + ); + +create unique index if not exists profile_id_idx on profile (profile_id); \ No newline at end of file diff --git a/migrations/0041-createKey.sql b/migrations/0041-createKey.sql new file mode 100644 index 000000000..4b5603d8a --- /dev/null +++ b/migrations/0041-createKey.sql @@ -0,0 +1,7 @@ +create table if not exists key ( + profile_id integer not null, + session_key varchar(100) not null, + constraint key_profile_id_fk foreign key (profile_id) references profile (profile_id) +); + + diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index d95c9b938..000000000 --- a/package-lock.json +++ /dev/null @@ -1,12424 +0,0 @@ -{ - "name": "mcos", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "mcos", - "version": "1.0.0", - "license": "AGPL-3.0", - "dependencies": { - "@adminjs/sequelize": "^4.1.1", - "@fastify/sensible": "^5.5.0", - "@sentry/node": "7.88", - "@sentry/profiling-node": "^1.3.2", - "adminjs": "^7.5.2", - "fastify": "^4.25.1", - "moment": "^2.29.4", - "pino": "^8.17.1", - "sequelize": "^6.35.2", - "sqlite": "^5.1.1", - "ts-node": "10.9.2" - }, - "devDependencies": { - "@sentry/cli": "^2.23.1", - "@tsconfig/node-lts": "^20.1.0", - "@tsconfig/node20": "^20.1.2", - "@types/chai": "4.3.11", - "@types/node": "^20.10.5", - "@types/sinon": "17.0.2", - "@types/sinon-chai": "3.2.12", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", - "@vitest/coverage-v8": "^1.1.0", - "eslint": "^8.56.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "5.1.1", - "husky": "^8.0.3", - "jsdoc": "^4.0.2", - "lint-staged": "^15.2.0", - "prettier": "3.1.1", - "prettier-eslint": "16.2.0", - "rimraf": "^5.0.5", - "standard-version": "^9.5.0", - "tsx": "4.7.0", - "typescript": "^5.3.3", - "typescript-eslint-language-service": "^5.0.5", - "vitest": "^1.1.0" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@adminjs/design-system": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "@hypnosphi/create-react-context": "^0.3.1", - "@tiptap/core": "2.0.1", - "@tiptap/extension-bubble-menu": "2.0.1", - "@tiptap/extension-character-count": "2.0.1", - "@tiptap/extension-code": "2.0.1", - "@tiptap/extension-document": "2.0.1", - "@tiptap/extension-floating-menu": "2.0.1", - "@tiptap/extension-heading": "2.0.1", - "@tiptap/extension-image": "2.0.1", - "@tiptap/extension-link": "2.0.1", - "@tiptap/extension-table": "2.0.1", - "@tiptap/extension-table-cell": "2.0.1", - "@tiptap/extension-table-header": "2.0.1", - "@tiptap/extension-table-row": "2.0.1", - "@tiptap/extension-text": "2.0.1", - "@tiptap/extension-text-align": "2.0.1", - "@tiptap/extension-typography": "2.0.1", - "@tiptap/pm": "2.0.1", - "@tiptap/react": "2.0.1", - "@tiptap/starter-kit": "2.0.1", - "date-fns": "^2.29.3", - "flat": "^5.0.2", - "jw-paginate": "^1.0.4", - "lodash": "^4.17.21", - "polished": "^4.2.2", - "react-currency-input-field": "^3.6.10", - "react-datepicker": "^4.10.0", - "react-feather": "^2.0.10", - "react-phone-input-2": "^2.15.1", - "react-select": "^5.7.2", - "react-text-mask": "^5.5.0", - "styled-components": "5.3.9", - "styled-system": "^5.1.5", - "text-mask-addons": "^3.8.0" - }, - "peerDependencies": { - "react": "^18.1.0", - "react-dom": "^18.1.0" - } - }, - "node_modules/@adminjs/sequelize": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@adminjs/sequelize/-/sequelize-4.1.1.tgz", - "integrity": "sha512-HKOuuFn79tvW6xKP+v7FvKc6V7vERlmdEu9oAAR3gz6SE3T+V7Uz8N+trwngFhOpTWVcuws2FchFvKG3Xrm9iw==", - "dependencies": { - "escape-regexp": "0.0.1" - }, - "peerDependencies": { - "adminjs": "^7.0.0", - "sequelize": ">=6" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.9", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.22.15", - "@babel/helpers": "^7.22.15", - "@babel/parser": "^7.22.15", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.13", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.15", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.15", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-modules-systemjs": "^7.22.11", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.22.15", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.15", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-typescript": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "license": "MIT" - }, - "node_modules/@babel/runtime": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.11.0", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/source-map": { - "version": "0.5.7", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.11.0", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.1", - "license": "MIT" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.11.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.2", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.2.2", - "license": "MIT" - }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "license": "MIT" - }, - "node_modules/@emotion/unitless": { - "version": "0.8.1", - "license": "MIT" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "license": "MIT" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz", - "integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz", - "integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz", - "integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz", - "integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz", - "integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz", - "integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz", - "integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz", - "integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz", - "integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz", - "integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz", - "integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz", - "integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz", - "integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz", - "integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz", - "integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz", - "integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz", - "integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz", - "integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz", - "integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz", - "integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz", - "integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz", - "integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz", - "integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.8.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@fastify/ajv-compiler": { - "version": "3.5.0", - "license": "MIT", - "dependencies": { - "ajv": "^8.11.0", - "ajv-formats": "^2.1.1", - "fast-uri": "^2.0.0" - } - }, - "node_modules/@fastify/ajv-compiler/node_modules/ajv": { - "version": "8.12.0", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@fastify/ajv-compiler/node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/@fastify/deepmerge": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/@fastify/error": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.0.tgz", - "integrity": "sha512-e/mafFwbK3MNqxUcFBLgHhgxsF8UT1m8aj0dAlqEa2nJEgPsRtpHTZ3ObgrgkZ2M1eJHPTwgyUl/tXkvabsZdQ==" - }, - "node_modules/@fastify/fast-json-stringify-compiler": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "fast-json-stringify": "^5.7.0" - } - }, - "node_modules/@fastify/sensible": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@fastify/sensible/-/sensible-5.5.0.tgz", - "integrity": "sha512-D0zpl+nocsRXLceSbc4gasQaO3ZNQR4dy9Uu8Ym0mh8VUdrjpZ4g8Ca9O3pGXbBVOnPIGHUJNTV7Yf9dg/OYdg==", - "dependencies": { - "@lukeed/ms": "^2.0.1", - "fast-deep-equal": "^3.1.1", - "fastify-plugin": "^4.0.0", - "forwarded": "^0.2.0", - "http-errors": "^2.0.0", - "type-is": "^1.6.18", - "vary": "^1.1.2" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.1.1" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.5.1", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.4.1", - "@floating-ui/utils": "^0.1.1" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.1.1", - "license": "MIT" - }, - "node_modules/@hello-pangea/dnd": { - "version": "16.3.0", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.22.5", - "css-box-model": "^1.2.1", - "memoize-one": "^6.0.0", - "raf-schd": "^4.0.3", - "react-redux": "^8.1.1", - "redux": "^4.2.1", - "use-memo-one": "^1.1.3" - }, - "peerDependencies": { - "react": "^16.8.5 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@hypnosphi/create-react-context": { - "version": "0.3.1", - "license": "MIT", - "dependencies": { - "gud": "^1.0.0", - "warning": "^4.0.3" - }, - "peerDependencies": { - "prop-types": "^15.0.0", - "react": ">=0.14.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsdoc/salty": { - "version": "0.2.5", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=v12.0.0" - } - }, - "node_modules/@lukeed/ms": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", - "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.3.0", - "is-glob": "^4.0.3", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@redux-devtools/extension": { - "version": "3.2.5", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.7", - "immutable": "^4.2.2" - }, - "peerDependencies": { - "redux": "^3.1.0 || ^4.0.0" - } - }, - "node_modules/@remirror/core-constants": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/@remirror/core-helpers": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@remirror/core-constants": "^2.0.2", - "@remirror/types": "^1.0.1", - "@types/object.omit": "^3.0.0", - "@types/object.pick": "^1.3.2", - "@types/throttle-debounce": "^2.1.0", - "case-anything": "^2.1.13", - "dash-get": "^1.0.2", - "deepmerge": "^4.3.1", - "fast-deep-equal": "^3.1.3", - "make-error": "^1.3.6", - "object.omit": "^3.0.0", - "object.pick": "^1.3.0", - "throttle-debounce": "^3.0.1" - } - }, - "node_modules/@remirror/types": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "type-fest": "^2.19.0" - } - }, - "node_modules/@remirror/types/node_modules/type-fest": { - "version": "2.19.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@remix-run/router": { - "version": "1.8.0", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rollup/plugin-babel": { - "version": "6.0.3", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@rollup/pluginutils": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - }, - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "24.1.0", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^8.0.3", - "is-reference": "1.2.1", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { - "version": "0.27.0", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rollup/plugin-inject": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "estree-walker": "^2.0.2", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-inject/node_modules/magic-string": { - "version": "0.27.0", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.1", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "5.0.2", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-replace/node_modules/magic-string": { - "version": "0.27.0", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.3", - "license": "MIT", - "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.x || ^3.x" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.0.4", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.8.0.tgz", - "integrity": "sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.8.0.tgz", - "integrity": "sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.8.0.tgz", - "integrity": "sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.8.0.tgz", - "integrity": "sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.8.0.tgz", - "integrity": "sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.8.0.tgz", - "integrity": "sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.8.0.tgz", - "integrity": "sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.8.0.tgz", - "integrity": "sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.8.0.tgz", - "integrity": "sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.8.0.tgz", - "integrity": "sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.8.0.tgz", - "integrity": "sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.8.0.tgz", - "integrity": "sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.8.0.tgz", - "integrity": "sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sentry-internal/tracing": { - "version": "7.88.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.88.0.tgz", - "integrity": "sha512-xXQdcYhsS+ourzJHjXNjZC9zakuc97udmpgaXRjEP7FjPYclIx+YXwgFBdHM2kzAwZLFOsEce5dr46GVXUDfZw==", - "dependencies": { - "@sentry/core": "7.88.0", - "@sentry/types": "7.88.0", - "@sentry/utils": "7.88.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/cli": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.23.1.tgz", - "integrity": "sha512-3Tg3qzrdNWQAkuRyXniVhT+aNAwucshw0UKr/J2hxQgA72vxzcZlK4G0+Im9gIFwmzuBaD8jSGVpkzATuCeoNA==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.7", - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "which": "^2.0.2" - }, - "bin": { - "sentry-cli": "bin/sentry-cli" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@sentry/cli-darwin": "2.23.1", - "@sentry/cli-linux-arm": "2.23.1", - "@sentry/cli-linux-arm64": "2.23.1", - "@sentry/cli-linux-i686": "2.23.1", - "@sentry/cli-linux-x64": "2.23.1", - "@sentry/cli-win32-i686": "2.23.1", - "@sentry/cli-win32-x64": "2.23.1" - } - }, - "node_modules/@sentry/cli-darwin": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.23.1.tgz", - "integrity": "sha512-jSHORd9p/69BmKZRfJXFw4WFYODlw3mH1vBCi8LTWDimR9L3tthlCqYM1v5A26mUACqyNPI3s/6xvw5GOAsIhw==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-arm": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.23.1.tgz", - "integrity": "sha512-ur7DFWwHXrLRJLa0+vL22Wkr8FC1NIQwo0mfKI+51Y9ijKsfo8R7pO5MPRCYQz0DKR12VPXkq05KPsCNq5AtZQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-arm64": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.23.1.tgz", - "integrity": "sha512-f6e1x5zudglp8XdgN07hRhX8HVIeiY/dLAcvaV7qPNtZLd9pjsPgS2nyJlPPEC2WgG1FC439t3JmxIhRTjRA9g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-i686": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.23.1.tgz", - "integrity": "sha512-nm3iDgBwkwAZGkz2Oq44pdh0xdECOq/EumF8mAPA6YS2MKUWGsFQEb5/f6HLnqBULrd88RK1wrEW0eBIuIJs9Q==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-x64": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.23.1.tgz", - "integrity": "sha512-W8QWaxbkIOW2wpAQ1zUzA7+3bOX8lUu5bPxAfstGLobUtxZcTgydJ+58KCeyE6je/jhgzxu+fieat1bzTUrfdg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-win32-i686": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.23.1.tgz", - "integrity": "sha512-h8u2OUH9SvWJpRc3f0halzXut7+/BpbLc5eiViPqrcSosmngDSuy0TOGNqwsDW4hpkqm7RcTXWIUhLJcKtFFdA==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-win32-x64": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.23.1.tgz", - "integrity": "sha512-DG+oyQ1bsG5A7yd3c+gt2aD6V3IsR+mutV6h1QYQ9Y8PoloGhOWmt/fnZ5CT20/HyzejykMfASnscsJGHmXp4w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/core": { - "version": "7.88.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.88.0.tgz", - "integrity": "sha512-Jzbb7dcwiCO7kI0a1w+32UzWxbEn2OcZWzp55QMEeAh6nZ/5CXhXwpuHi0tW7doPj+cJdmxMTMu9LqMVfdGkzQ==", - "dependencies": { - "@sentry/types": "7.88.0", - "@sentry/utils": "7.88.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node": { - "version": "7.88.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.88.0.tgz", - "integrity": "sha512-X6Xyh7AEitnWqn1CHQrmsUqRn0GKj/6nPE5VC2DLQfHiFH1Fknrt+csFzDchQ/86awXYwuY4Le5ECEH//X/WzQ==", - "dependencies": { - "@sentry-internal/tracing": "7.88.0", - "@sentry/core": "7.88.0", - "@sentry/types": "7.88.0", - "@sentry/utils": "7.88.0", - "https-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/profiling-node": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@sentry/profiling-node/-/profiling-node-1.3.2.tgz", - "integrity": "sha512-Dm2FmR0+BYrTm3YSmbCxjeklAsXZecOwWarZQdrCQniPYlxS9GPgWv1P+J78+CrHZ4IpoIvnlRppGPMrJwPXkw==", - "hasInstallScript": true, - "dependencies": { - "detect-libc": "^2.0.2", - "node-abi": "^3.52.0" - }, - "bin": { - "sentry-prune-profiler-binaries": "scripts/prune-profiler-binaries.mjs" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@sentry/node": "^7.44.1" - } - }, - "node_modules/@sentry/types": { - "version": "7.88.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.88.0.tgz", - "integrity": "sha512-FvwvmX1pWAZKicPj4EpKyho8Wm+C4+r5LiepbbBF8oKwSPJdD2QV1fo/LWxsrzNxWOllFIVIXF5Ed3nPYQWpTw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/utils": { - "version": "7.88.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.88.0.tgz", - "integrity": "sha512-ukminfRmdBXTzk49orwJf3Lu3hR60ZRHjE2a4IXwYhyDT6JJgJqgsq1hzGXx0AyFfyS4WhfZ6QUBy7fu3BScZQ==", - "dependencies": { - "@sentry/types": "7.88.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@styled-system/background": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/border": { - "version": "5.1.5", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/color": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/core": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1" - } - }, - "node_modules/@styled-system/css": { - "version": "5.1.5", - "license": "MIT" - }, - "node_modules/@styled-system/flexbox": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/grid": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/layout": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/position": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/shadow": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/space": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/typography": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2" - } - }, - "node_modules/@styled-system/variant": { - "version": "5.1.5", - "license": "MIT", - "dependencies": { - "@styled-system/core": "^5.1.2", - "@styled-system/css": "^5.1.5" - } - }, - "node_modules/@tiptap/core": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-blockquote": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-bold": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-bubble-menu": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "tippy.js": "^6.3.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-bullet-list": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-character-count": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-code": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-code-block": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-document": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-dropcursor": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-floating-menu": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "tippy.js": "^6.3.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-gapcursor": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-hard-break": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-heading": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-history": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-image": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-italic": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-link": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "linkifyjs": "^4.1.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-list-item": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-ordered-list": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-paragraph": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-strike": { - "version": "2.1.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-table": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-table-cell": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-table-header": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-table-row": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-text": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-text-align": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/extension-typography": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/pm": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "prosemirror-changeset": "^2.2.0", - "prosemirror-collab": "^1.3.0", - "prosemirror-commands": "^1.3.1", - "prosemirror-dropcursor": "^1.5.0", - "prosemirror-gapcursor": "^1.3.1", - "prosemirror-history": "^1.3.0", - "prosemirror-inputrules": "^1.2.0", - "prosemirror-keymap": "^1.2.0", - "prosemirror-markdown": "^1.10.1", - "prosemirror-menu": "^1.2.1", - "prosemirror-model": "^1.18.1", - "prosemirror-schema-basic": "^1.2.0", - "prosemirror-schema-list": "^1.2.2", - "prosemirror-state": "^1.4.1", - "prosemirror-tables": "^1.3.0", - "prosemirror-trailing-node": "^2.0.2", - "prosemirror-transform": "^1.7.0", - "prosemirror-view": "^1.28.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0" - } - }, - "node_modules/@tiptap/react": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "@tiptap/extension-bubble-menu": "^2.0.1", - "@tiptap/extension-floating-menu": "^2.0.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.0.0", - "@tiptap/pm": "^2.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - } - }, - "node_modules/@tiptap/starter-kit": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^2.0.1", - "@tiptap/extension-blockquote": "^2.0.1", - "@tiptap/extension-bold": "^2.0.1", - "@tiptap/extension-bullet-list": "^2.0.1", - "@tiptap/extension-code": "^2.0.1", - "@tiptap/extension-code-block": "^2.0.1", - "@tiptap/extension-document": "^2.0.1", - "@tiptap/extension-dropcursor": "^2.0.1", - "@tiptap/extension-gapcursor": "^2.0.1", - "@tiptap/extension-hard-break": "^2.0.1", - "@tiptap/extension-heading": "^2.0.1", - "@tiptap/extension-history": "^2.0.1", - "@tiptap/extension-horizontal-rule": "^2.0.1", - "@tiptap/extension-italic": "^2.0.1", - "@tiptap/extension-list-item": "^2.0.1", - "@tiptap/extension-ordered-list": "^2.0.1", - "@tiptap/extension-paragraph": "^2.0.1", - "@tiptap/extension-strike": "^2.0.1", - "@tiptap/extension-text": "^2.0.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, - "node_modules/@tsconfig/node-lts": { - "version": "20.1.0", - "resolved": "https://registry.npmjs.org/@tsconfig/node-lts/-/node-lts-20.1.0.tgz", - "integrity": "sha512-3w2D9MfGdqBL51pHB5nGFmGtXBn1gbO+n9xzwcGSvZPArtCn4tElk+6EeelLXispAeqv13GAgbzkgLNHtoxOCQ==", - "dev": true - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "license": "MIT" - }, - "node_modules/@tsconfig/node20": { - "version": "20.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/chai": { - "version": "4.3.11", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz", - "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==", - "dev": true - }, - "node_modules/@types/debug": { - "version": "4.1.8", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.44.2", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/linkify-it": { - "version": "3.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/markdown-it": { - "version": "12.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" - } - }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", - "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/object.omit": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/@types/object.pick": { - "version": "1.3.2", - "license": "MIT" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.2.21", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.6", - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "license": "MIT" - }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true - }, - "node_modules/@types/sinon": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.2.tgz", - "integrity": "sha512-Zt6heIGsdqERkxctIpvN5Pv3edgBrhoeb3yHyxffd4InN0AX2SVNKSrhdDZKGQICVOxWP/q4DyhpfPNMSrpIiA==", - "dev": true, - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinon-chai": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz", - "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==", - "dev": true, - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/throttle-debounce": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/@types/validator": { - "version": "13.11.1", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", - "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/type-utils": "6.15.0", - "@typescript-eslint/utils": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", - "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/typescript-estree": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", - "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", - "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.15.0", - "@typescript-eslint/utils": "6.15.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", - "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", - "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/visitor-keys": "6.15.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", - "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.15.0", - "@typescript-eslint/types": "6.15.0", - "@typescript-eslint/typescript-estree": "6.15.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", - "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.15.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vitest/coverage-v8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.1.0.tgz", - "integrity": "sha512-kHQRk70vTdXAyQY2C0vKOHPyQD/R6IUzcGdO4vCuyr4alE5Yg1+Sk2jSdjlIrTTXdcNEs+ReWVM09mmSFJpzyQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@bcoe/v8-coverage": "^0.2.3", - "debug": "^4.3.4", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.1.6", - "magic-string": "^0.30.5", - "magicast": "^0.3.2", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": "^1.0.0" - } - }, - "node_modules/@vitest/expect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.1.0.tgz", - "integrity": "sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==", - "dev": true, - "dependencies": { - "@vitest/spy": "1.1.0", - "@vitest/utils": "1.1.0", - "chai": "^4.3.10" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.1.0.tgz", - "integrity": "sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==", - "dev": true, - "dependencies": { - "@vitest/utils": "1.1.0", - "p-limit": "^5.0.0", - "pathe": "^1.1.1" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vitest/runner/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vitest/snapshot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.1.0.tgz", - "integrity": "sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==", - "dev": true, - "dependencies": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.1.0.tgz", - "integrity": "sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==", - "dev": true, - "dependencies": { - "tinyspy": "^2.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.1.0.tgz", - "integrity": "sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==", - "dev": true, - "dependencies": { - "diff-sequences": "^29.6.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abstract-logging": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/acorn": { - "version": "8.10.0", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/adminjs": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/adminjs/-/adminjs-7.5.2.tgz", - "integrity": "sha512-Gx80srhJSkxLp16BrLl+A3EdsOFmT7ewxw0DNWHchLs3MxV5JNgx69u5NtmFPKspAoKo86ouITpO5JzPyKBFPA==", - "dependencies": { - "@adminjs/design-system": "^4.0.0", - "@babel/core": "^7.21.0", - "@babel/parser": "^7.21.0", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-transform-runtime": "^7.21.0", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@babel/register": "^7.21.0", - "@hello-pangea/dnd": "^16.2.0", - "@redux-devtools/extension": "^3.2.5", - "@rollup/plugin-babel": "^6.0.3", - "@rollup/plugin-commonjs": "^24.0.1", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.0.1", - "@rollup/plugin-replace": "^5.0.2", - "@rollup/plugin-terser": "^0.4.0", - "axios": "^1.3.4", - "commander": "^10.0.0", - "flat": "^5.0.2", - "i18next": "^22.4.13", - "i18next-browser-languagedetector": "^7.0.1", - "i18next-http-backend": "^2.2.0", - "lodash": "^4.17.21", - "ora": "^6.2.0", - "prop-types": "^15.8.1", - "punycode": "^2.3.0", - "qs": "^6.11.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-feather": "^2.0.10", - "react-i18next": "^12.2.0", - "react-is": "^18.2.0", - "react-redux": "^8.0.5", - "react-router": "^6.9.0", - "react-router-dom": "^6.9.0", - "redux": "^4.2.1", - "rollup": "^3.15.0", - "rollup-plugin-polyfill-node": "^0.12.0", - "slash": "^5.0.0", - "uuid": "^9.0.0", - "xss": "^1.0.14" - }, - "bin": { - "admin": "cli.js" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "dev": true, - "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/arg": { - "version": "4.1.3", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" - }, - "node_modules/array-ify": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/avvio": { - "version": "8.2.1", - "license": "MIT", - "dependencies": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-styled-components": { - "version": "2.1.4", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "lodash": "^4.17.21", - "picomatch": "^2.3.1" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/big-integer": { - "version": "1.6.51", - "dev": true, - "license": "Unlicense", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bl": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "dev": true, - "license": "MIT" - }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.10", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bundle-name": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "run-applescript": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelize": { - "version": "1.0.1", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001528", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/case-anything": { - "version": "2.1.13", - "license": "MIT", - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/catharsis": { - "version": "0.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.15" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/classnames": { - "version": "2.3.2", - "license": "MIT" - }, - "node_modules/cli-cursor": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.0", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", - "dev": true, - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", - "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", - "dev": true, - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/compare-func": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "2.0.0", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/conventional-changelog": { - "version": "3.1.25", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-atom": { - "version": "2.0.8", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-codemirror": { - "version": "2.0.8", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-config-spec": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-ember": { - "version": "2.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-eslint": { - "version": "3.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-express": { - "version": "2.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-jquery": { - "version": "3.0.11", - "dev": true, - "license": "ISC", - "dependencies": { - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-jshint": { - "version": "2.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commits-parser/node_modules/split2": { - "version": "3.2.2", - "dev": true, - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" - }, - "bin": { - "conventional-recommended-bump": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/core-js-compat": { - "version": "3.32.2", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/crelt": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/cross-fetch": { - "version": "3.1.6", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.11" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-box-model": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "tiny-invariant": "^1.0.6" - } - }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/css-to-react-native": { - "version": "3.2.0", - "license": "MIT", - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.2", - "license": "MIT" - }, - "node_modules/dargs": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dash-get": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/date-fns": { - "version": "2.30.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-browser": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotgitignore": { - "version": "2.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "find-up": "^3.0.0", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/find-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/locate-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dotgitignore/node_modules/p-locate": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dotgitignore/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/dottie": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.510", - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/encoding": { - "version": "0.1.13", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/entities": { - "version": "3.0.1", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/esbuild": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz", - "integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.10", - "@esbuild/android-arm": "0.19.10", - "@esbuild/android-arm64": "0.19.10", - "@esbuild/android-x64": "0.19.10", - "@esbuild/darwin-arm64": "0.19.10", - "@esbuild/darwin-x64": "0.19.10", - "@esbuild/freebsd-arm64": "0.19.10", - "@esbuild/freebsd-x64": "0.19.10", - "@esbuild/linux-arm": "0.19.10", - "@esbuild/linux-arm64": "0.19.10", - "@esbuild/linux-ia32": "0.19.10", - "@esbuild/linux-loong64": "0.19.10", - "@esbuild/linux-mips64el": "0.19.10", - "@esbuild/linux-ppc64": "0.19.10", - "@esbuild/linux-riscv64": "0.19.10", - "@esbuild/linux-s390x": "0.19.10", - "@esbuild/linux-x64": "0.19.10", - "@esbuild/netbsd-x64": "0.19.10", - "@esbuild/openbsd-x64": "0.19.10", - "@esbuild/sunos-x64": "0.19.10", - "@esbuild/win32-arm64": "0.19.10", - "@esbuild/win32-ia32": "0.19.10", - "@esbuild/win32-x64": "0.19.10" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-regexp": { - "version": "0.0.1" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.1.tgz", - "integrity": "sha512-WQpV3mSmIobb77s4qiCZu3dBrZZ0rj8ckSfBtRrgNK9Wnh2s3eiaxNTWloz1LJ1WtvqZES/PAI7PLvsrGt/CEA==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.5" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fast-content-type-parse": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz", - "integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==" - }, - "node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stringify": { - "version": "5.8.0", - "license": "MIT", - "dependencies": { - "@fastify/deepmerge": "^1.0.0", - "ajv": "^8.10.0", - "ajv-formats": "^2.1.1", - "fast-deep-equal": "^3.1.3", - "fast-uri": "^2.1.0", - "rfdc": "^1.2.0" - } - }, - "node_modules/fast-json-stringify/node_modules/ajv": { - "version": "8.12.0", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/fast-json-stringify/node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-querystring": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "fast-decode-uri-component": "^1.0.1" - } - }, - "node_modules/fast-redact": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-uri": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/fastify": { - "version": "4.25.1", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.25.1.tgz", - "integrity": "sha512-D8d0rv61TwqoAS7lom2tvIlgVMlx88lLsiwXyWNjA7CU/LC/mx/Gp2WAlC0S/ABq19U+y/aRvYFG5xLUu2aMrg==", - "dependencies": { - "@fastify/ajv-compiler": "^3.5.0", - "@fastify/error": "^3.4.0", - "@fastify/fast-json-stringify-compiler": "^4.3.0", - "abstract-logging": "^2.0.1", - "avvio": "^8.2.1", - "fast-content-type-parse": "^1.1.0", - "fast-json-stringify": "^5.8.0", - "find-my-way": "^7.7.0", - "light-my-request": "^5.11.0", - "pino": "^8.17.0", - "process-warning": "^3.0.0", - "proxy-addr": "^2.0.7", - "rfdc": "^1.3.0", - "secure-json-parse": "^2.7.0", - "semver": "^7.5.4", - "toad-cache": "^3.3.0" - } - }, - "node_modules/fastify-plugin": { - "version": "4.5.1", - "license": "MIT" - }, - "node_modules/fastify/node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" - }, - "node_modules/fastq": { - "version": "1.15.0", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-my-way": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.7.0.tgz", - "integrity": "sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-querystring": "^1.0.0", - "safe-regex2": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.7", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "dev": true, - "license": "MIT", - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/split2": { - "version": "3.2.2", - "dev": true, - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/git-semver-tags": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "dev": true, - "license": "BSD", - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/glob": { - "version": "8.1.0", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/gud": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/handlebars": { - "version": "4.7.8", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/html-parse-stringify": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "void-elements": "3.1.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "4.3.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", - "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/i18next": { - "version": "22.5.1", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.6" - } - }, - "node_modules/i18next-browser-languagedetector": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.19.4" - } - }, - "node_modules/i18next-http-backend": { - "version": "2.2.2", - "license": "MIT", - "dependencies": { - "cross-fetch": "3.1.6" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.2.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "4.3.4", - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflection": { - "version": "1.13.4", - "engines": [ - "node >= 0.4.0" - ], - "license": "MIT" - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "license": "MIT" - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-interactive": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-reference": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-wsl/node_modules/is-docker": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js2xmlparser": { - "version": "4.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "xmlcreate": "^2.0.4" - } - }, - "node_modules/jsdoc": { - "version": "4.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/parser": "^7.20.15", - "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "underscore": "~1.13.2" - }, - "bin": { - "jsdoc": "jsdoc.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jsdoc/node_modules/entities": { - "version": "2.1.0", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/jsdoc/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jsdoc/node_modules/linkify-it": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/jsdoc/node_modules/markdown-it": { - "version": "12.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/json5": { - "version": "2.2.3", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jw-paginate": { - "version": "1.0.4", - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/light-my-request": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.11.0.tgz", - "integrity": "sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==", - "dependencies": { - "cookie": "^0.5.0", - "process-warning": "^2.0.0", - "set-cookie-parser": "^2.4.1" - } - }, - "node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "license": "MIT" - }, - "node_modules/linkify-it": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/linkifyjs": { - "version": "4.1.1", - "license": "MIT" - }, - "node_modules/lint-staged": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.0.tgz", - "integrity": "sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==", - "dev": true, - "dependencies": { - "chalk": "5.3.0", - "commander": "11.1.0", - "debug": "4.3.4", - "execa": "8.0.1", - "lilconfig": "3.0.0", - "listr2": "8.0.0", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.4" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=18.12.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/lint-staged/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/listr2": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.0.tgz", - "integrity": "sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==", - "dev": true, - "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.0.0", - "rfdc": "^1.3.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", - "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", - "dev": true, - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/local-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", - "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", - "dev": true, - "dependencies": { - "mlly": "^1.4.2", - "pkg-types": "^1.0.3" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "license": "MIT" - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.reduce": { - "version": "4.6.0", - "license": "MIT" - }, - "node_modules/lodash.startswith": { - "version": "4.2.1", - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "5.3.0", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-update": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", - "dev": true, - "dependencies": { - "ansi-escapes": "^6.2.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^7.0.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", - "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", - "dev": true, - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/loglevel": { - "version": "1.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loglevel-colored-level-prefix": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^1.1.3", - "loglevel": "^1.4.1" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/magicast": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.2.tgz", - "integrity": "sha512-Fjwkl6a0syt9TFN0JSYpOybxiMCkYNEeOTnOTNRbjphirLakznZXAqrXgj/7GG3D1dvETONNwrBfinvAbpunDg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.23.3", - "@babel/types": "^7.23.3", - "source-map-js": "^1.0.2" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "license": "ISC" - }, - "node_modules/map-obj": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-it": { - "version": "13.0.1", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it-anchor": { - "version": "8.6.7", - "dev": true, - "license": "Unlicense", - "peerDependencies": { - "@types/markdown-it": "*", - "markdown-it": "*" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memoize-one": { - "version": "6.0.0", - "license": "MIT" - }, - "node_modules/meow": { - "version": "8.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mlly": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", - "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", - "dev": true, - "dependencies": { - "acorn": "^8.10.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "ufo": "^1.3.0" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/moment": { - "version": "2.29.4", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.43", - "license": "MIT", - "dependencies": { - "moment": "^2.29.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/neo-async": { - "version": "2.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/node-abi": { - "version": "3.52.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.52.0.tgz", - "integrity": "sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.omit": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "is-extendable": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-exit-leak-free": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "9.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "6.3.1", - "license": "MIT", - "dependencies": { - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "5.3.0", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/orderedmap": { - "version": "2.1.1", - "license": "MIT" - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pino": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.17.1.tgz", - "integrity": "sha512-YoN7/NJgnsJ+fkADZqjhRt96iepWBndQHeClmSBH0sQWCb8zGD74t00SK4eOtKFi/f8TUmQnfmgglEhd2kI1RQ==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-abstract-transport": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", - "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "license": "MIT" - }, - "node_modules/pirates": { - "version": "4.0.6", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } - }, - "node_modules/polished": { - "version": "4.2.2", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.17.8" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-eslint": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-16.2.0.tgz", - "integrity": "sha512-GDTSKc62VaLceiaI/qMaKo2oco2CIWtbj4Zr6ckhbTgcBL/uR0d9jkMzh9OtBIT/Z7iBoCB4OHj/aJ5YuNgAuA==", - "dev": true, - "dependencies": { - "@typescript-eslint/parser": "^6.7.5", - "common-tags": "^1.4.0", - "dlv": "^1.1.0", - "eslint": "^8.7.0", - "indent-string": "^4.0.0", - "lodash.merge": "^4.6.0", - "loglevel-colored-level-prefix": "^1.0.0", - "prettier": "^3.0.1", - "pretty-format": "^29.7.0", - "require-relative": "^0.8.7", - "typescript": "^5.2.2", - "vue-eslint-parser": "^9.1.0" - }, - "engines": { - "node": ">=16.10.0" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/process-warning": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/progress": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "node_modules/prosemirror-changeset": { - "version": "2.2.1", - "license": "MIT", - "dependencies": { - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-collab": { - "version": "1.3.1", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0" - } - }, - "node_modules/prosemirror-commands": { - "version": "1.5.2", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-dropcursor": { - "version": "1.8.1", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0", - "prosemirror-view": "^1.1.0" - } - }, - "node_modules/prosemirror-gapcursor": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "prosemirror-keymap": "^1.0.0", - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-view": "^1.0.0" - } - }, - "node_modules/prosemirror-history": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.2.2", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.31.0", - "rope-sequence": "^1.3.0" - } - }, - "node_modules/prosemirror-inputrules": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-keymap": { - "version": "1.2.2", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "w3c-keyname": "^2.2.0" - } - }, - "node_modules/prosemirror-markdown": { - "version": "1.11.2", - "license": "MIT", - "dependencies": { - "markdown-it": "^13.0.1", - "prosemirror-model": "^1.0.0" - } - }, - "node_modules/prosemirror-menu": { - "version": "1.2.4", - "license": "MIT", - "dependencies": { - "crelt": "^1.0.0", - "prosemirror-commands": "^1.0.0", - "prosemirror-history": "^1.0.0", - "prosemirror-state": "^1.0.0" - } - }, - "node_modules/prosemirror-model": { - "version": "1.19.3", - "license": "MIT", - "dependencies": { - "orderedmap": "^2.0.0" - } - }, - "node_modules/prosemirror-schema-basic": { - "version": "1.2.2", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.19.0" - } - }, - "node_modules/prosemirror-schema-list": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.7.3" - } - }, - "node_modules/prosemirror-state": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.27.0" - } - }, - "node_modules/prosemirror-tables": { - "version": "1.3.4", - "license": "MIT", - "dependencies": { - "prosemirror-keymap": "^1.1.2", - "prosemirror-model": "^1.8.1", - "prosemirror-state": "^1.3.1", - "prosemirror-transform": "^1.2.1", - "prosemirror-view": "^1.13.3" - } - }, - "node_modules/prosemirror-trailing-node": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "@remirror/core-constants": "^2.0.2", - "@remirror/core-helpers": "^3.0.0", - "escape-string-regexp": "^4.0.0" - }, - "peerDependencies": { - "prosemirror-model": "^1.19.0", - "prosemirror-state": "^1.4.2", - "prosemirror-view": "^1.31.2" - } - }, - "node_modules/prosemirror-trailing-node/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prosemirror-transform": { - "version": "1.7.5", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0" - } - }, - "node_modules/prosemirror-view": { - "version": "1.31.7", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.16.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/raf-schd": { - "version": "4.0.3", - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react": { - "version": "18.2.0", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-currency-input-field": { - "version": "3.6.11", - "license": "MIT", - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-datepicker": { - "version": "4.16.0", - "license": "MIT", - "dependencies": { - "@popperjs/core": "^2.11.8", - "classnames": "^2.2.6", - "date-fns": "^2.30.0", - "prop-types": "^15.7.2", - "react-onclickoutside": "^6.12.2", - "react-popper": "^2.3.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17 || ^18", - "react-dom": "^16.9.0 || ^17 || ^18" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "license": "MIT" - }, - "node_modules/react-feather": { - "version": "2.0.10", - "license": "MIT", - "dependencies": { - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": ">=16.8.6" - } - }, - "node_modules/react-i18next": { - "version": "12.3.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.20.6", - "html-parse-stringify": "^3.0.1" - }, - "peerDependencies": { - "i18next": ">= 19.0.0", - "react": ">= 16.8.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "license": "MIT" - }, - "node_modules/react-onclickoutside": { - "version": "6.13.0", - "license": "MIT", - "funding": { - "type": "individual", - "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" - }, - "peerDependencies": { - "react": "^15.5.x || ^16.x || ^17.x || ^18.x", - "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" - } - }, - "node_modules/react-phone-input-2": { - "version": "2.15.1", - "license": "MIT", - "dependencies": { - "classnames": "^2.2.6", - "lodash.debounce": "^4.0.8", - "lodash.memoize": "^4.1.2", - "lodash.reduce": "^4.6.0", - "lodash.startswith": "^4.2.1", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0", - "react-dom": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0" - } - }, - "node_modules/react-popper": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" - } - }, - "node_modules/react-redux": { - "version": "8.1.2", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "^16.8 || ^17.0 || ^18.0", - "@types/react-dom": "^16.8 || ^17.0 || ^18.0", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0", - "react-native": ">=0.59", - "redux": "^4 || ^5.0.0-beta.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-router": { - "version": "6.15.0", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.8.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.15.0", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.8.0", - "react-router": "6.15.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-select": { - "version": "5.7.4", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0", - "@emotion/cache": "^11.4.0", - "@emotion/react": "^11.8.1", - "@floating-ui/dom": "^1.0.1", - "@types/react-transition-group": "^4.4.0", - "memoize-one": "^6.0.0", - "prop-types": "^15.6.0", - "react-transition-group": "^4.3.0", - "use-isomorphic-layout-effect": "^1.1.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-text-mask": { - "version": "5.5.0", - "license": "Unlicense", - "dependencies": { - "prop-types": "^15.5.6" - }, - "peerDependencies": { - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/real-require": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redux": { - "version": "4.2.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "license": "MIT", - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-relative": { - "version": "0.8.7", - "dev": true, - "license": "MIT" - }, - "node_modules/requizzle": { - "version": "0.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/resolve": { - "version": "1.22.4", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/restore-cursor": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ret": { - "version": "0.2.2", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/retry-as-promised": { - "version": "7.0.4", - "license": "MIT" - }, - "node_modules/reusify": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dev": true, - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.0", - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-polyfill-node": { - "version": "0.12.0", - "license": "MIT", - "dependencies": { - "@rollup/plugin-inject": "^5.0.1" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0" - } - }, - "node_modules/rope-sequence": { - "version": "1.3.4", - "license": "MIT" - }, - "node_modules/run-applescript": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/run-applescript/node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/run-applescript/node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/run-applescript/node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/run-applescript/node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-regex2": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ret": "~0.2.0" - } - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.3", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/scheduler": { - "version": "0.23.0", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/secure-json-parse": { - "version": "2.7.0", - "license": "BSD-3-Clause" - }, - "node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/sequelize": { - "version": "6.35.2", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.35.2.tgz", - "integrity": "sha512-EdzLaw2kK4/aOnWQ7ed/qh3B6/g+1DvmeXr66RwbcqSm/+QRS9X0LDI5INBibsy4eNJHWIRPo3+QK0zL+IPBHg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/sequelize" - } - ], - "dependencies": { - "@types/debug": "^4.1.8", - "@types/validator": "^13.7.17", - "debug": "^4.3.4", - "dottie": "^2.0.6", - "inflection": "^1.13.4", - "lodash": "^4.17.21", - "moment": "^2.29.4", - "moment-timezone": "^0.5.43", - "pg-connection-string": "^2.6.1", - "retry-as-promised": "^7.0.4", - "semver": "^7.5.4", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.9.0", - "wkx": "^0.5.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependenciesMeta": { - "ibm_db": { - "optional": true - }, - "mariadb": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-hstore": { - "optional": true - }, - "snowflake-sdk": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/sequelize-pool": { - "version": "7.1.0", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/sequelize/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.6.0", - "license": "MIT" - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "license": "ISC" - }, - "node_modules/slash": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/smob": { - "version": "1.4.0", - "license": "MIT" - }, - "node_modules/sonic-boom": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz", - "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/split": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sqlite": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz", - "integrity": "sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q==" - }, - "node_modules/stackback": { - "version": "0.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/standard-version": { - "version": "9.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "chalk": "^2.4.2", - "conventional-changelog": "3.1.25", - "conventional-changelog-config-spec": "2.1.0", - "conventional-changelog-conventionalcommits": "4.6.3", - "conventional-recommended-bump": "6.1.0", - "detect-indent": "^6.0.0", - "detect-newline": "^3.1.0", - "dotgitignore": "^2.1.0", - "figures": "^3.1.0", - "find-up": "^5.0.0", - "git-semver-tags": "^4.0.0", - "semver": "^7.1.1", - "stringify-package": "^1.0.1", - "yargs": "^16.0.0" - }, - "bin": { - "standard-version": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.6.0.tgz", - "integrity": "sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==", - "dev": true - }, - "node_modules/stdin-discarder": { - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "bl": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-package": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-literal": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/styled-components": { - "version": "5.3.9", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^1.1.0", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" - } - }, - "node_modules/styled-components/node_modules/@emotion/unitless": { - "version": "0.7.5", - "license": "MIT" - }, - "node_modules/styled-system": { - "version": "5.1.5", - "license": "MIT", - "dependencies": { - "@styled-system/background": "^5.1.2", - "@styled-system/border": "^5.1.5", - "@styled-system/color": "^5.1.2", - "@styled-system/core": "^5.1.2", - "@styled-system/flexbox": "^5.1.2", - "@styled-system/grid": "^5.1.2", - "@styled-system/layout": "^5.1.2", - "@styled-system/position": "^5.1.2", - "@styled-system/shadow": "^5.1.2", - "@styled-system/space": "^5.1.2", - "@styled-system/typography": "^5.1.2", - "@styled-system/variant": "^5.1.5", - "object-assign": "^4.1.1" - } - }, - "node_modules/stylis": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/synckit": { - "version": "0.8.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/utils": "^2.3.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/terser": { - "version": "5.19.4", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/text-mask-addons": { - "version": "3.8.0", - "license": "Unlicense" - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/thread-stream": { - "version": "2.4.0", - "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - } - }, - "node_modules/throttle-debounce": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.1", - "license": "MIT" - }, - "node_modules/tinybench": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", - "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", - "dev": true - }, - "node_modules/tinypool": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz", - "integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz", - "integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tippy.js": { - "version": "6.3.7", - "license": "MIT", - "dependencies": { - "@popperjs/core": "^2.9.0" - } - }, - "node_modules/titleize": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toad-cache": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.3.0.tgz", - "integrity": "sha512-3oDzcogWGHZdkwrHyvJVpPjA7oNzY6ENOV3PsWJY9XYPZ6INo94Yd47s5may1U+nleBPwDhrRiTPMIvKaa3MQg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toposort-class": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-api-utils": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsx": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.0.tgz", - "integrity": "sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==", - "dev": true, - "dependencies": { - "esbuild": "~0.19.10", - "get-tsconfig": "^4.7.2" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint-language-service": { - "version": "5.0.5", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@typescript-eslint/parser": ">= 5.0.0", - "eslint": ">= 8.0.0", - "typescript": ">= 4.0.0" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/ufo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.0.tgz", - "integrity": "sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/underscore": { - "version": "1.13.6", - "dev": true, - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-memo-one": { - "version": "1.1.3", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/uuid": { - "version": "9.0.0", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validator": { - "version": "13.11.0", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.7.tgz", - "integrity": "sha512-B4T4rJCDPihrQo2B+h1MbeGL/k/GMAHzhQ8S0LjQ142s6/+l3hHTT095ORvsshj4QCkoWu3Xtmob5mazvakaOw==", - "dev": true, - "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.1.0.tgz", - "integrity": "sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==", - "dev": true, - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vite/node_modules/rollup": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.8.0.tgz", - "integrity": "sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.8.0", - "@rollup/rollup-android-arm64": "4.8.0", - "@rollup/rollup-darwin-arm64": "4.8.0", - "@rollup/rollup-darwin-x64": "4.8.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.8.0", - "@rollup/rollup-linux-arm64-gnu": "4.8.0", - "@rollup/rollup-linux-arm64-musl": "4.8.0", - "@rollup/rollup-linux-riscv64-gnu": "4.8.0", - "@rollup/rollup-linux-x64-gnu": "4.8.0", - "@rollup/rollup-linux-x64-musl": "4.8.0", - "@rollup/rollup-win32-arm64-msvc": "4.8.0", - "@rollup/rollup-win32-ia32-msvc": "4.8.0", - "@rollup/rollup-win32-x64-msvc": "4.8.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/vitest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.1.0.tgz", - "integrity": "sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==", - "dev": true, - "dependencies": { - "@vitest/expect": "1.1.0", - "@vitest/runner": "1.1.0", - "@vitest/snapshot": "1.1.0", - "@vitest/spy": "1.1.0", - "@vitest/utils": "1.1.0", - "acorn-walk": "^8.3.0", - "cac": "^6.7.14", - "chai": "^4.3.10", - "debug": "^4.3.4", - "execa": "^8.0.1", - "local-pkg": "^0.5.0", - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^1.3.0", - "tinybench": "^2.5.1", - "tinypool": "^0.8.1", - "vite": "^5.0.0", - "vite-node": "1.1.0", - "why-is-node-running": "^2.2.2" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "^1.0.0", - "@vitest/ui": "^1.0.0", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/vitest/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/vitest/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vitest/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/vitest/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/void-elements": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-eslint-parser": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz", - "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "license": "MIT" - }, - "node_modules/warning": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wkx": { - "version": "0.5.0", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/xmlcreate": { - "version": "2.0.4", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/xss": { - "version": "1.0.14", - "license": "MIT", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/xtend": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json index c96d8d1f1..da3834161 100644 --- a/package.json +++ b/package.json @@ -1,91 +1,48 @@ { - "name": "mcos", - "version": "1.0.0", - "description": "a server", - "author": "Drazi Crendraven ", - "license": "AGPL-3.0", - "private": true, - "repository": { - "type": "git", - "url": "git@github.com:drazisil/mcos.git" - }, - "scripts": { - "prepare": "husky install", - "pretest": "eslint --fix . && prettier --write .", - "test:only": "node --openssl-legacy-provider node_modules/vitest/vitest.mjs run --coverage packages", - "test": "node --openssl-legacy-provider node_modules/vitest/vitest.mjs run --coverage packages", - "prod": "make prod_node", - "prod:stop": "docker-compose stop", - "release": "standard-version --sign", - "start:dev": "tsx --openssl-legacy-provider server.ts", - "start:docker": "npm run start:dev 2>&1 | tee -a log/mcos/trace.log" - }, - "files": [ - "README.md", - "CHANGELOG.md", - "AUTHORS" - ], - "type": "module", - "dependencies": { - "@adminjs/sequelize": "^4.1.1", - "@fastify/sensible": "^5.5.0", - "@sentry/node": "7.88", - "@sentry/profiling-node": "^1.3.2", - "adminjs": "^7.5.2", - "fastify": "^4.25.1", - "moment": "^2.29.4", - "pino": "^8.17.1", - "sequelize": "^6.35.2", - "sqlite": "^5.1.1", - "ts-node": "10.9.2" - }, - "devDependencies": { - "@sentry/cli": "^2.23.1", - "@tsconfig/node-lts": "^20.1.0", - "@tsconfig/node20": "^20.1.2", - "@types/chai": "4.3.11", - "@types/node": "^20.10.5", - "@types/sinon": "17.0.2", - "@types/sinon-chai": "3.2.12", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", - "@vitest/coverage-v8": "^1.1.0", - "eslint": "^8.56.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "5.1.1", - "husky": "^8.0.3", - "jsdoc": "^4.0.2", - "lint-staged": "^15.2.0", - "prettier": "3.1.1", - "prettier-eslint": "16.2.0", - "rimraf": "^5.0.5", - "standard-version": "^9.5.0", - "tsx": "4.7.0", - "typescript": "^5.3.3", - "typescript-eslint-language-service": "^5.0.5", - "vitest": "^1.1.0" - }, - "c8": { - "all": true, - "reporter": [ - "text", - "cobertura", - "html", - "lcov" - ], - "exclude": [ - "coverage", - "**/*.test.m{j,t}s", - "docs", - "docs2" - ] - }, - "lint-staged": { - "**/*.js": "eslint" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - } + "name": "rusty-motors", + "version": "0.5.0", + "author": "Molly Crendraven ", + "repository": { + "type": "git", + "url": "git@github.com:drazisil/mcos.git" + }, + "dependencies": { + "@databases/pg": "^5.5.0", + "@databases/pg-schema-cli": "^4.4.0", + "@databases/pg-typed": "^4.4.1", + "rusty-motors-shared": "^1.0.0", + "ts-node": "^10.9.2", + "typescript": "^5.4.5" + }, + "description": "This is a game server, being written from scratch, for a very old and long dead game. The owners of said game have shown no interest in bringing it back, but even so all names of their IP have been avoided to prevent issues.", + "license": "AGPL-3.0", + "private": true, + "scripts": { + "clean": "rm --verbose -rf **/node_modules node_modules", + "start": "tsx --openssl-legacy-provider --env-file=.env ./apps/main/server.ts", + "test": "npm run test:all", + "test:all": "npm run test --workspaces --if-present", + "types:db": "npm --workspace rusty-motors-database run types:db", + "migrate": "pg-migrations apply --directory migrations " + }, + "type": "module", + "workspaces": [ + "apps/main", + "packages/cli", + "packages/connection", + "packages/database", + "packages/gateway", + "packages/mcots", + "packages/nps", + "packages/patch", + "packages/shard", + "packages/shared", + "packages/shared-packets", + "schema" + ], + "devDependencies": { + "@databases/pg-migrations": "^5.0.3", + "@databases/pg-test": "^3.1.2", + "dotenv": "^16.4.5" + } } diff --git a/packages/cli/ConsoleThread.ts b/packages/cli/ConsoleThread.ts index 7d50f4943..43d520ec1 100644 --- a/packages/cli/ConsoleThread.ts +++ b/packages/cli/ConsoleThread.ts @@ -1,41 +1,39 @@ import { emitKeypressEvents } from "node:readline"; -import { SubThread } from "../shared/SubThread.js"; -// eslint-disable-next-line no-unused-vars -import { Gateway } from "../gateway/src/GatewayServer.js"; -import { ServerError } from "../shared/errors/ServerError.js"; +import { SubThread, type KeypressEvent, type TServerLogger } from "rusty-motors-shared"; +import type { TConsoleThread, TGateway } from "rusty-motors-shared"; /** * @module ConsoleThread */ + /** * Console thread */ -export class ConsoleThread extends SubThread { - parentThread: Gateway; +export class ConsoleThread extends SubThread implements TConsoleThread{ + parentThread: TGateway; /** * @param {object} options * @param {Gateway} options.parentThread The parent thread - * @param {import("pino").Logger} options.log The logger + * @param {ServerLogger} options.log The logger */ constructor({ parentThread, log, }: { - parentThread: Gateway; - log: import("pino").Logger; + parentThread: TGateway; + log: TServerLogger; }) { super("ReadInput", log, 100); if (parentThread === undefined) { - throw new ServerError( + throw new Error( "parentThread is undefined when creating ReadInput", ); } this.parentThread = parentThread; } - /** @param {import("../interfaces/index.js").KeypressEvent} key */ - handleKeypressEvent(key: import("../interfaces/index.js").KeypressEvent) { + handleKeypressEvent(key: KeypressEvent) { const keyString = key.sequence; if (keyString === "x") { @@ -64,7 +62,7 @@ export class ConsoleThread extends SubThread { process.stdin.resume(); process.stdin.on("keypress", (str, key) => { if (key !== undefined) { - this.handleKeypressEvent(key); + this.handleKeypressEvent(key as KeypressEvent); } }); } diff --git a/packages/cli/MessageQueue.ts b/packages/cli/MessageQueue.ts new file mode 100644 index 000000000..a9c7c13f2 --- /dev/null +++ b/packages/cli/MessageQueue.ts @@ -0,0 +1,68 @@ + +import { SubThread, type TGateway, type TServerLogger } from "rusty-motors-shared"; +import type { ServerMessage } from "rusty-motors-shared-packets"; + +export class MessageQueue extends SubThread { + parentThread: TGateway; + + private _messageQueue: ServerMessage[] = []; + + static _instance: MessageQueue; + + /** + * @param {object} options + * @param {Gateway} options.parentThread The parent thread + * @param {ServerLogger} options.log The logger + */ + constructor({ + parentThread, + log, + }: { + parentThread: TGateway; + log: TServerLogger; + }) { + super("MessageQueue", log, 100); + + this.log.setName(this.name); + if (parentThread === undefined) { + throw new Error( + `parentThread is undefined when creating ${this.name}` + ); + } + this.parentThread = parentThread; + + if (typeof MessageQueue._instance === "undefined") { + MessageQueue._instance = this; + } + + this.log.resetName(); + } + + override init() { + super.init(); + this.log.setName(`${this.name}:init`); + this.log.info(`${this.name} initialized`); + this.log.resetName(); + } + + addMessage(message: ServerMessage) { + this._messageQueue.push(message); + } + + private popMessage(): ServerMessage | undefined { + return this._messageQueue.shift(); + } + + override run() { + this.log.setName(`${this.name}:run`); + // Intentionally left blank + this.log.resetName(); + } + + stop() { + super.shutdown(); + this.log.setName(`${this.name}:stop`); + this.log.info(`${this.name} stopped`); + this.log.resetName(); + } +} diff --git a/packages/cli/ScheduledThread.ts b/packages/cli/ScheduledThread.ts new file mode 100644 index 000000000..3a2635844 --- /dev/null +++ b/packages/cli/ScheduledThread.ts @@ -0,0 +1,55 @@ +import { SubThread, type TServerLogger } from "rusty-motors-shared"; +import type { TGateway, TScheduledThread } from "rusty-motors-shared"; + +/** + * @module ConsoleThread + */ + + + +/** + * Console thread + */ +export class ScheduledThread extends SubThread implements TScheduledThread{ + parentThread: TGateway; + /** + * @param {object} options + * @param {Gateway} options.parentThread The parent thread + * @param {ServerLogger} options.log The logger + */ + constructor({ + parentThread, + log, + }: { + parentThread: TGateway; + log: TServerLogger; + }) { + super("ScheduledThread", log, 100); + this.log.setName("ScheduledThread"); + if (!parentThread) { + throw new Error("parentThread is required when creating ScheduledThread"); + } + this.parentThread = parentThread; + this.log.resetName(); + } + + override init() { + super.init(); + this.log.setName("ScheduledThread:init"); + this.log.info("Scheduled thread initialized"); + this.log.resetName(); + } + + override run() { + this.log.setName("ScheduledThread:run"); + // Intentionally left blank + this.log.resetName(); + } + + stop() { + super.shutdown(); + this.log.setName("ScheduledThread:stop"); + this.log.info("Scheduled thread stopped"); + this.log.resetName(); + } +} diff --git a/packages/cli/index.ts b/packages/cli/index.ts new file mode 100644 index 000000000..650630416 --- /dev/null +++ b/packages/cli/index.ts @@ -0,0 +1,2 @@ +export { ScheduledThread } from "./ScheduledThread.js"; +export { ConsoleThread } from "./ConsoleThread.js"; diff --git a/packages/cli/package.json b/packages/cli/package.json new file mode 100644 index 000000000..e38ca8108 --- /dev/null +++ b/packages/cli/package.json @@ -0,0 +1,28 @@ +{ + "name": "rusty-motors-cli", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "devDependencies": { + "@vitest/coverage-v8": "1.6.0" + }, + "dependencies": { + "rusty-motors-shared": "^1.0.0", + "rusty-motors-shared-packets": "^1.0.0" + }, + "description": "" +} diff --git a/packages/cli/test/index.test.ts b/packages/cli/test/index.test.ts new file mode 100644 index 000000000..f01d2f75d --- /dev/null +++ b/packages/cli/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from "vitest"; + +describe("example", () => { + it("should pass", () => { + expect(true).toBe(true); + }); +}); diff --git a/packages/cli/vite.config.ts b/packages/cli/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/cli/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/connection/index.ts b/packages/connection/index.ts new file mode 100644 index 000000000..0e82a9d53 --- /dev/null +++ b/packages/connection/index.ts @@ -0,0 +1,7 @@ +export { + Connection, + createCommandEncryptionPair, + createDataEncryptionPair, + handleServerSocketError, + verifyLegacyCipherSupport, +} from './src/Connection.js'; diff --git a/packages/connection/package.json b/packages/connection/package.json new file mode 100644 index 000000000..6518bd1d3 --- /dev/null +++ b/packages/connection/package.json @@ -0,0 +1,28 @@ +{ + "name": "rusty-motors-connection", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "@sentry/node": "^8.0.0", + "vitest": "^1.6.0" + }, + "directories": { + "test": "test" + }, + "description": "" +} diff --git a/packages/connection/src/Connection.ts b/packages/connection/src/Connection.ts new file mode 100644 index 000000000..6185451d2 --- /dev/null +++ b/packages/connection/src/Connection.ts @@ -0,0 +1,369 @@ +// mcos is a game server, written from scratch, for an old game +// Copyright (C) <2017> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +import type { Socket } from "node:net"; +import { ServerMessage } from "rusty-motors-shared-packets"; +import { getServerMessageProcessor } from "rusty-motors-mcots"; +import type { TServerLogger } from "rusty-motors-shared"; +import * as Sentry from "@sentry/node"; +import { db } from "rusty-motors-database"; +import { createCipheriv, createDecipheriv, getCiphers } from "node:crypto"; +import { McosEncryptionPair } from "rusty-motors-shared"; +import { ClientConnectionManager } from "rusty-motors-mcots"; +import { getServerLogger } from "rusty-motors-shared"; +import { ErrorNoKey } from "rusty-motors-mcots"; + +const log = getServerLogger(); + +/** + * This function creates a new encryption pair for use with the game server + * + * @param {string} key The key to use for encryption + * @returns {McosEncryptionPair} The encryption pair + */ +export function createCommandEncryptionPair(key: string): McosEncryptionPair { + if (key.length < 16) { + log.error(`Key too short: length ${key.length}, value ${key}`); + throw Error(`Key too short: length ${key.length}, value ${key}`); + } + + const sKey = key.slice(0, 16); + + // Deepcode ignore HardcodedSecret: This uses an empty IV + const desIV = Buffer.alloc(8); + + const gsCipher = createCipheriv("des-cbc", Buffer.from(sKey, "hex"), desIV); + gsCipher.setAutoPadding(false); + + const gsDecipher = createDecipheriv( + "des-cbc", + Buffer.from(sKey, "hex"), + desIV, + ); + gsDecipher.setAutoPadding(false); + + return new McosEncryptionPair(gsCipher, gsDecipher); +} + +/** + * This function creates a new encryption pair for use with the database server + * + * @param {string} key The key to use for encryption + * @returns {McosEncryptionPair} The encryption pair + * @throws Error if the key is too short + */ +export function createDataEncryptionPair(key: string): McosEncryptionPair { + if (key.length === 0) { + log.error(`Key is empty: ${key}`); + throw new ErrorNoKey(`Key is empty: ${key}`); + } + + if (key.length < 16) { + log.error(`Key too short: length ${key.length}, value ${key}`); + throw Error(`Key too short: length ${key.length}, value ${key}`); + } + + const stringKey = Buffer.from(key, "hex"); + + // File deepcode ignore InsecureCipher: RC4 is the encryption algorithum used here, file deepcode ignore HardcodedSecret: A blank IV is used here + const tsCipher = createCipheriv("rc4", stringKey.subarray(0, 16), ""); + const tsDecipher = createDecipheriv("rc4", stringKey.subarray(0, 16), ""); + + return new McosEncryptionPair(tsCipher, tsDecipher); +} + +/** + * This function checks if the server supports the legacy ciphers + * + * @returns void + * @throws Error if the server does not support the legacy ciphers + */ +export function verifyLegacyCipherSupport() { + const cipherList = getCiphers(); + if (!cipherList.includes("des-cbc")) { + throw Error("DES-CBC cipher not available"); + } + if (!cipherList.includes("rc4")) { + throw Error("RC4 cipher not available"); + } +} + +export class Connection { + private _socket: Socket; + private _connectionId: string; + private _logger: TServerLogger; + private _personaId: number | null = null; + private _cipherPair: McosEncryptionPair | null = null; + private _channelSecure: boolean = false; + + getConnectionId() { + return this._connectionId; + } + + constructor(socket: Socket, connectionId: string, logger: TServerLogger) { + this._socket = socket; + this._connectionId = connectionId; + this._logger = logger; + + this._socket.on("data", (data) => this.handleServerSocketData(data)); + this._socket.on("error", (error) => + handleServerSocketError(this, error), + ); + this._socket.on("close", () => this.close()); + + this._logger.debug(`Connection ${this._connectionId} created`); + } + + get id(): string { + return this._connectionId; + } + + isChannelSecure(): boolean { + return this._channelSecure; + } + + setChannelSecure(channelSecure: boolean): void { + if (channelSecure && this._cipherPair === null) { + this._logger.error( + `Tried to set channel secure without a cipher pair for connection ${this._connectionId}`, + ); + throw new Error( + `Tried to set channel secure without a cipher pair for connection ${this._connectionId}`, + ); + } + + this._channelSecure = channelSecure; + log.debug( + `Channel secure set to ${this._channelSecure} for connection ${this._connectionId}`, + ); + } + + private async _getCiperKeyFromDatabase() { + this._logger.setName("Connection:_getCiperKeyFromDatabase"); + if (this._cipherPair !== null) { + return; + } + + if (typeof this._personaId !== "number") { + this._logger.error( + `Tried to get cipher key from database without a persona ID`, + ); + throw new Error( + `Tried to get cipher key from database without a persona ID`, + ); + } + + // Get the cipher key from the database + const session_key = await getDatabase() + .select() + .from(keySchema) + .where(eq(keySchema.userId, this._personaId)) + .then((rows) => { + if (rows.length < 1 || typeof rows[0] === "undefined") { + this._logger.error( + `Error getting cipher key from database for persona ID ${this._personaId}`, + ); + throw new Error( + `Error getting cipher key from database for persona ID ${this._personaId}`, + ); + } + + return rows[0].sessionKey; + }); + + // Set the cipher key + this._cipherPair = createDataEncryptionPair(session_key); + + this._logger.debug( + `Got cipher key from database for persona ID ${this._personaId}`, + ); + + this._logger.resetName(); + } + + setCipherPair(cipherPair: McosEncryptionPair) { + this._cipherPair = cipherPair; + } + + handleServerSocketData(data: Buffer): void { + this._logger.setName("Connection:handleSocketData"); + try { + const message = new ServerMessage(0).deserialize(data); + log.debug( + `Received server message with ID ${message.getId()} for connection ${this._connectionId}`, + ); + this.processServerMessage(message); + } catch (error) { + this._logger.error( + `Error handling socket data for connectionId ${this._connectionId}: ${(error as Error).message}`, + ); + Sentry.captureException(error); + } + this._logger.resetName(); + } + + processServerMessage(message: ServerMessage) { + this._logger.setName("Connection:processMessage"); + if (message.isEncrypted() && this._cipherPair === null) { + this._getCiperKeyFromDatabase().catch((error) => { + this._logger.error( + `Error getting cipher key from database for persona ID ${this._personaId}: ${error as string}`, + ); + Sentry.captureException(error); + }); + } + + this._logger.debug(`Raw message header: ${message.header.toString()}`); + this._logger.debug(`Raw message: ${message.toHexString()}`); + + message = this.decryptIfNecessary(message); + + + // Lookup the message processor + const processor = getServerMessageProcessor(message.getId()); + + if (processor === undefined) { + this._logger.error( + `No server message processor found for message ID ${message.getId()}`, + ); + return; + } + + // Process the message + this._logger.debug( + `Processing server message with message ID ${message.getId()}, using processor ${processor.name}`, + ); + processor( + this._connectionId, + message, + this.sendServerMessage.bind(this), + ).catch((error) => { + this._logger.error( + `Error processing message for connectionId ${this._connectionId}: ${error as string}`, + ); + Sentry.captureException(error); + }); + + this._logger.resetName(); + } + + sendServerMessage(messages: ServerMessage[]) { + this._logger.setName("Connection:sendMessage"); + this._logger.debug( + `Sending ${messages.length} messages for connection ${this._connectionId}`, + ); + try { + messages.forEach((message) => { + this._logger.debug( + `Sending server message header: ${message.header.toString()}`, + ); + this._logger.debug(`Server Message: ${message.toHexString()}`); + + message = this.encryptIfNecessary(message); + + if (message.isEncrypted()) { + this._logger.debug( + `Encrypted Message: ${message.toHexString()}`, + ); + } + + this._socket.write(message.serialize()); + if (message.getId() === 0x101) { + this.setChannelSecure(true); + } + }); + } catch (error) { + this._logger.error( + `Error sending server message for connectionId ${this._connectionId}: ${error as string}`, + ); + Sentry.captureException(error); + } + + this._logger.debug( + `Sent ${messages.length} server messages for connection ${this._connectionId}`, + ); + + this._logger.resetName(); + } + encryptIfNecessary(message: ServerMessage): ServerMessage { + this._logger.setName("Connection:encryptIfNecessary"); + if (this._channelSecure && !message.isEncrypted()) { + if (this._cipherPair === null) { + this._logger.error( + `Message should be encrypted but no cipher pair is available for connection ${this._connectionId}`, + ); + throw new Error( + `Message should be encrypted but no cipher pair is available for connection ${this._connectionId}`, + ); + } + message = message.encrypt(this._cipherPair); + message.header.setPayloadEncryption(true); + this._logger.debug( + `Encrypted message: message ID ${message.getId()}, prior messsage ID ${message.getPreDecryptedMessageId()}`, + ); + } + this._logger.resetName(); + return message; + } + + close() { + this._socket.end(() => { + this._logger.debug(`Connection ${this._connectionId} closed`); + this._socket.destroy(); + ClientConnectionManager.removeConnection(this._connectionId); + }); + } + + + decryptIfNecessary(message: ServerMessage): ServerMessage { + this._logger.setName("Connection:decryptIfNecessary"); + if (message.isEncrypted()) { + if (this._cipherPair === null) { + this._logger.error( + `Message is encrypted but no cipher pair is available for connection ${this._connectionId}`, + ); + throw new Error( + `Message is encrypted but no cipher pair is available for connection ${this._connectionId}`, + ); + } + message = message.decrypt(this._cipherPair); + this._logger.debug( + `Decrypted message: message ID ${message.getId()}, prior messsage ID ${message.getPreDecryptedMessageId()}`, + ); + this._logger.debug(`Decrypted message: ${message.toHexString()}`); + } + this._logger.resetName(); + return message; + } + + toString(): string { + return `Connection ${this._connectionId}, persona ID ${this._personaId}, channel secure ${this._channelSecure}`; + } +} + +export function handleServerSocketError(connection: Connection, error: Error) { + log.setName("Connection:handleSocketError"); + if (error.message === "ECONNRESET") { + log.debug(`Connection ${connection.getConnectionId()} reset`); + return; + } + log.error( + `Socket error: ${error.message} on connection ${connection.getConnectionId()}`, + ); + Sentry.captureException(error); + connection.close(); + log.resetName(); +} diff --git a/packages/connection/test/Connection.test.ts b/packages/connection/test/Connection.test.ts new file mode 100644 index 000000000..632f132e3 --- /dev/null +++ b/packages/connection/test/Connection.test.ts @@ -0,0 +1,72 @@ +import { describe, expect, it, vi } from "vitest"; +import { + createCommandEncryptionPair, + verifyLegacyCipherSupport, +} from "rusty-motors-connection"; +import { McosEncryptionPair } from "rusty-motors-shared"; + +vi.mock("@sentry/node", () => ({ + captureException: vi.fn(), +})); + +describe("createCommandEncryptionPair", () => { + it("should create an encryption pair with a valid key", () => { + const validKey = "1234567890abcdef1234567890abcdef"; + const encryptionPair = createCommandEncryptionPair(validKey); + expect(encryptionPair).toBeInstanceOf(McosEncryptionPair); + expect(encryptionPair._cipher).toBeDefined(); + expect(encryptionPair._decipher).toBeDefined(); + }); + it("should throw an error if the key is too short", () => { + const shortKey = "short"; + expect(() => createCommandEncryptionPair(shortKey)).toThrow( + "Key too short: length 5, value short", + ); + }); +}); + +vi.mock("node:crypto", async (importOriginal) => { + return { + ...(await importOriginal()), + getCiphers: vi + .fn() + .mockReturnValueOnce(["rc4"]) + .mockReturnValueOnce(["des-cbc"]) + .mockReturnValueOnce(["rc4", "des-cbc"]), + }; +}); + +vi.mock("node:net", async (importOriginal) => { + return { + ...(await importOriginal()), + Socket: class { + end = vi.fn(); + destroy = vi.fn(); + on = vi.fn((event, callback: () => void) => { + if (event === "error") { + callback(); + } + }); + }, + }; +}); + +describe("verifyLegacyCipherSupport", () => { + it("should throw an error if DES-CBC cipher is not available", () => { + expect(() => verifyLegacyCipherSupport()).toThrowError( + "DES-CBC cipher not available", + ); + }); + + it("should throw an error if RC4 cipher is not available", () => { + expect(verifyLegacyCipherSupport).toThrowError( + "RC4 cipher not available", + ); + }); + + it("should not throw an error if both DES-CBC and RC4 ciphers are available", () => { + expect(verifyLegacyCipherSupport).not.toThrow(); + + vi.resetAllMocks(); + }); +}); diff --git a/packages/connection/vite.config.ts b/packages/connection/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/connection/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/core/src/serializationHelpers.test.ts b/packages/core/src/serializationHelpers.test.ts deleted file mode 100644 index ea8b97b6a..000000000 --- a/packages/core/src/serializationHelpers.test.ts +++ /dev/null @@ -1,337 +0,0 @@ -import { describe, it, expect } from "vitest"; -import { - serializeBool, - serializeByte, - serializeWord, - serializeDWord, - serializeFloat, - serializeString, - deserializeBool, - deserializeByte, - deserializeWord, - deserializeDWord, - deserializeFloat, - deserializeString, - sizeOfBool, - sizeOfByte, - sizeOfWord, - sizeOfDWord, - sizeOfFloat, - sizeOfString, - clamp16, - clamp32, -} from "./serializationHelpers.js"; - -describe("serializationHelpers", () => { - describe("serializeBool()", () => { - it("should serialize a boolean value", () => { - // Arrange - const input = true; - const expected = Buffer.from([1]); - - // Act - const actual = serializeBool(input); - - // Assert - expect(actual).toEqual(expected); - }); - - it("should serialize a boolean value", () => { - // Arrange - const input = false; - const expected = Buffer.from([0]); - - // Act - const actual = serializeBool(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("deserializeBool()", () => { - it("should deserialize a boolean value", () => { - // Arrange - const input = Buffer.from([1]); - const expected = true; - - // Act - const actual = deserializeBool(input); - - // Assert - expect(actual).toEqual(expected); - }); - - it("should deserialize a boolean value", () => { - // Arrange - const input = Buffer.from([0]); - const expected = false; - - // Act - const actual = deserializeBool(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("sizeOfBool()", () => { - it("should return the size of a boolean value", () => { - // Arrange - const expected = 1; - - // Act - const actual = sizeOfBool(); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("serializeByte()", () => { - it("should serialize a byte value", () => { - // Arrange - const input = 1; - const expected = Buffer.from([1]); - - // Act - const actual = serializeByte(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("deserializeByte()", () => { - it("should deserialize a byte value", () => { - // Arrange - const input = Buffer.from([1]); - const expected = 1; - - // Act - const actual = deserializeByte(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("sizeOfByte()", () => { - it("should return the size of a byte value", () => { - // Arrange - const expected = 1; - - // Act - const actual = sizeOfByte(); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("serializeWord()", () => { - it("should serialize a word value", () => { - // Arrange - const input = 1; - const expected = Buffer.from([0, 1]); - - // Act - const actual = serializeWord(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("deserializeWord()", () => { - it("should deserialize a word value", () => { - // Arrange - const input = Buffer.from([0, 1]); - const expected = 1; - - // Act - const actual = deserializeWord(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("sizeOfWord()", () => { - it("should return the size of a word value", () => { - // Arrange - const expected = 2; - - // Act - const actual = sizeOfWord(); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("serializeDWord()", () => { - it("should serialize a dword value", () => { - // Arrange - const input = 1; - const expected = Buffer.from([0, 0, 0, 1]); - - // Act - const actual = serializeDWord(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("deserializeDWord()", () => { - it("should deserialize a dword value", () => { - // Arrange - const input = Buffer.from([0, 0, 0, 1]); - const expected = 1; - - // Act - const actual = deserializeDWord(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("sizeOfDWord()", () => { - it("should return the size of a dword value", () => { - // Arrange - const expected = 4; - - // Act - const actual = sizeOfDWord(); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("serializeFloat()", () => { - it("should serialize a float value", () => { - // Arrange - const input = 1; - const expected = Buffer.from([63, 128, 0, 0]); - - // Act - const actual = serializeFloat(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("deserializeFloat()", () => { - it("should deserialize a float value", () => { - // Arrange - const input = Buffer.from([63, 128, 0, 0]); - const expected = 1; - - // Act - const actual = deserializeFloat(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("sizeOfFloat()", () => { - it("should return the size of a float value", () => { - // Arrange - const expected = 4; - - // Act - const actual = sizeOfFloat(); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("serializeString()", () => { - it("should serialize a string value", () => { - // Arrange - const input = "test"; - const expected = Buffer.from([0, 4, 116, 101, 115, 116]); - - // Act - const actual = serializeString(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); - - describe("deserializeString()", () => { - it("should deserialize a string value", () => { - // Arrange - const input = Buffer.from([0, 4, 116, 101, 115, 116]); - const expected = "test"; - - // Act - const actual = deserializeString(input); - - // Assert - expect(actual).toEqual(expected); - }); - - it("should throw an error if the size is bigger than the buffer length - 2", () => { - // Arrange - const input = Buffer.from([0, 5, 116, 101, 115, 116]); - - // Act - const actual = () => deserializeString(input); - - // Assert - expect(actual).toThrowError( - "Size is bigger than the buffer length - 2", - ); - }); - }); - - describe("sizeOfString()", () => { - it("should return the size of a string value", () => { - // Arrange - const input = "test"; - const expected = 6; - - // Act - const actual = sizeOfString(input); - - // Assert - expect(actual).toEqual(expected); - }); - }); -}); - -describe("clamp16()", () => { - it("should clamp a value between 0 and 65535", () => { - // Arrange - const input = 65536; - const expected = 65535; - - // Act - const actual = clamp16(input); - - // Assert - expect(actual).toEqual(expected); - }); -}); - -describe("clamp32()", () => { - it("should clamp a value between 0 and 4294967295", () => { - // Arrange - const input = 4294967296; - const expected = 4294967295; - - // Act - const actual = clamp32(input); - - // Assert - expect(actual).toEqual(expected); - }); -}); diff --git a/packages/core/src/serializationHelpers.ts b/packages/core/src/serializationHelpers.ts deleted file mode 100644 index 7d06b8247..000000000 --- a/packages/core/src/serializationHelpers.ts +++ /dev/null @@ -1,187 +0,0 @@ -import { ServerError } from "../../shared/errors/ServerError.js"; - -/** - * Clamp a value between 0 and 255 - * @param {number} value - * @returns {number} - */ -export function clamp16(value: number): number { - return Math.max(0, Math.min(65535, value)); -} - -/** - * Clamp a value between 0 and 65535 - * @param {number} value - * @returns {number} - */ -export function clamp32(value: number): number { - return Math.max(0, Math.min(4294967295, value)); -} - -/** - * Serializes a boolean to a buffer. - * @param {boolean} bool - * @returns {Buffer} - */ -export function serializeBool(bool: boolean): Buffer { - const buf = Buffer.alloc(1); - - buf.writeUInt8(bool ? 1 : 0); - - return buf; -} - -/** - * Serializes a byte to a buffer. - * @param {number} byte - * @returns {Buffer} - */ -export function serializeByte(byte: number): Buffer { - const buf = Buffer.alloc(1); - - buf.writeUInt8(byte); - - return buf; -} - -/** - * Serializes a word to a buffer. - * @param {number} word - * @returns {Buffer} - */ -export function serializeWord(word: number): Buffer { - const buf = Buffer.alloc(2); - - buf.writeUInt16BE(word); - - return buf; -} - -/** - * Serializes a dword to a buffer. - * @param {number} dword - * @returns {Buffer} - */ -export function serializeDWord(dword: number): Buffer { - const buf = Buffer.alloc(4); - - buf.writeUInt32BE(dword); - - return buf; -} - -/** - * Serializes a float to a buffer. - * @param {number} f - * @returns {Buffer} - */ -export function serializeFloat(f: number): Buffer { - const buf = Buffer.alloc(4); - - buf.writeFloatBE(f); - - return buf; -} - -/** - * Serializes a string to a buffer. The buffer will be prefixed with the length of the string. - * @param {string} str - * @returns {Buffer} - */ -export function serializeString(str: string): Buffer { - const buf = Buffer.alloc(str.length + 2); - - buf.writeUInt16BE(str.length); - buf.write(str, 2); - - return buf; -} - -/** - * Deserializes a boolean from a buffer. - * @param {Buffer} buff - * @returns {boolean} - */ -export function deserializeBool(buff: Buffer): boolean { - return buff.readUInt8() === 1; -} - -/** - * Deserializes a byte from a buffer. - * @param {Buffer} buff - * @returns {number} - */ -export function deserializeByte(buff: Buffer): number { - return buff.readUInt8(); -} - -/** - * Deserializes a word from a buffer. - * @param {Buffer} buff - * @returns {number} - */ -export function deserializeWord(buff: Buffer): number { - return buff.readUInt16BE(); -} - -/** - * Deserializes a dword from a buffer. - * @param {Buffer} buff - * @returns {number} - */ -export function deserializeDWord(buff: Buffer): number { - return buff.readUInt32BE(); -} - -/** - * Deserializes a float from a buffer. - * @param {Buffer} buff - * @returns {number} - */ -export function deserializeFloat(buff: Buffer): number { - return buff.readFloatBE(); -} - -/** - * Deserializes a string from a buffer. The buffer is expected to be prefixed with the length of the string. - * @param {Buffer} buf - * @returns {string} - */ -export function deserializeString(buf: Buffer): string { - const size = buf.readUInt16BE(); - if (size > buf.length - 2) { - throw new ServerError("Size is bigger than the buffer length - 2"); - } - const str = buf.subarray(2, size + 2).toString("utf8"); - - return str; -} - -export function sizeOfBool() { - return 1; -} - -export function sizeOfByte() { - return 1; -} - -export function sizeOfWord() { - return 2; -} - -export function sizeOfDWord() { - return 4; -} - -export function sizeOfFloat() { - return 4; -} - -/** - * Returns the size of a string, including the length prefix. - * @param {string} string - * @returns {number} - */ -export function sizeOfString(string: string): number { - return string.length + 2; -} diff --git a/packages/database/index.ts b/packages/database/index.ts new file mode 100644 index 000000000..96ed8db19 --- /dev/null +++ b/packages/database/index.ts @@ -0,0 +1,13 @@ +export { + fetchSessionKeyByConnectionId, + fetchSessionKeyByCustomerId, + updateSessionKey, + updateUser, +} from './src/DatabaseManager.js'; +export { getWarehouseInventory } from './src/functions/getWarehouseInventory.js'; +export type { WarehouseInventory } from './src/functions/getWarehouseInventory.js'; +export * from './src/services/database.js'; +import * as DatabaseSchema from './src/__generated__/schema.json'; +export { DatabaseSchema as databaseSchema }; +export { DatabaseSchema }; +export { getTunables as getTuneables } from './src/services/tunables.js'; diff --git a/packages/database/package.json b/packages/database/package.json new file mode 100644 index 000000000..69ffaf927 --- /dev/null +++ b/packages/database/package.json @@ -0,0 +1,35 @@ +{ + "name": "rusty-motors-database", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage", + "types:db": "npx @databases/pg-schema-cli --directory src/__generated__" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "@databases/pg": "^5.5.0", + "@databases/pg-schema-cli": "^4.4.0", + "@databases/pg-typed": "^4.4.1", + "@sentry/node": "^8.0.0", + "@types/pg": "^8.11.6", + "pg": "^8.11.5", + "pg-hstore": "^2.3.4", + "vitest": "^1.6.0" + }, + "directories": { + "test": "test" + }, + "description": "" +} diff --git a/packages/database/src/DatabaseManager.ts b/packages/database/src/DatabaseManager.ts index e6aabf4e9..c6824994d 100644 --- a/packages/database/src/DatabaseManager.ts +++ b/packages/database/src/DatabaseManager.ts @@ -3,163 +3,103 @@ * @see {@link getDatabaseServer()} to get a singleton instance */ -import { getServerLogger } from "../../shared/log.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; +import type { ConnectionRecord } from "rusty-motors-shared"; /** - * @module Database + * This class abstracts database methods + * @see {@link getDatabaseServer()} to get a singleton instance */ -export class Database { - updateUser(user: { userId: number; userData: Buffer }) { - try { - this._users.set(user.userId, user.userData); - } catch (error) { - this._log.error(error); - } - } - static instance: Database | undefined; - private _log: import("pino").Logger; - private _sessions: interfaces.ConnectionRecord[]; - private _lobbies: interfaces.RaceLobbyRecord[][]; - private _users: Map; +// This is a fake database table that holds sessions of currently logged in users +const _sessions: ConnectionRecord[] = []; +// This is a fake database table that holds user data +const _users: Map = new Map(); - /** - * Creates an instance of Database. - * - * @param {interfaces.external.pino.Logger} [log=getServerLogger({ module: "database" })] - */ - constructor( - log: interfaces.external.pino.Logger = getServerLogger({ - module: "database", - }), - ) { - this._log = log; - this._sessions = []; - /** - * @private - * @type {interfaces.RaceLobbyRecord[]} - */ - this._lobbies = []; - this._users = new Map(); - } +/** + * @module Database + */ - /** - * Return the singleton instance of the DatabaseManager class - * - * @static - * @param {import("pino").Logger} log - * @returns {Database} - */ - static getInstance(log: import("pino").Logger): Database { - if (!Database.instance) { - Database.instance = new Database(log); - } - const self = Database.instance; - return self; - } +/** + * Update a user record in the database - /** - * Locate customer session encryption key in the database - * - * @param {number} customerId - * @returns {Promise} - * @throws {Error} If the session key is not found - */ - async fetchSessionKeyByCustomerId( - customerId: number, - ): Promise { - const record = this._sessions.find((session) => { - return session.customerId === customerId; - }); - if (typeof record === "undefined") { - const err = new ServerError( - `Session key not found for customer ${customerId}`, - ); - throw err; - } - return record; +* @throws {Error} If the user record is not found + */ +export async function updateUser(user: { + userId: number; + userData: Buffer; +}): Promise { + try { + _users.set(user.userId, user.userData); + return Promise.resolve(); + } catch (error) { + throw Error(`Error updating user: ${String(error)}`); } +} - /** - * Locate customer session encryption key in the database - * - * @param {string} connectionId - * @returns {Promise} - * @throws {Error} If the session key is not found - */ - async fetchSessionKeyByConnectionId( - connectionId: string, - ): Promise { - const record = this._sessions.find((session) => { - return session.connectionId === connectionId; - }); - if (typeof record === "undefined") { - const err = new ServerError( - `Session key not found for connection ${connectionId}`, - ); - throw err; - } - return record; +/** + * Locate customer session encryption key in the database + * + * @throws {Error} If the session key is not found + */ +export async function fetchSessionKeyByCustomerId( + customerId: number, +): Promise { + const record = _sessions.find((session) => { + return session.customerId === customerId; + }); + if (typeof record === "undefined") { + throw Error(`Session key not found for customer ${customerId}`); } + return Promise.resolve(record); +} - /** - * Create or overwrite a customer's session key record - * - * @param {number} customerId - * @param {string} sessionKey - * @param {string} contextId - * @param {string} connectionId - * @returns {Promise} - * @throws {Error} If the session key is not found - */ - async updateSessionKey( - customerId: number, - sessionKey: string, - contextId: string, - connectionId: string, - ): Promise { - const sKey = sessionKey.slice(0, 16); +/** + * Create or overwrite a customer's session key record + * + * @param {number} customerId + * @param {string} sessionKey + * @param {string} contextId + * @param {string} connectionId + * @returns {Promise} + */ +export async function updateSessionKey( + customerId: number, + sessionKey: string, + contextId: string, + connectionId: string, +): Promise { + const sKey = sessionKey.slice(0, 16); - const updatedSession: import("../../interfaces/index.js").ConnectionRecord = - { - customerId, - sessionKey, - sKey, - contextId, - connectionId, - }; + const updatedSession: ConnectionRecord = { + customerId, + sessionKey, + sKey, + contextId, + connectionId, + }; + const record = _sessions.findIndex((session) => { + return session.customerId === customerId; + }); - const record = this._sessions.findIndex((session) => { - return session.customerId === customerId; - }); - if (typeof record === "undefined") { - const err = new ServerError( - "Error updating session key: existing key not found", - ); - throw err; - } - this._sessions.splice(record, 1, updatedSession); - } + _sessions.splice(record, 1, updatedSession); + return Promise.resolve(); } /** - * Return the singleton instance of the DatabaseManager class + * Locate customer session encryption key in the database * - * @param {object} options - * @param {import("pino").Logger} options.log=getServerLogger({ module: "database" }) - * @returns {Database} + * @param {string} connectionId + * @returns {Promise} + * @throws {Error} If the session key is not found */ - -export function getDatabaseServer( - option = { - log: getServerLogger({ - module: "database", - }), - }, -): Database { - if (!Database.instance) { - Database.instance = new Database(option.log); +export async function fetchSessionKeyByConnectionId( + connectionId: string, +): Promise { + const record = _sessions.find((session) => { + return session.connectionId === connectionId; + }); + if (typeof record === "undefined") { + throw Error(`Session key not found for connection ${connectionId}`); } - return Database.getInstance(option.log); + return Promise.resolve(record); } diff --git a/packages/database/src/__generated__/abstract_part_type.ts b/packages/database/src/__generated__/abstract_part_type.ts new file mode 100644 index 000000000..2ed181817 --- /dev/null +++ b/packages/database/src/__generated__/abstract_part_type.ts @@ -0,0 +1,109 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: 4F7qIfLDFaUNa+UpB5zv1oo5dQLYfT/Nyv4WWdHYycpa2Cd8U60HudGhGUikk6S2Ux1YFnwowfbpOewG2pObzA== + */ + +/* eslint-disable */ +// tslint:disable + +interface AbstractPartType { + abstract_part_type_id: number & {readonly __brand?: 'abstract_part_type_abstract_part_type_id'} + baft: (string) | null + /** + * @default 0 + */ + block_family_compatibility: (number) | null + but: (string) | null + depends_on: (number) | null + eapt: string + eut: (string) | null + faft: (string) | null + fut: (string) | null + gapt: (string) | null + /** + * @default 0 + */ + garage_category: (number) | null + gut: (string) | null + iaft: (string) | null + iut: (string) | null + jaft: (string) | null + jut: (string) | null + /** + * @default 0 + */ + modified_rule: (number) | null + parent_abstract_part_type_id: (number) | null + part_filename: (string) | null + /** + * @default 0 + */ + part_paired: (number) | null + /** + * @default 0 + */ + repair_cost_modifier: (string) | null + saft: (string) | null + schematic_picname1: (string) | null + schematic_picname2: (string) | null + /** + * @default 0 + */ + scrap_value_modifier: (string) | null + sut: (string) | null + sw_aft: (string) | null + swut: (string) | null +} +export default AbstractPartType; + +interface AbstractPartType_InsertParameters { + abstract_part_type_id: number & {readonly __brand?: 'abstract_part_type_abstract_part_type_id'} + baft?: (string) | null + /** + * @default 0 + */ + block_family_compatibility?: (number) | null + but?: (string) | null + depends_on?: (number) | null + eapt: string + eut?: (string) | null + faft?: (string) | null + fut?: (string) | null + gapt?: (string) | null + /** + * @default 0 + */ + garage_category?: (number) | null + gut?: (string) | null + iaft?: (string) | null + iut?: (string) | null + jaft?: (string) | null + jut?: (string) | null + /** + * @default 0 + */ + modified_rule?: (number) | null + parent_abstract_part_type_id?: (number) | null + part_filename?: (string) | null + /** + * @default 0 + */ + part_paired?: (number) | null + /** + * @default 0 + */ + repair_cost_modifier?: (string) | null + saft?: (string) | null + schematic_picname1?: (string) | null + schematic_picname2?: (string) | null + /** + * @default 0 + */ + scrap_value_modifier?: (string) | null + sut?: (string) | null + sw_aft?: (string) | null + swut?: (string) | null +} +export type {AbstractPartType_InsertParameters} diff --git a/packages/database/src/__generated__/atdatabases_migrations_applied.ts b/packages/database/src/__generated__/atdatabases_migrations_applied.ts new file mode 100644 index 000000000..6c123cde7 --- /dev/null +++ b/packages/database/src/__generated__/atdatabases_migrations_applied.ts @@ -0,0 +1,37 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: WsmDmKvwU+poIX0iFyB7Bz5NyR4Fm9VrG2x3f4c3JAwWc31YsLU4jiLx+9kHFzICeXSQYvdlpaLUEDPCGjMv+g== + */ + +/* eslint-disable */ +// tslint:disable + +interface AtdatabasesMigrationsApplied { + applied_at: Date + /** + * @default nextval('atdatabases_migrations_applied_id_seq'::regclass) + */ + id: number & {readonly __brand?: 'atdatabases_migrations_applied_id'} + ignored_error: (string) | null + index: number + name: string + obsolete: boolean + script: string +} +export default AtdatabasesMigrationsApplied; + +interface AtdatabasesMigrationsApplied_InsertParameters { + applied_at: Date + /** + * @default nextval('atdatabases_migrations_applied_id_seq'::regclass) + */ + id?: number & {readonly __brand?: 'atdatabases_migrations_applied_id'} + ignored_error?: (string) | null + index: number + name: string + obsolete: boolean + script: string +} +export type {AtdatabasesMigrationsApplied_InsertParameters} diff --git a/packages/database/src/__generated__/atdatabases_migrations_version.ts b/packages/database/src/__generated__/atdatabases_migrations_version.ts new file mode 100644 index 000000000..a76badb39 --- /dev/null +++ b/packages/database/src/__generated__/atdatabases_migrations_version.ts @@ -0,0 +1,21 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: TpzCQ93K0bjZPn+fXJRl8zC0sQMsUxzUePHiU8MTUjxrIJrQ3DId+E1dxnpZFwz7QWacFdhwsU5SfE9Y34LG4w== + */ + +/* eslint-disable */ +// tslint:disable + +interface AtdatabasesMigrationsVersion { + id: number & {readonly __brand?: 'atdatabases_migrations_version_id'} + version: (string) | null +} +export default AtdatabasesMigrationsVersion; + +interface AtdatabasesMigrationsVersion_InsertParameters { + id: number & {readonly __brand?: 'atdatabases_migrations_version_id'} + version?: (string) | null +} +export type {AtdatabasesMigrationsVersion_InsertParameters} diff --git a/packages/database/src/__generated__/attachment_point.ts b/packages/database/src/__generated__/attachment_point.ts new file mode 100644 index 000000000..eadde0605 --- /dev/null +++ b/packages/database/src/__generated__/attachment_point.ts @@ -0,0 +1,21 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: M8/YeSSGw/7qUaLSrfbNooJeHfkjY6i8wHalJSCCjZyADA5nkk9+voEpAQfQJOdg7cNlnxivhPF6qgfyE3cFgA== + */ + +/* eslint-disable */ +// tslint:disable + +interface AttachmentPoint { + attachment_point: string + attachment_point_id: number & {readonly __brand?: 'attachment_point_attachment_point_id'} +} +export default AttachmentPoint; + +interface AttachmentPoint_InsertParameters { + attachment_point: string + attachment_point_id: number & {readonly __brand?: 'attachment_point_attachment_point_id'} +} +export type {AttachmentPoint_InsertParameters} diff --git a/packages/database/src/__generated__/brand.ts b/packages/database/src/__generated__/brand.ts new file mode 100644 index 000000000..94d79a69f --- /dev/null +++ b/packages/database/src/__generated__/brand.ts @@ -0,0 +1,31 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: 5+uzmr7yCLCXynf+ykB59Q6WCsFKvE5CITtT72DJC1xt3sMAQVveNbFQXfbXlAcX9C5B3rkf3ngCkoUik4pp7g== + */ + +/* eslint-disable */ +// tslint:disable + +interface Brand { + brand: (string) | null + brand_id: number & {readonly __brand?: 'brand_brand_id'} + /** + * @default 0 + */ + is_stock: (number) | null + pic_name: (string) | null +} +export default Brand; + +interface Brand_InsertParameters { + brand?: (string) | null + brand_id: number & {readonly __brand?: 'brand_brand_id'} + /** + * @default 0 + */ + is_stock?: (number) | null + pic_name?: (string) | null +} +export type {Brand_InsertParameters} diff --git a/packages/database/src/__generated__/branded_part.ts b/packages/database/src/__generated__/branded_part.ts new file mode 100644 index 000000000..c5c55871a --- /dev/null +++ b/packages/database/src/__generated__/branded_part.ts @@ -0,0 +1,42 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: FO1yVOHkrUQOwgs9QB7W4cjJTnhjXQ/AMtegydVJKYAy6IrWZfobFOsHnQZkd9wBwKOr3ZsMe0f6wPTHye3Tgg== + */ + +/* eslint-disable */ +// tslint:disable + +import Model from './model' +import PartType from './part_type' + +interface BrandedPart { + branded_part_id: number & {readonly __brand?: 'branded_part_branded_part_id'} + /** + * @default 0 + */ + engine_block_family_id: number + max_item_wear: (number) | null + mfg_date: Date + model_id: Model['model_id'] + part_type_id: PartType['part_type_id'] + qty_avail: number + retail_price: number +} +export default BrandedPart; + +interface BrandedPart_InsertParameters { + branded_part_id: number & {readonly __brand?: 'branded_part_branded_part_id'} + /** + * @default 0 + */ + engine_block_family_id?: number + max_item_wear?: (number) | null + mfg_date: Date + model_id: Model['model_id'] + part_type_id: PartType['part_type_id'] + qty_avail: number + retail_price: number +} +export type {BrandedPart_InsertParameters} diff --git a/packages/database/src/__generated__/driver_class.ts b/packages/database/src/__generated__/driver_class.ts new file mode 100644 index 000000000..a69329f78 --- /dev/null +++ b/packages/database/src/__generated__/driver_class.ts @@ -0,0 +1,21 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: /rudeJZZtDrBYSXjgXr5S4CVYtvkdViVwr6GIhs0pflzGzXgzecKQWMu5xwCJjnceOeZlC+VzWGubFzI2+lIkQ== + */ + +/* eslint-disable */ +// tslint:disable + +interface DriverClass { + driver_class: (string) | null + driver_class_id: number & {readonly __brand?: 'driver_class_driver_class_id'} +} +export default DriverClass; + +interface DriverClass_InsertParameters { + driver_class?: (string) | null + driver_class_id: number & {readonly __brand?: 'driver_class_driver_class_id'} +} +export type {DriverClass_InsertParameters} diff --git a/packages/database/src/__generated__/index.ts b/packages/database/src/__generated__/index.ts new file mode 100644 index 000000000..ebe0a8fc6 --- /dev/null +++ b/packages/database/src/__generated__/index.ts @@ -0,0 +1,118 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: vxwlgkHcVcRZFiTangk9H5WwLqrSWEy51UAfux9QlDfymxXNN3xR7TOK5QunZFk/8dPN8gpKona6QErjHlBLvA== + */ + +/* eslint-disable */ +// tslint:disable + +import AbstractPartType, {AbstractPartType_InsertParameters} from './abstract_part_type' +import AtdatabasesMigrationsApplied, {AtdatabasesMigrationsApplied_InsertParameters} from './atdatabases_migrations_applied' +import AtdatabasesMigrationsVersion, {AtdatabasesMigrationsVersion_InsertParameters} from './atdatabases_migrations_version' +import AttachmentPoint, {AttachmentPoint_InsertParameters} from './attachment_point' +import Brand, {Brand_InsertParameters} from './brand' +import BrandedPart, {BrandedPart_InsertParameters} from './branded_part' +import DriverClass, {DriverClass_InsertParameters} from './driver_class' +import Key, {Key_InsertParameters} from './key' +import Login, {Login_InsertParameters} from './login' +import Model, {Model_InsertParameters} from './model' +import Part, {Part_InsertParameters} from './part' +import PartGrade, {PartGrade_InsertParameters} from './part_grade' +import PartType, {PartType_InsertParameters} from './part_type' +import Player, {Player_InsertParameters} from './player' +import PlayerType, {PlayerType_InsertParameters} from './player_type' +import Profile, {Profile_InsertParameters} from './profile' +import PtSkin, {PtSkin_InsertParameters} from './pt_skin' +import SkinType, {SkinType_InsertParameters} from './skin_type' +import StockAssembly, {StockAssembly_InsertParameters} from './stock_assembly' +import StockVehicleAttributes, {StockVehicleAttributes_InsertParameters} from './stock_vehicle_attributes' +import SvaCarClass, {SvaCarClass_InsertParameters} from './sva_car_class' +import SvaModeRestriction, {SvaModeRestriction_InsertParameters} from './sva_mode_restriction' +import Vehicle, {Vehicle_InsertParameters} from './vehicle' +import Warehouse, {Warehouse_InsertParameters} from './warehouse' + +interface DatabaseSchema { + abstract_part_type: {record: AbstractPartType, insert: AbstractPartType_InsertParameters}; + atdatabases_migrations_applied: {record: AtdatabasesMigrationsApplied, insert: AtdatabasesMigrationsApplied_InsertParameters}; + atdatabases_migrations_version: {record: AtdatabasesMigrationsVersion, insert: AtdatabasesMigrationsVersion_InsertParameters}; + attachment_point: {record: AttachmentPoint, insert: AttachmentPoint_InsertParameters}; + brand: {record: Brand, insert: Brand_InsertParameters}; + branded_part: {record: BrandedPart, insert: BrandedPart_InsertParameters}; + driver_class: {record: DriverClass, insert: DriverClass_InsertParameters}; + key: {record: Key, insert: Key_InsertParameters}; + login: {record: Login, insert: Login_InsertParameters}; + model: {record: Model, insert: Model_InsertParameters}; + part: {record: Part, insert: Part_InsertParameters}; + part_grade: {record: PartGrade, insert: PartGrade_InsertParameters}; + part_type: {record: PartType, insert: PartType_InsertParameters}; + player: {record: Player, insert: Player_InsertParameters}; + player_type: {record: PlayerType, insert: PlayerType_InsertParameters}; + profile: {record: Profile, insert: Profile_InsertParameters}; + pt_skin: {record: PtSkin, insert: PtSkin_InsertParameters}; + skin_type: {record: SkinType, insert: SkinType_InsertParameters}; + stock_assembly: {record: StockAssembly, insert: StockAssembly_InsertParameters}; + stock_vehicle_attributes: {record: StockVehicleAttributes, insert: StockVehicleAttributes_InsertParameters}; + sva_car_class: {record: SvaCarClass, insert: SvaCarClass_InsertParameters}; + sva_mode_restriction: {record: SvaModeRestriction, insert: SvaModeRestriction_InsertParameters}; + vehicle: {record: Vehicle, insert: Vehicle_InsertParameters}; + warehouse: {record: Warehouse, insert: Warehouse_InsertParameters}; +} +export default DatabaseSchema; + +function serializeValue(_tableName: string, _columnName: string, value: unknown): unknown { + return value; +} +export {serializeValue} + +export type { + AbstractPartType, + AbstractPartType_InsertParameters, + AtdatabasesMigrationsApplied, + AtdatabasesMigrationsApplied_InsertParameters, + AtdatabasesMigrationsVersion, + AtdatabasesMigrationsVersion_InsertParameters, + AttachmentPoint, + AttachmentPoint_InsertParameters, + Brand, + Brand_InsertParameters, + BrandedPart, + BrandedPart_InsertParameters, + DriverClass, + DriverClass_InsertParameters, + Key, + Key_InsertParameters, + Login, + Login_InsertParameters, + Model, + Model_InsertParameters, + Part, + PartGrade, + PartGrade_InsertParameters, + PartType, + PartType_InsertParameters, + Part_InsertParameters, + Player, + PlayerType, + PlayerType_InsertParameters, + Player_InsertParameters, + Profile, + Profile_InsertParameters, + PtSkin, + PtSkin_InsertParameters, + SkinType, + SkinType_InsertParameters, + StockAssembly, + StockAssembly_InsertParameters, + StockVehicleAttributes, + StockVehicleAttributes_InsertParameters, + SvaCarClass, + SvaCarClass_InsertParameters, + SvaModeRestriction, + SvaModeRestriction_InsertParameters, + Vehicle, + Vehicle_InsertParameters, + Warehouse, + Warehouse_InsertParameters, +} diff --git a/packages/database/src/__generated__/key.ts b/packages/database/src/__generated__/key.ts new file mode 100644 index 000000000..df8fe75e9 --- /dev/null +++ b/packages/database/src/__generated__/key.ts @@ -0,0 +1,23 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: wgW746gZo7mof5uc2ai7LDQ1itqPc0/zYJtvjUJry8MpivFZUjS7WiUbKX3lPoYnAt873cAiDJCAv58CAn/6ag== + */ + +/* eslint-disable */ +// tslint:disable + +import Profile from './profile' + +interface Key { + profile_id: Profile['profile_id'] + session_key: string +} +export default Key; + +interface Key_InsertParameters { + profile_id: Profile['profile_id'] + session_key: string +} +export type {Key_InsertParameters} diff --git a/packages/database/src/__generated__/login.ts b/packages/database/src/__generated__/login.ts new file mode 100644 index 000000000..7d5ff4b79 --- /dev/null +++ b/packages/database/src/__generated__/login.ts @@ -0,0 +1,33 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: 2QhRIF5QcEQfsA954WH4A1F9qsXfxKnVpal+9mll0E4ca+DRjMppDopDbnwBmEv8SkKT0nnQXWrLw6pvis4gUQ== + */ + +/* eslint-disable */ +// tslint:disable + +import Player from './player' + +interface Login { + customer_id: Player['customer_id'] + /** + * @default 0 + */ + login_level: number + login_name: string & {readonly __brand?: 'login_login_name'} + password: string +} +export default Login; + +interface Login_InsertParameters { + customer_id: Player['customer_id'] + /** + * @default 0 + */ + login_level?: number + login_name: string & {readonly __brand?: 'login_login_name'} + password: string +} +export type {Login_InsertParameters} diff --git a/packages/database/src/__generated__/model.ts b/packages/database/src/__generated__/model.ts new file mode 100644 index 000000000..b750c1d1d --- /dev/null +++ b/packages/database/src/__generated__/model.ts @@ -0,0 +1,75 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: Qq9KWzMs7h2M97USxqjonfltR7XxApLJj5Pvd4uVFMSfGJOfu1D1g8DKiqqA/tJl1FHx4ioQk4VTEWuwTHbuig== + */ + +/* eslint-disable */ +// tslint:disable + +import Brand from './brand' + +interface Model { + b_extra_info: (string) | null + b_model: (string) | null + b_short_model: (string) | null + brand_id: Brand['brand_id'] + debug_sort_string: (string) | null + debug_string: (string) | null + e_extra_info: (string) | null + e_model: (string) | null + e_short_model: (string) | null + f_extra_info: (string) | null + f_model: (string) | null + f_short_model: (string) | null + g_extra_info: (string) | null + g_model: (string) | null + g_short_model: (string) | null + i_extra_info: (string) | null + i_model: (string) | null + i_short_model: (string) | null + j_extra_info: (string) | null + j_model: (string) | null + j_short_model: (string) | null + model_id: number & {readonly __brand?: 'model_model_id'} + s_extra_info: (string) | null + s_model: (string) | null + s_short_model: (string) | null + sw_extra_info: (string) | null + sw_model: (string) | null + sw_short_model: (string) | null +} +export default Model; + +interface Model_InsertParameters { + b_extra_info?: (string) | null + b_model?: (string) | null + b_short_model?: (string) | null + brand_id: Brand['brand_id'] + debug_sort_string?: (string) | null + debug_string?: (string) | null + e_extra_info?: (string) | null + e_model?: (string) | null + e_short_model?: (string) | null + f_extra_info?: (string) | null + f_model?: (string) | null + f_short_model?: (string) | null + g_extra_info?: (string) | null + g_model?: (string) | null + g_short_model?: (string) | null + i_extra_info?: (string) | null + i_model?: (string) | null + i_short_model?: (string) | null + j_extra_info?: (string) | null + j_model?: (string) | null + j_short_model?: (string) | null + model_id: number & {readonly __brand?: 'model_model_id'} + s_extra_info?: (string) | null + s_model?: (string) | null + s_short_model?: (string) | null + sw_extra_info?: (string) | null + sw_model?: (string) | null + sw_short_model?: (string) | null +} +export type {Model_InsertParameters} diff --git a/packages/database/src/__generated__/part.ts b/packages/database/src/__generated__/part.ts new file mode 100644 index 000000000..064fee839 --- /dev/null +++ b/packages/database/src/__generated__/part.ts @@ -0,0 +1,52 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: r6ugbodeJS+NyD2EV4tEiehaMPdc6JlFSQdwqPL8rhK6qnoLI+5Oqhnf70/4q7v27LqZj18o9u0QljUK+3gDfg== + */ + +/* eslint-disable */ +// tslint:disable + +import AttachmentPoint from './attachment_point' +import BrandedPart from './branded_part' + +interface Part { + attachment_point_id: (AttachmentPoint['attachment_point_id']) | null + branded_part_id: BrandedPart['branded_part_id'] + item_wear: number + owner_id: (number) | null + parent_part_id: (number) | null + part_id: number & {readonly __brand?: 'part_part_id'} + part_name: (string) | null + percent_damage: number + /** + * @default 0 + */ + repair_cost: (number) | null + /** + * @default 0 + */ + scrap_value: (number) | null +} +export default Part; + +interface Part_InsertParameters { + attachment_point_id?: (AttachmentPoint['attachment_point_id']) | null + branded_part_id: BrandedPart['branded_part_id'] + item_wear: number + owner_id?: (number) | null + parent_part_id?: (number) | null + part_id: number & {readonly __brand?: 'part_part_id'} + part_name?: (string) | null + percent_damage: number + /** + * @default 0 + */ + repair_cost?: (number) | null + /** + * @default 0 + */ + scrap_value?: (number) | null +} +export type {Part_InsertParameters} diff --git a/packages/database/src/__generated__/part_grade.ts b/packages/database/src/__generated__/part_grade.ts new file mode 100644 index 000000000..234af8cb7 --- /dev/null +++ b/packages/database/src/__generated__/part_grade.ts @@ -0,0 +1,27 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: llTnc44yDeEt4bCekTPJhS5xGIfL3IuJzgPaGSWsm0DRRZSILUEfEvpaLFnlNFe+ZUgYQgph9p/Sx5zW/rvryg== + */ + +/* eslint-disable */ +// tslint:disable + +interface PartGrade { + e_text: (string) | null + f_text: (string) | null + g_text: (string) | null + part_grade: (string) | null + part_grade_id: number & {readonly __brand?: 'part_grade_part_grade_id'} +} +export default PartGrade; + +interface PartGrade_InsertParameters { + e_text?: (string) | null + f_text?: (string) | null + g_text?: (string) | null + part_grade?: (string) | null + part_grade_id: number & {readonly __brand?: 'part_grade_part_grade_id'} +} +export type {PartGrade_InsertParameters} diff --git a/packages/database/src/__generated__/part_type.ts b/packages/database/src/__generated__/part_type.ts new file mode 100644 index 000000000..618139a55 --- /dev/null +++ b/packages/database/src/__generated__/part_type.ts @@ -0,0 +1,30 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: akkPgI94W/iY1RjP32yAxWZpasspO4ENv+U3xZIsQPr6rrdcY53EQhVW3N31GehKX5BabfVeIYvzAPQvRbIQ5Q== + */ + +/* eslint-disable */ +// tslint:disable + +import AbstractPartType from './abstract_part_type' +import PartGrade from './part_grade' + +interface PartType { + abstract_part_type_id: AbstractPartType['abstract_part_type_id'] + part_filename: (string) | null + part_grade_id: (PartGrade['part_grade_id']) | null + part_type: string + part_type_id: number & {readonly __brand?: 'part_type_part_type_id'} +} +export default PartType; + +interface PartType_InsertParameters { + abstract_part_type_id: AbstractPartType['abstract_part_type_id'] + part_filename?: (string) | null + part_grade_id?: (PartGrade['part_grade_id']) | null + part_type: string + part_type_id: number & {readonly __brand?: 'part_type_part_type_id'} +} +export type {PartType_InsertParameters} diff --git a/packages/database/src/__generated__/player.ts b/packages/database/src/__generated__/player.ts new file mode 100644 index 000000000..83371897c --- /dev/null +++ b/packages/database/src/__generated__/player.ts @@ -0,0 +1,282 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: gKn2soAeVAuhf3iovJDOurssIFodyk5OHPYCE9NgAM+k3DmAM70ATZUjes0HKRpBAhJLsmyFmUehysYOSriHHw== + */ + +/* eslint-disable */ +// tslint:disable + +import DriverClass from './driver_class' +import PlayerType from './player_type' + +interface Player { + address: (string) | null + bank_balance: number + /** + * @default 0 + */ + body_type: (number) | null + car_info_setting: (number) | null + car_num1: string + car_num2: string + car_num3: string + car_num4: string + car_num5: string + car_num6: string + /** + * @default 0 + */ + cars_lost: (number) | null + /** + * @default 0 + */ + cars_won: (number) | null + /** + * @default 0 + */ + challenge_races_completed: (number) | null + /** + * @default 0 + */ + challenge_races_run: (number) | null + /** + * @default 0 + */ + challenge_races_won: (number) | null + challenge_rung: (number) | null + challenge_score: (number) | null + current_race_id: (number) | null + customer_id: number + dl_number: (string) | null + drag_class: (DriverClass['driver_class_id']) | null + driver_style: number + /** + * @default 0 + */ + evaded_fuzz: (number) | null + /** + * @default 0 + */ + hair_color: (number) | null + /** + * @default 0 + */ + insurance_rating: (number) | null + /** + * @default 0 + */ + insurance_risk_points: (number) | null + is_logged_in: (number) | null + last_logged_in: (Date) | null + lp_code: number + lp_text: (string) | null + modified_classic_class: (DriverClass['driver_class_id']) | null + modified_muscle_class: (DriverClass['driver_class_id']) | null + num_cars_owned: number + /** + * @default 0 + */ + num_unread_mail: (number) | null + /** + * @default 0 + */ + offline_ai_car_bpt_id: (number) | null + /** + * @default 0 + */ + offline_ai_car_class: (number) | null + /** + * @default 0 + */ + offline_ai_skin_id: (number) | null + /** + * @default 0 + */ + offline_ai_state: (number) | null + offline_driver_attitude: (number) | null + offline_driver_skill: (number) | null + offline_driver_style: (number) | null + offline_grudge: (number) | null + offline_reputation: (number) | null + outlaw_class: (DriverClass['driver_class_id']) | null + /** + * @default 0 + */ + pants_color: (number) | null + persona: string + /** + * @default 0 + */ + pinks_won: (number) | null + player_id: number & {readonly __brand?: 'player_player_id'} + player_type_id: PlayerType['player_type_id'] + residence: (string) | null + sanctioned_score: (number) | null + /** + * @default 0 + */ + shirt_color: (number) | null + /** + * @default 0 + */ + skin_color: (number) | null + stock_classic_class: (number) | null + stock_muscle_class: (DriverClass['driver_class_id']) | null + times_logged_in: (number) | null + /** + * @default 0 + */ + total_races_completed: (number) | null + /** + * @default 0 + */ + total_races_run: (number) | null + /** + * @default 0 + */ + total_races_won: (number) | null + total_time_played: (number) | null + /** + * @default 0 + */ + total_winnings: (number) | null + vehicle_id: (number) | null +} +export default Player; + +interface Player_InsertParameters { + address?: (string) | null + bank_balance: number + /** + * @default 0 + */ + body_type?: (number) | null + car_info_setting?: (number) | null + car_num1: string + car_num2: string + car_num3: string + car_num4: string + car_num5: string + car_num6: string + /** + * @default 0 + */ + cars_lost?: (number) | null + /** + * @default 0 + */ + cars_won?: (number) | null + /** + * @default 0 + */ + challenge_races_completed?: (number) | null + /** + * @default 0 + */ + challenge_races_run?: (number) | null + /** + * @default 0 + */ + challenge_races_won?: (number) | null + challenge_rung?: (number) | null + challenge_score?: (number) | null + current_race_id?: (number) | null + customer_id: number + dl_number?: (string) | null + drag_class?: (DriverClass['driver_class_id']) | null + driver_style: number + /** + * @default 0 + */ + evaded_fuzz?: (number) | null + /** + * @default 0 + */ + hair_color?: (number) | null + /** + * @default 0 + */ + insurance_rating?: (number) | null + /** + * @default 0 + */ + insurance_risk_points?: (number) | null + is_logged_in?: (number) | null + last_logged_in?: (Date) | null + lp_code: number + lp_text?: (string) | null + modified_classic_class?: (DriverClass['driver_class_id']) | null + modified_muscle_class?: (DriverClass['driver_class_id']) | null + num_cars_owned: number + /** + * @default 0 + */ + num_unread_mail?: (number) | null + /** + * @default 0 + */ + offline_ai_car_bpt_id?: (number) | null + /** + * @default 0 + */ + offline_ai_car_class?: (number) | null + /** + * @default 0 + */ + offline_ai_skin_id?: (number) | null + /** + * @default 0 + */ + offline_ai_state?: (number) | null + offline_driver_attitude?: (number) | null + offline_driver_skill?: (number) | null + offline_driver_style?: (number) | null + offline_grudge?: (number) | null + offline_reputation?: (number) | null + outlaw_class?: (DriverClass['driver_class_id']) | null + /** + * @default 0 + */ + pants_color?: (number) | null + persona: string + /** + * @default 0 + */ + pinks_won?: (number) | null + player_id: number & {readonly __brand?: 'player_player_id'} + player_type_id: PlayerType['player_type_id'] + residence?: (string) | null + sanctioned_score?: (number) | null + /** + * @default 0 + */ + shirt_color?: (number) | null + /** + * @default 0 + */ + skin_color?: (number) | null + stock_classic_class?: (number) | null + stock_muscle_class?: (DriverClass['driver_class_id']) | null + times_logged_in?: (number) | null + /** + * @default 0 + */ + total_races_completed?: (number) | null + /** + * @default 0 + */ + total_races_run?: (number) | null + /** + * @default 0 + */ + total_races_won?: (number) | null + total_time_played?: (number) | null + /** + * @default 0 + */ + total_winnings?: (number) | null + vehicle_id?: (number) | null +} +export type {Player_InsertParameters} diff --git a/packages/database/src/__generated__/player_type.ts b/packages/database/src/__generated__/player_type.ts new file mode 100644 index 000000000..6d8ceb2f0 --- /dev/null +++ b/packages/database/src/__generated__/player_type.ts @@ -0,0 +1,21 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: Vn4sM7SA51T3U0kn74/QGtOKnsmDine+eesJkqom/sgJrJ45gWOsqMmzm/bx4TP6ut8x8SeBjRywUa7D8S3Kzg== + */ + +/* eslint-disable */ +// tslint:disable + +interface PlayerType { + player_type: string + player_type_id: number & {readonly __brand?: 'player_type_player_type_id'} +} +export default PlayerType; + +interface PlayerType_InsertParameters { + player_type: string + player_type_id: number & {readonly __brand?: 'player_type_player_type_id'} +} +export type {PlayerType_InsertParameters} diff --git a/packages/database/src/__generated__/profile.ts b/packages/database/src/__generated__/profile.ts new file mode 100644 index 000000000..636e5ecd4 --- /dev/null +++ b/packages/database/src/__generated__/profile.ts @@ -0,0 +1,113 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: cWy5E6rmsqYAjbb3s7l4A4U+62pKFdFWfooxs6rx6B0Ni3fTG5offgvrKqo5Ac0Dt+hX2hv/IETGAQkDutjQlw== + */ + +/* eslint-disable */ +// tslint:disable + +import Player from './player' + +interface Profile { + /** + * @default EXTRACT(epoch FROM now())::integer + */ + create_stamp: number + current_key: string + customer_id: Player['customer_id'] + /** + * @default false + */ + dnd: boolean + game_blob: string + /** + * @default EXTRACT(epoch FROM now())::integer + */ + game_purchase_stamp: number + game_serial_number: string + /** + * @default EXTRACT(epoch FROM now())::integer + */ + game_start_stamp: number + /** + * @default false + */ + is_online: boolean + /** + * @default EXTRACT(epoch FROM now())::integer + */ + last_login_stamp: number + /** + * @default 1 + */ + number_games: number + personal_blob: string + picture_blob: string + profile_id: number & {readonly __brand?: 'profile_profile_id'} + /** + * @default 0 + */ + profile_level: number + profile_name: string + /** + * @default 0 + */ + server_id: number + shard_id: number + time_in_game: number + time_online: number +} +export default Profile; + +interface Profile_InsertParameters { + /** + * @default EXTRACT(epoch FROM now())::integer + */ + create_stamp?: number + current_key: string + customer_id: Player['customer_id'] + /** + * @default false + */ + dnd?: boolean + game_blob: string + /** + * @default EXTRACT(epoch FROM now())::integer + */ + game_purchase_stamp?: number + game_serial_number: string + /** + * @default EXTRACT(epoch FROM now())::integer + */ + game_start_stamp?: number + /** + * @default false + */ + is_online?: boolean + /** + * @default EXTRACT(epoch FROM now())::integer + */ + last_login_stamp?: number + /** + * @default 1 + */ + number_games?: number + personal_blob: string + picture_blob: string + profile_id: number & {readonly __brand?: 'profile_profile_id'} + /** + * @default 0 + */ + profile_level?: number + profile_name: string + /** + * @default 0 + */ + server_id?: number + shard_id: number + time_in_game: number + time_online: number +} +export type {Profile_InsertParameters} diff --git a/packages/database/src/__generated__/pt_skin.ts b/packages/database/src/__generated__/pt_skin.ts new file mode 100644 index 000000000..edb1777e9 --- /dev/null +++ b/packages/database/src/__generated__/pt_skin.ts @@ -0,0 +1,156 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: 0TdVdR0Di4kkCqeXSWPevxew/lFqzaq7QWD9ti0m3cUx1KZd395xLCLnKHWkuRJ7ZhMVwS6YIGMmgvRjEbCH7Q== + */ + +/* eslint-disable */ +// tslint:disable + +import PartType from './part_type' +import SkinType from './skin_type' + +interface PtSkin { + b_skin: (string) | null + c0: (number) | null + c1: (number) | null + c2: (number) | null + c3: (number) | null + c4: (number) | null + c5: (number) | null + c6: (number) | null + c7: (number) | null + comment_text: (string) | null + creator_id: (number) | null + creator_name: (string) | null + /** + * @default 0 + */ + default_flag: (number) | null + e_skin: (string) | null + f_skin: (string) | null + g_skin: (string) | null + h0: (number) | null + h1: (number) | null + h2: (number) | null + h3: (number) | null + h4: (number) | null + h5: (number) | null + h6: (number) | null + h7: (number) | null + i_skin: (string) | null + j_skin: (string) | null + part_filename: (string) | null + part_type_id: (PartType['part_type_id']) | null + price: number + s0: (number) | null + s1: (number) | null + s2: (number) | null + s3: (number) | null + s4: (number) | null + s5: (number) | null + s6: (number) | null + s7: (number) | null + s_skin: (string) | null + skin_id: number & {readonly __brand?: 'pt_skin_skin_id'} + skin_type_id: (SkinType['skin_type_id']) | null + sw_skin: (string) | null + v0: (number) | null + v1: (number) | null + v2: (number) | null + v3: (number) | null + v4: (number) | null + v5: (number) | null + v6: (number) | null + v7: (number) | null + x0: (number) | null + x1: (number) | null + x2: (number) | null + x3: (number) | null + x4: (number) | null + x5: (number) | null + x6: (number) | null + x7: (number) | null + y0: (number) | null + y1: (number) | null + y2: (number) | null + y3: (number) | null + y4: (number) | null + y5: (number) | null + y6: (number) | null + y7: (number) | null +} +export default PtSkin; + +interface PtSkin_InsertParameters { + b_skin?: (string) | null + c0?: (number) | null + c1?: (number) | null + c2?: (number) | null + c3?: (number) | null + c4?: (number) | null + c5?: (number) | null + c6?: (number) | null + c7?: (number) | null + comment_text?: (string) | null + creator_id?: (number) | null + creator_name?: (string) | null + /** + * @default 0 + */ + default_flag?: (number) | null + e_skin?: (string) | null + f_skin?: (string) | null + g_skin?: (string) | null + h0?: (number) | null + h1?: (number) | null + h2?: (number) | null + h3?: (number) | null + h4?: (number) | null + h5?: (number) | null + h6?: (number) | null + h7?: (number) | null + i_skin?: (string) | null + j_skin?: (string) | null + part_filename?: (string) | null + part_type_id?: (PartType['part_type_id']) | null + price: number + s0?: (number) | null + s1?: (number) | null + s2?: (number) | null + s3?: (number) | null + s4?: (number) | null + s5?: (number) | null + s6?: (number) | null + s7?: (number) | null + s_skin?: (string) | null + skin_id: number & {readonly __brand?: 'pt_skin_skin_id'} + skin_type_id?: (SkinType['skin_type_id']) | null + sw_skin?: (string) | null + v0?: (number) | null + v1?: (number) | null + v2?: (number) | null + v3?: (number) | null + v4?: (number) | null + v5?: (number) | null + v6?: (number) | null + v7?: (number) | null + x0?: (number) | null + x1?: (number) | null + x2?: (number) | null + x3?: (number) | null + x4?: (number) | null + x5?: (number) | null + x6?: (number) | null + x7?: (number) | null + y0?: (number) | null + y1?: (number) | null + y2?: (number) | null + y3?: (number) | null + y4?: (number) | null + y5?: (number) | null + y6?: (number) | null + y7?: (number) | null +} +export type {PtSkin_InsertParameters} diff --git a/packages/database/src/__generated__/schema.json b/packages/database/src/__generated__/schema.json new file mode 100644 index 000000000..486f0d769 --- /dev/null +++ b/packages/database/src/__generated__/schema.json @@ -0,0 +1,2131 @@ +[ + { + "name": "abstract_part_type", + "columns": [ + { + "name": "abstract_part_type_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "baft", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "block_family_compatibility", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "but", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "depends_on", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "eapt", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "eut", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "faft", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "fut", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "gapt", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "garage_category", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "gut", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "iaft", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "iut", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "jaft", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "jut", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "modified_rule", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "parent_abstract_part_type_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "part_filename", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "part_paired", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "repair_cost_modifier", + "isNullable": true, + "hasDefault": true, + "typeId": 1700, + "typeName": "NUMERIC" + }, + { + "name": "saft", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "schematic_picname1", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "schematic_picname2", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "scrap_value_modifier", + "isNullable": true, + "hasDefault": true, + "typeId": 1700, + "typeName": "NUMERIC" + }, + { + "name": "sut", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "sw_aft", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "swut", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + } + ] + }, + { + "name": "atdatabases_migrations_applied", + "columns": [ + { + "name": "applied_at", + "isNullable": false, + "hasDefault": false, + "typeId": 1184, + "typeName": "TIMESTAMPTZ" + }, + { + "name": "id", + "isNullable": false, + "hasDefault": true, + "typeId": 20, + "typeName": "BIGINT" + }, + { + "name": "ignored_error", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "index", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "name", + "isNullable": false, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + }, + { + "name": "obsolete", + "isNullable": false, + "hasDefault": false, + "typeId": 16, + "typeName": "BOOL" + }, + { + "name": "script", + "isNullable": false, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + } + ] + }, + { + "name": "atdatabases_migrations_version", + "columns": [ + { + "name": "id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "version", + "isNullable": true, + "hasDefault": false, + "typeId": 25, + "typeName": "TEXT" + } + ] + }, + { + "name": "attachment_point", + "columns": [ + { + "name": "attachment_point", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "attachment_point_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "brand", + "columns": [ + { + "name": "brand", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "brand_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "is_stock", + "isNullable": true, + "hasDefault": true, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "pic_name", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + } + ] + }, + { + "name": "branded_part", + "columns": [ + { + "name": "branded_part_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "engine_block_family_id", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "max_item_wear", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "mfg_date", + "isNullable": false, + "hasDefault": false, + "typeId": 1114, + "typeName": "TIMESTAMP" + }, + { + "name": "model_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "part_type_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "qty_avail", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "retail_price", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "driver_class", + "columns": [ + { + "name": "driver_class", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "driver_class_id", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + } + ] + }, + { + "name": "key", + "columns": [ + { + "name": "profile_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "session_key", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + } + ] + }, + { + "name": "login", + "columns": [ + { + "name": "customer_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "login_level", + "isNullable": false, + "hasDefault": true, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "login_name", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "password", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + } + ] + }, + { + "name": "model", + "columns": [ + { + "name": "b_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "b_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "b_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "brand_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "debug_sort_string", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "debug_string", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "e_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "e_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "e_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "f_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "f_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "f_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "g_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "g_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "g_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "i_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "i_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "i_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "j_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "j_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "j_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "model_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "s_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "s_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "s_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "sw_extra_info", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "sw_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "sw_short_model", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + } + ] + }, + { + "name": "part", + "columns": [ + { + "name": "attachment_point_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "branded_part_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "item_wear", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "owner_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "parent_part_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "part_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "part_name", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "percent_damage", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "repair_cost", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "scrap_value", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "part_grade", + "columns": [ + { + "name": "e_text", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "f_text", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "g_text", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "part_grade", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "part_grade_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "part_type", + "columns": [ + { + "name": "abstract_part_type_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "part_filename", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "part_grade_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "part_type", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "part_type_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "player", + "columns": [ + { + "name": "address", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "bank_balance", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "body_type", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "car_info_setting", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "car_num1", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "car_num2", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "car_num3", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "car_num4", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "car_num5", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "car_num6", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "cars_lost", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "cars_won", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "challenge_races_completed", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "challenge_races_run", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "challenge_races_won", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "challenge_rung", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "challenge_score", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "current_race_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "customer_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "dl_number", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "drag_class", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "driver_style", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "evaded_fuzz", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "hair_color", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "insurance_rating", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "insurance_risk_points", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "is_logged_in", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "last_logged_in", + "isNullable": true, + "hasDefault": false, + "typeId": 1114, + "typeName": "TIMESTAMP" + }, + { + "name": "lp_code", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "lp_text", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "modified_classic_class", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "modified_muscle_class", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "num_cars_owned", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "num_unread_mail", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "offline_ai_car_bpt_id", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "offline_ai_car_class", + "isNullable": true, + "hasDefault": true, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "offline_ai_skin_id", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "offline_ai_state", + "isNullable": true, + "hasDefault": true, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "offline_driver_attitude", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "offline_driver_skill", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "offline_driver_style", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "offline_grudge", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "offline_reputation", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "outlaw_class", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "pants_color", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "persona", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "pinks_won", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "player_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "player_type_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "residence", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "sanctioned_score", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "shirt_color", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "skin_color", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "stock_classic_class", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "stock_muscle_class", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "times_logged_in", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "total_races_completed", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "total_races_run", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "total_races_won", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "total_time_played", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "total_winnings", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "vehicle_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "player_type", + "columns": [ + { + "name": "player_type", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "player_type_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "profile", + "columns": [ + { + "name": "create_stamp", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "current_key", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "customer_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "dnd", + "isNullable": false, + "hasDefault": true, + "typeId": 16, + "typeName": "BOOL" + }, + { + "name": "game_blob", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "game_purchase_stamp", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "game_serial_number", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "game_start_stamp", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "is_online", + "isNullable": false, + "hasDefault": true, + "typeId": 16, + "typeName": "BOOL" + }, + { + "name": "last_login_stamp", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "number_games", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "personal_blob", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "picture_blob", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "profile_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "profile_level", + "isNullable": false, + "hasDefault": true, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "profile_name", + "isNullable": false, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "server_id", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "shard_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "time_in_game", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "time_online", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "pt_skin", + "columns": [ + { + "name": "b_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "c0", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "c1", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "c2", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "c3", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "c4", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "c5", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "c6", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "c7", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "comment_text", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "creator_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "creator_name", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "default_flag", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "e_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "f_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "g_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "h0", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "h1", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "h2", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "h3", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "h4", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "h5", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "h6", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "h7", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "i_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "j_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "part_filename", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "part_type_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "price", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "s0", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s1", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s2", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s3", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s4", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s5", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s6", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s7", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "s_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "skin_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "skin_type_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "sw_skin", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "v0", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "v1", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "v2", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "v3", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "v4", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "v5", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "v6", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "v7", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x0", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x1", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x2", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x3", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x4", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x5", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x6", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "x7", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y0", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y1", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y2", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y3", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y4", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y5", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y6", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "y7", + "isNullable": true, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + } + ] + }, + { + "name": "skin_type", + "columns": [ + { + "name": "skin_type", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "skin_type_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "stock_assembly", + "columns": [ + { + "name": "attachment_point_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "child_branded_part_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "config_default", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "parent_branded_part_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "physics_default", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + } + ] + }, + { + "name": "stock_vehicle_attributes", + "columns": [ + { + "name": "ai_restriction_class", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "branded_part_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "car_class", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "mode_restriction", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "retail_price", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "sponsor", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "track_id", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "vin_branded_part_id", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "vin_crc", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "sva_car_class", + "columns": [ + { + "name": "description", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "sva_car_class", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "sva_mode_restriction", + "columns": [ + { + "name": "description", + "isNullable": true, + "hasDefault": false, + "typeId": 1043, + "typeName": "VARCHAR" + }, + { + "name": "sva_mode_restriction", + "isNullable": false, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "vehicle", + "columns": [ + { + "name": "class", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "damage_cached", + "isNullable": true, + "hasDefault": true, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "damage_info", + "isNullable": true, + "hasDefault": false, + "typeId": 17, + "typeName": "BYTEA" + }, + { + "name": "flags", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "info_setting", + "isNullable": false, + "hasDefault": false, + "typeId": 21, + "typeName": "SMALLINT" + }, + { + "name": "skin_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "vehicle_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + }, + { + "name": "warehouse", + "columns": [ + { + "name": "branded_part_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "player_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "qty_avail", + "isNullable": true, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + }, + { + "name": "skin_id", + "isNullable": false, + "hasDefault": false, + "typeId": 23, + "typeName": "INTEGER" + } + ] + } +] diff --git a/packages/database/src/__generated__/skin_type.ts b/packages/database/src/__generated__/skin_type.ts new file mode 100644 index 000000000..ccbe22afe --- /dev/null +++ b/packages/database/src/__generated__/skin_type.ts @@ -0,0 +1,21 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: 0Y6j1hEBv9fFPPMUwE+dfDeQCI3GQ8v/xmiDD1EuaveC0FbiFG9tqgrPaJT/fNJzXdD0vwLwA7atS6SbNZ7L+w== + */ + +/* eslint-disable */ +// tslint:disable + +interface SkinType { + skin_type: (string) | null + skin_type_id: number & {readonly __brand?: 'skin_type_skin_type_id'} +} +export default SkinType; + +interface SkinType_InsertParameters { + skin_type?: (string) | null + skin_type_id: number & {readonly __brand?: 'skin_type_skin_type_id'} +} +export type {SkinType_InsertParameters} diff --git a/packages/database/src/__generated__/stock_assembly.ts b/packages/database/src/__generated__/stock_assembly.ts new file mode 100644 index 000000000..7c001c570 --- /dev/null +++ b/packages/database/src/__generated__/stock_assembly.ts @@ -0,0 +1,30 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: +1JxIzPDXtM0DrvWN4w5APwLGqnqNZa4uYMzC+D6iU9tPaBjaz55bapwAFUlmW1kqUgKJt3cCWJFY4sqgl89tA== + */ + +/* eslint-disable */ +// tslint:disable + +import AttachmentPoint from './attachment_point' +import BrandedPart from './branded_part' + +interface StockAssembly { + attachment_point_id: AttachmentPoint['attachment_point_id'] + child_branded_part_id: BrandedPart['branded_part_id'] + config_default: number + parent_branded_part_id: BrandedPart['branded_part_id'] + physics_default: number +} +export default StockAssembly; + +interface StockAssembly_InsertParameters { + attachment_point_id: AttachmentPoint['attachment_point_id'] + child_branded_part_id: BrandedPart['branded_part_id'] + config_default: number + parent_branded_part_id: BrandedPart['branded_part_id'] + physics_default: number +} +export type {StockAssembly_InsertParameters} diff --git a/packages/database/src/__generated__/stock_vehicle_attributes.ts b/packages/database/src/__generated__/stock_vehicle_attributes.ts new file mode 100644 index 000000000..6969f6b30 --- /dev/null +++ b/packages/database/src/__generated__/stock_vehicle_attributes.ts @@ -0,0 +1,57 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: eItxTTFjYW2AtKXc9YEk6zvsf1iP3TDsn/HvjbY3az8itICqa5H5p7WmuRh2uTVPeVHZtIRQ+HnboKRUmqHKdQ== + */ + +/* eslint-disable */ +// tslint:disable + +import BrandedPart from './branded_part' +import SvaCarClass from './sva_car_class' +import SvaModeRestriction from './sva_mode_restriction' + +interface StockVehicleAttributes { + ai_restriction_class: (number) | null + branded_part_id: BrandedPart['branded_part_id'] + car_class: (SvaCarClass['sva_car_class']) | null + mode_restriction: (SvaModeRestriction['sva_mode_restriction']) | null + /** + * @default 1000 + */ + retail_price: (number) | null + sponsor: (number) | null + /** + * @default 0 + */ + track_id: (number) | null + vin_branded_part_id: (BrandedPart['branded_part_id']) | null + /** + * @default 0 + */ + vin_crc: number +} +export default StockVehicleAttributes; + +interface StockVehicleAttributes_InsertParameters { + ai_restriction_class?: (number) | null + branded_part_id: BrandedPart['branded_part_id'] + car_class?: (SvaCarClass['sva_car_class']) | null + mode_restriction?: (SvaModeRestriction['sva_mode_restriction']) | null + /** + * @default 1000 + */ + retail_price?: (number) | null + sponsor?: (number) | null + /** + * @default 0 + */ + track_id?: (number) | null + vin_branded_part_id?: (BrandedPart['branded_part_id']) | null + /** + * @default 0 + */ + vin_crc?: number +} +export type {StockVehicleAttributes_InsertParameters} diff --git a/packages/database/src/__generated__/sva_car_class.ts b/packages/database/src/__generated__/sva_car_class.ts new file mode 100644 index 000000000..967b4246c --- /dev/null +++ b/packages/database/src/__generated__/sva_car_class.ts @@ -0,0 +1,27 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: Suo841IcTQeyyq7L+fPx9Tv+rUka791XOdAslmSWP7UJjw8IVSvTE2kE6aZEgG9TfwG7DaCRvrFrAVQZfHUBrw== + */ + +/* eslint-disable */ +// tslint:disable + +interface SvaCarClass { + description: (string) | null + /** + * @default 0 + */ + sva_car_class: number & {readonly __brand?: 'sva_car_class_sva_car_class'} +} +export default SvaCarClass; + +interface SvaCarClass_InsertParameters { + description?: (string) | null + /** + * @default 0 + */ + sva_car_class?: number & {readonly __brand?: 'sva_car_class_sva_car_class'} +} +export type {SvaCarClass_InsertParameters} diff --git a/packages/database/src/__generated__/sva_mode_restriction.ts b/packages/database/src/__generated__/sva_mode_restriction.ts new file mode 100644 index 000000000..f158d4d60 --- /dev/null +++ b/packages/database/src/__generated__/sva_mode_restriction.ts @@ -0,0 +1,27 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: jbNe73+qP3lZjMsdVB/t++M77bH6cRqj/wn8mV1Js8vMz7z4YSUn0TiJGKXG7LiVujgTHU4JwifPYc/8PFy4QA== + */ + +/* eslint-disable */ +// tslint:disable + +interface SvaModeRestriction { + description: (string) | null + /** + * @default 0 + */ + sva_mode_restriction: number & {readonly __brand?: 'sva_mode_restriction_sva_mode_restriction'} +} +export default SvaModeRestriction; + +interface SvaModeRestriction_InsertParameters { + description?: (string) | null + /** + * @default 0 + */ + sva_mode_restriction?: number & {readonly __brand?: 'sva_mode_restriction_sva_mode_restriction'} +} +export type {SvaModeRestriction_InsertParameters} diff --git a/packages/database/src/__generated__/vehicle.ts b/packages/database/src/__generated__/vehicle.ts new file mode 100644 index 000000000..c799bdec2 --- /dev/null +++ b/packages/database/src/__generated__/vehicle.ts @@ -0,0 +1,40 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: erArmswP79+tT9kT7eo5CKZx8NL8IdmGOJ5mZBGIHWFnMLrwIJ+Sx5QJkgVJZlfPUSMYC4C4qPbsbbFEYSaMdQ== + */ + +/* eslint-disable */ +// tslint:disable + +import Part from './part' +import PtSkin from './pt_skin' + +interface Vehicle { + class: number + /** + * @default 0 + */ + damage_cached: (number) | null + damage_info: (Buffer) | null + flags: number + info_setting: number + skin_id: PtSkin['skin_id'] + vehicle_id: Part['part_id'] +} +export default Vehicle; + +interface Vehicle_InsertParameters { + class: number + /** + * @default 0 + */ + damage_cached?: (number) | null + damage_info?: (Buffer) | null + flags: number + info_setting: number + skin_id: PtSkin['skin_id'] + vehicle_id: Part['part_id'] +} +export type {Vehicle_InsertParameters} diff --git a/packages/database/src/__generated__/warehouse.ts b/packages/database/src/__generated__/warehouse.ts new file mode 100644 index 000000000..487ad514f --- /dev/null +++ b/packages/database/src/__generated__/warehouse.ts @@ -0,0 +1,25 @@ +/** + * !!! This file is autogenerated do not edit by hand !!! + * + * Generated by: @databases/pg-schema-print-types + * Checksum: XrOV3lTPYPS3btYlHuGZ0/mA/Tuj6CmNJE7ni+9dgYOjjKLKyNJG8NxmZ+/PG1R//a6U5DJR+ldmZ47r3E60Nw== + */ + +/* eslint-disable */ +// tslint:disable + +interface Warehouse { + branded_part_id: number & {readonly __brand?: 'warehouse_branded_part_id'} + player_id: number & {readonly __brand?: 'warehouse_player_id'} + qty_avail: (number) | null + skin_id: number & {readonly __brand?: 'warehouse_skin_id'} +} +export default Warehouse; + +interface Warehouse_InsertParameters { + branded_part_id: number & {readonly __brand?: 'warehouse_branded_part_id'} + player_id: number & {readonly __brand?: 'warehouse_player_id'} + qty_avail?: (number) | null + skin_id: number & {readonly __brand?: 'warehouse_skin_id'} +} +export type {Warehouse_InsertParameters} diff --git a/packages/database/src/functions/createNewCar.ts b/packages/database/src/functions/createNewCar.ts new file mode 100644 index 000000000..84a5e907a --- /dev/null +++ b/packages/database/src/functions/createNewCar.ts @@ -0,0 +1,300 @@ +import { eq } from 'drizzle-orm'; +import { getDatabase } from 'rusty-motors-database'; +import { + brandedPart as brandedPartSchema, + part as partSchema, + player as playerSchema, + stockAssembly as stockAssemblySchema, + stockVehicleAttributes as stockVehicleAttributesSchema, + tunables as tunablesSchema, + warehouse as warehouseSchema, +} from 'rusty-motors-schema'; +import { getServerLogger } from 'rusty-motors-shared'; +import { transferPartAssembly } from './transferPartAssembly'; +/** + * Create a new car + * + * This function creates a new car for a player. + * + * The car is created using a branded part, a skin, and a trade-in part. + * The car is added to the player's lot and the trade-in part is removed from the player's lot. + * The player's account is debited for the cost of the car and the trade-in value is added to the player's account. + * The car is removed from the wholesaler's lot. + * The transaction is committed if all operations are successful. + * If any operation fails, the transaction is rolled back and an error is thrown. + * + * @param {number} lotOwnerId + * @param {number} brandedPartId + * @param {number} skinId + * @param {number} playerId + * @param {number} tradeInId + * @returns {Promise} The new car's ID + * @throws {Error} If the lot owner ID is not found + * @throws {Error} If the branded part ID is not found + * @throws {Error} If the skin ID is not found + * @throws {Error} If the player ID is not found + * @throws {Error} If the trade-in ID is not found + * @throws {Error} If the car is out of stock + * @throws {Error} If the trade-in is not owned by the player + * @throws {Error} If the trade-in value cannot be determined + * @throws {Error} If the trade-in lot is not found + * @throws {Error} If the trade-in can not be scrapped + * @throws {Error} If the trade-in value can not be added to the player's account + * @throws {Error} If the trade-in cannot be removed from the player's lot + * @throws {Error} If the player does not have enough money to buy the car + * @throws {Error} If the car cannot be removed from the wholesaler's lot + * @throws {Error} If the car cannot be added to the player's lot + * @throws {Error} If the part cannot be created + * @throws {Error} If the vehicle cannot be created + * @throws {Error} If the player does not have enough room in their lot + * @throws {Error} If the sale cannot be recorded + */ +export async function createNewCar( + lotOwnerId: number, + brandedPartId: number, + skinId: number, + playerId: number, + tradeInId: number +): Promise { + const log = getServerLogger(); + log.setName('createNewCar'); + + log.debug(`Creating new car for player ${playerId}`); + let currentAbstractCarId = 0; + let currentPartId = 0; + let currentParentPartId = 0; + let currentBrandedPartId = 0; + let currentAttachmentPointId = 0; + let currentMaxItemWear = 0; + let currentRetailPrice = 0; + let scrapyardLotId = 0; + let tradeInValue = 0; + let cost = 0; + let rc = 0; + let dealOfTheDayBrandedPartId = 0; + let dealOfTheDayDiscount = 0; + let ownerID = 0; + let retailPrice = 0; + let maxItemWear = 0; + let tradeInPartCount = 0; + let carPartCount = 0; + let currectPartCounter = 0; + let carClass = 0; + + type record = { + partId: number; + parentPartId: number; + brandedPartId: number; + attachmentPointId: number; + abstractPartTypeId: number; + parentAbstractPartTypeId: number; + maxItemWear: number; + retailPrice: number; + }; + + const partRecords: record[] = []; + + const db = getDatabase(); + + const parts = await db + .select() + .from(stockAssemblySchema) + .where(eq(brandedPartSchema.brandedPartId, brandedPartId)); + + if (parts.length === 0) { + throw Error(`Branded part ${brandedPartId} not found`); + } + + await db.transaction(async (tx) => { + log.debug('Transaction started'); + + let tradeInValue = 0; + let scrapyardLotId = 0; + let dealOfTheDayBrandedPartId: number | null = null; + let dealOfTheDayDiscount = 0; + let ownerID = 0; + let retailPrice = 0; + let maxItemWear = 0; + let tradeInPartCount = 0; + let carPartCount = 0; + + dealOfTheDayBrandedPartId = await tx + .select({ + brandedPartId: warehouseSchema.brandedPartId, + }) + .from(warehouseSchema) + .where(eq(warehouseSchema.playerId, lotOwnerId)) + .limit(1) + .then((result) => { + return result[0]?.brandedPartId ?? null; + }); + + if (!dealOfTheDayBrandedPartId) { + log.debug('Deal of the day not found'); + } + + const lotExists: boolean = await tx + .select({ + playerID: warehouseSchema.playerId, + }) + .from(warehouseSchema) + .where(eq(warehouseSchema.playerId, lotOwnerId)) + .limit(1) + .then((result) => { + return !!result[0]; + }); + + if (!lotExists) { + tx.rollback(); + throw new Error(`Lot owner ${lotOwnerId} not found`); + } + + if (tradeInId) { + const validTradeIn = await tx + .select({ + ownerID: partSchema.ownerId, + }) + .from(partSchema) + .where(eq(partSchema.partId, tradeInId)) + .limit(1) + .then((result) => { + return result[0]?.ownerID === playerId; + }); + + if (!validTradeIn) { + tx.rollback(); + throw new Error( + `Trade-in ${tradeInId} not owned by player ${playerId}` + ); + } + + tradeInValue = await tx + .select({ + scrapValue: partSchema.scrapValue, + }) + .from(partSchema) + .where(eq(partSchema.partId, tradeInId)) + .limit(1) + .then((result) => { + return result[0]?.scrapValue ?? 0; + }); + + if (!tradeInValue) { + tx.rollback(); + throw new Error( + `Trade-in value not found for part ${tradeInId}` + ); + } + + const scrapyardLotFound = await tx + .select({ + playerID: warehouseSchema.playerId, + }) + .from(warehouseSchema) + .where(eq(warehouseSchema.playerId, scrapyardLotId)) + .then((result) => { + return !!result[0]; + }); + + if (!scrapyardLotFound) { + tx.rollback(); + throw new Error(`Scrapyard lot ${scrapyardLotId} not found`); + } + + try { + const resultOfScrap = await transferPartAssembly( + tradeInId, + scrapyardLotId + ); + } catch (error) { + log.error(`Error scrapping trade-in ${tradeInId}: ${error}`); + tx.rollback(); + throw error; + } + + // Get the owner + + const newOwner = await tx + .select() + .from(playerSchema) + .where(eq(playerSchema.playerId, playerId)) + .limit(1) + .then((result) => { + return result[0]; + }); + + if (!newOwner) { + log.error(`Player ${playerId} not found`); + tx.rollback(); + throw new Error(`Player ${playerId} not found`); + } + + const oldBankBalance = newOwner.bankBalance; + + if (oldBankBalance === null) { + log.error(`Error getting bank balance for player ${playerId}`); + tx.rollback(); + throw new Error( + `Error getting bank balance for player ${playerId}` + ); + } + + if (tradeInValue > 0) { + const newbankBalance = oldBankBalance + tradeInValue; + try { + await tx + .update(playerSchema) + .set({ + bankBalance: newbankBalance, + }) + .where(eq(playerSchema.playerId, playerId)); + } catch (error) { + log.error( + `Error adding trade-in value to player ${playerId}: ${error}` + ); + tx.rollback(); + throw new Error( + `Error adding trade-in value to player ${playerId}: ${error}` + ); + } + } + + // Old car trade-in complete + } + + const result = await tx + .select({ + carClass: stockVehicleAttributesSchema.carClass, + retailPrice: stockVehicleAttributesSchema.retailPrice, + }) + .from(stockVehicleAttributesSchema) + .where( + eq(stockVehicleAttributesSchema.brandedPartId, brandedPartId) + ) + .limit(1); + + if (typeof result[0] === 'undefined') { + tx.rollback(); + throw new Error(`Car ${brandedPartId} out of stock`); + } + + carClass = result[0].carClass; + retailPrice = result[0].retailPrice; + + if (dealOfTheDayBrandedPartId === brandedPartId) { + dealOfTheDayDiscount = await tx + .select({ + discount: tunablesSchema.dealOfTheDayDiscount, + }) + .from(tunablesSchema) + .limit(1) + .then((result) => { + return result[0]?.discount ?? 0; + }); + } + + log.debug('Transaction committed'); + }); + log.resetName(); + return Promise.resolve(0); +} diff --git a/packages/database/src/functions/getAbstractPartTypeId.ts b/packages/database/src/functions/getAbstractPartTypeId.ts new file mode 100644 index 000000000..730a07d95 --- /dev/null +++ b/packages/database/src/functions/getAbstractPartTypeId.ts @@ -0,0 +1,53 @@ +import { eq } from 'drizzle-orm'; +import { getDatabase } from 'rusty-motors-database'; +import { + brandedPart as brandedPartSchema, + part as partSchema, + partType as partTypeSchema, +} from 'rusty-motors-schema'; +import { getServerLogger } from 'rusty-motors-shared'; + +/** + * Get the abstract part type id from the partId + * + * @param partId The part id + * @returns The abstract part type id + * @throws {Error} If the part ID is not found + * @throws {Error} If the abstract part type ID is not found + */ +export async function getAbstractPartTypeId(partId: number): Promise { + const log = getServerLogger(); + log.setName('getAbstractPartTypeId'); + + log.debug(`Getting abstract part type ID for part ${partId}`); + + const db = getDatabase(); + + const abstractPartTypeId = await db + .select() + .from(partSchema) + .leftJoin( + brandedPartSchema, + eq(partSchema.brandedPartId, brandedPartSchema.brandedPartId) + ) + .leftJoin( + partTypeSchema, + eq(brandedPartSchema.partTypeId, partTypeSchema.partTypeId) + ) + .where(eq(partSchema.partId, partId)) + .limit(1) + .then((rows) => { + if (rows.length === 0) { + throw new Error(`Part ${partId} not found`); + } + + return rows[0]?.part_type?.abstractPartTypeId; + }); + + if (typeof abstractPartTypeId === 'undefined') { + log.error(`Abstract part type ID not found for part ${partId}`); + throw new Error(`Abstract part type ID not found for part ${partId}`); + } + + return abstractPartTypeId; +} diff --git a/packages/database/src/functions/getWarehouseInventory.ts b/packages/database/src/functions/getWarehouseInventory.ts new file mode 100644 index 000000000..566989f49 --- /dev/null +++ b/packages/database/src/functions/getWarehouseInventory.ts @@ -0,0 +1,73 @@ +import { db, WarehouseSchema, getTuneables, sql } from 'rusty-motors-database'; +import { getServerLogger } from 'rusty-motors-shared'; + +export type WarehouseInventory = { + inventory: { + brandedPartId: number; + retailPrice: number | null; + isDealOfTheDay: number; + }[]; + dealOfTheDayDiscount: number; +}; + +export async function getWarehouseInventory( + warehouseId: number, + brandId: number +): Promise { + const log = getServerLogger(); + log.setName('getWarehouseInventory'); + + log.debug( + `Getting warehouse inventory for part ${brandId} in warehouse ${warehouseId}` + ); + + let inventoryCars: { + brandedPartId: number; + retailPrice: number | null; + isDealOfTheDay: number; + }[] = []; + + const tunables = getTuneables(); + + const dealOfTheDayDiscount = tunables.getDealOfTheDayDiscount(); + const dealOfTheDayBrandedPartId = tunables.getDealOfTheDayBrandedPartId(); + + + if (dealOfTheDayDiscount < 1) { + log.warn('Deal of the day not found'); + } + + if (brandId > 0) { + inventoryCars = await db.query(sql` + SELECT + brandedPartId: warehouseSchema.brandedPartId, + retailPrice: stockVehicleAttributesSchema.retailPrice, + isDealOfTheDay: warehouseSchema.isDealOfTheDay, + FROM warehouse w + LEFT JOIN branded_part bp ON w.brandedPartId = bp.brandedPartId + LEFT JOIN model m ON bp.modelId = m.modelId + LEFT JOIN stock_vehicle_attributes sva ON w.brandedPartId = sva.brandedPartId + WHERE w.playerId = ${warehouseId} AND m.brandId = ${brandId} + `); + } else { + inventoryCars = await db.query(sql` + SELECT + brandedPartId: warehouseSchema.brandedPartId, + retailPrice: stockVehicleAttributesSchema.retailPrice, + isDealOfTheDay: warehouseSchema.isDealOfTheDay, + FROM warehouse w + LEFT JOIN branded_part bp ON w.brandedPartId = bp.brandedPartId + LEFT JOIN model m ON bp.modelId = m.modelId + LEFT JOIN stock_vehicle_attributes sva ON w.brandedPartId = sva.brandedPartId + WHERE w.playerId = ${warehouseId} + `); + } + + const inventory = { + inventory: inventoryCars, + dealOfTheDayDiscount: dealOfTheDayDiscount ?? 0, + }; + + log.resetName(); + return inventory; +} diff --git a/packages/database/src/functions/transferPartAssembly.ts b/packages/database/src/functions/transferPartAssembly.ts new file mode 100644 index 000000000..85e7cd1b0 --- /dev/null +++ b/packages/database/src/functions/transferPartAssembly.ts @@ -0,0 +1,162 @@ +import { eq } from 'drizzle-orm'; +import { getDatabase } from 'rusty-motors-database'; +import { + part as partSchema, + player as playerSchema, + vehicle as vehicleSchema, +} from 'rusty-motors-schema'; +import { getServerLogger } from 'rusty-motors-shared'; +import { getAbstractPartTypeId } from './getAbstractPartTypeId'; + +const ABSTRACT_PART_TYPE_ID_CAR = 101; + +/** + * Transfer a part assembly + * + * This function transfers a part assembly from one owner to another, including all child parts. + * + * This function does NOT use a transaction. + * + * @param {number} partId + * @param {number} newOwnerId + * + * @returns {Promise} + * @throws {Error} If the part ID is not found + * @throws {Error} If the new owner ID is not found + * @throws {Error} If the part cannot be transferred + */ +export async function transferPartAssembly( + partId: number, + newOwnerId: number +): Promise { + const log = getServerLogger(); + const db = getDatabase(); + log.setName('transferPartAssembly'); + + log.debug( + `Transferring part assembly ${partId} to new owner ${newOwnerId}` + ); + + const topPart = await db + .select() + .from(partSchema) + .where(eq(partSchema.partId, partId)) + .limit(1) + .then((rows) => rows[0]); + + if (typeof topPart === 'undefined') { + log.error(`Part ${partId} not found`); + throw new Error(`Part ${partId} not found`); + } + + if (topPart.ownerId === null) { + log.error(`Part ${partId} has no owner`); + throw new Error(`Part ${partId} has no owner`); + } + + if (topPart.ownerId === newOwnerId) { + log.error(`Part ${partId} is already owned by ${newOwnerId}`); + throw new Error(`Part ${partId} is already owned by ${newOwnerId}`); + } + + const newOwnerExists = await db + .select() + .from(playerSchema) + .where(eq(playerSchema.playerId, newOwnerId)) + .limit(1) + .then((rows) => rows[0] !== undefined); + + if (!newOwnerExists) { + log.error(`Owner ${newOwnerId} not found`); + throw new Error(`Owner ${newOwnerId} not found`); + } + + const children = await db + .select() + .from(partSchema) + .where(eq(partSchema.parentPartId, partId)) + .then((rows) => rows); + + if (children.length === 0) { + log.error(`Part ${partId} has no children`); + throw new Error(`Part ${partId} has no children`); + } + + try { + // If the part is a car, update the owner ID in the vehicle table + const isPartACar = await getAbstractPartTypeId( + topPart.brandedPartId + ).then( + (abstractPartTypeId) => + abstractPartTypeId === ABSTRACT_PART_TYPE_ID_CAR + ); + + if (isPartACar) { + const car = await db + .select() + .from(vehicleSchema) + .where(eq(vehicleSchema.vehicleId, partId)) + .limit(1) + .then((rows) => rows[0]); + + if (typeof car === 'undefined') { + log.error(`Vehicle ${partId} not found`); + throw Error(`Vehicle ${partId} not found`); + } + + // Remove the vehicle from the old owner's lot + const oldOwner = await db + .select() + .from(playerSchema) + .where(eq(playerSchema.playerId, topPart.ownerId)) + .limit(1) + .then((rows) => rows[0]); + + if (typeof oldOwner === 'undefined') { + log.error(`Owner ${topPart.ownerId} not found`); + throw Error(`Owner ${topPart.ownerId} not found`); + } + + if (oldOwner.numCarsOwned > 0) { + oldOwner.numCarsOwned--; + try { + await db + .update(playerSchema) + .set(oldOwner) + .where(eq(playerSchema.playerId, topPart.ownerId)); + } catch (error) { + log.error( + `Error updating old owner ${topPart.ownerId}: ${String( + error + )}` + ); + throw new Error( + `Error updating old owner ${topPart.ownerId}: ${String( + error + )}` + ); + } + } else { + log.error(`Owner ${topPart.ownerId} has no cars`); + throw Error(`Owner ${topPart.ownerId} has no cars`); + } + } + + // Transfer the children + + for (const child of children) { + await transferPartAssembly(child.partId, newOwnerId); + } + + // Update the parent part's owner ID + await db + .update(partSchema) + .set({ ownerId: newOwnerId }) + .where(eq(partSchema.partId, partId)); + } catch (error) { + log.error(`Error transferring part ${partId}: ${String(error)}`); + throw new Error(`Error transferring part ${partId}: ${String(error)}`); + } + + log.debug(`Part assembly ${partId} transferred to new owner ${newOwnerId}`); +} diff --git a/packages/database/src/models/Lobby.ts b/packages/database/src/models/Lobby.ts deleted file mode 100644 index 91108253f..000000000 --- a/packages/database/src/models/Lobby.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { ServerError } from "../../../shared/errors/ServerError.js"; -import { SerializedBuffer } from "../../../shared/messageFactory.js"; - -export class LobbyModel extends SerializedBuffer { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - deserialize(_inputBuffer: Buffer): LobbyModel { - throw new ServerError("Method not implemented."); - } - override serialize(): Buffer { - throw new ServerError("Method not implemented."); - } - serializeSize(): number { - throw new ServerError("Method not implemented."); - } - static schema = `CREATE TABLE IF NOT EXISTS "lobbies" - ( - "lobyID" integer NOT NULL, - "raceTypeID" integer NOT NULL, - "turfID" integer NOT NULL, - "riffName" character(32) NOT NULL, - "eTerfName" character(265) NOT NULL, - "clientArt" character(11) NOT NULL, - "elementID" integer NOT NULL, - "terfLength" integer NOT NULL, - "startSlice" integer NOT NULL, - "endSlice" integer NOT NULL, - "dragStageLeft" integer NOT NULL, - "dragStageRight" integer NOT NULL, - "dragStagingSlice" integer NOT NULL, - "gridSpreadFactor" real NOT NULL, - "linear" smallint NOT NULL, - "numPlayersMin" smallint NOT NULL, - "numPlayersMax" smallint NOT NULL, - "numPlayersDefault" smallint NOT NULL, - "bnumPlayersEnable" smallint NOT NULL, - "numLapsMin" smallint NOT NULL, - "numLapsMax" smallint NOT NULL, - "numLapsDefault" smallint NOT NULL, - "bnumLapsEnabled" smallint NOT NULL, - "numRoundsMin" smallint NOT NULL, - "numRoundsMax" smallint NOT NULL, - "numRoundsDefault" smallint NOT NULL, - "bnumRoundsEnabled" smallint NOT NULL, - "bWeatherDefault" smallint NOT NULL, - "bWeatherEnabled" smallint NOT NULL, - "bNightDefault" smallint NOT NULL, - "bNightEnabled" smallint NOT NULL, - "bBackwardDefault" smallint NOT NULL, - "bBackwardEnabled" smallint NOT NULL, - "bTrafficDefault" smallint NOT NULL, - "bTrafficEnabled" smallint NOT NULL, - "bDamageDefault" smallint NOT NULL, - "bDamageEnabled" smallint NOT NULL, - "bAIDefault" smallint NOT NULL, - "bAIEnabled" smallint NOT NULL, - "topDog" character(13) NOT NULL, - "terfOwner" character(33) NOT NULL, - "qualifingTime" integer NOT NULL, - "clubNumPlayers" integer NOT NULL, - "clubNumLaps" integer NOT NULL, - "clubNumRounds" integer NOT NULL, - "bClubNight" smallint NOT NULL, - "bClubWeather" smallint NOT NULL, - "bClubBackwards" smallint NOT NULL, - "topSeedsMP" integer NOT NULL, - "lobbyDifficulty" integer NOT NULL, - "ttPointForQualify" integer NOT NULL, - "ttCashForQualify" integer NOT NULL, - "ttPointBonusFasterIncs" integer NOT NULL, - "ttCashBonusFasterIncs" integer NOT NULL, - "ttTimeIncrements" integer NOT NULL, - "victoryPoints1" integer NOT NULL, - "victoryCash1" integer NOT NULL, - "victoryPoints2" integer NOT NULL, - "victoryCash2" integer NOT NULL, - "victoryPoints3" integer NOT NULL, - "victoryCash3" integer NOT NULL, - "minLevel" smallint NOT NULL, - "minResetSlice" integer NOT NULL, - "maxResetSlice" integer NOT NULL, - "bnewbieFlag" smallint NOT NULL, - "bdriverHelmetFlag" smallint NOT NULL, - "clubNumPlayersMax" smallint NOT NULL, - "clubNumPlayersMin" smallint NOT NULL, - "clubNumPlayersDefault" smallint NOT NULL, - "numClubsMax" smallint NOT NULL, - "numClubsMin" smallint NOT NULL, - "racePointsFactor" real NOT NULL, - "bodyClassMax" smallint NOT NULL, - "powerClassMax" smallint NOT NULL, - "clubLogoID" integer NOT NULL, - "teamtWeather" smallint NOT NULL, - "teamtNight" smallint NOT NULL, - "teamtBackwards" smallint NOT NULL, - "teamtNumLaps" smallint NOT NULL, - "raceCashFactor" real NOT NULL - );`; -} diff --git a/packages/database/src/models/Player.ts b/packages/database/src/models/Player.ts deleted file mode 100644 index 04fab0e04..000000000 --- a/packages/database/src/models/Player.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { ServerError } from "../../../shared/errors/ServerError.js"; -import { SerializedBuffer } from "../../../shared/messageFactory.js"; - -export class PlayerModel extends SerializedBuffer { - override serialize(): Buffer { - throw new ServerError("Method not implemented."); - } - serializeSize(): number { - throw new ServerError("Method not implemented."); - } - - static schema = `CREATE TABLE Player ( - PlayerID int NOT NULL, - CustomerID int NOT NULL, - PlayerTypeID int NOT NULL, - StockClassicClass char NOT NULL, - StockMuscleClass char NOT NULL, - ModifiedClassicClass char NOT NULL, - ModifiedMuscleClass char NOT NULL, - OutlawClass char NOT NULL, - DragClass char NOT NULL, - ChallengeScore int NOT NULL, - ChallengeRung int NOT NULL, - LastLoggedIn datetime NOT NULL, - TotalTimePlayed datetime NOT NULL, - TimesLoggedIn smallint NOT NULL, - NumUnreadMail smallint NOT NULL, - BankBalance int NOT NULL, - NumCarsOwned smallint NOT NULL, - IsLoggedIn tinyint NOT NULL, - DriverStyle tinyint NOT NULL, - LPCode smallint NOT NULL, - CarInfoSetting int NOT NULL, - CarNum1 varchar(2) NOT NULL, - CarNum2 varchar(2) NOT NULL, - CarNum3 varchar(2) NOT NULL, - CarNum4 varchar(2) NOT NULL, - CarNum5 varchar(2) NOT NULL, - CarNum6 varchar(2) NOT NULL, - LPText varchar(8) NOT NULL, - DLNumber varchar(20) NOT NULL, - Persona varchar(30) NOT NULL, - Address varchar(128) NOT NULL, - Residence varchar(20) NOT NULL -);`; -} diff --git a/packages/database/src/models/Session.ts b/packages/database/src/models/Session.ts deleted file mode 100644 index 617f43bcb..000000000 --- a/packages/database/src/models/Session.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * @global - * @typedef {object} Session - * @property {number} customer_id - * @property {string} sessionkey - * @property {string} skey - * @property {string} context_id - * @property {string} connection_id - */ -export default {}; diff --git a/packages/database/src/seeders/index.ts b/packages/database/src/seeders/index.ts new file mode 100644 index 000000000..631c9761d --- /dev/null +++ b/packages/database/src/seeders/index.ts @@ -0,0 +1,198 @@ +const playerCsvHeader = [ + "player_id", + "customer_id", + "player_type_id", + "sanctioned_score", + "challenge_score", + "last_logged_in", + "times_logged_in", + "bank_balance", + "num_cars_owned", + "is_logged_in", + "driver_style", + "lp_code", + "lp_text", + "car_num_1", + "car_num_2", + "car_num_3", + "car_num_4", + "car_num_5", + "car_num_6", + "dl_number", + "persona", + "address", + "residence", + "vehicle_id", + "current_race_id", + "offline_driver_skill", + "offline_grudge", + "offline_reputation", + "total_time_played", + "car_info_setting", + "stock_classic_class", + "stock_muscle_class", + "modified_classic_class", + "modified_muscle_class", + "outlaw_class", + "drag_class", + "challenge_rung", + "offline_ai_car_class", + "offline_ai_skin_id", + "offline_ai_car_bpt_id", + "offline_ai_state", + "bodytype", + "skin_color", + "hair_color", + "shirt_color", + "pants_color", + "offline_driver_style", + "offline_driver_attitude", + "evaded_fuzz", + "pinks_won", + "num_unread_mail", + "total_races_run", + "total_races_won", + "total_races_completed", + "total_winnings", + "insurance_risk_points", + "insurance_rating", + "challenge_races_run", + "challenge_races_won", + "challenge_races_completed", + "cars_lost", + "cars_won", +]; + +const playerCsvRow = [ + [ + 6, + 0, + 1, + 0, + 0, + new Date(0), + 0, + 999999, + 0, + 0, + 0, + 0, + null, + 0, + 0, + 0, + 0, + 0, + 0, + "xxx", + "All Factory Ford", + "1240 A Street", + "ABCDEFGHIJKLMNOPQRST", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + ], +]; + +export function csvRowToPlayer(row: (string | number | Date | null)[]): typeof playerSchema.$inferSelect { + return { + playerId: row[0] as number, + customerId: row[1] as number, + playerTypeId: row[2] as number, + sanctionedScore: row[3] as number, + challengeScore: row[4] as number, + lastLoggedIn: row[5] as Date, + timesLoggedIn: row[6] as number, + bankBalance: row[7] as number, + numCarsOwned: row[8] as number, + isLoggedIn: row[9] as number, + driverStyle: row[10] as number, + lpCode: row[11] as number, + lpText: row[12] as string | null, + carNum1: row[13] as string, + carNum2: row[14] as string, + carNum3: row[15] as string, + carNum4: row[16] as string, + carNum5: row[17] as string, + carNum6: row[18] as string, + dlNumber: row[19] as string, + persona: row[20] as string, + address: row[21] as string, + residence: row[22] as string, + vehicleId: row[23] as number | null, + currentRaceId: row[24] as number | null, + offlineDriverSkill: row[25] as number | null, + offlineGrudge: row[26] as number | null, + offlineReputation: row[27] as number | null, + totalTimePlayed: row[28] as number | null, + carInfoSetting: row[29] as number | null, + stockClassicClass: row[30] as number | null, + stockMuscleClass: row[31] as number | null, + modifiedClassicClass: row[32] as number | null, + modifiedMuscleClass: row[33] as number | null, + outlawClass: row[34] as number | null, + dragClass: row[35] as number | null, + challengeRung: row[36] as number | null, + offlineAiCarClass: row[37] as number | null, + offlineAiSkinId: row[38] as number | null, + offlineAiCarBptId: row[39] as number | null, + offlineAiState: row[40] as number | null, + bodytype: row[41] as number | null, + skinColor: row[42] as number | null, + hairColor: row[43] as number | null, + shirtColor: row[44] as number | null, + pantsColor: row[45] as number | null, + offlineDriverStyle: row[46] as number | null, + offlineDriverAttitude: row[47] as number | null, + evadedFuzz: row[48] as number | null, + pinksWon: row[49] as number | null, + numUnreadMail: row[50] as number | null, + totalRacesRun: row[51] as number | null, + totalRacesWon: row[52] as number | null, + totalRacesCompleted: row[53] as number | null, + totalWinnings: row[54] as number | null, + insuranceRiskPoints: row[55] as number | null, + insuranceRating: row[56] as number | null, + challengeRacesRun: row[57] as number | null, + challengeRacesWon: row[58] as number | null, + challengeRacesCompleted: row[59] as number | null, + carsLost: row[60] as number | null, + carsWon: row[61] as number | null, + }; +} + +for (const row of playerCsvRow) { + if (row.length !== playerCsvHeader.length) { + throw new Error(`Row length does not match header length: got ${row.length}, expected ${playerCsvHeader.length}`); + } + + const player = [csvRowToPlayer(row.map((value, index) => { + if (typeof value === "undefined") { + throw new Error(`Undefined value at index ${playerCsvHeader[index]}`); + } + + return value; + }))]; +} diff --git a/packages/database/src/services/database.ts b/packages/database/src/services/database.ts new file mode 100644 index 000000000..880610fda --- /dev/null +++ b/packages/database/src/services/database.ts @@ -0,0 +1,36 @@ +import createConnectionPool, { sql } from '@databases/pg'; +import tables from '@databases/pg-typed'; +import type DatabaseSchema from '../__generated__/index.js'; +const DatabaseSchema = await import('../__generated__/schema.json'); + +export { sql }; + +export const db = createConnectionPool(); + +// You can list whatever tables you actually have here: +export const { + abstract_part_type: AbstractPartTypeSchema, + attachment_point: AttachmentPointSchema, + brand: BrandSchema, + branded_part: BrandedPartSchema, + driver_class: DriverClassSchema, + model: ModelSchema, + part: PartSchema, + part_grade: PartGradeSchema, + part_type: PartTypeSchema, + player: PlayerSchema, + player_type: PlayerTypeSchema, + pt_skin: PlayerTypeSkinSchema, + skin_type: SkinTypeSchema, + stock_assembly: StockAssemblySchema, + stock_vehicle_attributes: StockVehicleAttributesSchema, + sva_car_class: StockVehicleAttributesCarClassSchema, + sva_mode_restriction: StockVehicleAttributesModeRestrictionSchema, + vehicle: VehicleSchema, + warehouse: WarehouseSchema, + login: LoginSchema, + profile: ProfileSchema, +} = tables({ + databaseSchema: DatabaseSchema.default, +}); +export type { DatabaseSchema }; diff --git a/packages/database/src/services/tunables.ts b/packages/database/src/services/tunables.ts new file mode 100644 index 000000000..088eac8af --- /dev/null +++ b/packages/database/src/services/tunables.ts @@ -0,0 +1,578 @@ +class Tunables { + private static instance: Tunables; + private clubCreationFee: number; + private clubCreationMinimumLevel: number; + private clubOfficerMinimumLevel: number; + private racePPDefeatedOpponent: number; + private racePPPlaceLost: number; + private racePenaltyPerRank: number; + private raceBonusPerRank: number; + private raceBonusPerMileSponsored: number; + private raceBonusPerMileOpen: number; + private levelsTunelog: number; + private levelsSlope: number; + private levelsOffset: number; + private maxEZStreetLevel: number; + private clubWaitPeriodBetweenClubs: number; + private turfwarCaptionBonus: number; + private turfwarMemberBonus: number; + private topDogBonus: number; + private rankAdvancementBonus: number; + private ttCashRewardFirst: number; + private ttCashRewardSecond: number; + private ttCashRewardThird: number; + private ttPointsRewardFirst: number; + private ttPointsRewardSecond: number; + private ttPointsRewardThird: number; + private universalRepairCostModifier: number; + private universalScrapValueModifier: number; + private adCost1Day: number; + private adCost2Days: number; + private adCost3Days: number; + private adCost4Days: number; + private adCost5Days: number; + private adCost6Days: number; + private adCost7Days: number; + private tradeInModifier: number; + private simStreetMaxWager: number; + private pointAward1stPlace: number; + private pointAward2ndPlace: number; + private pointAward3rdPlace: number; + private pointAward4thPlace: number; + private pointAward5thPlace: number; + private pointAward6thPlace: number; + private arcadeRacePointModifier: number; + private mcotsPoolingFrequency: number; + private starterCash: number; + private enableCheatEmails: number; + private salaryPerLevel: number; + private clubMaxMembers: number; + private clubRegistrationFee: number; + private clubReRegistrationFee: number; + private classifiedAdBillRate: number; + private classifiedAdMaxDays: number; + private classifiedAdMaxSize: number; + private papAwardPercentage: number; + private dealOfTheDayBrandedPartId: number; + private dealOfTheDayDiscount: number; + + private constructor() { + this.clubCreationFee = 5000; + this.clubCreationMinimumLevel = 10; + this.clubOfficerMinimumLevel = 10; + this.racePPDefeatedOpponent = 5; + this.racePPPlaceLost = 1; + this.racePenaltyPerRank = 5; + this.raceBonusPerRank = 5; + this.raceBonusPerMileSponsored = 1; + this.raceBonusPerMileOpen = 1; + this.levelsTunelog = 100; + this.levelsSlope = 1; + this.levelsOffset = 0; + this.maxEZStreetLevel = 100; + this.clubWaitPeriodBetweenClubs = 7; + this.turfwarCaptionBonus = 500; + this.turfwarMemberBonus = 100; + this.topDogBonus = 1000; + this.rankAdvancementBonus = 100; + this.ttCashRewardFirst = 1000; + this.ttCashRewardSecond = 500; + this.ttCashRewardThird = 250; + this.ttPointsRewardFirst = 100; + this.ttPointsRewardSecond = 50; + this.ttPointsRewardThird = 25; + this.universalRepairCostModifier = 100; + this.universalScrapValueModifier = 100; + this.adCost1Day = 100; + this.adCost2Days = 200; + this.adCost3Days = 300; + this.adCost4Days = 400; + this.adCost5Days = 500; + this.adCost6Days = 600; + this.adCost7Days = 700; + this.tradeInModifier = 100; + this.simStreetMaxWager = 100; + this.pointAward1stPlace = 100; + this.pointAward2ndPlace = 75; + this.pointAward3rdPlace = 50; + this.pointAward4thPlace = 25; + this.pointAward5thPlace = 10; + this.pointAward6thPlace = 5; + this.arcadeRacePointModifier = 100; + this.mcotsPoolingFrequency = 100; + this.starterCash = 1000; + this.enableCheatEmails = 1; + this.salaryPerLevel = 100; + this.clubMaxMembers = 10; + this.clubRegistrationFee = 1000; + this.clubReRegistrationFee = 500; + this.classifiedAdBillRate = 100; + this.classifiedAdMaxDays = 7; + this.classifiedAdMaxSize = 100; + this.papAwardPercentage = 10; + this.dealOfTheDayBrandedPartId = 0; + this.dealOfTheDayDiscount = 0; + } + + public static getInstance(): Tunables { + if (!Tunables.instance) { + Tunables.instance = new Tunables(); + } + + return Tunables.instance; + } + + public getClubCreationFee(): number { + return this.clubCreationFee; + } + + public getClubCreationMinimumLevel(): number { + return this.clubCreationMinimumLevel; + } + + public getClubOfficerMinimumLevel(): number { + return this.clubOfficerMinimumLevel; + } + + public getRacePPDefeatedOpponent(): number { + return this.racePPDefeatedOpponent; + } + + public getRacePPPlaceLost(): number { + return this.racePPPlaceLost; + } + + public getRacePenaltyPerRank(): number { + return this.racePenaltyPerRank; + } + + public getRaceBonusPerRank(): number { + return this.raceBonusPerRank; + } + + public getRaceBonusPerMileSponsored(): number { + return this.raceBonusPerMileSponsored; + } + + public getRaceBonusPerMileOpen(): number { + return this.raceBonusPerMileOpen; + } + + public getLevelsTunelog(): number { + return this.levelsTunelog; + } + + public getLevelsSlope(): number { + return this.levelsSlope; + } + + public getLevelsOffset(): number { + return this.levelsOffset; + } + + public getMaxEZStreetLevel(): number { + return this.maxEZStreetLevel; + } + + public getClubWaitPeriodBetweenClubs(): number { + return this.clubWaitPeriodBetweenClubs; + } + + public getTurfwarCaptionBonus(): number { + return this.turfwarCaptionBonus; + } + + public getTurfwarMemberBonus(): number { + return this.turfwarMemberBonus; + } + + public getTopDogBonus(): number { + return this.topDogBonus; + } + + public getRankAdvancementBonus(): number { + return this.rankAdvancementBonus; + } + + public getTtCashRewardFirst(): number { + return this.ttCashRewardFirst; + } + + public getTtCashRewardSecond(): number { + return this.ttCashRewardSecond; + } + + public getTtCashRewardThird(): number { + return this.ttCashRewardThird; + } + + public getTtPointsRewardFirst(): number { + return this.ttPointsRewardFirst; + } + + public getTtPointsRewardSecond(): number { + return this.ttPointsRewardSecond; + } + + public getTtPointsRewardThird(): number { + return this.ttPointsRewardThird; + } + + public getUniversalRepairCostModifier(): number { + return this.universalRepairCostModifier; + } + + public getUniversalScrapValueModifier(): number { + return this.universalScrapValueModifier; + } + + public getAdCost1Day(): number { + return this.adCost1Day; + } + + public getAdCost2Days(): number { + return this.adCost2Days; + } + + public getAdCost3Days(): number { + return this.adCost3Days; + } + + public getAdCost4Days(): number { + return this.adCost4Days; + } + + public getAdCost5Days(): number { + return this.adCost5Days; + } + + public getAdCost6Days(): number { + return this.adCost6Days; + } + + public getAdCost7Days(): number { + return this.adCost7Days; + } + + public getTradeInModifier(): number { + return this.tradeInModifier; + } + + public getSimStreetMaxWager(): number { + return this.simStreetMaxWager; + } + + public getPointAward1stPlace(): number { + return this.pointAward1stPlace; + } + + public getPointAward2ndPlace(): number { + return this.pointAward2ndPlace; + } + + public getPointAward3rdPlace(): number { + return this.pointAward3rdPlace; + } + + public getPointAward4thPlace(): number { + return this.pointAward4thPlace; + } + + public getPointAward5thPlace(): number { + return this.pointAward5thPlace; + } + + public getPointAward6thPlace(): number { + return this.pointAward6thPlace; + } + + public getArcadeRacePointModifier(): number { + return this.arcadeRacePointModifier; + } + + public getMcotsPoolingFrequency(): number { + return this.mcotsPoolingFrequency; + } + + public getStarterCash(): number { + return this.starterCash; + } + + public getEnableCheatEmails(): number { + return this.enableCheatEmails; + } + + public getSalaryPerLevel(): number { + return this.salaryPerLevel; + } + + public getClubMaxMembers(): number { + return this.clubMaxMembers; + } + + public getClubRegistrationFee(): number { + return this.clubRegistrationFee; + } + + public getClubReRegistrationFee(): number { + return this.clubReRegistrationFee; + } + + public getClassifiedAdBillRate(): number { + return this.classifiedAdBillRate; + } + + public getClassifiedAdMaxDays(): number { + return this.classifiedAdMaxDays; + } + + public getClassifiedAdMaxSize(): number { + return this.classifiedAdMaxSize; + } + + public getPapAwardPercentage(): number { + return this.papAwardPercentage; + } + + public getDealOfTheDayBrandedPartId(): number { + return this.dealOfTheDayBrandedPartId; + } + + public getDealOfTheDayDiscount(): number { + return this.dealOfTheDayDiscount; + } + + public setClubCreationFee(clubCreationFee: number): void { + this.clubCreationFee = clubCreationFee; + } + + public setClubCreationMinimumLevel(clubCreationMinimumLevel: number): void { + this.clubCreationMinimumLevel = clubCreationMinimumLevel; + } + + public setClubOfficerMinimumLevel(clubOfficerMinimumLevel: number): void { + this.clubOfficerMinimumLevel = clubOfficerMinimumLevel; + } + + public setRacePPDefeatedOpponent(racePPDefeatedOpponent: number): void { + this.racePPDefeatedOpponent = racePPDefeatedOpponent; + } + + public setRacePPPlaceLost(racePPPlaceLost: number): void { + this.racePPPlaceLost = racePPPlaceLost; + } + + public setRacePenaltyPerRank(racePenaltyPerRank: number): void { + this.racePenaltyPerRank = racePenaltyPerRank; + } + + public setRaceBonusPerRank(raceBonusPerRank: number): void { + this; + } + + public setRaceBonusPerMileSponsored( + raceBonusPerMileSponsored: number + ): void { + this.raceBonusPerMileSponsored = raceBonusPerMileSponsored; + } + + public setRaceBonusPerMileOpen(raceBonusPerMileOpen: number): void { + this.raceBonusPerMileOpen = raceBonusPerMileOpen; + } + + public setLevelsTunelog(levelsTunelog: number): void { + this.levelsTunelog = levelsTunelog; + } + + public setLevelsSlope(levelsSlope: number): void { + this.levelsSlope = levelsSlope; + } + + public setLevelsOffset(levelsOffset: number): void { + this.levelsOffset = levelsOffset; + } + + public setMaxEZStreetLevel(maxEZStreetLevel: number): void { + this.maxEZStreetLevel = maxEZStreetLevel; + } + + public setClubWaitPeriodBetweenClubs( + clubWaitPeriodBetweenClubs: number + ): void { + this.clubWaitPeriodBetweenClubs = clubWaitPeriodBetweenClubs; + } + + public setTurfwarCaptionBonus(turfwarCaptionBonus: number): void { + this.turfwarCaptionBonus = turfwarCaptionBonus; + } + + public setTurfwarMemberBonus(turfwarMemberBonus: number): void { + this.turfwarMemberBonus = turfwarMemberBonus; + } + + public setTopDogBonus(topDogBonus: number): void { + this.topDogBonus = topDogBonus; + } + + public setRankAdvancementBonus(rankAdvancementBonus: number): void { + this.rankAdvancementBonus = rankAdvancementBonus; + } + + public setTtCashRewardFirst(ttCashRewardFirst: number): void { + this.ttCashRewardFirst = ttCashRewardFirst; + } + + public setTtCashRewardSecond(ttCashRewardSecond: number): void { + this.ttCashRewardSecond = ttCashRewardSecond; + } + + public setTtCashRewardThird(ttCashRewardThird: number): void { + this.ttCashRewardThird = ttCashRewardThird; + } + + public setTtPointsRewardFirst(ttPointsRewardFirst: number): void { + this.ttPointsRewardFirst = ttPointsRewardFirst; + } + + public setTtPointsRewardSecond(ttPointsRewardSecond: number): void { + this.ttPointsRewardSecond = ttPointsRewardSecond; + } + + public setTtPointsRewardThird(ttPointsRewardThird: number): void { + this.ttPointsRewardThird = ttPointsRewardThird; + } + + public setUniversalRepairCostModifier( + universalRepairCostModifier: number + ): void { + this.universalRepairCostModifier = universalRepairCostModifier; + } + + public setUniversalScrapValueModifier( + universalScrapValueModifier: number + ): void { + this.universalScrapValueModifier = universalScrapValueModifier; + } + + public setAdCost1Day(adCost1Day: number): void { + this.adCost1Day = adCost1Day; + } + + public setAdCost2Days(adCost2Days: number): void { + this.adCost2Days = adCost2Days; + } + + public setAdCost3Days(adCost3Days: number): void { + this.adCost3Days = adCost3Days; + } + + public setAdCost4Days(adCost4Days: number): void { + this.adCost4Days = adCost4Days; + } + + public setAdCost5Days(adCost5Days: number): void { + this.adCost5Days = adCost5Days; + } + + public setAdCost6Days(adCost6Days: number): void { + this.adCost6Days = adCost6Days; + } + + public setAdCost7Days(adCost7Days: number): void { + this.adCost7Days = adCost7Days; + } + + public setTradeInModifier(tradeInModifier: number): void { + this.tradeInModifier = tradeInModifier; + } + + public setSimStreetMaxWager(simStreetMaxWager: number): void { + this.simStreetMaxWager = simStreetMaxWager; + } + + public setPointAward1stPlace(pointAward1stPlace: number): void { + this.pointAward1stPlace = pointAward1stPlace; + } + + public setPointAward2ndPlace(pointAward2ndPlace: number): void { + this.pointAward2ndPlace = pointAward2ndPlace; + } + + public setPointAward3rdPlace(pointAward3rdPlace: number): void { + this.pointAward3rdPlace = pointAward3rdPlace; + } + + public setPointAward4thPlace(pointAward4thPlace: number): void { + this.pointAward4thPlace = pointAward4thPlace; + } + + public setPointAward5thPlace(pointAward5thPlace: number): void { + this.pointAward5thPlace = pointAward5thPlace; + } + + public setPointAward6thPlace(pointAward6thPlace: number): void { + this.pointAward6thPlace = pointAward6thPlace; + } + + public setArcadeRacePointModifier(arcadeRacePointModifier: number): void { + this.arcadeRacePointModifier = arcadeRacePointModifier; + } + + public setMcotsPoolingFrequency(mcotsPoolingFrequency: number): void { + this.mcotsPoolingFrequency = mcotsPoolingFrequency; + } + + public setStarterCash(starterCash: number): void { + this.starterCash = starterCash; + } + + public setEnableCheatEmails(enableCheatEmails: number): void { + this.enableCheatEmails = enableCheatEmails; + } + + public setSalaryPerLevel(salaryPerLevel: number): void { + this.salaryPerLevel = salaryPerLevel; + } + + public setClubMaxMembers(clubMaxMembers: number): void { + this.clubMaxMembers = clubMaxMembers; + } + + public setClubRegistrationFee(clubRegistrationFee: number): void { + this.clubRegistrationFee = clubRegistrationFee; + } + + public setClubReRegistrationFee(clubReRegistrationFee: number): void { + this.clubReRegistrationFee = clubReRegistrationFee; + } + + public setClassifiedAdBillRate(classifiedAdBillRate: number): void { + this.classifiedAdBillRate = classifiedAdBillRate; + } + + public setClassifiedAdMaxDays(classifiedAdMaxDays: number): void { + this.classifiedAdMaxDays = classifiedAdMaxDays; + } + + public setClassifiedAdMaxSize(classifiedAdMaxSize: number): void { + this.classifiedAdMaxSize = classifiedAdMaxSize; + } + + public setPapAwardPercentage(papAwardPercentage: number): void { + this.papAwardPercentage = papAwardPercentage; + } + + public setDealOfTheDayBrandedPartId( + dealOfTheDayBrandedPartId: number + ): void { + this.dealOfTheDayBrandedPartId = dealOfTheDayBrandedPartId; + } + + public setDealOfTheDayDiscount(dealOfTheDayDiscount: number): void { + this.dealOfTheDayDiscount = dealOfTheDayDiscount; + } +} + +export function getTunables(): Tunables { + return Tunables.getInstance(); +} diff --git a/packages/database/test/Database.test.ts b/packages/database/test/Database.test.ts index 70bdd0949..e89386b47 100644 --- a/packages/database/test/Database.test.ts +++ b/packages/database/test/Database.test.ts @@ -1,41 +1,26 @@ -import { P } from "vitest/dist/reporters-5f784f42.js"; -import { getServerLogger } from "../../shared/log.js"; -import { Database } from "../src/DatabaseManager.js"; -import { describe, it, expect, vi } from "vitest"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { mockPino } from "../../../test/factoryMocks.js"; +import { describe, it, expect } from "vitest"; +import { + fetchSessionKeyByCustomerId, + fetchSessionKeyByConnectionId, + updateUser, +} from "rusty-motors-database"; + -describe("Database", () => { - it("returns the same instance", () => { - // arrange - vi.mock("pino", async () => { - const actual = await vi.importActual("pino"); - return { - ...(actual as P), - }; - }); - const log = getServerLogger({}); - // act - const instance1 = Database.getInstance(log); - const instance2 = Database.getInstance(log); - // assert - expect(instance1).toEqual(instance2); - }); + +describe("Database", () => { describe("fetchSessionKeyByCustomerId", () => { it("throws when session key is not found", async () => { // arrange - mockPino(); - const log = getServerLogger({}); - const instance = Database.getInstance(log); + const customerId = 1234; // act try { - await instance.fetchSessionKeyByCustomerId(customerId); + await fetchSessionKeyByCustomerId(customerId); } catch (error) { // assert expect(error).toEqual( - new ServerError( + new Error( `Session key not found for customer ${customerId}`, ), ); @@ -46,17 +31,15 @@ describe("Database", () => { describe("fetchSessionKeyByConnectionId", () => { it("throws when session key is not found", async () => { // arrange - mockPino(); - const log = getServerLogger({}); - const instance = Database.getInstance(log); + const connectionId = "1234"; // act try { - await instance.fetchSessionKeyByConnectionId(connectionId); + await fetchSessionKeyByConnectionId(connectionId); } catch (error) { // assert expect(error).toEqual( - new ServerError( + new Error( `Session key not found for connection ${connectionId}`, ), ); @@ -65,11 +48,9 @@ describe("Database", () => { }); describe("updateUser", () => { - it("returns successfully when passed a valid user record", async () => { + it("returns successfully when passed a valid user record", () => { // arrange - mockPino(); - const log = getServerLogger({}); - const instance = Database.getInstance(log); + const userRecord = { contextId: "1234", customerId: 1234, @@ -77,8 +58,8 @@ describe("Database", () => { userData: Buffer.from("1234"), }; // act + assert - expect(() => { - instance.updateUser(userRecord); + expect(async () => { + await updateUser(userRecord); }).not.toThrow(); }); }); diff --git a/packages/database/test/Player.test.ts b/packages/database/test/Player.test.ts deleted file mode 100644 index c7903b492..000000000 --- a/packages/database/test/Player.test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { describe, it, expect } from "vitest"; -import { PlayerModel } from "../src/models/Player.js"; - -describe("Player model", function () { - it("should have a schema property", function () { - expect(PlayerModel.schema).not.equal(""); - }); -}); diff --git a/packages/database/vite.config.ts b/packages/database/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/database/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/gateway/index.ts b/packages/gateway/index.ts new file mode 100644 index 000000000..abb99da65 --- /dev/null +++ b/packages/gateway/index.ts @@ -0,0 +1,6 @@ +export { getGatewayServer, Gateway } from './src/GatewayServer.js'; +export { + socketErrorHandler, + onSocketConnection, + socketEndHandler, +} from './src/index.js'; diff --git a/packages/gateway/package.json b/packages/gateway/package.json new file mode 100644 index 000000000..f71ce9586 --- /dev/null +++ b/packages/gateway/package.json @@ -0,0 +1,30 @@ +{ + "name": "rusty-motors-gateway", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "@fastify/sensible": "^5.5.0", + "@sentry/node": "^8.0.0", + "fastify": "^4.25.2", + "vitest": "^1.6.0" + }, + "directories": { + "test": "test" + }, + "description": "" +} diff --git a/packages/gateway/src/GatewayServer.ts b/packages/gateway/src/GatewayServer.ts index db8d36e92..4ccf79b1a 100644 --- a/packages/gateway/src/GatewayServer.ts +++ b/packages/gateway/src/GatewayServer.ts @@ -1,51 +1,42 @@ import { Socket, createServer as createSocketServer } from "node:net"; import { onSocketConnection } from "./index.js"; +import fastify from "fastify"; import { Configuration, getServerConfiguration, -} from "../../shared/Configuration.js"; -import { getServerLogger } from "../../shared/log.js"; -import fastify from "fastify"; -import { - addOnDataHandler, - createInitialState, - fetchStateFromDatabase, -} from "../../shared/State.js"; -import { ConsoleThread } from "../../cli/ConsoleThread.js"; + type TGateway, + type TGatewayOptions, + type TServerLogger, +} from "rusty-motors-shared"; +import { ConsoleThread, ScheduledThread } from "rusty-motors-cli"; import { addWebRoutes } from "./web.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { receiveLoginData } from "../../login/src/index.js"; -import { receivePersonaData } from "../../persona/src/internal.js"; -import { receiveLobbyData } from "../../lobby/src/internal.js"; -import { receiveTransactionsData } from "../../transactions/src/internal.js"; + import FastifySensible from "@fastify/sensible"; -import { Logger } from "pino"; + +import { + populatePortToMessageTypes, + populateGameMessageProcessors, + portToMessageTypes, + gameMessageProcessors, + populateGameUsers, + gameProfiles, +} from "rusty-motors-nps"; +import { populateServerMessageProcessors } from "rusty-motors-mcots"; +import { + getTuneables, +} from "rusty-motors-database"; /** * @module gateway */ -type GatewayOptions = { - config?: import("/home/drazisil/mcos/packages/shared/Configuration.js").Configuration; - log?: Logger; - backlogAllowedCount?: number; - listeningPortList?: number[]; - socketConnectionHandler?: ({ - incomingSocket, - log, - }: { - incomingSocket: Socket; - log?: Logger; - }) => void; -}; - /** * Gateway server * @see {@link getGatewayServer()} to get a singleton instance */ -export class Gateway { +export class Gateway implements TGateway { config: Configuration; - log: Logger; + log: TServerLogger; timer: NodeJS.Timeout | null; loopInterval: number; status: string; @@ -58,24 +49,24 @@ export class Gateway { log, }: { incomingSocket: Socket; - log?: Logger; + log: TServerLogger; }) => void; static _instance: Gateway | undefined; webServer: import("fastify").FastifyInstance | undefined; readThread: ConsoleThread | undefined; + scheduledThread: ScheduledThread | undefined; + /** * Creates an instance of GatewayServer. - * @param {GatewayOptions} options + * @param {TGatewayOptions} options */ constructor({ config = getServerConfiguration({}), - log = getServerLogger({ - module: "GatewayServer", - }), + log, backlogAllowedCount = 0, listeningPortList = [], socketConnectionHandler = onSocketConnection, - }: GatewayOptions) { + }: TGatewayOptions) { log.debug("Creating GatewayServer instance"); this.config = config; @@ -87,6 +78,10 @@ export class Gateway { this.status = "stopped"; this.consoleEvents = ["userExit", "userRestart", "userHelp"]; this.backlogAllowedCount = backlogAllowedCount; + + // Check if there are any listening ports specified + this.verifyPortListIsNotEmpty(listeningPortList); + this.listeningPortList = listeningPortList; /** @type {import("node:net").Server[]} */ this.servers = []; @@ -95,31 +90,47 @@ export class Gateway { Gateway._instance = this; } + /** + * Delete the GatewayServer instance + */ + static deleteInstance() { + Gateway._instance = undefined; + } + + /** + * Assert that the listeningPortList is not empty + * @param {number[]} listeningPortList + * @throws {Error} If the listeningPortList is empty + */ + private verifyPortListIsNotEmpty(listeningPortList: number[]) { + if (listeningPortList.length === 0) { + this.log.error( + "No listening ports specified. Instance will not be created", + ); + throw new Error("No listening ports specified"); + } + } + /** * @return {import("fastify").FastifyInstance} */ getWebServer(): import("fastify").FastifyInstance { if (this.webServer === undefined) { - throw new ServerError("webServer is undefined"); + throw new Error("webServer is undefined"); } return this.webServer; } - start() { + async start() { this.log.debug("Starting GatewayServer in start()"); this.log.info("Server starting"); - // Check if there are any listening ports specified - if (this.listeningPortList.length === 0) { - throw new ServerError("No listening ports specified"); - } - // Mark the GatewayServer as running this.log.debug("Marking GatewayServer as running"); this.status = "running"; // Initialize the GatewayServer - this.init(); + await this.init(); this.listeningPortList.forEach((port) => { const server = createSocketServer((s) => { @@ -129,16 +140,14 @@ export class Gateway { }); }); - server.listen(port, "0.0.0.0", this.backlogAllowedCount, () => { - this.log.debug(`Listening on port ${port}`); - }); + server.listen(port, "0.0.0.0", this.backlogAllowedCount); // Add the server to the list of servers this.servers.push(server); }); if (this.webServer === undefined) { - throw new ServerError("webServer is undefined"); + throw new Error("webServer is undefined"); } // Start the web server @@ -151,7 +160,7 @@ export class Gateway { }, (err, address) => { if (err) { - this.log.error(err); + this.log.error(String(err)); process.exit(1); } this.log.info(`Server listening at ${address}`); @@ -163,10 +172,10 @@ export class Gateway { // Stop the GatewayServer await this.stop(); - console.log("=== Restarting... ==="); + this.log.info("=== Restarting... ==="); // Start the GatewayServer - this.start(); + await this.start(); } async exit() { @@ -192,8 +201,13 @@ export class Gateway { this.readThread.stop(); } + // Stop the scheduled thread + if (this.scheduledThread !== undefined) { + this.scheduledThread.stop(); + } + if (this.webServer === undefined) { - throw new ServerError("webServer is undefined"); + throw new Error("webServer is undefined"); } await this.webServer.close(); @@ -206,9 +220,7 @@ export class Gateway { this.log.debug("Marking GatewayServer as stopped"); this.status = "stopped"; - // Reset the global state - this.log.debug("Resetting the global state"); - createInitialState({}).save(); + this.log.info("Server stopped"); } /** @@ -216,17 +228,18 @@ export class Gateway { */ handleReadThreadEvent(event: string) { if (event === "userExit") { - this.exit(); + void this.exit(); } if (event === "userRestart") { - this.restart(); + void this.restart(); } if (event === "userHelp") { this.help(); } } - init() { + async init() { + this.log.setName("gateway:GatewayServer:init"); // Create the read thread this.readThread = new ConsoleThread({ parentThread: this, @@ -235,7 +248,7 @@ export class Gateway { // Register the read thread events if (this.readThread === undefined) { - throw new ServerError("readThread is undefined"); + throw new Error("readThread is undefined"); } this.consoleEvents.forEach((event) => { this.readThread?.on(event, () => { @@ -244,28 +257,38 @@ export class Gateway { }); this.webServer = fastify({ - logger: true, + logger: false, }); - this.webServer.register(FastifySensible); + await this.webServer.register(FastifySensible); + + try { + await populateGameUsers(); + } catch (error) { + this.log.error(`Error in populating game data: ${error as string}`); + throw error; + } - let state = fetchStateFromDatabase(); + populatePortToMessageTypes(portToMessageTypes); + populateGameMessageProcessors(gameMessageProcessors); - state = addOnDataHandler(state, 8226, receiveLoginData); - state = addOnDataHandler(state, 8228, receivePersonaData); - state = addOnDataHandler(state, 7003, receiveLobbyData); - state = addOnDataHandler(state, 43300, receiveTransactionsData); + populateServerMessageProcessors(); - state.save(); + // Create the scheduled thread + this.scheduledThread = new ScheduledThread({ + parentThread: this, + log: this.log, + }); this.log.debug("GatewayServer initialized"); + this.log.resetName(); } help() { - console.log("=== Help ==="); - console.log("x: Exit"); - console.log("r: Restart"); - console.log("?: Help"); - console.log("============"); + this.log.info("=== Help ==="); + this.log.info("x: Exit"); + this.log.info("r: Restart"); + this.log.info("?: Help"); + this.log.info("============"); } run() { // Intentionally left blank @@ -273,19 +296,17 @@ export class Gateway { /** * - * @param {GatewayOptions} options + * @param {TGatewayOptions} options * @returns {Gateway} * @memberof Gateway */ static getInstance({ config = undefined, - log = getServerLogger({ - module: "GatewayServer", - }), + log, backlogAllowedCount = 0, listeningPortList = [], socketConnectionHandler = onSocketConnection, - }: GatewayOptions): Gateway { + }: TGatewayOptions): Gateway { if (Gateway._instance === undefined) { Gateway._instance = new Gateway({ config, @@ -313,20 +334,18 @@ Gateway._instance = undefined; /** * Get a singleton instance of GatewayServer * - * @param {GatewayOptions} options + * @param {TGatewayOptions} options * @returns {Gateway} */ export function getGatewayServer({ config, - log = getServerLogger({ - module: "GatewayServer", - }), + log, backlogAllowedCount = 0, - listeningPortList: listeningPortList = [], + listeningPortList = [], socketConnectionHandler = onSocketConnection, }: { config?: Configuration; - log?: Logger; + log: TServerLogger; backlogAllowedCount?: number; listeningPortList?: number[]; socketConnectionHandler?: ({ @@ -334,7 +353,7 @@ export function getGatewayServer({ log, }: { incomingSocket: Socket; - log?: Logger; + log: TServerLogger; }) => void; }): Gateway { return Gateway.getInstance({ diff --git a/packages/gateway/src/handleGameMessage.ts b/packages/gateway/src/handleGameMessage.ts new file mode 100644 index 000000000..de4fdfd85 --- /dev/null +++ b/packages/gateway/src/handleGameMessage.ts @@ -0,0 +1,115 @@ +import { type TServerLogger } from "rusty-motors-shared"; +import { + MessageProcessorError, + getGameMessageProcessor, + GameMessage as OldGameMessage, +} from "rusty-motors-nps"; +import type { GameSocketCallback } from "rusty-motors-nps"; +import { GameMessage } from "rusty-motors-nps"; +import type { Socket } from "node:net"; +import type { UserStatus } from "rusty-motors-nps"; + +export function sendToGameSocket( + serializedMessages: Buffer[], + incomingSocket: Socket, + log: TServerLogger, +) { + log.setName("gateway:sendToGameSocket"); + log.debug( + `Sending {${serializedMessages.length}} messages to game socket on port ${incomingSocket.localPort}`, + ); + try { + serializedMessages.forEach((m) => { + incomingSocket.write(m); + log.trace(`Sent ${m.length} bytes to socket: ${m.toString("hex")}`); + log.trace("==========================================="); + }); + log.resetName(); + } catch (error) { + log.error(`Error sending game data: ${String(error)}`); + log.resetName(); + throw error; + } +} + +export function processGameMessage( + connectionId: string, + userStatus: UserStatus, + message: OldGameMessage, + log: TServerLogger, + socketCallback: GameSocketCallback, +) { + log.setName("gateway:processGameMessage"); + + // Get the message ID + const messageId = message.header.getId(); + + // Get the message processor + const processor = getGameMessageProcessor(messageId); + + // If there is no message processor, throw an error + if (processor === undefined) { + log.error(`No message processor for message ID: ${messageId}`); + throw new MessageProcessorError( + messageId, + `No message processor for message ID: ${messageId}`, + ); + } + + // Call the message processor + log.setName("gateway:processGameMessage"); + log.debug( + `Processing game message with message ID ${message.getId()}, using processor ${processor.name}`, + ); + processor(connectionId, userStatus, message, socketCallback).catch((error) => { + log.error(`Error processing message: ${(error as Error).message}`); + throw new MessageProcessorError( + messageId, + `Error processing message: ${(error as Error).message}`, + ); + }); +} + +export function handleGameMessage( + connectionId: string, + userStatus: UserStatus, + bytes: Buffer, + log: TServerLogger, + socketCallback: GameSocketCallback, +) { + log.setName("gateway:handleGameMessage"); + log.debug(`Handling game message...`); + + // Log raw bytes + log.trace(`Raw bytes: ${bytes.toString("hex")}`); + + // Since a GameMessage v1 header is 12 byes long, a message smaller that that can only be v0 + const msgVersion = bytes.byteLength <= 12 ? 0 : 257; + + // Load new game message + const gameMessage = new GameMessage(msgVersion).deserialize(bytes); + + log.debug(`Game message: ${gameMessage.toString()}`); + + // Try to identify the message version + const version = OldGameMessage.identifyVersion(bytes); + + // Log the version + log.debug(`Message version: ${version}`); + + // Try to parse it + try { + // Create a new message + const message = new OldGameMessage(version); + message.deserialize(bytes); + + // Process the message + void processGameMessage(connectionId, userStatus, message, log, socketCallback); + } catch (error) { + const err = `Error processing game message: ${(error as Error).message}`; + log.fatal(err); + throw Error(err); + } +} + +// Path: packages/gateway/src/handleGameMessage.ts diff --git a/packages/gateway/src/index.ts b/packages/gateway/src/index.ts index e4dc63548..19be1ce9b 100644 --- a/packages/gateway/src/index.ts +++ b/packages/gateway/src/index.ts @@ -15,42 +15,18 @@ // along with this program. If not, see . import { randomUUID } from "node:crypto"; -import { ServerError } from "../../shared/errors/ServerError.js"; import { - OnDataHandler, - addSocket, - fetchStateFromDatabase, - getOnDataHandler, - removeSocket, - wrapSocket, -} from "../../shared/State.js"; -import { getServerLogger } from "../../shared/log.js"; - -import { getGatewayServer } from "./GatewayServer.js"; -import { SerializedBuffer } from "../../shared/messageFactory.js"; -import { Socket } from "node:net"; -import { Logger } from "pino"; + type TServerLogger, +} from "rusty-motors-shared"; -/** - * @typedef {object} OnDataHandlerArgs - * @property {object} args - * @property {string} args.connectionId The connection id of the socket that - * received the data. - * @property {module:packages/shared/RawMessage} args.message The data that was received. - * @property {module:shared/log.ServerLogger} [args.log=getServerLogger({ module: "gateway" })] The logger to use. - * response - * to the - * data. - */ +import { ServerLogger } from "rusty-motors-shared"; -/** - * @typedef {function} OnDataHandler - * @param {OnDataHandlerArgs} args The arguments for the handler. - * @returns {ServiceResponse} The - * response - * to the - * data. - */ +import { Socket } from "node:net"; + +import { UserStatusManager, getPortMessageType } from "rusty-motors-nps"; +import { handleGameMessage, sendToGameSocket } from "./handleGameMessage.js"; +import { Connection } from "rusty-motors-connection"; +import { ClientConnectionManager } from "rusty-motors-mcots"; /** * Handle socket errors @@ -58,20 +34,19 @@ import { Logger } from "pino"; export function socketErrorHandler({ connectionId, error, - log = getServerLogger({ - module: "socketErrorHandler", - }), + log, }: { connectionId: string; error: NodeJS.ErrnoException; - log?: Logger; + log: TServerLogger; }) { // Handle socket errors if (error.code == "ECONNRESET") { log.debug(`Connection ${connectionId} reset`); return; } - throw new ServerError( + log.error(`Socket error: ${error.message} on connection ${connectionId}`); + throw new Error( `Socket error: ${error.message} on connection ${connectionId}`, ); } @@ -81,135 +56,102 @@ export function socketErrorHandler({ * * @param {object} options * @param {string} options.connectionId The connection ID - * @param {import("pino").Logger} [options.log=getServerLogger({ module: "socketEndHandler" })] The logger to use + * @param {ServerLogger} options.log The logger to use */ export function socketEndHandler({ connectionId, - log = getServerLogger({ - module: "socketEndHandler", - }), + log, }: { connectionId: string; - log?: import("pino").Logger; + log: ServerLogger; }) { log.debug(`Connection ${connectionId} ended`); - // Remove the socket from the global state - removeSocket(fetchStateFromDatabase(), connectionId).save(); } /** * Handle incoming TCP connections * * @param {object} options - * @param {module:net.Socket} options.incomingSocket The incoming socket - * @param {import("pino").Logger} [options.log=getServerLogger({ module: "onDataHandler" })] The logger to use + * @param {Socket} options.incomingSocket The incoming socket + * @param {ServerLogger} options.log The logger to use * */ export function onSocketConnection({ incomingSocket, - log = getServerLogger({ - module: "onDataHandler", - }), + log, }: { incomingSocket: Socket; - log?: import("pino").Logger; + log: TServerLogger; }) { + log.setName("gateway:onSocketConnection"); + // Get the local port and remote address const { localPort, remoteAddress } = incomingSocket; if (localPort === undefined || remoteAddress === undefined) { - throw new ServerError("localPort or remoteAddress is undefined"); + log.error("localPort or remoteAddress is undefined"); + throw new Error("localPort or remoteAddress is undefined"); } // This is a new connection so generate a new connection ID - const newConnectionId = randomUUID(); + const connectionId = randomUUID(); - // Wrap the socket and add it to the global state - const wrappedSocket = wrapSocket(incomingSocket, newConnectionId); + const userStatus = UserStatusManager.newUserStatus(); - // Add the socket to the global state - addSocket(fetchStateFromDatabase(), wrappedSocket).save(); - - // This is a new TCP socket, so it's probably not using HTTP - // Let's look for a port onData handler - /** @type {OnDataHandler | undefined} */ - const portOnDataHandler: OnDataHandler | undefined = getOnDataHandler( - fetchStateFromDatabase(), - localPort, - ); - - // Throw an error if there is no onData handler - if (!portOnDataHandler) { - log.warn(`No onData handler for port ${localPort}`); + if (localPort === 43300) { + log.info("New connection on port 43300"); + ClientConnectionManager.addConnection( + new Connection(incomingSocket, connectionId, log), + ); return; } + incomingSocket.on("error", (error) => - socketErrorHandler({ connectionId: newConnectionId, error }), + socketErrorHandler({ connectionId: connectionId, error, log }), ); // Add the data handler to the socket - incomingSocket.on( - "data", - (/** @type {Buffer} */ incomingDataAsBuffer: Buffer) => { - log.trace(`Incoming data: ${incomingDataAsBuffer.toString("hex")}`); - - // Deserialize the raw message - const rawMessage = new SerializedBuffer()._doDeserialize( - incomingDataAsBuffer, + incomingSocket.on("data", (incomingDataAsBuffer: Buffer) => { + // Get message type from the port + let messageType = "Unknown"; + try { + messageType = getPortMessageType(localPort); + log.debug(`Message type: ${messageType}`); + } catch (error) { + log.error( + `Error getting message type: ${(error as Error).message}`, ); - - // Log the raw message - log.trace(`Raw message: ${rawMessage.toString()}`); - - log.debug("Calling onData handler"); - - portOnDataHandler({ - connectionId: newConnectionId, - message: rawMessage, - }) - .then( - ( - /** @type {import("../../shared/State.js").ServiceResponse} */ response: import("../../shared/State.js").ServiceResponse, - ) => { - log.debug("onData handler returned"); - const { messages } = response; - - // Log the messages - log.trace( - `Messages: ${messages.map((m) => m.toString())}`, - ); - - // Serialize the messages - const serializedMessages = messages.map((m) => - m.serialize(), - ); - - try { - // Send the messages - serializedMessages.forEach((m) => { - incomingSocket.write(m); - log.trace(`Sent data: ${m.toString("hex")}`); - }); - } catch (error) { - log.error(`Error sending data: ${String(error)}`); - } - }, - ) - .catch((/** @type {Error} */ error: Error) => { - log.error(`Error handling data: ${String(error)}`); - - // Call server shutdown - getGatewayServer({}).shutdown(); - }); - }, - ); + throw error; + } + + if (messageType !== "Unknown") { + // Call the message handler + if (messageType === "Game") { + const gameSocketCallback = (messages: Buffer[]) => { + sendToGameSocket(messages, incomingSocket, log); + }; + + return handleGameMessage( + connectionId, + userStatus, + incomingDataAsBuffer, + log, + gameSocketCallback, + ); + } + } + }); log.debug(`Client ${remoteAddress} connected to port ${localPort}`); if (localPort === 7003) { - // Sent ok to login packet + log.info("Sending ok to login packet"); + incomingSocket.write(Buffer.from([0x02, 0x30, 0x00, 0x00])); } + log.resetName(); } + +// Path: packages/gateway/src/index.ts diff --git a/packages/gateway/src/web.ts b/packages/gateway/src/web.ts index 9ae785724..416bfbdfc 100644 --- a/packages/gateway/src/web.ts +++ b/packages/gateway/src/web.ts @@ -14,15 +14,16 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -import { ServerError } from "../../shared/errors/ServerError.js"; -import { CastanetResponse } from "../../patch/src/PatchServer.js"; -import { generateShardList } from "../../shard/src/ShardServer.js"; -import { getServerConfiguration } from "../../shared/Configuration.js"; +import { CastanetResponse } from "rusty-motors-patch"; +import { generateShardList } from "rusty-motors-shard"; +import { getServerConfiguration } from "rusty-motors-shared"; import { handleGetCert, handleGetKey, handleGetRegistry, -} from "../../shard/src/index.js"; +} from "rusty-motors-shard"; +import { getUser } from "rusty-motors-nps"; +import { generateToken } from "rusty-motors-nps"; /** * Add web routes to the web server @@ -40,7 +41,7 @@ export function addWebRoutes(webServer: import("fastify").FastifyInstance) { }); }); - webServer.get("/", async (_request, reply) => { + webServer.get("/", (_request, reply) => { return reply.send("Hello, world!"); }); @@ -48,21 +49,23 @@ export function addWebRoutes(webServer: import("fastify").FastifyInstance) { "/games/EA_Seattle/MotorCity/UpdateInfo", (_request, reply) => { const response = CastanetResponse; - reply.header(response.header.type, response.header.value); - return reply.send(response.body); + return reply + .header(response.header.type, response.header.value) + .send(response.body); }, ); webServer.post("/games/EA_Seattle/MotorCity/NPS", (_request, reply) => { const response = CastanetResponse; - reply.header(response.header.type, response.header.value); + void reply.header(response.header.type, response.header.value); return reply.send(response.body); }); webServer.post("/games/EA_Seattle/MotorCity/MCO", (_request, reply) => { const response = CastanetResponse; - reply.header(response.header.type, response.header.value); - return reply.send(response.body); + return reply + .header(response.header.type, response.header.value) + .send(response.body); }); interface IQuerystring { @@ -80,47 +83,62 @@ export function addWebRoutes(webServer: import("fastify").FastifyInstance) { Reply: IReply; }>("/AuthLogin", async (request, reply) => { const username = request.query.username; + const password = request.query.password; + + // Check for the username + const user = await getUser(username, password); - if (username === "new") { + // If the user doesn't exist, return an error + if (user === null) { return reply.send( - "Valid=TRUE\nTicket=5213dee3a6bcdb133373b2d4f3b9962758", + "reasoncode=INV-200\nreasontext=Unable to login\nreasonurl=https://rusty-motors.com", ); } - return reply.send( - "Valid=TRUE\nTicket=d316cd2dd6bf870893dfbaaf17f965884e", - ); + // Generate a token + const token = generateToken(user.customer_id); + + return reply.send(`Valid=TRUE\nTicket=${token}`); }); webServer.get("/ShardList/", (_request, reply) => { const config = getServerConfiguration({}); if (typeof config.host === "undefined") { - throw new ServerError("No host defined in config"); + throw new Error("No host defined in config"); } return reply.send(generateShardList(config.host)); }); - webServer.get("/cert", (_request, reply) => { + webServer.get("/cert", async (_request, reply) => { const config = getServerConfiguration({}); if (typeof config.host === "undefined") { - throw new ServerError("No host defined in config"); + throw new Error("No host defined in config"); } - return reply.send(handleGetCert(config)); + const certFile = await handleGetCert(config); + return reply + .header("Content-Type", "text/plain") + .header("Content-Disposition", "attachment; filename=cert.crt") + .send(certFile); }); - webServer.get("/key", (_request, reply) => { + webServer.get("/key", async (_request, reply) => { const config = getServerConfiguration({}); if (typeof config.host === "undefined") { - throw new ServerError("No host defined in config"); + throw new Error("No host defined in config"); } - return reply.send(handleGetKey(config)); + const keyFile = await handleGetKey(config); + return reply + .header("Content-Type", "text/plain") + .header("Content-Disposition", "attachment; filename=pub.key") + .send(keyFile); }); webServer.get("/registry", (_request, reply) => { const config = getServerConfiguration({}); if (typeof config.host === "undefined") { - throw new ServerError("No host defined in config"); + throw new Error("No host defined in config"); } - return reply.send(handleGetRegistry(config)); + const regFile = handleGetRegistry(config); + return reply.header("Content-Type", "text/plain").header("Content-Disposition", "attachment; filename=client.reg").send(regFile); }); } diff --git a/packages/gateway/test/GatewayServer.test.ts b/packages/gateway/test/GatewayServer.test.ts new file mode 100644 index 000000000..7b291ddba --- /dev/null +++ b/packages/gateway/test/GatewayServer.test.ts @@ -0,0 +1,92 @@ +import type { TServerLogger, TGatewayOptions } from "rusty-motors-shared"; +import { getGatewayServer, Gateway } from "rusty-motors-gateway"; +import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"; + +describe("getGatewayServer", () => { + beforeEach(() => { + Gateway.deleteInstance(); + }); + + afterEach(() => { + Gateway.deleteInstance(); + }); + it("should be able to get a singleton instance when called with multiple ports", () => { + // Arrange + const log: TServerLogger = { + debug: () => vi.fn(), + error: () => vi.fn(), + info: () => vi.fn(), + warn: () => vi.fn(), + fatal: () => vi.fn(), + trace: () => vi.fn(), + getName: () => "", + setName: () => vi.fn(), + resetName: () => vi.fn(), + }; + + const options: TGatewayOptions = { + log, + listeningPortList: [1234, 5678], + }; + + // Act + const gateway = getGatewayServer(options); + + // Assert + expect(gateway).toBeDefined(); + expect(gateway).toBe(getGatewayServer(options)); + }); + + it("should be able to get a singleton instance when called with a single port", () => { + // Arrange + const log: TServerLogger = { + debug: () => vi.fn(), + error: () => vi.fn(), + info: () => vi.fn(), + warn: () => vi.fn(), + fatal: () => vi.fn(), + trace: () => vi.fn(), + getName: () => "", + setName: () => vi.fn(), + resetName: () => vi.fn(), + }; + + const options: TGatewayOptions = { + log, + listeningPortList: [1234], + }; + + // Act + const gateway = getGatewayServer(options); + + // Assert + expect(gateway).toBeDefined(); + expect(gateway).toBe(getGatewayServer(options)); + }); + + it("should throw an error when called with no ports", () => { + // Arrange + const log: TServerLogger = { + debug: () => vi.fn(), + error: () => vi.fn(), + info: () => vi.fn(), + warn: () => vi.fn(), + fatal: () => vi.fn(), + trace: () => vi.fn(), + getName: () => "", + setName: () => vi.fn(), + resetName: () => vi.fn(), + }; + + const options: TGatewayOptions = { + log, + }; + Gateway.deleteInstance(); + + // Act + const fn = () => getGatewayServer(options); + + // Assert + expect(fn).toThrowError(); + }); +}); diff --git a/packages/gateway/test/encryption.test.ts b/packages/gateway/test/encryption.test.ts deleted file mode 100644 index 697cac4c1..000000000 --- a/packages/gateway/test/encryption.test.ts +++ /dev/null @@ -1,187 +0,0 @@ -import { beforeAll, beforeEach, describe, expect, it, test, vi } from "vitest"; -import { - createCommandEncryptionPair, - createDataEncryptionPair, -} from "../src/encryption.js"; -import { Socket } from "node:net"; -import { - McosEncryption, - State, - addEncryption, - createInitialState, - getEncryption, -} from "../../shared/State.js"; -import { randomUUID } from "node:crypto"; -import { mockPino } from "../../../test/factoryMocks.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; - -let testSave: (state: State) => void; -let testState: State; -let testSocket1: Socket; -let testSocket2: Socket; - -describe("Encryption", () => { - beforeAll(() => { - mockPino(); - testSave = (state?: State) => { - if (typeof state === "undefined") { - throw new ServerError("State not defined"); - } - testState = state; - }; - testState = createInitialState({ - saveFunction: testSave, - }); - testSocket1 = new Socket(); - testSocket1.write = vi.fn().mockImplementation(() => { - // Do nothing - }); - testSocket2 = new Socket(); - testSocket2.write = vi.fn().mockImplementation(() => { - // Do nothing - }); - }); - - beforeEach(() => { - testState = createInitialState({ - saveFunction: testSave, - }); - }); - - it("should be able to encrypt and decrypt a command message", () => { - // Arrange - - const connectionId1 = randomUUID(); - const connectionId2 = randomUUID(); - - const key = - "254a7a0703a3a2c4df687a3969d3577bb8350efc3950c1c22f76415227ac5f21"; - - const commandEncryptionPair = createCommandEncryptionPair(key); - - const dataEncryptionPair = createDataEncryptionPair(key); - - const encryption1 = new McosEncryption({ - connectionId: connectionId1, - commandEncryptionPair, - dataEncryptionPair, - }); - - const encryption2 = new McosEncryption({ - connectionId: connectionId2, - commandEncryptionPair, - dataEncryptionPair, - }); - - // Act + Assert - - const message = Buffer.from("test message1234"); - - let state = testState; - - state = addEncryption(state, encryption1); - state = addEncryption(state, encryption2); - - const connectionEncryption1 = getEncryption(state, connectionId1); - - expect(connectionEncryption1).toBeDefined(); - - const encryptedMessage = - connectionEncryption1?.commandEncryption.encrypt(message); - - expect(encryptedMessage).toBeDefined(); - - const connectionEncryption2 = getEncryption(state, connectionId2); - - expect(connectionEncryption2).toBeDefined(); - - const decryptedMessage = - connectionEncryption2?.commandEncryption.decrypt( - encryptedMessage as Buffer, - ); - - expect(decryptedMessage).toBeDefined(); - - expect(decryptedMessage).toEqual(message); - }); - - it("should be able to encrypt and decrypt a command message", () => { - // Arrange - - const connectionId1 = randomUUID(); - const connectionId2 = randomUUID(); - - const key = - "254a7a0703a3a2c4df687a3969d3577bb8350efc3950c1c22f76415227ac5f21"; - - const commandEncryptionPair = createCommandEncryptionPair(key); - - const dataEncryptionPair = createDataEncryptionPair(key); - - const encryption1 = new McosEncryption({ - connectionId: connectionId1, - commandEncryptionPair, - dataEncryptionPair, - }); - - const encryption2 = new McosEncryption({ - connectionId: connectionId2, - commandEncryptionPair, - dataEncryptionPair, - }); - - // Act + Assert - - const message = Buffer.from("test message1234"); - - let state = testState; - - state = addEncryption(state, encryption1); - state = addEncryption(state, encryption2); - - const connectionEncryption1 = getEncryption(state, connectionId1); - - expect(connectionEncryption1).toBeDefined(); - - const encryptedMessage = - connectionEncryption1?.dataEncryption.encrypt(message); - - expect(encryptedMessage).toBeDefined(); - - const connectionEncryption2 = getEncryption(state, connectionId2); - - expect(connectionEncryption2).toBeDefined(); - - const decryptedMessage = connectionEncryption2?.dataEncryption.decrypt( - encryptedMessage as Buffer, - ); - - expect(decryptedMessage).toBeDefined(); - - expect(decryptedMessage).toEqual(message); - }); - - test("data should throw when the key is too short", () => { - // Arrange - - const key = "22c4df"; - - // Act + Assert - - expect(() => { - createDataEncryptionPair(key); - }).toThrow("Key too short"); - }); - - test("command should throw when the key is too short", () => { - // Arrange - - const key = "25"; - - // Act + Assert - - expect(() => { - createCommandEncryptionPair(key); - }).toThrow("Key too short"); - }); -}); diff --git a/packages/gateway/test/socketErrorHandler.test.ts b/packages/gateway/test/socketErrorHandler.test.ts new file mode 100644 index 000000000..08f939bd9 --- /dev/null +++ b/packages/gateway/test/socketErrorHandler.test.ts @@ -0,0 +1,34 @@ +import type { TServerLogger } from "rusty-motors-shared"; +import { socketErrorHandler } from "rusty-motors-gateway"; +import { describe, it, expect, vi } from "vitest"; + +describe("socketErrorHandler", () => { + it("should log and throw an error", () => { + // Arrange + const log: TServerLogger = { + debug: () => vi.fn(), + error: () => vi.fn(), + info: () => vi.fn(), + warn: () => vi.fn(), + fatal: () => vi.fn(), + trace: () => vi.fn(), + setName: () => vi.fn(), + getName: () => "", + resetName: () => vi.fn(), + }; + + const error = new Error("test error"); + const connectionId = "test-connection-id"; + const errorSpy = vi.spyOn(log, "error"); + + // Act + const fn = () => socketErrorHandler({ log, error, connectionId }); + + // Assert + expect(fn).toThrowError("test error"); + + expect(errorSpy).toHaveBeenCalledWith( + "Socket error: test error on connection test-connection-id", + ); + }); +}); diff --git a/packages/gateway/test/web.test.ts b/packages/gateway/test/web.test.ts new file mode 100644 index 000000000..886ddac2f --- /dev/null +++ b/packages/gateway/test/web.test.ts @@ -0,0 +1,51 @@ +import { + generateShardList, + handleGetCert, + handleGetKey, + handleGetRegistry, +} from 'rusty-motors-shard'; +import { describe, expect, it, vi } from 'vitest'; + +function mockConfig() { + return { + certificateFile: 'test', + privateKeyFile: 'test', + publicKeyFile: 'test', + host: 'test', + }; +} + +describe('web', () => { + it('handleGetCert', async () => { + vi.mock('node:fs/promises', async (importOriginal) => { + const originalModule = + (await importOriginal()) as typeof import('node:fs/promises'); + return { + ...originalModule, + readFile: vi.fn().mockResolvedValue('test'), + }; + }); + const config = mockConfig(); + const result = await handleGetCert(config); + expect(result).toBe('test'); + }); + + it('handleGetRegistry', () => { + const config = mockConfig(); + const result = handleGetRegistry(config); + expect(result).toContain('Windows Registry Editor Version 5.00'); + expect(result).toContain('"ShardUrlDev"="http://test/ShardList/"'); + }); + + it('handleGetKey', async () => { + const config = mockConfig(); + const result = await handleGetKey(config); + expect(result).toBe('test'); + }); + + it('generateShardList', () => { + const config = mockConfig(); + const result = generateShardList(config.host); + expect(result).toContain('LoginServerIP=test'); + }); +}); diff --git a/packages/gateway/vite.config.ts b/packages/gateway/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/gateway/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/interfaces/index.d.ts b/packages/interfaces/index.d.ts deleted file mode 100644 index 39298e102..000000000 --- a/packages/interfaces/index.d.ts +++ /dev/null @@ -1,208 +0,0 @@ -import { Socket } from "node:net"; -import { ServerError } from "../shared/errors/ServerError.js"; -import { Cipher, Decipher } from "node:crypto"; -import { IncomingMessage, ServerResponse } from "node:http"; -import { SerializedBuffer } from "../shared/messageFactory.js"; -import { Configuration } from "../shared/Configuration.js"; -import pino from "pino"; - -/** - * @module interfaces - */ - -export as namespace interfaces; - -export namespace external { - export namespace pino { - export type Logger = pino.Logger; - } -} - -export const name = "interfaces"; - -/** - * @exports - * @interface - */ -interface SerializedObject { - serialize: () => Buffer; - serializeSize: () => number; -} -export const SerializedObject = { - serialize() { - throw new ServerError("Not implemented"); - }, - serializeSize() { - throw new ServerError("Not implemented"); - }, -}; - -interface EncryptionSession { - connectionId: string; - remoteAddress: string; - localPort: number; - sessionKey: string; - sKey: string; - gsCipher: Cipher; - gsDecipher: Decipher; - tsCipher: Cipher; - tsDecipher: Decipher; -} - -interface ClientConnection { - status: number; - appID: number; - id: string; - socket: Socket; - remoteAddress: string; - seq: number; - personaId: number; - lastMessageTimestamp: number; - inQueue: boolean; - encryptionSession: EncryptionSession; - useEncryption: boolean; - port: number; - ip: string; -} - -interface SocketWithConnectionInfo { - connectionId: string; - socket: Socket; - seq: number; - id: string; - remoteAddress: string; - localPort: number; - personaId: number; - lastMessageTimestamp: number; - inQueue: boolean; - encryptionSession: EncryptionSession; - useEncryption: boolean; -} - -export interface DatabaseManager { - updateSessionKey: ( - arg0: number, - arg1: string, - arg2: string, - arg3: string, - ) => Promise; - fetchSessionKeyByCustomerId: (arg0: number) => Promise; -} - -/** - * @exports - */ -export interface ConnectionRecord { - customerId: number; - connectionId: string; - sessionKey: string; - sKey: string; - contextId: string; -} - -interface SessionKeys { - sessionKey: string; - sKey: string; -} - -interface TConnection { - connectionId: string; - localPort: number; - remoteAddress: string; - socket: Socket; - encryptionSession: EncryptionSession; - useEncryption: boolean; - inQueue: boolean; -} - -interface JSONResponseOfGameMessage { - msgNo: number; - opCode: number | null; - msgLength: number; - msgVersion: number; - content: string; - contextId: string; - direction: "sent" | "received"; - sessionKey: string | null; - rawBuffer: string; -} - -interface GameMessage { - serialize: () => Buffer; - deserialize: (arg0: Buffer) => void; - toJSON: () => JSONResponseOfGameMessage; - dumpPacket: () => string; -} - -export interface GameMessageOpCode { - name: string; - value: number; - module: "Lobby" | "Login"; -} - -interface BuiltinError { - code: number; - message: string; -} - -export interface PersonaRecord { - customerId: number; - id: Buffer; - maxPersonas: Buffer; - name: Buffer; - personaCount: Buffer; - shardId: Buffer; -} - -export interface UserRecordMini { - contextId: string; - customerId: number; - userId: number; -} - -interface WebJSONResponse { - code: number; - headers: - | import("http").OutgoingHttpHeaders - | import("http").OutgoingHttpHeader[] - | undefined; - body: { connectionId: string; remoteAddress: string; inQueue: boolean }[]; -} - -type WebConnectionHandler = ( - req: IncomingMessage, - res: ServerResponse, - config: Configuration, - log: import("pino").Logger, -) => void; - -/** - * @exports - */ -export interface RaceLobbyRecord { - lobbyId: number; - raceTypeId: number; - turfId: number; - riffName: string; - eTurfName: string; -} - -export interface ServiceArgs { - connectionId: string; - message: SerializedBuffer; - log: import("pino").Logger; -} - -type Service = ( - args: ServiceArgs, -) => Promise; - -export interface KeypressEvent { - sequence: string; - name: string; - ctrl: boolean; - meta: boolean; - shift: boolean; -} - -export as namespace interfaces; diff --git a/packages/lobby/src/LoginInfoMessage.ts b/packages/lobby/src/LoginInfoMessage.ts deleted file mode 100644 index fba950e03..000000000 --- a/packages/lobby/src/LoginInfoMessage.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { ServerError } from "../../shared/errors/ServerError.js"; -import { - LegacyMessage, - deserializeString, - serializeString, -} from "../../shared/messageFactory.js"; - -export class LoginInfoMessage extends LegacyMessage { - _userId: number; - _userName: string; - _userData: Buffer; - _customerId: number; - _flags: number; - _dllVersion: string; - _hostname: string; - _idAddress: string; - _hashKey: Buffer; - constructor() { - super(); - this._userId = 0; // 4 bytes - this._userName = ""; - this._userData = Buffer.alloc(64); - this._customerId = 0; // 4 bytes - this._flags = 0; // 4 bytes - this._dllVersion = ""; - this._hostname = ""; - this._idAddress = ""; - this._hashKey = Buffer.alloc(16); - } - - /** - * @param {Buffer} buffer - * @returns {LoginInfoMessage} - */ - override deserialize(buffer: Buffer): LoginInfoMessage { - try { - this._header._doDeserialize(buffer); - let offset = this._header._size; - this._userId = buffer.readInt32BE(offset); - offset += 4; - this._userName = deserializeString(buffer.subarray(offset)); - offset += 4 + this._userName.length + 1; - buffer.copy(this._userData, 0, offset, offset + 64); - offset += 64; - this._customerId = buffer.readInt32BE(offset); - offset += 4; - this._flags = buffer.readInt32BE(offset); - offset += 4; - this._dllVersion = deserializeString(buffer.subarray(offset)); - offset += 4 + this._dllVersion.length + 1; - this._hostname = deserializeString(buffer.subarray(offset)); - offset += 4 + this._hostname.length + 1; - this._idAddress = deserializeString(buffer.subarray(offset)); - offset += 4 + this._idAddress.length + 1; - buffer.copy(this._hashKey, 0, offset, offset + 16); - - return this; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error deserializing LoginInfoMessage", - ); - } - } - - /** - * @returns {Buffer} - */ - override serialize(): Buffer { - try { - const buffer = Buffer.alloc(this._header.length); - this._header._doSerialize().copy(buffer); - let offset = this._header._size; - buffer.writeInt32BE(this._userId, offset); - offset += 4; - offset = serializeString(this._userName, buffer, offset); - - this._userData.copy(buffer, offset); - offset += 64; - buffer.writeInt32BE(this._customerId, offset); - offset += 4; - buffer.writeInt32BE(this._flags, offset); - offset += 4; - offset = serializeString(this._dllVersion, buffer, offset); - - offset = serializeString(this._hostname, buffer, offset); - - offset = serializeString(this._idAddress, buffer, offset); - offset += 4 + this._idAddress.length + 1; - this._hashKey.copy(buffer, offset); - - return buffer; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error serializing LoginInfoMessage", - ); - } - } - - override toString() { - return `LoginInfoMessage: ${this._userName}`; - } -} diff --git a/packages/lobby/src/MiniRiffMessage.js b/packages/lobby/src/MiniRiffMessage.js deleted file mode 100644 index dcdc3d0ff..000000000 --- a/packages/lobby/src/MiniRiffMessage.js +++ /dev/null @@ -1,99 +0,0 @@ -import { ServerError } from "../../shared/errors/ServerError.js"; -import { - LegacyMessage, - serializeString, - SerializedBuffer, -} from "../../shared/messageFactory.js"; - -export class MiniRiffMessage extends LegacyMessage { - constructor() { - super(); - /** @type {MiniRiffInfo[]} */ - this._riffList = []; - } - - size() { - let size = 4; - for (const riff of this._riffList) { - size += riff.size(); - } - return size; - } - - /** @param {MiniRiffInfo} riff */ - addRiff(riff) { - this._riffList.push(riff); - } - - /** - * @returns {Buffer} - */ - serialize() { - try { - const neededSize = this.size(); - this._header.length = neededSize + 4; - const buffer = Buffer.alloc(this._header.length); - this._header._doSerialize().copy(buffer); - let offset = this._header._size; // offset is 4 - buffer.writeUInt16BE(this._riffList.length, offset); - offset += 4; - for (const riff of this._riffList) { - riff.serialize().copy(buffer, offset); - offset += riff.size(); - } - - return buffer; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error serializing MiniRiffMessage", - ); - } - } - - toString() { - return `MiniRiffMessage: ${this._riffList.length} riff(s)`; - } -} - -export class MiniRiffInfo extends SerializedBuffer { - constructor() { - super(); - this._riffName = ""; // max 32 bytes - this._riffId = 0; // 4 bytes - this._riffPopulation = 0; // 2 bytes - } - - size() { - return 4 + (4 + this._riffName.length + 1) + 4 + 2; - } - - /** - * @returns {Buffer} - */ - serialize() { - try { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - if (this._riffName.length > 32) { - throw new ServerError("Riff name is too long"); - } - offset = serializeString(this._riffName, buffer, offset); - - buffer.writeUInt32BE(this._riffId, offset); - offset += 4; - buffer.writeUInt16BE(this._riffPopulation, offset); - - return buffer; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error serializing LoginInfoMessage", - ); - } - } - - toString() { - return `MiniRiffInfo: ${this._riffName} (${this._riffId}) - ${this._riffPopulation}`; - } -} diff --git a/packages/lobby/src/NPS_LOBBYCLIENT_COMMANDS.ts b/packages/lobby/src/NPS_LOBBYCLIENT_COMMANDS.ts deleted file mode 100644 index ca9ce169d..000000000 --- a/packages/lobby/src/NPS_LOBBYCLIENT_COMMANDS.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Commands from the game client to the game server - * @export - * @readonly - * @type {TNPS_COMMAND_MAP[]} - */ - -import { GameMessageOpCode } from "../../interfaces/index.js"; - -export const NPS_LOBBYCLIENT_COMMANDS: GameMessageOpCode[] = [ - { name: "NPS_LOGIN", value: 256, module: "Lobby" }, - { name: "NPS_GET_USER_LIST", value: 257, module: "Lobby" }, - { name: "NPS_GET_MY_USER_DATA", value: 258, module: "Lobby" }, - { name: "NPS_SET_MY_USER_DATA", value: 259, module: "Lobby" }, - { name: "NPS_LOG_OFF_SERVER", value: 260, module: "Lobby" }, - { name: "NPS_CLOSE_COMM_CHANNEL", value: 261, module: "Lobby" }, - { name: "NPS_OPEN_COMM_CHANNEL", value: 262, module: "Lobby" }, - { name: "NPS_GET_CLIENT_COUNT", value: 263, module: "Lobby" }, - { name: "NPS_START_GAME", value: 264, module: "Lobby" }, - { name: "NPS_READY_FOR_GAME", value: 265, module: "Lobby" }, - { name: "NPS_START_GAME_SERVER", value: 266, module: "Lobby" }, - { name: "NPS_SET_SLEEP_STATE", value: 267, module: "Lobby" }, - { name: "NPS_GET_SERVER_INFO", value: 268, module: "Lobby" }, - { name: "NPS_SET_COMM_FLAGS", value: 269, module: "Lobby" }, - { name: "NPS_GET_READY_LIST", value: 270, module: "Lobby" }, - { name: "NPS_SEND_SERVER_LIST", value: 271, module: "Lobby" }, - { name: "NPS_SET_COMM_CHANNEL_RATE", value: 272, module: "Lobby" }, - { name: "NPS_SET_HEARTBEAT_TIMEOUT", value: 273, module: "Lobby" }, - { name: "NPS_GET_HEARTBEAT_TIMEOUT", value: 274, module: "Lobby" }, - { name: "NPS_SET_CHANNEL_DATA", value: 275, module: "Lobby" }, - { name: "NPS_FILE_START", value: 276, module: "Lobby" }, - { name: "NPS_FILE_DATA", value: 277, module: "Lobby" }, - { name: "NPS_FILE_COMPLETED", value: 278, module: "Lobby" }, - { name: "NPS_BOOT_USER_FROM_CHANNEL", value: 279, module: "Lobby" }, - { name: "NPS_LOCATE_USER", value: 280, module: "Lobby" }, - { name: "NPS_ENABLE_FILTER", value: 281, module: "Lobby" }, - { name: "NPS_DISABLE_FILTER", value: 282, module: "Lobby" }, - { name: "NPS_SLEEP_SERVER", value: 283, module: "Lobby" }, - { name: "NPS_WAKE_SERVER", value: 284, module: "Lobby" }, - { name: "NPS_TERMINATE_GAME_SERVER", value: 285, module: "Lobby" }, - { name: "NPS_SEND_SKU_REGISTRY", value: 286, module: "Lobby" }, - { name: "NPS_SET_READY_FOR_GAME", value: 287, module: "Lobby" }, - { name: "NPS_LOGIN_RESP", value: 288, module: "Lobby" }, - { name: "NPS_SOCKET_RECONNECT", value: 289, module: "Lobby" }, - { name: "NPS_SET_SLOT", value: 290, module: "Lobby" }, - { name: "NPS_GET_SLOT_LIST", value: 291, module: "Lobby" }, - { name: "NPS_SET_CHANNEL_CLOSED", value: 292, module: "Lobby" }, - { name: "NPS_UDP_STATUS", value: 293, module: "Lobby" }, - { name: "NPS_GET_USER_INFO", value: 294, module: "Lobby" }, - { name: "NPS_GET_MASTER_LIST", value: 295, module: "Lobby" }, - { name: "NPS_GET_MINI_USER_LIST", value: 296, module: "Lobby" }, - { name: "NPS_UDP_FAILURE", value: 297, module: "Lobby" }, - { name: "NPS_BUDDYLIST_REFRESH", value: 298, module: "Lobby" }, - { name: "NPS_BUDDYLIST_ADD_USERS", value: 299, module: "Lobby" }, - { name: "NPS_BUDDYLIST_REMOVE_USERS", value: 300, module: "Lobby" }, -]; diff --git a/packages/lobby/src/NPS_LOBBYSERVER_COMMANDS.ts b/packages/lobby/src/NPS_LOBBYSERVER_COMMANDS.ts deleted file mode 100644 index 486a3a096..000000000 --- a/packages/lobby/src/NPS_LOBBYSERVER_COMMANDS.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { GameMessageOpCode } from "../../interfaces/index.js"; - -/** - * Commands from the game server to the game client - * @export - * @readonly - * @type {TNPS_COMMAND_MAP[]} - */ -export const NPS_LOBBYSERVER_COMMANDS: GameMessageOpCode[] = [ - { name: "NPS_FORCE_LOGOFF", value: 513, module: "Lobby" }, - { name: "NPS_USER_LEFT", value: 514, module: "Lobby" }, - { name: "NPS_USER_JOINED", value: 515, module: "Lobby" }, - { name: "NPS_USER_INFO", value: 516, module: "Lobby" }, - { name: "NPS_SYSTEM_ALERT", value: 517, module: "Lobby" }, - { name: "NPS_CLIENT_COUNT", value: 518, module: "Lobby" }, - { name: "NPS_ACK", value: 519, module: "Lobby" }, - { name: "NPS_USER_LEFT_CHANNEL", value: 520, module: "Lobby" }, - { name: "NPS_CHANNEL_CLOSED", value: 521, module: "Lobby" }, - { name: "NPS_DUP_USER", value: 522, module: "Lobby" }, - { name: "NPS_SERVER_FULL", value: 523, module: "Lobby" }, - { name: "NPS_USER_JOINED_CHANNEL", value: 524, module: "Lobby" }, - { name: "NPS_SERVER_INFO", value: 525, module: "Lobby" }, - { name: "NPS_CHANNEL_CREATED", value: 526, module: "Lobby" }, - { name: "NPS_CHANNEL_DELETED", value: 527, module: "Lobby" }, - { name: "NPS_READY_LIST", value: 528, module: "Lobby" }, - { name: "NPS_USER_LIST", value: 529, module: "Lobby" }, - { name: "NPS_SERVER_LIST", value: 530, module: "Lobby" }, - { name: "NPS_CHANNEL_DENIED", value: 531, module: "Lobby" }, - { name: "NPS_CHANNEL_GRANTED", value: 532, module: "Lobby" }, - { name: "NPS_CHANNEL_CONDITIONAL", value: 533, module: "Lobby" }, - { name: "NPS_SERVER_REDIRECT", value: 534, module: "Lobby" }, - { name: "NPS_HEARTBEAT", value: 535, module: "Lobby" }, - { name: "NPS_HEARTBEAT_TIMEOUT", value: 536, module: "Lobby" }, - { name: "NPS_CHANNEL_UPDATE", value: 537, module: "Lobby" }, - { name: "NPS_FORCE_LEAVE_CHANNEL", value: 538, module: "Lobby" }, - { name: "NPS_USER_LOCATION", value: 539, module: "Lobby" }, - { name: "NPS_GAME_SERVER_STARTED", value: 540, module: "Lobby" }, - { name: "NPS_GAME_SERVER_TERMINATED", value: 541, module: "Lobby" }, - { name: "NPS_VERSIONS_DIFFERENT", value: 542, module: "Lobby" }, - { name: "NPS_SEND_VERSION_STRING", value: 543, module: "Lobby" }, - { name: "NPS_GAME_SKU_REGISTRY_KEY", value: 544, module: "Lobby" }, - { name: "NPS_PLUGIN_ACK", value: 545, module: "Lobby" }, - { name: "NPS_SERVER_CRASHED", value: 546, module: "Lobby" }, - { name: "NPS_OPEN_COMM_CHANNEL_ACK", value: 547, module: "Lobby" }, - { name: "NPS_GAME_SERVER_STATE_CHANGE", value: 548, module: "Lobby" }, - { name: "NPS_SLOT_UPDATE", value: 549, module: "Lobby" }, - { name: "NPS_SLOT_LIST", value: 550, module: "Lobby" }, - { name: "NPS_CHANNEL_MASTER", value: 551, module: "Lobby" }, - { name: "NPS_CHANNEL_MASTER_LIST", value: 552, module: "Lobby" }, - { name: "NPS_MINI_USER_LIST", value: 553, module: "Lobby" }, - { name: "NPS_INVALID_KEY", value: 554, module: "Lobby" }, - { name: "NPS_NO_VALIDATION_SERVER", value: 555, module: "Lobby" }, - { name: "NPS_INC_MINI_USER_LIST", value: 556, module: "Lobby" }, - { name: "NPS_DEC_MINI_USER_LIST", value: 557, module: "Lobby" }, - { name: "NPS_BUDDY_LIST", value: 558, module: "Lobby" }, - { name: "NPS_BUDDYLIST_UPDATE", value: 559, module: "Lobby" }, -]; diff --git a/packages/lobby/src/NPS_LOBBY_COMMANDS.ts b/packages/lobby/src/NPS_LOBBY_COMMANDS.ts deleted file mode 100644 index 1379582dc..000000000 --- a/packages/lobby/src/NPS_LOBBY_COMMANDS.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { GameMessageOpCode } from "../../interfaces/index.js"; -import { NPS_LOBBYCLIENT_COMMANDS } from "./NPS_LOBBYCLIENT_COMMANDS.js"; -import { NPS_LOBBYSERVER_COMMANDS } from "./NPS_LOBBYSERVER_COMMANDS.js"; - -/** - * @export - * @readonly - * @type {NpsCommandMap[]} - */ -export const NPS_LOBBY_COMMANDS: GameMessageOpCode[] = [ - ...NPS_LOBBYCLIENT_COMMANDS, - ...NPS_LOBBYSERVER_COMMANDS, -]; diff --git a/packages/lobby/src/UserInfoMessage.ts b/packages/lobby/src/UserInfoMessage.ts deleted file mode 100644 index 6ef0ea3f8..000000000 --- a/packages/lobby/src/UserInfoMessage.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { ServerError } from "../../shared/errors/ServerError.js"; -import { - LegacyMessage, - deserializeString, - serializeString, -} from "../../shared/messageFactory.js"; -// eslint-disable-next-line no-unused-vars -import { LoginInfoMessage } from "./LoginInfoMessage.js"; - -export class UserInfo { - _userId: number; - _userName: string; - _userData: Buffer; - constructor() { - this._userId = 0; // 4 bytes - this._userName = ""; // 4 bytes + string + 1 byte - this._userData = Buffer.alloc(64); // 64 bytes - } - - deserialize(buffer: Buffer) { - let offset = 0; - this._userId = buffer.readInt32BE(offset); - offset += 4; - this._userName = deserializeString(buffer.subarray(offset)); - offset += 4 + this._userName.length; - buffer.copy(this._userData, 0, offset, offset + 64); - return this; - } - - serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - buffer.writeInt32BE(this._userId, offset); - offset += 4; - offset = serializeString(this._userName, buffer, offset); - - this._userData.copy(buffer, offset); - return buffer; - } - - size() { - let size = 4; // userId - size += 4 + this._userName.length + 1; - size += this._userData.length; - return size; - } -} - -export class UserInfoMessage extends LegacyMessage { - _userId: number; - _userName: string; - _userData: Buffer; - constructor() { - super(); - this._userId = 0; // 4 bytes - this._userName = ""; // 4 bytes + string + 1 byte - this._userData = Buffer.alloc(64); // 64 bytes - } - - /** - * @param {Buffer} buffer - * @returns {UserInfoMessage} - */ - override deserialize(buffer: Buffer): this { - try { - this._header._doDeserialize(buffer); - let offset = this._header._size; - this._userId = buffer.readInt32BE(offset); - offset += 4; - this._userName = deserializeString(buffer.subarray(offset)); - offset += 4 + this._userName.length + 1; - buffer.copy(this._userData, 0, offset, offset + 64); - - return this; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error deserializing LoginInfoMessage", - ); - } - } - - /** - * @returns {Buffer} - */ - override serialize(): Buffer { - try { - const buffer = Buffer.alloc(this._header.length); - this._header._doSerialize().copy(buffer); - let offset = this._header._size; - buffer.writeInt32BE(this._userId, offset); - offset += 4; - offset = serializeString(this._userName, buffer, offset); - - this._userData.copy(buffer, offset); - - return buffer; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error serializing LoginInfoMessage", - ); - } - } - - /** - * @param {LoginInfoMessage} loginInfoMessage - */ - fromLoginInfoMessage(loginInfoMessage: LoginInfoMessage) { - this._userId = loginInfoMessage._userId; - this._userName = loginInfoMessage._userName; - this._userData = loginInfoMessage._userData; - this._header.length = this.calculateLength(); - return this; - } - - calculateLength() { - this._header._size = 4 + 4 + 64; - this._header.length += 4 + this._userName.length + 1; - this._header.length += this._userData.length; - return this._header.length; - } - - override toString() { - return `UserInfoMessage: ${JSON.stringify({ - userId: this._userId, - userName: this._userName, - userData: this._userData.toString("hex"), - })}`; - } -} diff --git a/packages/lobby/src/handlers/_setMyUserData.ts b/packages/lobby/src/handlers/_setMyUserData.ts deleted file mode 100644 index 777e04787..000000000 --- a/packages/lobby/src/handlers/_setMyUserData.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { getServerLogger } from "../../../shared/log.js"; -import { ServerError } from "../../../shared/errors/ServerError.js"; -import { LegacyMessage } from "../../../shared/messageFactory.js"; -import { UserInfo } from "../UserInfoMessage.js"; -import { getServerConfiguration } from "../../../shared/Configuration.js"; -import { getDatabaseServer } from "../../../database/src/DatabaseManager.js"; - -export async function _setMyUserData({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}) { - log.level = getServerConfiguration({}).logLevel ?? "info"; - - try { - log.debug("Handling NPS_SET_MY_USER_DATA"); - log.debug(`Received command: ${message.serialize().toString("hex")}`); - - const incomingMessage = new UserInfo(); - incomingMessage.deserialize(message.serialize()); - - log.debug(`User ID: ${incomingMessage._userId}`); - - // Get the database instance - const db = getDatabaseServer(); - - // Update the user's data - db.updateUser({ - userId: incomingMessage._userId, - userData: incomingMessage._userData, - }); - - // Build the packet - const packetResult = new LegacyMessage(); - packetResult._header.id = 516; - packetResult.deserialize(incomingMessage.serialize()); - - log.debug( - `Sending response: ${packetResult.serialize().toString("hex")}`, - ); - - return { - connectionId, - message: packetResult, - }; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error handling NPS_SET_MY_USER_DATA", - ); - } -} diff --git a/packages/lobby/src/handlers/encryptedCommand.ts b/packages/lobby/src/handlers/encryptedCommand.ts deleted file mode 100644 index 10b9fd451..000000000 --- a/packages/lobby/src/handlers/encryptedCommand.ts +++ /dev/null @@ -1,303 +0,0 @@ -import { getServerLogger } from "../../../shared/log.js"; -import { - fetchStateFromDatabase, - getEncryption, - updateEncryption, -} from "../../../shared/State.js"; -import { ServerError } from "../../../shared/errors/ServerError.js"; -import { - LegacyMessage, - MessageBuffer, - SerializedBuffer, -} from "../../../shared/messageFactory.js"; -import { getServerConfiguration } from "../../../shared/Configuration.js"; -import { handleSendMiniRiffList } from "./handleSendMiniRiffList.js"; -import { handleGetMiniUserList } from "./handleGetMiniUserList.js"; -import { _setMyUserData } from "./_setMyUserData.js"; -// eslint-disable-next-line no-unused-vars - -/** - * Array of supported command handlers - * - * @type {{ - * opCode: number, - * name: string, - * handler: (args: { - * connectionId: string, - * message: SerializedBuffer, - * log: import("pino").Logger, - * }) => Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>}[]} - */ -export const messageHandlers: { - opCode: number; - name: string; - handler: (args: { - connectionId: string; - message: SerializedBuffer; - log: import("pino").Logger; - }) => Promise<{ - connectionId: string; - messages: SerializedBuffer[]; - }>; -}[] = []; - -/** - * Takes an plaintext command packet and return the encrypted bytes - * - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage | MessageBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "Lobby" })] - * @returns {Promise<{ - * connectionId: string, - * message: LegacyMessage | MessageBuffer, - * }>} - */ -async function encryptCmd({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: LegacyMessage | MessageBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - message: LegacyMessage | MessageBuffer; -}> { - const state = fetchStateFromDatabase(); - - const encryption = getEncryption(state, connectionId); - - if (typeof encryption === "undefined") { - throw new ServerError( - `Unable to locate encryption session for connection id ${connectionId}`, - ); - } - - const result = encryption.commandEncryption.encrypt(message.data); - - updateEncryption(state, encryption).save(); - - log.debug(`[ciphered Cmd: ${result.toString("hex")}`); - - message.setBuffer(result); - - return { - connectionId, - message, - }; -} - -/** - * Takes an encrypted command packet and returns the decrypted bytes - * - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "Lobby" })] - * @returns {Promise<{ - * connectionId: string, - * message: LegacyMessage, - * }>} - */ -async function decryptCmd({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - message: LegacyMessage; -}> { - const state = fetchStateFromDatabase(); - - const encryption = getEncryption(state, connectionId); - - if (typeof encryption === "undefined") { - throw new ServerError( - `Unable to locate encryption session for connection id ${connectionId}`, - ); - } - - const result = encryption.commandEncryption.decrypt(message.data); - - updateEncryption(state, encryption).save(); - - log.debug(`[Deciphered Cmd: ${result.toString("hex")}`); - - message.setBuffer(result); - - return { - connectionId, - message, - }; -} - -export type NpsCommandHandler = { - opCode: number; - name: string; - handler: (args: { - connectionId: string; - message: LegacyMessage; - log: import("pino").Logger; - }) => Promise<{ - connectionId: string; - message: LegacyMessage; - }>; -}; - -const npsCommandHandlers: NpsCommandHandler[] = [ - { - opCode: 0x128, - name: "NPS_GET_MINI_USER_LIST", - handler: handleGetMiniUserList, - }, - { - opCode: 0x30c, - name: "NPS_SEND_MINI_RIFF_LIST", - handler: handleSendMiniRiffList, - }, - { - opCode: 0x103, - name: "NPS_SET_MY_USER_DATA", - handler: _setMyUserData, - }, -]; - -/** - * - * - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "Lobby" })] - * @return {Promise<{ - * connectionId: string, - * message: MessageBuffer | LegacyMessage, - * }>}} - */ -async function handleCommand({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - message: MessageBuffer | LegacyMessage; -}> { - log.level = getServerConfiguration({}).logLevel ?? "info"; - const incommingRequest = message; - - log.debug( - `Received command: ${incommingRequest._doSerialize().toString("hex")}`, - ); - - // What is the command? - const command = incommingRequest.data.readUInt16BE(0); - - log.debug(`Command: ${command}`); - - const handler = npsCommandHandlers.find((h) => h.opCode === command); - - if (typeof handler === "undefined") { - throw new ServerError(`Unknown command: ${command}`); - } - - return handler.handler({ - connectionId, - message, - log, - }); -} - -/** - * - * - * @param {object} args - * @param {string} args.connectionId - * @param {SerializedBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "Lobby" })] - * @returns {Promise<{ -* connectionId: string, -* messages: SerializedBuffer[], -* }>} - - */ -export async function handleEncryptedNPSCommand({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: SerializedBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.level = getServerConfiguration({}).logLevel ?? "info"; - - const inboundMessage = new LegacyMessage(); - inboundMessage._doDeserialize(message.data); - - // Decipher - const decipheredMessage = decryptCmd({ - connectionId, - message: inboundMessage, - log, - }); - - const response = handleCommand({ - connectionId, - message: (await decipheredMessage).message, - log, - }); - - // Encipher - const encryptedResponse = encryptCmd({ - connectionId, - message: (await response).message, - log, - }); - - const outboundMessage = new SerializedBuffer(); - outboundMessage.setBuffer((await encryptedResponse).message.serialize()); - - return { - connectionId, - messages: [outboundMessage], - }; -} - -export const channelRecordSize = 40; - -export const channels = [ - { - id: 0, - name: "Channel 1", - population: 1, - }, - { - id: 191, - name: "MCCHAT", - population: 0, - }, -]; diff --git a/packages/lobby/src/handlers/handleGetMiniUserList.ts b/packages/lobby/src/handlers/handleGetMiniUserList.ts deleted file mode 100644 index e91cfcd94..000000000 --- a/packages/lobby/src/handlers/handleGetMiniUserList.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { getServerLogger } from "../../../shared/log.js"; -import { ServerError } from "../../../shared/errors/ServerError.js"; -import { - GameMessage, - LegacyMessage, - serializeString, -} from "../../../shared/messageFactory.js"; -import { UserInfo } from "../UserInfoMessage.js"; -import { getServerConfiguration } from "../../../shared/Configuration.js"; -import { channelRecordSize, channels } from "./encryptedCommand.js"; - -const user1 = new UserInfo(); -user1._userId = 1; -user1._userName = "User 1"; -/** - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "Lobby" })] - */ - -export async function handleGetMiniUserList({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}) { - log.level = getServerConfiguration({}).logLevel ?? "info"; - - log.debug("Handling NPS_GET_MINI_USER_LIST"); - log.debug(`Received command: ${message._doSerialize().toString("hex")}`); - - const outgoingGameMessage = new GameMessage(553); - - const resultSize = channelRecordSize * channels.length - 12; - - const packetContent = Buffer.alloc(resultSize); - - let offset = 0; - try { - // Add the response code - packetContent.writeUInt32BE(17, offset); - offset += 4; // offset is 8 - - packetContent.writeUInt32BE(1, offset); - offset += 4; // offset is 12 - - // Write the count of users - packetContent.writeUInt32BE(1, offset); - offset += 4; // offset is 16 - - // write the persona id - packetContent.writeUInt32BE(user1._userId, offset); - offset += 4; // offset is 20 - - // write the persona name - serializeString(user1._userName, packetContent, offset); - - outgoingGameMessage.setRecordData(packetContent); - - // Build the packet - const packetResult = new LegacyMessage(); - packetResult._doDeserialize(outgoingGameMessage.serialize()); - - log.debug( - `Sending response: ${packetResult.serialize().toString("hex")}`, - ); - - return { - connectionId, - message: packetResult, - }; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error handling NPS_MINI_USER_LIST", - ); - } -} diff --git a/packages/lobby/src/handlers/handleSendMiniRiffList.ts b/packages/lobby/src/handlers/handleSendMiniRiffList.ts deleted file mode 100644 index ae03f6d0e..000000000 --- a/packages/lobby/src/handlers/handleSendMiniRiffList.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { getServerLogger } from "../../../shared/log.js"; -import { ServerError } from "../../../shared/errors/ServerError.js"; -import { - GameMessage, - LegacyMessage, - serializeString, -} from "../../../shared/messageFactory.js"; -import { getServerConfiguration } from "../../../shared/Configuration.js"; -import { channelRecordSize, channels } from "./encryptedCommand.js"; - -// const users = [user1]; -/** - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "Lobby" })] - */ -export async function handleSendMiniRiffList({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}) { - log.level = getServerConfiguration({}).logLevel ?? "info"; - - log.debug("Handling NPS_SEND_MINI_RIFF_LIST"); - log.debug(`Received command: ${message._doSerialize().toString("hex")}`); - - const outgoingGameMessage = new GameMessage(1028); - - const resultSize = channelRecordSize * channels.length - 12; - - const packetContent = Buffer.alloc(resultSize); - - let offset = 0; - try { - packetContent.writeUInt32BE(channels.length, offset); - offset += 4; // offset is 8 - - // loop through the channels - for (const channel of channels) { - offset = serializeString(channel.name, packetContent, offset); - - packetContent.writeUInt32BE(channel.id, offset); - offset += 4; - packetContent.writeUInt16BE(channel.population, offset); - offset += 2; - } - - outgoingGameMessage.setRecordData(packetContent); - - // Build the packet - const packetResult = new LegacyMessage(); - packetResult._doDeserialize(outgoingGameMessage.serialize()); - - log.debug( - `Sending response: ${packetResult.serialize().toString("hex")}`, - ); - - return { - connectionId, - message: packetResult, - }; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error handling NPS_SEND_MINI_RIFF_LIST", - ); - } -} diff --git a/packages/lobby/src/handlers/handleTrackingPing.ts b/packages/lobby/src/handlers/handleTrackingPing.ts deleted file mode 100644 index 8fd082e68..000000000 --- a/packages/lobby/src/handlers/handleTrackingPing.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { getServerConfiguration } from "../../../shared/Configuration.js"; -import { getServerLogger } from "../../../shared/log.js"; -import { SerializedBuffer } from "../../../shared/messageFactory.js"; - -export async function handleTrackingPing({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: SerializedBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.level = getServerConfiguration({}).logLevel ?? "info"; - - log.debug("Handling NPS_TRACKING_PING"); - log.debug(`Received command: ${message.toString()}`); - - log.debug("Skipping response"); - - return { - connectionId, - messages: [], - }; -} diff --git a/packages/lobby/src/handlers/heartbeat.js b/packages/lobby/src/handlers/heartbeat.js deleted file mode 100644 index 4fb628001..000000000 --- a/packages/lobby/src/handlers/heartbeat.js +++ /dev/null @@ -1,40 +0,0 @@ -import { getServerLogger } from "../../../shared/log.js"; -import { - NPSMessage, - SerializedBuffer, -} from "../../../shared/messageFactory.js"; - -/** - * @param {object} args - * @param {string} args.connectionId - * @param {SerializedBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "Lobby" })] - * @returns {Promise<{ - * connectionId: string - * messages: SerializedBuffer[], - * }>} - */ -export async function _npsHeartbeat({ - connectionId, - // @ts-ignore - message, // eslint-disable-line no-unused-vars - log = getServerLogger({ - module: "_npsHeartbeat", - }), -}) { - const packetContent = Buffer.alloc(8); - const packetResult = new NPSMessage(); - packetResult._header.id = 0x127; - packetResult.setBuffer(packetContent); - - log.debug("Dumping packet..."); - log.debug(packetResult.toString()); - - const outboundMessage = new SerializedBuffer(); - outboundMessage._doDeserialize(packetResult.serialize()); - - return { - connectionId, - messages: [outboundMessage], - }; -} diff --git a/packages/lobby/src/handlers/index.js b/packages/lobby/src/handlers/index.js deleted file mode 100644 index 9452a5d82..000000000 --- a/packages/lobby/src/handlers/index.js +++ /dev/null @@ -1,41 +0,0 @@ -// eslint-disable-next-line no-unused-vars -import { SerializedBuffer } from "../../../shared/messageFactory.js"; -import { handleEncryptedNPSCommand } from "./encryptedCommand.js"; -import { _npsHeartbeat } from "./heartbeat.js"; -import { _npsRequestGameConnectServer } from "./requestConnectGameServer.js"; - -/** - * @typedef {object} ServiceArgs - * @property {string} connectionId - * @property {SerializedBuffer} message - * @property {import("pino").Logger} log - */ - -/** - * @typedef {object} ServiceResponse - * @property {string} connectionId - * @property {SerializedBuffer[] } messages - */ - -/** - * @exports - * @typedef {object} GameMessageHandler - * @property {number} opCode - * @property {string} name - * @property {function(ServiceArgs): Promise} handler - */ - -/** @type {GameMessageHandler[]} */ -export const handlerMap = [ - { - opCode: 100, - name: "Connect game server", - handler: _npsRequestGameConnectServer, - }, - { opCode: 217, name: "Heartbeat", handler: _npsHeartbeat }, - { - opCode: 1101, - name: "Encrypted command", - handler: handleEncryptedNPSCommand, - }, -]; diff --git a/packages/lobby/src/handlers/requestConnectGameServer.ts b/packages/lobby/src/handlers/requestConnectGameServer.ts deleted file mode 100644 index e30a2ca99..000000000 --- a/packages/lobby/src/handlers/requestConnectGameServer.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { getServerLogger } from "../../../shared/log.js"; -import { getPersonasByPersonaId } from "../../../persona/src/getPersonasByPersonaId.js"; -import { getDatabaseServer } from "../../../database/src/DatabaseManager.js"; -import { LoginInfoMessage } from "../LoginInfoMessage.js"; - -import { ServerError } from "../../../shared/errors/ServerError.js"; -import { UserInfoMessage } from "../UserInfoMessage.js"; -import { - createCommandEncryptionPair, - createDataEncryptionPair, -} from "../../../gateway/src/encryption.js"; -import { - McosEncryption, - addEncryption, - fetchStateFromDatabase, - getEncryption, -} from "../../../shared/State.js"; -import { SerializedBuffer } from "../../../shared/messageFactory.js"; - -/** - * Convert to zero padded hex - * - * @export - * @param {Buffer} data - * @return {string} - */ -export function toHex(data: Buffer): string { - /** @type {string[]} */ - const bytes: string[] = []; - data.forEach((b: number) => { - bytes.push(b.toString(16).toUpperCase().padStart(2, "0")); - }); - return bytes.join(""); -} - -/** - * Handle a request to connect to a game server packet - * - * @private - * @param {import("../../../interfaces/index.js").ServiceArgs} args - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - */ -export async function _npsRequestGameConnectServer({ - connectionId, - message, - log = getServerLogger({ - module: "LoginServer", - }), -}: import("../../../interfaces/index.js").ServiceArgs): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - // This is a NPS_LoginInfo packet - // As a legacy packet, it used the old NPSMessage format - // of a 4 byte header, followed by a 4 byte length, followed - // by the data payload. - - const inboundMessage = new LoginInfoMessage(); - inboundMessage.deserialize(message.data); - - log.debug(`LoginInfoMessage: ${inboundMessage.toString()}`); - - const personas = await getPersonasByPersonaId({ - id: inboundMessage._userId, - }); - if (typeof personas[0] === "undefined") { - const err = new ServerError("No personas found."); - throw err; - } - - const { customerId } = personas[0]; - - const state = fetchStateFromDatabase(); - - const existingEncryption = getEncryption(state, connectionId); - - if (!existingEncryption) { - // Set the encryption keys on the lobby connection - const databaseManager = getDatabaseServer({ log }); - const keys = await databaseManager - .fetchSessionKeyByCustomerId(customerId) - .catch((/** @type {unknown} */ error: unknown) => { - throw new ServerError( - `Unable to fetch session key for customerId ${customerId.toString()}: ${String( - error, - )}`, - ); - }); - if (keys === undefined) { - throw new ServerError("Error fetching session keys!"); - } - - // We have the session keys, set them on the connection - try { - const newCommandEncryptionPair = createCommandEncryptionPair( - keys.sessionKey, - ); - - const newDataEncryptionPair = createDataEncryptionPair( - keys.sessionKey, - ); - - const newEncryption = new McosEncryption({ - connectionId, - commandEncryptionPair: newCommandEncryptionPair, - dataEncryptionPair: newDataEncryptionPair, - }); - - addEncryption(state, newEncryption).save(); - } catch (error) { - throw new ServerError(`Error creating encryption: ${error}`); - } - } - - // We have a session, we are good to go! - // Send the response packet - - const responsePacket = new UserInfoMessage(); - responsePacket.fromLoginInfoMessage(inboundMessage); - - responsePacket._header.id = 0x120; - - // log the packet - log.debug( - `!!! outbound lobby login response packet: ${responsePacket.toString()}`, - ); - - const outboundMessage = new SerializedBuffer(); - outboundMessage._doDeserialize(responsePacket.serialize()); - - return { - connectionId, - messages: [outboundMessage], - }; -} diff --git a/packages/lobby/src/internal.ts b/packages/lobby/src/internal.ts deleted file mode 100644 index bca479286..000000000 --- a/packages/lobby/src/internal.ts +++ /dev/null @@ -1,151 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { _npsRequestGameConnectServer } from "./handlers/requestConnectGameServer.js"; -import { handleEncryptedNPSCommand } from "./handlers/encryptedCommand.js"; -import { getServerLogger } from "../../shared/log.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { getServerConfiguration } from "../../shared/Configuration.js"; -import { - LegacyMessage, - NPSMessage, - SerializedBuffer, -} from "../../shared/messageFactory.js"; -import { handleTrackingPing } from "./handlers/handleTrackingPing.js"; - -/** - * Array of supported message handlers - * - * @type {{ - * opCode: number, - * name: string, - * handler: (args: { - * connectionId: string, - * message: SerializedBuffer, - * log: import("pino").Logger, - * }) => Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>}[]} - */ -export const messageHandlers: { - opCode: number; - name: string; - handler: (args: { - connectionId: string; - message: SerializedBuffer; - log: import("pino").Logger; - }) => Promise<{ - connectionId: string; - messages: SerializedBuffer[]; - }>; -}[] = [ - { - opCode: 256, // 0x100 - name: "User login", - handler: _npsRequestGameConnectServer, - }, - { - opCode: 4353, // 0x1101 - name: "Encrypted command", - handler: handleEncryptedNPSCommand, - }, - { - opCode: 535, // 0x0217 - name: "Tracking ping", - handler: handleTrackingPing, - }, -]; - -/** - * @param {object} args - * @param {string} args.connectionId - * @param {SerializedBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "PersonaServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - * @throws {Error} Unknown code was received - */ -export async function receiveLobbyData({ - connectionId, - message, - log = getServerLogger({ - module: "Lobby", - }), -}: { - connectionId: string; - message: SerializedBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.level = getServerConfiguration({}).logLevel ?? "info"; - - /** @type {LegacyMessage | NPSMessage} */ - let inboundMessage: LegacyMessage | NPSMessage; - - // Check data length - const dataLength = message.data.length; - - if (dataLength < 4) { - throw new ServerError( - `Data length ${dataLength} is too short to deserialize`, - ); - } - - if (dataLength > 12) { - inboundMessage = new NPSMessage(); - } else { - inboundMessage = new LegacyMessage(); - } - - inboundMessage._doDeserialize(message.data); - - const { data } = message; - log.debug( - `Received Lobby packet', - ${JSON.stringify({ - data: data.toString("hex"), - })}`, - ); - - const supportedHandler = messageHandlers.find((h) => { - return h.opCode === inboundMessage._header.id; - }); - - if (typeof supportedHandler === "undefined") { - // We do not yet support this message code - throw new ServerError( - `UNSUPPORTED_MESSAGECODE: ${inboundMessage._header.id}`, - ); - } - - try { - const result = await supportedHandler.handler({ - connectionId, - message, - log, - }); - log.debug(`Returning with ${result.messages.length} messages`); - log.debug("Leaving receiveLobbyData"); - return result; - } catch (error) { - throw new ServerError(`Error handling lobby data: ${String(error)}`); - } -} diff --git a/packages/lobby/test/handlers/handleSendMiniRiffList.test.ts b/packages/lobby/test/handlers/handleSendMiniRiffList.test.ts deleted file mode 100644 index 76c2445ee..000000000 --- a/packages/lobby/test/handlers/handleSendMiniRiffList.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { LegacyMessage } from "../../../shared/messageFactory.js"; -import { handleSendMiniRiffList } from "../../src/handlers/handleSendMiniRiffList.js"; -import { describe, it, expect } from "vitest"; - -describe("handleSendMiniRiffList", () => { - it("should return a buffer", async () => { - // arrange - const incomingMessage = new LegacyMessage(); - - const result = await handleSendMiniRiffList({ - connectionId: "test", - message: incomingMessage, - }); - - expect(result.message).toBeInstanceOf(LegacyMessage); - }); -}); diff --git a/packages/login/src/NPSUserStatus.ts b/packages/login/src/NPSUserStatus.ts deleted file mode 100644 index 5f31d7975..000000000 --- a/packages/login/src/NPSUserStatus.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { privateDecrypt } from "node:crypto"; -import { readFileSync } from "node:fs"; - -import { ServerError } from "../../shared/errors/ServerError.js"; -import { LegacyMessage } from "../../shared/messageFactory.js"; -import { Configuration } from "../../shared/Configuration.js"; -import { Logger } from "pino"; - -/** - * @typedef {import("../../shared/Configuration.js").Configuration} Configuration - */ - -/** - * - * - * @export - * @typedef {object} NPSMessageValues - * @property {number} msgNo - * @property {number} msgVersion - * @property {number} reserved - * @property {Buffer} content - * @property {number} msgLength - * @property {"sent" | "received"} direction - * @property {string} serviceName - */ -/** - * - * @class NPSUserStatus - * @property {string} sessionKey - * @property {string} opCode - * @property {Buffer} buffer - */ - -export class NPSUserStatus extends LegacyMessage { - _config: Configuration; - log: Logger; - sessionKey: string; - opCode: number; - contextId: string; - buffer: Buffer; - /** - * - * @param {Buffer} packet - * @param {Configuration} config - * @param {import("pino").Logger} log - */ - constructor( - packet: Buffer, - config: Configuration, - log: import("pino").Logger, - ) { - super(); - this._config = config; - this.log = log; - log.debug("Constructing NPSUserStatus"); - this._header._doDeserialize(packet); - this.sessionKey = ""; - - // Save the NPS opCode - this.opCode = packet.readInt16BE(0); - - // Save the contextId - this.contextId = packet.subarray(14, 48).toString(); - - // Save the raw packet - this.buffer = packet; - } - - /** - * ExtractSessionKeyFromPacket - * - * Take 128 bytes - * They are the utf-8 of the hex bytes that are the key - * - * @param {Buffer} rawPacket - * @return {void} - */ - extractSessionKeyFromPacket(rawPacket: Buffer): void { - this.log.debug("Extracting key"); - - // Extract the session key which is 128 acsii characters (256 bytes) - const sessionKeyAsAscii = rawPacket.subarray(52, 308).toString("utf8"); - this.log.trace(`Session key: ${sessionKeyAsAscii}`); - - // length of the session key should be 128 bytes - const sessionkeyString = Buffer.from(sessionKeyAsAscii, "hex"); - // Decrypt the sessionkey - try { - if (!this._config.privateKeyFile) { - throw new ServerError("No private key file specified"); - } - const privatekeyContents = readFileSync( - this._config.privateKeyFile, - ); - - const decrypted = privateDecrypt( - { - key: privatekeyContents, - }, - sessionkeyString, - ); // length of decrypted should be 128 bytes - this.sessionKey = decrypted.subarray(2, -4).toString("hex"); // length of session key should be 12 bytes - } catch (error) { - this.log.trace(`Session key: ${sessionkeyString.toString("utf8")}`); // 128 bytes - this.log.trace(`decrypted: ${this.sessionKey}`); // 12 bytes - this.log.error(`Error decrypting session key: ${String(error)}`); - throw new ServerError( - `Unable to extract session key: ${String(error)}`, - ); - } - } - - toJSON() { - this.log.debug("Returning as JSON"); - return { - msgNo: this._header.id, - msgLength: this._header.length, - content: this.data.toString("hex"), - contextId: this.contextId, - sessionKey: this.sessionKey, - rawBuffer: this.buffer.toString("hex"), - }; - } - - /** - * @return {string} - */ - dumpPacket(): string { - this.log.debug("Returning as string"); - let message = this._header.toString(); - message = message.concat( - `NPSUserStatus, - ${JSON.stringify({ - contextId: this.contextId, - sessionkey: this.sessionKey, - })}`, - ); - return message; - } -} diff --git a/packages/login/src/NPS_LOGINCLIENT_COMMANDS.ts b/packages/login/src/NPS_LOGINCLIENT_COMMANDS.ts deleted file mode 100644 index f0fa79993..000000000 --- a/packages/login/src/NPS_LOGINCLIENT_COMMANDS.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Commands from the game client to the login server - * @export - * @readonly - * @type {TNPS_COMMAND_MAP[]} - */ - -import { GameMessageOpCode } from "../../interfaces/index.js"; - -export const NPS_LOGINCLIENT_COMMANDS: GameMessageOpCode[] = [ - { name: "NPS_USER_LOGIN", value: 1281, module: "Login" }, - { name: "NPS_GAME_LOGIN", value: 1282, module: "Login" }, - { name: "NPS_REGISTER_GAME_LOGIN", value: 1283, module: "Login" }, - { name: "NPS_SET_GAME_BLOB", value: 1284, module: "Login" }, - { name: "NPS_GET_NEXT_SERVER", value: 1285, module: "Login" }, - { name: "NPS_NEW_EA_ACCOUNT", value: 1286, module: "Login" }, - { name: "NPS_NEW_GAME_ACCOUNT", value: 1287, module: "Login" }, - { name: "NPS_UPDATE_EA_ACCOUNT", value: 1288, module: "Login" }, - { name: "NPS_UPDATE_GAME_ACCOUNT", value: 1289, module: "Login" }, - { name: "NPS_LOCATE_PLAYER", value: 1290, module: "Login" }, - { name: "NPS_GET_BUDDY_LIST", value: 1291, module: "Login" }, - { name: "NPS_ADD_BUDDY_LIST", value: 1292, module: "Login" }, - { name: "NPS_DELETE_BUDDY_LIST", value: 1293, module: "Login" }, - { name: "NPS_CLEAR_BUDDY_LIST", value: 1294, module: "Login" }, - { name: "NPS_REGISTER_GAME_LOGOUT", value: 1295, module: "Login" }, - { name: "NPS_GET_GENERIC_HS_DATA", value: 1296, module: "Login" }, - { name: "NPS_PUT_GENERIC_HS_DATA", value: 1297, module: "Login" }, - { name: "NPS_DELETE_GAME_PERSONA", value: 1298, module: "Login" }, - { name: "NPS_READ_SERVER_DATA_LIST", value: 1299, module: "Login" }, - { name: "NPS_DELETE GENERIC_HS_DATA", value: 1300, module: "Login" }, - { name: "NPS_GET_PLAYER_RANK", value: 1301, module: "Login" }, - { name: "NPS_GET_TOP_PLAYERS", value: 1302, module: "Login" }, - { name: "NPS_ADD_BUDDY_BY_NAME", value: 1303, module: "Login" }, - { name: "NPS_GET_BUDDY_INFO", value: 1304, module: "Login" }, - { name: "NPS_GET_PERSONA_INFO", value: 1305, module: "Login" }, - { name: "NPS_GET_LEADER_BOARD", value: 1306, module: "Login" }, - { name: "NPS_SRP_USERNAME", value: 1307, module: "Login" }, - { name: "NPS_SRP_NGS", value: 1308, module: "Login" }, - { name: "NPS_SRP_A", value: 1309, module: "Login" }, - { name: "NPS_SRP_B", value: 1310, module: "Login" }, - { name: "NPS_SRP_USER_VERIFY", value: 1311, module: "Login" }, - { name: "NPS_SRP_SERVER_VERIFY", value: 1312, module: "Login" }, - { name: "NPS_FILE_BUG_REPORT", value: 1313, module: "Login" }, - { name: "NPS_GET_GENERIC_FIELD_RANKING", value: 1314, module: "Login" }, - { name: "NPS_SEND_EMAIL", value: 1315, module: "Login" }, - { name: "NPS_RECEIVE_EMAIL", value: 1316, module: "Login" }, - { name: "NPS_DELETE_EMAILS", value: 1317, module: "Login" }, - { name: "NPS_LIST_EMAILS", value: 1318, module: "Login" }, - { name: "NPS_AAI_REQUEST", value: 1328, module: "Login" }, - { name: "NPS_AAI_CRACK", value: 1329, module: "Login" }, - { name: "NPS_GET_PERSONA_MAPS", value: 1330, module: "Login" }, - { name: "NPS_VALIDATE_PERSONA_NAME", value: 1331, module: "Login" }, - { name: "NPS_CHECK_TOKEN", value: 1332, module: "Login" }, - { name: "NPS_GET_USER_STATUS", value: 1333, module: "Login" }, -]; diff --git a/packages/login/src/NPS_LOGIN_COMMANDS.ts b/packages/login/src/NPS_LOGIN_COMMANDS.ts deleted file mode 100644 index 407bc17ff..000000000 --- a/packages/login/src/NPS_LOGIN_COMMANDS.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { GameMessageOpCode } from "../../interfaces/index.js"; -import { NPS_LOGINCLIENT_COMMANDS } from "./NPS_LOGINCLIENT_COMMANDS.js"; - -/** - * @export - * @readonly - * @type {TNPS_COMMAND_MAP[]} - */ - -export const NPS_LOGIN_COMMANDS: GameMessageOpCode[] = [ - ...NPS_LOGINCLIENT_COMMANDS, -]; diff --git a/packages/login/src/index.ts b/packages/login/src/index.ts deleted file mode 100644 index 7ab4c5dd7..000000000 --- a/packages/login/src/index.ts +++ /dev/null @@ -1,168 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { getDatabaseServer } from "../../database/src/DatabaseManager.js"; -import { DatabaseManager } from "../../interfaces/index.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { getServerLogger } from "../../shared/log.js"; -import { NPSMessage } from "../../shared/messageFactory.js"; -import { handleLoginData } from "./internal.js"; - -/** - * Please use {@link LoginServer.getInstance()} - */ -export class LoginServer { - databaseManager: DatabaseManager; - _log: any; - static _instance: LoginServer | undefined; - /** - * Please use {@see LoginServer.getInstance} instead - * @param {object} options - * @param {import("../../interfaces/index.js").DatabaseManager} options.database - * @param {import("pino").Logger} [options.log=getServerLogger({ module: "LoginServer" })] - * @memberof LoginServer - */ - constructor({ - database = getDatabaseServer(), - log = getServerLogger({ - module: "LoginServer", - }), - }: { - database: import("../../interfaces/index.js").DatabaseManager; - log?: import("pino").Logger; - }) { - this.databaseManager = database; - this._log = log; - LoginServer._instance = this; - } - - /** - * Get the single instance of the login server - * - * @static - * @param {import("../../interfaces/index.js").DatabaseManager} database - * @param {import("pino").Logger} log - * @return {LoginServer} - */ - static getInstance( - database: import("../../interfaces/index.js").DatabaseManager, - log: import("pino").Logger, - ): LoginServer { - if (typeof LoginServer._instance === "undefined") { - LoginServer._instance = new LoginServer({ - database, - log, - }); - } - return LoginServer._instance; - } - - /** - * - * @param {string} contextId - * @return {import("../../interfaces/index.js").UserRecordMini} - */ - _npsGetCustomerIdByContextId( - contextId: string, - ): import("../../interfaces/index.js").UserRecordMini { - this._log.debug(">>> _npsGetCustomerIdByContextId"); - /** @type {import("../../interfaces/index.js").UserRecordMini[]} */ - const users: import("../../interfaces/index.js").UserRecordMini[] = [ - { - contextId: "5213dee3a6bcdb133373b2d4f3b9962758", - customerId: 0x0012808b, - userId: 0x00000002, - }, - { - contextId: "d316cd2dd6bf870893dfbaaf17f965884e", - customerId: 0x0054b46c, - userId: 0x00000001, - }, - ]; - if (contextId.toString() === "") { - const err = new ServerError( - `Unknown contextId: ${contextId.toString()}`, - ); - throw err; - } - - const userRecord = users.filter((user) => user.contextId === contextId); - if (typeof userRecord[0] === "undefined" || userRecord.length !== 1) { - this._log.debug( - `preparing to leave _npsGetCustomerIdByContextId after not finding record', - ${JSON.stringify({ - contextId, - })}`, - ); - const err = new ServerError( - `Unable to locate user record matching contextId ${contextId}`, - ); - throw err; - } - - this._log.debug( - `preparing to leave _npsGetCustomerIdByContextId after finding record', - ${JSON.stringify({ - contextId, - userRecord, - })}`, - ); - return userRecord[0]; - } -} - -/** @type {LoginServer | undefined} */ -LoginServer._instance = undefined; - -/** - * Entry and exit point of the Login service - * - * @export - * @param {object} args - * @param {string} args.connectionId - * @param {NPSMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "LoginServer" })] - * - * @return {Promise} - */ -export async function receiveLoginData({ - connectionId, - message, - log = getServerLogger({ - module: "LoginServer", - }), -}: { - connectionId: string; - message: NPSMessage; - log?: import("pino").Logger; -}): Promise { - try { - log.debug("Entering login module"); - const response = await handleLoginData({ - connectionId, - message, - log, - }); - log.debug(`There are ${response.messages.length} messages`); - log.debug("Exiting login module"); - return response; - } catch (error) { - const err = new ServerError( - `There was an error in the login service: ${String(error)}`, - ); - throw err; - } -} diff --git a/packages/login/src/internal.ts b/packages/login/src/internal.ts deleted file mode 100644 index 2c14bb16c..000000000 --- a/packages/login/src/internal.ts +++ /dev/null @@ -1,252 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { getServerConfiguration } from "../../shared/Configuration.js"; -import { NPSUserStatus } from "./NPSUserStatus.js"; -import { getServerLogger } from "../../shared/log.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { getDatabaseServer } from "../../database/src/DatabaseManager.js"; -import { NPSMessage, SerializedBuffer } from "../../shared/messageFactory.js"; -import { NetworkMessage } from "../../shared/src/NetworkMessage.js"; - -/** @type {import("../../interfaces/index.js").UserRecordMini[]} */ -const userRecords: import("../../interfaces/index.js").UserRecordMini[] = [ - { - contextId: "5213dee3a6bcdb133373b2d4f3b9962758", - customerId: 0x0012808b, - userId: 0x00000002, - }, - { - contextId: "d316cd2dd6bf870893dfbaaf17f965884e", - customerId: 0x0054b46c, - userId: 0x00000001, - }, -]; - -/** - * Process a UserLogin packet - * @private - * @param {object} args - * @param {string} args.connectionId - * @param {SerializedBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "LoginServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - */ -async function login({ - connectionId, - message, - log = getServerLogger({ - module: "LoginServer", - }), -}: { - connectionId: string; - message: SerializedBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - const data = message.serialize(); - - log.debug(`Received login packet: ${connectionId}`); - - log.debug("Requesting NPSUserStatus packet"); - const userStatus = new NPSUserStatus(data, getServerConfiguration({}), log); - log.debug("NPSUserStatus packet creation success"); - - log.debug("Requesting Key extraction"); - userStatus.extractSessionKeyFromPacket(data); - log.debug("Key extraction success"); - - const { contextId, sessionKey } = userStatus; - - log.debug( - `UserStatus object from _userLogin, - ${JSON.stringify({ - userStatus: userStatus.toJSON(), - })}`, - ); - userStatus.dumpPacket(); - - // Load the customer record by contextId - // TODO: #1175 Move customer records from being hard-coded to database records - const userRecord = userRecords.find((r) => { - return r.contextId === contextId; - }); - - if (typeof userRecord === "undefined") { - // We were not able to locate the user's record - const err = new ServerError( - `Unable to locate a user record for the context id: ${contextId}`, - ); - throw err; - } - - // Save sessionkey in database under customerId - log.debug("Preparing to update session key in db"); - await getDatabaseServer() - .updateSessionKey( - userRecord.customerId, - sessionKey ?? "", - contextId, - connectionId, - ) - .catch((error) => { - const err = new ServerError( - `Unable to update session key in the database: ${String( - error, - )}`, - ); - throw err; - }); - - log.debug("Session key updated"); - - const outboundMessage = new NetworkMessage(0x601); - - const dataBuffer = Buffer.alloc(26); - let offset = 0; - dataBuffer.writeInt32BE(userRecord.customerId, offset); - offset += 4; - dataBuffer.writeInt32BE(userRecord.userId, offset); - offset += 4; - dataBuffer.writeInt8(0, offset); // isCacheHit - offset += 1; - dataBuffer.writeInt8(0, offset); // ban - offset += 1; - dataBuffer.writeInt8(0, offset); // gag - offset += 1; - dataBuffer.write(sessionKey ?? "", offset, 12, "ascii"); - - const packetContent = dataBuffer; - - // Set the packet content in the outbound message - outboundMessage.data = packetContent; - - log.debug("Returning login response"); - log.debug(`Outbound message: ${outboundMessage.asHex()}`); - - const outboundMessage2 = new SerializedBuffer(); - outboundMessage2._doDeserialize(outboundMessage.serialize()); - - log.debug( - `Outbound message 2: ${outboundMessage2.serialize().toString("hex")}`, - ); - - // Update the data buffer - const response = { - connectionId, - messages: [outboundMessage2, outboundMessage2], - }; - log.debug("Leaving login"); - return response; -} - -/** - * Array of supported message handlers - * - * @type {{ - * opCode: number, - * name: string, - * handler: (args: { - * connectionId: string, - * message: SerializedBuffer, - * log: import("pino").Logger, - * }) => Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>}[]} - */ -export const messageHandlers: { - opCode: number; - name: string; - handler: (args: { - connectionId: string; - message: SerializedBuffer; - log: import("pino").Logger; - }) => Promise<{ - connectionId: string; - messages: SerializedBuffer[]; - }>; -}[] = [ - { - opCode: 1281, // 0x0501 - name: "UserLogin", - handler: login, - }, -]; - -/** - * Entry and exit point of the Login service - * - * @export - * @param {object} args - * @param {string} args.connectionId - * @param {SerializedBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "LoginServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - */ -export async function handleLoginData({ - connectionId, - message, - log = getServerLogger({ - module: "handleLoginData", - }), -}: { - connectionId: string; - message: SerializedBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.level = getServerConfiguration({}).logLevel ?? "info"; - log.debug(`Received Login Server packet: ${connectionId}`); - - // The packet needs to be an NPSMessage - const inboundMessage = new NPSMessage(); - inboundMessage._doDeserialize(message.serialize()); - - const supportedHandler = messageHandlers.find((h) => { - return h.opCode === inboundMessage._header.id; - }); - - if (typeof supportedHandler === "undefined") { - // We do not yet support this message code - throw new ServerError( - `UNSUPPORTED_MESSAGECODE: ${inboundMessage._header.id}`, - ); - } - - try { - const result = await supportedHandler.handler({ - connectionId, - message, - log, - }); - log.debug(`Returning with ${result.messages.length} messages`); - log.debug("Leaving handleLoginData"); - return result; - } catch (error) { - throw new ServerError(`Error handling login data: ${String(error)}`); - } -} diff --git a/packages/login/src/premadeLogin.ts b/packages/login/src/premadeLogin.ts deleted file mode 100644 index e78bd4113..000000000 --- a/packages/login/src/premadeLogin.ts +++ /dev/null @@ -1,277 +0,0 @@ -/** - * This is the response packet sent on the login port in response to a UserLogin - * - * @return {Buffer} - */ - -export function premadeLogin() { - // TODO: #1181 Generate a dynamic login response message - return Buffer.from([ - // Live Packet - 0x06, - 0x01, // MsgId: 0x601 = NPS_USER_VALID = 1537 - - 0x01, - 0x00, // Packet Length: 0x003a = 58 - - 0x21, - 0xf9, - 0x17, - 0xf2, // CustomerId: 0x21f917f2 = 568000498 - - 0x28, - 0x85, - 0xd1, - 0x47, // PersonaId: 0x2885d147 = 676000007 - - 0xab, // IsCacheHit: 0xab = 171 - - 0x01, // Ban: 0x01 = 1 - - 0x00, // Gag: 0x00 = 0 - - 0x00, - 0xec, - 0xf7, - 0xba, // SessionKey: 0x00ecf7ba = 155000186 - - 0x7f, - 0x45, - 0x62, - 0x53, - 0x62, - 0xfe, - - 0x53, - 0x7b, - 0x03, - 0x11, - 0x27, - 0x72, - 0xbd, - 0xa3, - 0x3d, - 0xa3, - 0x06, - 0x52, - 0x3a, - 0xfb, - 0x7c, - 0xd6, - 0xd5, - 0xdb, - 0x85, - 0x3d, - 0x73, - 0x66, - 0x8f, - 0x26, - 0x69, - 0x65, - 0x07, - 0x37, - 0x7a, - 0xe8, - 0xc9, - 0x45, - 0x99, - 0x6a, - 0xaf, - 0xe5, - 0xdf, - 0x1c, - 0xbd, - 0x1f, - 0x30, - 0xdc, - 0x5a, - 0x1a, - 0x29, - 0x4d, - 0xab, - 0x3d, - 0x0b, - 0x15, - 0xdf, - 0x33, - 0x32, - 0xdc, - 0x1e, - 0xe8, - 0x75, - 0x8b, - 0x54, - 0x34, - 0x26, - 0x0d, - 0x3a, - 0xa2, - 0xcf, - 0x2d, - 0x26, - 0x3d, - 0x7d, - 0xf7, - 0xec, - 0x3c, - 0x52, - 0xb2, - 0x34, - 0x57, - 0xc1, - 0x07, - 0xd7, - 0x6a, - 0xd4, - 0xdc, - 0x1e, - 0xd0, - 0x07, - 0x31, - 0xdd, - 0xe7, - 0x92, - 0x4b, - 0xf2, - 0x56, - 0xc8, - 0xb1, - 0x00, - 0x4d, - 0xd6, - 0xe8, - 0x79, - 0x14, - 0xf0, - 0x72, - 0x71, - 0x41, - 0x6d, - 0xce, - 0x11, - 0xe2, - 0xae, - 0x9d, - 0xec, - 0x55, - 0x6e, - 0xdd, - 0xdf, - 0xfa, - 0xdb, - 0x09, - 0x74, - 0x61, - 0x8c, - 0x67, - 0xf6, - 0xf7, - 0x65, - 0xf3, - 0x98, - 0xfd, - 0x6d, - 0x97, - 0x4b, - 0x3f, - 0x54, - 0x85, - 0x4f, - 0x2a, - 0x69, - 0x02, - 0xbe, - 0xb6, - 0xd4, - 0xa3, - 0x2f, - 0x5b, - 0x86, - 0x58, - 0x19, - 0xbd, - 0xa9, - 0x9e, - 0x21, - 0x63, - 0x50, - 0x9c, - 0x43, - 0x83, - 0x42, - 0xfa, - 0xa5, - 0x81, - 0x5c, - 0x1f, - 0xad, - 0x06, - 0x64, - 0x64, - 0x7f, - 0xe1, - 0x2b, - 0xdb, - 0xd0, - 0xee, - 0xa6, - 0x04, - 0x11, - 0x9a, - 0x00, - 0x00, - 0x00, - 0x00, - 0xb4, - 0x43, - 0xf5, - 0x00, - 0x00, - 0x27, - 0x1f, - 0x07, - 0xa3, - 0xbf, - 0x17, - 0x3d, - 0x9b, - 0x2e, - 0xde, - 0xae, - 0xdf, - 0x46, - 0x2f, - 0x30, - 0x11, - 0x70, - 0xbe, - 0x5f, - 0x90, - 0x46, - 0x0c, - 0x28, - 0x33, - 0xf0, - 0x08, - 0x88, - 0x03, - 0x05, - 0xbf, - 0xe5, - 0x53, - 0xcd, - 0xfa, - 0x45, - 0x77, - 0x2e, - 0x90, - 0xf3, - 0x4d, - 0xd1, - 0x44, - 0x89, - 0x00, - 0x00, - 0x00, // (0xa6 was old val) - ]); -} diff --git a/packages/login/test/LoginServer.test.ts b/packages/login/test/LoginServer.test.ts deleted file mode 100644 index 092187ee1..000000000 --- a/packages/login/test/LoginServer.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { describe, it, expect } from "vitest"; -import { LoginServer } from "../src/index.js"; -import { - mockDatabaseManager, - mockPino, - unmockPino, -} from "../../../test/factoryMocks.js"; -import { getServerLogger } from "../../shared/log.js"; - -describe("LoginServer", () => { - describe("constructor", () => { - it("should create a new instance", () => { - mockPino(); - const loginServer = new LoginServer({ - database: mockDatabaseManager(), - log: getServerLogger({}), - }); - expect(loginServer).toBeDefined(); - unmockPino(); - }); - }); -}); diff --git a/packages/mcots/ClientConnectionManager.ts b/packages/mcots/ClientConnectionManager.ts new file mode 100644 index 000000000..402201c26 --- /dev/null +++ b/packages/mcots/ClientConnectionManager.ts @@ -0,0 +1,49 @@ +import type { Connection } from "rusty-motors-connection"; + +export class ClientConnectionManager { + static _instance: ClientConnectionManager; + + static getInstance() { + if (!ClientConnectionManager._instance) { + ClientConnectionManager._instance = new ClientConnectionManager(); + } + return ClientConnectionManager._instance; + } + private _connections: Map = new Map(); + + public addConnection(connection: Connection) { + this._connections.set(connection.id, connection); + } + + public removeConnection(connectionId: string) { + this._connections.delete(connectionId); + } + + public getConnection(connectionId: string): Connection | undefined { + return this._connections.get(connectionId); + } + + public getConnections(): Connection[] { + return Array.from(this._connections.values()); + } + + public clearConnections() { + this._connections.clear(); + } + + static addConnection(connection: Connection) { + ClientConnectionManager.getInstance().addConnection(connection); + } + + static removeConnection(connectionId: string) { + ClientConnectionManager.getInstance().removeConnection(connectionId); + } + + static getConnection(connectionId: string): Connection | undefined { + return ClientConnectionManager.getInstance().getConnection(connectionId); + } + + static getConnections(): Connection[] { + return ClientConnectionManager.getInstance().getConnections(); + } +} diff --git a/packages/mcots/errors/ErrorNoKey.ts b/packages/mcots/errors/ErrorNoKey.ts new file mode 100644 index 000000000..7e89d13a1 --- /dev/null +++ b/packages/mcots/errors/ErrorNoKey.ts @@ -0,0 +1,5 @@ +export class ErrorNoKey extends Error { + constructor(msg?: string) { + super(msg || "No key provided"); + } +} diff --git a/packages/mcots/index.ts b/packages/mcots/index.ts new file mode 100644 index 000000000..72fc21311 --- /dev/null +++ b/packages/mcots/index.ts @@ -0,0 +1,18 @@ +export { ClientConnectionManager } from './ClientConnectionManager.js'; +export { ErrorNoKey } from './errors/ErrorNoKey.js'; +export { + getServerMessageProcessor, + populateServerMessageProcessors, +} from './messageProcessors/index.js'; +export type { ServerSocketCallback } from './messageProcessors/index.js'; +export { + ClientConnectionMessage, + ClientTrackingMessage, + LoginMessage, + LoginCompleteMessage, + SetOptionsMessage, + StackCarInfo, + StockCar, +} from './payloads/index.js'; + +// Path: packages/mcots/index.ts diff --git a/packages/mcots/messageProcessors/index.ts b/packages/mcots/messageProcessors/index.ts new file mode 100644 index 000000000..494ae24d9 --- /dev/null +++ b/packages/mcots/messageProcessors/index.ts @@ -0,0 +1,39 @@ +import type { ServerMessage } from "rusty-motors-shared-packets"; +import { processClientConnect } from "./processClientConnect.js"; +import { processClientTracking } from "./processClientTracking.js"; +import { processServerLogin } from "./processServerLogin.js"; +import { processSetOptions } from "./processSetOptions.js"; +import { processStockCarInfo } from "./processStockCarInfo.js"; + +export type ServerSocketCallback = (messages: ServerMessage[]) => void; + +export type ServerMessageProcessor = ( + connectionId: string, + message: ServerMessage, + socketCallback: ServerSocketCallback, +) => Promise; + +const serverMessageProcessors = new Map([]); + +export function addServerMessageProcessor( + messageId: number, + processor: ServerMessageProcessor, +) { + serverMessageProcessors.set(messageId, processor); +} + +export function populateServerMessageProcessors() { + addServerMessageProcessor(105, processServerLogin); + addServerMessageProcessor(109, processSetOptions); + addServerMessageProcessor(141, processStockCarInfo); + addServerMessageProcessor(440, processClientTracking); + addServerMessageProcessor(438, processClientConnect); +}; + +export function getServerMessageProcessor(messageId: number) { + return serverMessageProcessors.get(messageId); +} + +export function getServerMessageProcessors() { + return serverMessageProcessors; +} diff --git a/packages/mcots/messageProcessors/processClientConnect.ts b/packages/mcots/messageProcessors/processClientConnect.ts new file mode 100644 index 000000000..8f33004ff --- /dev/null +++ b/packages/mcots/messageProcessors/processClientConnect.ts @@ -0,0 +1,86 @@ +import { createDataEncryptionPair } from 'rusty-motors-connection'; +import type { ServerSocketCallback } from 'rusty-motors-mcots'; +import { + ClientConnectionManager, + ClientConnectionMessage, + ErrorNoKey, +} from 'rusty-motors-mcots'; +import { UserStatusManager } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; +import { ServerMessage } from 'rusty-motors-shared-packets'; +import { sendSuccess } from './sendSuccess.js'; + +const log = getServerLogger(); + +export async function processClientConnect( + connectionId: string, + message: ServerMessage, + socketCallback: ServerSocketCallback +): Promise { + log.setName('processClientConnect'); + try { + log.debug(`Processing client connect request: ${message.toString()}`); + + const request = new ClientConnectionMessage( + message.getDataBuffer().length + ).deserialize(message.getDataBuffer()); + + log.debug(`Received client connect request: ${request.toString()}`); + + const userStatus = UserStatusManager.getUserStatus( + request.getCustomerId() + ); + + if (!userStatus) { + log.error( + `User status not found for customer ID: ${request.getCustomerId()}` + ); + return; + } + + log.debug(`User status found: ${userStatus.toString()}`); + + // Get the connection record + const connection = ClientConnectionManager.getConnection(connectionId); + + if (!connection) { + log.error( + `Connection not found for connection ID: ${connectionId}` + ); + return; + } + + log.debug(`Connection found: ${connection.toString()}`); + + const sessionKey = userStatus.getSessionKey(); + + if (!sessionKey) { + log.error( + `Session key not found for customer ID: ${request.getCustomerId()}` + ); + return; + } + + const cipherPair = createDataEncryptionPair(sessionKey.getKey()); + + connection.setCipherPair(cipherPair); + + sendSuccess(message, socketCallback); + + log.resetName(); + return Promise.resolve(); + } catch (error) { + if (error instanceof ErrorNoKey) { + log.error( + `Error processing client connect request: ${error.message}` + ); + } else { + log.error( + `Error processing client connect request: ${error as string}` + ); + throw error; + } + } +} + +// Path: packages/mcots/messageProcessors/processClientConnect.ts diff --git a/packages/mcots/messageProcessors/processClientTracking.ts b/packages/mcots/messageProcessors/processClientTracking.ts new file mode 100644 index 000000000..94c748511 --- /dev/null +++ b/packages/mcots/messageProcessors/processClientTracking.ts @@ -0,0 +1,27 @@ +import type { ServerSocketCallback } from "./index.js"; +import type { ServerMessage } from "rusty-motors-shared-packets"; +import { getServerLogger } from "rusty-motors-shared"; +import { ClientTrackingMessage } from "rusty-motors-mcots"; + +const log = getServerLogger(); + +export async function processClientTracking( + connectionId: string, + message: ServerMessage, + socketCallback: ServerSocketCallback, +) { + log.setName("processClientTracking"); + + log.debug(`Processing client tracking message`); + + const trackingMessage = new ClientTrackingMessage(0).deserialize(message.serialize()); + + log.debug(`Type: ${trackingMessage.getType()}, Tracking Text: ${trackingMessage.getTrackingText()}`); + + // Do something with the tracking data + + log.resetName(); + void socketCallback([]); + + return Promise.resolve(); +} diff --git a/packages/mcots/messageProcessors/processServerLogin.ts b/packages/mcots/messageProcessors/processServerLogin.ts new file mode 100644 index 000000000..a643726a3 --- /dev/null +++ b/packages/mcots/messageProcessors/processServerLogin.ts @@ -0,0 +1,35 @@ +import { LoginCompleteMessage, LoginMessage } from 'rusty-motors-mcots'; +import { getServerLogger } from 'rusty-motors-shared'; +import { ServerMessage } from 'rusty-motors-shared-packets'; +import type { ServerSocketCallback } from './index.js'; + +const log = getServerLogger(); + +export async function processServerLogin( + connectionId: string, + message: ServerMessage, + socketCallback: ServerSocketCallback +): Promise { + log.setName('processServerLogin'); + // Read the inbound packet + const loginMessage = new LoginMessage(message.getDataBuffer().length); + loginMessage.deserialize(message.getDataBuffer()); + log.debug(`Received LoginMessage: ${loginMessage.toString()}`); + + // Create new response packet + const response = new LoginCompleteMessage(); + response.setMessageId(213); + response.setServerTime(Math.floor(Date.now() / 1000)); + response.setFirstTime(true); + + log.debug(`Sending LoginCompleteMessage: ${response.toString()}`); + + // Send response packet + const responsePacket = new ServerMessage(response.getMessageId()); + responsePacket.setData(response); + responsePacket.populateHeader(message.getSequence()); + + socketCallback([responsePacket]); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/mcots/messageProcessors/processSetOptions.ts b/packages/mcots/messageProcessors/processSetOptions.ts new file mode 100644 index 000000000..e3f37d0ef --- /dev/null +++ b/packages/mcots/messageProcessors/processSetOptions.ts @@ -0,0 +1,27 @@ +import { SetOptionsMessage } from 'rusty-motors-mcots'; +import { getServerLogger } from 'rusty-motors-shared'; +import { ServerMessage } from 'rusty-motors-shared-packets'; +import type { ServerSocketCallback } from './index.js'; +import { sendSuccess } from './sendSuccess.js'; + +const log = getServerLogger(); + +export async function processSetOptions( + connectionId: string, + message: ServerMessage, + socketCallback: ServerSocketCallback +) { + log.setName('processSetOptions'); + log.info(`Processing SetOptionsMessage`); + const setOptionsMessage = new SetOptionsMessage().deserialize( + message.getDataBuffer() + ); + log.info(`SetOptionsMessage: ${setOptionsMessage.toString()}`); + + // TODO: Implement the logic for processing the SetOptionsMessage + + sendSuccess(message, socketCallback); + + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/mcots/messageProcessors/processStockCarInfo.ts b/packages/mcots/messageProcessors/processStockCarInfo.ts new file mode 100644 index 000000000..288f80774 --- /dev/null +++ b/packages/mcots/messageProcessors/processStockCarInfo.ts @@ -0,0 +1,107 @@ +import { + getWarehouseInventory, + type WarehouseInventory, +} from 'rusty-motors-database'; +import { StackCarInfo, StockCar } from 'rusty-motors-mcots'; +import { getServerLogger } from 'rusty-motors-shared'; +import { + ServerGenericRequest, + ServerMessage, +} from 'rusty-motors-shared-packets'; +import type { ServerSocketCallback } from './index.js'; + +const log = getServerLogger(); + +// 1300 544f4d43 01 00000000 8d00 [08000000 00000000] + +export async function processStockCarInfo( + connectionId: string, + message: ServerMessage, + socketCallback: ServerSocketCallback +): Promise { + log.setName('processStockCarInfo'); + try { + log.debug(`Processing stock car info message`); + + const request = new ServerGenericRequest().deserialize( + message.data.serialize() + ); + + log.debug(`Received stock car info request: ${request.toString()}`); + + const lotOwnerId = request.getData().readUInt32LE(); + const brandId = request.getData2().readUInt32LE(); + + log.debug(`Lot owner ID: ${lotOwnerId} Brand ID: ${brandId}`); + + const inventoryCars: WarehouseInventory = await getWarehouseInventory( + lotOwnerId, + brandId + ); + + log.debug( + `Sending car info for lot owner ${lotOwnerId} and brand ${brandId}` + ); + + const responsePacket = new StackCarInfo(); + + responsePacket.setMessageId(141); + responsePacket.setStarterCash(100); + responsePacket.setDealerId(lotOwnerId); + responsePacket.setBrandId(brandId); + + const response = new ServerMessage(141); + + if ( + inventoryCars.inventory.length > StackCarInfo.MAX_CARS_PER_MESSAGE + ) { + log.error( + `Too many cars in inventory: ${inventoryCars.inventory.length}` + ); + return; + } + + log.debug(`Sending ${inventoryCars.inventory.length} cars`); + + while (inventoryCars.inventory.length > 0) { + const car = inventoryCars.inventory.shift(); + + if (typeof car === 'undefined') { + log.error(`Car not found`); + break; + } + + const stockCar = new StockCar(); + + stockCar.setBrandedPartId(car.brandedPartId); + stockCar.setIsDealOfTheDay(car.isDealOfTheDay === 1); + + let carCost = car.retailPrice || 0; + + if (car.isDealOfTheDay === 1) { + const discount = carCost * inventoryCars.dealOfTheDayDiscount; + carCost -= discount; + } + + stockCar.setRetailPrice(carCost); + + responsePacket.addCar(stockCar); + } + + log.debug( + `Sending ${responsePacket.getNumberOfCars()} cars...complete` + ); + + responsePacket.setMoreCars(false); + + response.setData(responsePacket); + response.populateHeader(message.header.getSequence()); + log.resetName(); + return socketCallback([response]); + } catch (error) { + log.error(`Error processing stock car info: ${error as string}`); + throw error; + } +} + +// Path: packages/mcots/messageProcessors/processStockCarInfo.ts diff --git a/packages/mcots/messageProcessors/sendSuccess.ts b/packages/mcots/messageProcessors/sendSuccess.ts new file mode 100644 index 000000000..0614d6108 --- /dev/null +++ b/packages/mcots/messageProcessors/sendSuccess.ts @@ -0,0 +1,17 @@ +import { + ServerGenericResponse, + ServerMessage +} from "rusty-motors-shared-packets"; +import type { ServerSocketCallback } from "./index.js"; + +export function sendSuccess(message: ServerMessage, socketCallback: ServerSocketCallback) { + const pReply = new ServerGenericResponse(); + pReply.setMessageId(101); + pReply.setMsgReply(438); + + const response = new ServerMessage(101); + response.setData(pReply); + response.populateHeader(message.getSequence()); + + socketCallback([response]); +} diff --git a/packages/mcots/package.json b/packages/mcots/package.json new file mode 100644 index 000000000..848ab63bf --- /dev/null +++ b/packages/mcots/package.json @@ -0,0 +1,25 @@ +{ + "name": "rusty-motors-mcots", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "@sentry/node": "^8.0.0", + "short-unique-id": "^5.0.3" + }, + "description": "" +} diff --git a/packages/mcots/payloads/ClientConnectMessage.ts b/packages/mcots/payloads/ClientConnectMessage.ts new file mode 100644 index 000000000..ada18c329 --- /dev/null +++ b/packages/mcots/payloads/ClientConnectMessage.ts @@ -0,0 +1,72 @@ +import { ServerMessagePayload } from "rusty-motors-shared-packets"; +import { getServerLogger } from "rusty-motors-shared"; + +const log = getServerLogger(); + +export class ClientConnectionMessage extends ServerMessagePayload { + private _customerId: number = 0; // 4 bytes + private _personaId: number = 0; // 4 bytes + private _customerName: string = ""; // 13 bytes + private _personaName: string = ""; // 13 bytes + private _clientVersion: number = 0; // 4 bytes + + constructor(size: number) { + super(); + + this._data = Buffer.alloc(size); + } + + override getByteSize(): number { + return 2 + 4 + 4 + 13 + 13 + 4; // 40 bytes + } + + override deserialize(data: Buffer): ClientConnectionMessage { + try { + this._assertEnoughData(data, this.getByteSize()); + + this.messageId = data.readUInt16LE(0); + + this._customerId = data.readUInt32LE(2); + + this._personaId = data.readUInt32LE(6); + + this._customerName = data.toString("utf8", 10, 23); + + this._personaName = data.toString("utf8", 23, 36); + + this._clientVersion = data.readUInt32LE(36); + + return this; + } catch (error) { + log.error( + `Error deserializing ClientTrackingMessage: ${error as string}`, + ); + throw error; + } + } + + getCustomerId() { + return this._customerId; + } + + getPersonaId() { + return this._personaId; + } + + getCustomerName() { + return this._customerName; + } + + getPersonaName() { + return this._personaName; + } + + getClientVersion() { + return this._clientVersion; + } + + toString(): string { + return `ClientConnectionMessage {customerId: ${this._customerId}, personaId: ${this._personaId}, customerName: ${this._customerName}, personaName: ${this._personaName}, clientVersion: ${this._clientVersion}}`; + } + +} diff --git a/packages/mcots/payloads/ClientTrackingMessage.ts b/packages/mcots/payloads/ClientTrackingMessage.ts new file mode 100644 index 000000000..f07593dbc --- /dev/null +++ b/packages/mcots/payloads/ClientTrackingMessage.ts @@ -0,0 +1,44 @@ +import { ServerMessagePayload } from "rusty-motors-shared-packets"; +import { getServerLogger } from "rusty-motors-shared"; + +const log = getServerLogger(); + +export class ClientTrackingMessage extends ServerMessagePayload { + private _type: number = 0; // 2 bytes + private _trackingText: string = ""; // 256 bytes + + constructor(size: number) { + super(); + + this._data = Buffer.alloc(size); + } + + override getByteSize(): number { + return 0; + } + + override deserialize(data: Buffer): ClientTrackingMessage { + try { + this.messageId = data.readUInt16LE(0); + + this._type = data.readUInt16LE(2); + + this._trackingText = data.toString("utf8", 4, 260); + + return this; + } catch (error) { + log.error( + `Error deserializing ClientTrackingMessage: ${error as string}`, + ); + throw error; + } + } + + getType() { + return this._type; + } + + getTrackingText() { + return this._trackingText; + } +} diff --git a/packages/mcots/payloads/LoginCompleteMessage.ts b/packages/mcots/payloads/LoginCompleteMessage.ts new file mode 100644 index 000000000..53438b045 --- /dev/null +++ b/packages/mcots/payloads/LoginCompleteMessage.ts @@ -0,0 +1,231 @@ +import { ServerMessagePayload } from "rusty-motors-shared-packets"; +import { getServerLogger } from "rusty-motors-shared"; + +const log = getServerLogger(); + +export class LoginCompleteMessage extends ServerMessagePayload { + private _serverTime: number = 0; // 4 bytes + private _firstTime: boolean = false; // 1 byte + private _paycheckWaiting: boolean = false; // 1 byte + private _clubInvitesWaiting: boolean = false; // 1 byte + private tallyInProgress: boolean = false; // 1 byte + private _secondsUntilShutdown: number = 0; // 2 bytes + + private _shardGNP: number = 0; // 4 bytes + private _shardCarsSold: number = 0; // 4 bytes + private _shardAverageSalaries: number = 0; // 4 bytes + private _shardAverageCarsOwned: number = 0; // 4 bytes + private _shardAverageLevel: number = 0; // 4 bytes + + private _cookie: number = 0; // 4 bytes + + private _nextTallyDate: number = 0; // 4 bytes + private _nextPaycheckDate: number = 0; // 4 bytes + + constructor() { + super(); + + this._data = Buffer.alloc(this.getByteSize()); + } + + override getByteSize(): number { + return 2 + 4 + 1 + 1 + 1 + 1 + 1 + 2 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4; + } + + override deserialize(data: Buffer): LoginCompleteMessage { + try { + this._assertEnoughData(data, this.getByteSize()); + + this.messageId = data.readUInt16LE(0); + + this._serverTime = data.readUInt32LE(2); + + this._firstTime = data.readUInt8(6) === 1; + + this._paycheckWaiting = data.readUInt8(7) === 1; + + this._clubInvitesWaiting = data.readUInt8(8) === 1; + + this.tallyInProgress = data.readUInt8(9) === 1; + + this._secondsUntilShutdown = data.readUInt16LE(10); + + this._shardGNP = data.readUInt32LE(12); + + this._shardCarsSold = data.readUInt32LE(16); + + this._shardAverageSalaries = data.readUInt32LE(20); + + this._shardAverageCarsOwned = data.readUInt32LE(24); + + this._shardAverageLevel = data.readUInt32LE(28); + + this._cookie = data.readUInt32LE(32); + + this._nextTallyDate = data.readUInt32LE(36); + + this._nextPaycheckDate = data.readUInt32LE(40); + + return this; + } catch (error) { + log.error( + `Error deserializing LoginCompleteMessage: ${error as string}`, + ); + throw error; + } + } + + getServerTime() { + return this._serverTime; + } + + isFirstTime() { + return this._firstTime; + } + + isPaycheckWaiting() { + return this._paycheckWaiting; + } + + isClubInvitesWaiting() { + return this._clubInvitesWaiting; + } + + isTallyInProgress() { + return this.tallyInProgress; + } + + getSecondsUntilShutdown() { + return this._secondsUntilShutdown; + } + + getShardGNP() { + return this._shardGNP; + } + + getShardCarsSold() { + return this._shardCarsSold; + } + + getShardAverageSalaries() { + return this._shardAverageSalaries; + } + + getShardAverageCarsOwned() { + return this._shardAverageCarsOwned; + } + + getShardAverageLevel() { + return this._shardAverageLevel; + } + + getCookie() { + return this._cookie; + } + + getNextTallyDate() { + return this._nextTallyDate; + } + + getNextPaycheckDate() { + return this._nextPaycheckDate; + } + + override serialize(): Buffer { + this._data.writeUInt16LE(this.messageId, 0); + + this._data.writeUInt32LE(this._serverTime, 2); + + this._data.writeUInt8(this._firstTime ? 1 : 0, 6); + + this._data.writeUInt8(this._paycheckWaiting ? 1 : 0, 7); + + this._data.writeUInt8(this._clubInvitesWaiting ? 1 : 0, 8); + + this._data.writeUInt8(this.tallyInProgress ? 1 : 0, 9); + + this._data.writeUInt16LE(this._secondsUntilShutdown, 10); + + this._data.writeUInt32LE(this._shardGNP, 12); + + this._data.writeUInt32LE(this._shardCarsSold, 16); + + this._data.writeUInt32LE(this._shardAverageSalaries, 20); + + this._data.writeUInt32LE(this._shardAverageCarsOwned, 24); + + this._data.writeUInt32LE(this._shardAverageLevel, 28); + + this._data.writeUInt32LE(this._cookie, 32); + + this._data.writeUInt32LE(this._nextTallyDate, 36); + + this._data.writeUInt32LE(this._nextPaycheckDate, 40); + + return this._data; + } + + toString(): string { + return `LoginCompleteMessage {serverTime: ${this._serverTime}, firstTime: ${this._firstTime}, paycheckWaiting: ${this._paycheckWaiting}, clubInvitesWaiting: ${this._clubInvitesWaiting}, tallyInProgress: ${this.tallyInProgress}, secondsUntilShutdown: ${this._secondsUntilShutdown}, shardGNP: ${this._shardGNP}, shardCarsSold: ${this._shardCarsSold}, shardAverageSalaries: ${this._shardAverageSalaries}, shardAverageCarsOwned: ${this._shardAverageCarsOwned}, shardAverageLevel: ${this._shardAverageLevel}, cookie: ${this._cookie}, nextTallyDate: ${this._nextTallyDate}, nextPaycheckDate: ${this._nextPaycheckDate}}`; + } + + setServerTime(serverTime: number) { + this._serverTime = serverTime; + } + + setFirstTime(firstTime: boolean) { + this._firstTime = firstTime; + } + + setPaycheckWaiting(paycheckWaiting: boolean) { + this._paycheckWaiting = paycheckWaiting; + } + + setClubInvitesWaiting(clubInvitesWaiting: boolean) { + this._clubInvitesWaiting = clubInvitesWaiting; + } + + setTallyInProgress(tallyInProgress: boolean) { + this.tallyInProgress = tallyInProgress; + } + + setSecondsUntilShutdown(secondsUntilShutdown: number) { + this._secondsUntilShutdown = secondsUntilShutdown; + } + + setShardGNP(shardGNP: number) { + this._shardGNP = shardGNP; + } + + setShardCarsSold(shardCarsSold: number) { + this._shardCarsSold = shardCarsSold; + } + + setShardAverageSalaries(shardAverageSalaries: number) { + this._shardAverageSalaries = shardAverageSalaries; + } + + setShardAverageCarsOwned(shardAverageCarsOwned: number) { + this._shardAverageCarsOwned = shardAverageCarsOwned; + } + + setShardAverageLevel(shardAverageLevel: number) { + this._shardAverageLevel = shardAverageLevel; + } + + setCookie(cookie: number) { + this._cookie = cookie; + } + + setNextTallyDate(nextTallyDate: number) { + this._nextTallyDate = nextTallyDate; + } + + setNextPaycheckDate(nextPaycheckDate: number) { + this._nextPaycheckDate = nextPaycheckDate; + } + + size(): number { + return this.getByteSize(); + } +}; diff --git a/packages/mcots/payloads/LoginMessage.ts b/packages/mcots/payloads/LoginMessage.ts new file mode 100644 index 000000000..c46a5ff80 --- /dev/null +++ b/packages/mcots/payloads/LoginMessage.ts @@ -0,0 +1,86 @@ +import { ServerMessagePayload } from "rusty-motors-shared-packets" +import { getServerLogger } from "rusty-motors-shared" + +const log = getServerLogger(); + +export class LoginMessage extends ServerMessagePayload { + private _customerId: number = 0; // 4 bytes + private _personaId: number = 0; // 4 bytes + private _lotOwnerId: number = 0; // 4 bytes + private _brandedPartId: number = 0; // 4 bytes + private _skinId: number = 0; // 4 bytes + private _personaName: string = ""; // 13 bytes + private _mcVersion: string = ""; // 4 bytes + + constructor(size: number) { + super(); + + this._data = Buffer.alloc(size); + } + + override getByteSize(): number { + return 2 + 4 + 4 + 4 + 4 + 4 + 13 + 4; + } + + override deserialize(data: Buffer): LoginMessage { + try { + this._assertEnoughData(data, this.getByteSize()); + + this.messageId = data.readUInt16LE(0); + + this._customerId = data.readUInt32LE(2); + + this._personaId = data.readUInt32LE(6); + + this._lotOwnerId = data.readUInt32LE(10); + + this._brandedPartId = data.readUInt32LE(14); + + this._skinId = data.readUInt32LE(18); + + this._personaName = data.toString("utf8", 22, 35); + + this._mcVersion = data.toString("utf8", 35, 39); + + return this; + } catch (error) { + log.error( + `Error deserializing LoginMessage: ${error as string}`, + ); + throw error; + } + } + + getCustomerId() { + return this._customerId; + } + + getPersonaId() { + return this._personaId; + } + + getLotOwnerId() { + return this._lotOwnerId; + } + + + getBrandedPartId() { + return this._brandedPartId; + } + + getSkinId() { + return this._skinId; + } + + getPersonaName() { + return this._personaName; + } + + getClientVersion() { + return this._mcVersion; + } + + override toString(): string { + return `LoginMessage: ${this.getPersonaName()}, customerId: ${this.getCustomerId()}, personaId: ${this.getPersonaId()}, lotOwnerId: ${this.getLotOwnerId()}, brandedPartId: ${this.getBrandedPartId()}, skinId: ${this.getSkinId()}, mcVersion: ${this.getClientVersion()}`; + } +}; diff --git a/packages/mcots/payloads/SetOptionsMessage.ts b/packages/mcots/payloads/SetOptionsMessage.ts new file mode 100644 index 000000000..3275f80fa --- /dev/null +++ b/packages/mcots/payloads/SetOptionsMessage.ts @@ -0,0 +1,78 @@ +import { ServerMessagePayload } from "rusty-motors-shared-packets"; +import { getServerLogger } from "rusty-motors-shared"; + +const log = getServerLogger(); + +export class SetOptionsMessage extends ServerMessagePayload { + private _lpCode: number = 0; // 2 bytes + private _lpText: string = ""; // 8 bytes + private _carInfoSettings: number = 0; // 4 bytes + private _carNumbers = { + carNumber1: "", // 3 bytes + carNumber2: "", // 3 bytes + carNumber3: "", // 3 bytes + carNumber4: "", // 3 bytes + carNumber5: "", // 3 bytes + carNumber6: "", // 3 bytes + }; + + constructor() { + super(); + + this._data = Buffer.alloc(this.getByteSize()); + } + + override getByteSize(): number { + return 2 + 8 + 4 + 3 * 6; + } + + override deserialize(data: Buffer): SetOptionsMessage { + try { + this._assertEnoughData(data, this.getByteSize()); + + this.messageId = data.readUInt16LE(0); + + this._lpCode = data.readUInt16LE(2); + + this._lpText = data.toString("utf8", 4, 12); + + this._carInfoSettings = data.readUInt32LE(12); + + this._carNumbers.carNumber1 = data.toString("utf8", 16, 19); + this._carNumbers.carNumber2 = data.toString("utf8", 19, 22); + this._carNumbers.carNumber3 = data.toString("utf8", 22, 25); + this._carNumbers.carNumber4 = data.toString("utf8", 25, 28); + this._carNumbers.carNumber5 = data.toString("utf8", 28, 31); + this._carNumbers.carNumber6 = data.toString("utf8", 31, 34); + + return this; + } catch (error) { + log.error( + `Error deserializing SetOptionsMessage: ${error as string}`, + ); + throw error; + } + } + + getLpCode() { + return this._lpCode; + } + + getLpText() { + return this._lpText; + } + + getCarInfoSettings() { + return this._carInfoSettings; + } + + getCarNumbers() { + return this._carNumbers; + } + + toString() { + return `SetOptionsMessage: lpCode=${this._lpCode}, lpText=${this._lpText}, carInfoSettings=${this._carInfoSettings}, carNumbers=${JSON.stringify(this._carNumbers)}`; + } + + +} diff --git a/packages/mcots/payloads/StockCar.ts b/packages/mcots/payloads/StockCar.ts new file mode 100644 index 000000000..85af3f1d2 --- /dev/null +++ b/packages/mcots/payloads/StockCar.ts @@ -0,0 +1,122 @@ +import { + Serializable, + ServerMessagePayload, +} from "rusty-motors-shared-packets"; +import { getServerLogger } from "rusty-motors-shared"; + +const log = getServerLogger(); + +export class StockCar extends Serializable { + private brandedPartId: number = 0; // 4 bytes + private retailPrice: number = 0; // 4 bytes + private isDealOfTheDay: number = 0; // 2 bytes + + override getByteSize(): number { + return 10; + } + + override serialize(): Buffer { + try { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt32LE(this.brandedPartId, 0); + buffer.writeUInt32LE(this.retailPrice, 4); + buffer.writeUInt16LE(this.isDealOfTheDay, 8); + + return buffer; + } catch (error) { + log.error(`Error serializing StockCar: ${error as string}`); + throw error; + } + } + + setBrandedPartId(brandedPartId: number) { + this.brandedPartId = brandedPartId; + } + + setRetailPrice(retailPrice: number) { + this.retailPrice = retailPrice; + } + + setIsDealOfTheDay(isDealOfTheDay: boolean) { + this.isDealOfTheDay = isDealOfTheDay ? 1 : 0; + } + + toString(): string { + return `StockCar: ${this.brandedPartId}, ${this.retailPrice}, ${this.isDealOfTheDay}`; + } +} + +export class StackCarInfo extends ServerMessagePayload { + static MAX_CARS_PER_MESSAGE = 100; + private _cars: StockCar[] = []; + // msgNo: 2 bytes + private _starterCash: number = 0; // 4 bytes + private _dealerId: number = 0; // 4 bytes + private _brandId: number = 0; // 4 bytes + private _numberOfCars: number = 0; // 2 bytes + private _moreCars: number = 0; // 2 bytes + + override getByteSize(): number { + return ( + 2 + + 4 + + 4 + + 4 + + 2 + + 1 + + this._cars.length * StockCar.prototype.getByteSize() + ); + } + + setStarterCash(starterCash: number) { + this._starterCash = starterCash; + } + + setDealerId(dealerId: number) { + this._dealerId = dealerId; + } + + setBrandId(brandId: number) { + this._brandId = brandId; + } + + override serialize(): Buffer { + try { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt16LE(this.getMessageId(), 0); + buffer.writeUInt32LE(this._starterCash, 2); + buffer.writeUInt32LE(this._dealerId, 6); + buffer.writeUInt32LE(this._brandId, 10); + buffer.writeUInt16LE(this.getNumberOfCars(), 14); + buffer.writeInt8(this._moreCars, 16); + + let offset = 17; + for (const car of this._cars) { + car.serialize().copy(buffer, offset); + offset += car.getByteSize(); + } + + return buffer; + } catch (error) { + log.error(`Error serializing StackCarInfo: ${error as string}`); + throw error; + } + } + + addCar(car: StockCar) { + this._cars.push(car); + this._numberOfCars = this._cars.length; + } + + getNumberOfCars(): number { + return this._numberOfCars; + } + + setMoreCars(moreCars: boolean) { + this._moreCars = moreCars ? 1 : 0; + } + + toString(): string { + return `StackCarInfo: ${this._cars.length} cars, ${this._starterCash} starter cash, ${this._dealerId} dealerId, ${this._brandId} brandId`; + } +} diff --git a/packages/mcots/payloads/index.ts b/packages/mcots/payloads/index.ts new file mode 100644 index 000000000..e49a30f67 --- /dev/null +++ b/packages/mcots/payloads/index.ts @@ -0,0 +1,8 @@ +export { ClientConnectionMessage } from './ClientConnectMessage.js'; +export { ClientTrackingMessage } from './ClientTrackingMessage.js'; +export { LoginMessage } from './LoginMessage.js'; +export { LoginCompleteMessage } from './LoginCompleteMessage.js'; +export { SetOptionsMessage } from './SetOptionsMessage.js'; +export { StackCarInfo, StockCar } from './StockCar.js'; + +// Path: packages/mcots/payloads/index.ts diff --git a/packages/mcots/test/index.test.ts b/packages/mcots/test/index.test.ts new file mode 100644 index 000000000..f01d2f75d --- /dev/null +++ b/packages/mcots/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from "vitest"; + +describe("example", () => { + it("should pass", () => { + expect(true).toBe(true); + }); +}); diff --git a/lib/index.d.ts b/packages/mcots/types.ts similarity index 100% rename from lib/index.d.ts rename to packages/mcots/types.ts diff --git a/packages/mcots/vite.config.ts b/packages/mcots/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/mcots/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/nps/gameMessageProcessors/getLobMiniRiffList.ts b/packages/nps/gameMessageProcessors/getLobMiniRiffList.ts new file mode 100644 index 000000000..caf5b719c --- /dev/null +++ b/packages/nps/gameMessageProcessors/getLobMiniRiffList.ts @@ -0,0 +1,40 @@ +import { + GameMessage, + MiniRiffInfo, + MiniRiffList, + getAsHex, +} from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +// Command id: 0x30c +export async function getLobMiniRiffList( + commandId: number, + data: Buffer +): Promise { + log.setName('nps:getLobMiniRiffList'); + log.info(`Processing getLobMiniRiffList command: ${getAsHex(data)}`); + + const riffList = new MiniRiffList(); + + riffList.addRiff(new MiniRiffInfo('CTRL', 0, 1)); + riffList.addRiff(new MiniRiffInfo('MC141', 141, 0)); + riffList.addRiff(new MiniRiffInfo('MCCHAT', 191, 0)); + + log.info(`getLobMiniRiffList: ${riffList.toString()}`); + + const responseMessage = new GameMessage(0); + responseMessage.header.setId(0x404); + responseMessage.setData(riffList); + + log.info('Dumping responseMessage: '); + + log.info( + `responseMessage: ${ + responseMessage.serialize().length + } bytes - ${getAsHex(responseMessage.serialize())}` + ); + + return responseMessage.serialize(); +} diff --git a/packages/nps/gameMessageProcessors/getLobMiniUserList.ts b/packages/nps/gameMessageProcessors/getLobMiniUserList.ts new file mode 100644 index 000000000..ad09e529d --- /dev/null +++ b/packages/nps/gameMessageProcessors/getLobMiniUserList.ts @@ -0,0 +1,28 @@ +import { + GameMessage, + MiniUserInfo, + MiniUserList, + getAsHex, +} from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +// Command id: 0x128 +export async function getLobMiniUserList( + commandId: number, + data: Buffer +): Promise { + log.setName('nps:getLobMiniUserList'); + log.info(`Processing getLobMiniUserList command: ${getAsHex(data)}`); + + const miniUserList = new MiniUserList(0); + + miniUserList.addChannelUser(new MiniUserInfo(1000, 'Molly')); + + const responseMessage = new GameMessage(0); + responseMessage.header.setId(0x229); + responseMessage.setData(miniUserList); + + return Promise.resolve(responseMessage.serialize()); +} diff --git a/packages/nps/gameMessageProcessors/index.ts b/packages/nps/gameMessageProcessors/index.ts new file mode 100644 index 000000000..26f0a350b --- /dev/null +++ b/packages/nps/gameMessageProcessors/index.ts @@ -0,0 +1,88 @@ +import { processGameLogin } from "./processGameLogin.js"; +import { processGetProfileMaps } from "./processGetProfileMaps.js"; +import { processCheckProfileName } from "./processCheckProfileName.js"; +import { processCheckPlateText } from "./processCheckPlateText.js"; +import { processCreateProfile } from "./processCreateProfile.js"; +import { processDeleteProfile } from "./processDeleteProfile.js"; +import { processGetProfileInfo } from "./processGetProfileInfo.js"; +import { processSelectPersona } from "./processSelectPersona.js"; +import { processUserLogin } from "./processUserLogin.js"; +import { processFirstBuddy } from "./processGetFirstBuddy.js"; +import { processEncryptedGameCommand } from "./processEncryptedGameCommand.js"; +import { GameMessage } from "../messageStructs/GameMessage.js"; +import { processPing } from "./processPing.js"; +import type { UserStatus } from "../messageStructs/UserStatus.js"; +import { processGameLogout } from "./processGameLogout.js"; + +export type GameSocketCallback = (messages: Buffer[]) => void; + +export type MessageProcessor = ( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +) => Promise; + +export class MessageProcessorError extends Error { + constructor(id: number, message: string) { + super(`MessageProcessorError: ${id}: ${message}`); + } +} + +export const gameMessageProcessors = new Map([]); + +export function populateGameMessageProcessors( + processors: Map, +): void { + processors.set(256, processUserLogin); // 0x100 + processors.set(535, processPing); // 0x217 + processors.set(1281, processGameLogin); // 0x501 + processors.set(1283, processSelectPersona); // 0x503 + processors.set(1287, processCreateProfile); // 0x507 + processors.set(1291, processFirstBuddy); // 0x50b + processors.set(1295, processGameLogout); // 0x50f + processors.set(1298, processDeleteProfile); // 0x512 + processors.set(1305, processGetProfileInfo); // 0x519 + processors.set(1330, processGetProfileMaps); // 0x532 + processors.set(1331, processCheckProfileName); // 0x533 + processors.set(1332, processCheckPlateText); // 0x534 + processors.set(4353, processEncryptedGameCommand); // 0x1101 +} + +export function getGameMessageProcessor(messageId: number) { + if (gameMessageProcessors.has(messageId) === true) { + return gameMessageProcessors.get(messageId) as MessageProcessor; + } + + return undefined; +} + +export class PortMapError extends Error { + port: number; + constructor(port: number, message: string) { + super(message); + this.name = "PortMapError"; + this.port = port; + } + + override toString(): string { + return `${this.name}: ${this.message}`; + } +} + +export const portToMessageTypes = new Map([]); + +export function populatePortToMessageTypes(portMap: Map): void { + portMap.set(7003, "Game"); + portMap.set(8226, "Game"); + portMap.set(8228, "Game"); + portMap.set(43300, "Server"); +} + +export function getPortMessageType(port: number): string { + if (portToMessageTypes.has(port) === true) { + // @ts-expect-error - Since has() is true, the return value is NOT undefined + return portToMessageTypes.get(port); + } + throw new PortMapError(port, "No message type found"); +} diff --git a/packages/nps/gameMessageProcessors/lobbyCommands.ts b/packages/nps/gameMessageProcessors/lobbyCommands.ts new file mode 100644 index 000000000..821c0a28e --- /dev/null +++ b/packages/nps/gameMessageProcessors/lobbyCommands.ts @@ -0,0 +1,15 @@ +// 030c0004cdcdcdcd + +import { getLobMiniRiffList } from "./getLobMiniRiffList.js"; +import { getLobMiniUserList } from "./getLobMiniUserList.js"; + +// 0128000800000000 + +export type lobbyCommandProcessor = ( + commandId: number, + data: Buffer, +) => Promise; + +export const lobbyCommandMap = new Map(); +lobbyCommandMap.set(0x30c, getLobMiniRiffList); +lobbyCommandMap.set(0x128, getLobMiniUserList); diff --git a/packages/nps/gameMessageProcessors/processCheckPlateText.ts b/packages/nps/gameMessageProcessors/processCheckPlateText.ts new file mode 100644 index 000000000..b58167697 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processCheckPlateText.ts @@ -0,0 +1,33 @@ +import { GameMessage } from "../messageStructs/GameMessage.js"; +import type { GameSocketCallback } from "./index.js"; +import { getLenString } from "../src/utils/pureGet.js"; +import { getServerLogger } from "rusty-motors-shared"; +import type { UserStatus } from "../messageStructs/UserStatus.js"; +import { sendNPSAck } from "../src/utils/sendNPSAck.js"; + +const log = getServerLogger(); + +export async function processCheckPlateText( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +): Promise { + log.setName("nps:processCheckPlateText"); + + const plateType = message.getDataAsBuffer().readUInt32BE(0); + + const requestedPlateText = getLenString( + message.getDataAsBuffer(), + 4, + false, + ); + + log.info( + `Requested plate text: ${requestedPlateText} for plate type ${plateType}`, + ); + + sendNPSAck(socketCallback); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processCheckProfileName.ts b/packages/nps/gameMessageProcessors/processCheckProfileName.ts new file mode 100644 index 000000000..67bf2f4a7 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processCheckProfileName.ts @@ -0,0 +1,33 @@ +import { GameMessage } from "../messageStructs/GameMessage.js"; +import type { GameSocketCallback } from "./index.js"; +import { getLenString } from "../src/utils/pureGet.js"; + +import { getServerLogger } from "rusty-motors-shared"; +import type { UserStatus } from "../messageStructs/UserStatus.js"; + +const log = getServerLogger(); + +export async function processCheckProfileName( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +): Promise { + log.setName("nps:processCheckProfileName"); + const customerId = message.serialize().readUInt32BE(8); + + const requestedPersonaName = getLenString(message.serialize(), 12, false); + + log.info( + `Requested persona name: ${requestedPersonaName} for customer ${customerId}`, + ); + + const response = new GameMessage(0); + response.header.setId(0x601); + + const responseBytes = response.serialize(); + + socketCallback([responseBytes]); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processCreateProfile.ts b/packages/nps/gameMessageProcessors/processCreateProfile.ts new file mode 100644 index 000000000..fe359a311 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processCreateProfile.ts @@ -0,0 +1,45 @@ +import { GameMessage } from "../messageStructs/GameMessage.js"; +import type { GameSocketCallback } from "./index.js"; +import { GameProfile } from "../messageStructs/GameProfile.js"; +import { getServerLogger } from "rusty-motors-shared"; +import type { UserStatus } from "../messageStructs/UserStatus.js"; +import { addGameProfile } from "../services/profile.js"; + +const log = getServerLogger(); + +export async function processCreateProfile( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +): Promise { + log.setName("nps:processCreateProfile"); + // Log the request + log.info(`ProcessCreateProfile request: ${message.toString()}`); + + const createProfileMessage = GameProfile.fromBytes( + message.getDataAsBuffer(), + ); + + // Log the request + log.info( + `ProcessCreateProfile request: ${createProfileMessage.toString()}`, + ); + + // Add the profile + addGameProfile(createProfileMessage); + + + // TODO: Send the response + const response = new GameMessage(257); + response.header.setId(0x601); + + response.setData(message.getData()); + + // Log the response + log.info(`ProcessCreateProfile response: ${response.toString()}`); + + socketCallback([response.serialize()]); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processDeleteProfile.ts b/packages/nps/gameMessageProcessors/processDeleteProfile.ts new file mode 100644 index 000000000..0be750070 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processDeleteProfile.ts @@ -0,0 +1,109 @@ +import fs from "node:fs"; +import crypto from "node:crypto"; +import type { GameSocketCallback } from "./index.js"; +import { GameMessage } from "../messageStructs/GameMessage.js"; +import { SessionKey } from "../messageStructs/SessionKey.js"; +import { getLenString } from "../src/utils/pureGet.js"; + +import { getServerLogger } from "rusty-motors-shared"; +import type { UserStatus } from "../messageStructs/UserStatus.js"; + +const log = getServerLogger(); + +export function loadPrivateKey(path: string): string { + const privateKey = fs.readFileSync(path); + + return privateKey.toString("utf8"); +} + +export function decryptSessionKey( + encryptedSessionKey: string, + privateKey: string, +): string { + const sessionKeyStructure = crypto.privateDecrypt( + privateKey, + Buffer.from(encryptedSessionKey, "hex"), + ); + + return sessionKeyStructure.toString("hex"); +} + +export function unpackUserLoginMessage(message: GameMessage): { + sessionKey: string; + gameId: string; + contextToken: string; +} { + // Get the context token + const ticket = getLenString(message.getDataAsBuffer(), 0, false); + + let dataOffset = ticket.length + 2; + + // The next data structure is a container with an empty id, a length, and a data structure + + // Skip the empty id + dataOffset += 2; + + // Get the next data length + const nextDataLength = message.getDataAsBuffer().readUInt16BE(dataOffset); + + // This value is the encrypted session key hex, stored as a string + const encryptedSessionKey = message + .getDataAsBuffer() + .subarray(dataOffset + 2, dataOffset + 2 + nextDataLength) + .toString("utf8"); + + // Load the private key + const privateKey = loadPrivateKey("./data/private_key.pem"); + + // Decrypt the session key + const sessionKey = decryptSessionKey(encryptedSessionKey, privateKey); + + // Unpack the session key + const sessionKeyStructure = SessionKey.fromBytes( + Buffer.from(sessionKey, "hex"), + ); + + // Update the data offset + dataOffset += 2 + nextDataLength; + + // Get the next data length + const nextDataLength2 = message.getDataAsBuffer().readUInt16BE(dataOffset); + + // This value is the game id (used by server to identify the game) + const gameId = message + .getDataAsBuffer() + .subarray(dataOffset + 2, dataOffset + 2 + nextDataLength2) + .toString("utf8"); + + // Update the data offset + dataOffset += 2 + nextDataLength2; + + // Return the session key, game id, and context token + return { + sessionKey: sessionKeyStructure.getKey(), + gameId, + contextToken: ticket, + }; +} + +export async function processDeleteProfile( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +): Promise { + log.setName("nps:processDeleteProfile"); + // Log the message + log.info(`Delete profile request: ${message.toString()}`); + + // TODO: Delete the profile + + // Create a new message - Login ACK + const loginACK = new GameMessage(0); + loginACK.header.setId(0x60c); + + // Send the ack + socketCallback([loginACK.serialize()]); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processEncryptedGameCommand.ts b/packages/nps/gameMessageProcessors/processEncryptedGameCommand.ts new file mode 100644 index 000000000..d64c05a70 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processEncryptedGameCommand.ts @@ -0,0 +1,113 @@ +import { + GameMessage, + SerializableData, +} from "../messageStructs/GameMessage.js"; +import type { GameSocketCallback } from "./index.js"; +import { getAsHex } from "../src/utils/pureGet.js"; +import { + type EncryptionSession, + getEncryptionSession, newEncryptionSession, + setEncryptionSession +} from "../src/EncryptionSession.js"; +import { lobbyCommandMap } from "./lobbyCommands.js"; + +import { getServerLogger } from "rusty-motors-shared"; +import type { UserStatus } from "../messageStructs/UserStatus.js"; + +const log = getServerLogger(); + +export async function processEncryptedGameCommand( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +): Promise { + log.setName("nps:processEncryptedGameCommand"); + log.info(`Attempting to decrypt message: ${message.toString()}`); + + // Get the encryption session + let encryptionSession: EncryptionSession | undefined = + getEncryptionSession(connectionId); + + // If the encryption session doesn't exist, attempt to create it + if (typeof encryptionSession === "undefined") { + try { + // Create the encryption session + const newSession = newEncryptionSession({ + connectionId, + customerId: userStatus.getCustomerId(), + sessionKey: userStatus.getSessionKey().getKey().substring(0, 16), + }); + setEncryptionSession(newSession); + encryptionSession = newSession; + } catch (error) { + log.error(`Error creating encryption session: ${error as string}`); + throw new Error("Error creating encryption session"); + } + + // Log the encryption session + log.info(`Created encryption session for ${userStatus.getCustomerId()}`); + } + + // Attempt to decrypt the message + const decryptedbytes = encryptionSession.gameDecipher.update( + message.getDataAsBuffer(), + ); + + // Log the decrypted bytes + log.info(`Decrypted bytes: ${getAsHex(decryptedbytes)}`); + + // Set the decrypted bytes as a new message + const decryptedMessage = new GameMessage(0); + decryptedMessage.deserialize(decryptedbytes); + + // Log the decrypted message id + log.info(`Decrypted message ID: ${decryptedMessage.header.getId()}`); + + // Do we have a valid message processor? + const processor = lobbyCommandMap.get(decryptedMessage.header.getId()); + + if (typeof processor === "undefined") { + const err = `No processor found for message ID: ${decryptedMessage.header.getId()}`; + log.fatal(err); + throw Error(err); + } + + // Process the message + const response = await processor( + decryptedMessage.header.getId(), + decryptedMessage.getDataAsBuffer(), + ); + + // Log the response + log.info(`Response: ${response.length} bytes, ${getAsHex(response)}`); + + // Encrypt the response + const encryptedResponse = encryptionSession.gameCipher.update(response); + setEncryptionSession(encryptionSession); + + // Log the encrypted response + log.info( + `Encrypted response: ${encryptedResponse.length} bytes, ${getAsHex( + encryptedResponse, + )}`, + ); + + const responsePacket = new GameMessage(0); + responsePacket.header.setId(0x1101); + + const responseData = new SerializableData(encryptedResponse.length); + responseData.deserialize(encryptedResponse); + + responsePacket.setData(responseData); + log.info( + `Response packet: ${responsePacket.header.getLength()} bytes, ${getAsHex( + responsePacket.serialize(), + )}`, + ); + const responseBytes = responsePacket.serialize(); + + socketCallback([responseBytes]); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processGameLogin.ts b/packages/nps/gameMessageProcessors/processGameLogin.ts new file mode 100644 index 000000000..dd3c8ff05 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processGameLogin.ts @@ -0,0 +1,210 @@ +import type { ISerializable } from "../types.js"; +import { GameMessage } from "../messageStructs/GameMessage.js"; +import fs from "node:fs"; +import crypto from "node:crypto"; +import * as Sentry from "@sentry/node"; +import { getToken } from "../services/token.js"; +import type { GameSocketCallback } from "./index.js"; +import { SessionKey } from "../messageStructs/SessionKey.js"; +import { getAsHex, getLenString } from "../src/utils/pureGet.js"; +import { UserStatus } from "../messageStructs/UserStatus.js"; +import { getServerConfiguration, getServerLogger } from "rusty-motors-shared"; +import { UserStatusManager } from "../src/UserStatusManager.js"; + +const log = getServerLogger(); + +export function loadPrivateKey(path: string): string { + const privateKey = fs.readFileSync(path); + + return privateKey.toString("utf8"); +} + +export function decryptSessionKey( + encryptedSessionKey: string, + privateKey: string, +): string { + const sessionKeyStructure = crypto.privateDecrypt( + privateKey, + Buffer.from(encryptedSessionKey, "hex"), + ); + + return sessionKeyStructure.toString("hex"); +} + +export function unpackUserLoginMessage(message: ISerializable): { + sessionKey: string; + gameId: string; + contextToken: string; +} { + log.setName("nps:unpackUserLoginMessage"); + log.info(`Unpacking user login message: ${getAsHex(message.serialize())}`); + + // Get the context token + const ticket = getLenString(message.serialize(), 0, false); + + let dataOffset = ticket.length + 2; + + // The next data structure is a container with an empty id, a length, and a data structure + + // Skip the empty id + dataOffset += 2; + + // Get the next data length + const nextDataLength = message.serialize().readUInt16BE(dataOffset); + + // This value is the encrypted session key hex, stored as a string + const encryptedSessionKey = message + .serialize() + .subarray(dataOffset + 2, dataOffset + 2 + nextDataLength) + .toString("utf8"); + + // Load the private key + const privateKey = loadPrivateKey( + getServerConfiguration({}).privateKeyFile, + ); + + // Decrypt the session key + const sessionKey = decryptSessionKey(encryptedSessionKey, privateKey); + + log.info(`Decrypted session key: ${getAsHex(Buffer.from(sessionKey, "hex"))}`); + + // Unpack the session key + const sessionKeyStructure = SessionKey.fromBytes( + Buffer.from(sessionKey, "hex"), + ); + + log.info(`Session key structure: ${sessionKeyStructure.toString()}`); + + // Update the data offset + dataOffset += 2 + nextDataLength; + + // Get the next data length + const nextDataLength2 = message.serialize().readUInt16BE(dataOffset); + + // This value is the game id (used by server to identify the game) + const gameId = message + .serialize() + .subarray(dataOffset + 2, dataOffset + 2 + nextDataLength2) + .toString("utf8"); + + // Update the data offset + dataOffset += 2 + nextDataLength2; + + log.resetName(); + + // Return the session key, game id, and context token + return { + sessionKey: sessionKeyStructure.getKey(), + gameId, + contextToken: ticket, + }; +} + +/** + * This is the initial connection to the Login server + */ +export async function processGameLogin( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +): Promise { + Sentry.startSpan( + { + name: "processLogin", + op: "processLogin", + }, + () => { + log.setName("nps:processLogin"); + + log.info(`Login: ${message.toString()}`); + + // Unpack the message + try { + const { sessionKey, contextToken } = + unpackUserLoginMessage(message.getData()); + + // Log the context token + log.info(`Context token: ${contextToken}`); + + // Log the session key + log.info(`Session key: ${sessionKey}`); + + // Look up the customer id + const user = getToken(contextToken); + + // If the user is not found, return an error + if (user === undefined) { + log.error(`User not found for context token: ${contextToken}`); + + // Create a new message - Not found + const response = new GameMessage(0); + response.header.setId(0x602); + + // Send the message - twice + Sentry.startSpan( + { + name: "socketCallback", + op: "socketCallback", + }, + () => { + socketCallback([response.serialize()]); + }, + ); + Sentry.startSpan( + { + name: "socketCallback", + op: "socketCallback", + }, + () => { + socketCallback([response.serialize()]); + }, + ); + + return; + } + + // Log the user + log.info(`User: ${user.customerId}`); + + // Create a new message - Login ACK + const loginACK = new GameMessage(0); + loginACK.header.setId(0x601); + + // Send the ack + socketCallback([loginACK.serialize()]); + + // Create a new UserStatus message + const userStatus = UserStatus.new(); + userStatus.setCustomerId(user.customerId); + userStatus.setPersonaId(0); + userStatus.ban.set({ + initiator: "Molly", + startComment: "Because I said so", + }); + userStatus.setSessionKey(SessionKey.fromKeyString(sessionKey)); + + UserStatusManager.addUserStatus(userStatus); + + // Create a new message - UserStatus + const userStatusMessage = new GameMessage(257); + userStatusMessage.header.setId(0x601); + + userStatusMessage.setData(userStatus); + + // Log the message + log.info(`UserStatus: ${userStatusMessage.toString()}`); + + // Send the message + socketCallback([userStatusMessage.serialize()]); + socketCallback([userStatusMessage.serialize()]); + + return; + } catch (e) { + console.error(e); + } + }, + ); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processGameLogout.ts b/packages/nps/gameMessageProcessors/processGameLogout.ts new file mode 100644 index 000000000..954b807bb --- /dev/null +++ b/packages/nps/gameMessageProcessors/processGameLogout.ts @@ -0,0 +1,15 @@ +import type { GameMessage } from "../messageStructs/GameMessage.js"; +import type { GameSocketCallback } from "./index.js"; +import { sendNPSAck } from "../src/utils/sendNPSAck.js"; +import type { UserStatus } from "../messageStructs/UserStatus.js"; + +export async function processGameLogout( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback, +): Promise { + + sendNPSAck(socketCallback); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processGetFirstBuddy.ts b/packages/nps/gameMessageProcessors/processGetFirstBuddy.ts new file mode 100644 index 000000000..64325db04 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processGetFirstBuddy.ts @@ -0,0 +1,44 @@ +import { + GameMessage, + ProfileList, + SerializableData, + getDWord, + getGameProfilesForCustomerId, +} from 'rusty-motors-nps'; +import type { GameSocketCallback } from './index.js'; + +import type { UserStatus } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export async function processFirstBuddy( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback +): Promise { + log.setName('nps:processFirstBuddy'); + const profileId = getDWord(message.getDataAsBuffer(), 0, false); + + log.info(`GetFirstBuddy profile: ${profileId}`); + + // Look up the profiles for the customer ID + const profiles = getGameProfilesForCustomerId(profileId); + + // Create a new NPSList of profiles + const list = new ProfileList(); + + const outMessage = new GameMessage(257); + outMessage.header.setId(0x614); + outMessage.setData(new SerializableData(4)); + + // Log the message + log.info(`GetFirstBuddy: ${outMessage.toString()}`); + + log.info('==========================================='); + + socketCallback([outMessage.serialize()]); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processGetProfileInfo.ts b/packages/nps/gameMessageProcessors/processGetProfileInfo.ts new file mode 100644 index 000000000..ea648243d --- /dev/null +++ b/packages/nps/gameMessageProcessors/processGetProfileInfo.ts @@ -0,0 +1,66 @@ +import { + GameMessage, + ProfileList, + getAsHex, + getDWord, + getGameProfilesForCustomerId, +} from 'rusty-motors-nps'; +import type { GameSocketCallback } from './index.js'; + +import type { UserStatus } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export async function processGetProfileInfo( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback +): Promise { + log.setName('nps:processGetProfileInfo'); + const customerId = getDWord(message.serialize(), 0, false); + + log.info(`GetProfileInfo: ${customerId}`); + + // Look up the profiles for the customer ID + const profiles = getGameProfilesForCustomerId(customerId); + + // Create a new NPSList of profiles + const list = new ProfileList(); + + const outMessage = new GameMessage(0); + + // Add each profile to the list + if (profiles) { + outMessage.header.setId(0x607); + for (const profile of profiles) { + // Log the profile + log.info(`GetProfileInfo: ${profile.toString()}`); // TODO: Remove this line + + list.addProfile(profile); + } + } else { + outMessage.header.setId(0x602); + } + + // Send the list back to the client + try { + // Log the message data + log.info(`GetProfileInfo: ${getAsHex(list.serialize())}`); + + outMessage.setData(list); + + // Log the message + log.info(`GetProfileInfo: ${outMessage.toString()}`); + + log.info('==========================================='); + + socketCallback([outMessage.serialize()]); + log.resetName(); + return Promise.resolve(); + } catch (error) { + log.error(`Error sending profile info: ${error as string}`); + throw new Error('Error sending profile info'); + } +} diff --git a/packages/nps/gameMessageProcessors/processGetProfileMaps.ts b/packages/nps/gameMessageProcessors/processGetProfileMaps.ts new file mode 100644 index 000000000..a97737efd --- /dev/null +++ b/packages/nps/gameMessageProcessors/processGetProfileMaps.ts @@ -0,0 +1,71 @@ +import { + GameMessage, + ProfileList, + getAsHex, + getDWord, + getGameProfilesForCustomerId, +} from 'rusty-motors-nps'; +import type { GameSocketCallback } from './index.js'; + +import type { UserStatus } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export async function processGetProfileMaps( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback +): Promise { + log.setName('nps:processGetProfileMaps'); + // This message is a version 257, but it's version is set to 0 + // This is a bug in the client, so we need to generate a new message + // with the correct version + const requestMessage = GameMessage.fromGameMessage(257, message); + + log.info(`GetProfileMaps (257): ${requestMessage.toString()}`); + + const customerId = getDWord(requestMessage.getDataAsBuffer(), 0, false); + + log.info(`GetProfileMaps: ${customerId}`); + + // Look up the profiles for the customer ID + const profiles = getGameProfilesForCustomerId(customerId); + + // Create a new NPSList of profiles + const list = new ProfileList(); + + // Add each profile to the list + if (profiles) { + for (const profile of profiles) { + // Log the profile + log.info(`GetProfileMaps: ${profile.toString()}`); + + list.addProfile(profile); + } + } + + // Send the list back to the client + try { + const outMessage = new GameMessage(257); + outMessage.header.setId(0x607); + + // Log the message data + log.info(`GetProfileMaps: ${getAsHex(outMessage.serialize())}`); + + outMessage.setData(list); + + // Log the message + log.info(`GetProfileMaps: ${outMessage.toString()}`); + + log.info('==========================================='); + + socketCallback([outMessage.serialize()]); + log.resetName(); + return Promise.resolve(); + } catch (error) { + log.error(`Error sending profile info: ${error as string}`); + throw new Error('Error sending profile info'); + } +} diff --git a/packages/nps/gameMessageProcessors/processPing.ts b/packages/nps/gameMessageProcessors/processPing.ts new file mode 100644 index 000000000..886be08b2 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processPing.ts @@ -0,0 +1,22 @@ +import { GameMessage } from 'rusty-motors-nps'; +import type { GameSocketCallback } from './index.js'; + +import type { UserStatus } from 'rusty-motors-nps'; +import { sendNPSAck } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export async function processPing( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback +): Promise { + log.setName('nps:processPing'); + log.info(`Ping: ${message.toString()}`); + + sendNPSAck(socketCallback); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processSelectPersona.ts b/packages/nps/gameMessageProcessors/processSelectPersona.ts new file mode 100644 index 000000000..d99c703a1 --- /dev/null +++ b/packages/nps/gameMessageProcessors/processSelectPersona.ts @@ -0,0 +1,50 @@ +import { GameMessage, getDWord } from 'rusty-motors-nps'; +import type { GameSocketCallback } from './index.js'; + +import { UserStatus, UserStatusManager, sendNPSAck } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export async function processSelectPersona( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback +): Promise { + log.setName('nps:processSelectPersona'); + + log.info(`SelectPersona: ${message.toString()}`); + + const customerId = getDWord(message.getDataAsBuffer(), 0, false); + + const personaId = getDWord(message.getDataAsBuffer(), 4, false); + + const shardId = getDWord(message.getDataAsBuffer(), 8, false); + + // Log the values + log.info(`Customer ID: ${customerId}`); + log.info(`Persona ID: ${personaId}`); + log.info(`Shard ID: ${shardId}`); + + // Lookup the session + const existingStatus = UserStatusManager.getUserStatus(customerId); + + if (!existingStatus) { + log.error(`UserStatus not found for customer ID ${customerId}`); + throw new Error(`UserStatus not found for customer ID ${customerId}`); + } + + log.info( + `Setting persona ID to ${personaId} for ${existingStatus.getCustomerId()}` + ); + + // Update the user status + existingStatus.setPersonaId(personaId); + + log.info(`GameLogin: ${message.toString()}`); + + sendNPSAck(socketCallback); + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/gameMessageProcessors/processUserLogin.ts b/packages/nps/gameMessageProcessors/processUserLogin.ts new file mode 100644 index 000000000..45f9e2a0c --- /dev/null +++ b/packages/nps/gameMessageProcessors/processUserLogin.ts @@ -0,0 +1,72 @@ +import { + GameMessage, + UserInfo, + getDWord, + getLenString, +} from 'rusty-motors-nps'; +import type { GameSocketCallback } from './index.js'; + +import type { UserStatus } from 'rusty-motors-nps'; +import { UserStatusManager, getCustomerId } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export async function processUserLogin( + connectionId: string, + userStatus: UserStatus, + message: GameMessage, + socketCallback: GameSocketCallback +): Promise { + log.setName('nps:processUserLogin'); + + log.info(`UserLogin: ${message.toString()}`); + + // This message is a BareMessageV0 + + const personaId = getDWord(message.getDataAsBuffer(), 0, false); + + const profileName = getLenString(message.getDataAsBuffer(), 4, false); + + // Lookup customerID from personaID + const customerID = getCustomerId(personaId); + + if (customerID === -1) { + log.error(`CustomerID not found for personaID: ${personaId}`); + throw new Error(`CustomerID not found for personaID: ${personaId}`); + } + + log.info(`LobbyLogin: ${personaId} ${profileName} ${customerID}`); + + const existingStatus = UserStatusManager.getUserStatus(customerID); + + if (typeof existingStatus === 'undefined') { + log.error(`UserStatus not found for customerID: ${customerID}`); + throw new Error(`UserStatus not found for customerID: ${customerID}`); + } + + // Update the user status + existingStatus.setPersonaId(personaId); + + userStatus = existingStatus; + + log.info(`LobbyLogin: ${message.toString()}`); + + const response = new UserInfo(personaId, profileName); + + log.info(`Sending response: ${response.toString()}`); + + const responseMessage = new GameMessage(0); + responseMessage.header.setId(0x120); + + responseMessage.setData(response); + + log.info(`Response message: ${responseMessage.toString()}`); + + const responseBytes = responseMessage.serialize(); + + socketCallback([responseBytes]); + + log.resetName(); + return Promise.resolve(); +} diff --git a/packages/nps/index.ts b/packages/nps/index.ts new file mode 100644 index 000000000..4f1c09ad4 --- /dev/null +++ b/packages/nps/index.ts @@ -0,0 +1,53 @@ +export { + MessageProcessorError, + PortMapError, + gameMessageProcessors, + getGameMessageProcessor, + getPortMessageType, + populateGameMessageProcessors, + populatePortToMessageTypes, + portToMessageTypes, + type GameSocketCallback, +} from './gameMessageProcessors/index.js'; +export { processGameLogin } from './gameMessageProcessors/processGameLogin.js'; +export { GameMessage, SerializableData } from './messageStructs/GameMessage.js'; +export { MiniRiffInfo, MiniRiffList } from './messageStructs/MiniRiffList.js'; +export { MiniUserInfo, MiniUserList } from './messageStructs/MiniUserList.js'; +export { ProfileList } from './messageStructs/ProfileList.js'; +export { UserInfo } from './messageStructs/UserInfo.js'; +export { UserStatus } from './messageStructs/UserStatus.js'; +export { + getUser, + populateGameUsers as populateGameUsers, +} from './services/account.js'; +export { + gameProfiles, + getCustomerId, + getGameProfilesForCustomerId, +} from './services/profile.js'; +export { generateToken } from './services/token.js'; +export { UserStatusManager } from './src/UserStatusManager.js'; +export { isOnlyOneSet } from './src/utils/pureCompare.js'; +export { + getAsHex, + getDWord, + getLenBlob, + getLenString, + getNBytes, + getShortBool, + getWord, +} from './src/utils/pureGet.js'; +export { + put16, + put16BE, + put16LE, + put32, + put32BE, + put32LE, + put8, + putLenBlob, + putLenString, + putShortBool, +} from './src/utils/purePut.js'; +export { sendNPSAck } from './src/utils/sendNPSAck.js'; +export * from './types.js'; diff --git a/packages/nps/messageStructs/GameMessage.ts b/packages/nps/messageStructs/GameMessage.ts new file mode 100644 index 000000000..a844cbee1 --- /dev/null +++ b/packages/nps/messageStructs/GameMessage.ts @@ -0,0 +1,205 @@ +import type { ISerializable, IMessageHeader, IMessage } from "rusty-motors-nps"; + +export class MessageHeader implements IMessageHeader { + private version: 0 | 257; + private id: number; + private length: number; + + constructor(version: 0 | 257, id: number, length: number) { + if (version !== 0 && version !== 257) { + throw new Error(`Invalid version ${parseInt(version)}`); + } + this.version = version; + this.id = id; + this.length = length !== 0 ? length : this.getByteSize(); + } + getDataOffset(): number { + return this.getVersion() === 0 ? 4 : 12; + } + getByteSize(): number { + return this.getVersion() === 0 ? 4 : 12; + } + + getVersion(): number { + return this.version; + } + getId(): number { + return this.id; + } + getLength(): number { + return this.length; + } + setVersion(version: 0 | 257): void { + if (version !== 0 && version !== 257) { + throw new Error(`Invalid version ${parseInt(version)}`); + } + this.version = version; + } + setId(id: number): void { + this.id = id; + } + setLength(length: number): void { + this.length = length; + } + + private serializeV0(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt16BE(this.id, 0); + buffer.writeUInt16BE(this.length, 2); + + return buffer; + } + + private serializeV1(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt16BE(this.id, 0); + buffer.writeUInt16BE(this.length, 2); + buffer.writeUInt16BE(this.version, 4); + buffer.writeUInt16BE(0, 6); + buffer.writeUInt32BE(this.length, 8); + + return buffer; + } + + serialize(): Buffer { + return this.version === 0 ? this.serializeV0() : this.serializeV1(); + } + + private deserializeV0(data: Buffer): void { + this.id = data.readUInt16BE(0); + this.length = data.readUInt16BE(2); + } + + private deserializeV1(data: Buffer): void { + this.id = data.readUInt16BE(0); + this.length = data.readUInt16BE(2); + // Skip version + // Skip padding + this.length = data.readUInt32BE(8); + } + + deserialize(data: Buffer): void { + if (data.length < 4) { + throw new Error( + `Data is too short. Expected at least 4 bytes, got ${data.length} bytes`, + ); + } + + if (this.version === 0) { + this.deserializeV0(data); + } else { + this.deserializeV1(data); + } + } +} + +export class SerializableData implements ISerializable { + private data: Buffer; + constructor(requestedSize: number) { + this.data = Buffer.alloc(requestedSize); + } + + serialize(): Buffer { + return this.data; + } + + deserialize(data: Buffer): void { + if (data.length > this.data.length) { + throw new Error( + `Data is too long. Expected at most ${this.data.length} bytes, got ${data.length} bytes`, + ); + } + this.data = data; + } + + getByteSize(): number { + return this.data.length; + } + + toString(): string { + return `EmptyData(length=${this.data.length}, data=${this.data.toString( + "hex", + )})`; + } +} + +export class GameMessage implements IMessage { + header: MessageHeader; + data: ISerializable; + + constructor(version: 0 | 257) { + this.header = new MessageHeader(version, 0, 0); + this.data = new SerializableData(0); + } + + getId() { + return this.header.getId(); + } + + getDataAsBuffer(): Buffer { + return this.data.serialize(); + } + + /** The message length is the length of the message data, not including the id */ + getByteSize(): number { + return this.header.getLength(); + } + getData(): ISerializable { + return this.data; + } + setData(data: ISerializable): void { + this.data = data; + this.header.setLength(data.getByteSize() + this.header.getByteSize()); + } + serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + const headerData = this.header.serialize(); + headerData.copy(buffer, 0); + const messageData = this.data.serialize(); + messageData.copy(buffer, this.header.getDataOffset()); + return buffer; + } + deserialize(data: Buffer): GameMessage { + if (data.length < this.header.getDataOffset()) { + throw new Error( + `Data is too short. Expected at least ${this.header.getDataOffset()} bytes, got ${ + data.length + } bytes`, + ); + } + this.header.deserialize(data); + const messageData = data.subarray(this.header.getDataOffset()); + + // Update the message data to the required size + this.data = new SerializableData(this.header.getLength()); + + this.data.deserialize(messageData.subarray(0, this.header.getLength())); + return this; + } + + toString(): string { + return `Id: ${this.header.getId()} + Length: ${this.header.getLength()} + Data: ${this.data.toString()}`; + } + + static identifyVersion(data: Buffer): 0 | 257 { + if (data.length < 6) { + return 0; + } + + const version = data.readUInt16BE(4); + if (version !== 257) { + return 0; + } + + return 257; + } + + static fromGameMessage(version: 0 | 257, source: GameMessage): GameMessage { + const message = new GameMessage(version); + message.deserialize(source.serialize()); + return message; + } + +} diff --git a/packages/nps/messageStructs/GameProfile.ts b/packages/nps/messageStructs/GameProfile.ts new file mode 100644 index 000000000..81ee60abb --- /dev/null +++ b/packages/nps/messageStructs/GameProfile.ts @@ -0,0 +1,198 @@ +import type { ISerializable } from "rusty-motors-nps"; +import { putLenString } from "rusty-motors-nps"; +import { + getAsHex, + getLenBlob, + getLenString, + getShortBool, +} from "rusty-motors-nps"; + +export class GameProfile implements ISerializable { + customerId: number; // 4 bytes + profileName: string; // 32 bytes - max length + serverId: number; // 4 bytes + createStamp: number; // 4 bytes + lastLoginStamp: number; // 4 bytes + numberGames: number; // 4 bytes + profileId: number; // 4 bytes + isOnline: boolean; // 2 bytes + gamePurchaseStamp: number; // 4 bytes + gameSerialNumber: string; // 32 bytes - max length + timeOnline: number; // 4 bytes + timeInGame: number; // 4 bytes + gameBlob: Buffer; // 512 bytes - max length + personalBlob: Buffer; // 256 bytes - max length + pictureBlob: Buffer; // 1 byte + dnd: boolean; // 2 bytes + gameStartStamp: number; // 4 bytes + currentKey: string; // 400 bytes - max length + profileLevel: number; // 2 bytes + shardId: number; // 4 bytes + + constructor() { + this.customerId = 0; + this.profileName = ""; + this.serverId = 0; + this.createStamp = 0; + this.lastLoginStamp = 0; + this.numberGames = 0; + this.profileId = 0; + this.isOnline = false; + this.gamePurchaseStamp = 0; + this.gameSerialNumber = ""; + this.timeOnline = 0; + this.timeInGame = 0; + this.gameBlob = Buffer.alloc(0); + this.personalBlob = Buffer.alloc(0); + this.pictureBlob = Buffer.alloc(0); + this.dnd = false; + this.gameStartStamp = 0; + this.currentKey = ""; + this.profileLevel = 0; + this.shardId = 0; + } + serialize(): Buffer { + return this.toBytes(); + } + deserialize(data: Buffer): GameProfile { + return GameProfile.fromBytes(data); + } + getByteSize(): number { + throw new Error("Method not implemented."); + } + + static new(): GameProfile { + return new GameProfile(); + } + + static fromBytes(data: Buffer): GameProfile { + const message = new GameProfile(); + let offset = 0; + message.customerId = data.readUInt32BE(offset); + offset += 4; + message.profileName = getLenString(data, offset, false); + offset += message.profileName.length + 2; + message.serverId = data.readUInt32BE(offset); + offset += 4; + message.createStamp = data.readUInt32BE(offset); + offset += 4; + message.lastLoginStamp = data.readUInt32BE(offset); + offset += 4; + message.numberGames = data.readUInt32BE(offset); + offset += 4; + message.profileId = data.readUInt32BE(offset); + offset += 4; + message.isOnline = getShortBool(data, offset); + offset += 2; + message.gamePurchaseStamp = data.readUInt32BE(offset); + offset += 4; + message.gameSerialNumber = getLenString(data, offset, false); + offset += message.gameSerialNumber.length + 2; + message.timeOnline = data.readUInt32BE(offset); + offset += 4; + message.timeInGame = data.readUInt32BE(offset); + offset += 4; + message.gameBlob = getLenBlob(data, offset, false); + offset += message.gameBlob.length + 2; + message.personalBlob = getLenBlob(data, offset, false); + offset += message.personalBlob.length + 2; + message.pictureBlob = data.subarray(offset, offset + 1); + offset += message.pictureBlob.length; + message.dnd = getShortBool(data, offset); + offset += 2; + message.gameStartStamp = data.readUInt32BE(offset); + offset += 4; + message.currentKey = getLenString(data, offset, false); + offset += message.currentKey.length + 2; + message.profileLevel = data.readUInt16BE(offset); + offset += 2; + message.shardId = data.readUInt32BE(offset); + + return message; + } + + toBytes(): Buffer { + const buffer = Buffer.alloc(this.getSize()); + let offset = 0; + buffer.writeUInt32BE(this.customerId, offset); + offset += 4; // offset is now 4 + buffer.writeUInt16BE(3341, offset); + offset += 2; // offset is now 6 + buffer.writeUInt32BE(this.profileId, offset); + offset += 4; // offset is now 10 + buffer.writeUInt32BE(this.shardId, offset); + offset += 4; // offset is now 14 + offset += 2; // offset is now 16 + putLenString(buffer, offset, this.profileName, false); + + // buffer.writeUInt32BE(this.serverId, offset); + // offset += this.profileName.length + 2; + // buffer.writeUInt32BE(this.createStamp, offset); + // offset += 4; + // buffer.writeUInt32BE(this.lastLoginStamp, offset); + // offset += 4; + // buffer.writeUInt32BE(this.numberGames, offset); + // offset += 4; + // putShortBool(buffer, offset, this.isOnline); + // offset += 2; + // buffer.writeUInt32BE(this.gamePurchaseStamp, offset); + // offset += 4; + // putLenString(buffer, offset, this.gameSerialNumber, false); + // offset += this.gameSerialNumber.length + 2; + // buffer.writeUInt32BE(this.timeOnline, offset); + // offset += 4; + // buffer.writeUInt32BE(this.timeInGame, offset); + // offset += 4; + // putLenBlob(buffer, offset, this.gameBlob, false); + // offset += this.gameBlob.length + 2; + // putLenBlob(buffer, offset, this.personalBlob, false); + // offset += this.personalBlob.length + 2; + // this.pictureBlob.copy(buffer, offset, 0, 1); + // offset += 1; + // putShortBool(buffer, offset, this.dnd); + // offset += 2; + // buffer.writeUInt32BE(this.gameStartStamp, offset); + // offset += 4; + // putLenString(buffer, offset, this.currentKey, false); + // offset += this.currentKey.length + 2; + // buffer.writeUInt16BE(this.profileLevel, offset); + // offset += 2; + return buffer; + } + toString(): string { + return `GameProfile: + customerID: ${this.customerId} + profileName: ${this.profileName} + serverId: ${this.serverId} + createStamp: ${this.createStamp} + lastLoginStamp: ${this.lastLoginStamp} + numberGames: ${this.numberGames} + profileId: ${this.profileId} + isOnline: ${this.isOnline} + gamePurchaseStamp: ${this.gamePurchaseStamp} + gameSerialNumber: ${this.gameSerialNumber} + timeOnline: ${this.timeOnline} + timeInGame: ${this.timeInGame} + gameBlob: ${getAsHex(this.gameBlob)} + personalBlob: ${getAsHex(this.personalBlob)} + pictureBlob: ${getAsHex(this.pictureBlob)} + dnd: ${this.dnd} + gameStartStamp: ${this.gameStartStamp} + currentKey: ${this.currentKey} + profileLevel: ${this.profileLevel} + shardId: ${this.shardId} + `; + } + toHex(): string { + return getAsHex(this.toBytes()); + } + setData(): void { + throw new Error("Method not implemented."); + } + getData(): Buffer { + throw new Error("Method not implemented."); + } + getSize(): number { + return 52; + } +} diff --git a/packages/nps/messageStructs/MiniRiffList.ts b/packages/nps/messageStructs/MiniRiffList.ts new file mode 100644 index 000000000..e4de5b79f --- /dev/null +++ b/packages/nps/messageStructs/MiniRiffList.ts @@ -0,0 +1,100 @@ +import type { ISerializable } from 'rusty-motors-nps'; +import { putLenString } from 'rusty-motors-nps'; +import { NPSList } from './NPSList.js'; + +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +const channelRecordSize = 40; + +export class MiniRiffInfo implements ISerializable { + riffName: string; // 32 bytes - max length + riffId: number; // 4 bytes + population: number; // 2 bytes + + constructor(riffName: string, riffId: number, population: number) { + if (riffName.length > 32) { + throw new Error(`Riff name too long: ${riffName}`); + } + + this.riffName = riffName; + this.riffId = riffId; + this.population = population; + } + + serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + let offset = 0; + putLenString(buffer, offset, this.riffName, false); + offset += 2 + this.riffName.length + 1; + buffer.writeUInt32BE(this.riffId, offset); + offset += 4; + buffer.writeUInt16BE(this.population, offset); + log.debug( + `MiniRiffInfo: ${this.toString()} - ${buffer.toString('hex')}` + ); + return buffer; + } + deserialize(data: Buffer): void { + throw new Error('Method not implemented.'); + } + getByteSize(): number { + return 4 + this.riffName.length + 1 + 4 + 2; + } + toString(): string { + return `MiniRiffInfo(riffName=${this.riffName}, riffId=${this.riffId}, population=${this.population})`; + } +} + +export class MiniRiffList extends NPSList implements ISerializable { + override serialize(): Buffer { + return this.toBytes(); + } + override deserialize(data: Buffer): void { + throw new Error('Method not implemented.'); + } + override getByteSize(): number { + return this.getSize(); + } + private riffs: MiniRiffInfo[] = []; + + getMaxRiffs(): number { + return this.riffs.length; + } + + addRiff(riff: MiniRiffInfo): void { + this.riffs.push(riff); + } + + override toBytes(): Buffer { + const buffer = Buffer.alloc(this.getSize()); + let offset = 0; + buffer.writeUInt32BE(this.riffs.length, offset); + offset += 4; + for (const riff of this.riffs) { + const riffBuffer = riff.serialize(); + riffBuffer.copy(buffer, offset); + offset += riff.getByteSize(); + } + + log.debug( + `MiniRiffList: ${this.toString()} - ${buffer.toString('hex')}` + ); + return buffer; + } + override toString(): string { + return `MiniRiffList(riffs=${this.riffs})`; + } + override toHex(): string { + return this.toBytes().toString('hex'); + } + + override getSize(): number { + let size = 4; + for (const riff of this.riffs) { + size += riff.getByteSize(); + } + return size; + } +} diff --git a/packages/nps/messageStructs/MiniUserList.ts b/packages/nps/messageStructs/MiniUserList.ts new file mode 100644 index 000000000..41c56b150 --- /dev/null +++ b/packages/nps/messageStructs/MiniUserList.ts @@ -0,0 +1,74 @@ +import type { ISerializable } from "rusty-motors-nps"; +import { putLenString } from "rusty-motors-nps"; + +export class MiniUserInfo implements ISerializable { + userId: number; // 4 bytes + userName: string; // 32 bytes - max length + + constructor(userId: number, userName: string) { + if (userName.length > 32) { + throw new Error(`User name too long: ${userName}`); + } + + this.userId = userId; + this.userName = userName; + } + + serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + let offset = 0; + buffer.writeUInt32BE(this.userId, offset); + offset += 4; + putLenString(buffer, offset, this.userName, false); + return buffer; + } + deserialize(data: Buffer): void { + throw new Error("Method not implemented."); + } + getByteSize(): number { + return 4 + 4 + this.userName.length + 1; + } + toString(): string { + return `MiniUserInfo(userId=${this.userId}, userName=${this.userName})`; + } +} + +export class MiniUserList implements ISerializable { + private channelId: number; // 4 bytes + private channelUsers: MiniUserInfo[] = []; + + constructor(channelId: number) { + this.channelId = channelId; + } + + addChannelUser(user: MiniUserInfo): void { + this.channelUsers.push(user); + } + + serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + let offset = 0; + buffer.writeUInt32BE(this.channelId, offset); + offset += 4; + buffer.writeUInt32BE(this.channelUsers.length, offset); + offset += 4; + this.channelUsers.forEach((user) => { + const userBuffer = user.serialize(); + userBuffer.copy(buffer, offset); + offset += userBuffer.length; + }); + return buffer; + } + deserialize(data: Buffer): void { + throw new Error("Method not implemented."); + } + getByteSize(): number { + return ( + 16 + + this.channelUsers.reduce((acc, user) => acc + user.getByteSize(), 0) + ); + } + toString(): string { + return `MiniUserList(channelId=${this.channelId}, channelUsers=${this.channelUsers})`; + } +} diff --git a/packages/nps/messageStructs/NPSList.ts b/packages/nps/messageStructs/NPSList.ts new file mode 100644 index 000000000..268011d4a --- /dev/null +++ b/packages/nps/messageStructs/NPSList.ts @@ -0,0 +1,34 @@ +import type { ISerializable, IMessage } from "rusty-motors-nps"; + +export class NPSList implements ISerializable { + serialize(): Buffer { + throw new Error("Method not implemented."); + } + deserialize(data: Buffer): void { + throw new Error("Method not implemented."); + } + getByteSize(): number { + throw new Error("Method not implemented."); + } + private list: IMessage[] = []; + + toBytes(): Buffer { + throw new Error("Method not implemented."); + } + toString(): string { + throw new Error("Method not implemented."); + } + toHex(): string { + throw new Error("Method not implemented."); + } + setData(data: Buffer): void { + throw new Error("Method not implemented."); + } + getData(): Buffer { + throw new Error("Method not implemented."); + } + + getSize(): number { + return 0; + } +} diff --git a/packages/nps/messageStructs/ProfileList.ts b/packages/nps/messageStructs/ProfileList.ts new file mode 100644 index 000000000..4a5d6ce02 --- /dev/null +++ b/packages/nps/messageStructs/ProfileList.ts @@ -0,0 +1,59 @@ +import type { ISerializable } from 'rusty-motors-nps'; +import { GameProfile } from './GameProfile.js'; +import { NPSList } from './NPSList.js'; + +export class ProfileList extends NPSList implements ISerializable { + override serialize(): Buffer { + return this.toBytes(); + } + override deserialize(data: Buffer): void { + throw new Error('Method not implemented.'); + } + override getByteSize(): number { + return this.getSize(); + } + maxProfiles = 0; // 1 byte + private profiles: GameProfile[] = []; + + getMaxProfiles(): number { + return this.maxProfiles; + } + + addProfile(profile: GameProfile): void { + this.profiles.push(profile); + this.maxProfiles = this.profiles.length; + } + + override toBytes(): Buffer { + const buffer = Buffer.alloc(this.getSize()); + let offset = 0; + buffer.writeUInt16BE(this.maxProfiles, offset); + offset += 2; + for (const profile of this.profiles) { + const profileBuffer = profile.toBytes(); + profileBuffer.copy(buffer, offset); + offset += profile.getSize(); + } + return buffer; + } + override toString(): string { + return `ProfileList(maxProfiles=${this.maxProfiles}, profiles=${this.profiles})`; + } + override toHex(): string { + throw new Error('Method not implemented.'); + } + override setData(data: Buffer): void { + throw new Error('Method not implemented.'); + } + override getData(): Buffer { + throw new Error('Method not implemented.'); + } + + override getSize(): number { + let size = 4; + for (const profile of this.profiles) { + size += profile.getSize(); + } + return size; + } +} diff --git a/packages/nps/messageStructs/SessionKey.ts b/packages/nps/messageStructs/SessionKey.ts new file mode 100644 index 000000000..ba53e0b1a --- /dev/null +++ b/packages/nps/messageStructs/SessionKey.ts @@ -0,0 +1,113 @@ +import type { ISerializable } from 'rusty-motors-nps'; +import { getAsHex, isOnlyOneSet } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export class SessionKey implements ISerializable { + private key: Buffer = Buffer.alloc(0); + private timestamp: number = 0; + private _isSet: boolean = false; + + constructor({ key, timestamp }: { key?: Buffer; timestamp?: number }) { + log.setName('SessionKey'); + if (isOnlyOneSet(key, timestamp)) { + throw new Error('Both key and timestamp must be set if one is set'); + } + + if (typeof key !== 'undefined' && typeof timestamp !== 'undefined') { + log.debug( + `SessionKey: key=${getAsHex(key)}, timestamp=${timestamp}` + ); + this.key = key; + this.timestamp = timestamp; + this._isSet = true; + } + log.resetName(); + } + serialize(): Buffer { + return this.toBytes(); + } + deserialize(data: Buffer): void { + SessionKey.fromBytes(data); + } + getByteSize(): number { + throw new Error('Method not implemented.'); + } + + static fromBytes(bytes: Buffer): SessionKey { + log.setName('SessionKey.fromBytes'); + const keyLength = bytes.readUInt16BE(0); + + // Set the data offset + const dataOffset = 2 + keyLength; + + const key = bytes.subarray(2, dataOffset); + + log.debug(`SessionKey.fromBytes: key=${getAsHex(key)}`); + + // Get the timestamp + const timestamp = bytes.readUInt32BE(dataOffset); + + log.resetName(); + + return new SessionKey({ + key, + timestamp, + }); + } + + static fromKeyString(key: string): SessionKey { + const keyBuffer = Buffer.from(key, 'hex'); + + return new SessionKey({ + key: keyBuffer, + timestamp: 0, + }); + } + + getKey(): string { + return this.key.toString('hex'); + } + + toString(): string { + return `SessionKey(key=${this.getKey()}, timestamp=${this.timestamp})`; + } + + toHex(): string { + return getAsHex(this.toBytes()); + } + + toBytes(): Buffer { + if (!this.isSet()) { + throw new Error('Session key is not set'); + } + + const keyLength = this.key.length; + const timestamp = this.timestamp; + + const buffer = Buffer.alloc(2 + keyLength + 4); + + buffer.writeUInt16BE(keyLength, 0); + this.key.copy(buffer, 2); + buffer.writeUInt32BE(timestamp, 2 + keyLength); + + return buffer; + } + + getSize(): number { + return this.key.length + 6; + } + + getData(): Buffer { + throw new Error('Method not implemented.'); + } + + setData(): void { + throw new Error('Method not implemented.'); + } + + isSet(): boolean { + return this._isSet; + } +} diff --git a/packages/nps/messageStructs/UserAction.ts b/packages/nps/messageStructs/UserAction.ts new file mode 100644 index 000000000..7c218f04a --- /dev/null +++ b/packages/nps/messageStructs/UserAction.ts @@ -0,0 +1,133 @@ +import type { ISerializable } from 'rusty-motors-nps'; +import { getAsHex } from 'rusty-motors-nps'; +import { getServerLogger } from 'rusty-motors-shared'; + +const log = getServerLogger(); + +export class UserAction implements ISerializable { + private name: string; + private _endTimeMaybe = 0; // 4 bytes + private _b1 = 0; // 1 byte + private _b2 = 0; // 1 byte + private _initiator = ''; // 64 bytes + private _startComment = ''; // 256 bytes + private _endComment = ''; // 256 bytes + + constructor(name: string) { + this.name = name; + } + + serialize(): Buffer { + const buffer = Buffer.alloc(this.getSize()); + let offset = 0; + buffer.writeUInt32BE(this._endTimeMaybe, offset); + offset += 4; + buffer.writeUInt8(this._b1, offset); + offset += 1; + buffer.writeUInt8(this._b2, offset); + offset += 1; + buffer.write(this._initiator, offset, 0x40, 'utf8'); + offset += 0x40; + buffer.write(this._startComment, offset, 0x100, 'utf8'); + offset += 0x100; + buffer.write(this._endComment, offset, 0x100, 'utf8'); + + return buffer; + } + deserialize(data: Buffer): void { + try { + this._endTimeMaybe = data.readUInt32BE(0); + this._b1 = data.readUInt8(4); + this._b2 = data.readUInt8(5); + this._initiator = data.toString('utf8', 6, 0x46); + this._startComment = data.toString('utf8', 0x46, 0x146); + this._endComment = data.toString('utf8', 0x146, 0x246); + } catch (error) { + log.error(`Error deserializing UserAction: ${error as string}`); + throw error; + } + } + getByteSize(): number { + throw new Error('Method not implemented.'); + } + setData(): void { + throw new Error('Method not implemented.'); + } + getData(): Buffer { + throw new Error('Method not implemented.'); + } + + static fromBytes(name: string, bytes: Buffer): UserAction { + const userAction = new UserAction(name); + userAction.deserialize(bytes); + + return userAction; + } + + toBytes(): Buffer { + return this.serialize(); + } + toString(): string { + return `UserAction: ${this.name} - ${this._initiator} - ${this._startComment} - ${this._endComment}`; + } + toHex(): string { + return getAsHex(this.serialize()); + } + + getSize(): number { + return 4 + 1 + 1 + 0x40 + 0x100 + 0x100; + } + + public set({ + endTimeMaybe, + b1, + b2, + initiator, + startComment, + endComment, + }: { + endTimeMaybe?: number; + b1?: number; + b2?: number; + initiator: string; + startComment: string; + endComment?: string; + }): void { + this._endTimeMaybe = endTimeMaybe || 0; + this._b1 = b1 || 0; + this._b2 = b2 || 0; + this._initiator = initiator; + this._startComment = startComment; + this._endComment = endComment || ''; + } + + public clear(): void { + this._endTimeMaybe = 0; + this._b1 = 0; + this._b2 = 0; + this._initiator = ''; + this._startComment = ''; + this._endComment = ''; + } + + updateEmptyValuesFrom(other: UserAction) { + if (this._endTimeMaybe === 0) { + this._endTimeMaybe = other._endTimeMaybe; + } + if (this._b1 === 0) { + this._b1 = other._b1; + } + if (this._b2 === 0) { + this._b2 = other._b2; + } + if (this._initiator === '') { + this._initiator = other._initiator; + } + if (this._startComment === '') { + this._startComment = other._startComment; + } + if (this._endComment === '') { + this._endComment = other._endComment; + } + } +} diff --git a/packages/nps/messageStructs/UserInfo.ts b/packages/nps/messageStructs/UserInfo.ts new file mode 100644 index 000000000..308dc5cad --- /dev/null +++ b/packages/nps/messageStructs/UserInfo.ts @@ -0,0 +1,46 @@ +import type { ISerializable } from "rusty-motors-nps"; + +export class UserInfo implements ISerializable { + private profileId: number; // 4 bytes + private profileName: string; // 32 bytes - max length + private userData; // 64 bytes + + constructor(id: number, name: string) { + if (name.length > 31) { + throw new Error( + `Profile name too long: ${name}, max length is 31, got ${name.length}`, + ); + } + this.profileId = id; + this.profileName = name; + this.userData = Buffer.alloc(64); + } + + serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + let offset = 0; + buffer.writeInt32BE(this.profileId, offset); + offset += 4; + buffer.writeUInt16BE(this.profileName.length, offset); + offset += 2; + buffer.write( + `${this.profileName}\0`, + offset, + this.profileName.length + 1, + "utf8", + ); + offset += this.profileName.length + 1; + this.userData.copy(buffer, offset); + return buffer; + } + deserialize(data: Buffer): void { + throw new Error("Method not implemented."); + } + getByteSize(): number { + return 4 + 2 + this.profileName.length + 1 + 64; + } + toString(): string { + return `Profile ID: ${this.profileId}, + Profile Name: ${this.profileName}`; + } +} diff --git a/packages/nps/messageStructs/UserStatus.ts b/packages/nps/messageStructs/UserStatus.ts new file mode 100644 index 000000000..9dd3157d1 --- /dev/null +++ b/packages/nps/messageStructs/UserStatus.ts @@ -0,0 +1,178 @@ +import { randomUUID } from "crypto"; +import type { ISerializable } from "../types.js"; +import { SessionKey } from "./SessionKey.js"; +import { UserAction } from "./UserAction.js"; + +export class UserStatus implements ISerializable { + private _sessionId: string = ""; + private _remoteIp: string = ""; + private _machineId: string = ""; + private customerId: number = 0; + private personaId: number = 0; + private isCacheHit: boolean = false; + readonly ban: UserAction = new UserAction("ban"); + readonly gag: UserAction = new UserAction("gag"); + private sessionKey: SessionKey = new SessionKey({}); + + constructor({ + customerId, + personaId, + sessionKey, + }: { + customerId: number; + personaId?: number; + sessionKey?: SessionKey; + + }) { + this._sessionId = randomUUID(); + this.customerId = customerId; + this.personaId = personaId || 0; + this.isCacheHit = false; + this.ban = new UserAction("ban"); + this.gag = new UserAction("gag"); + this.sessionKey = sessionKey || new SessionKey({}); + } + serialize(): Buffer { + return this.toBytes(); + } + deserialize(): void { + throw new Error("Method not implemented."); + } + getByteSize(): number { + return this.getSize(); + } + + getSessionId(): string { + return this._sessionId; + } + + getRemoteIp(): string { + return this._remoteIp; + } + + setRemoteIp(value: string) { + if (this._remoteIp !== "" && this._remoteIp !== value) { + throw new Error("Remote IP is already set and cannot be changed"); + } + this._remoteIp = value; + } + + getMachineId(): string { + return this._machineId; + } + + setMachineId(value: string) { + if (this._machineId !== "" && this._machineId !== value) { + throw new Error("Machine ID is already set and cannot be changed"); + } + this._machineId = value; + } + + static new(): UserStatus { + return new UserStatus({ + customerId: 0, + }); + + } + + static fromBytes(bytes: Buffer): UserStatus { + let offset = 0; + const customerId = bytes.readUInt32BE(offset); + offset += 4; + const personaId = bytes.readUInt32BE(offset); + offset += 4; + // Skip isCacheHit + offset += 1; + const ban = UserAction.fromBytes("ban", bytes.subarray(offset)); + offset += ban.getSize(); + const gag = UserAction.fromBytes("gag", bytes.subarray(offset)); + offset += gag.getSize(); + const sessionKey = SessionKey.fromBytes(bytes.subarray(offset)); + + return new UserStatus({ + customerId, + personaId, + sessionKey, + + }); + } + + toBytes(): Buffer { + const buffer = Buffer.alloc(this.getSize()); + + if (this.sessionKey === null) { + throw new Error("Session key is required"); + } + + let offset = 0; + buffer.writeUInt32BE(this.customerId, offset); + offset += 4; + buffer.writeUInt32BE(this.personaId, offset); + offset += 4; + buffer.writeUInt8(this.isCacheHit ? 1 : 0, offset); + offset += 1; + this.ban.toBytes().copy(buffer, offset); + offset += this.ban.getSize(); + this.gag.toBytes().copy(buffer, offset); + offset += this.gag.getSize(); + this.sessionKey.toBytes().copy(buffer, offset); + offset += this.sessionKey.getSize(); + + return buffer; + } + + getSize(): number { + return ( + 4 + + 4 + + 1 + + this.ban.getSize() + + this.gag.getSize() + + this.sessionKey.getSize() + + 4 + + 64 + ); + } + + getCustomerId(): number { + return this.customerId; + } + + setCustomerId(customerId: number) { + this.customerId = customerId; + } + + getPersonaId(): number { + return this.personaId; + } + + setPersonaId(personaId: number) { + this.personaId = personaId; + } + + getSessionKey(): SessionKey { + return this.sessionKey; + } + + setSessionKey(sessionKey: SessionKey) { + this.sessionKey = sessionKey; + } + + toString(): string { + return `UserStatus: + Customer ID: ${this.customerId} + Persona ID: ${this.personaId} + Is Cache Hit: ${this.isCacheHit} + Ban: ${this.ban.toString()} + Gag: ${this.gag.toString()} + Session Key: ${this.sessionKey.toString()}`; + } + + toHex(): string { + return this.toBytes().toString("hex"); + } + + setData() { + throw new Error("Method not implemented."); + } +} diff --git a/packages/nps/package.json b/packages/nps/package.json new file mode 100644 index 000000000..94256f9f3 --- /dev/null +++ b/packages/nps/package.json @@ -0,0 +1,25 @@ +{ + "name": "rusty-motors-nps", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "@sentry/node": "^8.0.0", + "short-unique-id": "^5.0.3" + }, + "description": "" +} diff --git a/packages/nps/services/account.ts b/packages/nps/services/account.ts new file mode 100644 index 000000000..6822ae457 --- /dev/null +++ b/packages/nps/services/account.ts @@ -0,0 +1,44 @@ +import { db, LoginSchema } from 'rusty-motors-database'; +import { getServerLogger } from 'rusty-motors-shared'; +import type { DatabaseSchema } from '../../database/src/services/database'; + +const log = getServerLogger(); + +export async function populateGameUsers(): Promise { + await LoginSchema(db).insertOrIgnore({ + customer_id: 1, + login_name: 'admin', + password: 'admin', + login_level: 1, + }); +} + +export async function getUser( + username: string, + password: string +): Promise { + log.setName('getUser'); + + log.debug(`Getting user ${username}, ${password}`); + + const userAccount = await LoginSchema(db).findOne({ + login_name: username, + password, + }); + + if (!userAccount) { + log.warn(`User ${username} not found`); + } + + return userAccount; +} + +export async function isSuperUser( + username: string, + password: string +): Promise { + const user = await getUser(username, password); + return user ? user.login_level === 1 : false; +} + +// Path: packages/nps/services/account.ts diff --git a/packages/nps/services/profile.ts b/packages/nps/services/profile.ts new file mode 100644 index 000000000..e6b483cb2 --- /dev/null +++ b/packages/nps/services/profile.ts @@ -0,0 +1,74 @@ +import { db, ProfileSchema } from 'rusty-motors-database'; +import { GameProfile } from '../messageStructs/GameProfile.js'; + +export const gameProfiles: GameProfile[] = []; + +export function getGameProfilesForCustomerId( + customerId: number +): GameProfile[] { + const profiles: GameProfile[] = []; + for (const profile of gameProfiles.values()) { + if (profile.customerId === customerId) { + profiles.push(profile); + } + } + return profiles; +} + +export function getCustomerId(profileId: number): number { + for (const profile of gameProfiles.values()) { + if (profile.profileId === profileId) { + return profile.customerId; + } + } + return -1; +} + +export function gameProfileExists(profileName: string): boolean { + for (const profile of gameProfiles.values()) { + if (profile.profileName === profileName) { + return true; + } + } + return false; +} + +export async function addGameProfile(profile: GameProfile): Promise { + await ProfileSchema(db).insertOrIgnore({ + customer_id: profile.customerId, + profile_name: profile.profileName, + server_id: profile.serverId, + create_stamp: profile.createStamp, + last_login_stamp: profile.lastLoginStamp, + number_games: profile.numberGames, + profile_id: profile.profileId, + is_online: profile.isOnline, + game_purchase_stamp: profile.gamePurchaseStamp, + game_serial_number: profile.gameSerialNumber, + time_online: profile.timeOnline, + time_in_game: profile.timeInGame, + game_blob: profile.gameBlob.toString(), + personal_blob: profile.personalBlob.toString(), + picture_blob: profile.pictureBlob.toString(), + dnd: profile.dnd, + game_start_stamp: profile.gameStartStamp, + current_key: profile.currentKey, + profile_level: profile.profileLevel, + shard_id: profile.shardId, + }); +} + +export function deleteGameProfile(profileId: number): void { + for (const [index, profile] of gameProfiles.entries()) { + if (profile.profileId === profileId) { + gameProfiles.splice(index, 1); + return; + } + } +} + +export function createGameProfile(): GameProfile { + const profile = GameProfile.new(); + + return profile; +} diff --git a/packages/nps/services/token.ts b/packages/nps/services/token.ts new file mode 100644 index 000000000..4f6bca8db --- /dev/null +++ b/packages/nps/services/token.ts @@ -0,0 +1,68 @@ +import ShortUniqueId from "short-unique-id"; + +const uid = new ShortUniqueId.default(); + +export type TokenRecord = { + customerId: number; + token: string; +}; + +export const activeTokens = new Map([]); + +export function generateTokenRecord(customerId: number): TokenRecord { + const token = uid.stamp(34); + + return { + customerId, + token, + }; +} + +export function generateToken(customerId: number): string { + if (typeof customerId !== "number") { + throw new Error("Invalid customer ID"); + } + const tokenRecord = generateTokenRecord(customerId); + activeTokens.set(tokenRecord.token, tokenRecord); + return tokenRecord.token; +} + +export function isTokenExpired(token: string): boolean { + const issuedAt = uid.parseStamp(token).getTime(); + + // 30 minutes + const expirationTime = Date.now() - 1800000; + + if (issuedAt < expirationTime) { + return true; + } + + return false; +} + +export function getToken(token: string): TokenRecord | undefined { + if (activeTokens.has(token)) { + return activeTokens.get(token); + } + return undefined; +} + +export function deleteToken(token: string): void { + activeTokens.delete(token); +} + +export function deleteExpiredTokens(): void { + for (const token of activeTokens.keys()) { + if (isTokenExpired(token)) { + deleteToken(token); + } + } +} + +export function getCustomerId(token: string): number | undefined { + const tokenRecord = getToken(token); + if (typeof tokenRecord !== "undefined" && !isTokenExpired(token)) { + return tokenRecord.customerId; + } + return undefined; +} diff --git a/packages/nps/services/types.ts b/packages/nps/services/types.ts new file mode 100644 index 000000000..81bfde2b1 --- /dev/null +++ b/packages/nps/services/types.ts @@ -0,0 +1,18 @@ +export type Part = { + PartID: number; + ParentPartID: number; + BrandedPartID: number; + RepairPrice: number; + JunkPrice: number; + Wear: number; + AttachmentPoint: number; + Damage: number; +}; + +export type Vehicle = { + VehicleID: number; + SkinID: number; + Flags: number; + Delta: number; + Damage: number; +}; diff --git a/packages/nps/src/EncryptionSession.ts b/packages/nps/src/EncryptionSession.ts new file mode 100644 index 000000000..3bdbe4683 --- /dev/null +++ b/packages/nps/src/EncryptionSession.ts @@ -0,0 +1,68 @@ +import { + Cipher, + Decipher, + createCipheriv, + createDecipheriv +} from "node:crypto"; + + +export type EncryptionSession = { + connectionId: string; + customerId: number; + sessionKey: string; + gameCipher: Cipher; + gameDecipher: Decipher; +}; + +export const encryptionSessions = new Map([]); + +export function setEncryptionSession( + encryptionSession: EncryptionSession +): void { + encryptionSessions.set(encryptionSession.connectionId, encryptionSession); +} + +export function getEncryptionSession( + connectionId: string +): EncryptionSession | undefined { + if (encryptionSessions.has(connectionId)) { + return encryptionSessions.get(connectionId); + } + return undefined; +} + +export function deleteEncryptionSession( + connectionId: string +): void { + encryptionSessions.delete(connectionId); +} + +export function newEncryptionSession({ + connectionId, customerId, sessionKey, +}: { + connectionId: string; + customerId: number; + sessionKey: string; +}): EncryptionSession { + const gameCipher = createCipheriv( + "des-cbc", + Buffer.from(sessionKey, "hex"), + Buffer.alloc(8) + ); + gameCipher.setAutoPadding(false); + const gameDecipher = createDecipheriv( + "des-cbc", + Buffer.from(sessionKey, "hex"), + Buffer.alloc(8) + ); + gameDecipher.setAutoPadding(false); + const encryptionSession = { + connectionId, + customerId, + sessionKey, + gameCipher, + gameDecipher, + }; + setEncryptionSession(encryptionSession); + return encryptionSession; +} diff --git a/packages/nps/src/UserStatusManager.ts b/packages/nps/src/UserStatusManager.ts new file mode 100644 index 000000000..2f884eca7 --- /dev/null +++ b/packages/nps/src/UserStatusManager.ts @@ -0,0 +1,80 @@ +import { UserStatus } from "../messageStructs/UserStatus.js"; + +export class UserStatusManager { + static newUserStatus() { + return new UserStatus({ customerId: 0 }); + } + static _instance: UserStatusManager; + + static getInstance() { + if (!UserStatusManager._instance) { + UserStatusManager._instance = new UserStatusManager(); + } + return UserStatusManager._instance; + } + private _userStatuses: Map = new Map(); + + public addUserStatus(userStatus: UserStatus) { + this._userStatuses.set(userStatus.getCustomerId(), userStatus); + } + + public removeUserStatus(customerId: number) { + this._userStatuses.delete(customerId); + } + + public getUserStatus(customerId: number): UserStatus | undefined { + return this._userStatuses.get(customerId); + } + + public getUserStatuses(): UserStatus[] { + return Array.from(this._userStatuses.values()); + } + + public clearUserStatuses() { + this._userStatuses.clear(); + } + + static addUserStatus(userStatus: UserStatus) { + UserStatusManager.getInstance().addUserStatus(userStatus); + } + + static removeUserStatus(customerId: number) { + UserStatusManager.getInstance().removeUserStatus(customerId); + } + + static getUserStatus(customerId: number): UserStatus | undefined { + const userStatus = UserStatusManager.getInstance().getUserStatus(customerId); + + if (userStatus) { + return userStatus; + } + + const newUserStatus = new UserStatus({ customerId }); + + UserStatusManager.getInstance().addUserStatus(newUserStatus); + + return newUserStatus; + } + + static getUserStatusBySessionId(sessionId: string): UserStatus | undefined { + const userStatus = UserStatusManager.getInstance().getUserStatuses().find((userStatus) => { + return userStatus.getSessionId() === sessionId; + }); + + if (userStatus) { + return userStatus; + } + + return undefined; + } + + getUserStatuseByMachineIdAndIp(machineId: string, remoteIp: string): UserStatus | undefined { + return Array.from(this._userStatuses.values()).find((userStatus) => { + return userStatus.getMachineId() === machineId && userStatus.getRemoteIp() === remoteIp; + }); + } + + static getUserStatuses(): UserStatus[] { + return UserStatusManager.getInstance().getUserStatuses(); + } +} diff --git a/packages/nps/src/utils/pureCompare.ts b/packages/nps/src/utils/pureCompare.ts new file mode 100644 index 000000000..8317df3da --- /dev/null +++ b/packages/nps/src/utils/pureCompare.ts @@ -0,0 +1,48 @@ +export function isZero(n: number): boolean { + // Return true if n is zero + return n === 0; +} + + +export function isUndefined(n: unknown): boolean { + // Return true if n is undefined + return typeof n === "undefined"; +} + +export function lessThan(a: number, b: number): boolean { + // Return true if a < b + return a < b; +} +export function lessThanOrEqual(a: number, b: number): boolean { + // Return true if a <= b + return a <= b; +} +export function greaterThan(a: number, b: number): boolean { + // Return true if a > b + return a > b; +} + +export function greaterThanOrEqual(a: number, b: number): boolean { + // Return true if a >= b + return a >= b; +} + +export function areBothZero(a: number, b: number): boolean { + // Return true if both a and b are zero + return isZero(a) && isZero(b); +} + +export function areBothUndefined(a: unknown, b: unknown): boolean { + // Return true if both a and b are undefined + return typeof a === "undefined" && typeof b === "undefined"; +} + +export function areBothSet(a: unknown, b: unknown): boolean { + // Return true if both a and b are set + return !isUndefined(a) && !isUndefined(b); +} + +export function isOnlyOneSet(a: unknown, b: unknown): boolean { + // Return true if only one of a and b is set + return !areBothSet(a, b) && (!isUndefined(a) || !isUndefined(b)); +} diff --git a/packages/nps/src/utils/pureGet.ts b/packages/nps/src/utils/pureGet.ts new file mode 100644 index 000000000..ae2d0fe3e --- /dev/null +++ b/packages/nps/src/utils/pureGet.ts @@ -0,0 +1,59 @@ +import { greaterThanOrEqual } from "./pureCompare.js"; + +export function getWord(bytes: Buffer, offset: number, isLE: boolean): number { + // Get the word at the offset + return isLE ? bytes.readUInt16LE(offset) : bytes.readUInt16BE(offset); +} + +export function getDWord(bytes: Buffer, offset: number, isLE: boolean): number { + // Get the dword at the offset + return isLE ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset); +} + +/** + * Get the first n bytes of a buffer. + * If the buffer is shorter than n bytes, return the whole buffer + */ +export function getNBytes(bytes: Buffer, n: number): Buffer { + const bufferLength = bytes.length; + + const cutLength = greaterThanOrEqual(bufferLength, n) ? n : bufferLength; + + // Get the first n bytes + return bytes.subarray(0, cutLength); +} + +export function getAsHex(bytes: Buffer): string { + return bytes.length % 2 === 0 + ? bytes.toString("hex") + : bytes.toString("hex") + "0"; +} + +export function getLenString( + bytes: Buffer, + offset: number, + isLE: boolean, +): string { + // Get the length of the string + const strLen = getWord(bytes, offset, isLE); + + // Get the string + return bytes.subarray(offset + 2, offset + 2 + strLen).toString("utf8"); +} + +export function getLenBlob( + bytes: Buffer, + offset: number, + isLE: boolean, +): Buffer { + // Get the length of the blob + const blobLen = getDWord(bytes, offset, isLE); + + // Get the blob + return bytes.subarray(offset + 2, offset + 2 + blobLen); +} + +export function getShortBool(bytes: Buffer, offset: number): boolean { + // Get a 2 byte boolean + return bytes.readUInt16LE(offset) === 1; +} diff --git a/packages/nps/src/utils/purePut.ts b/packages/nps/src/utils/purePut.ts new file mode 100644 index 000000000..460301155 --- /dev/null +++ b/packages/nps/src/utils/purePut.ts @@ -0,0 +1,105 @@ +export function put16( + bytes: Buffer, + offset: number, + word: number, + isLE: boolean, +): Buffer { + // Put the word at the offset + if (isLE) { + bytes.writeUInt16LE(word, offset); + } else { + bytes.writeUInt16BE(word, offset); + } + return bytes; +} + +export function put8(bytes: Buffer, offset: number, byte: number): Buffer { + // Put the byte at the offset + bytes.writeUInt8(byte, offset); + return bytes; +} + +export function put16BE(bytes: Buffer, offset: number, word: number): Buffer { + return put16(bytes, offset, word, false); +} + +export function put16LE(bytes: Buffer, offset: number, word: number): Buffer { + return put16(bytes, offset, word, true); +} + +export function put32( + bytes: Buffer, + offset: number, + word: number, + isLE: boolean, +): Buffer { + // Put the word at the offset + if (isLE) { + bytes.writeUInt32LE(word, offset); + } else { + bytes.writeUInt32BE(word, offset); + } + return bytes; +} + +export function put32BE(bytes: Buffer, offset: number, word: number): Buffer { + return put32(bytes, offset, word, false); +} + +export function put32LE(bytes: Buffer, offset: number, word: number): Buffer { + return put32(bytes, offset, word, true); +} + +export function putLenString( + bytes: Buffer, + offset: number, + str: string, + isLE: boolean, +): Buffer { + // Get the length of the string + const strLen = str.length + 1; + + // Put the length of the string + if (isLE) { + bytes.writeUInt32LE(strLen, offset); + } else { + bytes.writeUInt32BE(strLen, offset); + } + + // Put the string + bytes.write(str.concat("\0"), offset + 4, strLen, "utf8"); + + return bytes; +} + +export function putLenBlob( + bytes: Buffer, + offset: number, + blob: Buffer, + isLE: boolean, +): Buffer { + // Get the length of the blob + const blobLen = blob.length; + + // Put the length of the blob + if (isLE) { + bytes.writeUInt32LE(blobLen, offset); + } else { + bytes.writeUInt32BE(blobLen, offset); + } + + // Put the blob + blob.copy(bytes, offset + 4); + + return bytes; +} + +export function putShortBool( + bytes: Buffer, + offset: number, + bool: boolean, +): Buffer { + // Put a 2 byte boolean + bytes.writeUInt16LE(bool ? 1 : 0, offset); + return bytes; +} diff --git a/packages/nps/src/utils/sendNPSAck.ts b/packages/nps/src/utils/sendNPSAck.ts new file mode 100644 index 000000000..19aadd979 --- /dev/null +++ b/packages/nps/src/utils/sendNPSAck.ts @@ -0,0 +1,11 @@ +import { GameMessage } from "../../messageStructs/GameMessage.js"; +import type { GameSocketCallback } from "../../gameMessageProcessors/index.js"; + +export function sendNPSAck(socketCallback: GameSocketCallback) { + const response = new GameMessage(0); + response.header.setId(519); + + const responseBytes = response.serialize(); + + socketCallback([responseBytes]); +} diff --git a/packages/nps/test/index.test.ts b/packages/nps/test/index.test.ts new file mode 100644 index 000000000..f01d2f75d --- /dev/null +++ b/packages/nps/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from "vitest"; + +describe("example", () => { + it("should pass", () => { + expect(true).toBe(true); + }); +}); diff --git a/packages/nps/types.ts b/packages/nps/types.ts new file mode 100644 index 000000000..e01f50a1e --- /dev/null +++ b/packages/nps/types.ts @@ -0,0 +1,23 @@ +export interface ISerializable { + serialize(): Buffer; + deserialize(data: Buffer): void; + getByteSize(): number; + toString(): string; +} + +export interface IMessageHeader extends ISerializable { + getVersion(): number; + getId(): number; + getLength(): number; + getDataOffset(): number; + setVersion(version: number): void; + setId(id: number): void; + setLength(length: number): void; +} + +export interface IMessage extends ISerializable { + header: IMessageHeader; + getData(): ISerializable; + getDataAsBuffer(): Buffer; + setData(data: ISerializable): void; +} diff --git a/packages/nps/vite.config.ts b/packages/nps/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/nps/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/patch/index.ts b/packages/patch/index.ts new file mode 100644 index 000000000..f627a66e6 --- /dev/null +++ b/packages/patch/index.ts @@ -0,0 +1 @@ +export { CastanetResponse } from "./src/PatchServer.js"; diff --git a/packages/patch/package.json b/packages/patch/package.json new file mode 100644 index 000000000..6460259aa --- /dev/null +++ b/packages/patch/package.json @@ -0,0 +1,27 @@ +{ + "name": "rusty-motors-patch", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "vitest": "^1.6.0" + }, + "directories": { + "test": "test" + }, + "description": "" +} diff --git a/packages/patch/src/PatchServer.ts b/packages/patch/src/PatchServer.ts index 87aa0ff68..cc5e57b45 100644 --- a/packages/patch/src/PatchServer.ts +++ b/packages/patch/src/PatchServer.ts @@ -1,11 +1,7 @@ import { IncomingMessage, ServerResponse } from "node:http"; -import { getServerLogger } from "../../shared/log.js"; +import { ServerLogger, type TServerLogger } from "rusty-motors-shared"; import { Buffer } from "node:buffer"; -const debug_reseponse = Buffer.from([ - 0xca, 0xfe, 0xbe, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, -]); - export const CastanetResponse = { body: Buffer.from([ 0xca, 0xfe, 0xbe, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, @@ -37,17 +33,17 @@ export class PatchServer { * * * @private - * @type {import("pino").Logger} + * @type {ServerLogger} */ - _log: import("pino").Logger; + _log: TServerLogger; /** * Creates an instance of PatchServer. * Please use getInstance() instead - * @param {import("pino").Logger} log + * @param {ServerLogger} log * @memberof PatchServer */ - constructor(log: import("pino").Logger) { + constructor(log: TServerLogger) { this._log = log; } @@ -55,11 +51,11 @@ export class PatchServer { * Return the instance of the PatchServer class * * @static - * @param {import("pino").Logger} log + * @param {ServerLogger} log * @return {PatchServer} * @memberof PatchServer */ - static getInstance(log: import("pino").Logger): PatchServer { + static getInstance(log: TServerLogger): PatchServer { if (!PatchServer._instance) { PatchServer._instance = new PatchServer(log); } @@ -113,6 +109,6 @@ export class PatchServer { * @returns {PatchServer} */ -export function getPatchServer(): PatchServer { - return PatchServer.getInstance(getServerLogger({ module: "PatchServer" })); +export function getPatchServer(log: ServerLogger): PatchServer { + return PatchServer.getInstance(log); } diff --git a/packages/patch/test/PatchServer.test.ts b/packages/patch/test/PatchServer.test.ts index 69fe9786b..e011b67aa 100644 --- a/packages/patch/test/PatchServer.test.ts +++ b/packages/patch/test/PatchServer.test.ts @@ -1,13 +1,12 @@ -import { mockPino } from "../../../test/factoryMocks.js"; -import { getServerLogger } from "../../shared/log.js"; import { PatchServer, CastanetResponse } from "../src/PatchServer.js"; import { describe, it, expect, vi } from "vitest"; +import { mockLogger } from "../../shared/test"; +import type { IncomingMessage, ServerResponse } from "http"; describe("PatchServer", () => { it("should return the hard-coded value that tells the client there are no updates or patches", () => { // Arrange - mockPino(); - const log = getServerLogger({ module: "Patch" }); + const log = mockLogger(); const patchServer = PatchServer.getInstance(log); const request = { socket: { @@ -23,7 +22,7 @@ describe("PatchServer", () => { }; // Act - patchServer.castanetResponse(request as any, response as any); + patchServer.castanetResponse(request as IncomingMessage, response as unknown as ServerResponse); // Assert expect(response.setHeader).toHaveBeenCalledWith( diff --git a/packages/patch/vite.config.ts b/packages/patch/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/patch/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/persona/src/BuddyInfoMessage.ts b/packages/persona/src/BuddyInfoMessage.ts deleted file mode 100644 index ea9047573..000000000 --- a/packages/persona/src/BuddyInfoMessage.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { serializeStringRaw } from "../../shared/messageFactory.js"; -import { NetworkMessage } from "../../shared/src/NetworkMessage.js"; -import { RawMessage } from "../../shared/src/RawMessage.js"; - -/** - * BuddyInfoMessage - * - * This is a response to a NPS_GET_BUDDY_LIST message. - * It is actually two messages, the first is a NPS_BUDDY_LIST_COUNT - * message, which contains the number of buddies in the list and has - * a response code of NPS_BUDDY_LIST_COUNT - 1556 (0x614). - * - * The second message is a NPS_BUDDY_LIST message, which contains the - * buddy list itself. It has a response code of 1544 (0x608). - */ - -export class BuddyInfoMessage extends RawMessage { - _buddyCount: number; // 2 bytes - _buddyList: BuddyList[] = []; - _longOne = 0x00000000; // 4 bytes - _longTwo = 0x00000000; // 4 bytes - constructor() { - super(0x614); - this._buddyCount = 0; - } - - override get length(): number { - return super.length + 2 + this._buddyCount * 115; - } - - override serialize(): Buffer { - const buffer = Buffer.alloc(this.length); - let offset = 0; - super.serialize().copy(buffer, offset); - offset += super.length; - buffer.writeUInt16BE(this._buddyCount, offset); - offset += 2; - for (const buddy of this._buddyList) { - buddy.serialize().copy(buffer, offset); - offset += buddy.length; - } - return buffer; - } - - add(buddy: BuddyList): void { - this._buddyList.push(buddy); - this._buddyCount++; - } -} - -export class BuddyCount extends NetworkMessage { - _buddyCount: number; // 2 bytes - constructor() { - super(0x614); - this._buddyCount = 0; - } - - override get length(): number { - return super.length + 2; - } - - override serialize(): Buffer { - const buffer = Buffer.alloc(this.length); - let offset = 0; - buffer.writeUInt16BE(this.messageId, offset); - offset += 2; - buffer.writeUInt16BE(this.length, offset); - offset += 2; - buffer.writeUInt16BE(this.version, offset); - offset += 2; - buffer.writeUInt16BE(this.reserved, offset); - offset += 2; - buffer.writeUInt32BE(this.length, offset); - offset += 4; - buffer.writeUInt16BE(this._buddyCount, offset); - return buffer; - } - - set buddyCount(count: number) { - this._buddyCount = count; - } -} - -export class BuddyList extends RawMessage { - // These are BuddyMap fields - // These are BuddyInfo fields - buddyName = ""; // 33 bytes - 32 + null terminator - gameName = ""; // 65 bytes - 64 + null terminator - isBuddy = false; // 1 byte - isOnline = false; // 1 byte - dnd = false; // 1 byte - dnb = false; // 1 byte - noEntry = false; // 1 byte - muteWhispers = false; // 1 byte - muteChat = false; // 1 byte - - constructor() { - super(0x608); - } - - override get length(): number { - return 115; - } - - override serialize(): Buffer { - const buffer = Buffer.alloc(this.length); - let offset = 0; - super.serialize().copy(buffer, offset); - offset += super.length; - buffer.writeUInt16BE(this.messageId, offset); - offset += 2; - offset = serializeStringRaw(this.buddyName, buffer, offset, 33); - offset = serializeStringRaw(this.gameName, buffer, offset, 65); - buffer.writeUInt8(this.isBuddy ? 1 : 0, offset); - offset += 1; - buffer.writeUInt8(this.isOnline ? 1 : 0, offset); - offset += 1; - buffer.writeUInt8(this.dnd ? 1 : 0, offset); - offset += 1; - buffer.writeUInt8(this.dnb ? 1 : 0, offset); - offset += 1; - buffer.writeUInt8(this.noEntry ? 1 : 0, offset); - offset += 1; - buffer.writeUInt8(this.muteWhispers ? 1 : 0, offset); - offset += 1; - buffer.writeUInt8(this.muteChat ? 1 : 0, offset); - - return buffer; - } - - override toString(): string { - return this.serialize().toString("hex"); - } -} diff --git a/packages/persona/src/PersonaMapsMessage.ts b/packages/persona/src/PersonaMapsMessage.ts deleted file mode 100644 index aa33fda98..000000000 --- a/packages/persona/src/PersonaMapsMessage.ts +++ /dev/null @@ -1,344 +0,0 @@ -import { ServerError } from "../../shared/errors/ServerError.js"; -import { serializeString } from "../../core/src/serializationHelpers.js"; -import { NPSHeader, NPSMessage } from "../../shared/messageFactory.js"; - -/** - * - * This is type UserGameData - */ -export class PersonaRecord { - customerId: number; - personaName: string; - serverDataId: number; - createDate: number; - lastLogin: number; - numberOfGames: number; - personaId: number; - isOnline: number; - purchaseTimestamp: number; - gameSerialNumber: string; - timeOnline: number; - timeInGame: number; - extraData: Buffer; - personaData: Buffer; - pictureData: Buffer; - dnd: number; - startedPlayingTimestamp: number; - hashedKey: string; - personaLevel: number; - shardId: number; - constructor() { - this.customerId = 0; - this.personaName = ""; - this.serverDataId = 0; - this.createDate = 0; - this.lastLogin = 0; - this.numberOfGames = 0; - this.personaId = 0; - this.isOnline = 0; - this.purchaseTimestamp = 0; - this.gameSerialNumber = ""; - this.timeOnline = 0; - this.timeInGame = 0; - this.extraData = Buffer.alloc(512); - this.personaData = Buffer.alloc(256); - this.pictureData = Buffer.alloc(1); - this.dnd = 0; - this.startedPlayingTimestamp = 0; - this.hashedKey = ""; - this.personaLevel = 0; - this.shardId = 0; - } - - /** - * - * @param {Buffer} buffer - * @returns {PersonaRecord} - */ - deserialize(buffer: Buffer): PersonaRecord { - let offset = 0; - this.customerId = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.personaName = buffer.toString("utf8", offset, offset + 33); // 33 - offset += 33; - this.serverDataId = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.createDate = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.lastLogin = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.numberOfGames = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.personaId = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.isOnline = buffer.readUInt16BE(offset); // 2 - offset += 2; - this.purchaseTimestamp = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.gameSerialNumber = buffer - .subarray(offset, offset + 33) - .toString("utf8"); // 33 - offset += 33; - this.timeOnline = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.timeInGame = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.extraData = buffer.subarray(offset, offset + 512); // 512 - offset += 512; - this.personaData = buffer.subarray(offset, offset + 256); // 256 - offset += 256; - this.pictureData = buffer.subarray(offset, offset + 1); // 1 - offset += 1; - this.dnd = buffer.readUInt16BE(offset); // 2 - offset += 2; - this.startedPlayingTimestamp = buffer.readUInt32BE(offset); // 4 - offset += 4; - this.hashedKey = buffer.subarray(offset, offset + 400).toString("utf8"); // 400 - offset += 400; - this.personaLevel = buffer.readUInt16BE(offset); // 2 - offset += 2; - this.shardId = buffer.readUInt32BE(offset); // 2 - // Offset 1285 - return this; - } - - /** - * - * @returns {Buffer} - */ - serialize(): Buffer { - const buffer = Buffer.alloc(PersonaRecord.size()); - try { - let offset = 0; - buffer.writeUInt32BE(this.customerId, offset); // 4 - Unknown if this is correct - offset += 4; // offset = 4 - buffer.writeUInt16BE(3341, offset); // 2 - unknown if this is correct - offset += 2; // offset = 6 - buffer.writeUInt32BE(this.personaId, offset); // 4 - Known to be correct - offset += 4; // offset = 10 - buffer.writeUInt32BE(this.shardId, offset); // 4 - Known to be correct - offset += 4; // offset = 14 - // We don't know what goes here yet - offset += 4; // offset = 18 - serializeString(this.personaName).copy(buffer, offset); // 34 - Known to be correct - // offset = 52 - - // buffer.writeUInt32BE(this.serverDataId, offset); // 4 - // offset += 4; // offset = 56 - // buffer.writeUInt32BE(this.createDate, offset); // 4 - // offset += 4; // offset = 60 - // buffer.writeUInt32BE(this.lastLogin, offset); // 4 - // offset += 4; // offset = 64 - // buffer.writeUInt32BE(this.numberOfGames, offset); // 4 (Max personas)) - // offset += 4; // offset = 68 - // buffer.writeUInt16BE(this.isOnline, offset); // 2 - // offset += 2; // offset = 70 - // buffer.writeUInt32BE(this.purchaseTimestamp, offset); // 4 - // offset += 4; // offset = 74 - // buffer.write(this.gameSerialNumber, offset, 33, "utf8"); // 33 - // offset += 33; // offset = 107 - // buffer.writeUInt32BE(this.timeOnline, offset); // 4 - // offset += 4; // offset = 111 - // buffer.writeUInt32BE(this.timeInGame, offset); // 4 - // offset += 4; // offset = 115 - // this.extraData.copy(buffer, offset, 512); // 512 - // offset += 512; // offset = 627 - // this.personaData.copy(buffer, offset, 256); // 256 - // offset += 256; // offset = 883 - // this.pictureData.copy(buffer, offset, 1); // 1 - // offset += 1; // offset = 884 - // buffer.writeUInt16BE(this.dnd, offset); // 2 - // offset += 2; // offset = 886 - // buffer.writeUInt32BE(this.startedPlayingTimestamp, offset); // 4 - // offset += 4; // offset = 890 - // buffer.write(this.hashedKey, offset, 400, "utf8"); // 400 - // offset += 400; // offset = 1290 - // buffer.writeUInt16BE(this.personaLevel, offset); // 2 - // offset += 2; // offset = 1292 - } catch (error) { - throw new ServerError( - `Error serializing PersonaRecord buffer: ${String(error)}`, - ); - } - return buffer; - } - - static size() { - return 52; - } - - toJSON() { - return { - customerId: this.customerId, - personaId: this.personaId, - personaName: this.personaName, - shardId: this.shardId, - serverDataId: this.serverDataId, - // createDate: this.createDate, - // lastLogin: this.lastLogin, - // numberOfGames: this.numberOfGames, - // isOnline: this.isOnline, - // purchaseTimestamp: this.purchaseTimestamp, - // gameSerialNumber: this.gameSerialNumber, - // timeOnline: this.timeOnline, - // timeInGame: this.timeInGame, - // extraData: this.extraData, - // personaData: this.personaData, - // pictureData: this.pictureData, - // dnd: this.dnd, - // startedPlayingTimestamp: this.startedPlayingTimestamp, - // hashedKey: this.hashedKey, - // personaLevel: this.personaLevel, - }; - } - - asJSON() { - return this.toJSON(); - } - - toString() { - return `PersonaRecord: ${JSON.stringify(this.toJSON())}`; - } -} - -export class PersonaList { - _personaRecords: PersonaRecord[]; - constructor() { - /** @type {PersonaRecord[]} */ - this._personaRecords = []; - } - - /** - * - * @param {Buffer} buffer - * @returns {PersonaList} - */ - deserialize(buffer: Buffer): PersonaList { - let offset = 0; - const personaRecordCount = buffer.readUInt16BE(offset); - offset += 2; - for (let i = 0; i < personaRecordCount; i++) { - const personaRecord = new PersonaRecord(); - personaRecord.deserialize(buffer.subarray(offset)); - offset += PersonaRecord.size(); - this._personaRecords.push(personaRecord); - } - return this; - } - - /** - * - * @returns {Buffer} - */ - serialize(): Buffer { - const NEEDED_SIZE = PersonaRecord.size() * this._personaRecords.length; - const buffer = Buffer.alloc(NEEDED_SIZE); - try { - let offset = 0; - if (!this._personaRecords) { - throw new ServerError("PersonaRecords is undefined"); - } - for (const personaRecord of this._personaRecords) { - personaRecord.serialize().copy(buffer, offset); - offset += PersonaRecord.size(); - } - } catch (error) { - throw new ServerError( - `Error serializing PersonaList buffer: ${String(error)}`, - ); - } - return buffer; - } - - /** - * @param {PersonaRecord} personaRecord - */ - addPersonaRecord(personaRecord: PersonaRecord) { - this._personaRecords.push(personaRecord); - } - - personaCount() { - return this._personaRecords.length; - } - - size() { - return PersonaRecord.size() * this._personaRecords.length; - } - - asJSON() { - return { - personaRecords: this._personaRecords, - }; - } - - toString() { - return `PersonaList: ${JSON.stringify(this._personaRecords)}`; - } -} -export class PersonaMapsMessage extends NPSMessage { - _personaRecords: PersonaList | undefined; - raw: Buffer | undefined; - constructor() { - super(); - /** @type {PersonaList | undefined} */ - this._personaRecords = undefined; - } - - /** - * @param {Buffer} buffer - * @returns {PersonaMapsMessage} - */ - deserialize(buffer: Buffer): PersonaMapsMessage { - try { - this._header._doDeserialize(buffer); - this.setBuffer(buffer.subarray(NPSHeader.size())); - this.raw = buffer; - return this; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error deserializing PersonaMapsMessage", - ); - } - } - - /** - * @returns {Buffer} - */ - override serialize(): Buffer { - try { - if (!this._personaRecords) { - throw new ServerError("PersonaRecords is undefined"); - } - this._header.length = - NPSHeader.size() + 2 + this._personaRecords.size(); - const buffer = Buffer.alloc(this._header.length); - this._header._doSerialize().copy(buffer); - - // Write the persona count. This is known to be correct at offset 12 - buffer.writeUInt16BE(this._personaRecords.personaCount(), 12); - // This is a serialized PersonaList - this.data.copy(buffer, NPSHeader.size() + 2); - return buffer; - } catch (error) { - throw ServerError.fromUnknown( - error, - "Error serializing PersonaMapsMessage", - ); - } - } - - asJSON() { - return { - header: this._header, - personaRecords: this._personaRecords, - }; - } - - override toString() { - return `PersonaMapsMessage: ${JSON.stringify({ - header: this._header, - personaRecords: this._personaRecords, - })}`; - } -} diff --git a/packages/persona/src/_gameLogout.ts b/packages/persona/src/_gameLogout.ts deleted file mode 100644 index d797b38c3..000000000 --- a/packages/persona/src/_gameLogout.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { getServerLogger } from "../../shared/log.js"; -import { - LegacyMessage, - SerializedBuffer, -} from "../../shared/messageFactory.js"; - -/** - * Handle game logout - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "LoginServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - */ - -export async function _gameLogout({ - connectionId, - message, - log = getServerLogger({ - module: "PersonaServer", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.debug("_npsLogoutGameUser..."); - const requestPacket = message; - log.debug( - `NPSMsg request object from _npsLogoutGameUser', - ${JSON.stringify({ - NPSMsg: requestPacket.toString(), - })}`, - ); - - // Build the packet - const responsePacket = new LegacyMessage(); - responsePacket._header.id = 519; - log.debug( - `NPSMsg response object from _npsLogoutGameUser', - ${JSON.stringify({ - NPSMsg: responsePacket.toString(), - })}`, - ); - - const outboundMessage = new SerializedBuffer(); - outboundMessage._doDeserialize(responsePacket._doSerialize()); - - return { - connectionId, - messages: [outboundMessage], - }; -} diff --git a/packages/persona/src/_getFirstBuddy.ts b/packages/persona/src/_getFirstBuddy.ts deleted file mode 100644 index 077a59bfb..000000000 --- a/packages/persona/src/_getFirstBuddy.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { getServerLogger } from "../../shared/log.js"; -import { - LegacyMessage, - NPSMessage, - SerializedBuffer, -} from "../../shared/messageFactory.js"; -import { BuddyCount, BuddyInfoMessage, BuddyList } from "./BuddyInfoMessage.js"; - -export async function _getFirstBuddy({ - connectionId, - message, - log = getServerLogger({ - module: "PersonaServer", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - // This message is a versioned nps message - const incomingMessage = new NPSMessage(); - incomingMessage._doDeserialize(message._doSerialize()); - - log.debug( - `in _getFirstBuddy, incomingMessage: ${incomingMessage - .serialize() - .toString("hex")}`, - ); - - // extract the personaId - const personaId = incomingMessage.data.readUInt32BE(0); - - log.debug(`in _getFirstBuddy, personaId: ${personaId}`); - - // TODO: Here we need to look up the buddies for the personaId - - // First, send the BuddyCount message - const buddyCountMessage = new BuddyCount(); - buddyCountMessage.buddyCount = 0; - - const outboundMessage1 = new SerializedBuffer(); - outboundMessage1._doDeserialize(buddyCountMessage.serialize()); - - const buddyInfoMessage = new BuddyInfoMessage(); - - for (const buddy of buddies) { - const buddyInfo = new BuddyList(); - buddyInfo.buddyName = buddy.buddyName; - buddyInfo.gameName = buddy.gameName; - buddyInfo.isBuddy = buddy.isBuddy; - buddyInfo.isOnline = buddy.isOnline; - buddyInfo.dnd = buddy.dnd; - buddyInfo.dnb = buddy.dnb; - buddyInfo.noEntry = buddy.noEntry; - buddyInfo.muteWhispers = buddy.muteWhispers; - buddyInfo.muteChat = buddy.muteChat; - - buddyInfoMessage.add(buddyInfo); - } - - const outboundMessage = new SerializedBuffer(); - outboundMessage._doDeserialize(buddyInfoMessage.serialize()); - - log.debug( - `in _getFirstBuddy, outboundMessage: ${outboundMessage1.toString()}`, - ); - - return { - connectionId, - messages: [outboundMessage1], - }; -} - -interface BuddyInfoRecord { - buddyId: number; - buddyName: string; - gameName: string; - isBuddy: boolean; - isOnline: boolean; - dnd: boolean; - dnb: boolean; - noEntry: boolean; - muteWhispers: boolean; - muteChat: boolean; -} - -export const buddies: BuddyInfoRecord[] = [ - { - buddyId: 2, - buddyName: "Einstein", - gameName: "Good Woof", - isBuddy: true, - isOnline: true, - dnd: false, - dnb: false, - noEntry: false, - muteWhispers: false, - muteChat: false, - }, - { - buddyId: 3, - buddyName: "Marty", - gameName: "That kid", - isBuddy: true, - isOnline: true, - dnd: false, - dnb: false, - noEntry: false, - muteWhispers: false, - muteChat: false, - }, -]; diff --git a/packages/persona/src/_selectGamePersona.ts b/packages/persona/src/_selectGamePersona.ts deleted file mode 100644 index 20d529204..000000000 --- a/packages/persona/src/_selectGamePersona.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { getServerLogger } from "../../shared/log.js"; -import { - LegacyMessage, - SerializedBuffer, -} from "../../shared/messageFactory.js"; - -/** - * Selects a game persona and marks it as in use - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "LoginServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - */ - -export async function _selectGamePersona({ - connectionId, - message, - log = getServerLogger({ - module: "PersonaServer", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.debug("_npsSelectGamePersona..."); - const requestPacket = message; - log.debug( - `LegacyMsg request object from _npsSelectGamePersona ${requestPacket - ._doSerialize() - .toString("hex")}`, - ); - - // Create the packet content - const packetContent = Buffer.alloc(251); - - // Build the packet - // Response Code - // 207 = success - const responsePacket = new LegacyMessage(); - responsePacket._header.id = 519; - responsePacket.setBuffer(packetContent); - log.debug( - `LegacyMsg response object from _npsSelectGamePersona ${responsePacket - ._doSerialize() - .toString("hex")} `, - ); - - const outboundMessage = new SerializedBuffer(); - outboundMessage.setBuffer(responsePacket._doSerialize()); - - return { - connectionId, - messages: [outboundMessage], - }; -} diff --git a/packages/persona/src/getPersonasByPersonaId.ts b/packages/persona/src/getPersonasByPersonaId.ts deleted file mode 100644 index 3d3fd7c9b..000000000 --- a/packages/persona/src/getPersonasByPersonaId.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { PersonaRecord } from "../../interfaces/index.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { personaRecords } from "./internal.js"; - -/** - * - * @param {number} id - * @return {Promise} - */ - -export async function getPersonasByPersonaId({ - personas = personaRecords, - id, -}: { - personas?: PersonaRecord[]; - id: number; -}): Promise { - const results = personaRecords.filter((persona) => { - const match = id === persona.id.readInt32BE(0); - return match; - }); - if (results.length === 0) { - const err = new ServerError(`Unable to locate a persona for id: ${id}`); - throw err; - } - - return results; -} diff --git a/packages/persona/src/handlers/validatePersonaName.ts b/packages/persona/src/handlers/validatePersonaName.ts deleted file mode 100644 index 9e033d75f..000000000 --- a/packages/persona/src/handlers/validatePersonaName.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { getServerLogger } from "../../../shared/log.js"; -import { - LegacyMessage, - SerializedBuffer, -} from "../../../shared/messageFactory.js"; -import { RawMessage } from "../../../shared/src/RawMessage.js"; - -/** - * Check if a new persona name is valid - */ - -export async function validatePersonaName({ - connectionId, - message, - log = getServerLogger({ - module: "PersonaServer", - }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.debug("_npsLogoutGameUser..."); - const requestPacket = message; - log.debug( - `NPSMsg request object from _npsLogoutGameUser', - ${JSON.stringify({ - NPSMsg: requestPacket.toString(), - })}`, - ); - - // Build the packet - const responsePacket = new RawMessage(522); // 0x020a - NPS_DUP_USER - log.debug( - `NPSMsg response object from _npsLogoutGameUser', - ${JSON.stringify({ - NPSMsg: responsePacket.toString(), - })}`, - ); - - const outboundMessage = new SerializedBuffer(); - outboundMessage._doDeserialize(responsePacket.serialize()); - - return { - connectionId, - messages: [outboundMessage], - }; -} diff --git a/packages/persona/src/index.js b/packages/persona/src/index.js deleted file mode 100644 index 092921910..000000000 --- a/packages/persona/src/index.js +++ /dev/null @@ -1,46 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { NPSMessage } from "../../shared/messageFactory.js"; - -/** - * Selects a game persona and marks it as in use - * @param {NPSMessage} requestPacket - * @param {import("pino").Logger} log - * @returns {Promise} - */ -export async function handleSelectGamePersona(requestPacket, log) { - log.debug("_npsSelectGamePersona..."); - - log.debug( - `[npsSelectGamePersona] requestPacket's data prior to sending: ${requestPacket.toString()}`, - ); - - // Create the packet content - const packetContent = Buffer.alloc(251); - - // Build the packet - // Response Code - // 207 = success - const responsePacket = new NPSMessage(); - responsePacket._header.id = 0x207; - responsePacket.setBuffer(packetContent); - - log.debug( - `[npsSelectGamePersona] responsePacket's data prior to sending: ${responsePacket.toString()}`, - ); - return responsePacket; -} diff --git a/packages/persona/src/internal.ts b/packages/persona/src/internal.ts deleted file mode 100644 index 416ce52db..000000000 --- a/packages/persona/src/internal.ts +++ /dev/null @@ -1,328 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { getServerLogger } from "../../shared/log.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; - -import { - PersonaList, - PersonaMapsMessage, - PersonaRecord, -} from "./PersonaMapsMessage.js"; -import { getServerConfiguration } from "../../shared/Configuration.js"; -import { - LegacyMessage, - SerializedBuffer, -} from "../../shared/messageFactory.js"; -import { Logger } from "pino"; -import { _selectGamePersona } from "./_selectGamePersona.js"; -import { _gameLogout } from "./_gameLogout.js"; -import { _getFirstBuddy } from "./_getFirstBuddy.js"; -import { validatePersonaName } from "./handlers/validatePersonaName.js"; - -const NAME_BUFFER_SIZE = 30; - -/** - * Array of supported message handlers - * - * @type {{ - * opCode: number, - * name: string, - * handler: (args: { - * connectionId: string, - * message: LegacyMessage, - * log: import("pino").Logger, - * }) => Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>}[]} - */ -export const messageHandlers: { - opCode: number; - name: string; - handler: (args: { - connectionId: string; - message: LegacyMessage; - log: Logger; - }) => Promise<{ - connectionId: string; - messages: SerializedBuffer[]; - }>; -}[] = [ - { - opCode: 1283, // 0x503 - name: "Game login", - handler: _selectGamePersona, - }, - { - opCode: 1295, // 0x50F - name: "Game logout", - handler: _gameLogout, - }, - { - opCode: 1330, // 0x532 - name: "Get persona maps", - handler: getPersonaMaps, - }, - { - opCode: 1331, // 0x533 - name: "Validate persona name", - handler: validatePersonaName, - }, - { - opCode: 1291, // 0x50B - name: "Get first buddy", - handler: _getFirstBuddy, - }, -]; - -/** - * Return string as buffer - */ -export function generateNameBuffer(name: string, size: number): Buffer { - const nameBuffer = Buffer.alloc(size); - Buffer.from(name, "utf8").copy(nameBuffer); - return nameBuffer; -} - -/** - * All personas - * NOTE: Currently we only support one persona per customer - * @type {import("../../interfaces/index.js").PersonaRecord[]} - */ -export const personaRecords: import("../../interfaces/index.js").PersonaRecord[] = - [ - { - customerId: 2868969472, - id: Buffer.from([0x00, 0x00, 0x00, 0x01]), - maxPersonas: Buffer.from([0x01]), - name: generateNameBuffer("Doc Joe", NAME_BUFFER_SIZE), - personaCount: Buffer.from([0x00, 0x01]), - shardId: Buffer.from([0x00, 0x00, 0x00, 0x2c]), - }, - { - customerId: 5551212, // 0x54 0xB4 0x6C - id: Buffer.from([0x00, 0x84, 0x5f, 0xed]), - maxPersonas: Buffer.from([0x02]), - name: generateNameBuffer("Dr Brown", NAME_BUFFER_SIZE), - personaCount: Buffer.from([0x00, 0x01]), - shardId: Buffer.from([0x00, 0x00, 0x00, 0x2c]), - }, - ]; - -/** - * - * @param {number} customerId -// * @return {Promise} - */ -async function getPersonasByCustomerId( - customerId: number, -): Promise { - const results = personaRecords.filter( - (persona) => persona.customerId === customerId, - ); - return results; -} - -/** - * Lookup all personas owned by the customer id - * - * TODO: Store in a database, instead of being hard-coded - * - * @param {number} customerId - * @return {Promise} - */ -async function getPersonaMapsByCustomerId( - customerId: number, -): Promise { - switch (customerId) { - case 5551212: - return getPersonasByCustomerId(customerId); - default: - return []; - } -} - -/** - * Handle a get persona maps packet - * @param {object} args - * @param {string} args.connectionId - * @param {LegacyMessage} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "LoginServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - */ -async function getPersonaMaps({ - connectionId, - message, - log = getServerLogger({ module: "PersonaServer" }), -}: { - connectionId: string; - message: LegacyMessage; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.debug("_npsGetPersonaMaps..."); - - const requestPacket = message; - log.debug( - `NPSMsg request object from _npsGetPersonaMaps ${requestPacket - ._doSerialize() - .toString("hex")} `, - ); - - const customerId = requestPacket.data.readUInt32BE(8); - - const personas = await getPersonaMapsByCustomerId(customerId); - log.debug(`${personas.length} personas found for ${customerId}`); - - const personaMapsMessage = new PersonaMapsMessage(); - - // this is a GLDP_PersonaList::GLDP_PersonaList - - try { - /** @type {PersonaList} */ - let personaList: PersonaList = new PersonaList(); - - if (personas.length > 1) { - log.warn( - `More than one persona found for customer Id: ${customerId}`, - ); - } - - personas.forEach((persona) => { - const personaRecord = new PersonaRecord(); - - personaRecord.customerId = persona.customerId; - personaRecord.personaId = persona.id.readUInt32BE(0); - personaRecord.personaName = persona.name.toString("utf8"); - personaRecord.shardId = persona.shardId.readUInt32BE(0); - personaRecord.numberOfGames = personas.length; - - personaList.addPersonaRecord(personaRecord); - - log.debug( - `Persona record: ${JSON.stringify({ - personaRecord: personaRecord.toJSON(), - })}`, - ); - }); - - personaMapsMessage._header.id = 0x607; - personaMapsMessage._personaRecords = personaList; - personaMapsMessage.setBuffer(personaList.serialize()); - log.debug( - `PersonaMapsMessage object from _npsGetPersonaMaps', - ${JSON.stringify({ - personaMapsMessage: personaMapsMessage - .serialize() - .toString("hex"), - })}`, - ); - - const outboundMessage = new SerializedBuffer(); - outboundMessage._doDeserialize(personaMapsMessage.serialize()); - - return { - connectionId, - messages: [outboundMessage], - }; - } catch (error) { - if (error instanceof Error) { - const err = new ServerError( - `Error serializing personaMapsMsg: ${error.message}`, - ); - throw err; - } - - const err = new ServerError( - "Error serializing personaMapsMsg, error unknonw", - ); - throw err; - } -} - -/** - * - * - * @param {object} args - * @param {string} args.connectionId - * @param {SerializedBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "PersonaServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[], - * }>} - * @throws {Error} Unknown code was received - */ -export async function receivePersonaData({ - connectionId, - message, - log = getServerLogger({ - module: "PersonaServer", - }), -}: { - connectionId: string; - message: SerializedBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.level = getServerConfiguration({}).logLevel ?? "info"; - const { data } = message; - log.debug( - `Received Persona packet', - ${JSON.stringify({ - data: data.toString("hex"), - })}`, - ); - - // The packet needs to be an NPSMessage - const inboundMessage = new LegacyMessage(); - inboundMessage._doDeserialize(message.data); - - const supportedHandler = messageHandlers.find((h) => { - return h.opCode === inboundMessage._header.id; - }); - - if (typeof supportedHandler === "undefined") { - // We do not yet support this message code - throw new ServerError( - `UNSUPPORTED_MESSAGECODE: ${inboundMessage._header.id}`, - ); - } - - try { - const result = await supportedHandler.handler({ - connectionId, - message: inboundMessage, - log, - }); - log.debug(`Returning with ${result.messages.length} messages`); - log.debug("Leaving receivePersonaDatadleData"); - return result; - } catch (error) { - throw ServerError.fromUnknown( - error, - `Error handling persona data: ${String(error)}`, - ); - } -} diff --git a/packages/persona/test/getPersonasByPersonaId.test.ts b/packages/persona/test/getPersonasByPersonaId.test.ts deleted file mode 100644 index fe2841eb3..000000000 --- a/packages/persona/test/getPersonasByPersonaId.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { PersonaRecord } from "../../interfaces/index.js"; -import { getPersonasByPersonaId } from "../src/getPersonasByPersonaId.js"; -import { describe, it, expect } from "vitest"; - -describe("getPersonasByPersonaId", () => { - it("returns a persona", async () => { - // arrange - const personaRecord: PersonaRecord = { - id: Buffer.alloc(4), - name: Buffer.from("test"), - customerId: 6767, - maxPersonas: Buffer.alloc(4), - personaCount: Buffer.alloc(4), - shardId: Buffer.alloc(4), - }; - const id = 1; - - // act - const result = await getPersonasByPersonaId({ - personas: [personaRecord], - id, - }); - - // assert - expect(result).toBeInstanceOf(Array); - expect(result[0].id.readInt32BE(0)).toBe(id); - }); -}); diff --git a/packages/shard/index.ts b/packages/shard/index.ts new file mode 100644 index 000000000..bc4e32925 --- /dev/null +++ b/packages/shard/index.ts @@ -0,0 +1,2 @@ +export { generateShardList } from "./src/ShardServer.js"; +export { handleGetCert, handleGetKey, handleGetRegistry } from "./src/index.js"; diff --git a/packages/shard/package.json b/packages/shard/package.json new file mode 100644 index 000000000..3d24d015d --- /dev/null +++ b/packages/shard/package.json @@ -0,0 +1,27 @@ +{ + "name": "rusty-motors-shard", + "version": "1.0.0", + "description": "The shard service exposing the following endpoints to the gateway service:", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "vitest": "^1.6.0" + }, + "directories": { + "test": "test" + } +} diff --git a/packages/shard/src/ShardServer.ts b/packages/shard/src/ShardServer.ts index 57d8c23a0..688dfc2c9 100644 --- a/packages/shard/src/ShardServer.ts +++ b/packages/shard/src/ShardServer.ts @@ -24,7 +24,7 @@ export function generateShardList(shardHost: string) { 80, ); - let _possibleShards = []; + const _possibleShards = []; _possibleShards.push(shardClockTower.formatForShardList()); const shardTwinPinesMall = new ShardEntry( @@ -49,7 +49,9 @@ export function generateShardList(shardHost: string) { /** @type {string[]} */ const activeShardList: string[] = []; - activeShardList.push(_possibleShards[0]); + if (typeof _possibleShards[0] !== "undefined") { + activeShardList.push(_possibleShards[0]); + } return activeShardList.join("\n"); } diff --git a/packages/shard/src/index.ts b/packages/shard/src/index.ts index 87f0ce81c..b1d797bcb 100644 --- a/packages/shard/src/index.ts +++ b/packages/shard/src/index.ts @@ -14,9 +14,8 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -import { readFileSync } from "fs"; -import { Configuration } from "../../shared/Configuration.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; +import { readFile } from "node:fs/promises"; +import { Configuration } from "rusty-motors-shared"; // This section of the server can not be encrypted. This is an intentional choice for compatibility // deepcode ignore HttpToHttps: This is intentional. See above note. @@ -26,15 +25,14 @@ import { ServerError } from "../../shared/errors/ServerError.js"; * @param {TConfiguration} config * @return {string} */ -export function handleGetCert(config: Configuration): string { +export async function handleGetCert(config: Configuration): Promise { if (config.certificateFile === undefined) { - throw new ServerError("Certificate file not defined"); + throw new Error("Certificate file not defined"); } try { - const cert = readFileSync(config.certificateFile, "utf8"); - return cert; + return await readFile(config.certificateFile, "utf8"); } catch (err) { - throw new ServerError(`Error reading certificate file: ${String(err)}`); + throw new Error(`Error reading certificate file: ${String(err)}`); } } @@ -82,14 +80,13 @@ export function handleGetRegistry(config: Configuration): string { * @param {TConfiguration} config * @return {string} */ -export function handleGetKey(config: Configuration): string { +export async function handleGetKey(config: Configuration): Promise { if (config.publicKeyFile === undefined) { - throw new ServerError("Public key file not defined"); + throw new Error("Public key file not defined"); } try { - const key = readFileSync(config.publicKeyFile, "utf8"); - return key; + return await readFile(config.publicKeyFile, "utf8"); } catch (err) { - throw new ServerError(`Error reading public key file: ${String(err)}`); + throw new Error(`Error reading public key file: ${String(err)}`); } } diff --git a/packages/shard/test/fixtures/testCert.txt b/packages/shard/test/fixtures/testCert.txt index cf9d2f18c..70b27a15d 100644 --- a/packages/shard/test/fixtures/testCert.txt +++ b/packages/shard/test/fixtures/testCert.txt @@ -1 +1 @@ -Hello! I'm an SSL cert. Honest. \ No newline at end of file +Hello! I'm an SSL cert. Honest. diff --git a/packages/shard/test/fixtures/testKey.txt b/packages/shard/test/fixtures/testKey.txt index 0d4a45bc1..6a4b13fb4 100644 --- a/packages/shard/test/fixtures/testKey.txt +++ b/packages/shard/test/fixtures/testKey.txt @@ -1 +1 @@ -I'm a public key! Wheeeeeeeee \ No newline at end of file +I'm a public key! Wheeeeeeeee diff --git a/packages/shard/vite.config.ts b/packages/shard/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/shard/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/shared-packets/index.ts b/packages/shared-packets/index.ts new file mode 100644 index 000000000..622d72450 --- /dev/null +++ b/packages/shared-packets/index.ts @@ -0,0 +1,11 @@ +export * from "./src/interfaces.js"; +export { + ServerMessage, + ServerMessageHeader, + ServerGenericRequest, + ServerGenericResponse, + ServerMessagePayload, +} from "./src/ServerMessage.js"; +export { Serializable } from "./src/BasePacket.js"; + +// Path: packages/shared-packets/index.ts diff --git a/packages/shared-packets/package.json b/packages/shared-packets/package.json new file mode 100644 index 000000000..9433de639 --- /dev/null +++ b/packages/shared-packets/package.json @@ -0,0 +1,22 @@ +{ + "name": "rusty-motors-shared-packets", + "private": true, + "version": "1.0.0", + "type": "module", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + } + }, + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "description": "" +} diff --git a/packages/shared-packets/src/BasePacket.ts b/packages/shared-packets/src/BasePacket.ts new file mode 100644 index 000000000..fb33cdc62 --- /dev/null +++ b/packages/shared-packets/src/BasePacket.ts @@ -0,0 +1,48 @@ +import type { ISerializable } from "./interfaces.js"; +import { getAsHex } from "./utils.js"; + +export class Serializable implements ISerializable { + protected _data: Buffer = Buffer.alloc(4); + + protected _asHex(bytes: Buffer): string { + return bytes.length % 2 === 0 + ? bytes.toString("hex") + : bytes.toString("hex") + "0"; + } + + protected _assertEnoughData(data: Buffer, expected: number) { + if (data.length < expected) { + throw new Error( + `Data is too short. Expected at least ${expected} bytes, got ${data.length} bytes`, + ); + } + } + + serialize(): Buffer { + return this._data; + } + deserialize(data: Buffer): void { + this._data = data; + } + getByteSize(): number { + return this._data.length; + } + toHexString(): string { + return getAsHex(this.serialize()); + } +} + +export class BasePacket extends Serializable implements ISerializable { + private header: ISerializable = new Serializable(); + + override serialize(): Buffer { + return Buffer.concat([this.header.serialize(), this._data]); + } + override deserialize(data: Buffer): void { + this.header.deserialize(data); + this._data = data.subarray(this.header.getByteSize()); + } + override getByteSize(): number { + return this.header.getByteSize() + this._data.length; + } +} diff --git a/packages/shared-packets/src/ServerMessage.ts b/packages/shared-packets/src/ServerMessage.ts new file mode 100644 index 000000000..7aaed363f --- /dev/null +++ b/packages/shared-packets/src/ServerMessage.ts @@ -0,0 +1,372 @@ +import { Serializable } from "./BasePacket.js"; +import type { ISerializable, IMessage } from "./interfaces.js"; +import { McosEncryptionPair, getServerLogger } from "rusty-motors-shared"; + +const log = getServerLogger(); + +/** + * + */ +export class ServerMessageHeader extends Serializable implements ISerializable { + // All fields are little-endian + private length: number = 0; // 2 bytes + private signature: string = ""; // 4 bytes + private sequence: number = 0; // 4 bytes + private flags: number = 0; // 1 + + getDataOffset(): number { + return 11; + } + override getByteSize(): number { + return 11; + } + + getLength(): number { + return this.length; + } + + override serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt16LE(this.length, 0); + buffer.write(this.signature, 2, 4, "ascii"); + buffer.writeUInt32LE(this.sequence, 6); + buffer.writeUInt8(this.flags, 10); + + return buffer; + } + + override deserialize(data: Buffer): ServerMessageHeader { + this._assertEnoughData(data, this.getByteSize()); + + this.length = data.readUInt16LE(0); + this.signature = data.toString("utf8", 2, 6); + this.sequence = data.readUInt32LE(6); + this.flags = data.readUInt8(10); + + return this; + } + + isValidSignature(): boolean { + return this.signature === "TOMC"; + } + + isPayloadEncrypted(): boolean { + // Does the flags bitmask contain have 0x08 set? + return this.flags >= 0x08; + } + + setPayloadEncryption(encrypted: boolean): ServerMessageHeader { + if (encrypted) { + this.flags |= 0x08; + } else { + this.flags &= ~0x08; + } + return this; + } + + toString(): string { + return `ServerMessageHeader {length: ${this.length}, signature: ${this.signature}, sequence: ${this.sequence}, flags: ${this.flags}}`; + } + + toHexString(): string { + return this.serialize().toString("hex"); + } + + getSequence(): number { + return this.sequence; + } + + setSequence(sequence: number): ServerMessageHeader { + this.sequence = sequence; + return this; + } + + setLength(length: number): ServerMessageHeader { + this.length = length; + return this; + } + + setSignature(signature: string): ServerMessageHeader { + this.signature = signature; + return this; + } +} + +export class ServerMessagePayload + extends Serializable + implements ISerializable +{ + protected messageId: number = 0; // 2 bytes + + override getByteSize(): number { + return 2 + this._data.length; + } + + override serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt16LE(this.messageId, 0); + this._data.copy(buffer, 2); + + return buffer; + } + + override deserialize(data: Buffer): ServerMessagePayload { + this._assertEnoughData(data, 2); + + this.messageId = data.readUInt16LE(0); + this._data = data.subarray(2); + + return this; + } + + getMessageId(): number { + return this.messageId; + } + + setMessageId(messageId: number): ServerMessagePayload { + this.messageId = messageId; + return this; + } +} + +export class ServerGenericRequest extends ServerMessagePayload { + private _data2: Buffer = Buffer.alloc(4); + + override getByteSize(): number { + return 2 + 4 + 4; + } + + override serialize(): Buffer { + try { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt16LE(this.messageId, 0); + buffer.writeUInt32LE(this._data.readUInt32LE(0), 2); + buffer.writeUInt32LE(this._data2.readUInt32LE(0), 6); + + return buffer; + } catch (error) { + log.error( + `Error serializing ServerGenericRequest: ${error as string}`, + ); + throw error; + } + } + + override deserialize(data: Buffer): ServerGenericRequest { + try { + this._assertEnoughData(data, this.getByteSize()); + + this.messageId = data.readUInt16LE(0); + this._data = data.subarray(2, 6); + this._data2 = data.subarray(6, 10); + + return this; + } catch (error) { + log.error( + `Error deserializing ServerGenericRequest: ${error as string}`, + ); + throw error; + } + } + + getData() { + return this._data; + } + + getData2() { + return this._data2; + } + + toString(): string { + return `ServerGenericRequest {messageId: ${this.messageId}, data: ${this._data.toString("hex")}, data2: ${this._data2.toString("hex")}}`; + } +} + +export class ServerGenericResponse extends ServerMessagePayload { + private _msgReply: number = 0; // 2 bytes + private _result: number = 0; // 4 + private _data2: Buffer = Buffer.alloc(4); + + override getByteSize(): number { + return 2 + 2 + 4 + 4 + 4; + } + + override serialize(): Buffer { + const buffer = Buffer.alloc(this.getByteSize()); + buffer.writeUInt16LE(this.messageId, 0); + buffer.writeUInt16LE(this._msgReply, 2); + buffer.writeUInt32LE(this._result, 4); + buffer.writeUInt32LE(this._data.readUInt32LE(0), 8); + buffer.writeUInt32LE(this._data2.readUInt32LE(0), 12); + + return buffer; + } + + override deserialize(data: Buffer): ServerGenericResponse { + this._assertEnoughData(data, this.getByteSize()); + + this.messageId = data.readUInt16LE(0); + this._msgReply = data.readUInt16LE(2); + this._result = data.readUInt32LE(4); + this._data = data.subarray(2, 6); + this._data = data.subarray(6, 10); + + return this; + } + + getMessageReply(): number { + return this._msgReply; + } + + getResult(): number { + return this._result; + } + + setMsgReply(msgReply: number): ServerGenericResponse { + this._msgReply = msgReply; + return this; + } + + toString(): string { + return `ServerGenericResponse {messageId: ${this.messageId}, msgReply: ${this._msgReply}, result: ${this._result}, data: ${this._data.toString("hex")}, data2: ${this._data2.toString("hex")}}`; + } +} + +export class ServerMessage extends Serializable implements IMessage { + header: ServerMessageHeader; + data: ServerMessagePayload; + private _preDecryptedMessageId: number = -1; + private _preEncryptedMessageId: number = -1; + + constructor(messageId: number) { + super(); + this.header = new ServerMessageHeader(); + this.data = new ServerMessagePayload().setMessageId(messageId); + } + getDataBuffer(): Buffer { + return this.data.serialize(); + } + setDataBuffer(data: Buffer): ServerMessage { + this.data.deserialize(data); + return this; + } + /** The message length is the length of the message data, not including the id */ + override getByteSize(): number { + return this.header.getByteSize() + this.data.getByteSize(); + } + + populateHeader(seq?: number): ServerMessage { + this.header.setLength(this.header.getByteSize() + this.data.getByteSize() - 2); + this.header.setSignature("TOMC"); + this.header.setSequence(seq || 0); + + return this; + } + + getData(): ISerializable { + return this.data; + } + setData(data: ServerMessagePayload): ServerMessage { + this.data = data; + return this; + } + override serialize(): Buffer { + try { + + if (this.header.getSequence() === 0) { + throw new Error("ServerMessage sequence is 0, it must be set to a non-zero value before serializing"); + } + + if (!this.header.isValidSignature()) { + throw new Error("ServerMessage signature is invalid, it must be set to 'TOMC' before serializing"); + } + + if (this.header.getByteSize() === 0) { + throw new Error("ServerMessage header byte size is 0, it must be set before serializing"); + } + + const buffer = Buffer.alloc(this.getByteSize()); + const headerBuffer = this.header.serialize(); + const dataBuffer = this.getDataBuffer(); + + headerBuffer.copy(buffer); + dataBuffer.copy(buffer, this.header.getDataOffset()); + + return buffer; + } catch (error) { + log.error(`Error serializing ServerMessage: ${error as string}`); + throw error; + } + + } + override deserialize(data: Buffer): ServerMessage { + this._assertEnoughData(data, this.header.getByteSize()); + + this.header.deserialize(data); + this.setDataBuffer(data.subarray(this.header.getDataOffset())); + + return this; + } + + isEncrypted() { + return this.header.isPayloadEncrypted(); + } + + decrypt(cipherPair: McosEncryptionPair): ServerMessage { + log.setName("ServerMessage::decrypt"); + if (this.isEncrypted()) { + try { + this._preDecryptedMessageId = this.data.getMessageId(); + log.debug(`Decrypting ServerMessage with message id ${this.data.getMessageId()}`); + this.setDataBuffer(cipherPair.decrypt(this.getDataBuffer())); + log.debug(`Decrypted ServerMessage with message id ${this._preDecryptedMessageId}, new message id: ${this.data.getMessageId()}`); + this.header.setPayloadEncryption(false); + } catch (error) { + log.error(`Error decrypting ServerMessage: ${error as string}`); + throw error; + } + } + log.resetName(); + return this; + } + + encrypt(cipherPair: McosEncryptionPair): ServerMessage { + log.setName("ServerMessage::encrypt"); + if (!this.isEncrypted()) { + try { + this._preEncryptedMessageId = this.data.getMessageId(); + log.debug(`Encrypting ServerMessage with message id ${this.data.getMessageId()}`); + this.setDataBuffer(cipherPair.encrypt(this.getDataBuffer())); + log.debug(`Encrypted ServerMessage with message id ${this._preEncryptedMessageId}, new message id: ${this.data.getMessageId()}`); + this.header.setPayloadEncryption(true); + } catch (error) { + log.error(`Error encrypting ServerMessage: ${error as string}`); + throw error; + } + } + log.resetName(); + return this; + } + + getId() { + return this.data.getMessageId(); + } + + getSequence() { + return this.header.getSequence(); + } + + toString(): string { + return `ServerMessage {length: ${this.header.getLength()}, id: ${this.data.getMessageId()}}`; + } + + getPreDecryptedMessageId() { + return this._preDecryptedMessageId; + } + + + getPreEncryptedMessageId() { + return this._preEncryptedMessageId; + } + +} diff --git a/packages/shared-packets/src/interfaces.ts b/packages/shared-packets/src/interfaces.ts new file mode 100644 index 000000000..5d7086fe3 --- /dev/null +++ b/packages/shared-packets/src/interfaces.ts @@ -0,0 +1,15 @@ +export interface ISerializable { + serialize(): Buffer; + deserialize(data: Buffer): void; + getByteSize(): number; + toString(): string; + toHexString(): string; +} + +export interface IMessage extends ISerializable { + header: ISerializable; + getData(): ISerializable; + getDataBuffer(): Buffer; + setData(data: ISerializable): void; + setDataBuffer(data: Buffer): void; +} diff --git a/packages/shared-packets/src/utils.ts b/packages/shared-packets/src/utils.ts new file mode 100644 index 000000000..482d28dd5 --- /dev/null +++ b/packages/shared-packets/src/utils.ts @@ -0,0 +1,5 @@ +export function getAsHex(bytes: Buffer): string { + return bytes.length % 2 === 0 + ? bytes.toString("hex") + : bytes.toString("hex") + "0"; +} diff --git a/packages/shared-packets/test/index.test.ts b/packages/shared-packets/test/index.test.ts new file mode 100644 index 000000000..f01d2f75d --- /dev/null +++ b/packages/shared-packets/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from "vitest"; + +describe("example", () => { + it("should pass", () => { + expect(true).toBe(true); + }); +}); diff --git a/packages/shared-packets/tsconfig.json b/packages/shared-packets/tsconfig.json new file mode 100644 index 000000000..eeb3f6426 --- /dev/null +++ b/packages/shared-packets/tsconfig.json @@ -0,0 +1,109 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs" /* Specify what module code is generated. */, + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + "outDir": "./dist" /* Specify an output folder for all emitted files. */, + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/packages/shared-packets/vite.config.ts b/packages/shared-packets/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/shared-packets/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/shared/Configuration.ts b/packages/shared/Configuration.ts index 6494d1693..92ded40f6 100644 --- a/packages/shared/Configuration.ts +++ b/packages/shared/Configuration.ts @@ -1,56 +1,52 @@ -import { Logger } from "pino"; -import { getServerLogger } from "./log.js"; - /** * @module shared/Configuration * @exports Configuration */ +type ConfigurationArgs = { + host: string; + certificateFile: string; + privateKeyFile: string; + publicKeyFile: string; +}; + +const DEFAULT_CONFIG: ConfigurationArgs = { + host: "localhost", + certificateFile: "certificates/certificate.pem", + privateKeyFile: "certificates/privatekey.pem", + publicKeyFile: "certificates/publickey.pem", +}; + export class Configuration { - certificateFile!: string; - privateKeyFile!: string; - publicKeyFile!: string; - host!: string; - logLevel!: string; + certificateFile: string; + privateKeyFile: string; + publicKeyFile: string; + host: string; static instance: Configuration | undefined; /** * * @param {object} args - * @param {string} [args.host="localhost"] - * @param {string} [args.certificateFile="certificates/certificate.pem"] - * @param {string} [args.privateKeyFile="certificates/privatekey.pem"] - * @param {string} [args.publicKeyFile="certificates/publickey.pem"] - * @param {string} [args.logLevel="info"] - * @param {module:pino.Logger} [args.logger=getServerLogger({})] + * @param {string} args.host + * @param {string} args.certificateFile + * @param {string} args.privateKeyFile + * @param {string} args.publicKeyFile + * @param {string} args.logLevel + * @param {ServerLogger} args.logger */ - constructor({ - host = "localhost", - certificateFile = "certificates/certificate.pem", - privateKeyFile = "certificates/privatekey.pem", - publicKeyFile = "certificates/publickey.pem", - logLevel = "info", - logger = getServerLogger({}), - }: { - host?: string; - certificateFile?: string; - privateKeyFile?: string; - publicKeyFile?: string; - logLevel?: string; - logger?: Logger; - }) { + constructor(options: ConfigurationArgs) { try { - this.certificateFile = certificateFile; + this.certificateFile = options.certificateFile; - this.privateKeyFile = privateKeyFile; + this.privateKeyFile = options.privateKeyFile; - this.publicKeyFile = publicKeyFile; + this.publicKeyFile = options.publicKeyFile; - this.host = host; + this.host = options.host; - this.logLevel = logLevel; Configuration.instance = this; } catch (error) { - logger.fatal(`Error in core server: ${String(error)}`); + console.error(`Error in Configuration: ${String(error)}`); + process.exit(1); } } } @@ -58,38 +54,20 @@ export class Configuration { /** * Get a singleton instance of Configuration * - * @param {object} param0 - * @param {string} [param0.host="localhost"] - * @param {string} [param0.certificateFile="certificates/certificate.pem"] - * @param {string} [param0.privateKeyFile="certificates/privatekey.pem"] - * @param {string} [param0.publicKeyFile="certificates/publickey.pem"] - * @param {string} [param0.logLevel="info"] - * @param {module:pino.Logger} [param0.logger=getServerLogger({})] * @returns {Configuration} */ -export function getServerConfiguration({ - host, - certificateFile, - privateKeyFile, - publicKeyFile, - logLevel, - logger, -}: { - host?: string; - certificateFile?: string; - privateKeyFile?: string; - publicKeyFile?: string; - logLevel?: string; - logger?: Logger; -}): Configuration { +export function getServerConfiguration( + options: Partial, +): Configuration { if (typeof Configuration.instance === "undefined") { Configuration.instance = new Configuration({ - host, - certificateFile, - privateKeyFile, - publicKeyFile, - logLevel, - logger, + host: options.host || DEFAULT_CONFIG.host, + certificateFile: + options.certificateFile || DEFAULT_CONFIG.certificateFile, + privateKeyFile: + options.privateKeyFile || DEFAULT_CONFIG.privateKeyFile, + publicKeyFile: + options.publicKeyFile || DEFAULT_CONFIG.publicKeyFile, }); } diff --git a/packages/shared/MessageNode.ts b/packages/shared/MessageNode.ts deleted file mode 100644 index 0be88592d..000000000 --- a/packages/shared/MessageNode.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { ServerError } from "./errors/ServerError.js"; -import { SerializedBuffer } from "./messageFactory.js"; - -export class MessageNode { - header: { - length: number; // 2 bytes - mcoSig: string; - }; - seq: number; - flags: number; - data: Buffer; - msgNo: number; - constructor() { - this.header = { - length: 0, // 2 bytes - mcoSig: "", // 4 bytes - }; - this.seq = 999; // 2 bytes - this.flags = 0; // 1 byte - this.data = Buffer.alloc(0); - this.msgNo = 999; // 2 bytes - } - - /** - * @static - * @param {module:shared/RawMessage} rawMessage - * @return {MessageNode} - */ - static fromRawMessage(rawMessage: SerializedBuffer): MessageNode { - const messageNode = new MessageNode(); - messageNode.deserialize(rawMessage.serialize()); - - if (messageNode.data.length > 2) { - messageNode.msgNo = messageNode.data.readInt16LE(0); - } - - return messageNode; - } - - get size() { - return this.data.length + 9; - } - - /** - * - * @param {Buffer} packet - */ - deserialize(packet: Buffer) { - const length = packet.readInt16LE(0); - if (length !== packet.length) { - throw new ServerError( - `[MessageNode] Length of packet ${length.toString()} does not match length of buffer ${packet.length.toString()}`, - ); - } - this.header.length = length; - let offset = 2; - this.header.mcoSig = packet.subarray(offset, offset + 4).toString(); - offset += 4; - this.seq = packet.readInt16LE(offset); - offset += 2; - this.flags = packet.readInt8(offset); - offset += 1; // offset = 9 - this.data = packet.subarray(offset, offset + length - 9); - if (this.data.length > 2) { - this.msgNo = this.data.readInt16LE(0); - } - } - - /** - * - * @return {Buffer} - */ - serialize(): Buffer { - const packet = Buffer.alloc(this.header.length); - let offset = 0; - packet.writeInt16LE(this.header.length, offset); - offset += 2; - packet.write(this.header.mcoSig, offset, 4); - offset += 4; - packet.writeInt16LE(this.seq, offset); - offset += 2; - packet.writeInt8(this.flags, offset); - offset += 1; - if (typeof this.data === "undefined") { - throw new ServerError("MessageNode data is undefined"); - } - this.data.copy(packet, offset); - return packet; - } - - toString() { - return `MessageNode: ${JSON.stringify({ - header: this.header, - seq: this.seq, - flags: this.flags, - data: this.data.toString("hex"), - msgNo: this.msgNo, - })}`; - } -} diff --git a/packages/shared/NPSMessage.js b/packages/shared/NPSMessage.js deleted file mode 100644 index 9ea25fe10..000000000 --- a/packages/shared/NPSMessage.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * @module shared/NPSMessage - */ - -import { ServerError } from "./errors/ServerError.js"; - -/** - * @class NPSMessage - */ -export class NPSMessage { - constructor() { - this.msgNo = 0; - this.msgVersion = 0; - this.reserved = 0; - this.data = Buffer.alloc(0); - this.msgLength = 0; - } - - /** - * - * @param {Buffer} buffer - */ - setContent(buffer) { - this.data = buffer; - this.msgLength = this.data.length + 12; // skipcq: JS-0377 - } - - /** - * - * @return {Buffer} - */ - serialize() { - try { - const packet = Buffer.alloc(this.msgLength); - packet.writeInt16BE(this.msgNo, 0); - packet.writeInt16BE(this.msgLength, 2); - if (this.msgLength > 4) { - packet.writeInt16BE(this.msgVersion, 4); - packet.writeInt16BE(this.reserved, 6); - } - - if (this.msgLength > 8) { - packet.writeInt32BE(this.msgLength, 8); - this.data.copy(packet, 12); - } - - return packet; - } catch (error) { - if (error instanceof Error) { - const err = new ServerError( - `[NPSMsg] Error in serialize(): ${error.message}`, - ); - throw err; - } - const err = new ServerError( - "[NPSMsg] Error in serialize(), error unknown", - ); - throw err; - } - } - - /** - * - * @param {Buffer} packet - * @return {NPSMessage} - */ - deserialize(packet) { - this.msgNo = packet.readInt16BE(0); - this.msgLength = packet.readInt16BE(2); - this.msgVersion = packet.readInt16BE(4); - this.data = packet.subarray(12); - return this; - } - - toString() { - return `NPSMessage: ${JSON.stringify({ - msgNo: this.msgNo, - msgLength: this.msgLength, - msgVersion: this.msgVersion, - reserved: this.reserved, - content: this.data.toString("hex"), - })}`; - } -} diff --git a/packages/shared/RawMessageHeader.js b/packages/shared/RawMessageHeader.js deleted file mode 100644 index 436ab33a7..000000000 --- a/packages/shared/RawMessageHeader.js +++ /dev/null @@ -1,58 +0,0 @@ -import { ServerError } from "./errors/ServerError.js"; - -export class RawMessageHeader { - constructor() { - this.id = 0; // 2 bytes - this.length = 0; // 2 bytes - this.version = 257; // 2 bytes (0x0101) - this.reserved = 0; // 2 bytes - this.checksum = 0; // 4 bytes - } - - /** - * @param {Buffer} buffer - * @returns {RawMessageHeader} - * @throws {Error} If the buffer is too short - * @throws {Error} If the buffer is malformed - */ - deserialize(buffer) { - if (buffer.length < 4) { - throw new ServerError( - `Buffer length ${buffer.length} is too short to deserialize`, - ); - } - - try { - this.id = buffer.readInt16BE(0); - this.length = buffer.readInt16BE(2); - } catch (error) { - throw new ServerError( - `Error deserializing buffer: ${String(error)}`, - ); - } - return this; - } - - /** - * @returns {Buffer} - * @throws {Error} If there is an error serializing the buffer - */ - serialize() { - const buffer = Buffer.alloc(RawMessageHeader.size()); - this.checksum = this.length; - buffer.writeInt16BE(this.id, 0); - buffer.writeInt16BE(this.length, 2); - buffer.writeInt16BE(this.version, 4); - buffer.writeInt16BE(this.reserved, 6); - buffer.writeInt32BE(this.checksum, 8); - return buffer; - } - - static size() { - return 12; - } - - toString() { - return `id: ${this.id}, length: ${this.length}`; - } -} diff --git a/packages/shared/ServerMessage.test.ts b/packages/shared/ServerMessage.test.ts deleted file mode 100644 index e7546ab66..000000000 --- a/packages/shared/ServerMessage.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { OldServerMessage } from "./messageFactory.js"; -import { describe, it, expect } from "vitest"; - -describe("ServerMessage", () => { - describe(".byteLength", () => { - it("should have the correct size", () => { - // Arrange - const testMessage = new OldServerMessage(); - // Assert - expect(testMessage.size()).toBe(11); - }); - }); - it("should serialize and deserialize correctly", () => { - // Arrange - const testMessage = new OldServerMessage(); - testMessage._header.mcoSig = "MCOX"; - testMessage._header.sequence = 1; - testMessage._header.flags = 3; - testMessage._msgNo = 613; - // Act - const buffer = testMessage.serialize(); - const result = new OldServerMessage(); - result._doDeserialize(buffer); - result._msgNo = testMessage._msgNo; - // Assert - expect(result._header.mcoSig).toEqual(testMessage._header.mcoSig); - expect(result._header.sequence).toEqual(testMessage._header.sequence); - expect(result._header.flags).toEqual(testMessage._header.flags); - expect(result._msgNo).toEqual(testMessage._msgNo); - }); -}); diff --git a/packages/shared/State.ts b/packages/shared/State.ts deleted file mode 100644 index db9797ab6..000000000 --- a/packages/shared/State.ts +++ /dev/null @@ -1,606 +0,0 @@ -/** - * @fileoverview State management for the gateway server. - * @module shared/state - * @exports GatewayServer/State - * - */ - -// eslint-disable-next-line no-unused-vars -import { Cipher, Decipher } from "crypto"; -import { SerializedBuffer } from "./messageFactory.js"; -import { Socket } from "node:net"; -import { Logger } from "pino"; - -/** - * @external RawMessage - * @see {@link "packages/shared/messageFactory.js.RawMessage"} - */ - -/** - * State management for the gateway server. - * - * This file contains the state management for the gateway server. It is - * responsible for keeping track of the state of the server, including - * connections, encryption, and sessions. - * - * @example - * ```ts - * import { createInitialState, addSocket, removeSocket } from "./state.js"; - * - * const state = createInitialState(); - * - * const wrappedSocket = wrapSocket(socket, connectionId); - * - * - * - */ - -/** - * @external crypto - * @see {@link https://nodejs.org/api/crypto.html} - */ - -/** - * A pair of encryption ciphers. - */ -export class McosEncryptionPair { - _cipher: Cipher; - _decipher: Decipher; - /** - * Create a new encryption pair. - * - * This function creates a new encryption pair. It is used to encrypt and - * decrypt data sent to and from the client. - * - * @param {module:crypto.Cipher} cipher The cipher to use for encryption. - * @param {module:crypto.Decipher} decipher The decipher to use for decryption. - */ - constructor(cipher: Cipher, decipher: Decipher) { - this._cipher = cipher; - this._decipher = decipher; - } - - /** - * @param {Buffer} data The data to encrypt. - * @returns {Buffer} The encrypted data. - */ - encrypt(data: Buffer): Buffer { - return this._cipher.update(data); - } - - /** - * @param {Buffer} data The data to decrypt. - * @returns {Buffer} The decrypted data. - */ - decrypt(data: Buffer): Buffer { - return this._decipher.update(data); - } -} - -/** - * The encryption settings for a session. - */ -export class McosEncryption { - connectionId: string; - _commandEncryptionPair: McosEncryptionPair; - _dataEncryptionPair: McosEncryptionPair; - /** - * Create a new encryption object. - * - * @param {object} args - * @param {string} args.connectionId The connection id of the session that - * this encryption is for. - * @param {McosEncryptionPair} args.commandEncryptionPair The encryption - * pair for - * command packets. - * @param {McosEncryptionPair} args.dataEncryptionPair The encryption pair - * for data packets. - */ - constructor({ - connectionId, - commandEncryptionPair, - dataEncryptionPair, - }: { - connectionId: string; - commandEncryptionPair: McosEncryptionPair; - dataEncryptionPair: McosEncryptionPair; - }) { - this.connectionId = connectionId; - this._commandEncryptionPair = commandEncryptionPair; - this._dataEncryptionPair = dataEncryptionPair; - } - - get commandEncryption() { - return this._commandEncryptionPair; - } - - get dataEncryption() { - return this._dataEncryptionPair; - } -} - -/** - * A client session. - */ -export class McosSession { - connectionId: string; - gameId: number; - /** - * Create a new session. - * - * @param {object} args - * @param {string} args.connectionId A unique identifier for this session. - * @param {number} args.username The username of the user who owns this - * session. - */ - constructor({ - connectionId, - gameId, - }: { - connectionId: string; - gameId: number; - }) { - this.connectionId = connectionId; - this.gameId = gameId; - } -} - -/** - * @external net - * @see {@link https://nodejs.org/api/net.html} - */ - -/** - * A wrapped socket. - * - * This is a socket that has been wrapped with a connection id. - * @interface - */ -interface WrappedSocket { - socket: Socket; - connectionId: string; -} - -/** - * Wrap a socket with a connection id. - * - * @param {module:NetConnectOpts.Socket} socket The socket to wrap. - * @param {string} connectionId The connection id to wrap the socket with. - * @returns {WrappedSocket} The wrapped socket. - */ -export function wrapSocket( - socket: Socket, - connectionId: string, -): WrappedSocket { - return { - socket, - connectionId, - }; -} - -interface OnDataHandlerArgs { - args: { - connectionId: string; - message: SerializedBuffer; - log?: Logger; - }; -} -/** - * @requires module:packages/shared/RawMessage - */ - -export interface ServiceResponse { - connectionId: string; - messages: SerializedBuffer[]; -} - -export type OnDataHandler = Function; -/** - * @param {OnDataHandlerArgs} args The arguments for the handler. - * @returns {ServiceResponse} The - * response - * to the - * data. - */ - -/** - * @param {State} state The state to save. - * @returns {void} - */ - -/** - * The state of the gateway server. - * - * This is the state of the gateway server. It is responsible for keeping track - * of the state of the server, including connections, encryption, and sessions. - * @global - * @interface - */ -export interface State { - filePaths: Record; - sockets: Record; - encryptions: Record; - sessions: Record; - queuedConnections: Record; - onDataHandlers: Record; - save: (state?: State) => void; -} - -/** - * Create the initial state. - * - * This function creates the initial state for the gateway server. - * You should call save on the returned state to save it to the database. - * - * @param {object} args - * @param {StateSaveFunction} [args.saveFunction=saveStateToDatabase] The - * save - * function - * to use. - * Defaults - * to - * saveStateToDatabase. - * @returns The initial state. - */ -export function createInitialState({ - saveFunction = saveStateToDatabase, -}: { - saveFunction?: (state: State) => void; -}): State { - return { - filePaths: {}, - sockets: {}, - encryptions: {}, - sessions: {}, - queuedConnections: {}, - onDataHandlers: {}, - save: function (state?: State) { - if (typeof state === "undefined") { - state = this as State; - } - if (typeof saveFunction === "undefined") { - saveStateToDatabase(state); - return; - } - saveFunction(state); - }, - }; -} - -/** - * Add a data handler to the state. - * - * This function adds a data handler to the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to add the data handler to. - * @param {number} port The port to add the data handler for. - * @param {OnDataHandler} handler The data - * handler to - * add. - * @returns {State} The state with the data handler added. - */ -export function addOnDataHandler( - state: State, - port: number, - handler: OnDataHandler, -): State { - const onDataHandlers = state.onDataHandlers; - onDataHandlers[port.toString()] = handler; - const newState = { - ...state, - onDataHandlers, - }; - return newState; -} - -/** - * Get a data handler for a port from the state. - * - * This function gets a data handler for a port from the state. - * - * @param {State} state The state to get the data handler from. - * @param {number} port The port to get the data handler for. - * @returns {OnDataHandler | undefined} The - * data - * handler - * for the - * given port, - * or undefined - * if no data - * handler exists - */ -export function getOnDataHandler( - state: State, - port: number, -): OnDataHandler | undefined { - return state.onDataHandlers[port.toString()]; -} - -/** - * Add a socket to the state. - * - * This function adds a socket to the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to add the socket to. - * @param {WrappedSocket} socket The socket to add to the state. - * @returns {State} The state with the socket added. - */ -export function addSocket(state: State, socket: WrappedSocket): State { - const sockets = state.sockets; - sockets[socket.connectionId] = socket; - return { - ...state, - sockets, - }; -} - -/** - * Get a socket from the state. - * - * This function gets a socket from the state. - * - * @param {State} state The state to get the socket from. - * @param {string} connectionId The connection id of the socket to get. - * @returns {WrappedSocket | undefined} The socket with the given connection id, or undefined if no socket - */ -export function getSocket( - state: State, - connectionId: string, -): WrappedSocket | undefined { - return state.sockets[connectionId]; -} - -/** - * Get all the sockets from the state. - * - * This function gets all the sockets from the state. - * - * @param {State} state The state to get the sockets from. - * @returns {Record} An array of all the sockets in the state. - */ -export function getSockets(state: State): Record { - return state.sockets; -} - -/** - * Remove a socket from the state. - * - * This function removes a socket from the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to remove the socket from. - * @param {string} connectionId The connection id of the socket to remove. - * @returns {State} The state with the socket removed. - */ -export function removeSocket(state: State, connectionId: string): State { - const sockets = state.sockets; - delete sockets[connectionId]; - return { - ...state, - sockets, - }; -} - -/** - * Add a queued connection to the state. - * - * This function adds a queued connection to the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to add the queued connection to. - * @param {WrappedSocket} socket The queued connection to add to the state. - * @returns {State} The state with the queued connection added. - */ -export function addQueuedConnection( - state: State, - socket: WrappedSocket, -): State { - const queuedConnections = state.queuedConnections; - queuedConnections[socket.connectionId] = socket; - return { - ...state, - queuedConnections, - }; -} - -/** - * Get queued connections from the state. - * - * This function gets all the queued connections from the state. - * - * @param {State} state The state to get the queued connections from. - * @returns {string[]} An array of all the queued connections in the state. - */ -export function getQueuedConnections(state: State): string[] { - return Object.keys(state.queuedConnections); -} - -/** - * Remove a queued connection from the state. - * - * This function removes a queued connection from the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to remove the queued connection from. - * @param {string} connectionId The connection id of the queued connection to remove. - * @returns {State} The state with the queued connection removed. - */ -export function removeQueuedConnection( - state: State, - connectionId: string, -): State { - const queuedConnections = state.queuedConnections; - delete queuedConnections[connectionId]; - return { - ...state, - queuedConnections, - }; -} - -/** - * Add an encryption to the state. - * - * This function adds an encryption to the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to add the encryption to. - * @param {McosEncryption} encryption The encryption to add to the state. - * @returns {State} - The state with the encryption added. - */ -export function addEncryption(state: State, encryption: McosEncryption): State { - const encryptions = state.encryptions; - encryptions[encryption.connectionId] = encryption; - return { - ...state, - encryptions, - }; -} - -/** - * Get an encryption from the state. - * - * This function gets an encryption from the state. - * - * @param {State} state The state to get the encryption from. - * @param {string} connectionId The connection id of the encryption to get. - * @returns {McosEncryption | undefined} The encryption with the given connection id, or undefined if no encryption - */ -export function getEncryption( - state: State, - connectionId: string, -): McosEncryption | undefined { - return state.encryptions[connectionId]; -} - -/** - * Update an encryption in the state. - * - * This function updates an encryption in the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to update the encryption in. - * @param {McosEncryption} encryption The encryption to update in the state. - * @returns {State} The state with the encryption updated. - */ -export function updateEncryption( - state: State, - encryption: McosEncryption, -): State { - const encryptions = state.encryptions; - encryptions[encryption.connectionId] = encryption; - return { - ...state, - encryptions, - }; -} - -/** - * Remove an encryption from the state. - * - * This function removes an encryption from the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param state {State} The state to remove the encryption from. - * @param {string} connectionId The connection id of the encryption to remove. - * @returns {State} The state with the encryption removed. - */ -export function removeEncryption(state: State, connectionId: string): State { - const encryptions = state.encryptions; - delete encryptions[connectionId]; - return { - ...state, - encryptions, - }; -} - -/** - * Add a session to the state. - * - * This function adds a session to the state. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to add the session to. - * @param {McosSession} session The session to add to the state. - * @returns {State} The state with the session added. - */ -export function addSession(state: State, session: McosSession): State { - const sessions = state.sessions; - sessions[session.connectionId] = session; - return { - ...state, - sessions, - }; -} - -/** - * Remove a session from the state. - * - * This function removes a session from the state. It also removes the socket - * and encryption for the session. - * The returned state is a new state object, and the original state is not - * modified. You should then call the save function on the new state to update - * the database. - * - * @param {State} state The state to remove the session from. - * @param {string} connectionId The connection id of the session to remove. - * @returns {State} The state with the session removed. - */ -export function removeSession(state: State, connectionId: string): State { - const sessions = state.sessions; - delete sessions[connectionId]; - return { - ...state, - sessions, - }; -} - -export function findSessionByConnectionId( - state: State, - connectionId: string, -): McosSession | undefined { - return state.sessions[connectionId]; -} - -/** - * Fetch the state from the database. - * - * This function fetches the state from the database. - * - * @returns {State} The state from the database. - */ -export function fetchStateFromDatabase(): State { - return globalStateDatabase; -} - -/** - * Save the state to the database. - * - * This function saves the state to the database. - * - * @param {State} state The state to save to the database. - */ -function saveStateToDatabase(state: State) { - globalStateDatabase = state; -} - -let globalStateDatabase = createInitialState({}); diff --git a/packages/shared/SubThread.ts b/packages/shared/SubThread.ts index 8592bf221..6554c1dd7 100644 --- a/packages/shared/SubThread.ts +++ b/packages/shared/SubThread.ts @@ -3,24 +3,14 @@ */ import { EventEmitter } from "node:events"; -import { getServerLogger } from "./log.js"; -import { Logger } from "pino"; - +import type { TServerLogger } from "./index"; export class SubThread extends EventEmitter { - name: any; - log: any; + name: string; + log: TServerLogger; loopInterval: number; - timer: any; - /** - * @param {string} name - * @param {module:shared/log.ServerLogger} log - * @param {number} [loopInterval=100] - */ - constructor( - name: string, - log: Logger = getServerLogger({ module: "SubThread" }), - loopInterval: number = 100, - ) { + timer: ReturnType | null = null; + + constructor(name: string, log: TServerLogger, loopInterval = 100) { super(); this.name = name; this.log = log; @@ -30,7 +20,6 @@ export class SubThread extends EventEmitter { init() { this.emit("initialized"); - // @ts-ignore this.timer = setInterval(this.run.bind(this), this.loopInterval); } diff --git a/packages/shared/TimeStamp.ts b/packages/shared/TimeStamp.ts deleted file mode 100644 index f45500b3f..000000000 --- a/packages/shared/TimeStamp.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { SerializedBuffer } from "./messageFactory.js"; - -export class Timestamp extends SerializedBuffer { - _year: number; - _month: number; - _day: number; - _hour: number; - _minute: number; - _second: number; - _fraction: number; - constructor() { - super(); - this._year = 0; // 2 bytes - this._month = 0; // 2 bytes - this._day = 0; // 2 bytes - this._hour = 0; // 2 bytes - this._minute = 0; // 2 bytes - this._second = 0; // 2 bytes - this._fraction = 0; // 2 bytes - // total: 14 bytes - } - - override size() { - return 14; - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - buffer.writeUInt16LE(this._year, offset); - offset += 2; - buffer.writeUInt16LE(this._month, offset); - offset += 2; - buffer.writeUInt16LE(this._day, offset); - offset += 2; - buffer.writeUInt16LE(this._hour, offset); - offset += 2; - buffer.writeUInt16LE(this._minute, offset); - offset += 2; - buffer.writeUInt16LE(this._second, offset); - offset += 2; - buffer.writeUInt8(this._fraction, offset); - - return buffer; - } - - override toString() { - return `TimeStamp: year=${this._year} month=${this._month} day=${this._day} hour=${this._hour} minute=${this._minute} second=${this._second} fraction=${this._fraction}`; - } - - as64BitNumber() { - const year = this._year * 100000000000000; - const month = this._month * 1000000000000; - const day = this._day * 10000000000; - const hour = this._hour * 100000000; - const minute = this._minute * 1000000; - const second = this._second * 10000; - const fraction = this._fraction; - - return year + month + day + hour + minute + second + fraction; - } - - static now() { - const now = new Date(); - const timestamp = new Timestamp(); - timestamp._year = now.getFullYear(); - timestamp._month = now.getMonth() + 1; - timestamp._day = now.getDate(); - timestamp._hour = now.getHours(); - timestamp._minute = now.getMinutes(); - timestamp._second = now.getSeconds(); - timestamp._fraction = now.getMilliseconds(); - - return timestamp; - } -} diff --git a/packages/shared/errors/ServerError.ts b/packages/shared/errors/ServerError.ts deleted file mode 100644 index 041fdd74b..000000000 --- a/packages/shared/errors/ServerError.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { getServerLogger } from "../log.js"; - -/** - * @module errors - */ - -/** - * ServerError - * Error class for server errors - * @export - * @class ServerError - * @implements {Error} - * @property {number} code The HTTP status code - * @property {module:shared/log.ServerLogger} log The logger - */ -export class ServerError extends Error { - code: number; - /** - * Creates an instance of ServerError. - * @param {string} message The error message - */ - constructor(message: string) { - super(message); - this.code = 500; - this.name = "ServerError"; - } - - /** - * Convert the error to JSON - * - * @returns {{name: string, message: string, stack: string}} - */ - toJSON(): { name: string; message: string; stack: string } { - return { - name: this.name, - message: this.message, - stack: this.stack ?? "", - }; - } - - /** - * Convert the error to a string - * @override - */ - override toString() { - return JSON.stringify(this.toJSON()); - } - - /** - * Convert a JSON object to a ServerError - * - * @static - * @param {{ - * name: string, - * message: string, - * stack: string - * }} json The JSON object - * @returns {ServerError} - */ - static fromJSON(json: { - name: string; - message: string; - stack: string; - }): ServerError { - const { name, message, stack } = json; - const newError = new ServerError(String(message)); - newError.name = name; - newError.stack = stack; - getServerLogger({ level: "error" }).error(json, message); - return newError; - } - - /** - * @static - * @param {string} jsonString - * @returns {ServerError} - */ - static fromString(jsonString: string): ServerError { - getServerLogger({ level: "error" }).error(jsonString); - return ServerError.fromJSON(JSON.parse(jsonString)); - } - - /** - * @static - * @param {Error} error - * @returns {ServerError} - */ - static fromError(error: Error): ServerError { - const newError = new ServerError(error.message); - newError.name = error.name; - newError.stack = error.stack; - getServerLogger({ level: "error" }).error(error, error.message); - return newError; - } - - /** - * @static - * @param {unknown} error - * @param {string} message - * @returns {ServerError} - */ - static fromUnknown(error: unknown, message: string): ServerError { - if (error instanceof Error) { - return ServerError.fromError(error); - } - if (typeof error === "string") { - return ServerError.fromString(error); - } - getServerLogger({ level: "error" }).error(error, message); - return new ServerError(`Unknown error: ${String(error)}`); - } -} diff --git a/packages/shared/index.ts b/packages/shared/index.ts new file mode 100644 index 000000000..554e1f4b4 --- /dev/null +++ b/packages/shared/index.ts @@ -0,0 +1,31 @@ +export { SubThread } from "./SubThread.js"; +export { NetworkMessage } from "./src/NetworkMessage.js"; +export { ServerLogger, getServerLogger } from "./src/log.js"; +export { Configuration, getServerConfiguration } from "./Configuration.js"; + +export { RawMessage } from "./src/RawMessage.js"; +export { ServerMessage } from "./src/ServerMessage.js"; +export type * from "./src/types.js"; + +export interface KeypressEvent { + sequence: string; + name: string; + ctrl: boolean; + meta: boolean; + shift: boolean; +} + +export interface ConnectionRecord { + customerId: number; + connectionId: string; + sessionKey: string; + sKey: string; + contextId: string; +} + +export { + McosEncryptionPair, + createCommandEncryptionPair, + createDataEncryptionPair, + verifyLegacyCipherSupport, +} from "./src/encryption.js"; diff --git a/packages/shared/log.ts b/packages/shared/log.ts deleted file mode 100644 index b596953f7..000000000 --- a/packages/shared/log.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Logger, LoggerOptions, pino } from "pino"; - -type ServerLoggerOptions = { - level?: string; - module?: string; - name?: string; -}; - -/** - * @static - * @property {ServerLogger} instance - */ -export class ServerLogger { - logger: any; - static instance: ServerLogger | undefined; - /** - * Creates an instance of ServerLogger. - * @param {ServerLoggerOptions} options - */ - constructor(options: ServerLoggerOptions) { - this.logger = pino(options); - this.logger.level = options.level ?? "info"; - ServerLogger.instance = this; - } - - /** - * @param {string} message - */ - fatal(message: string) { - this.logger.fatal(message); - } - - /** - * @param {string} message - */ - error(message: string) { - this.logger.error(message); - } - - /** - * @param {string} message - */ - warn(message: string) { - this.logger.warn(message); - } - - /** - * @param {string} message - */ - info(message: string) { - this.logger.info(message); - } - - /** - * @param {string} message - */ - debug(message: string) { - this.logger.debug(message); - } - - /** - * @param {string} message - */ - trace(message: string) { - this.logger.trace(message); - } - - /** - * @global - * @external pino - * @see {@link https://www.npmjs.com/package/pino} - */ - - /** - * @param {module:pino.LoggerOptions} options - * @returns {module:pino.Logger} - */ - child(options: LoggerOptions): Logger { - const child = this.logger.child(options); - return child; - } -} - -/** - * Get a logger instance - * - * @param {ServerLoggerOptions} options - * @return {module:pino.Logger} - */ -export function getServerLogger(options: ServerLoggerOptions): Logger { - const logLevel = options.level ?? "info"; - const moduleName = options.module ?? "core"; - if (typeof ServerLogger.instance === "undefined") { - ServerLogger.instance = new ServerLogger({ - name: "mcos", - level: logLevel, // This isn't used by the logger, but it's used by the constructor - module: moduleName, - }); - } - - const child = ServerLogger.instance.child(options); - child.level = logLevel; - return child; -} diff --git a/packages/shared/messageFactory.ts b/packages/shared/messageFactory.ts deleted file mode 100644 index 4ce71b86a..000000000 --- a/packages/shared/messageFactory.ts +++ /dev/null @@ -1,923 +0,0 @@ -/** - * @module shared/messageFactory - * @description Holds the base classes for the various message types. - * The message types are: - * - LegacyMessage - * - NPSMessage - * - ServerMessage - * - RawMessage - */ - -import { ServerError } from "./errors/ServerError.js"; - -/** - * @abstract - * @property {Buffer} data - * @property {number} Size - */ -class AbstractSerializable { - internalBuffer: Buffer; - constructor() { - if (this.constructor === AbstractSerializable) { - throw new TypeError( - "Abstract class 'AbstractSerializable' cannot be instantiated directly.", - ); - } - /** @private */ - this.internalBuffer = Buffer.alloc(0); - } - - _doSerialize() { - throw new ServerError("Method '_doSerialize()' must be implemented."); - } - - /** - * @param {Buffer} _buffer - * @returns {AbstractSerializable} - */ - // eslint-disable-next-line no-unused-vars - _doDeserialize(_buffer: Buffer): AbstractSerializable { - throw new ServerError("Method '_doDeserialize()' must be implemented."); - } - - get data() { - return this.internalBuffer; - } - - /** - * @param {Buffer} buffer - */ - setBuffer(buffer: Buffer) { - this.internalBuffer = Buffer.alloc(buffer.length); - this.internalBuffer = buffer; - } - - /** - * @returns {number} - */ - static get Size(): number { - throw new ServerError("Method 'Size' must be implemented."); - } -} - -/** - * @mixin - * @param {typeof AbstractSerializable} Base - * @returns {typeof AbstractSerializable} - */ -const SerializableMixin = ( - Base: typeof AbstractSerializable, -): typeof AbstractSerializable => - class extends Base { - constructor() { - super(); - } - - serialize() { - return this._doSerialize(); - } - - /** - * @param {Buffer} buffer - * @returns {AbstractSerializable} - */ - deserialize(buffer: Buffer): AbstractSerializable { - return this._doDeserialize(buffer); - } - }; - -/** - * @param {Buffer} buffer - * @returns {string} - */ -export function deserializeString(buffer: Buffer): string { - try { - const stringLength = buffer.readInt32BE(0); - const stringBuffer = buffer.subarray(4, 4 + (stringLength - 1)); - - const string = stringBuffer.toString("utf8").trim(); - return string; - } catch (error) { - throw ServerError.fromUnknown( - error, - `Error deserializing string from buffer ${buffer.toString("hex")}`, - ); - } -} - -/** - * Serializes a string with length prefix - * @param {string} string - * @param {Buffer} targetBuffer - * @param {number} offset - * @returns {number} - */ -export function serializeString( - string: string, - targetBuffer: Buffer, - offset: number, -): number { - const buffer = Buffer.alloc(4 + string.length + 1); - buffer.writeInt32BE(string.length + 1, 0); - const stringToWrite = string + "\0"; - buffer.write(stringToWrite, 4, stringToWrite.length, "utf8"); - buffer.copy(targetBuffer, offset); - offset += buffer.length; - return offset; -} - -/** - * Serializes a raw string without length prefix - * @param {string} string - * @param {Buffer} targetBuffer - * @param {number} offset - * @param {number} length - * @returns {number} - */ -export function serializeStringRaw( - string: string, - targetBuffer: Buffer, - offset: number, - length: number, -): number { - const stringToWrite = string; - targetBuffer.write(stringToWrite, offset, string.length, "utf8"); - offset += stringToWrite.length; - return offset; -} - -/** - * A legacy header is a 4 byte header with the following fields: - * - 2 bytes - id - * - 2 bytes - length - * - * - */ -class legacyHeader extends SerializableMixin(AbstractSerializable) { - _size: number; - id: number; - length: any; - constructor() { - super(); - this._size = 4; - this.id = 0; // 2 bytes - this.length = this._size; // 2 bytes - } - - /** - * @param {Buffer} buffer - */ - override _doDeserialize(buffer: Buffer) { - if (buffer.length < 4) { - throw new ServerError( - `Buffer length ${buffer.length} is too short to deserialize`, - ); - } - - try { - this.id = buffer.readInt16BE(0); - this.length = buffer.readInt16BE(2); - } catch (error) { - throw new ServerError( - `Error deserializing buffer: ${String(error)}`, - ); - } - return this; - } - - override _doSerialize() { - const buffer = Buffer.alloc(this._size); - buffer.writeInt16BE(this.id, 0); - buffer.writeInt16BE(this.length, 2); - return buffer; - } - - override toString() { - return `LegacyHeader: ${JSON.stringify({ - id: this.id, - length: this.length, - })}`; - } - - static override get Size() { - return 4; - } -} - -/** - * A game message header is a 8 byte header with the following fields: - * - 2 bytes - id - * - 2 bytes - length - * - 2 bytes - gameMessageId - * - 2 bytes - gameMessageLength - */ -export class GameMessageHeader extends legacyHeader { - _gameMessageId: number; // 2 bytes - _gameMessageLength: number; // 2 bytes - - constructor(gameMessageId: number) { - super(); - this._size = 8; - this.id = 0x1101; // 2 bytes - this._gameMessageId = gameMessageId; // 2 bytes - this._gameMessageLength = 0; // 2 bytes - } - - size() { - return 8; - } - - deserialize(buffer: Buffer) { - if (buffer.length < 8) { - throw new ServerError( - `Buffer length ${buffer.length} is too short to deserialize`, - ); - } - - try { - this.id = buffer.readInt16BE(0); - this.length = buffer.readInt16BE(2); - this._gameMessageId = buffer.readInt16BE(4); - this._gameMessageLength = buffer.readInt16BE(6); - } catch (error) { - throw new ServerError( - `Error deserializing buffer: ${String(error)}`, - ); - } - return this; - } - - serialize() { - const buffer = Buffer.alloc(8); - buffer.writeInt16BE(this.id, 0); - buffer.writeInt16BE(this.length, 2); - buffer.writeInt16BE(this._gameMessageId, 4); - buffer.writeInt16BE(this._gameMessageLength, 6); - return buffer; - } -} - -/** - * A nps header is a 12 byte header with the following fields: - * - 2 bytes - id - * - 2 bytes - length - * - 2 bytes - version - * - 2 bytes - reserved - * - 4 bytes - checksum - * - * @mixin {SerializableMixin} - */ -export class NPSHeader extends SerializableMixin(AbstractSerializable) { - _size: number; - id: number; // 2 bytes - length: number; // 2 bytes - version: number; // 2 bytes - reserved: number; // 2 bytes - checksum: number; // 4 bytes - constructor() { - super(); - this._size = 12; - this.id = 0; // 2 bytes - this.length = this._size; // 2 bytes - this.version = 257; // 2 bytes (0x0101) - this.reserved = 0; // 2 bytes - this.checksum = 0; // 4 bytes - } - - /** - * @param {Buffer} buffer - * @returns {NPSHeader} - * @throws {Error} If the buffer is too short - * @throws {Error} If the buffer is malformed - */ - override _doDeserialize(buffer: Buffer): NPSHeader { - if (buffer.length < this._size) { - throw new ServerError( - `Buffer length ${buffer.length} is too short to deserialize`, - ); - } - - try { - this.id = buffer.readInt16BE(0); - this.length = buffer.readInt16BE(2); - } catch (error) { - throw new ServerError( - `Error deserializing buffer: ${String(error)}`, - ); - } - return this; - } - - override _doSerialize() { - const buffer = Buffer.alloc(this._size); - buffer.writeInt16BE(this.id, 0); - buffer.writeInt16BE(this.length, 2); - buffer.writeInt16BE(this.version, 4); - buffer.writeInt16BE(this.reserved, 6); - buffer.writeInt32BE(this.checksum, 8); - return buffer; - } - - static size() { - return 12; - } - - static override get Size() { - return 12; - } - - override toString() { - return `NPSHeader: ${JSON.stringify({ - id: this.id, - length: this.length, - version: this.version, - reserved: this.reserved, - checksum: this.checksum, - })}`; - } -} - -/** - * A server header is an 11 byte header with the following fields: - * - 2 bytes - length - * - 4 bytes - mcoSig - * - 4 bytes - sequence - * - 1 byte - flags - */ -export class serverHeader extends SerializableMixin(AbstractSerializable) { - _size: number; - length: any; - mcoSig: string; - sequence: number; - flags: number; - constructor() { - super(); - this._size = 11; - this.length = this._size; // 2 bytes - this.mcoSig = "TOMC"; // 4 bytes - this.sequence = 0; // 4 bytes - this.flags = 0; // 1 byte - } - - size() { - return this._size; - } - - /** - * @param {Buffer} buffer - * @returns {serverHeader} - * @throws {Error} If the buffer is too short - * @throws {Error} If the buffer is malformed - */ - override _doDeserialize(buffer: Buffer): serverHeader { - if (buffer.length < this._size) { - throw new ServerError( - `Buffer length ${buffer.length} is too short to deserialize`, - ); - } - - try { - this.length = buffer.readInt16LE(0); - this.mcoSig = buffer.toString("utf8", 2, 6); - this.sequence = buffer.readInt32LE(6); - this.flags = buffer.readInt8(10); - } catch (error) { - throw new ServerError( - `Error deserializing buffer: ${String(error)}`, - ); - } - return this; - } - - override _doSerialize() { - const buffer = Buffer.alloc(this._size); - buffer.writeInt16LE(this.length, 0); - buffer.write(this.mcoSig, 2, 6, "utf8"); - buffer.writeInt32LE(this.sequence, 6); - buffer.writeInt8(this.flags, 10); - return buffer; - } - - override toString() { - return `ServerHeader: ${JSON.stringify({ - length: this.length, - mcoSig: this.mcoSig, - sequence: this.sequence, - flags: this.flags, - })}`; - } -} - -/** - * A legacy message is an older nps message type. It has a 4 byte header. @see {@link legacyHeader} - * - * @mixin {SerializableMixin} - */ -export class LegacyMessage extends SerializableMixin(AbstractSerializable) { - _header: legacyHeader; - constructor() { - super(); - this._header = new legacyHeader(); - } - - /** - * @param {Buffer} buffer - * @returns {LegacyMessage} - */ - override _doDeserialize(buffer: Buffer): LegacyMessage { - this._header._doDeserialize(buffer); - this.setBuffer(buffer.subarray(this._header._size)); - return this; - } - - deserialize(buffer: Buffer) { - return this._doDeserialize(buffer); - } - - override _doSerialize() { - const buffer = Buffer.alloc(this._header.length); - this._header._doSerialize().copy(buffer); - super.data.copy(buffer, this._header._size); - return buffer; - } - - serialize() { - return this._doSerialize(); - } - - /** - * @param {Buffer} buffer - */ - override setBuffer(buffer: Buffer) { - super.setBuffer(buffer); - this._header.length = buffer.length + 4; - } - - asJSON() { - return { - header: this._header, - data: super.data.toString("hex"), - }; - } - - override toString() { - return `LegacyMessage: ${JSON.stringify({ - header: this._header.toString(), - data: super.data.toString("hex"), - })}`; - } -} - -/** - * A NPS message is a message that matches version 1.1 of the nps protocol. It has a 12 byte header. @see {@link NPSHeader} - * - * @mixin {SerializableMixin} - */ -export class NPSMessage extends SerializableMixin(AbstractSerializable) { - _header: NPSHeader; - constructor() { - super(); - this._header = new NPSHeader(); - } - - /** - * @param {Buffer} buffer - * @returns {NPSMessage} - */ - override _doDeserialize(buffer: Buffer): NPSMessage { - this._header._doDeserialize(buffer); - this.setBuffer(buffer.subarray(this._header._size)); - return this; - } - - serialize() { - const buffer = Buffer.alloc(this._header.length); - this._header._doSerialize().copy(buffer); - this.data.copy(buffer, this._header._size); - return buffer; - } - - size() { - return this._header.length + this.data.length; - } - - override toString() { - return `NPSMessage: ${JSON.stringify({ - header: this._header.toString(), - data: this.data.toString("hex"), - })}`; - } -} - -/** - * A raw message is a message that is not parsed into a specific type. - * It has no header, and is just a serialized buffer. - * - * @mixin {SerializableMixin} - */ -export class SerializedBuffer extends SerializableMixin(AbstractSerializable) { - constructor() { - super(); - } - - /** - * @param {Buffer} buffer - * @returns {SerializedBuffer} - */ - override _doDeserialize(buffer: Buffer): SerializedBuffer { - this.setBuffer(buffer); - return this; - } - - serialize() { - return this.data; - } - - override toString() { - return `SerializedBuffer: ${this.serialize().toString("hex")}`; - } - - size() { - return this.data.length; - } -} - -export class GameMessage extends SerializedBuffer { - _header: GameMessageHeader; - _recordData: Buffer; - constructor(gameMessageId: number) { - super(); - this._header = new GameMessageHeader(gameMessageId); - this._recordData = Buffer.alloc(0); - } - - setRecordData(buffer: Buffer) { - this._recordData = Buffer.alloc(buffer.length); - buffer.copy(this._recordData); - } - - /** @deprecated - Use setRecordData instead */ - override setBuffer(buffer: Buffer) { - this._recordData = Buffer.alloc(buffer.length); - buffer.copy(this._recordData); - } - - /** @deprecated - Use deserialize instead */ - override _doDeserialize(buffer: Buffer): SerializedBuffer { - this._header._doDeserialize(buffer); - this._recordData = Buffer.alloc(this._header._gameMessageLength - 4); - buffer.copy(this._recordData, 0, 8); - return this; - } - - deserialize(buffer: Buffer) { - this._header._doDeserialize(buffer); - this._recordData = Buffer.alloc(this._header.length - 4); - buffer.copy(this._recordData, 0, 8); - return this; - } - - /** @deprecated - Use serialize instead */ - override _doSerialize(): void { - this._header._gameMessageLength = 4 + this._recordData.length; - this._header.length = this._header._gameMessageLength + 4; - const buffer = Buffer.alloc(this._header.length); - let offset = 0; // offset is 0 - this._header.serialize().copy(buffer); - offset += this._header.size(); // offset is 8 - - this._recordData.copy(buffer, offset); - this.setBuffer(buffer); - } - - override serialize() { - this._header._gameMessageLength = 4 + this._recordData.length; - this._header.length = this._header._gameMessageLength + 4; - const buffer = Buffer.alloc(this._header.length); - let offset = 0; // offset is 0 - this._header.serialize().copy(buffer); - offset += this._header.size(); // offset is 8 - - this._recordData.copy(buffer, offset); - return buffer; - } - - override toString() { - return `GameMessage: ${this.serialize().toString("hex")})}`; - } -} - -/** - * A list message is a message that contains a list of items of a specific type. - * - * @mixin {SerializableMixin} - */ -export class ListMessage extends SerializedBuffer { - _msgNo: number; - _listCount: number; - _shouldExpectMoreMessages: boolean; - _list: SerializedBuffer[]; - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._listCount = 0; // 2 bytes - this._shouldExpectMoreMessages = false; // 1 byte - /** @type {SerializedBuffer[]} */ - this._list = []; // this.itemsType bytes each - } - - /** - * @param {SerializedBuffer} item - */ - add(item: SerializedBuffer) { - this._list.push(item); - this._listCount++; - } - - override serialize() { - let neededSize; - if (this._list.length === 0) { - neededSize = 5; - } else { - neededSize = 5 + this._list.length * this._list[0].size(); - } - const buffer = Buffer.alloc(neededSize); - let offset = 0; // offset is 0 - buffer.writeUInt16BE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeInt8(this._listCount, offset); - offset += 1; // offset is 3 - buffer.writeUInt8(this._shouldExpectMoreMessages ? 1 : 0, offset); - offset += 1; // offset is 4 - for (const item of this._list) { - item.serialize().copy(buffer, offset); - offset += item.size(); - } - // offset is now 4 + this._list.length * this._list[0].size() - return buffer; - } - - override size() { - return 5 + this._list.length * this._list[0].size(); - } - - override toString() { - return `ListMessage: msgNo=${this._msgNo} listCount=${this._listCount} shouldExpectMoreMessages=${this._shouldExpectMoreMessages} list=${this._list}`; - } -} - -export class MessageHeader extends SerializedBuffer { - _size: number; - _messageId: number; - _messageLength: number; - constructor() { - super(); - this._size = 4; - this._messageId = 0; // 4 bytes - this._messageLength = 0; // 4 bytes - } - - get messageId() { - return this._messageId; - } - - get messageLength() { - return this._messageLength; - } - - serializeSizeOf() { - return this._size; - } - - override size() { - return this._size; - } - - get id() { - return this._messageId; - } - - get length() { - return this._messageLength; - } - - /** - * @param {Buffer} buffer - * @returns {MessageHeader} - */ - deserialize(buffer: Buffer): MessageHeader { - this._messageId = buffer.readInt16BE(0); - this._messageLength = buffer.readInt16BE(2); - return this; - } - - override serialize() { - const buffer = Buffer.alloc(4); - buffer.writeInt16BE(this._messageId, 0); - buffer.writeInt16BE(this._messageLength, 2); - return buffer; - } - - /** - * @param {Buffer} buffer - * @returns {MessageHeader} - */ - override _doDeserialize(buffer: Buffer): MessageHeader { - return this.deserialize(buffer); - } - - override _doSerialize() { - return this.serialize(); - } - - override toString() { - return `MessageHeader: ${JSON.stringify({ - messageId: this._messageId, - messageLength: this._messageLength, - })}`; - } -} - -export class MessageBuffer extends SerializedBuffer { - _header: MessageHeader; - _buffer: Buffer; - constructor() { - super(); - this._header = new MessageHeader(); - this._buffer = Buffer.alloc(4); - } - - /** - * @param {number} id - The ID of the message - * @param {Buffer} buffer - The buffer to deserialize - * @returns {MessageBuffer} - */ - static createGameMessage(id: number, buffer: Buffer): MessageBuffer { - const message = new MessageBuffer(); - message._header._messageId = id; - message.buffer = buffer; - return message; - } - - get messageId() { - return this._header.messageId; - } - - get messageLength() { - return this._header.messageLength; - } - - override get data() { - return this._buffer; - } - - override set data(buffer) { - this.buffer = buffer; - } - - /** - * @param {Buffer} buffer - */ - set buffer(buffer: Buffer) { - // const log = getServerLogger({ module: "MessageBuffer" }); - // log.level = getServerConfiguration({}).logLevel ?? "info"; - - this._buffer = Buffer.alloc(buffer.length); - this._buffer = buffer; - this._header._messageLength = 4 + buffer.length; - // log.debug(`Message length: ${this._header._messageLength}`); - // log.debug(`Buffer length: ${this._buffer.length}`); - // Pad the buffer to a multiple of 8 bytes - // let extraBytes = 0; - // const x = (this._buffer.length + 4) % 8; - // extraBytes = 8 - x; - // log.debug(`Extra bytes: ${extraBytes}`); - // if (extraBytes !== 0) { - // this._buffer = Buffer.concat([ - // this._buffer, - // Buffer.alloc(extraBytes), - // ]); - // log.debug(`Buffer length: ${this._buffer.length}`); - this._header._messageLength = this._buffer.length + 4; - // log.debug(`Message length: ${this._header._messageLength}`); - // } - } - - /** @param {Buffer} buffer */ - override setBuffer(buffer: Buffer) { - return (this.buffer = buffer); - } - - get buffer() { - return this._buffer; - } - - serializeSizeOf() { - return 4 + this._buffer.length; - } - - /** - * @param {Buffer} buffer - * @returns {MessageBuffer} - */ - deserialize(buffer: Buffer): MessageBuffer { - this._header.deserialize(buffer.subarray(0, 8)); - if (buffer.length < 4 + this._header.messageLength) { - throw new ServerError( - `Buffer length ${buffer.length} is too short to deserialize`, - ); - } - this.buffer = buffer.subarray(4); - return this; - } - - override serialize() { - const buffer = Buffer.alloc(4 + this._buffer.length); - if (this.buffer.length < 0) { - throw new ServerError( - `Buffer length ${this.buffer.length} is too short to serialize`, - ); - } - if (this.messageId <= 0) { - throw new ServerError( - `Message ID ${this.messageId} is invalid to serialize`, - ); - } - this._header.serialize().copy(buffer); - this._buffer.copy(buffer, 4); - return buffer; - } - - override toString() { - return `MessageBuffer: ${JSON.stringify({ - header: this._header.toString(), - bufferLength: this._buffer.length, - buffer: this._buffer.toString("hex"), - })}`; - } - - asJSON() { - return { - header: this._header, - buffer: this._buffer.toString("hex"), - }; - } -} - -/** - * A server message is a message that is passed between the server and the client. It has an 11 byte header. @see {@link serverHeader} - * - * @mixin {SerializableMixin} - */ -export class OldServerMessage extends SerializedBuffer { - _header: serverHeader; - _msgNo: number; - constructor() { - super(); - this._header = new serverHeader(); - this._msgNo = 0; // 2 bytes - } - - override size(): number { - return this._header.length + this.data.length; - } - - /** - * @param {Buffer} buffer - * @returns {OldServerMessage} - */ - override _doDeserialize(buffer: Buffer): OldServerMessage { - this._header._doDeserialize(buffer); - this.setBuffer(buffer.subarray(this._header._size)); - if (this.data.length > 2) { - this._msgNo = this.data.readInt16LE(0); - } - return this; - } - - override serialize() { - const buffer = Buffer.alloc(this._header.length + 2); - this._header._doSerialize().copy(buffer); - this.data.copy(buffer, this._header._size); - return buffer; - } - - /** - * @param {Buffer} buffer - */ - override setBuffer(buffer: Buffer) { - super.setBuffer(buffer); - this._header.length = buffer.length + this._header._size - 2; - } - - updateMsgNo() { - this._msgNo = this.data.readInt16LE(0); - } - - override toString() { - return `ServerMessage: ${JSON.stringify({ - header: this._header.toString(), - data: this.data.toString("hex"), - })}`; - } -} diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 000000000..52f3f9ace --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,34 @@ +{ + "name": "rusty-motors-shared", + "version": "1.0.0", + "exports": { + ".": { + "import": "./index.js", + "require": "./index.js" + }, + "./test": { + "import": "./test/index.js", + "require": "./test/index.js" + } + }, + "type": "module", + "scripts": { + "check": "tsc", + "lint": "eslint .", + "format": "npm prettier --write .", + "test": "vitest run --coverage" + }, + "keywords": [], + "author": "", + "license": "AGPL-3.0", + "dependencies": { + "fastify": "^4.27.0", + "pino": "^9.0.0", + "pino-pretty": "^11.0.0", + "vitest": "^1.6.0" + }, + "directories": { + "test": "test" + }, + "description": "" +} diff --git a/packages/shared/src/BaseSerialized.ts b/packages/shared/src/BaseSerialized.ts index d0e85cd0c..8bbd40215 100644 --- a/packages/shared/src/BaseSerialized.ts +++ b/packages/shared/src/BaseSerialized.ts @@ -1,5 +1,3 @@ -import { ServerError } from "../errors/ServerError.js"; - export interface Serializable { data: Buffer; serialize(): Buffer; @@ -29,11 +27,11 @@ export class BaseSerialized implements Serializable { } serialize(): Buffer { - throw new ServerError("Not implemented"); + throw new Error("Not implemented"); } deserialize(buffer: Buffer): Serializable { - throw new ServerError("Not implemented"); + throw new Error("Not implemented"); } get length(): number { diff --git a/packages/shared/src/NetworkMessage.ts b/packages/shared/src/NetworkMessage.ts index 577d15b16..ce2279fb8 100644 --- a/packages/shared/src/NetworkMessage.ts +++ b/packages/shared/src/NetworkMessage.ts @@ -1,4 +1,3 @@ -import { ServerError } from "../errors/ServerError.js"; import { SerializedBuffer } from "./SerializedBuffer.js"; /** @@ -31,13 +30,13 @@ export class NetworkMessage extends SerializedBuffer { } override deserialize(buffer: Buffer) { if (buffer.length < 12) { - throw new ServerError( + throw new Error( `Unable to get header from buffer, got ${buffer.length}`, ); } const length = buffer.readUInt16BE(2); if (buffer.length < length) { - throw new ServerError( + throw new Error( `Expected buffer of length ${length}, got ${buffer.length}`, ); } diff --git a/packages/shared/src/RawMessage.ts b/packages/shared/src/RawMessage.ts index 22e2e5890..f6aabd751 100644 --- a/packages/shared/src/RawMessage.ts +++ b/packages/shared/src/RawMessage.ts @@ -1,4 +1,3 @@ -import { ServerError } from "../errors/ServerError.js"; import { SerializedBuffer } from "./SerializedBuffer.js"; /** @@ -19,13 +18,13 @@ export class RawMessage extends SerializedBuffer { } override deserialize(buffer: Buffer) { if (buffer.length < 4) { - throw new ServerError( + throw new Error( `Unable to get header from buffer, got ${buffer.length}`, ); } const length = buffer.readUInt16BE(2); if (buffer.length < length) { - throw new ServerError( + throw new Error( `Expected buffer of length ${length}, got ${buffer.length}`, ); } diff --git a/packages/shared/src/SerializedBuffer.ts b/packages/shared/src/SerializedBuffer.ts index 7ac437a15..175de2316 100644 --- a/packages/shared/src/SerializedBuffer.ts +++ b/packages/shared/src/SerializedBuffer.ts @@ -1,13 +1,9 @@ import { BaseSerialized } from "./BaseSerialized.js"; -import { ServerError } from "../errors/ServerError.js"; /** * A serialized buffer, prefixed with its 2-byte length. */ export class SerializedBuffer extends BaseSerialized { - constructor(data?: Buffer) { - super(data); - } override serialize() { try { const buffer = Buffer.alloc(2 + this._data.length); @@ -15,14 +11,14 @@ export class SerializedBuffer extends BaseSerialized { this._data.copy(buffer, 2); return buffer; } catch (error) { - throw ServerError.fromUnknown(error, "Unable to serialize buffer"); + throw new Error(`Unable to serialize buffer: ${(error as Error).message}`); } } override deserialize(buffer: Buffer) { try { const length = buffer.readUInt16BE(0); if (buffer.length < 2 + length) { - throw new ServerError( + throw new Error( `Expected buffer of length ${2 + length}, got ${ buffer.length }`, @@ -31,10 +27,7 @@ export class SerializedBuffer extends BaseSerialized { this._data = buffer.subarray(2, 2 + length); return this; } catch (error) { - throw ServerError.fromUnknown( - error, - "Unable to deserialize buffer", - ); + throw Error(`Unable to deserialize buffer: ${(error as Error).message}`); } } } diff --git a/packages/shared/src/ServerMessage.ts b/packages/shared/src/ServerMessage.ts index 852a4191d..4a576e084 100644 --- a/packages/shared/src/ServerMessage.ts +++ b/packages/shared/src/ServerMessage.ts @@ -1,4 +1,3 @@ -import { ServerError } from "../errors/ServerError.js"; import { SerializedBuffer } from "./SerializedBuffer.js"; class HeaderShim { @@ -49,13 +48,13 @@ export class ServerMessage extends SerializedBuffer { } override deserialize(buffer: Buffer) { if (buffer.length < 11) { - throw new ServerError( + throw new Error( `Unable to get header from buffer, got ${buffer.length}`, ); } const length = buffer.readUInt16LE(0); if (buffer.length < length) { - throw new ServerError( + throw new Error( `Expected buffer of length ${length}, got ${buffer.length}`, ); } diff --git a/packages/gateway/src/encryption.ts b/packages/shared/src/encryption.ts similarity index 66% rename from packages/gateway/src/encryption.ts rename to packages/shared/src/encryption.ts index 7c9f576a3..c7b440253 100644 --- a/packages/gateway/src/encryption.ts +++ b/packages/shared/src/encryption.ts @@ -14,9 +14,50 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -import { createCipheriv, createDecipheriv, getCiphers } from "node:crypto"; -import { McosEncryptionPair } from "../../shared/State.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; +import { Cipher, Decipher, createCipheriv, createDecipheriv, getCiphers } from "node:crypto"; + + +/** + * @external crypto + * @see {@link https://nodejs.org/api/crypto.html} + */ + +/** + * A pair of encryption ciphers. + */ +export class McosEncryptionPair { + _cipher: Cipher; + _decipher: Decipher; + /** + * Create a new encryption pair. + * + * This function creates a new encryption pair. It is used to encrypt and + * decrypt data sent to and from the client. + * + * @param {module:crypto.Cipher} cipher The cipher to use for encryption. + * @param {module:crypto.Decipher} decipher The decipher to use for decryption. + */ + constructor(cipher: Cipher, decipher: Decipher) { + this._cipher = cipher; + this._decipher = decipher; + } + + /** + * @param {Buffer} data The data to encrypt. + * @returns {Buffer} The encrypted data. + */ + encrypt(data: Buffer): Buffer { + return this._cipher.update(data); + } + + /** + * @param {Buffer} data The data to decrypt. + * @returns {Buffer} The decrypted data. + */ + decrypt(data: Buffer): Buffer { + return this._decipher.update(data); + } +} /** * This function creates a new encryption pair for use with the game server @@ -26,8 +67,7 @@ import { ServerError } from "../../shared/errors/ServerError.js"; */ export function createCommandEncryptionPair(key: string): McosEncryptionPair { if (key.length < 16) { - const err = new ServerError("Key too short"); - throw err; + throw Error(`Key too short: ${key}`); } const sKey = key.slice(0, 16); @@ -57,8 +97,7 @@ export function createCommandEncryptionPair(key: string): McosEncryptionPair { */ export function createDataEncryptionPair(key: string): McosEncryptionPair { if (key.length < 16) { - const err = new ServerError("Key too short"); - throw err; + throw Error(`Key too short: ${key}`); } const stringKey = Buffer.from(key, "hex"); @@ -79,11 +118,9 @@ export function createDataEncryptionPair(key: string): McosEncryptionPair { export function verifyLegacyCipherSupport() { const cipherList = getCiphers(); if (!cipherList.includes("des-cbc")) { - const err = new ServerError("DES-CBC cipher not available"); - throw err; + throw Error("DES-CBC cipher not available"); } if (!cipherList.includes("rc4")) { - const err = new ServerError("RC4 cipher not available"); - throw err; + throw Error("RC4 cipher not available"); } } diff --git a/packages/shared/src/log.ts b/packages/shared/src/log.ts new file mode 100644 index 000000000..db575e81a --- /dev/null +++ b/packages/shared/src/log.ts @@ -0,0 +1,134 @@ +import * as P from "pino"; +import type { TServerLogger } from "./types.js"; + +const DEFAULT_LOG_LEVEL = "trace"; + +export type ServerLoggerLevels = + | "fatal" + | "error" + | "warn" + | "info" + | "debug" + | "trace" + | "silent"; + +type ServerLoggerOptions = { + level: ServerLoggerLevels; + name?: string; +}; + +/** + * @static + * @property {ServerLogger} instance + */ +export class ServerLogger implements TServerLogger { + logger: P.Logger; + static instance: ServerLogger; + private name: string; + private oldName: string = ""; + /** + * Creates an instance of ServerLogger. + * @param {ServerLoggerOptions} options + */ + constructor(options?: ServerLoggerOptions) { + this.name = options?.name || "server"; + const level = DEFAULT_LOG_LEVEL; + this.logger = P.pino({ + name: this.name, + level, + transport: { + targets: [ + { + target: "pino-pretty", + options: { + colorize: true, + ignore: "pid,hostname", + }, + level: "trace", + }, + { + target: "pino/file", + options: { + destination: "server.log", + append: false, + }, + level: "trace", + }, + ], + }, + }); + ServerLogger.instance = this; + } + + /** + * @param {string} message + */ + fatal(message: string) { + this.logger.error(message); + } + + /** + * @param {string} message + */ + error(message: string) { + this.logger.error(message); + } + + /** + * @param {string} message + */ + warn(message: string) { + this.logger.error(message); + } + + /** + * @param {string} message + */ + info(message: string) { + this.logger.info(message); + } + + /** + * @param {string} message + */ + debug(message: string) { + this.logger.debug(message); + } + + /** + * @param {string} message + */ + trace(message: string) { + this.logger.trace(message); + } + + setName(name: string) { + this.oldName = this.name; + this.logger = this.logger.child({ name }); + } + + getName() { + return this.name; + } + + resetName() { + this.logger = this.logger.child({ name: this.oldName }); + } +} + +/** + * Get a logger instance + * + * @param {ServerLoggerOptions} options + * @return {ServerLogger} + */ +export function getServerLogger(options?: ServerLoggerOptions): TServerLogger { + if (typeof ServerLogger.instance === "undefined") { + ServerLogger.instance = new ServerLogger(options); + } + + const child = ServerLogger.instance; + return child; +} + +export const log = getServerLogger(); diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts new file mode 100644 index 000000000..caeda66b3 --- /dev/null +++ b/packages/shared/src/types.ts @@ -0,0 +1,80 @@ +import type { Socket } from "node:net"; +import type { Configuration } from "../Configuration"; +import type { KeypressEvent } from ".."; + +export type TServerLogger = { + info: (message: string) => void; + error: (message: string) => void; + fatal: (message: string) => void; + warn: (message: string) => void; + debug: (message: string) => void; + trace: (message: string) => void; + setName: (name: string) => void; + getName: () => string; + resetName: () => void; +}; + +export interface UserRecordMini { + contextId: string; + customerId: number; + userId: number; +} + + +export type TConsoleThread = { + parentThread: TGateway; + handleKeypressEvent: (key: KeypressEvent) => void; + init: () => void; + run: () => void; + stop: () => void; +}; + +export interface TScheduledThread { + parentThread: TGateway; + stop(): void; +} + +export type TGatewayOptions = { + config?: Configuration; + log: TServerLogger; + backlogAllowedCount?: number; + listeningPortList?: number[]; + socketConnectionHandler?: ({ + incomingSocket, + log, + }: { + incomingSocket: Socket; + log: TServerLogger; + }) => void; +}; + +export type TGateway = { + config: Configuration; + log: TServerLogger; + timer: NodeJS.Timeout | null; + loopInterval: number; + status: string; + consoleEvents: string[]; + backlogAllowedCount: number; + listeningPortList: number[]; + servers: import("node:net").Server[]; + socketconnection: ({ + incomingSocket, + log, + }: { + incomingSocket: Socket; + log: TServerLogger; + }) => void; + webServer: import("fastify").FastifyInstance | undefined; + readThread: TConsoleThread | undefined; + scheduledThread: TScheduledThread | undefined; + start: () => Promise; + restart: () => Promise; + exit: () => Promise; + stop: () => Promise; + help: () => void; + run: () => void; + handleReadThreadEvent: (event: string) => void; + init: () => Promise; + shutdown: () => void; +}; diff --git a/packages/shared/src/utils.ts b/packages/shared/src/utils.ts new file mode 100644 index 000000000..e0395cb64 --- /dev/null +++ b/packages/shared/src/utils.ts @@ -0,0 +1,8 @@ + +export function now32(): number { + return Math.floor(Date.now() / 1000); +} + +export function to64BitTime(time: number): number { + return time * 1000; +} diff --git a/packages/shared/structs.ts b/packages/shared/structs.ts index e4c3519a8..8fb8271b7 100644 --- a/packages/shared/structs.ts +++ b/packages/shared/structs.ts @@ -1,5 +1,3 @@ -import { ServerError } from "./errors/ServerError.js"; - export interface Serialized { serialize(): Buffer; deserialize(buf: Buffer): void; @@ -44,7 +42,7 @@ function deserializeDWord(buff: Buffer) { function deserializeString(buf: Buffer) { const size = buf.readUInt16LE(); if (size > buf.length - 2) { - throw new ServerError("Size is bigger than the buffer length - 2"); + throw new Error("Size is bigger than the buffer length - 2"); } const str = buf.toString("utf8", 2); @@ -102,20 +100,14 @@ export class SerializedBase implements Serialized { // eslint-disable-next-line @typescript-eslint/no-unused-vars deserialize(_buff: Buffer): Buffer { - throw new ServerError( - "This method must be implemented by child classes", - ); + throw new Error("This method must be implemented by child classes"); } serialize(): Buffer { - throw new ServerError( - "This method must be implemented by child classes", - ); + throw new Error("This method must be implemented by child classes"); } sizeOf(): number { - throw new ServerError( - "This method must be implemented by child classes", - ); + throw new Error("This method must be implemented by child classes"); } } @@ -130,16 +122,16 @@ export class UserStatus extends SerializedBase implements Serialized { v2P1368 = 0; // Metrics Id (not used) 64 bytes override sizeOf(): number { - throw new ServerError("Not yet implemented"); + throw new Error("Not yet implemented"); } override serialize(): Buffer { - throw new ServerError("Not yet implemented"); + throw new Error("Not yet implemented"); } // eslint-disable-next-line @typescript-eslint/no-unused-vars override deserialize(_buff: Buffer): Buffer { - throw new ServerError("Not yet implemented"); + throw new Error("Not yet implemented"); } } @@ -164,7 +156,7 @@ export class LoginRequestReply extends SerializedBase implements Serialized { _doSerialize() { if (this.header === null) { - throw new ServerError("Header is null"); + throw new Error("Header is null"); } let buf = this.header.serialize(); buf = Buffer.concat([buf, serializeString(this.sessionKey)]); @@ -174,7 +166,7 @@ export class LoginRequestReply extends SerializedBase implements Serialized { _serializeSizeOf() { if (this.header === null) { - throw new ServerError("Header is null"); + throw new Error("Header is null"); } let size = this.header.sizeOf(); size += sizeOfString(this.sessionKey); @@ -203,7 +195,7 @@ export class Login extends LoginRequestReply implements Serialized { override serialize() { if (this.header === null) { - throw new ServerError("Header is null"); + throw new Error("Header is null"); } let buf = this.header.serialize(); buf = Buffer.concat([ @@ -219,7 +211,7 @@ export class Login extends LoginRequestReply implements Serialized { serializeSizeOf() { if (this.header === null) { - throw new ServerError("Header is null"); + throw new Error("Header is null"); } let size = this.header.sizeOf(); diff --git a/packages/shared/test/index.ts b/packages/shared/test/index.ts new file mode 100644 index 000000000..5f85ea2ec --- /dev/null +++ b/packages/shared/test/index.ts @@ -0,0 +1,16 @@ +import { vi } from "vitest"; +import type { TServerLogger } from ".."; + +export function mockLogger(): TServerLogger { + return { + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + debug: vi.fn(), + trace: vi.fn(), + fatal: vi.fn(), + getName: vi.fn(), + resetName: vi.fn(), + setName: vi.fn(), + }; +} diff --git a/packages/shared/utils.js b/packages/shared/utils.js deleted file mode 100644 index d7f752fc7..000000000 --- a/packages/shared/utils.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Convert to zero padded hex - * - * @export - * @param {Buffer} data - * @return {string} - */ - -export function toHex(data) { - /** @type {string[]} */ - const bytes = []; - data.forEach((b) => { - bytes.push(b.toString(16).toUpperCase().padStart(2, "0")); - }); - return bytes.join(""); -} diff --git a/packages/shared/vite.config.ts b/packages/shared/vite.config.ts new file mode 100644 index 000000000..fb851b55a --- /dev/null +++ b/packages/shared/vite.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + coverage: { + enabled: true, + all: true, + exclude: [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "bin/**/*.ts", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", + ], + reporter: ["lcov", "text", "cobertura"], + }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", + }, +}); diff --git a/packages/transactions/src/ArcadeCarMessage.ts b/packages/transactions/src/ArcadeCarMessage.ts deleted file mode 100644 index 547c3e1b5..000000000 --- a/packages/transactions/src/ArcadeCarMessage.ts +++ /dev/null @@ -1,99 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -/** - * A message listing the lobbies - * This is the body of a MessageNode - */ -export class ArcadeCarMessage extends SerializedBuffer { - _msgNo: number; - _carCount: number; - _shouldExpectMoreMessages: boolean; - _carList: ArcadeCarInfo[]; - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._carCount = 0; // 1 bytes - this._shouldExpectMoreMessages = false; // 1 byte - /** @type {ArcadeCarInfo[]} */ - this._carList = []; // 8 bytes each - } - - override size() { - return 5 + this._carList.length * 8; - } - - /** - * Add a lobby to the list - * @param {ArcadeCarInfo} lobby - */ - addCar(lobby: ArcadeCarInfo) { - this._carList.push(lobby); - this._carCount++; - } - - override serialize() { - const neededSize = 5 + this._carList.length * 8; - const buffer = Buffer.alloc(neededSize); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeUInt16LE(this._carCount, offset); - offset += 2; // offset is 4 - buffer.writeInt8(this._shouldExpectMoreMessages ? 1 : 0, offset); - offset += 1; // offset is 5 - for (const car of this._carList) { - car.serialize().copy(buffer, offset); - offset += car.size(); - } - // offset is now 4 + this._lobbyList.length * 563 - return buffer; - } - - override toString() { - return `ArcadeCarMessage: msgNo=${this._msgNo} careCount=${this._carCount} shouldExpectMoreMessages=${this._shouldExpectMoreMessages} cars=${this._carList.length}`; - } -} - -export class ArcadeCarInfo extends SerializedBuffer { - _brandedPartId: number; - _lobbyId: number; - constructor() { - super(); - this._brandedPartId = 0; // 4 bytes - this._lobbyId = 0; // 4 bytes - } - - override size() { - return 8; - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; // offset is 0 - buffer.writeUInt32LE(this._brandedPartId, offset); - offset += 4; // offset is 4 - buffer.writeUInt32LE(this._lobbyId, offset); - // offset is 8 - return buffer; - } - - override toString() { - return `ArcadeCarInfo: brandedPartId=${this._brandedPartId} lobbyId=${this._lobbyId}`; - } -} diff --git a/packages/transactions/src/EntryFeePurseMessage.ts b/packages/transactions/src/EntryFeePurseMessage.ts deleted file mode 100644 index 64ffad93a..000000000 --- a/packages/transactions/src/EntryFeePurseMessage.ts +++ /dev/null @@ -1,123 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { ServerError } from "../../shared/errors/ServerError.js"; -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -/** - * A message listing the entry fees and purses for each entry fee - * This is the body of a MessageNode - */ -export class EntryFeePurseMessage extends SerializedBuffer { - _msgNo: number; - _numberOfPurseEntries: number; - _shouldExpectMoreMessages: boolean; - _purseEntries: PurseEntry[]; - constructor() { - super(); - this._msgNo = 408; // 2 bytes - this._numberOfPurseEntries = 0; // 1 bytes - this._shouldExpectMoreMessages = false; // 1 byte - /** @type {PurseEntry[]} */ - this._purseEntries = []; // 8 bytes each - } - - override size() { - return 5 + this._purseEntries.length * 8; - } - - /** - * Add a lobby to the list - * @param {PurseEntry} lobby - */ - addEntry(purseEntry: PurseEntry) { - this._purseEntries.push(purseEntry); - this._numberOfPurseEntries++; - } - - override serialize() { - const neededSize = 5 + this._purseEntries.length * 563; - const buffer = Buffer.alloc(neededSize); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeUInt16LE(this._numberOfPurseEntries, offset); - offset += 2; // offset is 4 - buffer.writeUInt8(this._shouldExpectMoreMessages ? 1 : 0, offset); - offset += 1; // offset is 5 - for (const entry of this._purseEntries) { - entry.serialize().copy(buffer, offset); - offset += entry.size(); - } - // offset is now 4 + this._lobbyList.length * 563 - return buffer; - } - - override toString() { - return `EntryFeePurseMessage: msgNo=${this._msgNo} numberOfPurseEntries=${this._numberOfPurseEntries} shouldExpectMoreMessages=${this._shouldExpectMoreMessages} purseEntries=${this._purseEntries}`; - } -} - -export class PurseEntry extends SerializedBuffer { - _entryFee: number; // 4 bytes - _purse: number; // 4 bytes - constructor() { - super(); - this._entryFee = 0; - this._purse = 0; - } - - override size() { - return 8; - } - - /** - * Deserialize the data - * - * @param {Buffer} data - */ - deserialize(data: Buffer) { - if (data.length !== this.size()) { - throw new ServerError( - `PurseEntry.deserialize() expected ${this.size()} bytes but got ${ - data.length - } bytes`, - ); - } - let offset = 0; - this._entryFee = data.readUInt32LE(offset); - offset += 4; // offset is 4 - this._purse = data.readUInt32LE(offset); - // offset is 8 - - return this; - } - - override serialize() { - const buf = Buffer.alloc(this.size()); - let offset = 0; // offset is 0 - buf.writeUInt32LE(this._entryFee, offset); - offset += 4; // offset is 4 - buf.writeUInt32LE(this._purse, offset); - // offset is 8 - - return buf; - } - - override toString() { - return `PurseEntry: entryFee=${this._entryFee} purse=${this._purse}`; - } -} diff --git a/packages/transactions/src/GameUrlsMessage.ts b/packages/transactions/src/GameUrlsMessage.ts deleted file mode 100644 index b5cc62713..000000000 --- a/packages/transactions/src/GameUrlsMessage.ts +++ /dev/null @@ -1,102 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { - SerializedBuffer, - serializeString, -} from "../../shared/messageFactory.js"; - -/** - * A message listing the lobbies - * This is the body of a MessageNode - */ -export class GameUrlsMessage extends SerializedBuffer { - _msgNo: number; - _urlCount: number; - _shouldExpectMoreMessages: boolean; - _urlList: GameUrl[]; - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._urlCount = 0; // 2 bytes - this._shouldExpectMoreMessages = false; // 1 byte - /** @type {GameUrl[]} */ - this._urlList = []; // 563 bytes each - } - - override size() { - return 5 + this._urlList.length * 563; - } - - /** - * Add a lobby to the list - * @param {GameUrl} lobby - */ - addURL(lobby: GameUrl) { - this._urlList.push(lobby); - this._urlCount++; - } - - override serialize() { - const neededSize = 4 + this._urlList.length * 563; - const buffer = Buffer.alloc(neededSize); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeUInt16LE(this._urlCount, offset); - offset += 2; // offset is 4 - buffer.writeUInt8(this._shouldExpectMoreMessages ? 1 : 0, offset); - offset += 1; // offset is 5 - for (const url of this._urlList) { - url.serialize().copy(buffer, offset); - offset += url.size(); - } - // offset is now 4 + this._lobbyList.length * 563 - return buffer; - } - - override toString() { - return `GameUrlsMessage: msgNo=${this._msgNo} urlCount=${this._urlCount} shouldExpectMoreMessages=${this._shouldExpectMoreMessages} urlList=${this._urlList}`; - } -} - -export class GameUrl extends SerializedBuffer { - _urlId: number; - urlRef: string; - constructor() { - super(); - this._urlId = 0; // 4 bytes - this.urlRef = ""; // 4 + this.urlRef.length bytes - } - - override size() { - return 8 + this.urlRef.length; - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; // offset is 0 - buffer.writeUInt32LE(this._urlId, offset); - offset += 4; // offset is 4 - serializeString(this.urlRef, buffer, offset); - - return buffer; - } - - override toString() { - return `GameUrl: urlId=${this._urlId} urlRef=${this.urlRef}`; - } -} diff --git a/packages/transactions/src/GenericReplyMessage.ts b/packages/transactions/src/GenericReplyMessage.ts deleted file mode 100644 index b37b18ec4..000000000 --- a/packages/transactions/src/GenericReplyMessage.ts +++ /dev/null @@ -1,176 +0,0 @@ -// WORD msgNo; // typically MC_SUCCESS or MC_FAILURE -// WORD msgReply; // message # being replied to (ex: MC_PURCHASE_STOCK_CAR) -// DWORD result; // specific to the message sent, often the reason for a failure -// DWORD data; // specific to the message sent (but usually 0) -// DWORD data2; -/** - * @class - * @property {number} msgNo - * @property {number} toFrom - * @property {number} appId - * @property {number} msgReply - * @property {Buffer} result - * @property {Buffer} data - * @property {Buffer} data2 - */ - -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -export class GenericReply extends SerializedBuffer { - msgNo: number; - msgReply: number; - result: Buffer; - data2: Buffer; - rawBuffer!: Buffer; - constructor() { - super(); - this.msgNo = 0; // 2 bytes (ethier MC_SUCCESS (0x101) or MC_FAILURE(0x102)) - this.msgReply = 0; // 2 bytes (message # being replied to (ex: MC_PURCHASE_STOCK_CAR)) - this.result = Buffer.alloc(4); // 4 bytes (specific to the message sent, often the reason for a failure) - this.setBuffer(Buffer.alloc(4)); // 4 bytes (specific to the message sent (but usually 0)) - this.data2 = Buffer.alloc(4); // 4 bytes (specific to the message sent (but usually 0)) - } - - override serialize() { - this.rawBuffer = Buffer.alloc(16); - this.rawBuffer.writeInt16LE(this.msgNo, 0); - this.rawBuffer.writeInt16LE(this.msgReply, 2); - this.result.copy(this.rawBuffer, 4); - this.data.copy(this.rawBuffer, 8); - this.data2.copy(this.rawBuffer, 12); - return this.rawBuffer; - } - - asJSON() { - return { - msgNo: this.msgNo, - msgReply: this.msgReply, - result: this.result.toString("hex"), - data: this.data.toString("hex"), - data2: this.data2.toString("hex"), - }; - } - - override toString() { - return this.serialize().toString("hex"); - } -} - -export class GenericReplyMessage extends SerializedBuffer { - msgNo: number; - toFrom: number; - appId: number; - msgReply: number; - result: Buffer; - data2: Buffer; - rawBuffer: Buffer; - /** - * One of - * - * * MC_SUCCESS = 101 : Used with GenericReply structure to indicate that the request succeeded - * - * * MC_FAILED = 102 : Used with GenericReply structure to indicate that the request failed - * - * * MC_GENERIC_REPLY : Used with GenericReply structure for messages that return data - */ - constructor() { - super(); - this.msgNo = 0; // 2 bytes - this.toFrom = 0; // 2 bytes - this.appId = 0; // 2 bytes - this.msgReply = 0; // 2 bytes - this.result = Buffer.alloc(4); // 4 bytes - this.setBuffer(Buffer.alloc(4)); // 4 bytes - this.data2 = Buffer.alloc(4); // 4 bytes - this.rawBuffer = Buffer.alloc(0); - } - - /** - * Setter data - * @param {Buffer} value - */ - setData(value: Buffer) { - this.setBuffer(value); - } - - /** - * Setter data2 - * @param {Buffer} value - */ - setData2(value: Buffer) { - this.data2 = value; - } - - /** - * - * @param {Buffer} buffer - * @return {GenericReplyMessage} - */ - static deserialize(buffer: Buffer): GenericReplyMessage { - const node = new GenericReplyMessage(); - node.rawBuffer = buffer; - try { - node.msgNo = buffer.readInt16LE(0); - } catch (error) { - if (error instanceof RangeError) { - // This is likeley not an MCOTS packet, ignore - } else { - const err = new TypeError( - `[GenericReplyMsg] Unable to read msgNo from ${buffer.toString( - "hex", - )}: ${String(error)}`, - ); // skipcq: JS-0378 - throw err; - } - } - - node.msgReply = buffer.readInt16LE(2); - node.result = buffer.subarray(4, 8); - node.setBuffer(buffer.subarray(8, 12)); - node.data2 = buffer.subarray(12); - return node; - } - - /** - * @override - * @return {Buffer} - */ - override serialize(): Buffer { - const packet = Buffer.alloc(114); // 16 bytes - let offset = 0; - packet.writeInt16LE(this.msgNo, offset); - offset += 2; - // packet.writeInt16LE(this.msgReply, offset); - // offset += 2; - this.result.copy(packet, offset); - offset += 4; - this.data.copy(packet, offset); - offset += 4; - this.data2.copy(packet, offset); - // offset is now 16 - return packet; - } - - /** - * - * @param {Buffer} buffer - */ - setResult(buffer: Buffer) { - this.result = buffer; - } - - /** - * DumpPacket - * @return {string} - */ - dumpPacket(): string { - return `GenericReply', - ${JSON.stringify({ - msgNo: this.msgNo, - msgReply: this.msgReply, - result: this.result.toString("hex"), - data: this.data.toString("hex"), - tdata2: this.data2.toString("hex"), - })}`; - } -} diff --git a/packages/transactions/src/GenericRequestMessage.ts b/packages/transactions/src/GenericRequestMessage.ts deleted file mode 100644 index cf15107fa..000000000 --- a/packages/transactions/src/GenericRequestMessage.ts +++ /dev/null @@ -1,74 +0,0 @@ -// WORD msgNo; // typically MC_SUCCESS or MC_FAILURE -// DWORD data; // specific to the message sent (but usually 0) -// DWORD data2; -/** - * - * - * @class - * @property {number} msgNo - * @property {Buffer} data - * @property {Buffer} data2 - * @property {string} serviceName - */ - -import { MessageNode } from "../../shared/MessageNode.js"; - -export class GenericRequestMessage extends MessageNode { - data2: Buffer; - /** - * - */ - constructor() { - super(); - this.msgNo = 0; // 2 bytes - this.data = Buffer.alloc(4); // 4 bytes - this.data2 = Buffer.alloc(4); // 4 bytes - } - - /** - * @override - * @param {Buffer} buffer - */ - override deserialize(buffer: Buffer) { - try { - this.msgNo = buffer.readInt16LE(0); - } catch (error) { - if (error instanceof RangeError) { - // This is likeley not an MCOTS packet, ignore - } else { - const err = new TypeError( - `[GenericRequestMsg] Unable to read msgNo from ${buffer.toString( - "hex", - )}: ${String(error)}`, // skipcq: JS-0378 - ); - throw err; - } - } - - this.data = buffer.subarray(2, 6); - this.data2 = buffer.subarray(6); - } - - /** - * @override - * @return {Buffer} - */ - override serialize(): Buffer { - const packet = Buffer.alloc(16); - packet.writeInt16LE(this.msgNo, 0); - this.data.copy(packet, 2); - this.data2.copy(packet, 6); - return packet; - } - - /** - * @override - */ - override toString() { - return `GenericRequest ${JSON.stringify({ - msgNo: this.msgNo, - data: this.data.toString("hex"), - data2: this.data2.toString("hex"), - })}`; - } -} diff --git a/packages/transactions/src/LobbyMessage.ts b/packages/transactions/src/LobbyMessage.ts deleted file mode 100644 index 442636945..000000000 --- a/packages/transactions/src/LobbyMessage.ts +++ /dev/null @@ -1,729 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { ServerError } from "../../shared/errors/ServerError.js"; -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -/** - * A message listing the lobbies - * This is the body of a MessageNode - */ -export class LobbyMessage extends SerializedBuffer { - _msgNo: number; - _lobbyCount: number; - _shouldExpectMoreMessages: boolean; - _lobbyList: LobbyInfo[]; - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._lobbyCount = 0; // 1 bytes - this._shouldExpectMoreMessages = false; // 1 byte - /** @type {LobbyInfo[]} */ - this._lobbyList = []; // 563 bytes each - } - - override size() { - return 5 + this._lobbyList.length * 563; - } - - /** - * Add a lobby to the list - * @param {LobbyInfo} lobby - */ - addLobby(lobby: LobbyInfo) { - this._lobbyList.push(lobby); - this._lobbyCount++; - } - - override serialize() { - const neededSize = 5 + this._lobbyList.length * 563; - const buffer = Buffer.alloc(neededSize); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeUInt16LE(this._lobbyCount, offset); - offset += 2; // offset is 4 - buffer.writeUInt8(this._shouldExpectMoreMessages ? 1 : 0, offset); - offset += 1; // offset is 5 - for (const lobby of this._lobbyList) { - lobby.serialize().copy(buffer, offset); - offset += lobby.size(); - } - // offset is now 4 + this._lobbyList.length * 563 - return buffer; - } - - override toString() { - return `LobbyMessage: msgNo=${this._msgNo} lobbyCount=${this._lobbyCount} shouldExpectMoreMessages=${this._shouldExpectMoreMessages} lobbies=${this._lobbyList.length}`; - } -} - -export class LobbyInfo extends SerializedBuffer { - _lobbyId: number; - _raceTypeId: number; - _terfId: number; - _lobbyName: string; - _turfName: string; - _clientArt: string; - _elementId: number; - _turfLengthId: number; - _startSlice: number; - _endSlice: number; - _dragStageLeft: number; - _dragStageRight: number; - _dragStagingSlice: number; - _gridSpreadFactor: number; - _linear: number; - _minNumberPlayers: number; - _maxNumberPlayers: number; - _defaultNumberPlayers: number; - _numberOfPlayersEnabled: boolean; - _minLaps: number; - _maxLaps: number; - _defaultNumberOfLaps: number; - _numberOfLapsEnabled: boolean; - _minNumberRounds: number; - _maxNumberRounds: number; - _defaultNumberRounds: number; - _numberOfRoundsEnabled: boolean; - _defaultWeather: number; - _weatherEnabled: boolean; - _defaultNight: number; - _nightEnabled: boolean; - _defaultBackwards: boolean; - _backwardsEnabled: boolean; - _defaultTraffic: boolean; - _trafficEnabled: boolean; - _defaultDriverAI: boolean; - _driverAIEnabled: boolean; - _topDog: string; - _turfOwner: string; - _qualifyingTime: number; - _numberOfClubPlayers: number; - _numberofClubLaps: number; - _numberOfClubRounds: number; - _clubNight: number; - _clubWeather: number; - _clubBackwards: number; - _bestLapTime: number; - _lobbyDifficulty: number; - _timetrialPointsToQualify: number; - _timetrialCashToQualify: number; - _timetrialPointsBonusIncrements: number; - _timetrialCashBonusIncrements: number; - _timetrialTimeIncrements: number; - _timetrial1stPlaceVictoryPoints: number; - _timetrial1stPlaceVictoryCash: number; - _timetrial2ndPlaceVictoryPoints: number; - _timetrial2ndPlaceVictoryCash: number; - _timetrial3rdPlaceVictoryPoints: number; - _timetrial3rdPlaceVictoryCash: number; - _minLevel: number; - _minResetSlice: number; - _maxResetSlice: number; - _newbieFlag: number; - _driverHelmetFlag: number; - _clubMaxNumberPlayers: number; - _clubMinNumberPlayers: number; - _clubNumberPlayersDefault: number; - _minNumberOfClubs: number; - _maxNumberOfClubs: number; - _racePointsFactor: number; - _maxBodyClass: number; - _maxPowerClass: number; - _partsPrizeMax: number; - _partsPrizeWon: number; - _clubLogoId: number; - _teamTrialsWeatherFlag: boolean; - _teamTrialsNightFlag: boolean; - _teamTrialsBackwardsFlag: boolean; - _teamTrialsNumberLaps: number; - _teamTrialsBaseTimeUnderPar: number; - _raceCashFactor: number; - constructor() { - super(); - this._lobbyId = 0; // 4 bytes - this._raceTypeId = 0; // 4 bytes - this._terfId = 0; // 4 bytes - this._lobbyName = ""; // 32 bytes - this._turfName = ""; // 256 bytes - this._clientArt = ""; // 11 bytes - this._elementId = 0; // 4 bytes - this._turfLengthId = 0; // 4 bytes - this._startSlice = 0; // 4 bytes - this._endSlice = 0; // 4 bytes - this._dragStageLeft = 0; // 4 bytes - this._dragStageRight = 0; // 4 bytes - this._dragStagingSlice = 0; // 4 bytes - this._gridSpreadFactor = 0; // 4 bytes - this._linear = 0; // 2 bytes - this._minNumberPlayers = 0; // 2 bytes - this._maxNumberPlayers = 0; // 2 bytes - this._defaultNumberPlayers = 0; // 2 bytes - this._numberOfPlayersEnabled = false; // 2 bytes - this._minLaps = 0; // 2 bytes - this._maxLaps = 0; // 2 bytes - this._defaultNumberOfLaps = 0; // 2 bytes - this._numberOfLapsEnabled = false; // 2 bytes - this._minNumberRounds = 0; // 2 bytes - this._maxNumberRounds = 0; // 2 bytes - this._defaultNumberRounds = 0; // 2 bytes - this._numberOfRoundsEnabled = false; // 2 bytes - this._defaultWeather = 0; // 2 bytes - this._weatherEnabled = false; // 2 bytes - this._defaultNight = 0; // 2 bytes - this._nightEnabled = false; // 2 bytes - this._defaultBackwards = false; // 2 bytes - this._backwardsEnabled = false; // 2 bytes - this._defaultTraffic = false; // 2 bytes - this._trafficEnabled = false; // 2 bytes - this._defaultDriverAI = false; // 2 bytes - this._driverAIEnabled = false; // 2 bytes - this._topDog = ""; // 13 bytes - this._turfOwner = ""; // 33 bytes - this._qualifyingTime = 0; // 4 bytes - this._numberOfClubPlayers = 0; // 4 bytes - this._numberofClubLaps = 0; // 4 bytes - this._numberOfClubRounds = 0; // 4 bytes - this._clubNight = 0; // 2 bytes - this._clubWeather = 0; // 2 bytes - this._clubBackwards = 0; // 2 bytes - this._bestLapTime = 0; // 4 bytes - this._lobbyDifficulty = 0; // 4 bytes - this._timetrialPointsToQualify = 0; // 4 bytes - this._timetrialCashToQualify = 0; // 4 bytes - this._timetrialPointsBonusIncrements = 0; // 4 bytes - this._timetrialCashBonusIncrements = 0; // 4 bytes - this._timetrialTimeIncrements = 0; // 4 bytes - this._timetrial1stPlaceVictoryPoints = 0; // 4 bytes - this._timetrial1stPlaceVictoryCash = 0; // 4 bytes - this._timetrial2ndPlaceVictoryPoints = 0; // 4 bytes - this._timetrial2ndPlaceVictoryCash = 0; // 4 bytes - this._timetrial3rdPlaceVictoryPoints = 0; // 4 bytes - this._timetrial3rdPlaceVictoryCash = 0; // 4 bytes - this._minLevel = 0; // 2 bytes - this._minResetSlice = 0; // 4 bytes - this._maxResetSlice = 0; // 4 bytes - this._newbieFlag = 0; // 2 bytes - this._driverHelmetFlag = 0; // 2 bytes - this._clubMaxNumberPlayers = 0; // 2 bytes - this._clubMinNumberPlayers = 0; // 2 bytes - this._clubNumberPlayersDefault = 0; // 2 bytes - this._minNumberOfClubs = 0; // 2 bytes - this._maxNumberOfClubs = 0; // 2 bytes - this._racePointsFactor = 0; // 4 bytes - this._maxBodyClass = 0; // 2 bytes - this._maxPowerClass = 0; // 2 bytes - this._partsPrizeMax = 0; // 2 bytes - this._partsPrizeWon = 0; // 2 bytes - this._clubLogoId = 0; // 4 bytes - this._teamTrialsWeatherFlag = false; // 2 bytes - this._teamTrialsNightFlag = false; // 2 bytes - this._teamTrialsBackwardsFlag = false; // 2 bytes - this._teamTrialsNumberLaps = 0; // 2 bytes - this._teamTrialsBaseTimeUnderPar = 0; // 2 bytes - this._raceCashFactor = 0; // 4 bytes - } - - /** - * Deserialize a 2 byte boolean - * - * @param {Buffer} data - * @returns {boolean} - */ - deserializeBool(data: Buffer): boolean { - return data.readUInt16LE() === 1; - } - - /** - * Serialize a 2 byte boolean - * - * @param {number} value - * @returns {Buffer} - */ - serializeBool(value: number): Buffer { - const buf = Buffer.alloc(2); - buf.writeUInt16LE(value ? 1 : 0); - return buf; - } - - override size() { - return 563; - } - - /** - * Deserialize the data - * - * @param {Buffer} data - */ - deserialize(data: Buffer) { - if (data.length !== this.size()) { - throw new ServerError( - `LobbyInfo.deserialize() expected ${this.size()} bytes but got ${ - data.length - } bytes`, - ); - } - let offset = 0; - this._lobbyId = data.readUInt32LE(offset); - offset += 4; - this._raceTypeId = data.readUInt32LE(offset); - offset += 4; - this._terfId = data.readUInt32LE(offset); - offset += 4; - this._lobbyName = data.toString("utf8", offset, offset + 32); - offset += 32; - this._turfName = data.toString("utf8", offset, offset + 256); - offset += 256; - this._clientArt = data.toString("utf8", offset, offset + 11); - offset += 11; - this._elementId = data.readUInt32LE(offset); - offset += 4; - this._turfLengthId = data.readUInt32LE(offset); - offset += 4; - this._startSlice = data.readUInt32LE(offset); - offset += 4; - this._endSlice = data.readUInt32LE(offset); - offset += 4; - this._dragStageLeft = data.readUInt32LE(offset); - offset += 4; - this._dragStageRight = data.readUInt32LE(offset); - offset += 4; - this._dragStagingSlice = data.readUInt32LE(offset); - offset += 4; - this._gridSpreadFactor = data.readUInt32LE(offset); - offset += 4; - this._linear = data.readUInt16LE(offset); - offset += 2; - this._minNumberPlayers = data.readUInt16LE(offset); - offset += 2; - this._maxNumberPlayers = data.readUInt16LE(offset); - offset += 2; - this._defaultNumberPlayers = data.readUInt16LE(offset); - offset += 2; - this._numberOfPlayersEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._minLaps = data.readUInt16LE(offset); - offset += 2; - this._maxLaps = data.readUInt16LE(offset); - offset += 2; - this._defaultNumberOfLaps = data.readUInt16LE(offset); - offset += 2; - this._numberOfLapsEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._minNumberRounds = data.readUInt16LE(offset); - offset += 2; - this._maxNumberRounds = data.readUInt16LE(offset); - offset += 2; - this._defaultNumberRounds = data.readUInt16LE(offset); - offset += 2; - this._numberOfRoundsEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._defaultWeather = data.readUInt16LE(offset); - offset += 2; - this._weatherEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._defaultNight = data.readUInt16LE(offset); - offset += 2; - this._nightEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._defaultBackwards = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._backwardsEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._defaultTraffic = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._trafficEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._defaultDriverAI = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._driverAIEnabled = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._topDog = data.toString("utf8", offset, offset + 13); - offset += 13; - this._turfOwner = data.toString("utf8", offset, offset + 33); - offset += 33; - this._qualifyingTime = data.readUInt32LE(offset); - offset += 4; - this._numberOfClubPlayers = data.readUInt32LE(offset); - offset += 4; - this._numberofClubLaps = data.readUInt32LE(offset); - offset += 4; - this._numberOfClubRounds = data.readUInt32LE(offset); - offset += 4; - this._clubNight = data.readUInt16LE(offset); - offset += 2; - this._clubWeather = data.readUInt16LE(offset); - offset += 2; - this._clubBackwards = data.readUInt16LE(offset); - offset += 2; - this._bestLapTime = data.readUInt32LE(offset); - offset += 4; - this._lobbyDifficulty = data.readUInt32LE(offset); - offset += 4; - this._timetrialPointsToQualify = data.readUInt32LE(offset); - offset += 4; - this._timetrialCashToQualify = data.readUInt32LE(offset); - offset += 4; - this._timetrialPointsBonusIncrements = data.readUInt32LE(offset); - offset += 4; - this._timetrialCashBonusIncrements = data.readUInt32LE(offset); - offset += 4; - this._timetrialTimeIncrements = data.readUInt32LE(offset); - offset += 4; - this._timetrial1stPlaceVictoryPoints = data.readUInt32LE(offset); - offset += 4; - this._timetrial1stPlaceVictoryCash = data.readUInt32LE(offset); - offset += 4; - this._timetrial2ndPlaceVictoryPoints = data.readUInt32LE(offset); - offset += 4; - this._timetrial2ndPlaceVictoryCash = data.readUInt32LE(offset); - offset += 4; - this._timetrial3rdPlaceVictoryPoints = data.readUInt32LE(offset); - offset += 4; - this._timetrial3rdPlaceVictoryCash = data.readUInt32LE(offset); - offset += 4; - this._minLevel = data.readUInt16LE(offset); - offset += 2; - this._minResetSlice = data.readUInt32LE(offset); - offset += 4; - this._maxResetSlice = data.readUInt32LE(offset); - offset += 4; - this._newbieFlag = data.readUInt16LE(offset); - offset += 2; - this._driverHelmetFlag = data.readUInt16LE(offset); - offset += 2; - this._clubMaxNumberPlayers = data.readUInt16LE(offset); - offset += 2; - this._clubMinNumberPlayers = data.readUInt16LE(offset); - offset += 2; - this._clubNumberPlayersDefault = data.readUInt16LE(offset); - offset += 2; - this._minNumberOfClubs = data.readUInt16LE(offset); - offset += 2; - this._maxNumberOfClubs = data.readUInt16LE(offset); - offset += 2; - this._racePointsFactor = data.readUInt32LE(offset); - offset += 4; - this._maxBodyClass = data.readUInt16LE(offset); - offset += 2; - this._maxPowerClass = data.readUInt16LE(offset); - offset += 2; - this._partsPrizeMax = data.readUInt16LE(offset); - offset += 2; - this._partsPrizeWon = data.readUInt16LE(offset); - offset += 2; - this._clubLogoId = data.readUInt32LE(offset); - offset += 4; - this._teamTrialsWeatherFlag = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._teamTrialsNightFlag = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._teamTrialsBackwardsFlag = this.deserializeBool( - data.subarray(offset, offset + 2), - ); - offset += 2; - this._teamTrialsNumberLaps = data.readUInt16LE(offset); - offset += 2; - this._teamTrialsBaseTimeUnderPar = data.readUInt16LE(offset); - offset += 2; - this._raceCashFactor = data.readUInt32LE(offset); - // 563 total bytes - - return this; - } - - override serialize() { - const buf = Buffer.alloc(this.size()); - let offset = 0; // offset is 0 - buf.writeUInt32LE(this._lobbyId, offset); - offset += 4; // offset is 4 - buf.writeUInt32LE(this._raceTypeId, offset); - offset += 4; // offset is 8 - buf.writeUInt32LE(this._terfId, offset); - offset += 4; // offset is 12 - buf.write(this._lobbyName, offset, 32); - offset += 32; // offset is 44 - buf.write(this._turfName, offset, 256); - offset += 256; // offset is 300 - buf.write(this._clientArt, offset, 11); - offset += 11; // offset is 311 - buf.writeUInt32LE(this._elementId, offset); - offset += 4; // offset is 315 - buf.writeUInt32LE(this._turfLengthId, offset); - offset += 4; // offset is 319 - buf.writeUInt32LE(this._startSlice, offset); - offset += 4; // offset is 323 - buf.writeUInt32LE(this._endSlice, offset); - offset += 4; // offset is 327 - buf.writeUInt32LE(this._dragStageLeft, offset); - offset += 4; // offset is 331 - buf.writeUInt32LE(this._dragStageRight, offset); - offset += 4; // offset is 335 - buf.writeUInt32LE(this._dragStagingSlice, offset); - offset += 4; // offset is 339 - buf.writeUInt32LE(this._gridSpreadFactor, offset); - offset += 4; // offset is 343 - buf.writeUInt16LE(this._linear, offset); - offset += 2; // offset is 345 - buf.writeUInt16LE(this._minNumberPlayers, offset); - offset += 2; // offset is 347 - buf.writeUInt16LE(this._maxNumberPlayers, offset); - offset += 2; // offset is 349 - buf.writeUInt16LE(this._defaultNumberPlayers, offset); - offset += 2; // offset is 351 - buf.writeUInt16LE(this._numberOfPlayersEnabled ? 1 : 0, offset); - offset += 2; // offset is 353 - buf.writeUInt16LE(this._minLaps, offset); - offset += 2; // offset is 355 - buf.writeUInt16LE(this._maxLaps, offset); - offset += 2; // offset is 357 - buf.writeUInt16LE(this._defaultNumberOfLaps, offset); - offset += 2; // offset is 359 - buf.writeUInt16LE(this._numberOfLapsEnabled ? 1 : 0, offset); - offset += 2; // offset is 361 - buf.writeUInt16LE(this._minNumberRounds, offset); - offset += 2; // offset is 363 - buf.writeUInt16LE(this._maxNumberRounds, offset); - offset += 2; // offset is 365 - buf.writeUInt16LE(this._defaultNumberRounds, offset); - offset += 2; // offset is 367 - buf.writeUInt16LE(this._numberOfRoundsEnabled ? 1 : 0, offset); - offset += 2; // offset is 369 - buf.writeUInt16LE(this._defaultWeather, offset); - offset += 2; // offset is 371 - buf.writeUInt16LE(this._weatherEnabled ? 1 : 0, offset); - offset += 2; // offset is 373 - buf.writeUInt16LE(this._defaultNight, offset); - offset += 2; // offset is 375 - buf.writeUInt16LE(this._nightEnabled ? 1 : 0, offset); - offset += 2; // offset is 377 - buf.writeUInt16LE(this._defaultBackwards ? 1 : 0, offset); - offset += 2; // offset is 379 - buf.writeUInt16LE(this._backwardsEnabled ? 1 : 0, offset); - offset += 2; // offset is 381 - buf.writeUInt16LE(this._defaultTraffic ? 1 : 0, offset); - offset += 2; // offset is 383 - buf.writeUInt16LE(this._trafficEnabled ? 1 : 0, offset); - offset += 2; // offset is 385 - buf.writeUInt16LE(this._defaultDriverAI ? 1 : 0, offset); - offset += 2; // offset is 387 - buf.writeUInt16LE(this._driverAIEnabled ? 1 : 0, offset); - offset += 2; // offset is 389 - buf.write(this._topDog, offset, 13); - offset += 13; // offset is 402 - buf.write(this._turfOwner, offset, 33); - offset += 33; // offset is 435 - buf.writeUInt32LE(this._qualifyingTime, offset); - offset += 4; // offset is 439 - buf.writeUInt32LE(this._numberOfClubPlayers, offset); - offset += 4; // offset is 443 - buf.writeUInt32LE(this._numberofClubLaps, offset); - offset += 4; // offset is 447 - buf.writeUInt32LE(this._numberOfClubRounds, offset); - offset += 4; // offset is 451 - buf.writeUInt16LE(this._clubNight, offset); - offset += 2; // offset is 453 - buf.writeUInt16LE(this._clubWeather, offset); - offset += 2; // offset is 455 - buf.writeUInt16LE(this._clubBackwards, offset); - offset += 2; // offset is 457 - buf.writeUInt32LE(this._bestLapTime, offset); - offset += 4; // offset is 461 - buf.writeUInt32LE(this._lobbyDifficulty, offset); - offset += 4; // offset is 465 - buf.writeUInt32LE(this._timetrialPointsToQualify, offset); - offset += 4; // offset is 469 - buf.writeUInt32LE(this._timetrialCashToQualify, offset); - offset += 4; // offset is 473 - buf.writeUInt32LE(this._timetrialPointsBonusIncrements, offset); - offset += 4; // offset is 477 - buf.writeUInt32LE(this._timetrialCashBonusIncrements, offset); - offset += 4; // offset is 481 - buf.writeUInt32LE(this._timetrialTimeIncrements, offset); - offset += 4; // offset is 485 - buf.writeUInt32LE(this._timetrial1stPlaceVictoryPoints, offset); - offset += 4; // offset is 489 - buf.writeUInt32LE(this._timetrial1stPlaceVictoryCash, offset); - offset += 4; // offset is 493 - buf.writeUInt32LE(this._timetrial2ndPlaceVictoryPoints, offset); - offset += 4; // offset is 497 - buf.writeUInt32LE(this._timetrial2ndPlaceVictoryCash, offset); - offset += 4; // offset is 501 - buf.writeUInt32LE(this._timetrial3rdPlaceVictoryPoints, offset); - offset += 4; // offset is 505 - buf.writeUInt32LE(this._timetrial3rdPlaceVictoryCash, offset); - offset += 4; // offset is 509 - buf.writeUInt16LE(this._minLevel, offset); - offset += 2; // offset is 511 - buf.writeUInt32LE(this._minResetSlice, offset); - offset += 4; // offset is 515 - buf.writeUInt32LE(this._maxResetSlice, offset); - offset += 4; // offset is 519 - buf.writeUInt16LE(this._newbieFlag, offset); - offset += 2; // offset is 521 - buf.writeUInt16LE(this._driverHelmetFlag, offset); - offset += 2; // offset is 523 - buf.writeUInt16LE(this._clubMaxNumberPlayers, offset); - offset += 2; // offset is 525 - buf.writeUInt16LE(this._clubMinNumberPlayers, offset); - offset += 2; // offset is 527 - buf.writeUInt16LE(this._clubNumberPlayersDefault, offset); - offset += 2; // offset is 529 - buf.writeUInt16LE(this._minNumberOfClubs, offset); - offset += 2; // offset is 531 - buf.writeUInt16LE(this._maxNumberOfClubs, offset); - offset += 2; // offset is 533 - buf.writeUInt32LE(this._racePointsFactor, offset); - offset += 4; // offset is 537 - buf.writeUInt16LE(this._maxBodyClass, offset); - offset += 2; // offset is 539 - buf.writeUInt16LE(this._maxPowerClass, offset); - offset += 2; // offset is 541 - buf.writeUInt16LE(this._partsPrizeMax, offset); - offset += 2; // offset is 543 - buf.writeUInt16LE(this._partsPrizeWon, offset); - offset += 2; // offset is 545 - buf.writeUInt32LE(this._clubLogoId, offset); - offset += 4; // offset is 549 - buf.writeUInt16LE(this._teamTrialsWeatherFlag ? 1 : 0, offset); - offset += 2; // offset is 551 - buf.writeUInt16LE(this._teamTrialsNightFlag ? 1 : 0, offset); - offset += 2; // offset is 553 - buf.writeUInt16LE(this._teamTrialsBackwardsFlag ? 1 : 0, offset); - offset += 2; // offset is 555 - buf.writeUInt16LE(this._teamTrialsNumberLaps, offset); - offset += 2; // offset is 557 - buf.writeUInt16LE(this._teamTrialsBaseTimeUnderPar, offset); - offset += 2; // offset is 559 - buf.writeUInt32LE(this._raceCashFactor, offset); - // offset is 563 - - return buf; - } - - override toString() { - return `LobbyInfo { - lobbyId: ${this._lobbyId}, - raceTypeId: ${this._raceTypeId}, - terfId: ${this._terfId}, - lobbyName: ${this._lobbyName}, - turfName: ${this._turfName}, - clientArt: ${this._clientArt}, - elementId: ${this._elementId}, - turfLengthId: ${this._turfLengthId}, - startSlice: ${this._startSlice}, - endSlice: ${this._endSlice}, - dragStageLeft: ${this._dragStageLeft}, - dragStageRight: ${this._dragStageRight}, - dragStagingSlice: ${this._dragStagingSlice}, - gridSpreadFactor: ${this._gridSpreadFactor}, - linear: ${this._linear}, - minNumberPlayers: ${this._minNumberPlayers}, - maxNumberPlayers: ${this._maxNumberPlayers}, - defaultNumberPlayers: ${this._defaultNumberPlayers}, - numberOfPlayersEnabled: ${this._numberOfPlayersEnabled}, - minLaps: ${this._minLaps}, - maxLaps: ${this._maxLaps}, - defaultNumberOfLaps: ${this._defaultNumberOfLaps}, - numberOfLapsEnabled: ${this._numberOfLapsEnabled}, - minNumberRounds: ${this._minNumberRounds}, - maxNumberRounds: ${this._maxNumberRounds}, - defaultNumberRounds: ${this._defaultNumberRounds}, - numberOfRoundsEnabled: ${this._numberOfRoundsEnabled}, - defaultWeather: ${this._defaultWeather}, - weatherEnabled: ${this._weatherEnabled}, - defaultNight: ${this._defaultNight}, - nightEnabled: ${this._nightEnabled}, - defaultBackwards: ${this._defaultBackwards}, - backwardsEnabled: ${this._backwardsEnabled}, - defaultTraffic: ${this._defaultTraffic}, - trafficEnabled: ${this._trafficEnabled}, - defaultDriverAI: ${this._defaultDriverAI}, - driverAIEnabled: ${this._driverAIEnabled}, - topDog: ${this._topDog}, - turfOwner: ${this._turfOwner}, - qualifyingTime: ${this._qualifyingTime}, - numberOfClubPlayers: ${this._numberOfClubPlayers}, - numberofClubLaps: ${this._numberofClubLaps}, - numberOfClubRounds: ${this._numberOfClubRounds}, - clubNight: ${this._clubNight}, - clubWeather: ${this._clubWeather}, - clubBackwards: ${this._clubBackwards}, - bestLapTime: ${this._bestLapTime}, - lobbyDifficulty: ${this._lobbyDifficulty}, - timetrialPointsToQualify: ${this._timetrialPointsToQualify}, - timetrialCashToQualify: ${this._timetrialCashToQualify}, - timetrialPointsBonusIncrements: ${this._timetrialPointsBonusIncrements}, - timetrialCashBonusIncrements: ${this._timetrialCashBonusIncrements}, - timetrialTimeIncrements: ${this._timetrialTimeIncrements}, - timetrial1stPlaceVictoryPoints: ${this._timetrial1stPlaceVictoryPoints}, - timetrial1stPlaceVictoryCash: ${this._timetrial1stPlaceVictoryCash}, - timetrial2ndPlaceVictoryPoints: ${this._timetrial2ndPlaceVictoryPoints}, - timetrial2ndPlaceVictoryCash: ${this._timetrial2ndPlaceVictoryCash}, - timetrial3rdPlaceVictoryPoints: ${this._timetrial3rdPlaceVictoryPoints}, - timetrial3rdPlaceVictoryCash: ${this._timetrial3rdPlaceVictoryCash}, - minLevel: ${this._minLevel}, - minResetSlice: ${this._minResetSlice}, - maxResetSlice: ${this._maxResetSlice}, - newbieFlag: ${this._newbieFlag}, - driverHelmetFlag: ${this._driverHelmetFlag}, - clubMaxNumberPlayers: ${this._clubMaxNumberPlayers}, - clubMinNumberPlayers: ${this._clubMinNumberPlayers}, - clubNumberPlayersDefault: ${this._clubNumberPlayersDefault}, - minNumberOfClubs: ${this._minNumberOfClubs}, - maxNumberOfClubs: ${this._maxNumberOfClubs}, - racePointsFactor: ${this._racePointsFactor}, - maxBodyClass: ${this._maxBodyClass}, - maxPowerClass: ${this._maxPowerClass}, - partsPrizeMax: ${this._partsPrizeMax}, - partsPrizeWon: ${this._partsPrizeWon}, - clubLogoId: ${this._clubLogoId}, - teamTrialsWeatherFlag: ${this._teamTrialsWeatherFlag}, - teamTrialsNightFlag: ${this._teamTrialsNightFlag}, - teamTrialsBackwardsFlag: ${this._teamTrialsBackwardsFlag}, - teamTrialsNumberLaps: ${this._teamTrialsNumberLaps}, - teamTrialsBaseTimeUnderPar: ${this._teamTrialsBaseTimeUnderPar}, - raceCashFactor: ${this._raceCashFactor}, -}`; - } -} diff --git a/packages/transactions/src/OwnedVehiclesMessage.ts b/packages/transactions/src/OwnedVehiclesMessage.ts deleted file mode 100644 index a5af75613..000000000 --- a/packages/transactions/src/OwnedVehiclesMessage.ts +++ /dev/null @@ -1,96 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -/** - * A message listing the player's owned vehicles - * This is the body of a MessageNode - */ -export class OwnedVehiclesMessage extends SerializedBuffer { - _msgNo: number; - _numberOfVehicles: number; - _vehicleList: OwnedVehicle[]; - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._numberOfVehicles = 0; // 1 bytes - /** @type {OwnedVehicle[]} */ - this._vehicleList = []; // 8 bytes each - } - - override size() { - return 5 + this._vehicleList.length * 8; - } - - /** - * Add a lobby to the list - * @param {GameUrl} lobby - */ - addVehicle(vehicle: OwnedVehicle) { - this._vehicleList.push(vehicle); - this._numberOfVehicles++; - } - - override serialize() { - const neededSize = 4 + this._vehicleList.length * 8; - const buffer = Buffer.alloc(neededSize); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeInt8(this._numberOfVehicles, offset); - offset += 1; // offset is 3 - for (const vehicle of this._vehicleList) { - const vehicleBuffer = vehicle.serialize(); - vehicleBuffer.copy(buffer, offset); - offset += vehicleBuffer.length; - } - - return buffer; - } - - override toString() { - return `OwnedVehiclesMessage: msgNo=${this._msgNo} numberOfVehicles=${this._numberOfVehicles}`; - } -} - -export class OwnedVehicle extends SerializedBuffer { - _vehicleId: number; - _brandedPartId: number; - constructor() { - super(); - this._vehicleId = 0; // 4 bytes - this._brandedPartId = 0; // 4 bytes - } - - override size() { - return 8; - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; // offset is 0 - buffer.writeUInt32LE(this._vehicleId, offset); - offset += 4; // offset is 4 - buffer.writeUInt32LE(this._brandedPartId, offset); - - return buffer; - } - - override toString() { - return `OwnedVehicle: vehicleId=${this._vehicleId} brandedPartId=${this._brandedPartId}`; - } -} diff --git a/packages/transactions/src/PartsAssemblyMessage.ts b/packages/transactions/src/PartsAssemblyMessage.ts deleted file mode 100644 index e572973bf..000000000 --- a/packages/transactions/src/PartsAssemblyMessage.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -export class PartsAssemblyMessage extends SerializedBuffer { - _msgNo: number; - _ownerId: number; - _numberOfParts: number; - _partList: Part[]; - constructor(owerId: number) { - super(); - this._msgNo = 0; // 2 bytes - this._ownerId = owerId; // 4 bytes - this._numberOfParts = 0; // 1 bytes - /** @type {Part[]} */ - this._partList = []; // 34 bytes each - } - - override size() { - return 7 + this._partList.length * 34; - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeUInt32LE(this._ownerId, offset); - offset += 4; // offset is 6 - buffer.writeInt8(this._numberOfParts, offset); - offset += 1; // offset is 7 - for (const part of this._partList) { - const partBuffer = part.serialize(); - partBuffer.copy(buffer, offset); - offset += partBuffer.length; - } - - return buffer; - } -} - -export class Part extends SerializedBuffer { - _partId: number; // 4 bytes - _parentPartId: number; // 4 bytes - _brandedPartId: number; // 4 bytes - _repairPrice: number; // 4 bytes - _junkPrice: number; // 4 bytes - _wear: number; // 4 bytes - _attachmentPoint: number; // 1 byte - _damage: number; // 1 byte - _retailPrice: number; // 4 bytes - _maxWear: number; // 4 bytes - - constructor() { - super(); - this._partId = 0; // 4 bytes - this._parentPartId = 0; // 4 bytes - this._brandedPartId = 0; // 4 bytes - this._repairPrice = 0; // 4 bytes - this._junkPrice = 0; // 4 bytes - this._wear = 0; // 4 bytes - this._attachmentPoint = 0; // 1 byte - this._damage = 0; // 1 byte - this._retailPrice = 0; // 4 bytes - this._maxWear = 0; // 4 bytes - // 33 bytes total - } - - override size() { - return 34; - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - buffer.writeUInt32LE(this._partId, offset); - offset += 4; // offset is 4 - buffer.writeUInt32LE(this._parentPartId, offset); - offset += 4; // offset is 8 - buffer.writeUInt32LE(this._brandedPartId, offset); - offset += 4; // offset is 12 - buffer.writeUInt32LE(this._repairPrice, offset); - offset += 4; // offset is 16 - buffer.writeUInt32LE(this._junkPrice, offset); - offset += 4; // offset is 20 - buffer.writeUInt32LE(this._wear, offset); - offset += 4; // offset is 24 - buffer.writeUInt8(this._attachmentPoint, offset); - offset += 1; // offset is 25 - buffer.writeUInt8(this._damage, offset); - offset += 1; // offset is 26 - buffer.writeUInt32LE(this._retailPrice, offset); - offset += 4; // offset is 30 - buffer.writeUInt32LE(this._maxWear, offset); - // offset += 4; // offset is 34 - - return buffer; - } - - override toString() { - return `Part: partId=${this._partId} parentPartId=${this._parentPartId} brandedPartId=${this._brandedPartId} repairPrice=${this._repairPrice} junkPrice=${this._junkPrice} wear=${this._wear} attachmentPoint=${this._attachmentPoint} damage=${this._damage} retailPrice=${this._retailPrice} maxWear=${this._maxWear}`; - } -} diff --git a/packages/transactions/src/PlayerInfoMessage.ts b/packages/transactions/src/PlayerInfoMessage.ts deleted file mode 100644 index 282d07a0d..000000000 --- a/packages/transactions/src/PlayerInfoMessage.ts +++ /dev/null @@ -1,220 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { - SerializedBuffer, - serializeStringRaw, -} from "../../shared/messageFactory.js"; -import { Timestamp } from "../../shared/TimeStamp.js"; - -/** - * A message listing the player's owned vehicles - * This is the body of a MessageNode - */ -export class PlayerInfoMessage extends SerializedBuffer { - _msgNo: number; // 2 bytes - _playerId: number; // 4 bytes - _playerName: string; // 13 bytes - _driversLicense: string; // 12 bytes - _driverClass: number; // 1 byte - _bankBalance: number; // 4 bytes - _numberOfVehicles: number; // 2 bytes - _isLoggedOn: boolean; // 1 byte - _carsList: string[] = []; // 6 entries of 3 byte strings - _licensesPlateCode: number; // 2 bytes - _licensesPlateText: string; // 8 bytes - _carInfoSetttings: number; // 4 bytes - _vehicleId: number; // 4 bytes - _numberOfRacesEntered: number; // 4 bytes - _numberOfRacesWon: number; // 4 bytes - _numberOfRacesCompleted: number; // 4 bytes - _totalWinings: number; // 4 bytes - _insuranceRisk: number; // 2 bytes - _insurancePoints: number; // 4 bytes - _challengeRacesEntered: number; // 4 bytes - _challengeRacesWon: number; // 4 bytes - _challengeRacesCompleted: number; // 4 bytes - _numberofCarsWon: number; // 2 bytes - _numberOfCarsLost: number; // 2 bytes - _points: number; // 4 bytes - _currentLevel: number; // 4 bytes - _currentRank: number; // 4 bytes - _numberOfPointsToNextLevel: number; // 2 bytes - _numberOfPointsToNextRank: number; // 2 bytes - _maxInventorySlots: number; // 4 bytes - _numberOfInventorySlotsUsed: number; // 4 bytes - _numberOfInventoryIemsOnAuction: number; // 4 bytes - _highestBidInAuction: number; // 4 bytes - _currentClub: number; // 4 bytes - _dateLeftClub: Timestamp; // 4 bytes - _canBeInvitedToClub: boolean; // 1 byte - _playerDescription: string; // 256 + 1 bytes - - constructor() { - super(); - this._msgNo = 122; // 2 bytes - this._playerId = 0; // 4 bytes - this._playerName = ""; // 13 bytes - this._driversLicense = ""; // 12 bytes - this._driverClass = 0; // 1 byte - this._bankBalance = 0; // 4 bytes - this._numberOfVehicles = 0; // 2 bytes - this._isLoggedOn = false; // 1 byte - this._carsList = ["", "", "", "", "", ""]; // 6 entries of 3 byte strings - this._licensesPlateCode = 0; // 2 bytes - this._licensesPlateText = ""; // 8 bytes - this._carInfoSetttings = 0; // 4 bytes - this._vehicleId = 0; // 4 bytes - this._numberOfRacesEntered = 0; // 4 bytes - this._numberOfRacesWon = 0; // 4 bytes - this._numberOfRacesCompleted = 0; // 4 bytes - this._totalWinings = 0; // 4 bytes - this._insuranceRisk = 0; // 2 bytes - this._insurancePoints = 0; // 4 bytes - this._challengeRacesEntered = 0; // 4 bytes - this._challengeRacesWon = 0; // 4 bytes - this._challengeRacesCompleted = 0; // 4 bytes - this._numberofCarsWon = 0; // 2 bytes - this._numberOfCarsLost = 0; // 2 bytes - this._points = 0; // 4 bytes - this._currentLevel = 0; // 4 bytes - this._currentRank = 0; // 4 bytes - this._numberOfPointsToNextLevel = 0; // 2 bytes - this._numberOfPointsToNextRank = 0; // 2 bytes - this._maxInventorySlots = 0; // 4 bytes - this._numberOfInventorySlotsUsed = 0; // 4 bytes - this._numberOfInventoryIemsOnAuction = 0; // 4 bytes - this._highestBidInAuction = 0; // 4 bytes - this._currentClub = 0; // 4 bytes - this._dateLeftClub = new Timestamp(); // 4 bytes - this._canBeInvitedToClub = false; // 1 byte - this._playerDescription = ""; // 256 + 1 bytes - // total byes: 128 + 256 + 1 = 385 - } - - override size() { - return 385; - } - - override serialize() { - const neededSize = this.size(); - const buffer = Buffer.alloc(neededSize); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeUInt32LE(this._playerId, offset); - offset += 4; // offset is 6 - serializeStringRaw( - this._playerName.substring(0, 12), - buffer, - offset, - 13, - ); - offset += 13; // offset is 19 - serializeStringRaw( - this._driversLicense.substring(0, 11), - buffer, - offset, - 12, - ); - offset += 12; // offset is 31 - buffer.writeUInt8(this._driverClass, offset); - offset += 1; // offset is 32 - buffer.writeUInt32LE(this._bankBalance, offset); - offset += 4; // offset is 36 - buffer.writeUInt16LE(this._numberOfVehicles, offset); - offset += 2; // offset is 38 - buffer.writeUInt8(this._isLoggedOn ? 1 : 0, offset); - offset += 1; // offset is 39 - for (const car of this._carsList) { - buffer.write(car, offset); - serializeStringRaw(car, buffer, offset, 3); - offset += 3; - } - buffer.writeUInt16LE(this._licensesPlateCode, offset); - offset += 2; // offset is 41 - serializeStringRaw( - this._licensesPlateText.substring(0, 7), - buffer, - offset, - 8, - ); - offset += 8; // offset is 49 - buffer.writeUInt32LE(this._carInfoSetttings, offset); - offset += 4; // offset is 53 - buffer.writeUInt32LE(this._vehicleId, offset); - offset += 4; // offset is 57 - buffer.writeUInt32LE(this._numberOfRacesEntered, offset); - offset += 4; // offset is 61 - buffer.writeUInt32LE(this._numberOfRacesWon, offset); - offset += 4; // offset is 65 - buffer.writeUInt32LE(this._numberOfRacesCompleted, offset); - offset += 4; // offset is 69 - buffer.writeUInt32LE(this._totalWinings, offset); - offset += 4; // offset is 73 - buffer.writeUInt16LE(this._insuranceRisk, offset); - offset += 2; // offset is 75 - buffer.writeUInt32LE(this._insurancePoints, offset); - offset += 4; // offset is 79 - buffer.writeUInt32LE(this._challengeRacesEntered, offset); - offset += 4; // offset is 83 - buffer.writeUInt32LE(this._challengeRacesWon, offset); - offset += 4; // offset is 87 - buffer.writeUInt32LE(this._challengeRacesCompleted, offset); - offset += 4; // offset is 91 - buffer.writeUInt16LE(this._numberofCarsWon, offset); - offset += 2; // offset is 93 - buffer.writeUInt16LE(this._numberOfCarsLost, offset); - offset += 2; // offset is 95 - buffer.writeUInt32LE(this._points, offset); - offset += 4; // offset is 99 - buffer.writeUInt32LE(this._currentLevel, offset); - offset += 4; // offset is 103 - buffer.writeUInt32LE(this._currentRank, offset); - offset += 4; // offset is 107 - buffer.writeUInt16LE(this._numberOfPointsToNextLevel, offset); - offset += 2; // offset is 109 - buffer.writeUInt16LE(this._numberOfPointsToNextRank, offset); - offset += 2; // offset is 111 - buffer.writeUInt32LE(this._maxInventorySlots, offset); - offset += 4; // offset is 115 - buffer.writeUInt32LE(this._numberOfInventorySlotsUsed, offset); - offset += 4; // offset is 119 - buffer.writeUInt32LE(this._numberOfInventoryIemsOnAuction, offset); - offset += 4; // offset is 123 - buffer.writeUInt32LE(this._highestBidInAuction, offset); - offset += 4; // offset is 127 - buffer.writeUInt32LE(this._currentClub, offset); - offset += 4; // offset is 131 - const dateLeftClubBuffer = this._dateLeftClub.as64BitNumber(); - buffer.writeUInt32LE(dateLeftClubBuffer, offset); - offset += 4; // offset is 135 - buffer.writeUInt8(this._canBeInvitedToClub ? 1 : 0, offset); - offset += 1; // offset is 136 - serializeStringRaw( - this._playerDescription.substring(0, 255), - buffer, - offset, - 256, - ); - - return buffer; - } - - override toString() { - return `PlayerInfoMessage: msgNo=${this._msgNo} playerId=${this._playerId} playerName=${this._playerName} driversLicense=${this._driversLicense} driverClass=${this._driverClass} bankBalance=${this._bankBalance} numberOfVehicles=${this._numberOfVehicles} isLoggedOn=${this._isLoggedOn} carsList=${this._carsList} licensesPlateCode=${this._licensesPlateCode} licensesPlateText=${this._licensesPlateText} carInfoSetttings=${this._carInfoSetttings} vehicleId=${this._vehicleId} numberOfRacesEntered=${this._numberOfRacesEntered} numberOfRacesWon=${this._numberOfRacesWon} numberOfRacesCompleted=${this._numberOfRacesCompleted} totalWinings=${this._totalWinings} insuranceRisk=${this._insuranceRisk} insurancePoints=${this._insurancePoints} challengeRacesEntered=${this._challengeRacesEntered} challengeRacesWon=${this._challengeRacesWon} challengeRacesCompleted=${this._challengeRacesCompleted} numberofCarsWon=${this._numberofCarsWon} numberOfCarsLost=${this._numberOfCarsLost} points=${this._points} currentLevel=${this._currentLevel} currentRank=${this._currentRank} numberOfPointsToNextLevel=${this._numberOfPointsToNextLevel} numberOfPointsToNextRank=${this._numberOfPointsToNextRank} maxInventorySlots=${this._maxInventorySlots} numberOfInventorySlotsUsed=${this._numberOfInventorySlotsUsed} numberOfInventoryIemsOnAuction=${this._numberOfInventoryIemsOnAuction} highestBidInAuction=${this._highestBidInAuction} currentClub=${this._currentClub} dateLeftClub=${this._dateLeftClub} canBeInvitedToClub=${this._canBeInvitedToClub} playerDescription=${this._playerDescription}`; - } -} diff --git a/packages/transactions/src/PlayerPhysicalMessage.ts b/packages/transactions/src/PlayerPhysicalMessage.ts deleted file mode 100644 index 641f322cf..000000000 --- a/packages/transactions/src/PlayerPhysicalMessage.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -export class PlayerPhysicalMessage extends SerializedBuffer { - _msgNo: number; // 2 bytes - _playerId: number; // 4 bytes - _bodytype: number; // 4 bytes - _hairColor: number; // 4 bytes - _skinColor: number; // 4 bytes - _shirtColor: number; // 4 bytes - _pantsColor: number; // 4 bytes - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._playerId = 0; // 4 bytes - this._bodytype = 0; // 4 bytes - this._hairColor = 0; // 4 bytes - this._skinColor = 0; // 4 bytes - this._shirtColor = 0; // 4 bytes - this._pantsColor = 0; // 4 bytes - // total: 26 bytes - } - - override size() { - return 26; - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; - buffer.writeUInt32LE(this._playerId, offset); - offset += 4; - buffer.writeUInt32LE(this._bodytype, offset); - offset += 4; - buffer.writeUInt32LE(this._hairColor, offset); - offset += 4; - buffer.writeUInt32LE(this._skinColor, offset); - offset += 4; - buffer.writeUInt32LE(this._shirtColor, offset); - offset += 4; - buffer.writeUInt32LE(this._pantsColor, offset); - - return buffer; - } - - override toString() { - return `PlayerPhysicalMessage: msgNo=${this._msgNo} playerId=${this._playerId} bodytype=${this._bodytype} hairColor=${this._hairColor} skinColor=${this._skinColor} shirtColor=${this._shirtColor} pantsColor=${this._pantsColor}`; - } -} diff --git a/packages/transactions/src/PlayerRacingHistoryMessage.ts b/packages/transactions/src/PlayerRacingHistoryMessage.ts deleted file mode 100644 index e77be6537..000000000 --- a/packages/transactions/src/PlayerRacingHistoryMessage.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -export class PlayerRacingHistoryMessage extends SerializedBuffer { - _msgId: number; // 2 bytes - _userId: number; // 4 bytes - _numRaces: number; // 2 bytes - _expectMore: boolean; // 1 byte - _raceHistoryRecords: RacingHistoryRecordEntry[]; // 32 bytes each - - constructor() { - super(); - this._msgId = 0; - this._userId = 0; - this._numRaces = 0; - this._expectMore = false; - this._raceHistoryRecords = []; - // total: 39 bytes + 32 bytes * numRaces - } - - override size(): number { - return 39 + this._numRaces * 32; - } - - addRecord(record: RacingHistoryRecordEntry) { - this._raceHistoryRecords.push(record); - this._numRaces++; - } - - deserialize(buffer: Buffer): PlayerRacingHistoryMessage { - let offset = 0; - this._msgId = buffer.readInt16LE(offset); - offset += 2; - this._userId = buffer.readInt32LE(offset); - offset += 4; - this._numRaces = buffer.readInt16LE(offset); - offset += 2; - this._expectMore = buffer.readInt8(offset) === 1; - offset += 1; - for (let i = 0; i < this._numRaces; i++) { - const record = new RacingHistoryRecordEntry(); - record.deserialize(buffer.subarray(offset, offset + 32)); - offset += 32; - this._raceHistoryRecords.push(record); - } - - return this; - } - - override serialize(): Buffer { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - buffer.writeInt16LE(this._msgId, offset); - offset += 2; - buffer.writeInt32LE(this._userId, offset); - offset += 4; - buffer.writeInt16LE(this._numRaces, offset); - offset += 2; - buffer.writeInt8(this._expectMore ? 1 : 0, offset); - offset += 1; - for (let i = 0; i < this._numRaces; i++) { - this._raceHistoryRecords[i].serialize().copy(buffer, offset); - offset += 32; - } - - return buffer; - } - - asString(): string { - let result = `PlayerRacingHistoryMessage: MsgId: ${this._msgId}, UserId: ${this._userId}, NumRaces: ${this._numRaces}, ExpectMore: ${this._expectMore}`; - for (let i = 0; i < this._numRaces; i++) { - result += `\n${this._raceHistoryRecords[i].asString()}`; - } - - return result; - } -} - -export class RacingHistoryRecordEntry extends SerializedBuffer { - raceType: number; // 4 bytes - numberOfRacesEntered: number; // 4 bytes - numberOfRacesFinished: number; // 4 bytes - numberOfRacesWon: number; // 4 bytes - numberOfCarsWon: number; // 4 bytes - numberOfCarsLost: number; // 4 bytes - numberOfChampionshipsWon: number; // 4 bytes - cashWon: number; // 4 bytes - - constructor() { - super(); - this.raceType = 0; - this.numberOfRacesEntered = 0; - this.numberOfRacesFinished = 0; - this.numberOfRacesWon = 0; - this.numberOfCarsWon = 0; - this.numberOfCarsLost = 0; - this.numberOfChampionshipsWon = 0; - this.cashWon = 0; - // total: 32 bytes - } - - override size(): number { - return 32; - } - - override serialize(): Buffer { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - buffer.writeInt32LE(this.raceType, offset); - offset += 4; - buffer.writeInt32LE(this.numberOfRacesEntered, offset); - offset += 4; - buffer.writeInt32LE(this.numberOfRacesFinished, offset); - offset += 4; - buffer.writeInt32LE(this.numberOfRacesWon, offset); - offset += 4; - buffer.writeInt32LE(this.numberOfCarsWon, offset); - offset += 4; - buffer.writeInt32LE(this.numberOfCarsLost, offset); - offset += 4; - buffer.writeInt32LE(this.numberOfChampionshipsWon, offset); - offset += 4; - buffer.writeInt32LE(this.cashWon, offset); - // total: 8 * 4 = 32 bytes - - return buffer; - } - - deserialize(buffer: Buffer): RacingHistoryRecordEntry { - let offset = 0; - this.raceType = buffer.readInt32LE(offset); - offset += 4; - this.numberOfRacesEntered = buffer.readInt32LE(offset); - offset += 4; - this.numberOfRacesFinished = buffer.readInt32LE(offset); - offset += 4; - this.numberOfRacesWon = buffer.readInt32LE(offset); - offset += 4; - this.numberOfCarsWon = buffer.readInt32LE(offset); - offset += 4; - this.numberOfCarsLost = buffer.readInt32LE(offset); - offset += 4; - this.numberOfChampionshipsWon = buffer.readInt32LE(offset); - offset += 4; - this.cashWon = buffer.readInt32LE(offset); - // total: 8 * 4 = 32 bytes - - return this; - } - - asString(): string { - return `RacingHistoryRecord: RaceType: ${this.raceType}, NumberOfRacesEntered: ${this.numberOfRacesEntered}, NumberOfRacesFinished: ${this.numberOfRacesFinished}, NumberOfRacesWon: ${this.numberOfRacesWon}, NumberOfCarsWon: ${this.numberOfCarsWon}, NumberOfCarsLost: ${this.numberOfCarsLost}, NumberOfChampionshipsWon: ${this.numberOfChampionshipsWon}, CashWon: ${this.cashWon}`; - } -} diff --git a/packages/transactions/src/StockCar.ts b/packages/transactions/src/StockCar.ts deleted file mode 100644 index 57a74cfb9..000000000 --- a/packages/transactions/src/StockCar.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Container object for Stock cars - */ -// DWORD brandedPartID; -// DWORD retailPrice; -// WORD bIsDealOfTheDay; -/** - * @class - * @property {number} brandedPartId - * @property {number} retailPrice - * @property {0 | 1} bIsDealOfTheDay - */ - -export class StockCar { - brandedPartId: number; - retailPrice: number; - bIsDealOfTheDay: boolean; - /** - * @param {number} brandedPartId - * @param {number} retailPrice - * @param {boolean} bIsDealOfTheDay - */ - constructor( - brandedPartId: number, - retailPrice: number, - bIsDealOfTheDay: boolean, - ) { - this.brandedPartId = brandedPartId; // 4 bytes - this.retailPrice = retailPrice; // 4 bytes - this.bIsDealOfTheDay = bIsDealOfTheDay; // 2 bytes - } - - /** - * - * @return {Buffer} - */ - serialize(): Buffer { - const packet = Buffer.alloc(10); - packet.writeInt32LE(this.brandedPartId, 0); - packet.writeInt32LE(this.retailPrice, 4); - packet.writeInt16LE(this.bIsDealOfTheDay ? 1 : 0, 8); - return packet; - } - - /** - * @return {string} - */ - toString(): string { - return ` - [StockCar]====================================== - brandedPartId: ${this.brandedPartId} - retailPrice: ${this.retailPrice} - isDealOfTheDay: ${this.bIsDealOfTheDay} - [/StockCar]======================================`; - } -} diff --git a/packages/transactions/src/StockCarInfoMessage.ts b/packages/transactions/src/StockCarInfoMessage.ts deleted file mode 100644 index 93f9bd807..000000000 --- a/packages/transactions/src/StockCarInfoMessage.ts +++ /dev/null @@ -1,104 +0,0 @@ -/** - * Object for providing information on stock cars - */ -// WORD msgNo; -// DWORD starterCash; // when called from the create persona screen, -// // this indicates how much cash a persona starts out with -// DWORD dealerID; // for easy match up -// DWORD brand; -// WORD noCars; -// BYTE moreToCome; // if 1, expect another msg, otherwise don't -// StockCar carInfo[1]; -/** - * @class - * @property {number} msgNo - * @property {number} starterCash - * @property {number} dealerId - * @property {number} brand - * @property {number} noCars - * @property {number} moreToCome - * @property {StockCar[]} StockCarList - */ - -import { MessageNode } from "../../shared/MessageNode.js"; - -type StockCar = import("./StockCar.js").StockCar; - -export class StockCarInfoMessage extends MessageNode { - starterCash: number; - dealerId: number; - brand: number; - noCars: number; - moreToCome: boolean; - StockCarList: StockCar[]; - /** - * Creates an instance of StockCarInfoMsg. - * @class - * @param {number} starterCash - * @param {number} dealerId - * @param {number} brand - * @memberof StockCarInfoMsg - */ - constructor(starterCash: number, dealerId: number, brand: number) { - super(); - this.msgNo = 141; - this.starterCash = starterCash; - this.dealerId = dealerId; - this.brand = brand; - /** Number of cars */ - this.noCars = 0; - this.moreToCome = false; - /** @type {StockCar[]} */ - this.StockCarList = []; - } - - /** - * - * @param {StockCar} car - */ - addStockCar(car: StockCar) { - this.StockCarList.push(car); - this.noCars = this.StockCarList.length; - } - - /** - * @override - * @return {Buffer} - */ - override serialize(): Buffer { - // This does not count the StockCar array - const packet = Buffer.alloc((17 + 9) * this.StockCarList.length); - packet.writeInt16LE(this.msgNo, 0); - packet.writeInt32LE(this.starterCash, 2); - packet.writeInt32LE(this.dealerId, 6); - packet.writeInt32LE(this.brand, 10); - packet.writeInt16LE(this.noCars, 14); - packet.writeInt8(this.moreToCome ? 1 : 0, 16); - if (this.StockCarList.length > 0) { - for (let i = 0; i < this.StockCarList.length; i++) { - const offset = 10 * i; - const record = this.StockCarList[i]; - if (typeof record !== "undefined") { - record.serialize().copy(packet, 17 + offset); - } - } - } - - return packet; - } - - /** - * @override - */ - override toString() { - return `${JSON.stringify({ - msgNo: this.msgNo, - starterCash: this.starterCash, - dealerId: this.dealerId, - brand: this.brand, - noCars: this.noCars, - moreToCome: this.moreToCome, - stockCarList: this.StockCarList.toString(), - })}`; - } -} diff --git a/packages/transactions/src/TClientConnectMessage.ts b/packages/transactions/src/TClientConnectMessage.ts deleted file mode 100644 index c5fbcfb48..000000000 --- a/packages/transactions/src/TClientConnectMessage.ts +++ /dev/null @@ -1,97 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { OldServerMessage } from "../../shared/messageFactory.js"; - -export class TClientConnectMessage extends OldServerMessage { - _customerId: number; - _personaId: number; - _customerName: string; - _personaName: string; - _mcVersion: string; - constructor() { - super(); - this._msgNo = 0; // 8 bytes - this._customerId = 0; // 4 bytes - this._personaId = 0; // 4 bytes - this._customerName = ""; // 13 bytes - this._personaName = ""; // 13 bytes - this._mcVersion = ""; // 4 bytes - } - - override size() { - return 51; - } - - /** - * @param {Buffer} buffer - */ - deserialize(buffer: Buffer) { - let offset = 0; - this._header._doDeserialize(buffer); - offset += this._header._size; - this._msgNo = buffer.readUInt16LE(offset); - offset += 2; - this._customerId = buffer.readUInt32LE(offset); - offset += 4; - this._personaId = buffer.readUInt32LE(offset); - offset += 4; - this._customerName = buffer.toString("utf8", offset, offset + 13); - offset += 13; - this._personaName = buffer.toString("utf8", offset, offset + 13); - offset += 13; - this._mcVersion = buffer.toString("utf8", offset, offset + 4); - // 51 bytes - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; - buffer.copy(this._header._doSerialize(), offset); - offset += this._header._size; - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; - buffer.writeUInt32LE(this._customerId, offset); - offset += 4; - buffer.writeUInt32LE(this._personaId, offset); - offset += 4; - buffer.write(this._customerName, offset, 13, "utf8"); - offset += 13; - buffer.write(this._personaName, offset, 13, "utf8"); - offset += 13; - buffer.write(this._mcVersion, offset, 4, "utf8"); - // 51 bytes - return buffer; - } - - /** - * @override - */ - override toString() { - return `TClientConnectMessage: ${JSON.stringify({ - length: this._header.length, - mcoSig: this._header.mcoSig, - seq: this._header.sequence, - flags: this._header.flags, - msgNo: this._msgNo, - customerId: this._customerId, - personaId: this._personaId, - customerName: this._customerName, - personaName: this._personaName, - mcVersion: this._mcVersion, - })}`; - } -} diff --git a/packages/transactions/src/TLoginMessage.ts b/packages/transactions/src/TLoginMessage.ts deleted file mode 100644 index d9ab9fc15..000000000 --- a/packages/transactions/src/TLoginMessage.ts +++ /dev/null @@ -1,146 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { - SerializedBuffer, - OldServerMessage, -} from "../../shared/messageFactory.js"; - -export class ListEntry extends SerializedBuffer { - constructor() { - super(); - } -} - -export class LoginCompleteMessage extends SerializedBuffer { - _msgNo: number; - _serverTime: number; - _firstTime: boolean; - _paycheckWaiting: boolean; - _clubInvitesWaiting: boolean; - tallyInProgress: boolean; - _secondsUntilShutdown: number; - _shardGNP: number; - _shardCarsSold: number; - _shardAverageSalaries: number; - _shardAverageCarsOwned: number; - _shardAverageLevel: number; - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._serverTime = 0; // 4 bytes - this._firstTime = false; // 1 byte - this._paycheckWaiting = false; // 1 byte - this._clubInvitesWaiting = false; // 1 byte - this.tallyInProgress = false; // 1 byte - this._secondsUntilShutdown = 0; // 2 bytes - - this._shardGNP = 0; // 4 bytes - this._shardCarsSold = 0; // 4 bytes - this._shardAverageSalaries = 0; // 4 bytes - this._shardAverageCarsOwned = 0; // 4 bytes - this._shardAverageLevel = 0; // 4 bytes - } -} - -export class TLoginMessage extends OldServerMessage { - _size: number; - _customerId: number; - _personaId: number; - _lotOwnerId: number; - _brandedPartId: number; - _skinId: number; - _personaName: string; - _mcVersion: string; - constructor() { - super(); - this._size = 40; - this._msgNo = 0; // 2 bytes - this._customerId = 0; // 4 bytes - this._personaId = 0; // 4 bytes - this._lotOwnerId = 0; // 4 bytes - this._brandedPartId = 0; // 4 bytes - this._skinId = 0; // 4 bytes - this._personaName = ""; // 13 bytes - this._mcVersion = ""; // 4 bytes - } - - /** - * @param {Buffer} buffer - */ - deserialize(buffer: Buffer) { - let offset = 0; - this._header._doDeserialize(buffer); - offset += this._header._size; - this._msgNo = buffer.readUInt16LE(offset); - offset += 2; - this._customerId = buffer.readUInt32LE(offset); - offset += 4; - this._personaId = buffer.readUInt32LE(offset); - offset += 4; - this._lotOwnerId = buffer.readUInt32LE(offset); - offset += 4; - this._brandedPartId = buffer.readUInt32LE(offset); - offset += 4; - this._skinId = buffer.readUInt32LE(offset); - offset += 4; - this._personaName = buffer.toString("utf8", offset, offset + 13); - offset += 13; - this._mcVersion = buffer.toString("utf8", offset, offset + 4); - // 40 bytes - } - - override serialize() { - const buffer = Buffer.alloc(this._size); - let offset = 0; - buffer.copy(this._header._doSerialize(), offset); - offset += this._header._size; - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; - buffer.writeUInt32LE(this._customerId, offset); - offset += 4; - buffer.writeUInt32LE(this._personaId, offset); - offset += 4; - buffer.writeUInt32LE(this._lotOwnerId, offset); - offset += 4; - buffer.writeUInt32LE(this._brandedPartId, offset); - offset += 4; - buffer.writeUInt32LE(this._skinId, offset); - offset += 4; - buffer.write(this._personaName, offset, 13, "utf8"); - offset += 13; - buffer.write(this._mcVersion, offset, 4, "utf8"); - // 40 bytes - return buffer; - } - - asJSON() { - return { - msgNo: this._msgNo, - customerId: this._customerId, - personaId: this._personaId, - lotOwnerId: this._lotOwnerId, - brandedPartId: this._brandedPartId, - skinId: this._skinId, - personaName: this._personaName, - mcVersion: this._mcVersion, - }; - } - - override toString() { - return `TLoginMessage: msgNo=${this._msgNo} customerId=${this._customerId} personaId=${this._personaId} lotOwnerId=${this._lotOwnerId} brandedPartId=${this._brandedPartId} skinId=${this._skinId} personaName=${this._personaName} mcVersion=${this._mcVersion}`; - } -} diff --git a/packages/transactions/src/TunablesMessage.ts b/packages/transactions/src/TunablesMessage.ts deleted file mode 100644 index e276e467d..000000000 --- a/packages/transactions/src/TunablesMessage.ts +++ /dev/null @@ -1,181 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { SerializedBuffer } from "../../shared/messageFactory.js"; - -/** - * A message listing the lobbies - * This is the body of a MessageNode - */ -export class TunablesMessage extends SerializedBuffer { - _msgNo: number; - _clubCreationCost: number; - _clubCreationRequiredLevel: number; - _clubOfficerRequiredLevel: number; - _inventorySizePerLevel: number; - _carsPerLevel: number; - _maxEZStreetLevel: number; - _clubSwitchCooldown: number; - _universalRepairCostModifier: number; - _universalScrapValueModifier: number; - _addCost1Day: number; - _addCost2Days: number; - _addCost3Days: number; - _addCost4Days: number; - _addCost5Days: number; - _addCost6Days: number; - _addCost7Days: number; - _tradeinModifier: number; - _simStreetMaxWager: number; - saleryPerLevel: number; - _clubMaxMembers: number; - _clubRegistrationCost: number; - _clubReRegistrationCost: number; - _classifiedAdRate: number; - _classifiedAdMaxDuration: number; - _classifiedAdMaxSize: number; - _classifiedAdMaxCountPerPlayer: number; - constructor() { - super(); - this._msgNo = 0; // 2 bytes - this._clubCreationCost = 150; // 4 bytes - this._clubCreationRequiredLevel = 1; // 4 bytes - this._clubOfficerRequiredLevel = 1; // 4 bytes - this._inventorySizePerLevel = 20; // 4 bytes - this._carsPerLevel = 3; // 4 bytes - this._maxEZStreetLevel = 5; // 4 bytes - this._clubSwitchCooldown = 1; // 4 bytes - this._universalRepairCostModifier = 3.6; // 8 bytes - this._universalScrapValueModifier = 3.6; // 8 bytes - this._addCost1Day = 1; // 4 bytes - this._addCost2Days = 2; // 4 bytes - this._addCost3Days = 3; // 4 bytes - this._addCost4Days = 4; // 4 bytes - this._addCost5Days = 5; // 4 bytes - this._addCost6Days = 6; // 4 bytes - this._addCost7Days = 7; // 4 bytes - this._tradeinModifier = 3.6; // 8 bytes - this._simStreetMaxWager = 20; // 4 bytes - this.saleryPerLevel = 6; // 4 bytes - this._clubMaxMembers = 4; // 4 bytes - this._clubRegistrationCost = 2; // 4 bytes - this._clubReRegistrationCost = 3; // 4 bytes - this._classifiedAdRate = 10; // 4 bytes - this._classifiedAdMaxDuration = 4; // 4 bytes - this._classifiedAdMaxSize = 17; // 4 bytes - this._classifiedAdMaxCountPerPlayer = 2; // 4 bytes - // total: 118 bytes - } - - override size() { - return 118; // This needs to 124 bytes, but the last 6 bytes are unknown - } - - override serialize() { - const buffer = Buffer.alloc(this.size()); - let offset = 0; // offset is 0 - buffer.writeUInt16LE(this._msgNo, offset); - offset += 2; // offset is 2 - buffer.writeUInt32LE(this._clubCreationCost, offset); - offset += 4; // offset is 6 - buffer.writeUInt32LE(this._clubCreationRequiredLevel, offset); - offset += 4; // offset is 10 - buffer.writeUInt32LE(this._clubOfficerRequiredLevel, offset); - offset += 4; // offset is 14 - buffer.writeUInt32LE(this._inventorySizePerLevel, offset); - offset += 4; // offset is 18 - buffer.writeUInt32LE(this._carsPerLevel, offset); - offset += 4; // offset is 22 - buffer.writeUInt32LE(this._maxEZStreetLevel, offset); - offset += 4; // offset is 26 - buffer.writeUInt32LE(this._clubSwitchCooldown, offset); - offset += 4; // offset is 30 - buffer.writeDoubleLE(this._universalRepairCostModifier, offset); - offset += 8; // offset is 38 - buffer.writeDoubleLE(this._universalScrapValueModifier, offset); - offset += 8; // offset is 46 - buffer.writeUInt32LE(this._addCost1Day, offset); - offset += 4; // offset is 50 - buffer.writeUInt32LE(this._addCost2Days, offset); - offset += 4; // offset is 54 - buffer.writeUInt32LE(this._addCost3Days, offset); - offset += 4; // offset is 58 - buffer.writeUInt32LE(this._addCost4Days, offset); - offset += 4; // offset is 62 - buffer.writeUInt32LE(this._addCost5Days, offset); - offset += 4; // offset is 66 - buffer.writeUInt32LE(this._addCost6Days, offset); - offset += 4; // offset is 70 - buffer.writeUInt32LE(this._addCost7Days, offset); - offset += 4; // offset is 74 - buffer.writeDoubleLE(this._tradeinModifier, offset); - offset += 8; // offset is 82 - buffer.writeUInt32LE(this._simStreetMaxWager, offset); - offset += 4; // offset is 86 - buffer.writeUInt32LE(this.saleryPerLevel, offset); - offset += 4; // offset is 90 - buffer.writeUInt32LE(this._clubMaxMembers, offset); - offset += 4; // offset is 94 - buffer.writeUInt32LE(this._clubRegistrationCost, offset); - offset += 4; // offset is 98 - buffer.writeUInt32LE(this._clubReRegistrationCost, offset); - offset += 4; // offset is 102 - buffer.writeUInt32LE(this._classifiedAdRate, offset); - offset += 4; // offset is 106 - buffer.writeUInt32LE(this._classifiedAdMaxDuration, offset); - offset += 4; // offset is 110 - buffer.writeUInt32LE(this._classifiedAdMaxSize, offset); - offset += 4; // offset is 114 - buffer.writeUInt32LE(this._classifiedAdMaxCountPerPlayer, offset); - // offset is 118 - - return buffer; - } - - override toString() { - return ` - TunablesMessage: - - msgNo=${this._msgNo} - clubCreationCost=${this._clubCreationCost} - clubCreationRequiredLevel=${this._clubCreationRequiredLevel} - clubOfficerRequiredLevel=${this._clubOfficerRequiredLevel} - inventorySizePerLevel=${this._inventorySizePerLevel} - carsPerLevel=${this._carsPerLevel} - maxEZStreetLevel=${this._maxEZStreetLevel} - clubSwitchCooldown=${this._clubSwitchCooldown} - universalRepairCostModifier=${this._universalRepairCostModifier} - universalScrapValueModifier=${this._universalScrapValueModifier} - addCost1Day=${this._addCost1Day} - addCost2Days=${this._addCost2Days} - addCost3Days=${this._addCost3Days} - addCost4Days=${this._addCost4Days} - addCost5Days=${this._addCost5Days} - addCost6Days=${this._addCost6Days} - addCost7Days=${this._addCost7Days} - tradeinModifier=${this._tradeinModifier} - simStreetMaxWager=${this._simStreetMaxWager} - saleryPerLevel=${this.saleryPerLevel} - clubMaxMembers=${this._clubMaxMembers} - clubRegistrationCost=${this._clubRegistrationCost} - clubReRegistrationCost=${this._clubReRegistrationCost} - classifiedAdRate=${this._classifiedAdRate} - classifiedAdMaxDuration=${this._classifiedAdMaxDuration} - classifiedAdMaxSize=${this._classifiedAdMaxSize} - classifiedAdMaxCountPerPlayer=${this._classifiedAdMaxCountPerPlayer} - `; - } -} diff --git a/packages/transactions/src/_getArcadeCarInfo.ts b/packages/transactions/src/_getArcadeCarInfo.ts deleted file mode 100644 index 7b0359b18..000000000 --- a/packages/transactions/src/_getArcadeCarInfo.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { ArcadeCarInfo, ArcadeCarMessage } from "./ArcadeCarMessage.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function _getArcadeCarInfo({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const getArcadeCarInfoMessage = new GenericRequestMessage(); - getArcadeCarInfoMessage.deserialize(packet.data); - - log.debug(`Received Message: ${getArcadeCarInfoMessage.toString()}`); - - const arcadeCarInfoMessage = new ArcadeCarMessage(); - arcadeCarInfoMessage._msgNo = 323; - - const car1 = new ArcadeCarInfo(); - car1._brandedPartId = 113; // Bel-air - car1._lobbyId = 0; - arcadeCarInfoMessage.addCar(car1); - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(arcadeCarInfoMessage.serialize()); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_getGameUrls.ts b/packages/transactions/src/_getGameUrls.ts deleted file mode 100644 index 323676684..000000000 --- a/packages/transactions/src/_getGameUrls.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { GameUrl, GameUrlsMessage } from "./GameUrlsMessage.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function _getGameUrls({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const getGameUrlsMessage = new GenericRequestMessage(); - getGameUrlsMessage.deserialize(packet.data); - - log.debug(`Received Message: ${getGameUrlsMessage.toString()}`); - - const gameUrlsMessage = new GameUrlsMessage(); - gameUrlsMessage._msgNo = 364; - - const url1 = new GameUrl(); - url1._urlId = 1; - url1.urlRef = "http://localhost:8080"; - gameUrlsMessage.addURL(url1); - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(gameUrlsMessage.serialize()); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_getOwnedParts.ts b/packages/transactions/src/_getOwnedParts.ts deleted file mode 100644 index be06aee88..000000000 --- a/packages/transactions/src/_getOwnedParts.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { PartsAssemblyMessage } from "./PartsAssemblyMessage.js"; -import { - fetchStateFromDatabase, - findSessionByConnectionId, -} from "../../shared/State.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -export async function _getOwnedParts({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const getOwnedPartsMessage = new GenericRequestMessage(); - getOwnedPartsMessage.deserialize(packet.data); - - log.debug(`Received Message: ${getOwnedPartsMessage.toString()}`); - - const state = fetchStateFromDatabase(); - - const session = findSessionByConnectionId(state, connectionId); - - if (!session) { - throw new ServerError("Session not found"); - } - - const ownedPartsMessage = new PartsAssemblyMessage(session.gameId); - ownedPartsMessage._msgNo = 175; - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(ownedPartsMessage.serialize()); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_getOwnedVehicles.ts b/packages/transactions/src/_getOwnedVehicles.ts deleted file mode 100644 index 0b3edc3dc..000000000 --- a/packages/transactions/src/_getOwnedVehicles.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { OwnedVehicle, OwnedVehiclesMessage } from "./OwnedVehiclesMessage.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -const vehicleList = [ - { - personId: 1, - vehicleId: 1, - brandedPartId: 113, - }, -]; - -export function getVehiclesForPerson(personId: number) { - return vehicleList.filter((vehicle) => vehicle.personId === personId); -} - -export async function _getOwnedVehicles( - args: MessageHandlerArgs, -): Promise { - const getOwnedVehiclesMessage = new GenericRequestMessage(); - getOwnedVehiclesMessage.deserialize(args.packet.data); - - args.log.debug(`Received Message: ${getOwnedVehiclesMessage.toString()}`); - - const personId = getOwnedVehiclesMessage.data.readUInt32LE(0); - - const ownedVehiclesMessage = new OwnedVehiclesMessage(); - - const vehicles = getVehiclesForPerson(personId); - - for (const vehicle of vehicles) { - const ownedVehicle = new OwnedVehicle(); - ownedVehicle._vehicleId = vehicle.vehicleId; - ownedVehicle._brandedPartId = vehicle.brandedPartId; - ownedVehiclesMessage.addVehicle(ownedVehicle); - } - - ownedVehiclesMessage._msgNo = 173; - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = args.packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(ownedVehiclesMessage.serialize()); - - return { connectionId: args.connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_getPlayerInfo.ts b/packages/transactions/src/_getPlayerInfo.ts deleted file mode 100644 index b23cc46d6..000000000 --- a/packages/transactions/src/_getPlayerInfo.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { PlayerInfoMessage } from "./PlayerInfoMessage.js"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -export async function _getPlayerInfo( - args: MessageHandlerArgs, -): Promise { - const getPlayerInfoMessage = new GenericRequestMessage(); - getPlayerInfoMessage.deserialize(args.packet.data); - - args.log.debug(`Received Message: ${getPlayerInfoMessage.toString()}`); - - const playerId = getPlayerInfoMessage.data.readUInt32LE(0); - try { - const playerInfoMessage = new PlayerInfoMessage(); - playerInfoMessage._msgNo = 108; - playerInfoMessage._playerId = playerId; - playerInfoMessage._playerName = "Drazi Crendraven"; - playerInfoMessage._currentLevel = 1; - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = args.packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(playerInfoMessage.serialize()); - - return { connectionId: args.connectionId, messages: [responsePacket] }; - } catch (error) { - throw ServerError.fromUnknown(error, "Error in _getPlayerInfo"); - } -} diff --git a/packages/transactions/src/_getPlayerPhysical.ts b/packages/transactions/src/_getPlayerPhysical.ts deleted file mode 100644 index a90454b75..000000000 --- a/packages/transactions/src/_getPlayerPhysical.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { PlayerPhysicalMessage } from "./PlayerPhysicalMessage.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -export async function _getPlayerPhysical({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const getPlayerPhysicalMessage = new GenericRequestMessage(); - getPlayerPhysicalMessage.deserialize(packet.data); - - log.debug(`Received Message: ${getPlayerPhysicalMessage.toString()}`); - - const playerId = getPlayerPhysicalMessage.data.readUInt32LE(0); - - const playerPhysicalMessage = new PlayerPhysicalMessage(); - playerPhysicalMessage._msgNo = 265; - playerPhysicalMessage._playerId = playerId; - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(playerPhysicalMessage.serialize()); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_getPlayerRaceHistory.ts b/packages/transactions/src/_getPlayerRaceHistory.ts deleted file mode 100644 index 265d73e14..000000000 --- a/packages/transactions/src/_getPlayerRaceHistory.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { ServerMessage } from "../../shared/src/ServerMessage.js"; -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { - PlayerRacingHistoryMessage, - RacingHistoryRecordEntry, -} from "./PlayerRacingHistoryMessage.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -export enum RaceType { - RACES_TESTDRIVE = 14, - RACES_SIM_STREET = 16, - RACES_SIM_PRO = 17, - RACES_SIM_DRAG = 18, - RACES_SIM_TIMETRIAL = 19, - - RACES_ARC_STUNT = 23, - RACES_ARC_TIMETRIAL = 25, - RACES_TRADEWINDOW = 26, -} - -export type RacingHistoryRecord = { - raceType: RaceType; // 4 bytes - numberOfRacesEntered: number; // 4 bytes - numberOfRacesFinished: number; // 4 bytes - numberOfRacesWon: number; // 4 bytes - numberOfCarsWon: number; // 4 bytes - numberOfCarsLost: number; // 4 bytes - numberOfChampionshipsWon: number; // 4 bytes - cashWon: number; // 4 bytes -}; -const racingHistoryRecords: RacingHistoryRecord[] = [ - { - raceType: RaceType.RACES_TESTDRIVE, - numberOfRacesEntered: 0, - numberOfRacesFinished: 0, - numberOfRacesWon: 0, - numberOfCarsWon: 0, - numberOfCarsLost: 0, - numberOfChampionshipsWon: 0, - cashWon: 0, - }, -]; - -export async function _getPlayerRaceHistory({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const getPlayerRaceHistoryMessage = new GenericRequestMessage(); - getPlayerRaceHistoryMessage.deserialize(packet.data); - - log.debug(`Received Message: ${getPlayerRaceHistoryMessage.toString()}`); - - const playerId = getPlayerRaceHistoryMessage.data.readInt32LE(0); - - log.debug(`Player ID: ${playerId}`); - - const playerRacingHistoryMessage = new PlayerRacingHistoryMessage(); - playerRacingHistoryMessage._msgId = 362; - playerRacingHistoryMessage._userId = playerId; - - for (const record of racingHistoryRecords) { - const recordEntry = new RacingHistoryRecordEntry(); - recordEntry.raceType = record.raceType; - recordEntry.numberOfRacesEntered = record.numberOfRacesEntered; - recordEntry.numberOfRacesFinished = record.numberOfRacesFinished; - recordEntry.numberOfRacesWon = record.numberOfRacesWon; - recordEntry.numberOfCarsWon = record.numberOfCarsWon; - recordEntry.numberOfCarsLost = record.numberOfCarsLost; - recordEntry.numberOfChampionshipsWon = record.numberOfChampionshipsWon; - recordEntry.cashWon = record.cashWon; - - playerRacingHistoryMessage.addRecord(recordEntry); - } - - const responsePacket = new ServerMessage( - packet._header.sequence, - 8, - playerRacingHistoryMessage.serialize(), - ); - - log.debug(`Sending Message: ${playerRacingHistoryMessage.toString()}`); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_getStockCarInfo.ts b/packages/transactions/src/_getStockCarInfo.ts deleted file mode 100644 index af0e89cdb..000000000 --- a/packages/transactions/src/_getStockCarInfo.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { StockCarInfoMessage } from "./StockCarInfoMessage.js"; -import { StockCar } from "./StockCar.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function _getStockCarInfo({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const getStockCarInfoMessage = new GenericRequestMessage(); - getStockCarInfoMessage.deserialize(packet.data); - - log.debug(`Received Message: ${getStockCarInfoMessage.toString()}`); - - const stockCarInfoMessage = new StockCarInfoMessage(200, 0, 105); - stockCarInfoMessage.starterCash = 200; - stockCarInfoMessage.dealerId = 8; - stockCarInfoMessage.brand = 105; - - stockCarInfoMessage.addStockCar(new StockCar(113, 20, false)); // Bel-air - stockCarInfoMessage.addStockCar(new StockCar(104, 15, true)); // Fairlane - Deal of the day - stockCarInfoMessage.addStockCar(new StockCar(402, 20, false)); // Century - - log.debug(`Sending Message: ${stockCarInfoMessage.toString()}`); - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(stockCarInfoMessage.serialize()); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_getTunables.ts b/packages/transactions/src/_getTunables.ts deleted file mode 100644 index b6973b739..000000000 --- a/packages/transactions/src/_getTunables.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { GenericRequestMessage } from "./GenericRequestMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { TunablesMessage } from "./TunablesMessage.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function _getTunables({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const getTunablesMessage = new GenericRequestMessage(); - getTunablesMessage.deserialize(packet.data); - - log.debug(`Received Message: ${getTunablesMessage.toString()}`); - - const tunablesMessage = new TunablesMessage(); - tunablesMessage._msgNo = 390; - - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = packet._header.sequence; - responsePacket._header.flags = 8; - - responsePacket.setBuffer(tunablesMessage.serialize()); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/_logout.ts b/packages/transactions/src/_logout.ts deleted file mode 100644 index 5a9694a39..000000000 --- a/packages/transactions/src/_logout.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { GenericReplyMessage } from "./GenericReplyMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function _logout({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - // Create new response packet - const pReply = new GenericReplyMessage(); - pReply.msgNo = 101; - pReply.msgReply = 106; - const rPacket = new OldServerMessage(); - rPacket._header.sequence = packet._header.sequence + 1; - rPacket._header.flags = 8; - rPacket.setBuffer(pReply.serialize()); - - log.debug(`Logout: ${rPacket.toString()}`); - - return { connectionId, messages: [rPacket] }; -} diff --git a/packages/transactions/src/clientConnect.ts b/packages/transactions/src/clientConnect.ts deleted file mode 100644 index 5d9a6a3da..000000000 --- a/packages/transactions/src/clientConnect.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { GenericReply } from "./GenericReplyMessage.js"; -import { TClientConnectMessage } from "./TClientConnectMessage.js"; -import { getDatabaseServer } from "../../database/src/DatabaseManager.js"; -import { - McosEncryption, - McosSession, - addEncryption, - addSession, - fetchStateFromDatabase, - getEncryption, -} from "../../shared/State.js"; -import { - createCommandEncryptionPair, - createDataEncryptionPair, -} from "../../gateway/src/encryption.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function clientConnect({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - /** - * Let's turn it into a ClientConnectMsg - */ - const newMessage = new TClientConnectMessage(); - - newMessage.deserialize(packet.serialize()); - - log.debug(`ClientConnectMsg: ${newMessage.toString()}`); - - const customerId = newMessage._customerId; - if (typeof customerId !== "number") { - throw new TypeError( - `customerId is wrong type. Expected 'number', got ${typeof customerId}`, - ); - } - - const state = fetchStateFromDatabase(); - - const existingEncryption = getEncryption(state, connectionId); - - if (existingEncryption) { - log.debug("Encryption already exists for this connection"); - return { connectionId, messages: [] }; - } - - let result; - - log.debug(`Looking up the session key for ${customerId}...`); - - result = await getDatabaseServer({ - log, - }).fetchSessionKeyByCustomerId(customerId); - log.debug(`Session key found for ${customerId}`); - - const newCommandEncryptionPair = createCommandEncryptionPair( - result.sessionKey, - ); - - const newDataEncryptionPair = createDataEncryptionPair(result.sessionKey); - - const newEncryption = new McosEncryption({ - connectionId, - commandEncryptionPair: newCommandEncryptionPair, - dataEncryptionPair: newDataEncryptionPair, - }); - - const updatedState = addEncryption(state, newEncryption); - - const session = new McosSession({ - connectionId, - gameId: newMessage._personaId, - }); - - addSession(updatedState, session).save(); - - const personaId = newMessage._personaId; - - const personaName = newMessage._personaName; - - log.debug(`cust: ${customerId} ID: ${personaId} Name: ${personaName}`); - - // Create new response packet - const pReply = new GenericReply(); - pReply.msgNo = 101; - pReply.msgReply = newMessage._msgNo; - - const responsePacket = new OldServerMessage(); - responsePacket.setBuffer(pReply.serialize()); - responsePacket._header.sequence = packet._header.sequence; - - log.debug(`Response: ${responsePacket.serialize().toString("hex")}`); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/getLobbies.ts b/packages/transactions/src/getLobbies.ts deleted file mode 100644 index a629071d5..000000000 --- a/packages/transactions/src/getLobbies.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { LobbyInfo, LobbyMessage } from "./LobbyMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; -import { EntryFeePurseMessage, PurseEntry } from "./EntryFeePurseMessage.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ - -async function _getLobbies({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - log.debug("In _getLobbies..."); - - log.debug(`Received Message: ${packet.toString()}`); - - // Create new response packet - const lobbiesResponsePacket = new OldServerMessage(); - lobbiesResponsePacket._header.sequence = packet._header.sequence; - lobbiesResponsePacket._header.flags = 8; - - const lobbyResponse = new LobbyMessage(); - lobbyResponse._msgNo = 325; - lobbyResponse._shouldExpectMoreMessages = false; - - const lobby = new LobbyInfo(); - lobby._lobbyId = 1; - lobby._lobbyName = "Lobby 1"; - lobby._topDog = "Drazi Crendraven"; - - log.debug(`Logging LobbyInfo: ${lobby.serialize().toString("hex")}`); - - lobbyResponse.addLobby(lobby); - - log.debug( - `Logging LobbyMessage: ${lobbyResponse.serialize().toString("hex")}`, - ); - - lobbiesResponsePacket.setBuffer(lobbyResponse.serialize()); - - // Handle purse entries - const purseEntry = new PurseEntry(); - purseEntry._entryFee = 100; - purseEntry._purse = 1000; - - const perseEntryResponse = new EntryFeePurseMessage(); - perseEntryResponse._msgNo = 408; - perseEntryResponse._shouldExpectMoreMessages = false; - perseEntryResponse.addEntry(purseEntry); - - log.debug( - `Logging EntryFeePurseMessage: ${perseEntryResponse - .serialize() - .toString("hex")}`, - ); - - const perseEntriesResponsePacket = new OldServerMessage(); - perseEntriesResponsePacket._header.sequence = packet._header.sequence; - perseEntriesResponsePacket._header.flags = 8; - - perseEntriesResponsePacket.setBuffer(perseEntryResponse.serialize()); - - return { - connectionId, - messages: [lobbiesResponsePacket, perseEntriesResponsePacket], - }; -} -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function getLobbies({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - const result = await _getLobbies({ connectionId, packet, log }); - log.debug("Dumping Lobbies response packet..."); - result.messages.forEach((msg) => { - log.debug(msg.toString()); - }); - log.debug(result.messages.join().toString()); - return { - connectionId, - messages: result.messages, - }; -} diff --git a/packages/transactions/src/handlers.ts b/packages/transactions/src/handlers.ts deleted file mode 100644 index dff14f1aa..000000000 --- a/packages/transactions/src/handlers.ts +++ /dev/null @@ -1,107 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { login } from "./login.js"; -import { trackingPing } from "./trackingPing.js"; -import { clientConnect } from "./clientConnect.js"; -import { getLobbies } from "./getLobbies.js"; -import { _getOwnedVehicles } from "./_getOwnedVehicles.js"; -import { _getPlayerInfo } from "./_getPlayerInfo.js"; -import { _getPlayerPhysical } from "./_getPlayerPhysical.js"; -import { _getOwnedParts } from "./_getOwnedParts.js"; -import { _getPlayerRaceHistory } from "./_getPlayerRaceHistory.js"; -import { _getTunables } from "./_getTunables.js"; -import { _getGameUrls } from "./_getGameUrls.js"; -import { _getArcadeCarInfo } from "./_getArcadeCarInfo.js"; -import { _getStockCarInfo } from "./_getStockCarInfo.js"; -import { _logout } from "./_logout.js"; -import { ServerMessage } from "../../shared/src/ServerMessage.js"; - -export interface MessageHandlerArgs { - connectionId: string; - packet: OldServerMessage; - log: import("pino").Logger; -} - -export interface MessageHandlerResult { - connectionId: string; - messages: OldServerMessage[] | ServerMessage[]; -} - -export interface MessageHandler { - name: string; - handler: (args: MessageHandlerArgs) => Promise; -} - -export const messageHandlers: MessageHandler[] = [ - { - name: "MC_TRACKING_MSG", - handler: trackingPing, - }, - { - name: "MC_CLIENT_CONNECT_MSG", - handler: clientConnect, - }, - { - name: "MC_LOGIN", - handler: login, - }, - { - name: "MC_LOGOUT", - handler: _logout, - }, - { - name: "MC_GET_LOBBIES", - handler: getLobbies, - }, - { - name: "MC_STOCK_CAR_INFO", - handler: _getStockCarInfo, - }, - { - name: "MC_GET_ARCADE_CARS", - handler: _getArcadeCarInfo, - }, - { - name: "MC_GET_GAME_URLS", - handler: _getGameUrls, - }, - { - name: "MC_GET_MCO_TUNABLES", - handler: _getTunables, - }, - { - name: "MC_GET_OWNED_VEHICLES", - handler: _getOwnedVehicles, - }, - { - name: "MC_GET_PLAYER_INFO", - handler: _getPlayerInfo, - }, - { - name: "MC_GET_PLAYER_PHYSICAL", - handler: _getPlayerPhysical, - }, - { - name: "MC_GET_OWNED_PARTS", - handler: _getOwnedParts, - }, - { - name: "MC_GET_PLAYER_RACING_HISTORY", - handler: _getPlayerRaceHistory, - }, -]; diff --git a/packages/transactions/src/internal.ts b/packages/transactions/src/internal.ts deleted file mode 100644 index 3a9837868..000000000 --- a/packages/transactions/src/internal.ts +++ /dev/null @@ -1,293 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { ServerError } from "../../shared/errors/ServerError.js"; -import { messageHandlers } from "./handlers.js"; -import { getServerLogger } from "../../shared/log.js"; -import { - fetchStateFromDatabase, - getEncryption, - updateEncryption, -} from "../../shared/State.js"; -// eslint-disable-next-line no-unused-vars -import { - SerializedBuffer, - OldServerMessage, -} from "../../shared/messageFactory.js"; -import { getServerConfiguration } from "../../shared/Configuration.js"; -import { ServerMessage } from "../../shared/src/ServerMessage.js"; - -/** - * - * - * @param {ServerMessage} message - * @return {boolean} - */ -function isMessageEncrypted( - message: OldServerMessage | ServerMessage, -): boolean { - return message._header.flags - 8 >= 0; -} - -/** - * Return the string representation of the numeric opcode - * - * @param {number} messageID - * @return {string} - */ -function _MSG_STRING(messageID: number): string { - const messageIds = [ - { id: 105, name: "MC_LOGIN" }, // 0x69 - { id: 106, name: "MC_LOGOUT" }, // 0x6a - { id: 108, name: "MC_GET_PLAYER_INFO" }, // 0x6c - { id: 109, name: "MC_SET_OPTIONS" }, // 0x6d - { id: 122, name: "MC_PLAYER_INFO" }, // 0x7a"} - { id: 141, name: "MC_STOCK_CAR_INFO" }, // 0x8d - { id: 172, name: "MC_GET_OWNED_VEHICLES" }, // 0xac"} - { id: 173, name: "MC_OWNED_VEHICLES_LIST" }, // 0xad"} - { id: 174, name: "MC_GET_OWNED_PARTS" }, // 0xae"} - { id: 213, name: "MC_LOGIN_COMPLETE" }, // 0xd5 - { id: 264, name: "MC_GET_PLAYER_PHYSICAL" }, // 0x108 - { id: 265, name: "MC_PLAYER_PHYSICAL_INFO" }, // 0x109 - { id: 363, name: "MC_GET_GAME_URLS" }, // 0x16b"} - { id: 266, name: "MC_UPDATE_PLAYER_PHYSICAL" }, // 0x10a - { id: 322, name: "MC_GET_ARCADE_CARS" }, // 0x142"} - { id: 324, name: "MC_GET_LOBBIES" }, // 0x144 - { id: 325, name: "MC_LOBBIES" }, // 0x145 - { id: 361, name: "MC_GET_PLAYER_RACING_HISTORY" }, // 0x169"} - { id: 362, name: "MC_PLAYER_RACING_HISTORY" }, // 0x16a"} - { id: 389, name: "MC_GET_MCO_TUNABLES" }, // 0x185"} - { id: 391, name: "MC_CLUB_GET_INVITATIONS" }, // 0x187 - { id: 438, name: "MC_CLIENT_CONNECT_MSG" }, // 0x1b6 - { id: 440, name: "MC_TRACKING_MSG" }, - ]; - const result = messageIds.find((id) => id.id === messageID); - - if (typeof result !== "undefined") { - return result.name; - } - - return "Unknown"; -} - -/** - * Route or process MCOTS commands - * @param {import("./handlers.js").MessageHandlerArgs} args - * @returns {Promise} - */ -async function processInput({ - connectionId, - packet, - log = getServerLogger({ - module: "transactionServer", - }), -}: import("./handlers.js").MessageHandlerArgs): Promise< - import("./handlers.js").MessageHandlerResult -> { - const currentMessageNo = packet._msgNo; - const currentMessageString = _MSG_STRING(currentMessageNo); - - log.debug( - `We are attempting to process a message with id ${currentMessageNo}(${currentMessageString})`, - ); - - const result = messageHandlers.find( - (msg) => msg.name === currentMessageString, - ); - - if (typeof result !== "undefined") { - try { - const responsePackets = await result.handler({ - connectionId, - packet, - log, - }); - return responsePackets; - } catch (error) { - const err = new ServerError( - `Error handling packet: ${String(error)}`, - ); - throw err; - } - } - - throw new ServerError( - `Message Number Not Handled: ${currentMessageNo} (${currentMessageString}`, - ); -} - -/** - * @param {object} args - * @param {string} args.connectionId - * @param {SerializedBuffer} args.message - * @param {import("pino").Logger} [args.log=getServerLogger({ module: "transactionServer" })] - * @returns {Promise<{ - * connectionId: string, - * messages: SerializedBuffer[] - * }>} - */ -export async function receiveTransactionsData({ - connectionId, - message, - log = getServerLogger({ - module: "transactionServer", - }), -}: { - connectionId: string; - message: SerializedBuffer; - log?: import("pino").Logger; -}): Promise<{ - connectionId: string; - messages: SerializedBuffer[]; -}> { - log.level = getServerConfiguration({}).logLevel ?? "info"; - - log.debug(`Received Transaction Server packet: ${connectionId}`); - - // Going to use ServerMessage in this module - - const inboundMessage = new OldServerMessage(); - inboundMessage._doDeserialize(message.data); - log.debug( - `Received Transaction Server packet: ${inboundMessage.toString()}`, - ); - - // Is the message encrypted? - if (isMessageEncrypted(inboundMessage)) { - log.debug("Message is encrypted"); - // Get the encryyption settings for this connection - const state = fetchStateFromDatabase(); - - const encryptionSettings = getEncryption(state, connectionId); - - if (typeof encryptionSettings === "undefined") { - throw new ServerError( - `Unable to locate encryption settings for connection ${connectionId}`, - ); - } - - // log the old buffer - log.debug(`Encrypted buffer: ${inboundMessage.data.toString("hex")}`); - - try { - const decryptedMessage = encryptionSettings.dataEncryption.decrypt( - inboundMessage.data, - ); - updateEncryption(state, encryptionSettings).save(); - - // Verify the length of the message - verifyLength(inboundMessage.data, decryptedMessage); - - // Assuming the message was decrypted successfully, update the buffer - log.debug(`Decrypted buffer: ${decryptedMessage.toString("hex")}`); - - inboundMessage.setBuffer(decryptedMessage); - inboundMessage._header.flags -= 8; - inboundMessage.updateMsgNo(); - - log.debug(`Decrypted message: ${inboundMessage.toString()}`); - } catch (error) { - throw new ServerError( - `Unable to decrypt message: ${String(error)}`, - ); - } - } - - log.debug("Calling processInput()"); - const response = await processInput({ - connectionId, - packet: inboundMessage, - log, - }); - - // Loop through the outbound messages and encrypt them - const outboundMessages: SerializedBuffer[] = []; - - response.messages.forEach((outboundMessage) => { - log.debug(`Outbound message: ${outboundMessage.toString()}`); - - if (isMessageEncrypted(outboundMessage)) { - const state = fetchStateFromDatabase(); - - const encryptionSettings = getEncryption(state, connectionId); - - if (typeof encryptionSettings === "undefined") { - throw new ServerError( - `Unable to locate encryption settings for connection ${connectionId}`, - ); - } - - // log the old buffer - log.debug( - `Outbound buffer: ${outboundMessage.data.toString("hex")}`, - ); - - try { - const encryptedMessage = - encryptionSettings.dataEncryption.encrypt( - outboundMessage.data, - ); - updateEncryption(state, encryptionSettings).save(); - - // Verify the length of the message - verifyLength(outboundMessage.data, encryptedMessage); - - // Assuming the message was decrypted successfully, update the buffer - - log.debug( - `Encrypted buffer: ${encryptedMessage.toString("hex")}`, - ); - - outboundMessage.setBuffer(encryptedMessage); - - log.debug(`Encrypted message: ${outboundMessage.toString()}`); - - const outboundRawMessage = new SerializedBuffer(); - outboundRawMessage.setBuffer(outboundMessage.serialize()); - log.debug( - `Encrypted message: ${outboundRawMessage.toString()}`, - ); - outboundMessages.push(outboundRawMessage); - } catch (error) { - throw new ServerError( - `Unable to encrypt message: ${String(error)}`, - ); - } - } else { - const outboundRawMessage = new SerializedBuffer(); - outboundRawMessage.setBuffer(outboundMessage.serialize()); - log.debug(`Outbound message: ${outboundRawMessage.toString()}`); - outboundMessages.push(outboundRawMessage); - } - }); - - return { - connectionId, - messages: outboundMessages, - }; -} - -/** - * @param {Buffer} buffer - * @param {Buffer} buffer2 - */ -export function verifyLength(buffer: Buffer, buffer2: Buffer) { - if (buffer.length !== buffer2.length) { - throw new ServerError( - `Length mismatch: ${buffer.length} !== ${buffer2.length}`, - ); - } -} diff --git a/packages/transactions/src/login.ts b/packages/transactions/src/login.ts deleted file mode 100644 index 5558578dc..000000000 --- a/packages/transactions/src/login.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { GenericReplyMessage } from "./GenericReplyMessage.js"; -import { TLoginMessage } from "./TLoginMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function login({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - // Read the inbound packet - const loginMessage = new TLoginMessage(); - loginMessage.deserialize(packet.serialize()); - log.debug(`Received LoginMessage: ${loginMessage.toString()}`); - - // Create new response packet - const pReply = new GenericReplyMessage(); - pReply.msgNo = 213; - pReply.msgReply = 105; - const responsePacket = new OldServerMessage(); - responsePacket._header.sequence = packet._header.sequence; - responsePacket._header.flags = 8; - responsePacket.setBuffer(pReply.serialize()); - - log.debug(`Response: ${responsePacket.toString()}`); - - return { connectionId, messages: [responsePacket] }; -} diff --git a/packages/transactions/src/trackingPing.ts b/packages/transactions/src/trackingPing.ts deleted file mode 100644 index 8aa28c2dc..000000000 --- a/packages/transactions/src/trackingPing.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { GenericReplyMessage } from "./GenericReplyMessage.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { MessageHandlerArgs, MessageHandlerResult } from "./handlers.js"; - -/** - * @param {MessageHandlerArgs} args - * @return {Promise} - */ -export async function trackingPing({ - connectionId, - packet, - log, -}: MessageHandlerArgs): Promise { - // Create new response packet - const pReply = new GenericReplyMessage(); - pReply.msgNo = 101; - pReply.msgReply = 440; - const rPacket = new OldServerMessage(); - rPacket._header.sequence = packet._header.sequence; - rPacket._header.flags = 8; - - rPacket.setBuffer(pReply.serialize()); - - log.debug(`TrackingPing: ${rPacket.toString()}`); - - return { connectionId, messages: [] }; -} diff --git a/packages/transactions/test/LobbyMessage.test.ts b/packages/transactions/test/LobbyMessage.test.ts deleted file mode 100644 index 3678ac6fb..000000000 --- a/packages/transactions/test/LobbyMessage.test.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { LobbyInfo, LobbyMessage } from "../src/LobbyMessage.js"; -import { describe, expect, it } from "vitest"; - -describe("LobbyMessage", () => { - describe(".size()", () => { - it("should have a starting value of 5", () => { - // Arrange - const testMessage = new LobbyMessage(); - - // Assert - expect(testMessage.size()).toBe(5); - }); - }); - - describe(".serialize()", () => { - it("should return a buffer of the correct size", () => { - // Arrange - const testMessage = new LobbyMessage(); - - // Act - const result = testMessage.serialize(); - - // Assert - expect(result).toBeInstanceOf(Buffer); - expect(result.length).toBe(5); - }); - }); -}); - -describe("LobbyInfo", () => { - describe(".size()", () => { - it("should have a starting value of 563", () => { - // Arrange - const testMessage = new LobbyInfo(); - - // Assert - expect(testMessage.size()).toBe(563); - }); - }); - - describe(".serialize()", () => { - it("should return a buffer of the correct size", () => { - // Arrange - const testMessage = new LobbyInfo(); - - // Act - const result = testMessage.serialize(); - - // Assert - expect(result).toBeInstanceOf(Buffer); - expect(result.length).toBe(563); - }); - }); - - describe(".deserialize()", () => { - it("should throw an error when passed a buffer of the wrong size", () => { - // Arrange - const testMessage = new LobbyInfo(); - const buffer = Buffer.alloc(1); - - // Act - const testFunction = () => { - testMessage.deserialize(buffer); - }; - - // Assert - expect(testFunction).toThrow( - "LobbyInfo.deserialize() expected 563 bytes but got 1 bytes", - ); - }); - - it("should not throw an error when passed a buffer of the correct size", () => { - // Arrange - const testMessage = new LobbyInfo(); - const buffer = Buffer.alloc(563); - - // Act - const testFunction = () => { - testMessage.deserialize(buffer); - }; - - // Assert - expect(testFunction).not.toThrow(); - }); - - it("should set the correct values when passed a buffer of the correct size", () => { - // Arrange - const testMessage = new LobbyInfo(); - const buffer = Buffer.alloc(563); - - // Act - testMessage.deserialize(buffer); - - // Assert - expect(testMessage.size()).toBe(563); - - expect(testMessage._lobbyId).toBe(0); - }); - }); -}); diff --git a/packages/transactions/test/OwnedVehiclesMessage.test.ts b/packages/transactions/test/OwnedVehiclesMessage.test.ts deleted file mode 100644 index 10e28695a..000000000 --- a/packages/transactions/test/OwnedVehiclesMessage.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { - OwnedVehiclesMessage, - OwnedVehicle, -} from "../src/OwnedVehiclesMessage.js"; -import { describe, it, expect } from "vitest"; - -describe("OwnedVehiclesMessage", () => { - it("should serialize", () => { - // Arrange - const message = new OwnedVehiclesMessage(); - message._msgNo = 100; - - // Act - const buffer = message.serialize(); - - // Assert - expect(buffer.subarray(0, 4)).toEqual( - Buffer.from([0x64, 0x00, 0x00, 0x00]), - ); - }); -}); - -describe("OwnedVehicle", () => { - it("should serialize", () => { - // Arrange - const message = new OwnedVehicle(); - message._vehicleId = 100; - message._brandedPartId = 200; - - // Act - const buffer = message.serialize(); - - // Assert - expect(buffer.subarray(0, 8)).toEqual( - Buffer.from([0x64, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00]), - ); - }); -}); diff --git a/packages/transactions/test/PartsAssemblyMessage.test.ts b/packages/transactions/test/PartsAssemblyMessage.test.ts deleted file mode 100644 index 326ed88e2..000000000 --- a/packages/transactions/test/PartsAssemblyMessage.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { PartsAssemblyMessage, Part } from "../src/PartsAssemblyMessage.js"; -import { describe, it, expect } from "vitest"; - -describe("PartsAssemblyMessage", () => { - it("should serialize", () => { - // Arrange - const message = new PartsAssemblyMessage(100); - message._msgNo = 100; - - // Act - const buffer = message.serialize(); - - // Assert - expect(buffer.subarray(0, 7)).toEqual( - Buffer.from([0x64, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00]), - ); - }); -}); - -describe("Part", () => { - it("should serialize", () => { - // Arrange - const message = new Part(); - message._partId = 100; // 0x64 - message._parentPartId = 200; // 0xc8 - message._brandedPartId = 300; // 0x12c - message._repairPrice = 400; // 0x190 - message._junkPrice = 500; // 0x1f4 - message._wear = 600; // 0x258 - message._attachmentPoint = 7; // 0x7 - message._damage = 8; // 0x8 - message._retailPrice = 900; // 0x384 - message._maxWear = 1000; // 0x3e8 - - // Act - const buffer = message.serialize(); - - // Assert - expect(buffer.subarray(0, 34)).toEqual( - Buffer.from([ - 0x64, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x2c, 0x01, - 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, - 0x58, 0x02, 0x00, 0x00, 0x07, 0x08, 0x84, 0x03, 0x00, 0x00, - 0xe8, 0x03, 0x00, 0x00, - ]), - ); - }); -}); diff --git a/packages/transactions/test/PlayerInfoMessage.test.ts b/packages/transactions/test/PlayerInfoMessage.test.ts deleted file mode 100644 index ff9dd5eb8..000000000 --- a/packages/transactions/test/PlayerInfoMessage.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { PlayerInfoMessage } from "../src/PlayerInfoMessage.js"; -import { describe, it, expect } from "vitest"; - -describe("PlayerInfoMessage", () => { - it("should serialize", () => { - // Arrange - const message = new PlayerInfoMessage(); - message._msgNo = 100; - - // Act - const buffer = message.serialize(); - - // Assert - expect(buffer.subarray(0, 4)).toEqual( - Buffer.from([0x64, 0x00, 0x00, 0x00]), - ); - }); -}); diff --git a/packages/transactions/test/PlayerRacingHistoryMessage.test.ts b/packages/transactions/test/PlayerRacingHistoryMessage.test.ts deleted file mode 100644 index 15366a3f4..000000000 --- a/packages/transactions/test/PlayerRacingHistoryMessage.test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { PlayerRacingHistoryMessage } from "../src/PlayerRacingHistoryMessage.js"; -import { expect, test } from "vitest"; - -test("Create PlayerRacingHistoryMessage instance", () => { - const message = new PlayerRacingHistoryMessage(); - // Assert that the instance is created successfully - expect(message).toBeInstanceOf(PlayerRacingHistoryMessage); -}); diff --git a/packages/transactions/test/TClientConnectMessage.test.ts b/packages/transactions/test/TClientConnectMessage.test.ts deleted file mode 100644 index dcf6b5de3..000000000 --- a/packages/transactions/test/TClientConnectMessage.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import { describe, it, expect } from "vitest"; -import { TClientConnectMessage } from "../src/TClientConnectMessage.js"; - -describe("TClientConnectMessage", () => { - describe(".byteLength", () => { - it("should have a value of 51", () => { - // Arrange - const testMessage = new TClientConnectMessage(); - - // Assert - expect(testMessage.size()).toBe(51); - }); - }); -}); diff --git a/packages/transactions/test/_getPlayerRaceHistory.test.ts b/packages/transactions/test/_getPlayerRaceHistory.test.ts deleted file mode 100644 index e81239a76..000000000 --- a/packages/transactions/test/_getPlayerRaceHistory.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { describe, it, expect } from "vitest"; -import { _getPlayerRaceHistory } from "../src/_getPlayerRaceHistory.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { mockPino } from "../../../test/factoryMocks.js"; -import { getServerLogger } from "../../shared/log.js"; - -describe("_getPlayerRaceHistory", () => { - it("should return a PlayerRacingHistoryMessage", async () => { - const incomingMessage = new OldServerMessage(); - incomingMessage.internalBuffer = Buffer.from([ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x01, - ]); - mockPino(); - const result = await _getPlayerRaceHistory({ - connectionId: "0", - packet: incomingMessage, - log: getServerLogger({}), - }); - - expect(result).toBeDefined(); - }); -}); diff --git a/packages/transactions/test/clientConnect.test.ts b/packages/transactions/test/clientConnect.test.ts deleted file mode 100644 index 95892adc1..000000000 --- a/packages/transactions/test/clientConnect.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { State } from "../../shared/State.js"; -import { getServerLogger } from "../../shared/log.js"; -import { clientConnect } from "../src/clientConnect.js"; -import { describe, it, expect } from "vitest"; -import { ServerError } from "../../shared/errors/ServerError.js"; -import { getDatabaseServer } from "../../database/src/DatabaseManager.js"; -import { TClientConnectMessage } from "../src/TClientConnectMessage.js"; -import { mockPino } from "../../../test/factoryMocks.js"; - -describe("clientConnect", () => { - it("throws when connection is not found", async () => { - // arrange - const customerId = 1234; - const connectionId = "test"; - const sessionKey = - "1234567890123456123456789012345612345678901234561234567890123456"; - const contextId = "test"; - const incomingMessage = new TClientConnectMessage(); - incomingMessage._customerId = customerId; - - mockPino(); - const log = getServerLogger({}); - const state: State = { - encryptions: {}, - sessions: {}, - filePaths: {}, - sockets: {}, - queuedConnections: {}, - onDataHandlers: {}, - save() {}, - }; - getDatabaseServer().updateSessionKey( - customerId, - sessionKey, - contextId, - connectionId, - ); - - // act - try { - await clientConnect({ - connectionId, - packet: incomingMessage, - log, - }); - } catch (error) { - // assert - expect(error).toEqual( - new ServerError( - `Encryption not found for connection ${connectionId}`, - ), - ); - } - }); -}); diff --git a/packages/transactions/test/getLobbies.test.ts b/packages/transactions/test/getLobbies.test.ts deleted file mode 100644 index a17c625fe..000000000 --- a/packages/transactions/test/getLobbies.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { mockPino } from "../../../test/factoryMocks.js"; -import { getServerLogger } from "../../shared/log.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { getLobbies } from "../src/getLobbies.js"; -import { describe, expect, it } from "vitest"; - -describe("getLobbies", () => { - it("should return a promise", async () => { - // arrange - const connectionId = "1"; - const packet = new OldServerMessage(); - mockPino(); - const log = getServerLogger({}); - - // act - const result = await getLobbies({ - connectionId, - packet, - log, - }); - - const resultMessage = result.messages[0].serialize().toString("hex"); - - // assert - expect(resultMessage).toMatch(/4102544f4d43/); - }); -}); diff --git a/packages/transactions/test/login.test.ts b/packages/transactions/test/login.test.ts deleted file mode 100644 index 691d6a934..000000000 --- a/packages/transactions/test/login.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getServerLogger } from "../../shared/log.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { login } from "../src/login.js"; -import { describe, it, expect } from "vitest"; -import { mockPino } from "../../../test/factoryMocks.js"; - -describe("login", () => { - it("returns a message", async () => { - // arrange - const connectionId = "test"; - const incomingMessage = new OldServerMessage(); - const imcommingBuffer = Buffer.from(JSON.stringify(incomingMessage)); - incomingMessage.setBuffer(imcommingBuffer); - mockPino(); - const log = getServerLogger({}); - - // act - const result = await login({ - connectionId, - packet: incomingMessage, - log, - }); - - // assert - expect(result.messages[0]).toBeInstanceOf(OldServerMessage); - }); -}); diff --git a/packages/transactions/test/trackingPing.test.ts b/packages/transactions/test/trackingPing.test.ts deleted file mode 100644 index 5fcb9f5f5..000000000 --- a/packages/transactions/test/trackingPing.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { P } from "vitest/dist/reporters-5f784f42.js"; -import { getServerLogger } from "../../shared/log.js"; -import { OldServerMessage } from "../../shared/messageFactory.js"; -import { trackingPing } from "../src/trackingPing.js"; -import { describe, test, expect, vi } from "vitest"; - -describe("trackingPing", () => { - test("does not return a message", async () => { - // arrange - const inboundMessage = new OldServerMessage(); - vi.mock("pino", async () => { - const actual = await vi.importActual("pino"); - return { - ...(actual as P), - }; - }); - const log = getServerLogger({}); - - // act - const { messages } = await trackingPing({ - connectionId: "test", - packet: inboundMessage, - log, - }); - expect(messages.length).toBe(0); - }); -}); diff --git a/prettierrc b/prettierrc index d1039fbcf..e74ed9ff3 100644 --- a/prettierrc +++ b/prettierrc @@ -3,4 +3,4 @@ "tabWidth": 4, "semi": false, "singleQuote": true -} \ No newline at end of file +} diff --git a/pull_nginx_image.sh b/pull_nginx_image.sh new file mode 100755 index 000000000..3aad2cc2f --- /dev/null +++ b/pull_nginx_image.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +wget https://archive.org/download/nginx_1.9.8.tar/nginx_1.9.8.tar.gz +gunzip nginx_1.9.8.tar.gz +docker load -i nginx_1.9.8.tar diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..1c618c86c --- /dev/null +++ b/requirements.txt @@ -0,0 +1,33 @@ +# This file is @generated by PDM. +# Please do not edit it manually. + +black==24.4.2 +certifi==2024.7.4 +cfgv==3.4.0 +click==8.1.7 +colorama==0.4.6; sys_platform == "win32" or platform_system == "Windows" +coverage==7.6.0 +distlib==0.3.8 +filelock==3.15.4 +flake8==7.1.0 +flake8-black==0.3.6 +identify==2.6.0 +iniconfig==2.0.0 +mccabe==0.7.0 +mypy-extensions==1.0.0 +nodeenv==1.9.1 +packaging==24.1 +pathspec==0.12.1 +platformdirs==4.2.2 +pluggy==1.5.0 +pre-commit==3.7.1 +pycodestyle==2.12.0 +pyflakes==3.2.0 +pytest==8.2.2 +pyyaml==6.0.1 +sentry-sdk==2.10.0 +-e file:///home/drazisil/mcos/libs/serializable#egg=serializable +-e file:///home/drazisil/mcos/projects/server#egg=server +tcl==0.2 +urllib3==2.2.2 +virtualenv==20.26.3 diff --git a/server.ts b/server.ts deleted file mode 100755 index e9ad48cc5..000000000 --- a/server.ts +++ /dev/null @@ -1,91 +0,0 @@ -// mcos is a game server, written from scratch, for an old game -// Copyright (C) <2017> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -import Sentry from "@sentry/node"; -import { getServerLogger } from "./packages/shared/log.js"; -import { verifyLegacyCipherSupport } from "./packages/gateway/src/encryption.js"; -import { getServerConfiguration } from "./packages/shared/Configuration.js"; -import { getGatewayServer } from "./packages/gateway/src/GatewayServer.js"; -import { exit } from "node:process"; - -const coreLogger = getServerLogger({ - module: "core", -}); - -try { - verifyLegacyCipherSupport(); -} catch (err) { - coreLogger.fatal(`Error in core server: ${String(err)}`); - exit(1); -} - -Sentry.init({ - dsn: "https://9cefd6a6a3b940328fcefe45766023f2@o1413557.ingest.sentry.io/4504406901915648", - - // We recommend adjusting this value in production, or using tracesSampler - // for finer control - tracesSampleRate: 1.0, - profilesSampleRate: 1.0, // Profiling sample rate is relative to tracesSampleRate -}); - -try { - if (typeof process.env["EXTERNAL_HOST"] === "undefined") { - console.error("Please set EXTERNAL_HOST"); - process.exit(1); - } - if (typeof process.env["CERTIFICATE_FILE"] === "undefined") { - console.error("Please set CERTIFICATE_FILE"); - process.exit(1); - } - if (typeof process.env["PRIVATE_KEY_FILE"] === "undefined") { - console.error("Please set PRIVATE_KEY_FILE"); - process.exit(1); - } - if (typeof process.env["PUBLIC_KEY_FILE"] === "undefined") { - console.error("Please set PUBLIC_KEY_FILE"); - process.exit(1); - } - const config = getServerConfiguration({ - host: process.env["EXTERNAL_HOST"], - certificateFile: process.env["CERTIFICATE_FILE"], - privateKeyFile: process.env["PRIVATE_KEY_FILE"], - publicKeyFile: process.env["PUBLIC_KEY_FILE"], - logLevel: process.env["LOG_LEVEL"], - }); - - const appLog = getServerLogger({ - level: config.logLevel, - module: "app", - }); - - const listeningPortList = [ - 6660, 7003, 8228, 8226, 8227, 9000, 9001, 9002, 9003, 9004, 9005, 9006, - 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 43200, 43300, 43400, - 53303, - ]; - - const gatewayServer = getGatewayServer({ - config, - log: appLog, - listeningPortList, - }); - - gatewayServer.start(); -} catch (err) { - Sentry.captureException(err); - coreLogger.fatal(`Error in core server: ${String(err)}`); - process.exit(1); -} diff --git a/services/sslProxy/Dockerfile b/services/sslProxy/Dockerfile index 1bb7ca5e7..4d35c621b 100644 --- a/services/sslProxy/Dockerfile +++ b/services/sslProxy/Dockerfile @@ -1,8 +1,8 @@ # Can be located at https://archive.org/details/nginx_1.9.8.tar if needed -FROM nginx:1.9.8 as base +FROM nginx:1.9.8@sha256:5d3b56065cf133f8968a557bf49c639320b2fc4c57c635b5707978fb6b738e1f as base COPY nginx.conf /etc/nginx/nginx.conf COPY mcouniverse.pem /etc/nginx/mcouniverse.pem COPY private_key.pem /etc/nginx/private_key.pem COPY fullchain1.pem /etc/nginx/fullchain1.pem -COPY privkey1.pem /etc/nginx/privkey1.pem \ No newline at end of file +COPY privkey1.pem /etc/nginx/privkey1.pem diff --git a/services/sslProxy/mcouniverse.pem b/services/sslProxy/mcouniverse.pem index 5d2c4f6c8..1d72b187c 100644 --- a/services/sslProxy/mcouniverse.pem +++ b/services/sslProxy/mcouniverse.pem @@ -14,4 +14,4 @@ HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4GB ALk8ZaOFZBZbDBxlXTynf5vzt30mpDIlJ8RLUQ/F2GzRU9O7bVAQb5utwUDegQst c08JsrN5XHcEQf87AdM4e/Q/MlQjNu1TClUNXjdPYQfmWMzz1QXwTt3GjJA0n3I7 ZdYLWVNyu9cZfoDJCqZm2VYPHMmCMgIZpHjvetFaXb3G ------END CERTIFICATE----- \ No newline at end of file +-----END CERTIFICATE----- diff --git a/services/sslProxy/nginx.conf b/services/sslProxy/nginx.conf index 64a4ad280..cbb29bee9 100644 --- a/services/sslProxy/nginx.conf +++ b/services/sslProxy/nginx.conf @@ -32,10 +32,13 @@ http { ssl_certificate mcouniverse.pem; ssl_certificate_key private_key.pem; + # ssl_certificate fullchain1.pem; + # ssl_certificate_key privkey1.pem; + ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; - # Medium, while insecure, MUST by used to allow connections from + # Medium, while insecure, MUST by used to allow connections from # Windows XP clients, which only use crypo-broken ciphers ssl_ciphers HIGH:MEDIUM; ssl_prefer_server_ciphers on; @@ -61,4 +64,4 @@ http { proxy_pass http://host.docker.internal:3000; } } -} \ No newline at end of file +} diff --git a/services/sslProxy/private_key.pem b/services/sslProxy/private_key.pem index aab8b42ed..5347b79cd 100644 --- a/services/sslProxy/private_key.pem +++ b/services/sslProxy/private_key.pem @@ -13,4 +13,4 @@ NBVQEQrtur1eLVhtTb2KA6TP7JiUGQJARrEuPK7ltL9GdmFO1+RLaQzhHzagnLac RyGaoBSgKsevN1W+XgNbXSwzKHyNCXSe2Rlq+l4LZkg1ilx7/RsScQJBAMAQhb94 CUPD1a2t9Xp6FqFEqgCLgnQb/xqCR4Cjnms/EGEjBG7GRbeV7tO18/SGHotCPdMh l2448aVdXShjbJ8= ------END PRIVATE KEY----- \ No newline at end of file +-----END PRIVATE KEY----- diff --git a/test/factoryMocks.ts b/test/factoryMocks.ts deleted file mode 100644 index 204aed661..000000000 --- a/test/factoryMocks.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { expect, it, vi } from "vitest"; -import { DatabaseManager } from "../packages/interfaces/index.js"; -import { verifyLegacyCipherSupport } from "../packages/gateway/src/encryption.js"; - -export function mockDatabaseManager(): DatabaseManager { - return { - updateSessionKey: vi.fn(), - fetchSessionKeyByCustomerId: vi.fn(), - }; -} - -export function mockPino() { - vi.mock("pino", () => { - return { - default: vi.fn().mockImplementation(() => { - return { - debug: vi.fn(), - info: vi.fn(), - warn: vi.fn(), - error: vi.fn(), - }; - }), - pino: vi.fn().mockImplementation(() => { - return { - debug: vi.fn(), - info: vi.fn(), - warn: vi.fn(), - error: vi.fn(), - }; - }), - }; - }); -} - -export function unmockPino() { - vi.unmock("pino"); -} - -it("should have crypto", () => { - expect(() => verifyLegacyCipherSupport()).not.toThrow(); -}); diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/.dockerignore b/thebeast/.dockerignore similarity index 100% rename from .dockerignore rename to thebeast/.dockerignore diff --git a/thebeast/.gitignore b/thebeast/.gitignore new file mode 100644 index 000000000..18a1809fe --- /dev/null +++ b/thebeast/.gitignore @@ -0,0 +1,23 @@ +*.env +*.tsbuildinfo +logs +coverage +*.log +.nyc_output + +test-reports +junit +built +*.sqlite +junit.xml +.dccache +*.db +node_modules/ +.DS_Store + +dist +# Sentry Auth Token +.sentryclirc +*.map +out/* +.adminjs/ diff --git a/thebeast/Makefile b/thebeast/Makefile new file mode 100644 index 000000000..05d28bd8d --- /dev/null +++ b/thebeast/Makefile @@ -0,0 +1,42 @@ +all: + @npm install + +certs: + @openssl req -x509 -extensions v3_req -config data/mcouniverse.cnf -newkey rsa:1024 -nodes -keyout ./data/private_key.pem -out ./data/mcouniverse.pem -days 365 + @openssl rsa -in ./data/private_key.pem -outform DER -pubout | xxd -ps -c 300 | tr -d '\n' > ./data/pub.key + @cp ./data/mcouniverse.pem ./data/private_key.pem ./services/sslProxy/ + @echo "certs regenerated. remember to update pub.key for all clients" + +test: + @clear + @npx tsc + @npm test + +build: + @npm run build:dev + +start: + @EXTERNAL_HOST=mcouniverse.com PRIVATE_KEY_FILE=data/private_key.pem CERTIFICATE_FILE=data/mcouniverse.crt PUBLIC_KEY_FILE=data/pub.key LOG_LEVEL=trace npm run start + +prod_node: + docker-compose --file docker-compose.yml up -d --build + +up: + docker-compose up -d --build + +down: + docker-compose down + +enable-node: + @sudo setcap cap_net_bind_service=+ep $(which node) + +docker-init: + mkdir -p log/mcos + @npm run start:docker -s + + +clean: + @rm -rf node_modules + @rm -rf dist + +.PHONY: all certs test build start prod_node up down enable-node docker-init clean diff --git a/thebeast/README.md b/thebeast/README.md new file mode 100644 index 000000000..f096c5679 --- /dev/null +++ b/thebeast/README.md @@ -0,0 +1,33 @@ +# mcos + +This is a game server, being written from scratch, for a very old and long dead game. The owners of said game have shown no interest in bringing it back, but even so all names of their IP have been avoided to prevent issues. + +[![Node.js CI](https://github.com/drazisil/mcos/actions/workflows/node.yml/badge.svg?branch=main)](https://github.com/drazisil/mcos/actions/workflows/node.yml) [![CodeQL](https://github.com/drazisil/mcos/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/drazisil/mcos/actions/workflows/codeql-analysis.yml?branch=main) [![codecov](https://codecov.io/gh/drazisil/mcos/branch/main/graph/badge.svg)](https://codecov.io/gh/drazisil/mcos) [![DeepScan grade](https://deepscan.io/api/teams/16083/projects/20483/branches/558507/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=16083&pid=20483&bid=558507) [![DeepSource](https://deepsource.io/gh/drazisil/mcos.svg/?label=active+issues&token=7m7JTV9V4v4VZTQ-6wxr1kzg)](https://deepsource.io/gh/drazisil/mcos/?ref=repository-badge) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) + +## Help Wanted + +I'm writing this from scratch. While I'm proud of what I've done, I'm hitting the point where I need help. Therefore, I'm open-sourcing this. Any assistance you can provide, either from code help, to suggestions, to even pointing out better ways to do things are greatly appreciated. + +You can [contribute on GitHub](https://github.com/drazisil/mcos/contribute) + +There's a brief explanation of the thought process here [link](https://github.com/drazisil/mcos/issues/164), and the [docs directory](./docs/) also contains some notes. + +## Server Setup + +- See [server docs](./docs/server.md) + +## Client Setup + +- See [client docs](./docs/client.md) + +## Timeline + +- March 6, 2016 - Started + +- October 12, 2023 - Connected to lobby + +![img The first non-hacked image of the MCO lobby since it was shutdown](images/2012-10-12_lobby.png) + +## Current Status + +- [TODO Issues](https://github.com/drazisil/mcos/labels/todo%20%3Aspiral_notepad%3A) diff --git a/docs/client.md b/thebeast/docs/client.md similarity index 100% rename from docs/client.md rename to thebeast/docs/client.md diff --git a/docs/flow.md b/thebeast/docs/flow.md similarity index 100% rename from docs/flow.md rename to thebeast/docs/flow.md diff --git a/docs/reference/export.psql b/thebeast/docs/reference/export.psql similarity index 60% rename from docs/reference/export.psql rename to thebeast/docs/reference/export.psql index 3a24a4cb5..787f1731f 100644 --- a/docs/reference/export.psql +++ b/thebeast/docs/reference/export.psql @@ -17,33 +17,33 @@ CREATE TABLE "AbstractAssembliesList" CREATE TABLE "AbstractPartType" ( - "AbstractPartTypeID" INTEGER NOT NULL, - "ParentAbstractPartTypeID" INTEGER, - "DependsOn" INTEGER, - "PartFilename" VARCHAR (20), - "EAPT" VARCHAR (100) NOT NULL, - "GAPT" VARCHAR (100), - "FAFT" VARCHAR (100), - "SAFT" VARCHAR (100), - "IAFT" VARCHAR (100), - "JAFT" VARCHAR (100), - "SWAFT" VARCHAR (100), - "BAFT" VARCHAR (100), - "ModifiedRule" INTEGER, - "EUT" TEXT, - "GUT" TEXT, - "FUT" TEXT, - "SUT" TEXT, - "IUT" TEXT, - "JUT" TEXT, - "SWUT" TEXT, - "BUT" TEXT, - "PartPaired" INTEGER, - "SchematicPicname1" VARCHAR (9), - "SchematicPicname2" VARCHAR (9), - "BlockFamilyCompatibility" INTEGER, - "RepairCostModifier" REAL, - "ScrapValueModifier" REAL, + "AbstractPartTypeID" INTEGER NOT NULL, + "ParentAbstractPartTypeID" INTEGER, + "DependsOn" INTEGER, + "PartFilename" VARCHAR (20), + "EAPT" VARCHAR (100) NOT NULL, + "GAPT" VARCHAR (100), + "FAFT" VARCHAR (100), + "SAFT" VARCHAR (100), + "IAFT" VARCHAR (100), + "JAFT" VARCHAR (100), + "SWAFT" VARCHAR (100), + "BAFT" VARCHAR (100), + "ModifiedRule" INTEGER, + "EUT" TEXT, + "GUT" TEXT, + "FUT" TEXT, + "SUT" TEXT, + "IUT" TEXT, + "JUT" TEXT, + "SWUT" TEXT, + "BUT" TEXT, + "PartPaired" INTEGER, + "SchematicPicname1" VARCHAR (9), + "SchematicPicname2" VARCHAR (9), + "BlockFamilyCompatibility" INTEGER, + "RepairCostModifier" REAL, + "ScrapValueModifier" REAL, "GarageCategory" INTEGER ); COMMENT ON COLUMN "AbstractPartType"."ModifiedRule" IS '1 means car doesnt become modified from adding/removing part'; @@ -56,7 +56,7 @@ ALTER TABLE "AbstractPartType" ADD CONSTRAINT "AbstractPartType_pkey" PRIMARY KE CREATE TABLE "AttachmentPoint" ( - "AttachmentPointID" INTEGER NOT NULL, + "AttachmentPointID" INTEGER NOT NULL, "AttachmentPoint" VARCHAR (100) NOT NULL ); @@ -65,7 +65,7 @@ ALTER TABLE "AttachmentPoint" ADD CONSTRAINT "AttachmentPoint_pkey" PRIMARY KEY CREATE TABLE "AttachmentPoint1" ( - "AttachmentPointID" INTEGER NOT NULL, + "AttachmentPointID" INTEGER NOT NULL, "AttachmentPoint" VARCHAR (100) NOT NULL ); @@ -74,7 +74,7 @@ ALTER TABLE "AttachmentPoint1" ADD CONSTRAINT "AttachmentPoint1_pkey" PRIMARY KE CREATE TABLE "AuctionPersonaMakes" ( - "PlayerID" INTEGER NOT NULL, + "PlayerID" INTEGER NOT NULL, "BrandID" INTEGER NOT NULL ); @@ -84,7 +84,7 @@ CREATE INDEX "AuctionPersonaMakes_PlayerID_idx" ON "AuctionPersonaMakes" ("Playe CREATE TABLE "Badge" ( - "BadgeTypeID" INTEGER NOT NULL, + "BadgeTypeID" INTEGER NOT NULL, "PlayerID" INTEGER NOT NULL ); @@ -94,12 +94,12 @@ CREATE INDEX "Badge_PlayerID_idx" ON "Badge" ("PlayerID"); CREATE TABLE "BadgeType" ( - "BadgeTypeID" INTEGER NOT NULL, - "BadgePatch" INTEGER NOT NULL, - "EName" VARCHAR (100), - "GName" VARCHAR (100), - "FName" VARCHAR (100), - "SName" VARCHAR (100), + "BadgeTypeID" INTEGER NOT NULL, + "BadgePatch" INTEGER NOT NULL, + "EName" VARCHAR (100), + "GName" VARCHAR (100), + "FName" VARCHAR (100), + "SName" VARCHAR (100), "Shapename" VARCHAR (9) ); COMMENT ON COLUMN "BadgeType"."BadgePatch" IS '1 means Patch'; @@ -115,9 +115,9 @@ ALTER TABLE "BadgeType" ADD CONSTRAINT "BadgeType_pkey" PRIMARY KEY ("BadgeTypeI CREATE TABLE "Brand" ( - "BrandID" INTEGER NOT NULL, - "Brand" VARCHAR (100), - "PicName" VARCHAR (50), + "BrandID" INTEGER NOT NULL, + "Brand" VARCHAR (100), + "PicName" VARCHAR (50), "IsStock" SMALLINT ); @@ -126,13 +126,13 @@ ALTER TABLE "Brand" ADD CONSTRAINT "Brand_pkey" PRIMARY KEY ("BrandID"); CREATE TABLE "BrandedPart" ( - "BrandedPartID" INTEGER NOT NULL, - "PartTypeID" INTEGER NOT NULL, - "ModelID" INTEGER NOT NULL, - "MfgDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "QtyAvail" INTEGER NOT NULL, - "RetailPrice" INTEGER NOT NULL, - "MaxItemWear" INTEGER, + "BrandedPartID" INTEGER NOT NULL, + "PartTypeID" INTEGER NOT NULL, + "ModelID" INTEGER NOT NULL, + "MfgDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "QtyAvail" INTEGER NOT NULL, + "RetailPrice" INTEGER NOT NULL, + "MaxItemWear" INTEGER, "EngineBlockFamilyID" INTEGER NOT NULL ); @@ -142,9 +142,9 @@ ALTER TABLE "BrandedPart" ADD CONSTRAINT "BrandedPart_pkey" PRIMARY KEY ("Brande CREATE TABLE "CatalogCriteriaMethod" ( - "CatalogCriteriaMethodID" INTEGER NOT NULL, - "CatalogCriteriaMethod" VARCHAR (50), - "UseSubDivisions" SMALLINT, + "CatalogCriteriaMethodID" INTEGER NOT NULL, + "CatalogCriteriaMethod" VARCHAR (50), + "UseSubDivisions" SMALLINT, "SubDivisionHelp" VARCHAR (128) ); COMMENT ON COLUMN "CatalogCriteriaMethod"."CatalogCriteriaMethod" IS 'Debug - Text description'; @@ -157,14 +157,14 @@ ALTER TABLE "CatalogCriteriaMethod" ADD CONSTRAINT "CatalogCriteriaMethod_pkey" CREATE TABLE "CatalogIndexLevel" ( - "AbstractPartTypeID" INTEGER NOT NULL, - "IndexLevel" INTEGER NOT NULL, - "CatalogCriteriaMethodID" INTEGER NOT NULL, - "CatalogIndexLevel" VARCHAR (50), - "PhysVal" INTEGER, - "PhysicsTypeID" INTEGER, - "EPromptText" VARCHAR (128), - "FPromptText" VARCHAR (128), + "AbstractPartTypeID" INTEGER NOT NULL, + "IndexLevel" INTEGER NOT NULL, + "CatalogCriteriaMethodID" INTEGER NOT NULL, + "CatalogIndexLevel" VARCHAR (50), + "PhysVal" INTEGER, + "PhysicsTypeID" INTEGER, + "EPromptText" VARCHAR (128), + "FPromptText" VARCHAR (128), "GPromptText" VARCHAR (128) ); COMMENT ON COLUMN "CatalogIndexLevel"."CatalogIndexLevel" IS 'Debug - Description'; @@ -181,18 +181,18 @@ CREATE INDEX "CatalogIndexLevel_IndexLevel_idx" ON "CatalogIndexLevel" ("IndexLe CREATE TABLE "CatalogIndexSubDivision" ( - "AbstractPartTypeID" INTEGER NOT NULL, - "IndexLevel" INTEGER NOT NULL, - "OrderBy" INTEGER, - "ELabel" VARCHAR (255), - "FLabel" VARCHAR (255), - "GLabel" VARCHAR (255), - "EHelp" TEXT, - "FHelp" TEXT, - "GHelp" TEXT, - "IntegerData0" INTEGER, - "IntegerData1" INTEGER, - "FloatData0" REAL, + "AbstractPartTypeID" INTEGER NOT NULL, + "IndexLevel" INTEGER NOT NULL, + "OrderBy" INTEGER, + "ELabel" VARCHAR (255), + "FLabel" VARCHAR (255), + "GLabel" VARCHAR (255), + "EHelp" TEXT, + "FHelp" TEXT, + "GHelp" TEXT, + "IntegerData0" INTEGER, + "IntegerData1" INTEGER, + "FloatData0" REAL, "FloatData1" REAL ); COMMENT ON COLUMN "CatalogIndexSubDivision"."IntegerData0" IS 'Optional -'; @@ -207,7 +207,7 @@ CREATE INDEX "CatalogIndexSubDivision_OrderBy_idx" ON "CatalogIndexSubDivision" CREATE TABLE "CopVehicle" ( - "BrandedPartID" INTEGER, + "BrandedPartID" INTEGER, "Rating" INTEGER ); @@ -215,7 +215,7 @@ CREATE TABLE "CopVehicle" CREATE TABLE "DriverClass" ( - "DriverClassID" SMALLINT NOT NULL, + "DriverClassID" SMALLINT NOT NULL, "DriverClass" VARCHAR (50) ); @@ -224,7 +224,7 @@ ALTER TABLE "DriverClass" ADD CONSTRAINT "DriverClass_pkey" PRIMARY KEY ("Driver CREATE TABLE "Element" ( - "ElementID" INTEGER NOT NULL, + "ElementID" INTEGER NOT NULL, "Element" VARCHAR (100) NOT NULL ); @@ -233,9 +233,9 @@ ALTER TABLE "Element" ADD CONSTRAINT "Element_pkey" PRIMARY KEY ("ElementID"); CREATE TABLE "EngineBlockFamily" ( - "EngineBlockFamilyID" INTEGER NOT NULL, - "BrandID" INTEGER NOT NULL, - "EName" VARCHAR (50), + "EngineBlockFamilyID" INTEGER NOT NULL, + "BrandID" INTEGER NOT NULL, + "EName" VARCHAR (50), "EShortName" VARCHAR (25) ); @@ -246,17 +246,17 @@ ALTER TABLE "EngineBlockFamily" ADD CONSTRAINT "EngineBlockFamily_pkey" PRIMARY CREATE TABLE "Event" ( - "EventID" INTEGER NOT NULL, - "TrackID" INTEGER, - "EventStatusID" INTEGER, - "RaceTypeID" INTEGER, - "StartDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "EndDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "EntryFee" INTEGER NOT NULL, - "TotalPurse" INTEGER NOT NULL, - "MaxRegistrations" INTEGER NOT NULL, - "RacersPerRace" INTEGER NOT NULL, - "Event" VARCHAR (100) NOT NULL, + "EventID" INTEGER NOT NULL, + "TrackID" INTEGER, + "EventStatusID" INTEGER, + "RaceTypeID" INTEGER, + "StartDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "EndDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "EntryFee" INTEGER NOT NULL, + "TotalPurse" INTEGER NOT NULL, + "MaxRegistrations" INTEGER NOT NULL, + "RacersPerRace" INTEGER NOT NULL, + "Event" VARCHAR (100) NOT NULL, "Description" TEXT ); @@ -268,13 +268,13 @@ CREATE INDEX "Event_XIF229Event_idx" ON "Event" ("TrackID"); CREATE TABLE "EventHistory" ( - "TrackID" INTEGER, - "NumInvited" INTEGER, - "CashWon" INTEGER, - "NumRaces" INTEGER, - "StartTime" TIMESTAMP WITHOUT TIME ZONE, - "EventName" VARCHAR (50), - "DriverName" VARCHAR (50), + "TrackID" INTEGER, + "NumInvited" INTEGER, + "CashWon" INTEGER, + "NumRaces" INTEGER, + "StartTime" TIMESTAMP WITHOUT TIME ZONE, + "EventName" VARCHAR (50), + "DriverName" VARCHAR (50), "CarName" VARCHAR (50) ); @@ -285,7 +285,7 @@ CREATE INDEX "EventHistory_TrackID_idx" ON "EventHistory" ("TrackID"); CREATE TABLE "EventStatus" ( - "EventStatusID" INTEGER NOT NULL, + "EventStatusID" INTEGER NOT NULL, "EventStatus" VARCHAR (100) ); @@ -294,7 +294,7 @@ ALTER TABLE "EventStatus" ADD CONSTRAINT "EventStatus_pkey" PRIMARY KEY ("EventS CREATE TABLE "GameConfigurationType" ( - "ConfigurationTypeID" INTEGER NOT NULL, + "ConfigurationTypeID" INTEGER NOT NULL, "Configuration" VARCHAR (50) ); @@ -304,18 +304,18 @@ ALTER TABLE "GameConfigurationType" ADD CONSTRAINT "GameConfigurationType_pkey" CREATE TABLE "GameRecord" ( - "GameRecordID" SERIAL, - "VehicleID" INTEGER, - "RecordTypeID" INTEGER NOT NULL, - "HubID" INTEGER NOT NULL, - "TrackID" INTEGER, - "PlayerID" INTEGER, - "RaceTypeID" INTEGER, - "i_Record1" INTEGER, - "i_Record2" INTEGER, - "i_Record3" INTEGER, - "f_Record1" DOUBLE PRECISION, - "f_Record2" DOUBLE PRECISION, + "GameRecordID" SERIAL, + "VehicleID" INTEGER, + "RecordTypeID" INTEGER NOT NULL, + "HubID" INTEGER NOT NULL, + "TrackID" INTEGER, + "PlayerID" INTEGER, + "RaceTypeID" INTEGER, + "i_Record1" INTEGER, + "i_Record2" INTEGER, + "i_Record3" INTEGER, + "f_Record1" DOUBLE PRECISION, + "f_Record2" DOUBLE PRECISION, "f_Record3" DOUBLE PRECISION ); @@ -324,9 +324,9 @@ ALTER TABLE "GameRecord" ADD CONSTRAINT "GameRecord_pkey" PRIMARY KEY ("GameReco CREATE TABLE "Junkyard" ( - "VehicleID" INTEGER NOT NULL, - "ScrappedDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "NumPartsRemaining" INTEGER NOT NULL, + "VehicleID" INTEGER NOT NULL, + "ScrappedDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "NumPartsRemaining" INTEGER NOT NULL, "BeingViewedBy" INTEGER ); @@ -335,13 +335,13 @@ ALTER TABLE "Junkyard" ADD CONSTRAINT "Junkyard_pkey" PRIMARY KEY ("VehicleID"); CREATE TABLE "MessagePost" ( - "MessageID" SERIAL, - "MsgTo" INTEGER NOT NULL, - "MsgFrom" INTEGER NOT NULL, - "PostedDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "MessageRead" SMALLINT NOT NULL, - "Header" VARCHAR (30), - "Message" VARCHAR (255), + "MessageID" SERIAL, + "MsgTo" INTEGER NOT NULL, + "MsgFrom" INTEGER NOT NULL, + "PostedDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "MessageRead" SMALLINT NOT NULL, + "Header" VARCHAR (30), + "Message" VARCHAR (255), "FromText" VARCHAR (50) ); @@ -350,33 +350,33 @@ ALTER TABLE "MessagePost" ADD CONSTRAINT "MessagePost_pkey" PRIMARY KEY ("Messag CREATE TABLE "Model" ( - "ModelID" INTEGER NOT NULL, - "BrandID" INTEGER NOT NULL, - "EModel" VARCHAR (100), - "GModel" VARCHAR (100), - "FModel" VARCHAR (100), - "SModel" VARCHAR (100), - "IModel" VARCHAR (100), - "JModel" VARCHAR (100), - "SwModel" VARCHAR (100), - "BModel" VARCHAR (100), - "EExtraInfo" VARCHAR (100), - "GExtraInfo" VARCHAR (100), - "FExtraInfo" VARCHAR (100), - "SExtraInfo" VARCHAR (100), - "IExtraInfo" VARCHAR (100), - "JExtraInfo" VARCHAR (100), - "SwExtraInfo" VARCHAR (100), - "BExtraInfo" VARCHAR (100), - "EShortModel" VARCHAR (50), - "GShortModel" VARCHAR (50), - "FShortModel" VARCHAR (50), - "SShortModel" VARCHAR (50), - "IShortModel" VARCHAR (50), - "JShortModel" VARCHAR (50), - "SwShortModel" VARCHAR (50), - "BShortModel" VARCHAR (50), - "Debug_String" VARCHAR (255), + "ModelID" INTEGER NOT NULL, + "BrandID" INTEGER NOT NULL, + "EModel" VARCHAR (100), + "GModel" VARCHAR (100), + "FModel" VARCHAR (100), + "SModel" VARCHAR (100), + "IModel" VARCHAR (100), + "JModel" VARCHAR (100), + "SwModel" VARCHAR (100), + "BModel" VARCHAR (100), + "EExtraInfo" VARCHAR (100), + "GExtraInfo" VARCHAR (100), + "FExtraInfo" VARCHAR (100), + "SExtraInfo" VARCHAR (100), + "IExtraInfo" VARCHAR (100), + "JExtraInfo" VARCHAR (100), + "SwExtraInfo" VARCHAR (100), + "BExtraInfo" VARCHAR (100), + "EShortModel" VARCHAR (50), + "GShortModel" VARCHAR (50), + "FShortModel" VARCHAR (50), + "SShortModel" VARCHAR (50), + "IShortModel" VARCHAR (50), + "JShortModel" VARCHAR (50), + "SwShortModel" VARCHAR (50), + "BShortModel" VARCHAR (50), + "Debug_String" VARCHAR (255), "Debug_Sort_String" VARCHAR (50) ); @@ -385,30 +385,30 @@ ALTER TABLE "Model" ADD CONSTRAINT "Model_pkey" PRIMARY KEY ("ModelID"); CREATE TABLE "NewSkinHSV" ( - "PartFilename" VARCHAR (255), - "H0" DOUBLE PRECISION, - "S0" DOUBLE PRECISION, - "V0" DOUBLE PRECISION, - "H1" DOUBLE PRECISION, - "S1" DOUBLE PRECISION, - "V1" DOUBLE PRECISION, - "H2" DOUBLE PRECISION, - "S2" DOUBLE PRECISION, - "V2" DOUBLE PRECISION, - "H3" DOUBLE PRECISION, - "S3" DOUBLE PRECISION, - "V3" DOUBLE PRECISION, - "H4" DOUBLE PRECISION, - "S4" DOUBLE PRECISION, - "V4" DOUBLE PRECISION, - "H5" DOUBLE PRECISION, - "S5" DOUBLE PRECISION, - "V5" DOUBLE PRECISION, - "H6" DOUBLE PRECISION, - "S6" DOUBLE PRECISION, - "V6" DOUBLE PRECISION, - "H7" DOUBLE PRECISION, - "S7" DOUBLE PRECISION, + "PartFilename" VARCHAR (255), + "H0" DOUBLE PRECISION, + "S0" DOUBLE PRECISION, + "V0" DOUBLE PRECISION, + "H1" DOUBLE PRECISION, + "S1" DOUBLE PRECISION, + "V1" DOUBLE PRECISION, + "H2" DOUBLE PRECISION, + "S2" DOUBLE PRECISION, + "V2" DOUBLE PRECISION, + "H3" DOUBLE PRECISION, + "S3" DOUBLE PRECISION, + "V3" DOUBLE PRECISION, + "H4" DOUBLE PRECISION, + "S4" DOUBLE PRECISION, + "V4" DOUBLE PRECISION, + "H5" DOUBLE PRECISION, + "S5" DOUBLE PRECISION, + "V5" DOUBLE PRECISION, + "H6" DOUBLE PRECISION, + "S6" DOUBLE PRECISION, + "V6" DOUBLE PRECISION, + "H7" DOUBLE PRECISION, + "S7" DOUBLE PRECISION, "V7" DOUBLE PRECISION ); @@ -416,15 +416,15 @@ CREATE TABLE "NewSkinHSV" CREATE TABLE "Part" ( - "PartID" INTEGER NOT NULL, - "ParentPartID" INTEGER, - "BrandedPartID" INTEGER NOT NULL, - "PercentDamage" SMALLINT NOT NULL, - "ItemWear" INTEGER NOT NULL, - "AttachmentPointID" INTEGER, - "OwnerID" INTEGER, - "PartName" VARCHAR (100), - "RepairCost" INTEGER, + "PartID" INTEGER NOT NULL, + "ParentPartID" INTEGER, + "BrandedPartID" INTEGER NOT NULL, + "PercentDamage" SMALLINT NOT NULL, + "ItemWear" INTEGER NOT NULL, + "AttachmentPointID" INTEGER, + "OwnerID" INTEGER, + "PartName" VARCHAR (100), + "RepairCost" INTEGER, "ScrapValue" INTEGER ); @@ -433,10 +433,10 @@ ALTER TABLE "Part" ADD CONSTRAINT "Part_pkey" PRIMARY KEY ("PartID"); CREATE TABLE "PartGrade" ( - "PartGradeID" INTEGER NOT NULL, - "EText" VARCHAR (50), - "GText" VARCHAR (50), - "FText" VARCHAR (50), + "PartGradeID" INTEGER NOT NULL, + "EText" VARCHAR (50), + "GText" VARCHAR (50), + "FText" VARCHAR (50), "PartGrade" VARCHAR (50) ); @@ -445,10 +445,10 @@ ALTER TABLE "PartGrade" ADD CONSTRAINT "PartGrade_pkey" PRIMARY KEY ("PartGradeI CREATE TABLE "PartType" ( - "PartTypeID" INTEGER NOT NULL, - "AbstractPartTypeID" INTEGER NOT NULL, - "PartType" VARCHAR (100) NOT NULL, - "PartFilename" VARCHAR (20), + "PartTypeID" INTEGER NOT NULL, + "AbstractPartTypeID" INTEGER NOT NULL, + "PartType" VARCHAR (100) NOT NULL, + "PartFilename" VARCHAR (20), "PartGradeID" INTEGER ); @@ -457,10 +457,10 @@ ALTER TABLE "PartType" ADD CONSTRAINT "PartType_pkey" PRIMARY KEY ("PartTypeID") CREATE TABLE "PartTypeCompatibility" ( - "ParentPartTypeID" INTEGER NOT NULL, - "ChildPartTypeID" INTEGER NOT NULL, - "Critical" SMALLINT NOT NULL, - "MinQty" SMALLINT, + "ParentPartTypeID" INTEGER NOT NULL, + "ChildPartTypeID" INTEGER NOT NULL, + "Critical" SMALLINT NOT NULL, + "MinQty" SMALLINT, "MaxQty" SMALLINT ); @@ -469,10 +469,10 @@ ALTER TABLE "PartTypeCompatibility" ADD CONSTRAINT "PartTypeCompatibility_pkey" CREATE TABLE "Paste Errors" ( - "PartTypeID" INTEGER, - "AbstractPartTypeID" INTEGER, - "PartType" VARCHAR (255), - "PartFilename" VARCHAR (255), + "PartTypeID" INTEGER, + "AbstractPartTypeID" INTEGER, + "PartType" VARCHAR (255), + "PartFilename" VARCHAR (255), "PartGradeID" INTEGER ); @@ -480,14 +480,14 @@ CREATE TABLE "Paste Errors" CREATE TABLE "PhysicsType" ( - "PhysicsTypeID" INTEGER NOT NULL, - "PhysicsTypeNum" INTEGER NOT NULL, - "PhysicsType" VARCHAR (30) NOT NULL, - "EIndexLabel" VARCHAR (100), - "FIndexLabel" VARCHAR (100), - "GIndexLabel" VARCHAR (100), - "EIndexHelp" TEXT, - "FIndexHelp" TEXT, + "PhysicsTypeID" INTEGER NOT NULL, + "PhysicsTypeNum" INTEGER NOT NULL, + "PhysicsType" VARCHAR (30) NOT NULL, + "EIndexLabel" VARCHAR (100), + "FIndexLabel" VARCHAR (100), + "GIndexLabel" VARCHAR (100), + "EIndexHelp" TEXT, + "FIndexHelp" TEXT, "GIndexHelp" TEXT ); COMMENT ON COLUMN "PhysicsType"."PhysicsType" IS 'Debug'; @@ -502,67 +502,67 @@ COMMENT ON COLUMN "PhysicsType"."GIndexHelp" IS 'Catalog Index Help text'; CREATE TABLE "Player" ( - "PlayerID" INTEGER NOT NULL, - "CustomerID" INTEGER NOT NULL, - "PlayerTypeID" INTEGER NOT NULL, - "SanctionedScore" INTEGER, - "ChallengeScore" INTEGER, - "LastLoggedIn" TIMESTAMP WITHOUT TIME ZONE, - "TimesLoggedIn" INTEGER, - "BankBalance" INTEGER NOT NULL, - "NumCarsOwned" INTEGER NOT NULL, - "IsLoggedIn" SMALLINT, - "DriverStyle" SMALLINT NOT NULL, - "LPCode" INTEGER NOT NULL, - "LPText" VARCHAR (9), - "CarNum1" VARCHAR (2) NOT NULL, - "CarNum2" VARCHAR (2) NOT NULL, - "CarNum3" VARCHAR (2) NOT NULL, - "CarNum4" VARCHAR (2) NOT NULL, - "CarNum5" VARCHAR (2) NOT NULL, - "CarNum6" VARCHAR (2) NOT NULL, - "DLNumber" VARCHAR (20), - "Persona" VARCHAR (30) NOT NULL, - "Address" VARCHAR (128), - "Residence" VARCHAR (20), - "VehicleID" INTEGER, - "CurrentRaceID" INTEGER, - "OfflineDriverSkill" INTEGER, - "OfflineGrudge" INTEGER, - "OfflineReputation" INTEGER, - "TotalTimePlayed" INTEGER, - "CarInfoSetting" INTEGER, - "StockClassicClass" SMALLINT, - "StockMuscleClass" SMALLINT, - "ModifiedClassicClass" SMALLINT, - "ModifiedMuscleClass" SMALLINT, - "OutlawClass" SMALLINT, - "DragClass" SMALLINT, - "ChallengeRung" INTEGER, - "OfflineAiCarClass" SMALLINT, - "OfflineAiSkinID" INTEGER, - "OfflineAiCarBptID" INTEGER, - "OfflineAiState" INTEGER, - "BodyType" INTEGER, - "SkinColor" INTEGER, - "HairColor" INTEGER, - "ShirtColor" INTEGER, - "PantsColor" INTEGER, - "OfflineDriverStyle" INTEGER, - "OfflineDriverAttitude" INTEGER, - "EvadedFuzz" INTEGER, - "PinksWon" INTEGER, - "NumUnreadMail" INTEGER, - "TOTALRACESRUN" INTEGER, - "TOTALRACESWON" INTEGER, - "TOTALRACESCOMPLETED" INTEGER, - "TOTALWINNINGS" INTEGER, - "INSURANCERISKPOINTS" INTEGER, - "INSURANCERATING" INTEGER, - "CHALLENGERACESRUN" INTEGER, - "CHALLENGERACESWON" INTEGER, - "CHALLENGERACESCOMPLETED" INTEGER, - "CARSLOST" INTEGER, + "PlayerID" INTEGER NOT NULL, + "CustomerID" INTEGER NOT NULL, + "PlayerTypeID" INTEGER NOT NULL, + "SanctionedScore" INTEGER, + "ChallengeScore" INTEGER, + "LastLoggedIn" TIMESTAMP WITHOUT TIME ZONE, + "TimesLoggedIn" INTEGER, + "BankBalance" INTEGER NOT NULL, + "NumCarsOwned" INTEGER NOT NULL, + "IsLoggedIn" SMALLINT, + "DriverStyle" SMALLINT NOT NULL, + "LPCode" INTEGER NOT NULL, + "LPText" VARCHAR (9), + "CarNum1" VARCHAR (2) NOT NULL, + "CarNum2" VARCHAR (2) NOT NULL, + "CarNum3" VARCHAR (2) NOT NULL, + "CarNum4" VARCHAR (2) NOT NULL, + "CarNum5" VARCHAR (2) NOT NULL, + "CarNum6" VARCHAR (2) NOT NULL, + "DLNumber" VARCHAR (20), + "Persona" VARCHAR (30) NOT NULL, + "Address" VARCHAR (128), + "Residence" VARCHAR (20), + "VehicleID" INTEGER, + "CurrentRaceID" INTEGER, + "OfflineDriverSkill" INTEGER, + "OfflineGrudge" INTEGER, + "OfflineReputation" INTEGER, + "TotalTimePlayed" INTEGER, + "CarInfoSetting" INTEGER, + "StockClassicClass" SMALLINT, + "StockMuscleClass" SMALLINT, + "ModifiedClassicClass" SMALLINT, + "ModifiedMuscleClass" SMALLINT, + "OutlawClass" SMALLINT, + "DragClass" SMALLINT, + "ChallengeRung" INTEGER, + "OfflineAiCarClass" SMALLINT, + "OfflineAiSkinID" INTEGER, + "OfflineAiCarBptID" INTEGER, + "OfflineAiState" INTEGER, + "BodyType" INTEGER, + "SkinColor" INTEGER, + "HairColor" INTEGER, + "ShirtColor" INTEGER, + "PantsColor" INTEGER, + "OfflineDriverStyle" INTEGER, + "OfflineDriverAttitude" INTEGER, + "EvadedFuzz" INTEGER, + "PinksWon" INTEGER, + "NumUnreadMail" INTEGER, + "TOTALRACESRUN" INTEGER, + "TOTALRACESWON" INTEGER, + "TOTALRACESCOMPLETED" INTEGER, + "TOTALWINNINGS" INTEGER, + "INSURANCERISKPOINTS" INTEGER, + "INSURANCERATING" INTEGER, + "CHALLENGERACESRUN" INTEGER, + "CHALLENGERACESWON" INTEGER, + "CHALLENGERACESCOMPLETED" INTEGER, + "CARSLOST" INTEGER, "CARSWON" INTEGER ); @@ -573,7 +573,7 @@ ALTER TABLE "Player" ADD CONSTRAINT "Player_pkey" PRIMARY KEY ("PlayerID"); CREATE TABLE "PlayerType" ( - "PlayerTypeID" INTEGER NOT NULL, + "PlayerTypeID" INTEGER NOT NULL, "PlayerType" VARCHAR (100) NOT NULL ); @@ -582,13 +582,13 @@ ALTER TABLE "PlayerType" ADD CONSTRAINT "PlayerType_pkey" PRIMARY KEY ("PlayerTy CREATE TABLE "PricingGuide" ( - "type" VARCHAR (50) NOT NULL, - "damagePolyA" REAL NOT NULL, - "damagePolyB" REAL NOT NULL, - "wearPolyA" REAL NOT NULL, - "wearPolyB" REAL NOT NULL, - "Mod" REAL NOT NULL, - "baseMin" REAL NOT NULL, + "type" VARCHAR (50) NOT NULL, + "damagePolyA" REAL NOT NULL, + "damagePolyB" REAL NOT NULL, + "wearPolyA" REAL NOT NULL, + "wearPolyB" REAL NOT NULL, + "Mod" REAL NOT NULL, + "baseMin" REAL NOT NULL, "baseMax" REAL NOT NULL ); @@ -596,70 +596,70 @@ CREATE TABLE "PricingGuide" CREATE TABLE "PTSkin" ( - "SkinID" SERIAL, - "CreatorID" INTEGER, - "SkinTypeID" INTEGER, - "PartTypeID" INTEGER, - "ESkin" VARCHAR (100), - "GSkin" VARCHAR (20), - "FSkin" VARCHAR (20), - "SSkin" VARCHAR (20), - "ISkin" VARCHAR (20), - "JSkin" VARCHAR (20), - "SwSkin" VARCHAR (20), - "BSkin" VARCHAR (20), - "Price" INTEGER NOT NULL, - "PartFilename" VARCHAR (20), - "H0" SMALLINT, - "S0" SMALLINT, - "V0" SMALLINT, - "C0" SMALLINT, - "X0" SMALLINT, - "Y0" SMALLINT, - "H1" SMALLINT, - "S1" SMALLINT, - "V1" SMALLINT, - "C1" SMALLINT, - "X1" SMALLINT, - "Y1" SMALLINT, - "H2" SMALLINT, - "S2" SMALLINT, - "V2" SMALLINT, - "C2" SMALLINT, - "X2" SMALLINT, - "Y2" SMALLINT, - "H3" SMALLINT, - "S3" SMALLINT, - "V3" SMALLINT, - "C3" SMALLINT, - "X3" SMALLINT, - "Y3" SMALLINT, - "H4" SMALLINT, - "S4" SMALLINT, - "V4" SMALLINT, - "C4" SMALLINT, - "X4" SMALLINT, - "Y4" SMALLINT, - "H5" SMALLINT, - "S5" SMALLINT, - "V5" SMALLINT, - "C5" SMALLINT, - "X5" SMALLINT, - "Y5" SMALLINT, - "H6" SMALLINT, - "S6" SMALLINT, - "V6" SMALLINT, - "C6" SMALLINT, - "X6" SMALLINT, - "Y6" SMALLINT, - "H7" SMALLINT, - "S7" SMALLINT, - "V7" SMALLINT, - "C7" SMALLINT, - "X7" SMALLINT, - "Y7" SMALLINT, - "DEFAULTFLAG" INTEGER, - "CreatorName" VARCHAR (24), + "SkinID" SERIAL, + "CreatorID" INTEGER, + "SkinTypeID" INTEGER, + "PartTypeID" INTEGER, + "ESkin" VARCHAR (100), + "GSkin" VARCHAR (20), + "FSkin" VARCHAR (20), + "SSkin" VARCHAR (20), + "ISkin" VARCHAR (20), + "JSkin" VARCHAR (20), + "SwSkin" VARCHAR (20), + "BSkin" VARCHAR (20), + "Price" INTEGER NOT NULL, + "PartFilename" VARCHAR (20), + "H0" SMALLINT, + "S0" SMALLINT, + "V0" SMALLINT, + "C0" SMALLINT, + "X0" SMALLINT, + "Y0" SMALLINT, + "H1" SMALLINT, + "S1" SMALLINT, + "V1" SMALLINT, + "C1" SMALLINT, + "X1" SMALLINT, + "Y1" SMALLINT, + "H2" SMALLINT, + "S2" SMALLINT, + "V2" SMALLINT, + "C2" SMALLINT, + "X2" SMALLINT, + "Y2" SMALLINT, + "H3" SMALLINT, + "S3" SMALLINT, + "V3" SMALLINT, + "C3" SMALLINT, + "X3" SMALLINT, + "Y3" SMALLINT, + "H4" SMALLINT, + "S4" SMALLINT, + "V4" SMALLINT, + "C4" SMALLINT, + "X4" SMALLINT, + "Y4" SMALLINT, + "H5" SMALLINT, + "S5" SMALLINT, + "V5" SMALLINT, + "C5" SMALLINT, + "X5" SMALLINT, + "Y5" SMALLINT, + "H6" SMALLINT, + "S6" SMALLINT, + "V6" SMALLINT, + "C6" SMALLINT, + "X6" SMALLINT, + "Y6" SMALLINT, + "H7" SMALLINT, + "S7" SMALLINT, + "V7" SMALLINT, + "C7" SMALLINT, + "X7" SMALLINT, + "Y7" SMALLINT, + "DEFAULTFLAG" INTEGER, + "CreatorName" VARCHAR (24), "Comment_Text" VARCHAR (128) ); @@ -669,17 +669,17 @@ CREATE INDEX "PTSkin_PTSkinPartTypeID_idx" ON "PTSkin" ("PartTypeID"); CREATE TABLE "Race" ( - "RaceID" SERIAL, - "TrackID" INTEGER NOT NULL, - "RaceTypeID" INTEGER NOT NULL, - "RaceStateID" INTEGER NOT NULL, - "CurrRacers" SMALLINT NOT NULL, - "EntryFee" INTEGER NOT NULL, - "ScheduledStagingTime" TIMESTAMP WITHOUT TIME ZONE, - "ScheduledStartTime" TIMESTAMP WITHOUT TIME ZONE, - "ResultsReceived" SMALLINT, - "RaceName" VARCHAR (100), - "Comments" VARCHAR (255), + "RaceID" SERIAL, + "TrackID" INTEGER NOT NULL, + "RaceTypeID" INTEGER NOT NULL, + "RaceStateID" INTEGER NOT NULL, + "CurrRacers" SMALLINT NOT NULL, + "EntryFee" INTEGER NOT NULL, + "ScheduledStagingTime" TIMESTAMP WITHOUT TIME ZONE, + "ScheduledStartTime" TIMESTAMP WITHOUT TIME ZONE, + "ResultsReceived" SMALLINT, + "RaceName" VARCHAR (100), + "Comments" VARCHAR (255), "TotalPurse" INTEGER ); @@ -688,26 +688,26 @@ ALTER TABLE "Race" ADD CONSTRAINT "Race_pkey" PRIMARY KEY ("RaceID"); CREATE TABLE "RaceHistory" ( - "RaceID" SERIAL, - "RaceTime" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "TrackID" INTEGER NOT NULL, - "RaceTypeID" INTEGER, - "Restriction" INTEGER NOT NULL, - "DriverClass" INTEGER NOT NULL, - "Neigborhood" VARCHAR (255), - "RaceName" VARCHAR (50), - "WinningPurse" VARCHAR (255), - "PlayerName0" VARCHAR (50), - "PlayerName1" VARCHAR (50), - "PlayerName2" VARCHAR (50), - "PlayerName3" VARCHAR (50), - "PlayerName4" VARCHAR (50), - "PlayerName5" VARCHAR (50), - "PlayerTime0" INTEGER, - "PlayerTime1" INTEGER, - "PlayerTime2" INTEGER, - "PlayerTime3" INTEGER, - "PlayerTime4" INTEGER, + "RaceID" SERIAL, + "RaceTime" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "TrackID" INTEGER NOT NULL, + "RaceTypeID" INTEGER, + "Restriction" INTEGER NOT NULL, + "DriverClass" INTEGER NOT NULL, + "Neigborhood" VARCHAR (255), + "RaceName" VARCHAR (50), + "WinningPurse" VARCHAR (255), + "PlayerName0" VARCHAR (50), + "PlayerName1" VARCHAR (50), + "PlayerName2" VARCHAR (50), + "PlayerName3" VARCHAR (50), + "PlayerName4" VARCHAR (50), + "PlayerName5" VARCHAR (50), + "PlayerTime0" INTEGER, + "PlayerTime1" INTEGER, + "PlayerTime2" INTEGER, + "PlayerTime3" INTEGER, + "PlayerTime4" INTEGER, "PlayerTime5" INTEGER ); @@ -716,11 +716,11 @@ ALTER TABLE "RaceHistory" ADD CONSTRAINT "RaceHistory_pkey" PRIMARY KEY ("RaceID CREATE TABLE "Racer" ( - "RaceID" INTEGER NOT NULL, - "RacerID" INTEGER NOT NULL, - "VehicleID" INTEGER, - "ElapsedTime" INTEGER NOT NULL, - "Placement" SMALLINT NOT NULL, + "RaceID" INTEGER NOT NULL, + "RacerID" INTEGER NOT NULL, + "VehicleID" INTEGER, + "ElapsedTime" INTEGER NOT NULL, + "Placement" SMALLINT NOT NULL, "BestLap" INTEGER ); @@ -729,7 +729,7 @@ ALTER TABLE "Racer" ADD CONSTRAINT "Racer_pkey" PRIMARY KEY ("RaceID", "RacerID" CREATE TABLE "RaceState" ( - "RaceStateID" INTEGER NOT NULL, + "RaceStateID" INTEGER NOT NULL, "RaceState" VARCHAR (100) NOT NULL ); @@ -738,8 +738,8 @@ ALTER TABLE "RaceState" ADD CONSTRAINT "RaceState_pkey" PRIMARY KEY ("RaceStateI CREATE TABLE "RaceType" ( - "RaceTypeID" INTEGER NOT NULL, - "RaceType" VARCHAR (100) NOT NULL, + "RaceTypeID" INTEGER NOT NULL, + "RaceType" VARCHAR (100) NOT NULL, "ArcadeMode" INTEGER ); @@ -748,7 +748,7 @@ ALTER TABLE "RaceType" ADD CONSTRAINT "RaceType_pkey" PRIMARY KEY ("RaceTypeID") CREATE TABLE "RecordType" ( - "RecordTypeID" INTEGER NOT NULL, + "RecordTypeID" INTEGER NOT NULL, "RecordType" VARCHAR (30) NOT NULL ); @@ -757,15 +757,15 @@ ALTER TABLE "RecordType" ADD CONSTRAINT "RecordType_pkey" PRIMARY KEY ("RecordTy CREATE TABLE "Season" ( - "SeasonID" SERIAL, - "RaceTypeID" INTEGER NOT NULL, - "StartDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "EndDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, - "EntryFee" INTEGER NOT NULL, - "MaxPlayers" INTEGER NOT NULL, - "CurrPlayers" INTEGER NOT NULL, - "DriverClassID" SMALLINT NOT NULL, - "Rules" VARCHAR (100), + "SeasonID" SERIAL, + "RaceTypeID" INTEGER NOT NULL, + "StartDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "EndDate" TIMESTAMP WITHOUT TIME ZONE NOT NULL, + "EntryFee" INTEGER NOT NULL, + "MaxPlayers" INTEGER NOT NULL, + "CurrPlayers" INTEGER NOT NULL, + "DriverClassID" SMALLINT NOT NULL, + "Rules" VARCHAR (100), "NumRaces" INTEGER ); @@ -774,10 +774,10 @@ ALTER TABLE "Season" ADD CONSTRAINT "Season_pkey" PRIMARY KEY ("SeasonID"); CREATE TABLE "SeasonAwards" ( - "RaceTypeID" INTEGER NOT NULL, - "DriverClassID" INTEGER NOT NULL, - "CashPrize" INTEGER, - "BrandedPartID" INTEGER, + "RaceTypeID" INTEGER NOT NULL, + "DriverClassID" INTEGER NOT NULL, + "CashPrize" INTEGER, + "BrandedPartID" INTEGER, "SkinID" INTEGER ); @@ -787,12 +787,12 @@ CREATE INDEX "SeasonAwards_RaceTypeID_idx" ON "SeasonAwards" ("RaceTypeID"); CREATE TABLE "SeasonRacer" ( - "SeasonID" INTEGER NOT NULL, - "RacerID" INTEGER NOT NULL, - "TotalPoints" INTEGER NOT NULL, - "Standing" INTEGER NOT NULL, - "RacesCompleted" INTEGER NOT NULL, - "RaceFirsts" INTEGER, + "SeasonID" INTEGER NOT NULL, + "RacerID" INTEGER NOT NULL, + "TotalPoints" INTEGER NOT NULL, + "Standing" INTEGER NOT NULL, + "RacesCompleted" INTEGER NOT NULL, + "RaceFirsts" INTEGER, "RacesWithHuman" INTEGER ); @@ -801,7 +801,7 @@ ALTER TABLE "SeasonRacer" ADD CONSTRAINT "SeasonRacer_pkey" PRIMARY KEY ("Season CREATE TABLE "SkinType" ( - "SkinTypeID" INTEGER NOT NULL, + "SkinTypeID" INTEGER NOT NULL, "SkinType" VARCHAR (100) ); @@ -810,10 +810,10 @@ ALTER TABLE "SkinType" ADD CONSTRAINT "SkinType_pkey" PRIMARY KEY ("SkinTypeID") CREATE TABLE "StockAssembly" ( - "ParentBrandedPartID" INTEGER NOT NULL, - "ChildBrandedPartID" INTEGER NOT NULL, - "AttachmentPointID" INTEGER NOT NULL, - "ConfigDefault" SMALLINT NOT NULL, + "ParentBrandedPartID" INTEGER NOT NULL, + "ChildBrandedPartID" INTEGER NOT NULL, + "AttachmentPointID" INTEGER NOT NULL, + "ConfigDefault" SMALLINT NOT NULL, "PhysicsDefault" SMALLINT NOT NULL ); @@ -822,24 +822,24 @@ ALTER TABLE "StockAssembly" ADD CONSTRAINT "StockAssembly_pkey" PRIMARY KEY ("Pa CREATE TABLE "StockEngines" ( - "StockEngineID" SERIAL, - "EEngineName" VARCHAR (50) NOT NULL, - "EngineBlockBPT" INTEGER, - "CamShaftBPT" INTEGER, - "CarburetorBPT" INTEGER, - "ConnectingRodsBPT" INTEGER, - "CoolingSystemBPT" INTEGER, - "CrankshaftBPT" INTEGER, - "CylinderHeadBPT" INTEGER, - "ElectricalSystemBPT" INTEGER, - "ExhaustManifoldBPT" INTEGER, - "IntakeManifoldBPT" INTEGER, - "LubricationSystemBPT" INTEGER, - "PistonsBPT" INTEGER, - "ValveTrainBPT" INTEGER, - "AirIntakeBPT" INTEGER, - "BlowerBPT" INTEGER, - "NitrosInjectorBPT" INTEGER, + "StockEngineID" SERIAL, + "EEngineName" VARCHAR (50) NOT NULL, + "EngineBlockBPT" INTEGER, + "CamShaftBPT" INTEGER, + "CarburetorBPT" INTEGER, + "ConnectingRodsBPT" INTEGER, + "CoolingSystemBPT" INTEGER, + "CrankshaftBPT" INTEGER, + "CylinderHeadBPT" INTEGER, + "ElectricalSystemBPT" INTEGER, + "ExhaustManifoldBPT" INTEGER, + "IntakeManifoldBPT" INTEGER, + "LubricationSystemBPT" INTEGER, + "PistonsBPT" INTEGER, + "ValveTrainBPT" INTEGER, + "AirIntakeBPT" INTEGER, + "BlowerBPT" INTEGER, + "NitrosInjectorBPT" INTEGER, "CRT" INTEGER ); COMMENT ON COLUMN "StockEngines"."AirIntakeBPT" IS 'cleaner or scoop'; @@ -851,14 +851,14 @@ CREATE INDEX "StockEngines_StockEngineID_idx" ON "StockEngines" ("StockEngineID" CREATE TABLE "StockVehicleAttributes" ( - "BrandedPartID" INTEGER NOT NULL, - "CarClass" INTEGER, - "AIRestrictionClass" INTEGER, - "ModeRestriction" INTEGER, - "Sponsor" INTEGER, - "VinBrandedPartID" INTEGER, - "TrackID" INTEGER, - "VinCrc" INTEGER NOT NULL, + "BrandedPartID" INTEGER NOT NULL, + "CarClass" INTEGER, + "AIRestrictionClass" INTEGER, + "ModeRestriction" INTEGER, + "Sponsor" INTEGER, + "VinBrandedPartID" INTEGER, + "TrackID" INTEGER, + "VinCrc" INTEGER NOT NULL, "RetailPrice" INTEGER ); COMMENT ON COLUMN "StockVehicleAttributes"."RetailPrice" IS 'Computed at prebuild time'; @@ -872,7 +872,7 @@ CREATE INDEX "StockVehicleAttributes_VinBrandedPartID_idx" ON "StockVehicleAttri CREATE TABLE "SVA_CarClass" ( - "SVA_CarClass" INTEGER, + "SVA_CarClass" INTEGER, "Description" VARCHAR (50) ); @@ -881,7 +881,7 @@ ALTER TABLE "SVA_CarClass" ADD CONSTRAINT "SVA_CarClass_pkey" PRIMARY KEY ("SVA_ CREATE TABLE "SVA_ModeRestriction" ( - "SVA_ModeRestriction" INTEGER NOT NULL, + "SVA_ModeRestriction" INTEGER NOT NULL, "Description" VARCHAR (100) ); @@ -891,70 +891,70 @@ CREATE UNIQUE INDEX "SVA_ModeRestriction_SVA_ModeRestriction_idx" ON "SVA_ModeRe CREATE TABLE "TmpSkin" ( - "SkinID" SERIAL, - "CreatorID" INTEGER, - "SkinTypeID" INTEGER, - "PartTypeID" INTEGER, - "ESkin" VARCHAR (100), - "GSkin" VARCHAR (20), - "FSkin" VARCHAR (20), - "SSkin" VARCHAR (20), - "ISkin" VARCHAR (20), - "JSkin" VARCHAR (20), - "SwSkin" VARCHAR (20), - "BSkin" VARCHAR (20), - "Price" INTEGER NOT NULL, - "PartFilename" VARCHAR (20), - "H0" SMALLINT, - "S0" SMALLINT, - "V0" SMALLINT, - "C0" SMALLINT, - "X0" SMALLINT, - "Y0" SMALLINT, - "H1" SMALLINT, - "S1" SMALLINT, - "V1" SMALLINT, - "C1" SMALLINT, - "X1" SMALLINT, - "Y1" SMALLINT, - "H2" SMALLINT, - "S2" SMALLINT, - "V2" SMALLINT, - "C2" SMALLINT, - "X2" SMALLINT, - "Y2" SMALLINT, - "H3" SMALLINT, - "S3" SMALLINT, - "V3" SMALLINT, - "C3" SMALLINT, - "X3" SMALLINT, - "Y3" SMALLINT, - "H4" SMALLINT, - "S4" SMALLINT, - "V4" SMALLINT, - "C4" SMALLINT, - "X4" SMALLINT, - "Y4" SMALLINT, - "H5" SMALLINT, - "S5" SMALLINT, - "V5" SMALLINT, - "C5" SMALLINT, - "X5" SMALLINT, - "Y5" SMALLINT, - "H6" SMALLINT, - "S6" SMALLINT, - "V6" SMALLINT, - "C6" SMALLINT, - "X6" SMALLINT, - "Y6" SMALLINT, - "H7" SMALLINT, - "S7" SMALLINT, - "V7" SMALLINT, - "C7" SMALLINT, - "X7" SMALLINT, - "Y7" SMALLINT, - "DEFAULTFLAG" INTEGER, - "CreatorName" VARCHAR (24), + "SkinID" SERIAL, + "CreatorID" INTEGER, + "SkinTypeID" INTEGER, + "PartTypeID" INTEGER, + "ESkin" VARCHAR (100), + "GSkin" VARCHAR (20), + "FSkin" VARCHAR (20), + "SSkin" VARCHAR (20), + "ISkin" VARCHAR (20), + "JSkin" VARCHAR (20), + "SwSkin" VARCHAR (20), + "BSkin" VARCHAR (20), + "Price" INTEGER NOT NULL, + "PartFilename" VARCHAR (20), + "H0" SMALLINT, + "S0" SMALLINT, + "V0" SMALLINT, + "C0" SMALLINT, + "X0" SMALLINT, + "Y0" SMALLINT, + "H1" SMALLINT, + "S1" SMALLINT, + "V1" SMALLINT, + "C1" SMALLINT, + "X1" SMALLINT, + "Y1" SMALLINT, + "H2" SMALLINT, + "S2" SMALLINT, + "V2" SMALLINT, + "C2" SMALLINT, + "X2" SMALLINT, + "Y2" SMALLINT, + "H3" SMALLINT, + "S3" SMALLINT, + "V3" SMALLINT, + "C3" SMALLINT, + "X3" SMALLINT, + "Y3" SMALLINT, + "H4" SMALLINT, + "S4" SMALLINT, + "V4" SMALLINT, + "C4" SMALLINT, + "X4" SMALLINT, + "Y4" SMALLINT, + "H5" SMALLINT, + "S5" SMALLINT, + "V5" SMALLINT, + "C5" SMALLINT, + "X5" SMALLINT, + "Y5" SMALLINT, + "H6" SMALLINT, + "S6" SMALLINT, + "V6" SMALLINT, + "C6" SMALLINT, + "X6" SMALLINT, + "Y6" SMALLINT, + "H7" SMALLINT, + "S7" SMALLINT, + "V7" SMALLINT, + "C7" SMALLINT, + "X7" SMALLINT, + "Y7" SMALLINT, + "DEFAULTFLAG" INTEGER, + "CreatorName" VARCHAR (24), "Comment_Text" VARCHAR (128) ); @@ -964,12 +964,12 @@ CREATE INDEX "TmpSkin_PTSkinPartTypeID_idx" ON "TmpSkin" ("PartTypeID"); CREATE TABLE "TrackLapTimeRecord" ( - "TrackLapTimeRecordID" SERIAL, - "PersonaID" INTEGER, - "PlayerName" VARCHAR (30) NOT NULL, - "LapTime" INTEGER NOT NULL, - "TrackID" INTEGER NOT NULL, - "CarBrandedPartID" INTEGER NOT NULL, + "TrackLapTimeRecordID" SERIAL, + "PersonaID" INTEGER, + "PlayerName" VARCHAR (30) NOT NULL, + "LapTime" INTEGER NOT NULL, + "TrackID" INTEGER NOT NULL, + "CarBrandedPartID" INTEGER NOT NULL, "Flags" INTEGER ); @@ -978,12 +978,12 @@ ALTER TABLE "TrackLapTimeRecord" ADD CONSTRAINT "TrackLapTimeRecord_pkey" PRIMAR CREATE TABLE "Vehicle" ( - "VehicleID" INTEGER NOT NULL, - "SkinID" INTEGER NOT NULL, - "Flags" INTEGER NOT NULL, - "Class" SMALLINT NOT NULL, - "InfoSetting" SMALLINT NOT NULL, - "DamageInfo" BYTEA, + "VehicleID" INTEGER NOT NULL, + "SkinID" INTEGER NOT NULL, + "Flags" INTEGER NOT NULL, + "Class" SMALLINT NOT NULL, + "InfoSetting" SMALLINT NOT NULL, + "DamageInfo" BYTEA, "DamageCached" INTEGER ); @@ -992,12 +992,12 @@ ALTER TABLE "Vehicle" ADD CONSTRAINT "Vehicle_pkey" PRIMARY KEY ("VehicleID"); CREATE TABLE "VehicleRecords" ( - "carID" INTEGER NOT NULL, - "trackID" INTEGER NOT NULL, - "numberRaces" INTEGER, - "numberWins" INTEGER, - "topSpeed" REAL, - "bestLapTime" REAL, + "carID" INTEGER NOT NULL, + "trackID" INTEGER NOT NULL, + "numberRaces" INTEGER, + "numberWins" INTEGER, + "topSpeed" REAL, + "bestLapTime" REAL, "playerID" INTEGER ); @@ -1005,11 +1005,11 @@ CREATE TABLE "VehicleRecords" CREATE TABLE "APTDealershipAudio" ( - "PlayerID" INTEGER NOT NULL, - "AbstractPartTypeID" INTEGER NOT NULL, - "AudioIndex" INTEGER NOT NULL, - "Freq" INTEGER NOT NULL, - "FilePath" VARCHAR (255) NOT NULL, + "PlayerID" INTEGER NOT NULL, + "AbstractPartTypeID" INTEGER NOT NULL, + "AudioIndex" INTEGER NOT NULL, + "Freq" INTEGER NOT NULL, + "FilePath" VARCHAR (255) NOT NULL, "APTDealershipAudio" VARCHAR (100) ); @@ -1018,11 +1018,11 @@ ALTER TABLE "APTDealershipAudio" ADD CONSTRAINT "APTDealershipAudio_pkey" PRIMAR CREATE TABLE "BPDealershipAudio" ( - "PlayerID" INTEGER NOT NULL, - "BrandedPartID" INTEGER NOT NULL, - "AudioIndex" INTEGER NOT NULL, - "Freq" INTEGER NOT NULL, - "FilePath" VARCHAR (255) NOT NULL, + "PlayerID" INTEGER NOT NULL, + "BrandedPartID" INTEGER NOT NULL, + "AudioIndex" INTEGER NOT NULL, + "Freq" INTEGER NOT NULL, + "FilePath" VARCHAR (255) NOT NULL, "BPDealershipAudio" VARCHAR (100) NOT NULL ); @@ -1031,7 +1031,7 @@ ALTER TABLE "BPDealershipAudio" ADD CONSTRAINT "BPDealershipAudio_pkey" PRIMARY CREATE TABLE "City" ( - "CityID" INTEGER NOT NULL, + "CityID" INTEGER NOT NULL, "City" VARCHAR (100) NOT NULL ); @@ -1040,8 +1040,8 @@ ALTER TABLE "City" ADD CONSTRAINT "City_pkey" PRIMARY KEY ("CityID"); CREATE TABLE "EventInvitation" ( - "EventID" INTEGER NOT NULL, - "PlayerID" INTEGER NOT NULL, + "EventID" INTEGER NOT NULL, + "PlayerID" INTEGER NOT NULL, "EventStatusID" INTEGER NOT NULL ); @@ -1053,17 +1053,17 @@ CREATE INDEX "EventInvitation_XIF219EventInvitation_idx" ON "EventInvitation" (" CREATE TABLE "GameConfiguration" ( - "ConfigurationID" INTEGER NOT NULL, - "Configuration" VARCHAR (20), - "i_ConfigVal1" INTEGER, - "i_ConfigVal2" INTEGER, - "i_ConfigVal3" INTEGER, - "f_ConfigVal1" DOUBLE PRECISION, - "f_ConfigVal2" DOUBLE PRECISION, - "f_ConfigVal3" DOUBLE PRECISION, - "vc_ConfigVal1" VARCHAR (20), - "vc_ConfigVal2" VARCHAR (20), - "vc_ConfigVal3" VARCHAR (20), + "ConfigurationID" INTEGER NOT NULL, + "Configuration" VARCHAR (20), + "i_ConfigVal1" INTEGER, + "i_ConfigVal2" INTEGER, + "i_ConfigVal3" INTEGER, + "f_ConfigVal1" DOUBLE PRECISION, + "f_ConfigVal2" DOUBLE PRECISION, + "f_ConfigVal3" DOUBLE PRECISION, + "vc_ConfigVal1" VARCHAR (20), + "vc_ConfigVal2" VARCHAR (20), + "vc_ConfigVal3" VARCHAR (20), "ConfigurationTypeID" INTEGER NOT NULL ); @@ -1072,9 +1072,9 @@ ALTER TABLE "GameConfiguration" ADD CONSTRAINT "GameConfiguration_pkey" PRIMARY CREATE TABLE "Grade" ( - "GradeID" INTEGER NOT NULL, - "EText" VARCHAR (50), - "GText" VARCHAR (50), + "GradeID" INTEGER NOT NULL, + "EText" VARCHAR (50), + "GText" VARCHAR (50), "FText" VARCHAR (50) ); @@ -1083,100 +1083,100 @@ ALTER TABLE "Grade" ADD CONSTRAINT "Grade_pkey" PRIMARY KEY ("GradeID"); CREATE TABLE "Pacejka_TireModel" ( - "TireTypeID" INTEGER NOT NULL, - "Val1" DOUBLE PRECISION NOT NULL, - "Val2" DOUBLE PRECISION NOT NULL, - "Val3" DOUBLE PRECISION NOT NULL, - "Val4" DOUBLE PRECISION NOT NULL, - "Val5" DOUBLE PRECISION NOT NULL, - "Val6" DOUBLE PRECISION NOT NULL, - "Val7" DOUBLE PRECISION NOT NULL, - "Val8" DOUBLE PRECISION NOT NULL, - "Val9" DOUBLE PRECISION NOT NULL, - "Val10" DOUBLE PRECISION NOT NULL, - "Val11" DOUBLE PRECISION NOT NULL, - "Val12" DOUBLE PRECISION NOT NULL, - "Val13" DOUBLE PRECISION NOT NULL, - "Val14" DOUBLE PRECISION NOT NULL, - "Val15" DOUBLE PRECISION NOT NULL, - "Val16" DOUBLE PRECISION NOT NULL, - "Val17" DOUBLE PRECISION NOT NULL, - "Val18" DOUBLE PRECISION NOT NULL, - "Val19" DOUBLE PRECISION NOT NULL, - "Val20" DOUBLE PRECISION NOT NULL, - "Val21" DOUBLE PRECISION NOT NULL, - "Val22" DOUBLE PRECISION NOT NULL, - "Val23" DOUBLE PRECISION NOT NULL, - "Val24" DOUBLE PRECISION NOT NULL, - "Val25" DOUBLE PRECISION NOT NULL, - "Val26" DOUBLE PRECISION NOT NULL, - "Val27" DOUBLE PRECISION NOT NULL, - "Val28" DOUBLE PRECISION NOT NULL, - "Val29" DOUBLE PRECISION NOT NULL, - "Val30" DOUBLE PRECISION NOT NULL, - "Val31" DOUBLE PRECISION NOT NULL, - "Val32" DOUBLE PRECISION NOT NULL, - "Val33" DOUBLE PRECISION NOT NULL, - "Val34" DOUBLE PRECISION NOT NULL, - "Val35" DOUBLE PRECISION NOT NULL, - "Val36" DOUBLE PRECISION NOT NULL, - "TireType" INTEGER, - "RainFlag" INTEGER, - "Pacejka_TireModel" VARCHAR (50), - "LatForce1" DOUBLE PRECISION, - "LatForce2" DOUBLE PRECISION, - "LatForce3" DOUBLE PRECISION, - "LatForce4" DOUBLE PRECISION, - "LatForce5" DOUBLE PRECISION, - "LatForce6" DOUBLE PRECISION, - "LatForce7" DOUBLE PRECISION, - "LatForce8" DOUBLE PRECISION, - "LatForce9" DOUBLE PRECISION, - "LatForce10" DOUBLE PRECISION, - "LatForce11" DOUBLE PRECISION, - "LatForce12" DOUBLE PRECISION, - "LatForce13" DOUBLE PRECISION, - "LatForce14" DOUBLE PRECISION, - "LatForce15" DOUBLE PRECISION, - "LatForce16" DOUBLE PRECISION, - "LatForce17" DOUBLE PRECISION, - "LatForce18" DOUBLE PRECISION, - "LatForce19" DOUBLE PRECISION, - "LatForce20" DOUBLE PRECISION, - "LatForce21" DOUBLE PRECISION, - "LatForce22" DOUBLE PRECISION, - "LatForce23" DOUBLE PRECISION, - "LatForce24" DOUBLE PRECISION, - "LatForce25" DOUBLE PRECISION, - "AlignMom1" DOUBLE PRECISION, - "AlignMom2" DOUBLE PRECISION, - "AlignMom3" DOUBLE PRECISION, - "AlignMom4" DOUBLE PRECISION, - "AlignMom5" DOUBLE PRECISION, - "AlignMom6" DOUBLE PRECISION, - "AlignMom7" DOUBLE PRECISION, - "AlignMom8" DOUBLE PRECISION, - "AlignMom9" DOUBLE PRECISION, - "AlignMom10" DOUBLE PRECISION, - "AlignMom11" DOUBLE PRECISION, - "AlignMom12" DOUBLE PRECISION, - "AlignMom13" DOUBLE PRECISION, - "AlignMom14" DOUBLE PRECISION, - "AlignMom15" DOUBLE PRECISION, - "AlignMom16" DOUBLE PRECISION, - "AlignMom17" DOUBLE PRECISION, - "AlignMom18" DOUBLE PRECISION, - "AlignMom19" DOUBLE PRECISION, - "AlignMom20" DOUBLE PRECISION, - "AlignMom21" DOUBLE PRECISION, - "AlignMom22" DOUBLE PRECISION, - "AlignMom23" DOUBLE PRECISION, - "AlignMom24" DOUBLE PRECISION, - "AlignMom25" DOUBLE PRECISION, - "RollingResistFactor" DOUBLE PRECISION, - "GrowthFactor" DOUBLE PRECISION, - "PeakFriction" DOUBLE PRECISION, - "CamberCoefficient" DOUBLE PRECISION, + "TireTypeID" INTEGER NOT NULL, + "Val1" DOUBLE PRECISION NOT NULL, + "Val2" DOUBLE PRECISION NOT NULL, + "Val3" DOUBLE PRECISION NOT NULL, + "Val4" DOUBLE PRECISION NOT NULL, + "Val5" DOUBLE PRECISION NOT NULL, + "Val6" DOUBLE PRECISION NOT NULL, + "Val7" DOUBLE PRECISION NOT NULL, + "Val8" DOUBLE PRECISION NOT NULL, + "Val9" DOUBLE PRECISION NOT NULL, + "Val10" DOUBLE PRECISION NOT NULL, + "Val11" DOUBLE PRECISION NOT NULL, + "Val12" DOUBLE PRECISION NOT NULL, + "Val13" DOUBLE PRECISION NOT NULL, + "Val14" DOUBLE PRECISION NOT NULL, + "Val15" DOUBLE PRECISION NOT NULL, + "Val16" DOUBLE PRECISION NOT NULL, + "Val17" DOUBLE PRECISION NOT NULL, + "Val18" DOUBLE PRECISION NOT NULL, + "Val19" DOUBLE PRECISION NOT NULL, + "Val20" DOUBLE PRECISION NOT NULL, + "Val21" DOUBLE PRECISION NOT NULL, + "Val22" DOUBLE PRECISION NOT NULL, + "Val23" DOUBLE PRECISION NOT NULL, + "Val24" DOUBLE PRECISION NOT NULL, + "Val25" DOUBLE PRECISION NOT NULL, + "Val26" DOUBLE PRECISION NOT NULL, + "Val27" DOUBLE PRECISION NOT NULL, + "Val28" DOUBLE PRECISION NOT NULL, + "Val29" DOUBLE PRECISION NOT NULL, + "Val30" DOUBLE PRECISION NOT NULL, + "Val31" DOUBLE PRECISION NOT NULL, + "Val32" DOUBLE PRECISION NOT NULL, + "Val33" DOUBLE PRECISION NOT NULL, + "Val34" DOUBLE PRECISION NOT NULL, + "Val35" DOUBLE PRECISION NOT NULL, + "Val36" DOUBLE PRECISION NOT NULL, + "TireType" INTEGER, + "RainFlag" INTEGER, + "Pacejka_TireModel" VARCHAR (50), + "LatForce1" DOUBLE PRECISION, + "LatForce2" DOUBLE PRECISION, + "LatForce3" DOUBLE PRECISION, + "LatForce4" DOUBLE PRECISION, + "LatForce5" DOUBLE PRECISION, + "LatForce6" DOUBLE PRECISION, + "LatForce7" DOUBLE PRECISION, + "LatForce8" DOUBLE PRECISION, + "LatForce9" DOUBLE PRECISION, + "LatForce10" DOUBLE PRECISION, + "LatForce11" DOUBLE PRECISION, + "LatForce12" DOUBLE PRECISION, + "LatForce13" DOUBLE PRECISION, + "LatForce14" DOUBLE PRECISION, + "LatForce15" DOUBLE PRECISION, + "LatForce16" DOUBLE PRECISION, + "LatForce17" DOUBLE PRECISION, + "LatForce18" DOUBLE PRECISION, + "LatForce19" DOUBLE PRECISION, + "LatForce20" DOUBLE PRECISION, + "LatForce21" DOUBLE PRECISION, + "LatForce22" DOUBLE PRECISION, + "LatForce23" DOUBLE PRECISION, + "LatForce24" DOUBLE PRECISION, + "LatForce25" DOUBLE PRECISION, + "AlignMom1" DOUBLE PRECISION, + "AlignMom2" DOUBLE PRECISION, + "AlignMom3" DOUBLE PRECISION, + "AlignMom4" DOUBLE PRECISION, + "AlignMom5" DOUBLE PRECISION, + "AlignMom6" DOUBLE PRECISION, + "AlignMom7" DOUBLE PRECISION, + "AlignMom8" DOUBLE PRECISION, + "AlignMom9" DOUBLE PRECISION, + "AlignMom10" DOUBLE PRECISION, + "AlignMom11" DOUBLE PRECISION, + "AlignMom12" DOUBLE PRECISION, + "AlignMom13" DOUBLE PRECISION, + "AlignMom14" DOUBLE PRECISION, + "AlignMom15" DOUBLE PRECISION, + "AlignMom16" DOUBLE PRECISION, + "AlignMom17" DOUBLE PRECISION, + "AlignMom18" DOUBLE PRECISION, + "AlignMom19" DOUBLE PRECISION, + "AlignMom20" DOUBLE PRECISION, + "AlignMom21" DOUBLE PRECISION, + "AlignMom22" DOUBLE PRECISION, + "AlignMom23" DOUBLE PRECISION, + "AlignMom24" DOUBLE PRECISION, + "AlignMom25" DOUBLE PRECISION, + "RollingResistFactor" DOUBLE PRECISION, + "GrowthFactor" DOUBLE PRECISION, + "PeakFriction" DOUBLE PRECISION, + "CamberCoefficient" DOUBLE PRECISION, "SectionWidth" DOUBLE PRECISION ); COMMENT ON COLUMN "Pacejka_TireModel"."Pacejka_TireModel" IS 'Debug - Text'; @@ -1241,69 +1241,69 @@ ALTER TABLE "Pacejka_TireModel" ADD CONSTRAINT "Pacejka_TireModel_pkey" PRIMARY CREATE TABLE "Physics" ( - "PartTypeID" INTEGER NOT NULL, - "Ordinal" INTEGER NOT NULL, - "StatusID" INTEGER, - "DutyRating" INTEGER, - "MaxItemWear" INTEGER, - "Mass" DOUBLE PRECISION, - "Val1" DOUBLE PRECISION, - "Val2" DOUBLE PRECISION, - "Val3" DOUBLE PRECISION, - "Val4" DOUBLE PRECISION, - "Val5" DOUBLE PRECISION, - "Val6" DOUBLE PRECISION, - "Val7" DOUBLE PRECISION, - "Val8" DOUBLE PRECISION, - "Val9" DOUBLE PRECISION, - "Val10" DOUBLE PRECISION, - "Val11" DOUBLE PRECISION, - "Val12" DOUBLE PRECISION, - "Val13" DOUBLE PRECISION, - "Val14" DOUBLE PRECISION, - "Val15" DOUBLE PRECISION, - "Val16" DOUBLE PRECISION, - "Val17" DOUBLE PRECISION, - "Val18" DOUBLE PRECISION, - "Val19" DOUBLE PRECISION, - "Val20" DOUBLE PRECISION, - "Val21" DOUBLE PRECISION, - "Val22" DOUBLE PRECISION, - "Val23" DOUBLE PRECISION, - "Val24" DOUBLE PRECISION, - "Val25" DOUBLE PRECISION, - "Val26" DOUBLE PRECISION, - "Val27" DOUBLE PRECISION, - "Val28" DOUBLE PRECISION, - "Val29" DOUBLE PRECISION, - "Val30" DOUBLE PRECISION, - "Val31" DOUBLE PRECISION, - "Val32" DOUBLE PRECISION, - "Val33" DOUBLE PRECISION, - "Val34" DOUBLE PRECISION, - "Val35" DOUBLE PRECISION, - "Val36" DOUBLE PRECISION, - "Val37" DOUBLE PRECISION, - "Val38" DOUBLE PRECISION, - "Val39" DOUBLE PRECISION, - "Val40" DOUBLE PRECISION, - "Val41" DOUBLE PRECISION, - "Val42" DOUBLE PRECISION, - "Val43" DOUBLE PRECISION, - "Val44" DOUBLE PRECISION, - "Val45" DOUBLE PRECISION, - "Val46" DOUBLE PRECISION, - "Val47" DOUBLE PRECISION, - "Val48" DOUBLE PRECISION, - "Val49" DOUBLE PRECISION, - "Val50" DOUBLE PRECISION, - "TextVal1" VARCHAR (20), - "TextVal2" VARCHAR (20), - "TextVal3" VARCHAR (20), - "TextVal4" VARCHAR (20), - "TextVal5" VARCHAR (20), - "TextVal6" VARCHAR (20), - "TextVal7" VARCHAR (20), + "PartTypeID" INTEGER NOT NULL, + "Ordinal" INTEGER NOT NULL, + "StatusID" INTEGER, + "DutyRating" INTEGER, + "MaxItemWear" INTEGER, + "Mass" DOUBLE PRECISION, + "Val1" DOUBLE PRECISION, + "Val2" DOUBLE PRECISION, + "Val3" DOUBLE PRECISION, + "Val4" DOUBLE PRECISION, + "Val5" DOUBLE PRECISION, + "Val6" DOUBLE PRECISION, + "Val7" DOUBLE PRECISION, + "Val8" DOUBLE PRECISION, + "Val9" DOUBLE PRECISION, + "Val10" DOUBLE PRECISION, + "Val11" DOUBLE PRECISION, + "Val12" DOUBLE PRECISION, + "Val13" DOUBLE PRECISION, + "Val14" DOUBLE PRECISION, + "Val15" DOUBLE PRECISION, + "Val16" DOUBLE PRECISION, + "Val17" DOUBLE PRECISION, + "Val18" DOUBLE PRECISION, + "Val19" DOUBLE PRECISION, + "Val20" DOUBLE PRECISION, + "Val21" DOUBLE PRECISION, + "Val22" DOUBLE PRECISION, + "Val23" DOUBLE PRECISION, + "Val24" DOUBLE PRECISION, + "Val25" DOUBLE PRECISION, + "Val26" DOUBLE PRECISION, + "Val27" DOUBLE PRECISION, + "Val28" DOUBLE PRECISION, + "Val29" DOUBLE PRECISION, + "Val30" DOUBLE PRECISION, + "Val31" DOUBLE PRECISION, + "Val32" DOUBLE PRECISION, + "Val33" DOUBLE PRECISION, + "Val34" DOUBLE PRECISION, + "Val35" DOUBLE PRECISION, + "Val36" DOUBLE PRECISION, + "Val37" DOUBLE PRECISION, + "Val38" DOUBLE PRECISION, + "Val39" DOUBLE PRECISION, + "Val40" DOUBLE PRECISION, + "Val41" DOUBLE PRECISION, + "Val42" DOUBLE PRECISION, + "Val43" DOUBLE PRECISION, + "Val44" DOUBLE PRECISION, + "Val45" DOUBLE PRECISION, + "Val46" DOUBLE PRECISION, + "Val47" DOUBLE PRECISION, + "Val48" DOUBLE PRECISION, + "Val49" DOUBLE PRECISION, + "Val50" DOUBLE PRECISION, + "TextVal1" VARCHAR (20), + "TextVal2" VARCHAR (20), + "TextVal3" VARCHAR (20), + "TextVal4" VARCHAR (20), + "TextVal5" VARCHAR (20), + "TextVal6" VARCHAR (20), + "TextVal7" VARCHAR (20), "TextVal8" VARCHAR (20) ); @@ -1314,7 +1314,7 @@ ALTER TABLE "Physics" ADD CONSTRAINT "Physics_pkey" PRIMARY KEY ("PartTypeID", " CREATE TABLE "PhysicsStatus" ( - "StatusID" INTEGER, + "StatusID" INTEGER, "Status" VARCHAR (50) ); @@ -1323,13 +1323,13 @@ ALTER TABLE "PhysicsStatus" ADD CONSTRAINT "PhysicsStatus_pkey" PRIMARY KEY ("St CREATE TABLE "RaceTemplate" ( - "RaceTemplateID" INTEGER NOT NULL, - "Laps" SMALLINT NOT NULL, - "Backward" BOOL NOT NULL, - "Mirrored" BOOL NOT NULL, - "NightDriving" BOOL NOT NULL, - "Weather" BOOL NOT NULL, - "DifficultyRating" INTEGER NOT NULL, + "RaceTemplateID" INTEGER NOT NULL, + "Laps" SMALLINT NOT NULL, + "Backward" BOOL NOT NULL, + "Mirrored" BOOL NOT NULL, + "NightDriving" BOOL NOT NULL, + "Weather" BOOL NOT NULL, + "DifficultyRating" INTEGER NOT NULL, "RaceName" VARCHAR (100) ); @@ -1338,8 +1338,8 @@ ALTER TABLE "RaceTemplate" ADD CONSTRAINT "RaceTemplate_pkey" PRIMARY KEY ("Race CREATE TABLE "Street" ( - "ZoneID" INTEGER NOT NULL, - "StreetNum" INTEGER NOT NULL, + "ZoneID" INTEGER NOT NULL, + "StreetNum" INTEGER NOT NULL, "Street" VARCHAR (100) ); @@ -1349,12 +1349,12 @@ CREATE INDEX "Street_ZoneID_idx" ON "Street" ("ZoneID"); CREATE TABLE "TrackSpeedRecord" ( - "TrackSpeedRecordID" SERIAL, - "PersonaID" INTEGER, - "PlayerName" VARCHAR (30) NOT NULL, - "TopSpeed" INTEGER NOT NULL, - "TrackID" INTEGER NOT NULL, - "CarBrandedPartID" INTEGER NOT NULL, + "TrackSpeedRecordID" SERIAL, + "PersonaID" INTEGER, + "PlayerName" VARCHAR (30) NOT NULL, + "TopSpeed" INTEGER NOT NULL, + "TrackID" INTEGER NOT NULL, + "CarBrandedPartID" INTEGER NOT NULL, "Flags" INTEGER ); @@ -1363,11 +1363,11 @@ ALTER TABLE "TrackSpeedRecord" ADD CONSTRAINT "TrackSpeedRecord_pkey" PRIMARY KE CREATE TABLE "VehicleHistory" ( - "TrackID" INTEGER, - "VehicleID" INTEGER, - "RaceTime" TIMESTAMP WITHOUT TIME ZONE, - "OppNum" INTEGER, - "Place" INTEGER, + "TrackID" INTEGER, + "VehicleID" INTEGER, + "RaceTime" TIMESTAMP WITHOUT TIME ZONE, + "OppNum" INTEGER, + "Place" INTEGER, "PlayerID" INTEGER ); diff --git a/docs/reference/pkware/Makefile b/thebeast/docs/reference/pkware/Makefile similarity index 100% rename from docs/reference/pkware/Makefile rename to thebeast/docs/reference/pkware/Makefile diff --git a/docs/reference/pkware/PKWare.vcxproj b/thebeast/docs/reference/pkware/PKWare.vcxproj similarity index 100% rename from docs/reference/pkware/PKWare.vcxproj rename to thebeast/docs/reference/pkware/PKWare.vcxproj diff --git a/docs/reference/pkware/PKWare.vcxproj.filters b/thebeast/docs/reference/pkware/PKWare.vcxproj.filters similarity index 100% rename from docs/reference/pkware/PKWare.vcxproj.filters rename to thebeast/docs/reference/pkware/PKWare.vcxproj.filters diff --git a/docs/reference/pkware/Pkware.dsp b/thebeast/docs/reference/pkware/Pkware.dsp similarity index 100% rename from docs/reference/pkware/Pkware.dsp rename to thebeast/docs/reference/pkware/Pkware.dsp diff --git a/docs/reference/pkware/Readme.md b/thebeast/docs/reference/pkware/Readme.md similarity index 100% rename from docs/reference/pkware/Readme.md rename to thebeast/docs/reference/pkware/Readme.md diff --git a/docs/reference/pkware/explode.cpp b/thebeast/docs/reference/pkware/explode.cpp similarity index 100% rename from docs/reference/pkware/explode.cpp rename to thebeast/docs/reference/pkware/explode.cpp diff --git a/docs/reference/pkware/implode.cpp b/thebeast/docs/reference/pkware/implode.cpp similarity index 100% rename from docs/reference/pkware/implode.cpp rename to thebeast/docs/reference/pkware/implode.cpp diff --git a/docs/reference/pkware/pkware.h b/thebeast/docs/reference/pkware/pkware.h similarity index 100% rename from docs/reference/pkware/pkware.h rename to thebeast/docs/reference/pkware/pkware.h diff --git a/docs/server.md b/thebeast/docs/server.md similarity index 100% rename from docs/server.md rename to thebeast/docs/server.md diff --git a/docs/technicial/README.md b/thebeast/docs/technicial/README.md similarity index 100% rename from docs/technicial/README.md rename to thebeast/docs/technicial/README.md diff --git a/docs/technicial/external_notes.md b/thebeast/docs/technicial/external_notes.md similarity index 100% rename from docs/technicial/external_notes.md rename to thebeast/docs/technicial/external_notes.md diff --git a/docs/technicial/internal_notes.md b/thebeast/docs/technicial/internal_notes.md similarity index 100% rename from docs/technicial/internal_notes.md rename to thebeast/docs/technicial/internal_notes.md diff --git a/images/2012-10-12_lobby.png b/thebeast/images/2012-10-12_lobby.png similarity index 100% rename from images/2012-10-12_lobby.png rename to thebeast/images/2012-10-12_lobby.png diff --git a/jsconfig-old.json b/thebeast/jsconfig-old.json similarity index 100% rename from jsconfig-old.json rename to thebeast/jsconfig-old.json diff --git a/misc/mco-installer.ps1 b/thebeast/misc/mco-installer.ps1 similarity index 96% rename from misc/mco-installer.ps1 rename to thebeast/misc/mco-installer.ps1 index cda03c67e..fa873c097 100644 --- a/misc/mco-installer.ps1 +++ b/thebeast/misc/mco-installer.ps1 @@ -1,42 +1,41 @@ -# Steps that this installer will perform -$installedRegistry = no -$installedCertificate = no -$installedPublicKey = no - -# Manually add/change registry entries -# https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_registry_provider?view=powershell-7.1 -$path = 'HKLM:\SOFTWARE\WOW6432Node\EACom\AuthAuth' - -New-Item -Path $path -Force | Out-Null - -Set-ItemProperty -Path "$path\foo" -Name 'postInstallExecTimeout' -Value 30 -Force -Set-ItemProperty -Path $path -Name 'ConfigApplyAllSettingsForModels' -Value '' -Set-ItemProperty -Path $path -Name 'ConfigApplyAllSettingsForQueueNames' -Value '' -Set-ItemProperty -Path $path -Name 'ConfigApplyPreferencesOnlyForQueueNames' -Value '' -Set-ItemProperty -Path $path -Name 'OURestrictFailureCaption' -Value '' -Set-ItemProperty -Path $path -Name 'OURestrictFailureText' -Value '' - -# Import a certificate -# https://docs.microsoft.com/en-us/powershell/module/pki/import-certificate?view=windowsserver2019-ps -Import-Certificate -FilePath "$env:USERPROFILE\Downloads\mcouniverse.crt" -CertStoreLocation Cert:\CurrentUser\Root - -# Create a dialog box -# https://docs.microsoft.com/en-us/dotnet/api/system.windows.messagebox?view=net-5.0 -# Line break reference: https://social.technet.microsoft.com/Forums/lync/en-US/87f0a802-c7af-4517-85e1-be122c17ddb7/powershell-gui-popup-box-line-break -Add-Type -AssemblyName PresentationFramework -$msgBoxInput = [System.Windows.MessageBox]::Show("Would you like to install the SSL Root Certificate?`n(Choosing `"no`" will exit)",'Game input','YesNo','Information') - -switch ($msgBoxInput) { - - 'Yes' { - - ## Do something - - } - - 'No' { - - ## Do something - - } - +# Steps that this installer will perform +$installedRegistry = no +$installedCertificate = no +$installedPublicKey = no + +# Manually add/change registry entries +# https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_registry_provider?view=powershell-7.1 +$path = 'HKLM:\SOFTWARE\WOW6432Node\EACom\AuthAuth' + +New-Item -Path $path -Force | Out-Null + +Set-ItemProperty -Path "$path\foo" -Name 'postInstallExecTimeout' -Value 30 -Force +Set-ItemProperty -Path $path -Name 'ConfigApplyAllSettingsForModels' -Value '' +Set-ItemProperty -Path $path -Name 'ConfigApplyAllSettingsForQueueNames' -Value '' +Set-ItemProperty -Path $path -Name 'ConfigApplyPreferencesOnlyForQueueNames' -Value '' +Set-ItemProperty -Path $path -Name 'OURestrictFailureCaption' -Value '' +Set-ItemProperty -Path $path -Name 'OURestrictFailureText' -Value '' + +# Import a certificate +# https://docs.microsoft.com/en-us/powershell/module/pki/import-certificate?view=windowsserver2019-ps +Import-Certificate -FilePath "$env:USERPROFILE\Downloads\mcouniverse.crt" -CertStoreLocation Cert:\CurrentUser\Root + +# Create a dialog box +# https://docs.microsoft.com/en-us/dotnet/api/system.windows.messagebox?view=net-5.0 +# Line break reference: https://social.technet.microsoft.com/Forums/lync/en-US/87f0a802-c7af-4517-85e1-be122c17ddb7/powershell-gui-popup-box-line-break +Add-Type -AssemblyName PresentationFramework +$msgBoxInput = [System.Windows.MessageBox]::Show("Would you like to install the SSL Root Certificate?`n(Choosing `"no`" will exit)",'Game input','YesNo','Information') + +switch ($msgBoxInput) { + + 'Yes' { + + ## Do something + + } + + 'No' { + + ## Do something + + } diff --git a/misc/port-forward.ps1 b/thebeast/misc/port-forward.ps1 similarity index 98% rename from misc/port-forward.ps1 rename to thebeast/misc/port-forward.ps1 index edd7154df..739db780f 100644 --- a/misc/port-forward.ps1 +++ b/thebeast/misc/port-forward.ps1 @@ -8,4 +8,4 @@ $ports = @(5432,3000,8226,8228,7003,43300,43400) foreach ($port in $ports) { netsh interface portproxy add v4tov4 listenport=$port listenaddress=0.0.0.0 connectport=$port connectaddress=$WSL_IP } -pause \ No newline at end of file +pause diff --git a/thebeast/prettierrc b/thebeast/prettierrc new file mode 100644 index 000000000..e74ed9ff3 --- /dev/null +++ b/thebeast/prettierrc @@ -0,0 +1,6 @@ +{ + "trailingComma": "es5", + "tabWidth": 4, + "semi": false, + "singleQuote": true +} diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 000000000..d0f4591da --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "skipLibCheck": true, + "target": "ES2022", + "verbatimModuleSyntax": true, + "resolveJsonModule": true, + "moduleDetection": "force", + "strict": true, + "noUncheckedIndexedAccess": true, + "moduleResolution": "Bundler", + "module": "ES2022", + "lib": ["ES2022"], + "declaration": true, + "sourceMap": true, + "outDir": "dist", + "emitDeclarationOnly": true + + }, + "include": ["apps/**/*", "packages/**/*", "drizzle.config.ts", "schema/**/*.ts"], +} diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 000000000..b16d35597 --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "noEmit": true + }, + "include": ["apps", "libs", "./migrate.ts"] +} diff --git a/tsconfig.json b/tsconfig.json index ae87fc09f..d0f4591da 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,16 +1,21 @@ { "compilerOptions": { - "incremental": true, - "target": "es2016", - "module": "NodeNext", - "noImplicitOverride": true, - "declaration": true, - "declarationMap": true, - "outDir": "./dist", "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "target": "ES2022", + "verbatimModuleSyntax": true, + "resolveJsonModule": true, + "moduleDetection": "force", "strict": true, - "skipLibCheck": true + "noUncheckedIndexedAccess": true, + "moduleResolution": "Bundler", + "module": "ES2022", + "lib": ["ES2022"], + "declaration": true, + "sourceMap": true, + "outDir": "dist", + "emitDeclarationOnly": true + }, - "include": ["src", "test", "packages", "server.ts"] + "include": ["apps/**/*", "packages/**/*", "drizzle.config.ts", "schema/**/*.ts"], } diff --git a/vite.config.ts b/vite.config.ts index 33d8ac0c2..fb851b55a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,9 +9,14 @@ export default defineConfig({ "src/**/*.spec.ts", "src/**/*.test.ts", "bin/**/*.ts", - "interfaces", + "ecosystem.config.js", + "migrate.ts", + "packages/**/*.d.ts", ], reporter: ["lcov", "text", "cobertura"], }, + reporters: ["junit", "default", "hanging-process"], + outputFile: "mcos.junit.xml", + pool: "forks", }, });