commit 62abbcf4eb3f5a5df40b57cc445e564d81758b38 Author: bangae1 Date: Sat May 24 01:49:48 2025 +0900 first diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..76add87 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +dist \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..c65b3f1 --- /dev/null +++ b/.env.example @@ -0,0 +1,12 @@ +# This is the api prefix used in the useFetch composable function. +# The default value point to the json-server, which is started in the same time as +# the dev server is started (see package.json "dev" script) +# @see /src/composable/useFetch.ts +# @see /json-server/db.json +# @see /json-server/config.json +VITE_API_BASE_URL=http://localhost:8080 + +# This is the mapbox api used for the map applications +# @see /src/pages/sidebar/maps-1.vue +# @see /src/pages/sidebar/maps-2.vue +VITE_MAPBOX_ACCESS_TOKEN=pk.eyJ1IjoiY3NzbmluamEiLCJhIjoiY2toZW1nYm0zMDAxODJycXFzZ3g4cnZ6diJ9.9ebfrGREuwkauRr_afDTgA \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..f124533 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,16 @@ +# Ignore artifacts: +build +bulma-generated +dist +coverage +node_modules +public +README.md + +# generated files +CHANGELOG.md +bulma-colors.js +types/components.d.ts +types/router.d.ts +types/imports.d.ts +components-meta.ts \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..bd9e864 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,202 @@ +const stylistic = require('@stylistic/eslint-plugin') + +const customized = stylistic.configs.customize({ + indent: 2, + quotes: 'single', + semi: false, +}) + +module.exports = { + root: true, + env: { + browser: true, + node: true, + }, + overrides: [ + { + files: ['*.md'], + parser: 'markdown-eslint-parser', + extends: ['plugin:md/recommended'], + rules: {}, + }, + { + files: ['*.cjs'], + plugins: ['sonarjs', '@stylistic'], + extends: [ + 'eslint:recommended', + 'plugin:sonarjs/recommended', + ], + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'script', + }, + rules: { + ...customized.rules, + 'no-console': 'off', + 'no-debugger': 'off', + 'no-unused-vars': 'off', + 'no-undef': 'off', // auto-imports are not recognized + + 'sonarjs/no-duplicate-string': 'off', + }, + }, + { + files: ['*.js', '*.mjs'], + plugins: ['sonarjs', '@stylistic'], + extends: [ + 'eslint:recommended', + 'plugin:sonarjs/recommended', + ], + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + rules: { + ...customized.rules, + 'no-console': 'off', + 'no-debugger': 'off', + 'no-unused-vars': 'off', + 'no-undef': 'off', // auto-imports are not recognized + + 'sonarjs/no-duplicate-string': 'off', + }, + }, + { + files: ['*.ts'], + plugins: ['sonarjs', '@typescript-eslint', '@stylistic'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:sonarjs/recommended', + ], + parserOptions: { + ecmaVersion: 'latest', + parser: '@typescript-eslint/parser', + sourceType: 'module', + tsconfigRootDir: __dirname, + }, + rules: { + ...customized.rules, + 'no-console': 'off', + 'no-debugger': 'off', + 'no-unused-vars': 'off', + 'no-undef': 'off', // auto-imports are not recognized + + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/consistent-type-imports': [ + 'error', + { prefer: 'type-imports', fixStyle: 'inline-type-imports' }, + ], + '@typescript-eslint/no-explicit-any': 'off', + + 'sonarjs/no-duplicate-string': 'off', + 'sonarjs/cognitive-complexity': 'off', + }, + }, + { + files: ['*.vue'], + plugins: ['sonarjs', '@typescript-eslint', '@stylistic'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:sonarjs/recommended', + 'plugin:vue/vue3-recommended', + 'plugin:vuejs-accessibility/recommended', + ], + parserOptions: { + parser: '@typescript-eslint/parser', + sourceType: 'module', + tsconfigRootDir: __dirname, + }, + rules: { + ...customized.rules, + 'no-console': 'off', + 'no-debugger': 'off', + 'no-unused-vars': 'off', + 'no-undef': 'off', // auto-imports are not recognized + + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/consistent-type-imports': [ + 'error', + { prefer: 'type-imports', fixStyle: 'inline-type-imports' }, + ], + + 'vue/script-setup-uses-vars': 'error', + 'vue/multi-word-component-names': 'off', + 'vue/max-attributes-per-line': [ + 'error', + { + singleline: { + max: 2, + }, + multiline: { + max: 1, + }, + }, + ], + // vue 3.3 allows setup props destructuring + 'vue/no-setup-props-destructure': 'off', + // vue 3.4 allow v-bind shorthand + 'vue/valid-v-bind': 'off', + + 'vuejs-accessibility/form-control-has-label': 'off', + 'vuejs-accessibility/label-has-for': 'off', + 'vuejs-accessibility/anchor-has-content': 'off', + + 'sonarjs/no-duplicate-string': 'off', + 'sonarjs/cognitive-complexity': 'off', + }, + }, + { + files: ['*.md.vue'], + plugins: ['@typescript-eslint', '@stylistic'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:vue/vue3-recommended', + ], + parserOptions: { + parser: '@typescript-eslint/parser', + sourceType: 'module', + tsconfigRootDir: __dirname, + }, + rules: { + ...customized.rules, + 'no-console': 'off', + 'no-debugger': 'off', + 'no-unused-vars': 'off', + 'no-undef': 'off', // auto-imports are not recognized + + '@typescript-eslint/no-unused-vars': ['off'], + '@typescript-eslint/consistent-type-imports': [ + 'error', + { prefer: 'type-imports', fixStyle: 'inline-type-imports' }, + ], + + 'vue/script-setup-uses-vars': 'error', + 'vue/multi-word-component-names': 'off', + 'vue/max-attributes-per-line': [ + 'error', + { + singleline: { + max: 2, + }, + multiline: { + max: 1, + }, + }, + ], + // vue 3.3 allows setup props destructuring + 'vue/no-setup-props-destructure': 'off', + // vue 3.4 allow v-bind shorthand + 'vue/valid-v-bind': 'off', + + 'vuejs-accessibility/form-control-has-label': 'off', + 'vuejs-accessibility/label-has-for': 'off', + 'vuejs-accessibility/anchor-has-content': 'off', + + 'sonarjs/no-duplicate-string': 'off', + }, + }, + ], +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..95902de Binary files /dev/null and b/.gitignore differ diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000..fa90b9a --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,10 @@ +# Ignore artifacts: +build +dist +coverage +node_modules +public + +*.md +generated-vars.sass +generated-fallback.css \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..68e9214 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,11 @@ +{ + "recommendations": [ + "Vue.volar", + "lokalise.i18n-ally", + "dbaeumer.vscode-eslint", + "syler.sass-indented", + "stylelint.vscode-stylelint", + "antfu.goto-alias", + "antfu.iconify" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..afdbf70 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + // 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": "Debug Vuero app (SPA)", + "type": "chrome", + "request": "launch", + "url": "http://localhost:3000", + "webRoot": "${workspaceFolder}", + "skipFiles": [ + "/**", + "${workspaceRoot}/node_modules/**" + ] + }, + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b3d20c7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,26 @@ +{ + "css.validate": false, + "less.validate": false, + "scss.validate": false, + "eslint.enable": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "eslint.validate": [ + "javascript", + "javascriptreact", + "json", + "markdown", + "typescript", + "vue" + ], + "i18n-ally.localesPaths": "src/locales", + "i18n-ally.enabledParsers": ["yaml", "json", "json5"], + "i18n-ally.sortKeys": true, + "i18n-ally.keystyle": "nested", + "files.associations": { + "*.json": "jsonc" + }, + "typescript.preferences.autoImportFileExcludePatterns": ["vue-router$"], + "vue.codeActions.enabled": false +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c3005b2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM bitnami/node:20 AS build +WORKDIR /app + +ARG VITE_API_BASE_URL="" +ARG VITE_MAPBOX_ACCESS_TOKEN="" + +RUN corepack enable && corepack prepare pnpm@latest --activate + +COPY package.json ./ +RUN pnpm install --no-lockfile + +COPY . . +RUN VITE_API_BASE_URL=$VITE_API_BASE_URL \ + VITE_MAPBOX_ACCESS_TOKEN=$VITE_MAPBOX_ACCESS_TOKEN \ + NODE_OPTIONS=--max-old-space-size=6144 \ + pnpm ssr:build + +FROM bitnami/node:20 AS prod +WORKDIR /app + +RUN corepack enable && corepack prepare pnpm@latest --activate + +COPY package.json ./ +RUN pnpm install --no-lockfile --prod + +COPY --from=build /app/dist ./dist +COPY --from=build /app/json-server ./json-server +COPY --from=build /app/server ./server + +EXPOSE 3000 8080 + +ENV NODE_ENV=production + +CMD ["pnpm", "ssr:start"] \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..927cdf5 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,306 @@ +# Envato License + +> If you buy a theme for personal use or a client and the site is +> not duplicated and does not sell, the **regular license is enough**. + +> If you buy a theme for personal or client use and the site sells products +> or services, you are obliged to buy the **extended license**. + +## Envato Regular License ([view online](https://themeforest.net/licenses/terms/regular)) + +1. The Regular License grants you, the purchaser, an ongoing, non-exclusive, + worldwide license to make use of the digital work (Item) you have selected. + Read the rest of this license for the details that apply to your + use of the Item, as well as the [FAQs](https://themeforest.net/licenses/faq) + (which form part of this license). + +1. You are licensed to use the Item to create one single End Product for + yourself or for one client (a “single application”), and the + End Product can be distributed for Free. + +1. An End Product is one of the following things, + both requiring an application of skill and effort. + + 1. For an Item that is a template, the End Product is a customised + implementation of the Item. + + > For example: the item is a website + > theme and the end product is the final website customised + > with your content. + + 1. For other types of Item, an End Product is a work that incorporates the + Item as well as other things, so that it is larger in scope and + different in nature than the Item. + + > For example: the item is a button graphic + > and the end product is a website. + > See the [FAQs](https://themeforest.net/licenses/faq) for examples + > and information about End Products and the single application + > requirement. + +1. You can create one End Product for a client, and you can transfer that + single End Product to your client for any fee. This license is then + transferred to your client. + +1. You can make any number of copies of the single End Product, + as long as the End Product is distributed for Free. + +1. You can modify or manipulate the Item. You can combine the Item with other + works and make a derivative work from it. The resulting works are subject + to the terms of this license. You can do these things as long as the + End Product you then create is one that’s permitted under clause 3. + + > For example: You can license a flyer template, include your own photos, + > modify the layout and get it printed to promote your event. + +1. You can’t Sell the End Product, except to one client. + (If you or your client want to Sell the End Product, + you will need the Extended License.) + +1. You can’t re-distribute the Item as stock, in a tool or template, + or with source files. You can’t do this with an Item either on + its own or bundled with other items, and even if you modify the Item. + You can’t re-distribute or make available the Item as-is or + with superficial modifications. + + These things are not allowed even if the re-distribution is for Free. + + > If you’re an Envato author you can use other items in your item’s preview + > without a license, under conditions. See the [author licensing FAQs](https://themeforest.net/licenses/faq#faq-section-author). + + > For example: You can’t purchase an HTML template, convert it to a + > WordPress theme and sell or give it to more than one client. + > You can’t license an item and then make it available as-is on your + > website for your users to download. + +1. You can’t use the Item in any application allowing an end user to + customise a digital or physical product to their specific needs, + such as an “on demand”, “made to order” or “build it yourself” application. + You can use the Item in this way only if you purchase a + separate license for each final product incorporating the + Item that is created using the application. + + > Examples of “on demand”, “made to order” or “build it yourself” + > applications: website builders, “create your own” slideshow apps, + > and e-card generators. You will need one license for each + > product created by a customer, or contact us at [Help Center](http://help.market.envato.com/hc/en-us) + > to discuss. + +1. Although you can modify the Item and therefore delete unwanted + components before creating your single End Product, + you can’t extract and use a single component of an Item on a + stand-alone basis. + + > For example: You license a website theme containing icons. + > You can delete unwanted icons from the theme. + > But you can't extract an icon to use outside of the theme. + +1. You must not permit an end user of the End Product to extract the + Item and use it separately from the End Product. + +1. You can’t use an Item in a logo, trademark, or service mark. + Looking for a logo? See our [GraphicRiver logos section](http://graphicriver.net/category/logo-templates?_ga=2.247802052.294898880.1626368611-277376300.1618173274), + which has its own license. + +1. For some Items, a component of the Item will be sourced by the author + from elsewhere and different license terms may apply to the component, + such as someone else’s license or an open source or + creative commons license. If so, the component will be identified by + the author in the Item’s description page or in the Item’s + downloaded files. The other license will apply to that component + instead of this license. This license will apply to the rest of the Item. + + > For example: A theme might contain images licensed under a + > Creative Commons CCBY license. The CCBY license applies to those + > specific images. This license applies to the rest of the theme. + +1. For some items, a GNU General Public License (GPL) or + another open source license applies. The open source license + applies in the following ways: + + 1. Some Items, even if entirely created by the author, may be + partially subject to the open source license: a ‘split license’ applies. + This means that the open source license applies to an extent that’s + determined by the open source license terms and the nature of the + Item, and this license applies to the rest of the Item. + Split and other open source licensing is relevant for themes and + plug-ins for WordPress and other open source platforms. + Where split licensing applies, this is noted in the Item’s + download files: for more information, see this Help Center article + + 1. For some Items, the author may have chosen to apply a GPL license + to the entire Item. This means that the relevant GPL license will apply + to the entire Item instead of this license. Where an Item is + entirely under a GPL license, it will be identified as a GPL item and + the license noted in the download files: + for more information see the [FAQs](https://themeforest.net/licenses/faq) + +1. You can only use the Item for lawful purposes. Also, + if an Item contains an image of a person, even if the Item is model-released + you can’t use it in a way that creates a fake identity, implies personal + endorsement of a product by the person, or in a way that is defamatory, + obscene or demeaning, or in connection with sensitive subjects. + + > For more information on sensitive subjects, see our [FAQs](https://themeforest.net/licenses/faq). + +1. Items that contain digital versions of real products, + trademarks or other intellectual property owned by others have not been + property released. These Items are licensed on the basis of + editorial use only. It is your responsibility to consider whether your use + of these Items requires a clearance and if so, to obtain that clearance from + the intellectual property rights owner. + +1. This license applies in conjunction with the [Envato Market Terms](https://themeforest.net/legal/market) + for your use of Envato Market. If there is an inconsistency between + this license and the Envato Market Terms, this license will apply + to the extent necessary to resolve the inconsistency. + +1. This license can be terminated if you breach it. If that happens, + you must stop making copies of or distributing the End Product until + you remove the Item from it. + +1. The author of the Item retains ownership of the Item but grants + you the license on these terms. This license is between the author + of the Item and you. Envato Pty Ltd is not a party to this license + or the one giving you the license. + +## Envato Extended License ([view online](https://themeforest.net/licenses/terms/extended)) + +1. The Extended License grants you, the purchaser, an ongoing, + non-exclusive, worldwide license to make use of the digital + work (Item) you have selected. Read the rest of this license for the + details that apply to your use of the Item, as well as the [FAQs](https://themeforest.net/licenses/faq) + (which form part of this license). + +1. You are licensed to use the Item to create one single End Product for + yourself or for one client (a “single application”), + and the End Product may be Sold. + +1. An End Product is one of the following things, both requiring an + application of skill and effort. + + 1. For an Item that is a template, the End Product is a + customised implementation of the Item. + + > For example, the item is a magazine template and the end product + > is the finished magazine. + + 1. For other types of Item, an End Product is something that + incorporates the Item as well as other things, so that it is + larger in scope and different in nature than the Item. + + > For example, the item is a set of icons and the end product is + > a mobile app for sale. See the [FAQs](https://themeforest.net/licenses/faq) + > for examples and information about End Products and + > the single application requirement. + +1. You can create the End Product for a client, and this license is + then transferred from you to your client. + +1. You can Sell and make any number of copies of the single End Product. + +1. You can modify or manipulate the Item. You can combine the Item with + other works and make a derivative work from it. The resulting works are + subject to the terms of this license. You can do these things as + long as the End Product you then create is one that’s + permitted under clause 3. + + > For example: you can license a vector, manipulate it and add your + > own elements to create an illustration that’s used as a book cover. + +1. This license is a “single application” license and not a + “multi-use” license, which means that you can’t use the Item to + create more than one unique End Product. + +1. You can’t re-distribute the Item as stock, in a tool or template, + or with source files. You can’t do this with an Item either on its + own or bundled with other items, and even if you modify the Item. + You can’t re-distribute or make available the Item as-is or + with superficial modifications. + + > For example: You can't license a number of vector files, and + > redistribute/resell them as a clip-art pack. + + > If you’re an Envato author you can use other items in your item’s + > preview without a license, under conditions. + > See the [author licensing FAQs](https://themeforest.net/licenses/faq#faq-section-author). + +1. You can’t use the Item in any application allowing an end user to + customise a digital or physical product to their specific needs, + such as an “on demand”, “made to order” or “build it yourself” application. + You can use the Item in this way only if you purchase a separate + license for each final product incorporating the Item that is created + using the application. + + > Examples of “on demand”, “made to order” or “build it yourself” + > applications: website builders, “create your own” slideshow apps, + > and e-card generators. You will need one license for each product + > created by a customer, or contact us at [Help Center](http://help.market.envato.com/hc/en-ushttp://help.market.envato.com/hc/en-us) + > to discuss. + +1. Although you can modify the Item and therefore delete components + before creating your single End Product, you can’t extract and + use a single component of an Item on a stand-alone basis. + + > For example: You license a game starter kit. + > You can delete unwanted 3D models from the file. + > But you can’t extract and use a 3D model outside of the game starter kit. + +1. You must not permit an end user of the End Product to extract the + Item and use it separately from the End Product. + +1. You can’t use an Item in a logo, trademark, or service mark. + + > Looking for a logo? See our [GraphicRiver logos](http://graphicriver.net/category/logo-templates?_ga=2.211654485.131496368.1626370327-277376300.1618173274) section, + > which has its own license. + +1. For some Items, a component of the Item will be sourced by the + author from elsewhere and different license terms may apply to + the component, such as someone else’s license or an open source or + creative commons license. If so, the component will be identified by + the author in the Item’s description page or in the Item’s + downloaded files. The other license will apply to that component instead + of this license. This license will apply to the rest of the Item. + +1. Some Items are partially subject to a GNU General Public License (GPL) + or another open source license even if the Item was entirely created by + the author. For these Items, a ‘split license’ applies. This means that + the open source license applies to an extent that’s determined by the + open source license terms and the nature of the Item, and this + license applies to the rest of the Item. + + > For more information, see [this Help Center article](http://support.envato.com/index.php?/Knowledgebase/Article/View/428). + > This is most common for themes for WordPress and other + > open source platforms. Where split licensing applies, + > this is noted in the Item’s download files. + +1. You can only use the Item for lawful purposes. Also, + if an Item contains an image of a person, even if the Item is + model-released you can’t use it in a way that creates a fake identity, + implies personal endorsement of a product by the person, or in a way that + is defamatory, obscene or demeaning, or in connection with + sensitive subjects. + + > For more information on sensitive subjects, see our [FAQs](https://themeforest.net/licenses/faq). + +1. Items that contain digital versions of real products, + trademarks or other intellectual property owned by others have not + been property released. These Items are licensed on the basis of + editorial use only. It is your responsibility to consider whether + your use of these Items requires a clearance and if so, + to obtain that clearance from the intellectual property rights owner. + +1. This license applies in conjunction with the Envato Market Terms + for your use of the Envato Market sites. If there is an inconsistency + between this license and the [Envato Market Terms](https://themeforest.net/legal/market), + this license will apply to the extent necessary to + resolve the inconsistency. + +1. This license can be terminated if you breach it. + If that happens, you must stop making copies of or distributing + the End Product until you remove the Item from it. + +1. The author of the Item retains ownership of the Item but grants you + the license on these terms. This license is between the author of the + Item and you. Envato Pty Ltd is not a party to this license or the + one giving you the license. diff --git a/README.md b/README.md new file mode 100644 index 0000000..07c5ea6 --- /dev/null +++ b/README.md @@ -0,0 +1,93 @@ +# oa + + + +## Getting started + +To make it easy for you to get started with GitLab, here's a list of recommended next steps. + +Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! + +## Add your files + +- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files +- [ ] [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command: + +``` +cd existing_repo +git remote add origin https://git.hmsn.ink/kospo/svcm/oa.git +git branch -M main +git push -uf origin main +``` + +## Integrate with your tools + +- [ ] [Set up project integrations](http://git.hmsn.ink/kospo/svcm/oa/-/settings/integrations) + +## Collaborate with your team + +- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) +- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) +- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) +- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) +- [ ] [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/) + +## Test and Deploy + +Use the built-in continuous integration in GitLab. + +- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/) +- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) +- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) +- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) +- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) + +*** + +# Editing this README + +When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template. + +## Suggestions for a good README + +Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. + +## Name +Choose a self-explaining name for your project. + +## Description +Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. + +## Badges +On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. + +## Visuals +Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. + +## Installation +Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. + +## Usage +Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. + +## Support +Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. + +## Roadmap +If you have ideas for releases in the future, it is a good idea to list them in the README. + +## Contributing +State if you are open to contributions and what your requirements are for accepting them. + +For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. + +You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. + +## Authors and acknowledgment +Show your appreciation to those who have contributed to the project. + +## License +For open source projects, say how it is licensed. + +## Project status +If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. diff --git a/api/prcsSave.http b/api/prcsSave.http new file mode 100644 index 0000000..d51b551 --- /dev/null +++ b/api/prcsSave.http @@ -0,0 +1,60 @@ +POST https://svcm.hmsn.ink/api/prcs +Content-Type: application/json + +{ + "cateCd": "0200", + "title": "4층 파티션 구매123", + "content": "싼거 찾아요123", + "regSdat": "2025-04-01", + "regEdat": "2025-07-24", + "prvYn": false, + "prvRsn": "", + "prvPwd": "", + "aiYn": false, + "prcsAtts": [ + { + "logiFnm": "text1.pdf", + "data": "aWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjGlkIDcyMiDquYzsp4Ag7JmE66OMaWQgNzIyIOq5jOyngCDsmYTro4xpZCA3MjIg6rmM7KeAIOyZhOujjA==" + } + ], + "dtlSpecs": [ + { + "itemNm": "공사용역", + "spec": "3", + "unit": "month", + "qty": 1 + } + ], + "apprReqs": [ + { + "gubunCd": "", + "sabun": "psn14020", + "name": "조진우", + "attendCd": "" + }, + { + "gubunCd": "0100", + "sabun": "17131303", + "name": "김진형", + "attendCd": "" + }, + { + "gubunCd": "0200", + "sabun": "17131304", + "name": "손원장", + "attendCd": "" + } + ], + "prcsBizs": [ + { + "bizNo": "999-99-99999", + "email": "aa@gmail.com" + }, + { + "bizNo": "111-11-11111", + "email": "bb@gmail.com" + } + ] +} + +### \ No newline at end of file diff --git a/bulma-css-vars.config.cjs b/bulma-css-vars.config.cjs new file mode 100644 index 0000000..b8609ad --- /dev/null +++ b/bulma-css-vars.config.cjs @@ -0,0 +1,17 @@ +module.exports = { + sassEntryFile: 'src/scss/main.scss', + jsOutputFile: 'src/scss/bulma-generated/bulma-colors.ts', + sassOutputFile: 'src/scss/bulma-generated/generated-vars.sass', + cssFallbackOutputFile: 'src/scss/bulma-generated/generated-fallback.css', + colorDefs: { + white: '#FFF', + primary: '#FFF', + dark: '#FFF', + link: '#FFF', + info: '#FFF', + success: '#FFF', + warning: '#FFF', + danger: '#FFF', + }, + transition: null, +} diff --git a/documentation/accordion-image/accordion-image-documentation.md b/documentation/accordion-image/accordion-image-documentation.md new file mode 100644 index 0000000..6fd6457 --- /dev/null +++ b/documentation/accordion-image/accordion-image-documentation.md @@ -0,0 +1,54 @@ +### Image accordion + +A nice experimental and playful CSS only image +accordion component: ``. +Images simply stack on mobile. +Pass an **Array** to the `items` props to render the accordion. +Check markup for more details about usage. + + + +```vue + + + +``` + + diff --git a/documentation/accordion/accordion-default-documentation.md b/documentation/accordion/accordion-default-documentation.md new file mode 100644 index 0000000..365dfb7 --- /dev/null +++ b/documentation/accordion/accordion-default-documentation.md @@ -0,0 +1,40 @@ +### VAccordion + +Vuero provides 2 accordion components with enough styling to be able to use +them out of the box: `` and ``. +In the simple accordion, each item can be openened separately, whereas in the +exclusive accordion, only one item can be expanded at a time. +Pass an **Array** to the `items` props to render the accordion. + + + +```vue + + + +``` + + diff --git a/documentation/action/v-action-documentation.md b/documentation/action/v-action-documentation.md new file mode 100644 index 0000000..e54b905 --- /dev/null +++ b/documentation/action/v-action-documentation.md @@ -0,0 +1,37 @@ +### VAction + +Vuero provides a versatile small button component named +`` components can have different colors. +VActions can be `rounded`, `hoverable` or `grey` using the related props. + + + +```vue + +``` + + + + + + + Action + Action + Action + Action + + + diff --git a/documentation/animated-checkbox/animated-checkbox-documentation.md b/documentation/animated-checkbox/animated-checkbox-documentation.md new file mode 100644 index 0000000..337f380 --- /dev/null +++ b/documentation/animated-checkbox/animated-checkbox-documentation.md @@ -0,0 +1,145 @@ +--- +state: + options: + - 'Option 2' + - 'Option 7' +--- + +### VAnimatedCheckbox + +Vuero provides nicely styled switch segment when you need to +display such control in your forms. Vuero `VAnimatedCheckbox` component have +several color modififers. Available modifiers are `primary`, `success`, +`info`, `warning` and `danger`. +Please refer to the markup for more details about usage. + + + +```vue + + + +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/avatar-stack/avatar-stack-medium-documentation.md b/documentation/avatar-stack/avatar-stack-medium-documentation.md new file mode 100644 index 0000000..f64af25 --- /dev/null +++ b/documentation/avatar-stack/avatar-stack-medium-documentation.md @@ -0,0 +1,52 @@ +### Medium stack + +Vuero avatars can be stacked in an slighlty overlaping line. +Use the `` component. The component takes 2 props: +`avatars` and `size`. Available sizes are normal, `small` and `medium`. + + + +```vue + + + +``` + + + + +
+ + + + + + +
+ + + +2 + + +
+
+ + diff --git a/documentation/avatar-stack/avatar-stack-regular-documentation.md b/documentation/avatar-stack/avatar-stack-regular-documentation.md new file mode 100644 index 0000000..70bf7e8 --- /dev/null +++ b/documentation/avatar-stack/avatar-stack-regular-documentation.md @@ -0,0 +1,53 @@ +### Regular stack + +Vuero avatars can be stacked in an slighlty overlaping line. +Use the `` component. The component takes 2 props: +`avatars` and `size`. Available sizes are normal, `small` and `medium`. + + + +```vue + + + +``` + + + + +
+ + + + + + +
+ + + +2 + + +
+
+ + diff --git a/documentation/avatar-stack/avatar-stack-small-documentation.md b/documentation/avatar-stack/avatar-stack-small-documentation.md new file mode 100644 index 0000000..e6a098e --- /dev/null +++ b/documentation/avatar-stack/avatar-stack-small-documentation.md @@ -0,0 +1,52 @@ +### Small stack + +Vuero avatars can be stacked in an slighlty overlaping line. +Use the `` component. The component takes 2 props: +`avatars` and `size`. Available sizes are normal, `small` and `medium`. + + + +```vue + + + +``` + + + + +
+ + + + + + +
+ + + +2 + + +
+
+ + diff --git a/documentation/avatar/avatar-badge-documentation.md b/documentation/avatar/avatar-badge-documentation.md new file mode 100644 index 0000000..a71e913 --- /dev/null +++ b/documentation/avatar/avatar-badge-documentation.md @@ -0,0 +1,61 @@ +### Avatar badge + +Vuero avatars can have badge images attached to them. +Simply add a 1:1 ratio image URL to the avatar component using the `badge` prop. + + + +```vue + +``` + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-default-documentation.md b/documentation/avatar/avatar-default-documentation.md new file mode 100644 index 0000000..4f08d9e --- /dev/null +++ b/documentation/avatar/avatar-default-documentation.md @@ -0,0 +1,41 @@ +### VAvatar + +Vuero `` components are rounded images used for media +and personal pages. Avatar sizes can be controled with 'size' prop. +Available size prop values `small`, `medium`, `large`, `big` and `xl`. +See code for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-dot-colors-documentation.md b/documentation/avatar/avatar-dot-colors-documentation.md new file mode 100644 index 0000000..3e58c91 --- /dev/null +++ b/documentation/avatar/avatar-dot-colors-documentation.md @@ -0,0 +1,69 @@ +### Dot colors + +Avatar dots can have different colors. Set the `dotColor` prop +to `primary`, `info`, `warning`, `danger` or `grey` to change the dot color. +See code for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-dot-documentation.md b/documentation/avatar/avatar-dot-documentation.md new file mode 100644 index 0000000..80a2d58 --- /dev/null +++ b/documentation/avatar/avatar-dot-documentation.md @@ -0,0 +1,61 @@ +### Avatar dot + +Avatars can have a small dot attached to them, +if you'd like to show a user status for example. +Add the `dot` prop to the target avatar component. +See code for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-dot-squared-documentation.md b/documentation/avatar/avatar-dot-squared-documentation.md new file mode 100644 index 0000000..352f15d --- /dev/null +++ b/documentation/avatar/avatar-dot-squared-documentation.md @@ -0,0 +1,69 @@ +### Squared dot + +Avatars can have a small dot attached to them, if you'd like to +show a user status for example. Add the `dot` prop +to the target avatar component. See code for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-fake-badge-documentation.md b/documentation/avatar/avatar-fake-badge-documentation.md new file mode 100644 index 0000000..8dff7cd --- /dev/null +++ b/documentation/avatar/avatar-fake-badge-documentation.md @@ -0,0 +1,60 @@ +### Fake badge + +When the provided picture URL is null, the avatar component +falls back to a fake avatar. Fake avatars can also have badges. +See the code examples for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-fake-color-documentation.md b/documentation/avatar/avatar-fake-color-documentation.md new file mode 100644 index 0000000..54f061d --- /dev/null +++ b/documentation/avatar/avatar-fake-color-documentation.md @@ -0,0 +1,98 @@ +### Fake avatar colors + +Fake avatars can have different colors to break monotony. +You can change the avatar color passing one of the following values +to the `color` prop: `primary`, `success`, `info`, `warning`, `danger`, +`h-purple`, `h-orange`, `h-blue`, `h-green`, `h-red`, `h-yellow`. +Supports dark mode. + + + +```vue + +``` + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-fake-documentation.md b/documentation/avatar/avatar-fake-documentation.md new file mode 100644 index 0000000..bda7ad0 --- /dev/null +++ b/documentation/avatar/avatar-fake-documentation.md @@ -0,0 +1,41 @@ +### Fake avatar + +When the provided picture URL is null, the avatar component +falls back to a fake avatar. Same size mofifiers are available. +Use the `initials` prop to pass initials to the component. +See the code examples for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-fake-square-documentation.md b/documentation/avatar/avatar-fake-square-documentation.md new file mode 100644 index 0000000..2190ee5 --- /dev/null +++ b/documentation/avatar/avatar-fake-square-documentation.md @@ -0,0 +1,61 @@ +### Fake squared + +When the provided picture URL is null, the avatar component +falls back to a fake avatar. Same size mofifiers are available. +Use the `initials` prop to pass initials to the component. +See the code examples for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-fake-squared-color-documentation.md b/documentation/avatar/avatar-fake-squared-color-documentation.md new file mode 100644 index 0000000..ac58ef8 --- /dev/null +++ b/documentation/avatar/avatar-fake-squared-color-documentation.md @@ -0,0 +1,113 @@ +### Fake squared colors + +Fake avatars can have different colors to break monotony. +You can change the avatar color passing one of the following +values to the `color` prop: `primary`, `success`, `info`, `warning`, +`danger`, `h-purple`, `h-orange`, `h-blue`, `h-green`, `h-red`, `h-yellow`. +Supports dark mode. + + + +```vue + +``` + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-handle-fallback-documentation.md b/documentation/avatar/avatar-handle-fallback-documentation.md new file mode 100644 index 0000000..9f41445 --- /dev/null +++ b/documentation/avatar/avatar-handle-fallback-documentation.md @@ -0,0 +1,62 @@ +### Fallback avatar + +Vuero Avatars automatically fall back to a placeholder +when no valid URL is provided for the `picture` prop. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/avatar/avatar-square-documentation.md b/documentation/avatar/avatar-square-documentation.md new file mode 100644 index 0000000..d7a5913 --- /dev/null +++ b/documentation/avatar/avatar-square-documentation.md @@ -0,0 +1,60 @@ +### Squared avatar + +Avatars can have a square shape instead of a circle shape +by adding the `squared` prop to the avatar component. +See code for more details about usage. + + + +```vue + +``` + + + + + + + + + + + + + + + diff --git a/documentation/block/v-block-base-documentation.md b/documentation/block/v-block-base-documentation.md new file mode 100644 index 0000000..2f96ab5 --- /dev/null +++ b/documentation/block/v-block-base-documentation.md @@ -0,0 +1,51 @@ +### VBlock + +Vuero provides a versatile flex block media component named ``. +VBlock has 2 named slots. One for the `icon` element, which can +be whatever you want, and one for the `action`. + + + +```vue + +``` + + + + + +
+
+
+ + + + +
+
+
+ + diff --git a/documentation/block/v-block-base-responsive-documentation.md b/documentation/block/v-block-base-responsive-documentation.md new file mode 100644 index 0000000..1a9562d --- /dev/null +++ b/documentation/block/v-block-base-responsive-documentation.md @@ -0,0 +1,57 @@ +### Responsive mobile + +`` can be made responsive for the mobile viewport by +adding the `mResponsive` prop to the component. +When set to responsive mode, the flex block elements stack +to fit in the available space. Resize your screen to see it in action. + + + +```vue + +``` + + + + + +
+
+
+ + + + +
+
+
+ + diff --git a/documentation/block/v-block-center-documentation.md b/documentation/block/v-block-center-documentation.md new file mode 100644 index 0000000..6ecb073 --- /dev/null +++ b/documentation/block/v-block-center-documentation.md @@ -0,0 +1,55 @@ +### Centered align + +You can adjust the `` component flex alignment +using the `center` prop. This will apply the `flex` property +`align-items: center;` to the component. + + + +```vue + +``` + + + + + +
+
+
+ + + + +
+
+
+ + diff --git a/documentation/block/v-block-center-responsive-documentation.md b/documentation/block/v-block-center-responsive-documentation.md new file mode 100644 index 0000000..9f385ef --- /dev/null +++ b/documentation/block/v-block-center-responsive-documentation.md @@ -0,0 +1,64 @@ +### Tablet responsive + +`` can be made responsive for the tablet portrait viewport +by adding the `tResponsive` prop to the component. When set to responsive mode, +the flex block elements stack to fit in the available space. +Resize your screen to see it in action. + + + +```vue + +``` + + + + + +
+
+
+ + + + +
+
+
+ + diff --git a/documentation/block/v-block-icon-center-documentation.md b/documentation/block/v-block-icon-center-documentation.md new file mode 100644 index 0000000..b1bed2b --- /dev/null +++ b/documentation/block/v-block-icon-center-documentation.md @@ -0,0 +1,55 @@ +### Icon centered + +You can adjust the `` component flex alignment using +the `center` prop. This will apply the `flex` property +`align-items: center;` to the component. + + + +```vue + +``` + + + + + +
+
+
+ + + + +
+
+
+ + diff --git a/documentation/block/v-block-icon-documentation.md b/documentation/block/v-block-icon-documentation.md new file mode 100644 index 0000000..3827c93 --- /dev/null +++ b/documentation/block/v-block-icon-documentation.md @@ -0,0 +1,47 @@ +### VBlock icon + +Vuero provides a versatile flex block media component named +``. VBlock has 2 named slots. One for the `icon` element, +which can be whatever you want, and one for the `action`. + + + +```vue + +``` + + + + + +
+
+
+ + + + +
+
+
+ + diff --git a/documentation/breadcrumb/breadcrumb-arrow-documentation.md b/documentation/breadcrumb/breadcrumb-arrow-documentation.md new file mode 100644 index 0000000..370b9a1 --- /dev/null +++ b/documentation/breadcrumb/breadcrumb-arrow-documentation.md @@ -0,0 +1,63 @@ +--- +breadcrumb: + - label: Vuero + hideLabel: true + icon: lucide:home + link: https://vuero.cssninja.io/ + - label: Components + icon: lucide:cpu + to: + name: /components/ + - label: VBreadcrumb +--- + +### Arrow Separator + +Breadcrumb items can be separated by alternative separators. +To display arrow breadcrumb separators, +set the `separator` prop to `arrow`. See markup for more details. + + + +```vue + + + +``` + + + + + +
+ + +
+ + diff --git a/documentation/breadcrumb/breadcrumb-bullet-documentation.md b/documentation/breadcrumb/breadcrumb-bullet-documentation.md new file mode 100644 index 0000000..ac2d9cb --- /dev/null +++ b/documentation/breadcrumb/breadcrumb-bullet-documentation.md @@ -0,0 +1,62 @@ +--- +breadcrumb: + - label: Vuero + hideLabel: true + icon: lucide:home + link: https://vuero.cssninja.io/ + - label: Components + icon: lucide:cpu + to: + name: /components/ + - label: VBreadcrumb +--- + +### Bullet Separator + +Breadcrumb items can be separated by alternative separators. +To display bullet breadcrumb separators, +set the `separator` prop to `bullet`. See markup for more details. + + + +```vue + + + +``` + + + + + +
+ + +
+ + diff --git a/documentation/breadcrumb/breadcrumb-default-documentation.md b/documentation/breadcrumb/breadcrumb-default-documentation.md new file mode 100644 index 0000000..051b70f --- /dev/null +++ b/documentation/breadcrumb/breadcrumb-default-documentation.md @@ -0,0 +1,62 @@ +--- +breadcrumb: + - label: Vuero + hideLabel: true + icon: lucide:home + link: https://vuero.cssninja.io/ + - label: Components + icon: lucide:cpu + to: + name: /components/ + - label: VBreadcrumb +--- + +### Default Separator + +Vuero provides a `` component. +Default breadcrumb items are separated by a slash sign. +To show icons, use the `with-icons` prop. You can also change the alignment +by using the `align` prop (possible values are `center` and `right`). +Pass an **Array** to the `items` prop to render the component. +See markup for more details about usage. + + + +```vue + + + +``` + + + + + +
+ + +
+ + diff --git a/documentation/breadcrumb/breadcrumb-dot-documentation.md b/documentation/breadcrumb/breadcrumb-dot-documentation.md new file mode 100644 index 0000000..c33025f --- /dev/null +++ b/documentation/breadcrumb/breadcrumb-dot-documentation.md @@ -0,0 +1,63 @@ +--- +breadcrumb: + - label: Vuero + hideLabel: true + icon: lucide:home + link: https://vuero.cssninja.io/ + - label: Components + icon: lucide:cpu + to: + name: /components/ + - label: VBreadcrumb +--- + +### Dot Separator + +Breadcrumb items can be separated by alternative separators. +To display dot breadcrumb separators, set the `separator` prop to `dot`. +See markup for more details. + + + +```vue + + + +``` + + + + + +
+ + +
+ + diff --git a/documentation/breadcrumb/breadcrumb-succeeds-documentation.md b/documentation/breadcrumb/breadcrumb-succeeds-documentation.md new file mode 100644 index 0000000..90ab3d2 --- /dev/null +++ b/documentation/breadcrumb/breadcrumb-succeeds-documentation.md @@ -0,0 +1,62 @@ +--- +breadcrumb: + - label: Vuero + hideLabel: true + icon: lucide:home + link: https://vuero.cssninja.io/ + - label: Components + icon: lucide:cpu + to: + name: /components/ + - label: VBreadcrumb +--- + +### Succeeds Separator + +Breadcrumb items can be separated by alternative separators. +To display succeeds breadcrumb separators, +set the `separator` prop to `succeeds`. See markup for more details. + + + +```vue + + + +``` + + + + +
+ + +
+ + diff --git a/documentation/button/v-button-addons-documentation.md b/documentation/button/v-button-addons-documentation.md new file mode 100644 index 0000000..599e684 --- /dev/null +++ b/documentation/button/v-button-addons-documentation.md @@ -0,0 +1,47 @@ +### Addons + +You can easily create `` addons and group them together +by wrapping them inside a `
` element. +You can mix any button styles. + + + +```vue + +``` + + + + + + + + Left + + + Center + + + Right + + + + diff --git a/documentation/button/v-button-base-documentation.md b/documentation/button/v-button-base-documentation.md new file mode 100644 index 0000000..903a8ab --- /dev/null +++ b/documentation/button/v-button-base-documentation.md @@ -0,0 +1,60 @@ +--- +state: + clicked: 0 +--- + +### VButton + +Vuero provides a `` component if you don't want to use the +simple Html button. VButtons can be made bold and rounded +by using the `bold` and `rounded` props on the component. + + + +```vue + + + +``` + + + + + + + + clicked: {{ frontmatter.state.clicked }} + + + clicked: {{ frontmatter.state.clicked }} + + + clicked: {{ frontmatter.state.clicked }} + + + clicked: {{ frontmatter.state.clicked }} + + + + diff --git a/documentation/button/v-button-colors-documentation.md b/documentation/button/v-button-colors-documentation.md new file mode 100644 index 0000000..5e4ecce --- /dev/null +++ b/documentation/button/v-button-colors-documentation.md @@ -0,0 +1,66 @@ +### Colors + +`` components can have different colors. +Use the `color` prop on the component to change its color. +Available color values are `primary`, `info`, `success`, `warning`, +`danger` and `white`. + + + +```vue + +``` + + + + + + + + Button + + + Button + + + Button + + + Button + + + Button + + + Button + + + Button + + + + diff --git a/documentation/button/v-button-colors-light-documentation.md b/documentation/button/v-button-colors-light-documentation.md new file mode 100644 index 0000000..9a3f2a8 --- /dev/null +++ b/documentation/button/v-button-colors-light-documentation.md @@ -0,0 +1,51 @@ +### Light Colors + +`` solid color can have a very light tint of their original color. +Use the `color` prop to set a solid color and +use the `light` modifier prop to make a light colored button. + + + +```vue + +``` + + + + + + + Button + Button + Button + Button + Button + Button + Button + + + diff --git a/documentation/button/v-button-colors-outlined-documentation.md b/documentation/button/v-button-colors-outlined-documentation.md new file mode 100644 index 0000000..647ea77 --- /dev/null +++ b/documentation/button/v-button-colors-outlined-documentation.md @@ -0,0 +1,55 @@ +### Outlined Colors + +`` solid color can have an outlined button style. +Use the `color` prop to set a solid color and +use the `outlined` modifier prop to make an outlined button. + + + +```vue + +``` + + + + + + + Button + Button + Button + Button + Button + + Button + + + Button + + + + diff --git a/documentation/button/v-button-disabled-documentation.md b/documentation/button/v-button-disabled-documentation.md new file mode 100644 index 0000000..0c2b341 --- /dev/null +++ b/documentation/button/v-button-disabled-documentation.md @@ -0,0 +1,52 @@ +### Disabled + +`` components can be disabled and not responsive to pointer events. +Use the `disabled` prop to set a button in a disabled state. + + + +```vue + +``` + + + + + + + + Button + + + Button + + + Button + + + Button + + + Button + + + + diff --git a/documentation/button/v-button-elevated-documentation.md b/documentation/button/v-button-elevated-documentation.md new file mode 100644 index 0000000..600bbce --- /dev/null +++ b/documentation/button/v-button-elevated-documentation.md @@ -0,0 +1,53 @@ +### Elevation + +`` components can be elevated using box shadows. +Use the `raised` prop to show a box shadow on hover or +use the `elevated` prop to set a permanent box shadow. + + + +```vue + +``` + + + + + + + + Button + + + Button + + + Button + + + Button + + + Button + + + + diff --git a/documentation/button/v-button-fa-documentation.md b/documentation/button/v-button-fa-documentation.md new file mode 100644 index 0000000..0d1a037 --- /dev/null +++ b/documentation/button/v-button-fa-documentation.md @@ -0,0 +1,46 @@ +### Font Awesome + +`` components work well with Font Awesome Icons. +Add an icon name inside the `icon` prop to set a Font Awesome icon. +You can also create square and circle buttons with a single icon +using the `` component. +Please refer to markup for detailed examples. + + + +```vue + +``` + + + + + + + + Tweet Now + + + Save Changes + + + + diff --git a/documentation/button/v-button-feather-documentation.md b/documentation/button/v-button-feather-documentation.md new file mode 100644 index 0000000..b0607cd --- /dev/null +++ b/documentation/button/v-button-feather-documentation.md @@ -0,0 +1,46 @@ +### Lucide Icons + +`` components work well with Font Awesome Icons. +Add an icon name inside the `icon` prop to set a Font Awesome icon. +You can also create square and circle buttons with a single icon +using the `` component. +Please refer to markup for detailed examples. + + + +```vue + +``` + + + + + + + + Tweet Now + + + Commit Code + + + + diff --git a/documentation/button/v-button-group-documentation.md b/documentation/button/v-button-group-documentation.md new file mode 100644 index 0000000..1fe919d --- /dev/null +++ b/documentation/button/v-button-group-documentation.md @@ -0,0 +1,45 @@ +### Button group + +You can easily align `` components and group them together +by wrapping them inside a `` element. +You can mix any button styles. + + + +```vue + +``` + + + + + + + + View + + + View + + + Approve + + + + diff --git a/documentation/button/v-button-link-documentation.md b/documentation/button/v-button-link-documentation.md new file mode 100644 index 0000000..d7d4f87 --- /dev/null +++ b/documentation/button/v-button-link-documentation.md @@ -0,0 +1,51 @@ +### RouterLink + +`` provides a `to` property that can be used like +on ``. You can also use a `href` property to render +a standard `` tag. If none is used a `