From 0af3e094fe67a30106337723f5221ba0578e3da7 Mon Sep 17 00:00:00 2001
From: Davide Tantillo
Date: Mon, 5 May 2025 10:26:57 +0200
Subject: [PATCH] Move webcomponent to spine-widget folder.
---
.gitignore | 1 +
spine-ts/index.html | 6 +
spine-ts/package.json | 16 +-
spine-ts/spine-webgl/src/index.ts | 1 -
spine-ts/spine-widget/LICENSE | 26 +
spine-ts/spine-widget/README.md | 3 +
.../spine-widget/demos/additiveblending.html | 21 +
.../spine-widget/demos/additiveblending.js | 151 +
.../spine-widget/demos/assets/atlas1.atlas | 364 +
spine-ts/spine-widget/demos/assets/atlas1.png | Bin 0 -> 810481 bytes
.../spine-widget/demos/assets/atlas2.atlas | 449 +
spine-ts/spine-widget/demos/assets/atlas2.png | Bin 0 -> 988166 bytes
spine-ts/spine-widget/demos/assets/demos.json | 1 +
.../spine-widget/demos/assets/heroes.atlas | 1381 +++
spine-ts/spine-widget/demos/assets/heroes.png | Bin 0 -> 757473 bytes
spine-ts/spine-widget/demos/clipping.html | 26 +
spine-ts/spine-widget/demos/clipping.js | 111 +
spine-ts/spine-widget/demos/demos.css | 127 +
spine-ts/spine-widget/demos/demos.html | 389 +
spine-ts/spine-widget/demos/demos.js | 84 +
spine-ts/spine-widget/demos/hoverboard.html | 27 +
spine-ts/spine-widget/demos/hoverboard.js | 148 +
spine-ts/spine-widget/demos/imagechanges.html | 26 +
spine-ts/spine-widget/demos/imagechanges.js | 187 +
spine-ts/spine-widget/demos/meshes.html | 28 +
spine-ts/spine-widget/demos/meshes.js | 149 +
spine-ts/spine-widget/demos/skins.html | 27 +
spine-ts/spine-widget/demos/skins.js | 204 +
spine-ts/spine-widget/demos/spritesheets.html | 27 +
spine-ts/spine-widget/demos/spritesheets.js | 141 +
spine-ts/spine-widget/demos/stretchyman.html | 24 +
spine-ts/spine-widget/demos/stretchyman.js | 157 +
spine-ts/spine-widget/demos/tank.html | 26 +
spine-ts/spine-widget/demos/tank.js | 112 +
spine-ts/spine-widget/demos/transforms.html | 27 +
spine-ts/spine-widget/demos/transforms.js | 145 +
spine-ts/spine-widget/demos/transitions.html | 26 +
spine-ts/spine-widget/demos/transitions.js | 129 +
spine-ts/spine-widget/demos/utils.js | 207 +
spine-ts/spine-widget/demos/vine.html | 26 +
spine-ts/spine-widget/demos/vine.js | 148 +
.../example/assets/celestial-circus-pma.atlas | 174 +
.../example/assets/celestial-circus-pma.png | Bin 0 -> 818183 bytes
.../example/assets/celestial-circus-pro.json | 3758 +++++++
.../example/assets/celestial-circus-pro.skel | Bin 0 -> 52572 bytes
.../example/assets/celestial-circus.atlas | 173 +
.../example/assets/celestial-circus.png | Bin 0 -> 808981 bytes
.../spine-widget/example/assets/checker.png | Bin 0 -> 161 bytes
.../example/assets/chibi-stickers-pma.atlas | 435 +
.../example/assets/chibi-stickers-pma.png | Bin 0 -> 46325 bytes
.../example/assets/chibi-stickers-pma_10.png | Bin 0 -> 73914 bytes
.../example/assets/chibi-stickers-pma_2.png | Bin 0 -> 140278 bytes
.../example/assets/chibi-stickers-pma_3.png | Bin 0 -> 51505 bytes
.../example/assets/chibi-stickers-pma_4.png | Bin 0 -> 102665 bytes
.../example/assets/chibi-stickers-pma_5.png | Bin 0 -> 58660 bytes
.../example/assets/chibi-stickers-pma_6.png | Bin 0 -> 89295 bytes
.../example/assets/chibi-stickers-pma_7.png | Bin 0 -> 55411 bytes
.../example/assets/chibi-stickers-pma_8.png | Bin 0 -> 45783 bytes
.../example/assets/chibi-stickers-pma_9.png | Bin 0 -> 68646 bytes
.../example/assets/chibi-stickers.atlas | 425 +
.../example/assets/chibi-stickers.json | 7597 ++++++++++++++
.../example/assets/chibi-stickers.skel | Bin 0 -> 83454 bytes
.../example/assets/cloud-pot-pma.atlas | 86 +
.../example/assets/cloud-pot-pma.png | Bin 0 -> 357857 bytes
.../example/assets/cloud-pot.json | 842 ++
.../example/assets/cloud-pot.skel | Bin 0 -> 8397 bytes
.../example/assets/coin-pma.atlas | 19 +
.../spine-widget/example/assets/coin-pma.png | Bin 0 -> 312321 bytes
.../spine-widget/example/assets/coin-pro.json | 259 +
.../spine-widget/example/assets/coin-pro.skel | Bin 0 -> 2790 bytes
.../example/assets/dragon-ess.json | 1079 ++
.../example/assets/dragon-ess.skel | Bin 0 -> 7248 bytes
.../example/assets/dragon-pma.atlas | 117 +
.../example/assets/dragon-pma.png | Bin 0 -> 313052 bytes
.../example/assets/dragon-pma_2.png | Bin 0 -> 218108 bytes
.../example/assets/dragon-pma_3.png | Bin 0 -> 209070 bytes
.../example/assets/dragon-pma_4.png | Bin 0 -> 26054 bytes
.../example/assets/dragon-pma_5.png | Bin 0 -> 14367 bytes
.../spine-widget/example/assets/food/box.png | Bin 0 -> 60820 bytes
.../example/assets/food/bread.png | Bin 0 -> 21107 bytes
.../example/assets/food/carrot-body.png | Bin 0 -> 12304 bytes
.../example/assets/food/food-app-pro.atlas | 222 +
.../example/assets/food/food-app-pro.png | Bin 0 -> 348115 bytes
.../example/assets/food/food-piece-1.png | Bin 0 -> 3837 bytes
.../example/assets/food/food-piece-2.png | Bin 0 -> 9689 bytes
.../example/assets/food/food-piece-3.png | Bin 0 -> 6154 bytes
.../example/assets/food/food-piece-4.png | Bin 0 -> 5583 bytes
.../example/assets/food/food-piece-5.png | Bin 0 -> 13234 bytes
.../example/assets/food/food-piece-6.png | Bin 0 -> 12113 bytes
.../example/assets/food/food-piece-7.png | Bin 0 -> 2289 bytes
.../example/assets/food/list-search.json | 1 +
.../assets/food/meal-delivery-pro.json | 1 +
.../example/assets/food/meal-ready-pro.json | 1 +
.../example/assets/food/mushroom.png | Bin 0 -> 12076 bytes
.../example/assets/food/pan-cooking-pro.json | 1 +
.../example/assets/food/tomato-body.png | Bin 0 -> 12559 bytes
.../example/assets/goblins-pma.atlas | 102 +
.../example/assets/goblins-pma.png | Bin 0 -> 141472 bytes
.../example/assets/goblins-pro.json | 1232 +++
.../example/assets/goblins-pro.skel | Bin 0 -> 16334 bytes
.../example/assets/mix-and-match-pma.atlas | 359 +
.../example/assets/mix-and-match-pma.png | Bin 0 -> 377480 bytes
.../example/assets/mix-and-match-pro.json | 8203 +++++++++++++++
.../example/assets/mix-and-match-pro.skel | Bin 0 -> 259912 bytes
.../spine-widget/example/assets/owl-pma.atlas | 67 +
.../spine-widget/example/assets/owl-pma.png | Bin 0 -> 328380 bytes
.../spine-widget/example/assets/owl-pro.json | 1184 +++
.../spine-widget/example/assets/owl-pro.skel | Bin 0 -> 19961 bytes
.../example/assets/pwd/button.atlas | 14 +
.../example/assets/pwd/button.json | 139 +
.../example/assets/pwd/button.png | Bin 0 -> 14443 bytes
.../pwd/chibi-stickers-pro-pwd-test.atlas | 390 +
.../pwd/chibi-stickers-pro-pwd-test.png | Bin 0 -> 763125 bytes
.../example/assets/pwd/chibi-stickers.json | 1 +
.../example/assets/raptor-pma.atlas | 94 +
.../example/assets/raptor-pma.png | Bin 0 -> 418814 bytes
.../example/assets/raptor-pro.json | 9185 +++++++++++++++++
.../example/assets/raptor-pro.skel | Bin 0 -> 78705 bytes
.../example/assets/sack-pma.atlas | 11 +
.../spine-widget/example/assets/sack-pma.png | Bin 0 -> 167014 bytes
.../spine-widget/example/assets/sack-pro.json | 4940 +++++++++
.../spine-widget/example/assets/sack-pro.skel | Bin 0 -> 42777 bytes
.../example/assets/snowglobe-pma.atlas | 210 +
.../example/assets/snowglobe-pma.png | Bin 0 -> 688917 bytes
.../example/assets/snowglobe-pma_2.png | Bin 0 -> 803281 bytes
.../example/assets/snowglobe-pma_3.png | Bin 0 -> 409360 bytes
.../example/assets/snowglobe-pma_4.png | Bin 0 -> 245339 bytes
.../example/assets/snowglobe-pma_5.png | Bin 0 -> 401332 bytes
.../example/assets/snowglobe-pro.json | 2911 ++++++
.../example/assets/snowglobe-pro.skel | Bin 0 -> 43213 bytes
.../example/assets/spineboy-pma.atlas | 95 +
.../example/assets/spineboy-pma.png | Bin 0 -> 244861 bytes
.../example/assets/spineboy-pro.json | 8723 ++++++++++++++++
.../example/assets/spineboy-pro.skel | Bin 0 -> 64463 bytes
.../spine-widget/example/assets/spineboy.png | Bin 0 -> 245321 bytes
.../example/assets/stretchyman-pma.atlas | 19 +
.../example/assets/stretchyman-pma.png | Bin 0 -> 91986 bytes
.../example/assets/stretchyman-pro.json | 2127 ++++
.../example/assets/stretchyman-pro.skel | Bin 0 -> 24905 bytes
.../example/assets/tank-pma.atlas | 64 +
.../spine-widget/example/assets/tank-pma.png | Bin 0 -> 472775 bytes
.../spine-widget/example/assets/tank-pro.json | 5047 +++++++++
.../spine-widget/example/assets/tank-pro.skel | Bin 0 -> 44979 bytes
.../example/assets/vine-pma.atlas | 6 +
.../spine-widget/example/assets/vine-pma.png | Bin 0 -> 71006 bytes
.../spine-widget/example/assets/vine-pro.json | 357 +
.../spine-widget/example/assets/vine-pro.skel | Bin 0 -> 7897 bytes
.../example/assets/windmill-ess.atlas | 85 +
.../example/assets/windmill-ess.json | 3617 +++++++
.../example/assets/windmill-ess.png | Bin 0 -> 1909878 bytes
.../example/gui.html} | 20 +-
spine-ts/spine-widget/example/test.html | 114 +
.../example/tutorial.html} | 2 +-
spine-ts/spine-widget/package.json | 36 +
.../src/SpineWebComponentWidget.ts | 2 +-
spine-ts/spine-widget/src/index.ts | 3 +
spine-ts/spine-widget/tsconfig.json | 30 +
spine-ts/tsconfig.json | 3 +
158 files changed, 69711 insertions(+), 19 deletions(-)
create mode 100644 spine-ts/spine-widget/LICENSE
create mode 100644 spine-ts/spine-widget/README.md
create mode 100644 spine-ts/spine-widget/demos/additiveblending.html
create mode 100644 spine-ts/spine-widget/demos/additiveblending.js
create mode 100644 spine-ts/spine-widget/demos/assets/atlas1.atlas
create mode 100644 spine-ts/spine-widget/demos/assets/atlas1.png
create mode 100644 spine-ts/spine-widget/demos/assets/atlas2.atlas
create mode 100644 spine-ts/spine-widget/demos/assets/atlas2.png
create mode 100644 spine-ts/spine-widget/demos/assets/demos.json
create mode 100644 spine-ts/spine-widget/demos/assets/heroes.atlas
create mode 100644 spine-ts/spine-widget/demos/assets/heroes.png
create mode 100644 spine-ts/spine-widget/demos/clipping.html
create mode 100644 spine-ts/spine-widget/demos/clipping.js
create mode 100644 spine-ts/spine-widget/demos/demos.css
create mode 100644 spine-ts/spine-widget/demos/demos.html
create mode 100644 spine-ts/spine-widget/demos/demos.js
create mode 100644 spine-ts/spine-widget/demos/hoverboard.html
create mode 100644 spine-ts/spine-widget/demos/hoverboard.js
create mode 100644 spine-ts/spine-widget/demos/imagechanges.html
create mode 100644 spine-ts/spine-widget/demos/imagechanges.js
create mode 100644 spine-ts/spine-widget/demos/meshes.html
create mode 100644 spine-ts/spine-widget/demos/meshes.js
create mode 100644 spine-ts/spine-widget/demos/skins.html
create mode 100644 spine-ts/spine-widget/demos/skins.js
create mode 100644 spine-ts/spine-widget/demos/spritesheets.html
create mode 100644 spine-ts/spine-widget/demos/spritesheets.js
create mode 100644 spine-ts/spine-widget/demos/stretchyman.html
create mode 100644 spine-ts/spine-widget/demos/stretchyman.js
create mode 100644 spine-ts/spine-widget/demos/tank.html
create mode 100644 spine-ts/spine-widget/demos/tank.js
create mode 100644 spine-ts/spine-widget/demos/transforms.html
create mode 100644 spine-ts/spine-widget/demos/transforms.js
create mode 100644 spine-ts/spine-widget/demos/transitions.html
create mode 100644 spine-ts/spine-widget/demos/transitions.js
create mode 100644 spine-ts/spine-widget/demos/utils.js
create mode 100644 spine-ts/spine-widget/demos/vine.html
create mode 100644 spine-ts/spine-widget/demos/vine.js
create mode 100644 spine-ts/spine-widget/example/assets/celestial-circus-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/celestial-circus-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/celestial-circus-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/celestial-circus-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/celestial-circus.atlas
create mode 100644 spine-ts/spine-widget/example/assets/celestial-circus.png
create mode 100644 spine-ts/spine-widget/example/assets/checker.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_10.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_2.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_3.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_4.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_5.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_6.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_7.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_8.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers-pma_9.png
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers.atlas
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers.json
create mode 100644 spine-ts/spine-widget/example/assets/chibi-stickers.skel
create mode 100644 spine-ts/spine-widget/example/assets/cloud-pot-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/cloud-pot-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/cloud-pot.json
create mode 100644 spine-ts/spine-widget/example/assets/cloud-pot.skel
create mode 100644 spine-ts/spine-widget/example/assets/coin-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/coin-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/coin-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/coin-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/dragon-ess.json
create mode 100644 spine-ts/spine-widget/example/assets/dragon-ess.skel
create mode 100644 spine-ts/spine-widget/example/assets/dragon-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/dragon-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/dragon-pma_2.png
create mode 100644 spine-ts/spine-widget/example/assets/dragon-pma_3.png
create mode 100644 spine-ts/spine-widget/example/assets/dragon-pma_4.png
create mode 100644 spine-ts/spine-widget/example/assets/dragon-pma_5.png
create mode 100644 spine-ts/spine-widget/example/assets/food/box.png
create mode 100644 spine-ts/spine-widget/example/assets/food/bread.png
create mode 100644 spine-ts/spine-widget/example/assets/food/carrot-body.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-app-pro.atlas
create mode 100644 spine-ts/spine-widget/example/assets/food/food-app-pro.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-piece-1.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-piece-2.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-piece-3.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-piece-4.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-piece-5.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-piece-6.png
create mode 100644 spine-ts/spine-widget/example/assets/food/food-piece-7.png
create mode 100644 spine-ts/spine-widget/example/assets/food/list-search.json
create mode 100644 spine-ts/spine-widget/example/assets/food/meal-delivery-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/food/meal-ready-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/food/mushroom.png
create mode 100644 spine-ts/spine-widget/example/assets/food/pan-cooking-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/food/tomato-body.png
create mode 100644 spine-ts/spine-widget/example/assets/goblins-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/goblins-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/goblins-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/goblins-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/mix-and-match-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/mix-and-match-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/mix-and-match-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/mix-and-match-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/owl-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/owl-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/owl-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/owl-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/pwd/button.atlas
create mode 100644 spine-ts/spine-widget/example/assets/pwd/button.json
create mode 100644 spine-ts/spine-widget/example/assets/pwd/button.png
create mode 100644 spine-ts/spine-widget/example/assets/pwd/chibi-stickers-pro-pwd-test.atlas
create mode 100644 spine-ts/spine-widget/example/assets/pwd/chibi-stickers-pro-pwd-test.png
create mode 100644 spine-ts/spine-widget/example/assets/pwd/chibi-stickers.json
create mode 100644 spine-ts/spine-widget/example/assets/raptor-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/raptor-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/raptor-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/raptor-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/sack-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/sack-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/sack-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/sack-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pma_2.png
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pma_3.png
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pma_4.png
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pma_5.png
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/snowglobe-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/spineboy-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/spineboy-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/spineboy-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/spineboy-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/spineboy.png
create mode 100644 spine-ts/spine-widget/example/assets/stretchyman-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/stretchyman-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/stretchyman-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/stretchyman-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/tank-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/tank-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/tank-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/tank-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/vine-pma.atlas
create mode 100644 spine-ts/spine-widget/example/assets/vine-pma.png
create mode 100644 spine-ts/spine-widget/example/assets/vine-pro.json
create mode 100644 spine-ts/spine-widget/example/assets/vine-pro.skel
create mode 100644 spine-ts/spine-widget/example/assets/windmill-ess.atlas
create mode 100644 spine-ts/spine-widget/example/assets/windmill-ess.json
create mode 100644 spine-ts/spine-widget/example/assets/windmill-ess.png
rename spine-ts/{spine-webgl/example/webcomponent-gui.html => spine-widget/example/gui.html} (95%)
create mode 100644 spine-ts/spine-widget/example/test.html
rename spine-ts/{spine-webgl/example/webcomponent-tutorial.html => spine-widget/example/tutorial.html} (99%)
create mode 100644 spine-ts/spine-widget/package.json
rename spine-ts/{spine-webgl => spine-widget}/src/SpineWebComponentWidget.ts (99%)
create mode 100644 spine-ts/spine-widget/src/index.ts
create mode 100644 spine-ts/spine-widget/tsconfig.json
diff --git a/.gitignore b/.gitignore
index 222b356fe..d29117561 100644
--- a/.gitignore
+++ b/.gitignore
@@ -144,6 +144,7 @@ spine-ts/spine-core/dist
spine-ts/spine-canvas/dist
spine-ts/spine-webgl/dist
spine-ts/spine-player/dist
+spine-ts/spine-widget/dist
spine-ts/spine-threejs/dist
spine-ts/spine-phaser-v3/dist
spine-ts/spine-phaser-v4/dist
diff --git a/spine-ts/index.html b/spine-ts/index.html
index 2767da1a7..a03a4cef9 100644
--- a/spine-ts/index.html
+++ b/spine-ts/index.html
@@ -193,7 +193,13 @@
Shadows
+ Widget (Webcomponent)
+
+
+
+
+
+
+
+
+
+