From 56d858a7b745df8498d72116be9bc7acbe250c12 Mon Sep 17 00:00:00 2001 From: pei0804 Date: Wed, 14 Aug 2019 00:06:58 +0900 Subject: [PATCH 01/12] review --- backend/controller/article.go | 6 +++--- backend/middleware/auth.go | 8 ++++---- backend/repository/user.go | 2 +- backend/server.go | 3 ++- backend/service/article.go | 2 +- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/backend/controller/article.go b/backend/controller/article.go index 524ab3941..6a2a24d54 100644 --- a/backend/controller/article.go +++ b/backend/controller/article.go @@ -60,7 +60,7 @@ func (a *Article) Create(w http.ResponseWriter, r *http.Request) (int, interface return http.StatusBadRequest, nil, err } - articleService := service.NewArticleService(a.dbx) + articleService := service.NewArticle(a.dbx) id, err := articleService.Create(newArticle) if err != nil { return http.StatusInternalServerError, nil, err @@ -87,7 +87,7 @@ func (a *Article) Update(w http.ResponseWriter, r *http.Request) (int, interface return http.StatusBadRequest, nil, err } - articleService := service.NewArticleService(a.dbx) + articleService := service.NewArticle(a.dbx) err = articleService.Update(aid, reqArticle) if err != nil && errors.Cause(err) == sql.ErrNoRows { return http.StatusNotFound, nil, err @@ -110,7 +110,7 @@ func (a *Article) Destroy(w http.ResponseWriter, r *http.Request) (int, interfac return http.StatusBadRequest, nil, err } - articleService := service.NewArticleService(a.dbx) + articleService := service.NewArticle(a.dbx) err = articleService.Destroy(aid) if err != nil && errors.Cause(err) == sql.ErrNoRows { return http.StatusNotFound, nil, err diff --git a/backend/middleware/auth.go b/backend/middleware/auth.go index 709b50094..29797230f 100644 --- a/backend/middleware/auth.go +++ b/backend/middleware/auth.go @@ -16,19 +16,19 @@ const ( bearer = "Bearer" ) -type AuthMiddleware struct { +type Auth struct { client *auth.Client db *sqlx.DB } -func NewAuthMiddleware(client *auth.Client, db *sqlx.DB) *AuthMiddleware { - return &AuthMiddleware{ +func NewAuth(client *auth.Client, db *sqlx.DB) *Auth { + return &Auth{ client: client, db: db, } } -func (auth *AuthMiddleware) Handler(next http.Handler) http.Handler { +func (auth *Auth) Handler(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { idToken, err := getTokenFromHeader(r) if err != nil { diff --git a/backend/repository/user.go b/backend/repository/user.go index 3811a4364..549447173 100644 --- a/backend/repository/user.go +++ b/backend/repository/user.go @@ -10,7 +10,7 @@ import ( func GetUser(db *sqlx.DB, uid string) (*model.User, error) { var u model.User if err := db.Get(&u, ` -select id, firebase_uid, display_name, email, photo_url from user where firebase_uid = ? limit 1 +SELECT id, firebase_uid, display_name, email, photo_url FROM user WHERE firebase_uid = ? LIMIT 1 `, uid); err != nil { return nil, err } diff --git a/backend/server.go b/backend/server.go index 911ba9cde..7be2cb826 100644 --- a/backend/server.go +++ b/backend/server.go @@ -41,6 +41,7 @@ func (s *Server) Init(datasource string) { db := db2.NewDB(datasource) dbx, err := db.Open() + dbx.Close() if err != nil { log.Fatalf("failed db init. %s", err) } @@ -60,7 +61,7 @@ func (s *Server) Run(addr string) { } func (s *Server) Route() *mux.Router { - authMiddleware := middleware.NewAuthMiddleware(s.authClient, s.dbx) + authMiddleware := middleware.NewAuth(s.authClient, s.dbx) corsMiddleware := cors.New(cors.Options{ AllowedOrigins: []string{"*"}, AllowedHeaders: []string{"Authorization"}, diff --git a/backend/service/article.go b/backend/service/article.go index 2a3c58391..92b862d11 100644 --- a/backend/service/article.go +++ b/backend/service/article.go @@ -13,7 +13,7 @@ type Article struct { db *sqlx.DB } -func NewArticleService(db *sqlx.DB) *Article { +func NewArticle(db *sqlx.DB) *Article { return &Article{db} } From 8e3905bbe2e2f7f4713812dafeccc9e20c12a33f Mon Sep 17 00:00:00 2001 From: pei0804 Date: Wed, 14 Aug 2019 00:14:34 +0900 Subject: [PATCH 02/12] fix --- backend/README.md | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/backend/README.md b/backend/README.md index 8fd027a04..345b6f2bd 100644 --- a/backend/README.md +++ b/backend/README.md @@ -4,9 +4,13 @@ `../database` に構成などが定義されているので、読んでみてください。 +以下のターゲットを叩くと、databaseの準備をします。 + ```console ❯ make -f integration.mk database-init -make -C ../database init +``` + +```console which goose || GO111MODULE=off go get -u github.com/pressly/goose/cmd/goose /Users/j-chikamori/go/bin/goose docker-compose up -d @@ -72,9 +76,14 @@ PORT=1991 使っているAPI: [Exchange custom token for an ID and refresh token](https://firebase.google.com/docs/reference/rest/auth/#section-refresh-token) それぞれのキーについては、上記リンクを見れば大体分かる。 +トークンの作成 + ```console ❯ make -f integration.mk create-token UID=demo go run ./cmd/customtoken/main.go demo .idToken +``` + +```console { "kind": "identitytoolkit#VerifyCustomTokenResponse", "idToken": "idtoken", @@ -88,17 +97,27 @@ go run ./cmd/customtoken/main.go demo .idToken ## 5. Hello World +*サーバー立ち上げ* + ```console ❯ make run go run cmd/api/main.go +``` + +```console 2019/08/08 11:32:47 server.go:51: Listening on port 1991 ``` サーバーを立ち上げた状態で、別シェルから以下を叩く。 +*認証ありエンドポイントへのリクエスト* + ```console ❯ make -f integration.mk req-private curl -v -H "Authorization: Bearer Hoge" localhost:1991/private +``` + +```console * Trying ::1... * TCP_NODELAY set * Connected to localhost (::1) port 1991 (#0) @@ -116,10 +135,16 @@ curl -v -H "Authorization: Bearer Hoge" localhost:1991/private < * Connection #0 to host localhost left intact {"message":"Hello from private endpoint! Your firebase uuid is demo"} +``` +*認証なしエンドポイントへのリクエスト* +```console ❯ make -f integration.mk req-public curl -v localhost:1991/public +``` + +```console * Trying ::1... * TCP_NODELAY set * Connected to localhost (::1) port 1991 (#0) @@ -149,16 +174,29 @@ curl -v localhost:1991/public コードを書き換える度に `go run` し直すのは面倒くさいので、書き換えるとrebuildしてくれるコマンドを用意しているので活用してください。 +realizeをgo getする + ```console ❯ make dev-deps GO111MODULE=off go get -u -v \ github.com/oxequa/realize +``` + +``` github.com/oxequa/realize (download) github.com/oxequa/interact (download) github.com/fatih/color (download) github.com/fsnotify/fsnotify (download) +``` + +realizeを使って実行する + +```console ❯ make refresh-run realize start +``` + +``` console [11:36:48][BACKEND] : Watching 21 file/s 14 folder/s [11:36:48][BACKEND] : Install started [11:36:51][BACKEND] : Install completed in 3.653 s From 1460d9531567d4ddb584e7aad6ca5be461df1763 Mon Sep 17 00:00:00 2001 From: pei0804 Date: Wed, 14 Aug 2019 00:20:19 +0900 Subject: [PATCH 03/12] =?UTF-8?q?=E3=81=BF=E3=81=99=E3=81=A3=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/controller/article.go | 16 ++++++++-------- backend/dbutil/tx.go | 4 ++-- backend/server.go | 13 ++++++------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/backend/controller/article.go b/backend/controller/article.go index 6a2a24d54..647e6b9e5 100644 --- a/backend/controller/article.go +++ b/backend/controller/article.go @@ -17,15 +17,15 @@ import ( ) type Article struct { - dbx *sqlx.DB + db *sqlx.DB } -func NewArticle(dbx *sqlx.DB) *Article { - return &Article{dbx: dbx} +func NewArticle(db *sqlx.DB) *Article { + return &Article{db: db} } func (a *Article) Index(w http.ResponseWriter, r *http.Request) (int, interface{}, error) { - articles, err := repository.AllArticle(a.dbx) + articles, err := repository.AllArticle(a.db) if err != nil { return http.StatusInternalServerError, nil, err } @@ -44,7 +44,7 @@ func (a *Article) Show(w http.ResponseWriter, r *http.Request) (int, interface{} return http.StatusBadRequest, nil, err } - article, err := repository.FindArticle(a.dbx, aid) + article, err := repository.FindArticle(a.db, aid) if err != nil && err == sql.ErrNoRows { return http.StatusNotFound, nil, err } else if err != nil { @@ -60,7 +60,7 @@ func (a *Article) Create(w http.ResponseWriter, r *http.Request) (int, interface return http.StatusBadRequest, nil, err } - articleService := service.NewArticle(a.dbx) + articleService := service.NewArticle(a.db) id, err := articleService.Create(newArticle) if err != nil { return http.StatusInternalServerError, nil, err @@ -87,7 +87,7 @@ func (a *Article) Update(w http.ResponseWriter, r *http.Request) (int, interface return http.StatusBadRequest, nil, err } - articleService := service.NewArticle(a.dbx) + articleService := service.NewArticle(a.db) err = articleService.Update(aid, reqArticle) if err != nil && errors.Cause(err) == sql.ErrNoRows { return http.StatusNotFound, nil, err @@ -110,7 +110,7 @@ func (a *Article) Destroy(w http.ResponseWriter, r *http.Request) (int, interfac return http.StatusBadRequest, nil, err } - articleService := service.NewArticle(a.dbx) + articleService := service.NewArticle(a.db) err = articleService.Destroy(aid) if err != nil && errors.Cause(err) == sql.ErrNoRows { return http.StatusNotFound, nil, err diff --git a/backend/dbutil/tx.go b/backend/dbutil/tx.go index 99f025778..65947ca3f 100644 --- a/backend/dbutil/tx.go +++ b/backend/dbutil/tx.go @@ -11,8 +11,8 @@ import ( // TXHandler is handler for working with transaction. // This is wrapper function for commit and rollback. -func TXHandler(dbx *sqlx.DB, f func(*sqlx.Tx) error) error { - tx, err := dbx.Beginx() +func TXHandler(db *sqlx.DB, f func(*sqlx.Tx) error) error { + tx, err := db.Beginx() if err != nil { return errors.Wrap(err, "start transaction failed") } diff --git a/backend/server.go b/backend/server.go index 7be2cb826..76677d1bc 100644 --- a/backend/server.go +++ b/backend/server.go @@ -23,7 +23,7 @@ import ( ) type Server struct { - dbx *sqlx.DB + db *sqlx.DB router *mux.Router authClient *auth.Client } @@ -40,12 +40,11 @@ func (s *Server) Init(datasource string) { s.authClient = authClient db := db2.NewDB(datasource) - dbx, err := db.Open() - dbx.Close() + dbcon, err := db.Open() if err != nil { log.Fatalf("failed db init. %s", err) } - s.dbx = dbx + s.db = dbcon s.router = s.Route() } @@ -61,7 +60,7 @@ func (s *Server) Run(addr string) { } func (s *Server) Route() *mux.Router { - authMiddleware := middleware.NewAuth(s.authClient, s.dbx) + authMiddleware := middleware.NewAuth(s.authClient, s.db) corsMiddleware := cors.New(cors.Options{ AllowedOrigins: []string{"*"}, AllowedHeaders: []string{"Authorization"}, @@ -78,9 +77,9 @@ func (s *Server) Route() *mux.Router { r := mux.NewRouter() r.Methods(http.MethodGet).Path("/public").Handler(commonChain.Then(sample.NewPublicHandler())) - r.Methods(http.MethodGet).Path("/private").Handler(authChain.Then(sample.NewPrivateHandler(s.dbx))) + r.Methods(http.MethodGet).Path("/private").Handler(authChain.Then(sample.NewPrivateHandler(s.db))) - articleController := controller.NewArticle(s.dbx) + articleController := controller.NewArticle(s.db) r.Methods(http.MethodPost).Path("/articles").Handler(authChain.Then(AppHandler{articleController.Create})) r.Methods(http.MethodPut).Path("/articles/{id}").Handler(authChain.Then(AppHandler{articleController.Update})) r.Methods(http.MethodDelete).Path("/articles/{id}").Handler(authChain.Then(AppHandler{articleController.Destroy})) From 2bc8d4adbd2d55f18a62938eda902fdd3f10119b Mon Sep 17 00:00:00 2001 From: pei0804 Date: Wed, 14 Aug 2019 00:21:48 +0900 Subject: [PATCH 04/12] fix --- backend/sample/private.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/sample/private.go b/backend/sample/private.go index 0be296c5c..94abdfd21 100644 --- a/backend/sample/private.go +++ b/backend/sample/private.go @@ -12,12 +12,12 @@ import ( ) type PrivateHandler struct { - dbx *sqlx.DB + db *sqlx.DB } -func NewPrivateHandler(dbx *sqlx.DB) *PrivateHandler { +func NewPrivateHandler(db *sqlx.DB) *PrivateHandler { return &PrivateHandler{ - dbx: dbx, + db: db, } } @@ -28,7 +28,7 @@ func (h *PrivateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { WriteJSON(nil, w, http.StatusInternalServerError) return } - user, err := repository.GetUser(h.dbx, contextUser.FirebaseUID) + user, err := repository.GetUser(h.db, contextUser.FirebaseUID) if err != nil { log.Printf("Show user failed: %s", err) WriteJSON(nil, w, http.StatusInternalServerError) From b6aef0de79dd18f5060d65d150f044e1b1032591 Mon Sep 17 00:00:00 2001 From: pei0804 Date: Wed, 14 Aug 2019 00:22:31 +0900 Subject: [PATCH 05/12] fix --- backend/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/README.md b/backend/README.md index 345b6f2bd..9bbd12924 100644 --- a/backend/README.md +++ b/backend/README.md @@ -1,3 +1,7 @@ +# Slide + +https://go-talks.appspot.com/github.com/voyagegroup/talks/2019/treasure-go-day2/intro.slide#1 + # Getting Started ## 1. Database 立ち上げ From 6ed4726d2865f0526ece40328672606d196f0fae Mon Sep 17 00:00:00 2001 From: yamachu Date: Wed, 14 Aug 2019 13:17:25 +0900 Subject: [PATCH 06/12] =?UTF-8?q?Client=E3=81=AEsetup=E3=81=8Chard?= =?UTF-8?q?=E3=81=AA=E3=81=AE=E3=81=A7=E6=9C=80=E4=BD=8E=E9=99=90=E3=81=AE?= =?UTF-8?q?=E5=8B=95=E3=81=8B=E3=81=9B=E3=82=8B=E3=82=88=E3=81=86=E3=81=AA?= =?UTF-8?q?=E7=AD=8B=E9=81=93=E3=82=92=E7=A4=BA=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 frontend/src/README.md diff --git a/frontend/src/README.md b/frontend/src/README.md new file mode 100644 index 000000000..54d84a326 --- /dev/null +++ b/frontend/src/README.md @@ -0,0 +1,36 @@ +# Getting Started + +## 1. 環境構築 + +**make setup** + +設定ファイルのコピーとパッケージのセットアップを行う + +```console +❯ make init +``` + +**Firebase API Key** + +API講義で作ったFirebaseプロジェクトを使う + +1. [Firebase](https://firebase.google.com/) のプロジェクトページを開く +1. `Project Overview` の右にある `⚙(歯車)` ボタンを押して、 `プロジェクトの設定` へ遷移 +1. `Firebase SDK snippet` をコピーして、`.env` ファイルの `FIREBASE_...` に設定する + +``` +FIREBASE_APIKEY="REPLACE_ME" +FIREBASE_AUTHDOMAIN="REPLACE_ME" +FIREBASE_DATABASEURL="REPLACE_ME" +FIREBASE_PROJECTID="REPLACE_ME" +FIREBASE_MESSAGINGSENDERID="REPLACE_ME" +FIREBASE_APPID="REPLACE_ME" +``` + +## 2. Hello World + +**フロント立ち上げ** + +```console +❯ make dev +``` From 4542f23abd2a28e04d9abdd1e08a649ae4f621dc Mon Sep 17 00:00:00 2001 From: yang-wei Date: Wed, 14 Aug 2019 16:50:51 +0900 Subject: [PATCH 07/12] README ! --- frontend/{src => }/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename frontend/{src => }/README.md (100%) diff --git a/frontend/src/README.md b/frontend/README.md similarity index 100% rename from frontend/src/README.md rename to frontend/README.md From 3bd72d838de78d5be91d7914fb634cd2542ebcbf Mon Sep 17 00:00:00 2001 From: yang-wei Date: Wed, 14 Aug 2019 16:52:31 +0900 Subject: [PATCH 08/12] ... --- frontend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/README.md b/frontend/README.md index 54d84a326..f27c0834c 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -7,7 +7,7 @@ 設定ファイルのコピーとパッケージのセットアップを行う ```console -❯ make init +❯ make setup ``` **Firebase API Key** From 7e92b935bd0ad034df106dbf06df74d7251ab08c Mon Sep 17 00:00:00 2001 From: pei0804 Date: Thu, 15 Aug 2019 16:23:21 +0900 Subject: [PATCH 09/12] add allow method --- backend/server.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/server.go b/backend/server.go index 76677d1bc..691bef870 100644 --- a/backend/server.go +++ b/backend/server.go @@ -64,6 +64,14 @@ func (s *Server) Route() *mux.Router { corsMiddleware := cors.New(cors.Options{ AllowedOrigins: []string{"*"}, AllowedHeaders: []string{"Authorization"}, + AllowedMethods: []string{ + http.MethodHead, + http.MethodGet, + http.MethodPost, + http.MethodPut, + http.MethodPatch, + http.MethodDelete, + }, }) commonChain := alice.New( From b9ad71e48b71fa6bc45867392eb13cf35166c9d2 Mon Sep 17 00:00:00 2001 From: pei0804 Date: Fri, 16 Aug 2019 18:23:47 +0900 Subject: [PATCH 10/12] fix --- backend/go.mod | 3 --- backend/go.sum | 6 ------ backend/server.go | 6 +++--- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/backend/go.mod b/backend/go.mod index eadca7bd1..662fdd0cc 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -13,7 +13,4 @@ require ( github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da github.com/pkg/errors v0.8.1 github.com/rs/cors v1.6.0 - go.uber.org/atomic v1.4.0 // indirect - go.uber.org/multierr v1.1.0 // indirect - go.uber.org/zap v1.10.0 ) diff --git a/backend/go.sum b/backend/go.sum index 849b55e7a..5af49b0ca 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -56,12 +56,6 @@ github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= diff --git a/backend/server.go b/backend/server.go index 691bef870..da8594ec8 100644 --- a/backend/server.go +++ b/backend/server.go @@ -17,7 +17,7 @@ import ( "github.com/jmoiron/sqlx" "github.com/rs/cors" "github.com/voyagegroup/treasure-app/controller" - db2 "github.com/voyagegroup/treasure-app/db" + "github.com/voyagegroup/treasure-app/db" "github.com/voyagegroup/treasure-app/firebase" "github.com/voyagegroup/treasure-app/middleware" ) @@ -39,8 +39,8 @@ func (s *Server) Init(datasource string) { } s.authClient = authClient - db := db2.NewDB(datasource) - dbcon, err := db.Open() + cs := db.NewDB(datasource) + dbcon, err := cs.Open() if err != nil { log.Fatalf("failed db init. %s", err) } From d3314fdb1ebc2a78d6ab5393308ff6731a2190f0 Mon Sep 17 00:00:00 2001 From: seven320 Date: Mon, 19 Aug 2019 00:03:22 +0900 Subject: [PATCH 11/12] =?UTF-8?q?AR=E5=90=8D=E5=88=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AR/.DS_Store | Bin 0 -> 12292 bytes AR/a.code-workspace | 7 ++ AR/form.html | 122 ++++++++++++++++++++ AR/form.js | 80 +++++++++++++ AR/marker/icon.png | Bin 0 -> 98908 bytes AR/marker/pattern-treasure.patt | 195 ++++++++++++++++++++++++++++++++ AR/marker/pattern-treasure.png | Bin 0 -> 25996 bytes AR/marker/seven320.patt | 195 ++++++++++++++++++++++++++++++++ AR/marker/seven320.png | Bin 0 -> 12825 bytes AR/profile.html | 31 +++++ AR/profile.js | 27 +++++ AR/server/server.js | 101 +++++++++++++++++ 12 files changed, 758 insertions(+) create mode 100644 AR/.DS_Store create mode 100644 AR/a.code-workspace create mode 100644 AR/form.html create mode 100644 AR/form.js create mode 100644 AR/marker/icon.png create mode 100644 AR/marker/pattern-treasure.patt create mode 100644 AR/marker/pattern-treasure.png create mode 100644 AR/marker/seven320.patt create mode 100644 AR/marker/seven320.png create mode 100644 AR/profile.html create mode 100644 AR/profile.js create mode 100644 AR/server/server.js diff --git a/AR/.DS_Store b/AR/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2dea7c7296894466d15b7b2ae16e0fc11eaff180 GIT binary patch literal 12292 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 + + + + + + + + + +
+

誰でもAR名刺!!

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ QRコード作成 +
+
+
+
+ + + + URL + + +

{{ QRurl }}

+
+ +
+
+
+
+ + + + + + + + diff --git a/AR/form.js b/AR/form.js new file mode 100644 index 000000000..1d90318f6 --- /dev/null +++ b/AR/form.js @@ -0,0 +1,80 @@ +//display urlは名刺を表示するためのページ +const display_url = "https://seven320.github.io/AR/profile.html" +const local_url = `file:///Users/kenkato/html_css/AR/profile.html` + +//base url はQRのコードを手に入れるローカルサーバーにアクセス +const base_url = "https://00ea0ebe.ngrok.io" // use ngrok and connect local server to public server + + +var app = new Vue({ + el:'#app', + vuetify: new Vuetify(), + data: () => ({ + valid: false, + name: "name", + belong: "university", + tel: "xx-xxxx-xxxx", + email: "xxxxxxxx@google.co.jp", + twitterID: "@", + githubID: "", + description: "", + debug_QRurl: "", + QRurl:"", + get_encode_QRurl:"", + QRimagebase64:"", + nameRules:[ + v => !!v || "Name is required", + v => v.length <= 30 || "Name must be less than 30 characters", + ], + belongRules:[ + v => !!v || "belongs is required", + v => v.length <= 255 || "Name must be less than 255 characters", + ], + telRules:[ + v => !!v || "TEL is required", + v => v.length <= 20 || "TEL must be less than 20 characters" + ], + emailRules:[ + v => !!v || "e-mail is required", + v => v.length <= 255 || "e-mail must be less than 255 characters" + ] + }), + created: function(){ + this.displayConsole(); + + }, + methods:{ + displayConsole: function(){ + console.log("successs load") + }, + getForm: function(){ + if (this.name.length==0){ + alert("name is required") + } else if(this.belong.length==0){ + alert("belong is required") + } else if(this.tel.length==0){ + alert("TEL is required") + } else if(this.email.length==0){ + alert("e-mail is required") + } + this.debug_QRurl = `${local_url}?query=${this.name}---${this.belong}---${this.tel}---${this.email}---${this.twitterID}---${this.githubID}---${this.description}` + this.QRurl = `${display_url}?query=${this.name}---${this.belong}---${this.tel}---${this.email}---${this.twitterID}---${this.githubID}---${this.description}` + this.get_encode_QRurl = encodeURIComponent(`${display_url}?query=${this.name}---${this.belong}---${this.tel}---${this.email}---${this.twitterID}---${this.githubID}---${this.description}`) + }, + getQRcode: async function(){ + console.log(this.getQRurl) + let requesturl = `${base_url}/qr/${this.get_encode_QRurl}` // for public server + + + console.log("requesturl",requesturl) + let response = await fetch(requesturl, { + method:"GET", + }) + let hoge = await console.log(response) + let base64 = await response.text() + // this.QRimagebase64 = "data:image/png;base64," + base64 + this.QRimagebase64 = base64 + console.log("base64",base64) + } + } +}) \ No newline at end of file diff --git a/AR/marker/icon.png b/AR/marker/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..86b952215fe7745a4bee459151a2016416253869 GIT binary patch literal 98908 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
    Y+Mfnvu%tt5gG#?+G2dJfk-;d%cS)g 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 z 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 literal 0 HcmV?d00001 diff --git a/AR/marker/pattern-treasure.patt b/AR/marker/pattern-treasure.patt new file mode 100644 index 000000000..763a279bc --- /dev/null +++ b/AR/marker/pattern-treasure.patt @@ -0,0 +1,195 @@ +128 135 161 175 183 188 190 186 177 173 187 194 195 191 185 166 +131 136 155 169 178 183 186 183 175 174 181 191 188 179 157 125 +130 136 151 164 173 177 179 178 177 178 182 190 194 188 175 112 +144 145 144 156 165 170 171 174 175 181 180 184 194 197 189 126 +144 145 143 152 161 166 169 169 171 173 173 178 192 197 197 183 +143 144 140 143 156 163 165 163 159 162 166 171 187 193 195 196 +138 152 144 127 141 150 149 138 125 122 154 164 171 188 187 192 +125 150 81 189 163 200 139 178 139 135 164 190 217 158 210 174 + 57 113 79 205 105 189 133 187 164 149 170 185 220 124 189 152 + 63 71 73 72 80 64 50 35 40 63 57 86 60 60 83 83 + 58 59 76 131 110 119 84 104 97 69 70 85 77 27 53 36 + 55 90 66 62 44 31 39 77 101 111 77 98 54 44 73 47 + 80 63 76 55 51 58 71 86 115 130 112 105 104 66 90 78 + 49 30 32 36 54 74 75 112 86 60 62 43 101 35 44 61 + 22 21 25 30 41 41 59 50 74 37 26 14 28 21 51 84 + 18 24 31 20 16 39 40 35 35 31 13 15 21 25 48 74 + 61 72 109 138 154 165 168 158 133 130 167 184 185 175 162 119 + 63 69 98 126 145 154 159 152 139 137 150 164 152 131 104 52 + 59 64 88 115 135 143 145 142 135 135 141 155 163 143 117 47 + 69 74 76 100 120 129 126 126 125 127 126 134 154 160 133 44 + 70 74 76 92 109 116 114 110 107 105 99 106 134 135 132 109 + 69 74 72 80 98 105 101 93 86 85 84 87 117 110 111 125 + 67 93 85 64 77 83 74 60 50 43 69 75 73 116 94 119 + 58 103 43 168 119 171 86 152 113 100 125 149 192 88 169 76 + 28 95 56 197 62 166 103 178 148 118 148 167 208 61 149 79 + 34 39 39 36 33 23 17 11 16 28 27 44 29 25 37 35 + 30 30 39 96 70 92 63 75 73 46 51 49 59 12 22 12 + 26 42 31 25 16 12 17 35 40 49 48 47 28 23 31 14 + 36 25 34 20 19 24 32 43 49 71 69 41 33 25 33 33 + 22 11 11 11 23 37 42 58 42 36 34 14 26 10 16 24 + 8 8 12 13 16 20 29 20 32 18 11 4 7 8 21 34 + 7 10 12 8 6 18 18 11 13 12 6 9 13 14 23 27 + 37 44 68 89 101 110 113 101 78 82 115 129 147 130 121 70 + 38 44 63 83 97 105 105 98 85 88 99 109 111 101 92 50 + 39 43 59 78 91 95 95 90 86 85 87 100 105 100 86 48 + 49 53 54 68 82 88 83 81 80 79 75 77 87 91 80 31 + 52 54 54 65 76 81 78 73 68 64 57 58 68 63 53 33 + 52 54 52 57 70 75 71 62 52 48 46 42 44 36 37 48 + 51 77 69 46 56 60 51 39 29 22 32 35 29 47 49 64 + 46 95 41 166 107 162 74 148 108 92 117 138 185 74 159 44 + 30 98 61 197 57 163 100 176 146 112 142 164 204 49 143 66 + 29 37 41 37 28 16 12 7 11 20 18 31 21 18 27 25 + 29 32 33 82 55 84 53 63 68 42 47 39 55 7 16 8 + 27 32 28 23 17 15 15 18 20 22 24 31 23 19 26 12 + 21 20 16 13 10 15 20 22 14 22 19 13 10 14 25 32 + 10 11 13 12 11 13 13 9 5 7 12 3 5 4 13 27 + 9 8 12 13 13 12 11 6 5 6 3 0 1 6 16 29 + 7 8 7 6 9 9 6 4 5 6 5 8 8 10 17 26 + +165 124 111 125 184 197 192 174 152 82 36 49 78 61 86 75 +185 157 176 190 198 196 187 211 187 84 52 75 88 45 53 47 +192 180 188 197 197 194 188 157 123 59 27 45 66 34 21 27 +195 189 195 194 192 187 171 218 217 60 78 54 103 100 27 20 +195 191 191 185 179 172 164 188 180 88 87 98 106 43 14 15 +187 182 182 181 173 166 155 163 169 57 71 80 112 61 25 13 +173 175 179 182 173 162 121 136 148 64 69 112 129 59 36 31 +177 176 177 176 172 159 125 142 166 41 99 100 115 86 73 35 +186 183 179 174 170 163 138 177 185 36 107 78 87 112 49 35 +190 186 179 172 169 166 148 141 137 50 86 40 71 77 57 40 +189 183 177 171 167 164 150 201 187 64 119 32 59 74 42 39 +183 178 174 166 162 156 141 161 104 81 110 44 52 54 42 16 +175 169 165 157 153 143 127 194 210 73 134 62 55 36 30 20 +161 155 151 144 144 140 146 81 80 72 77 67 74 32 25 31 +136 137 137 145 146 144 155 153 118 72 60 92 63 30 22 24 +128 132 131 145 145 143 139 124 56 64 58 56 81 49 22 18 +117 51 47 42 109 125 120 75 78 35 12 15 33 24 35 28 +161 103 117 133 132 112 93 169 146 38 22 32 33 17 22 22 +175 131 143 161 135 110 116 86 60 25 12 23 25 10 9 15 +185 152 163 155 134 117 75 193 203 29 61 28 33 26 8 12 +184 164 155 134 107 88 75 146 162 45 50 47 42 14 4 9 +168 150 141 127 100 85 69 122 147 27 53 50 69 33 11 7 +131 138 135 128 105 85 43 100 117 29 46 51 71 37 17 12 +133 139 135 125 107 86 49 118 150 16 74 40 49 43 32 14 +158 153 142 126 111 93 60 151 175 11 78 36 43 59 20 12 +169 160 145 126 114 101 74 90 108 17 65 17 32 44 29 18 +166 154 143 129 117 105 83 171 164 23 92 12 25 37 20 19 +155 145 136 121 110 99 77 117 61 34 72 16 20 23 17 6 +139 127 115 101 93 81 64 174 203 37 100 26 21 12 13 8 +110 98 88 77 77 73 87 44 58 39 39 32 33 11 12 12 + 73 70 65 74 74 74 97 108 101 39 30 43 25 12 9 10 + 61 64 60 70 71 70 68 58 28 35 30 27 37 22 9 8 + 69 49 47 30 33 49 65 44 65 25 8 13 33 28 30 26 +120 92 87 80 52 38 49 160 140 27 16 27 25 15 17 17 +130 101 100 91 62 36 48 72 48 18 7 20 15 4 6 10 +147 112 105 88 68 44 31 187 199 20 56 24 10 5 2 8 +130 109 100 77 59 42 36 135 158 32 40 31 14 3 1 8 +116 99 87 75 57 46 32 115 142 19 48 24 19 13 3 5 + 83 88 85 80 64 48 22 93 111 21 42 22 23 7 6 7 + 78 86 86 81 69 52 29 113 147 12 69 20 14 5 5 5 +101 98 91 82 74 62 39 147 173 7 66 19 22 10 6 4 +113 106 95 84 78 71 51 79 105 12 55 16 20 13 12 7 +110 105 95 89 81 75 61 163 160 16 85 15 15 13 12 10 +102 97 91 83 76 71 56 104 56 28 58 18 10 11 13 9 + 90 83 78 69 66 57 46 172 203 37 86 23 13 13 13 7 + 69 64 59 55 54 53 71 42 62 42 33 28 17 13 12 8 + 45 45 43 54 55 55 81 101 103 37 33 33 21 12 8 8 + 37 39 39 50 52 52 52 46 30 29 29 27 22 11 9 8 + + 75 47 27 20 15 13 31 35 35 40 39 16 20 31 24 18 + 86 53 21 27 14 25 36 73 49 57 42 42 30 25 22 22 + 61 45 34 100 43 61 59 86 112 77 74 54 36 32 30 49 + 78 88 66 103 106 112 129 115 87 71 59 52 55 74 63 81 + 49 75 45 54 98 80 112 100 78 40 32 44 62 67 92 56 + 36 52 27 78 87 71 69 99 107 86 119 110 134 77 60 58 + 82 84 59 60 88 57 64 41 36 50 64 81 73 72 72 64 +152 187 123 217 180 169 148 166 185 137 187 104 210 80 118 56 +174 211 157 218 188 163 136 142 177 141 201 161 194 81 153 124 +192 187 188 171 164 155 121 125 138 148 150 141 127 146 155 139 +197 196 194 187 172 166 162 159 163 166 164 156 143 140 144 143 +184 198 197 192 179 173 173 172 170 169 167 162 153 144 146 145 +125 190 197 194 185 181 182 176 174 172 171 166 157 144 145 145 +111 176 188 195 191 182 179 177 179 179 177 174 165 151 137 131 +124 157 180 189 191 182 175 176 183 186 183 178 169 155 137 132 +165 185 192 195 195 187 173 177 186 190 189 183 175 161 136 128 + 28 22 15 12 9 7 12 14 12 18 19 6 8 12 10 8 + 35 22 9 8 4 11 17 32 20 29 20 17 13 12 9 9 + 24 17 10 26 14 33 37 43 59 44 37 23 12 11 12 22 + 33 33 25 33 42 69 71 49 43 32 25 20 21 33 25 37 + 15 32 23 28 47 50 51 40 36 17 12 16 26 32 43 27 + 12 22 12 61 50 53 46 74 78 65 92 72 100 39 30 30 + 35 38 25 29 45 27 29 16 11 17 23 34 37 39 39 35 + 78 146 60 203 162 147 117 150 175 108 164 61 203 58 101 28 + 75 169 86 193 146 122 100 118 151 90 171 117 174 44 108 58 +120 93 116 75 75 69 43 49 60 74 83 77 64 87 97 68 +125 112 110 117 88 85 85 86 93 101 105 99 81 73 74 70 +109 132 135 134 107 100 105 107 111 114 117 110 93 77 74 71 + 42 133 161 155 134 127 128 125 126 126 129 121 101 77 74 70 + 47 117 143 163 155 141 135 135 142 145 143 136 115 88 65 60 + 51 103 131 152 164 150 138 139 153 160 154 145 127 98 70 64 +117 161 175 185 184 168 131 133 158 169 166 155 139 110 73 61 + 26 17 10 8 8 5 7 5 4 7 10 9 7 8 8 8 + 30 17 6 2 1 3 6 5 6 12 12 13 13 12 8 9 + 28 15 4 5 3 13 7 5 10 13 13 11 13 13 12 11 + 33 25 15 10 14 19 23 14 22 20 15 10 13 17 21 22 + 13 27 20 24 31 24 22 20 19 16 15 18 23 28 33 27 + 8 16 7 56 40 48 42 69 66 55 85 58 86 33 33 29 + 25 27 18 20 32 19 21 12 7 12 16 28 37 42 37 29 + 65 140 48 199 158 142 111 147 173 105 160 56 203 62 103 30 + 44 160 72 187 135 115 93 113 147 79 163 104 172 42 101 46 + 65 49 48 31 36 32 22 29 39 51 61 56 46 71 81 52 + 49 38 36 44 42 46 48 52 62 71 75 71 57 53 55 52 + 33 52 62 68 59 57 64 69 74 78 81 76 66 54 55 52 + 30 80 91 88 77 75 80 81 82 84 89 83 69 55 54 50 + 47 87 100 105 100 87 85 86 91 95 95 91 78 59 43 39 + 49 92 101 112 109 99 88 86 98 106 105 97 83 64 45 39 + 69 120 130 147 130 116 83 78 101 113 110 102 90 69 45 37 + + 18 22 49 81 56 58 64 56 124 139 143 145 145 131 132 128 + 24 22 30 63 92 60 72 118 153 155 144 146 145 137 137 136 + 31 25 32 74 67 77 72 80 81 146 140 144 144 151 155 161 + 20 30 36 55 62 134 73 210 194 127 143 153 157 165 169 175 + 16 42 54 52 44 110 81 104 161 141 156 162 166 174 178 183 + 39 42 74 59 32 119 64 187 201 150 164 167 171 177 183 189 + 40 57 77 71 40 86 50 137 141 148 166 169 172 179 186 190 + 35 49 112 87 78 107 36 185 177 138 163 170 174 179 183 186 + 35 73 86 115 100 99 41 166 142 125 159 172 176 177 176 177 + 31 36 59 129 112 69 64 148 136 121 162 173 182 179 175 173 + 13 25 61 112 80 71 57 169 163 155 166 173 181 182 182 187 + 15 14 43 106 98 87 88 180 188 164 172 179 185 191 191 195 + 20 27 100 103 54 78 60 217 218 171 187 192 194 195 189 195 + 27 21 34 66 45 27 59 123 157 188 194 197 197 188 180 192 + 47 53 45 88 75 52 84 187 211 187 196 198 190 176 157 185 + 75 86 61 78 49 36 82 152 174 192 197 184 125 111 124 165 + 8 9 22 37 27 30 35 28 58 68 70 71 70 60 64 61 + 10 9 12 25 43 30 39 101 108 97 74 74 74 65 70 73 + 12 12 11 33 32 39 39 58 44 87 73 77 77 88 98 110 + 8 13 12 21 26 100 37 203 174 64 81 93 101 115 127 139 + 6 17 23 20 16 72 34 61 117 77 99 110 121 136 145 155 + 19 20 37 25 12 92 23 164 171 83 105 117 129 143 154 166 + 18 29 44 32 17 65 17 108 90 74 101 114 126 145 160 169 + 12 20 59 43 36 78 11 175 151 60 93 111 126 142 153 158 + 14 32 43 49 40 74 16 150 118 49 86 107 125 135 139 133 + 12 17 37 71 51 46 29 117 100 43 85 105 128 135 138 131 + 7 11 33 69 50 53 27 147 122 69 85 100 127 141 150 168 + 9 4 14 42 47 50 45 162 146 75 88 107 134 155 164 184 + 12 8 26 33 28 61 29 203 193 75 117 134 155 163 152 185 + 15 9 10 25 23 12 25 60 86 116 110 135 161 143 131 175 + 22 22 17 33 32 22 38 146 169 93 112 132 133 117 103 161 + 28 35 24 33 15 12 35 78 75 120 125 109 42 47 51 117 + 8 9 11 22 27 29 29 30 46 52 52 52 50 39 39 37 + 8 8 12 21 33 33 37 103 101 81 55 55 54 43 45 45 + 8 12 13 17 28 33 42 62 42 71 53 54 55 59 64 69 + 7 13 13 13 23 86 37 203 172 46 57 66 69 78 83 90 + 9 13 11 10 18 58 28 56 104 56 71 76 83 91 97 102 + 10 12 13 15 15 85 16 160 163 61 75 81 89 95 105 110 + 7 12 13 20 16 55 12 105 79 51 71 78 84 95 106 113 + 4 6 10 22 19 66 7 173 147 39 62 74 82 91 98 101 + 5 5 5 14 20 69 12 147 113 29 52 69 81 86 86 78 + 7 6 7 23 22 42 21 111 93 22 48 64 80 85 88 83 + 5 3 13 19 24 48 19 142 115 32 46 57 75 87 99 116 + 8 1 3 14 31 40 32 158 135 36 42 59 77 100 109 130 + 8 2 5 10 24 56 20 199 187 31 44 68 88 105 112 147 + 10 6 4 15 20 7 18 48 72 48 36 62 91 100 101 130 + 17 17 15 25 27 16 27 140 160 49 38 52 80 87 92 120 + 26 30 28 33 13 8 25 65 44 65 49 33 30 47 49 69 diff --git a/AR/marker/pattern-treasure.png b/AR/marker/pattern-treasure.png new file mode 100644 index 0000000000000000000000000000000000000000..14352f5e202e84a0131187488f7879f671a94d5e GIT binary patch literal 25996 zcmeFY({pBT&@LR?p4hf++qP{xPwZsEiS@*`tw|=fZD%Idm*4x=KKRb|AFvPBT2-s6 zSNDBaSKr;&b**S+MJYr$TsROA5JVYianXzZ%0s><^{@7Qsh4!Cwp zNG6v7TpG24uOW38@EM!;`-(iV`8C=@n?ti2TR@X+gqYQX|ENzGD794jbtMc{eTiVs z=ZxS<48F{=x_C*`L@*wlmK$OZoiKo8-p>n_oh4w=`fbq2mUPw6vKoS*J!Y)dRQBiF zK+_Ydk$@YDFA4Ml$KLiab?w_=Vp_Nre9ZXU7eT1PR37Wbx53(vanD_x%Wq$1^%ZMs zmfr?+eBbfmhkpC=K;Y!?o3Q^cI4k1+e{lWqNc63<^S!5yna0obJxr?R(~b-{rNo9z5$^M9Ch)pHah-#dH+%WnXmWn9U4VF+!Q%x zi>{#5827&KADxuh#1y+p=Gl{f-0OCZ7tvQ9e1n}e#76t0u_-PFG9 zKKbora_Qrp4B+u~e z_dW}6#{oz8Fd-*(ZjM|2NS}8~jJF zodCJ8zmrwZpoT>2lq6<9aU(Ctb#r2ON34gNR0e{_7bxX!QwIQVsok6vpr zxaY@=3GH+Movi8edR2jv8p#DdV=j@6@B8ymbA^O9lthl0F(j3ukF6~`pC01dBv z3>H8vf+Gbp1W`jRi6YK@Ta4H6^vO4C&HkC4e+mC~i=h2A^?_l`um<9Es=8{3)S4lM z_7e4xo?{G%H*VC&PM1=qan`}rcAQQgl4jP)qbX>@2S|lX$PSbYh@sqh@s|KvFx>f@ zU;Va~l&Roi!B`1(E!k5S}pn? z5DxD-;e6mbx+$=s#}>H8!pyRr9l%?)&5OXI5G@Q~%5$L7CgH z7Y`g5`M}=EBl5{_$skM8iHgy{J;-l;M0RzvQHw08jgYtApH|zhY7w;I1y*7$pjbjU z+TYbNR`ePACopB1(TL)IxrEiAM3@XNYEItkgJLmcT&N(4DOP}P#d{&Je zsp(|Hh$95tT0(%PlJ8Ua{DbZuLR9dq0Lnl&AaDWZzRYag5SMKYs+aC+~C zI-p=lLE^?d2_XQhLhbs!L;ChS*cFaF-U-(=BqoIBdSO!>7>H9?`=MYv5Fc>jas)$v z7}g`1dFmppQR{hEmw-SpHua#fCyZaPq_bI+w|b~q@i>@5BHy1ddu}|2Q6Ur7Mt1p^ z_Z1GlaWfsf6y2}u`M!p;{!Yk#f$8l?h(*diX=bgd=NdI~MOJQI!QPHP7V!&gQnSAZ zSoCH!SJQ}SF~VMdNEalvyILBvG4CxoX4^f~+&q~E#ff%pQ#BA8!=6A|PHarlUPSEy zo{wA|44sxv7kA|HKGuRN?lU7!Vg*}&3didX>L6B)>D`1tUK+BhZUoCZ2Ejih%m|8) zNDCI*j~a_fQU1!J3ua23zGAsK`jiI4Z4=#L2v)uprCc+X=^$avP6jarVnV0fZySNL z^LfMld>Qbgo)=YnQi&URa{7aq_JEAp{c^T)ir5|sEh`(T23-VLohIg`T#e&|g|ACI zstu98NuLRU6(TNtH&M4W$XU<+qi7r%bK&=%8A2(;BEDULCr5lsGgmq22sfQ(KinzY zysb^FMB8j4d3toQHY$#PP_uR%P#>Nr5J)!(A6m0dTWhc{f>@im4A9W(A&hhCRi zml`0q&tMedn1C6FiGw56k*>|Cq_6GZ;BfS_6f3(xo99KI5L~g`v z*b#_XEblcfZ|pJ<7{|R>P5$dQx8&f?0xyS{3v5|g)@n;%+`T%uBnnBiX+ufi3sxL{ zAT_uq6_{KycHK|#sVY_kwLjp|@FsAG9;YzmCXfbF)tLutVAO_tYQ`;FBA{ttT6o6m zOX$ira+1t6I5e>oj`;~qI2$l;JEc4EJX*?4A^T9WITBSR`_us1!x?iJn;O;9(8zV^ zVTyx`^=9QbU^DP&rW^HYqEVNb9d$_J)}~z(Fam=nY)aJ`Y0io%GcdNO3u{?P0^o)c zv6^EbclbrloPr~XLuwsiT66k1;tpN~nzz9d-OvyL!f-FP3Q_%mC$Auw4qAmC!cqUv z{4k>%uJnq!Gq)BQ8T5dfka1LppS!h2TVx{-JY6hiJ4x8c+PlG+W~nx0B(&<6@CY1Q z^8}jU45qwI;J$8C7??9}xxB@k>+LO^j|i7sSBPoDq5_U6fHn_Y*S3Z{5x4^{@`q!x zb6B_HCap`VP5J10J{F9La~}ZrhC_yg#_d8X4uy^p*Ymth3Vs_3vE&-1$)-tsEII@u zgEC00fb;W{svT@tBx+a*!raeGY427Vb4oLc8zD^ckB=S;+h6nlNvz#QHD&G3js0_* zT45ySHDN+V@njI;>U8C+R_4HT2`weY(!@_uNKXS7n>RW()H6`I071 zP18Kp&Vay19?Gp6hitHzBG_=uMG*93rLOQn{Ch86RJ+rDd2N0NP>NE!v0&O2OPM?c z&={@}TU#$?mM{nV7uY!FkZkfnsP*pTi+YS_*lSA)@ftMZIJ4hAsLD_^n$ojjQM%2V zh3)<&doO>7#SzWaI8v=H%G2y%-a%g8$ue^Tc)t@1eDaRp<;m30fFfFAQsPM}1=;-u zM-Ntc9E|o}6cwFUa;_mJ_qeq=yL_K+q&a#?c8kH%P|edI1qV)fondiVmfPVY(XMD% z1g#!dxLc_@osyMZiA3nH*Sni;V(Y9JfWt$?nl1I!&qwIBrxGKi7o=Yp15b2|O~^8W zr8+9knDh=agkqUcSQ%L*8*#YiKwttAVc0f2Fqpca#grb{9!DOfQp3s2q9@j}EnYk) zTD3<8OVocTZrOkpLq}i9kHxUuxD%26clY@3pd^cRVg;Brr0hrk5KsnAmku<2^LUd& z#i-;@0W~wb9Jf-4NSlhjuuSK)Op&Ub1W2g}rWyUfLQt{*4VV~3G$c2g7-*q36M<7j z*E$*%&!%hi?Cw4!nTE&hU}4JAD_(TZVZeE8#AOJ7-Y%GK+}1meW>SAl#h|o!_`t2Y zGtr2(hA2C2;bmDr141%{ARs+))~O=QqeyckR;OxiaM2!e$r3(UdmW6Y7GWX2pZxzLs z=%Ve+1>^}_55~z^$C{z`rkW7)5HN}i(j!G(gPlK7KWX|GMMdYoT3Bn+!LZSFEip*% zv#pmdqOut>>rHUeyCdt5id8F2OXpD5^WN05KM)fL1Nq$`v16)7%o`%K90qr3oWjpK zU@U3Ty7{&s!vdo;J1QaS8xE}wYbp~t z!n(6}Df-Ovk5s7|Q&TcqK*6@FU)1bV0sB!V1T4O&jhDp1iT*sxHb-=GTem6yl802L zxLWWPzA9qnlB$}DjnHP&y>u6dC=73k`B8$0&4t;o%9Q@}*W&}XMl)D5g*F|h);hbr zj)T3_D(P7r(BAwj%AY7+5)u7KhaI3S7^!&$8i&7?_g{f(F@HG2S^w8n568ovpeXCC zz$L9;!)#9^Y_cTpkj8$+*uSq(dkvu_Ys#!Na?`?Bo>Jw|DBP7!LnkfAev)-|qn5kP zKhjF;Asri^><-aFm*3(edngQCLV0=!boM_@6MDYzW5NsBisIchJ zG8jcm<$L|fV&%_*oBpUWw=knpO*nRi?YinL%eNB>r$%3tGOw>K5g?PPXiyTQwxC*%u_o+t*>O923sssx z&}BrT^2bCsl(ELPD4R1-YB^iKNV?Z_%L1%DP%|!`HuYFE;^u0n&^mr1M!IPFE<`3` z$s&=404+pCNB#nYl(rWsS;DH7>u9xn5wUubI8FM;N*-hfi-3n=pL$q46x}ve!;@fY zlKY&ccfUM8QrjvFWD!w(K2wKhFY_j5Y$gm&o>T|JjVN@g4JMS&%W!UJE~u@|9Hhz6 zCYLgADf%o=5OEShRyl$6B|IwOLYzQzd2<9kOnkvcBDN(sYM^VbL1y0ium3se+Aq~H zG7Kv8iBLzU!GA&^^7cx{ez8Xv(ql3xO`zCPGN-Yr(3a?k=~5=cML($iYhe!l3r8kH zOAP|t_bj{~22WX)Evrklo}HzA`lnh@9Zss7I;(-yNlB@G2E71%&Z$-L%x@D3CZ}6p zaipdCS@a}A5tn8`(To#w=X1tfl~MXt-S-Mx6al8id^Y41!E69tO67{^lTffO>eh`A z)Cnli4c*BcIXxBmqiOdO$F2H=IStgVuzs+}6*4kCH>MV-6(ga-C09kdICBmI)C$yP zlLe>_)TmmOT;|Kx+qNm84bv*3!czdr&!0>|)j%C9hwRuec*~3UDnmGgM5?QQ-5;s0 z&@G|BwUf`KVM$K^E@B_63(VDJ$(^x1nTMcSgqrS%9yC3V1vL;lVy;Ih&IsX=VvVW(LioR|TW&wjKCq z`tmpZvS?vTx&DAfSyA)5t%rAcr8IgGnwIrgg~4dyAIZvL>AyOva7AWlpc%o^6&$I= zUW~`8{n>5|8Ws%+9?e~)r~f)wy>cs6vF!8wxW>+H_-R6c4M2KB*(Dk|AYGaVDVGPq zhOvU&t(q|^mn(_%q+v6w7`Wii9hwYg1$(y|RSEgFB-ct5e zO@ta-`1okn^WuZ@1cH&|xzO?#L>bbP9`MZEtqjmAvXB;kGGDDvq|7$dxfdJ@?NYF~X)9Rj7E!Uu{B;ntXq1+SSLIUNo<&4?nK;iuPeUenL`Ij3X1YvC z0L?hYOIcDmLK0XFr+z1{PDgOujOx06b(Zq&>yIzHxD_nOs^=shJ`KzoeaksUTN4*J zdR^XgNQ%}2({do;{~Ly)0<-geu{kyPfC5^UoqFaOw>p%kj#nr+!t`4slz6LDEm7pn`|>f^YQSoF z^r;S9Jj=>Hq)A|Or1;k%$ajgzujfcih|T9}5L<`F9gA`eO0NkW3EHZPZwfvPi_Tqm zCF$;SJ~w+&ho@!%F}i;%7%+#8&)On1C{`3`w-F?DXKV99@_wRozzi(O?#@WwT8U*& z;nY$epyLp3jpGEig#5OWa`t{AWIsm_7I~0>+3?0%NcrK@psdeOiDTzILiw-8M~%<1 zs3S`*iq?*zhjKA_p%#njL#B)8kG_AY#y)Ql1*4&D#W83Vftd}OnEDZbwk167P!&rV zt^XCck;-4AglpI0XM*DFc0_Qtr*#I#K!7U8IVMhP2c-2|cxRQ9drrg`KlhUT1#2cz z!J!5h=wh;)o+@ZQqHe_TKJG|V%Q2>?09s_DCmSs_s zmUis{3Oc2+-8(0Z+?3VaC=ZR&3Oc6;nlyAY*!m)IY-H7jT+I)-l=8Y=-Q(2suGms# zS$1}t#z3gq8{P#L?ET5nbwLth5nbAKr-N9)*20LfpFD z35{%5d@KZ6ev0%MtyLVB5TIfg?MuN$ChZpRQ1qn99pD|fEo)lC-YN@^OCeJ=A$9y^ z7pd_IRJR9)GEXJWfGSYtib%o3M3zzKDSF&OmKv;xhnR^@6#bWCBN7R!>Mp> zF!fi#h9n(*i@q*La_J!ZECtKd)9*mS`5fG%)V^<8eyYgP&;_Y5MFvFmyv@g${B~h~#&}B(^ct zrt+d#m)nxf{mRlB239ZYpQfq?&_2$ykR$WRU26b%fHut!vO1E6!u(5Nlvm0U!N7ZZ znyf`gbDQm7GZIfqj~Z2MC2YF310@8K09i889xUQ4n}PiDB0<*BjWtqDpA)^aHJ%7iL{HsDAS zP0O@^3|*|uw0C8Xr|*EV)sJf_3|eBjogts)bSIg8ZiXgPw+`vp<7^Rn1D6lq;QCEb zW>pbpR#?A(W0`{Y-w3-RSDhMIDSjVEkA2 z(q=*VQW})XlR_DUj2eM#ax#*l^0gsfgS>OYoRuMLGAw6u;2N!#q%qBkDzdQj)&e_I zSxqIzA-AxpT|e+@UE7g$PMldYqT%mb=6bfrpaFF)mIh&L?e1-7+aC%sk59_0)J4Ya zl>VUWTObbw&vM1XFRlRcGy$2hVxOAQv`#ZeK=d%xU$hQfmWn;^yb&2Sn=EwY=GKH< z^)Gk@XB78$oiXFHV1PQNl5;7nL8s;A!?bwqG&KD0Sx3T3y++^+1q(TY<}_dc%X$5Z z;(>5*@eaKo$wn5t+Rbi#B-PQnSreiIdbk#>;J2x27WYrw1;H#eh0Kk<__LG7LKp(r zYKy9w{(D3xY~%3Dp?*Td%5$gM*q_v}&2Ooc*6v;A@nQ|$G{2H)bm!tIZ5Y>Z@hc_RyeVvzpHh z_2_hoNf=8WvSb<6_^b3q@gmC1=xr9vNy9*QtcHH1(b;u{b`nKcRC++z%MLvpgR*gz zMW;3fqT!~YFjTS=zT=kW_cHwN5GUSN$L+|bng5BzqyF$KLZ4%#$a<0#GN8ycKelC_ zIw%lQGJA6&SlvV0ZNfRaY5vjFCft!viG5~C6*L2^Q4yg`=8UH!1u8Y2Z;rNPjBO-9 z_p*E#xs%^$Q~Ee>?%1|nh69Y#aFk-6ISjN*T*@Pm~ZA03M z;H)e++#39jXX9F|jvrA&<89a<_DxY?fYcROncJ|@L#DLAs4z&n-e@tu95VbbXsMMS zl7<(g1m;9r<8y>%shlBQZg_saTS_hoM~~WfzC&YN0n%$gLLc+gyfK#}tKXqhA;_#z zaM3OYE|;cfOKd&0^*0z;lT_5y!d{`!Y;CEO^~ZWP%8oN}b5;!Z@V2S1lbD)-r6iam z|MO&Lo)mUyOt+~BkIsnvs8XHngh`ID?~z ztb2XMsXamyZgI;4RGi>{Eq1%EImoo3omasBHHd<4wjavZB0)LBkS#w9+u+}RI+Z=6#;Y`ly<22uW^ss&D;A-bTz5`yJg~%rZf#0`r53qaOX-{?w9u1-GIM z!Qm%+-n;<){B)axM;MfW-U*izgbl6IPj0Ff-HL1)8ju!Fo2-MepYx^^rqyqH(%NMy z$6&@_dem;EG+vxGT-4xfD4aUD)m{5=4`q`Y^wVRiDHlKcgE7Gjk&V;b zy^QBL)Q-R)$WWCPm3`i!@O>!3HKoAh(1yqQbdJozf@awPv}3k>mTtoH>QDa4z?@cR z!WkyS2KgmZ-HJhvo{WSZ3^Hz|idq>!hb5-l5s^PEhmLsF)y7>~InD|1K`F8P08@#i zFNt!bel=;xk#@`~alN{yK7IQ6(lqO^xDu|)+aR2=q5g#jq+Fg!Bz5D1gl) z9=q`bF?}vt!Q0qVg>PZ&0e{_&aBcR`rTT-*_&0gPg+{_imHA)L)4?sq`V6dEN&UXD z=MQCgze~0=S#f0@$~K#QJSz=ki(Ezi0q3{TXai-fkY+s66e3CfSivk9n!46M&{uYp zIrcT$QVrOUo{3BKk|UFB4L7gFwaQP3Mt8a>DkM*oxMQ+x@qoor#$HVx;+pD2*|e;> z7<2{sJN<0O`jt*1vprsfcNz>HZ-Jj|Me@7Cr*eRM=>j5#hM^p@xV&|GSt9Kx4ksc8 zwEUsp>YG8uiqR^-sGq(#gB5_ouZOYMw1n_Cc9CCGC{ z=7=)K{k_SpK|!Q?t#Pgi7fP)$T^W!)o*<50!Q(>dgWl;OJDH(LKn0PTcW-@Uz%77; z21vn1`n(vK>ef37r%S5jZjHf~pzeLMh6yNw71X z`yQ^uQP!H0`&&frtOfx5=n`p@b~bbKy}dxaBvdLN zEI?W{Kyn=-tS%z!M;mXtFLieUX4-W)y`3*t1HDCySDafD! zsarQ5J9;Xxa$pQq4S8UzqC*d6=X`~y9+zB6N(x;^<9_!j-A-#kQ#%?eK z9Q@fFf&f|?!T5)Wx9q(B__e64HXlcj#$b*mRdE~bPfi35Bx;d#h}=g{#ar9O8@t($ z7Y1>LK86SjI;(|;e>en2!4@a6&M^`$T0pccEQN)WX5Qw`<4ltS6LunuZ-}xIEWhEF&f^f}wpN7?oWn+~<3yPb=)jj6AUZ_gUjpSkAkq_h zX+00aP5ymexO|V(WndTV2!v%JX`>+ce#LtJHmKsV$gLMm)&eChO@hPs8r2awF^?z^ z5;av~QYa-2>BHKR>-g%h20&sJ9Q3PwmDgg8lXpL`btk9^)4B8JBdv7CwIDgdj3^MBo_?gf3WoEo`n!?t2Mz)taNg&Y7p2pm@9bqEe`Ml?(ilQXj(~k z*sxG#RFPmI8ja>)x$aJlh~BVPn0TzrIfoD-YJB)bg17~%@TpJ;sbi$>3?6eFm()PX za&oKDtbzD(=sT}yU*W4eO#OZRCfLvNaO&GNUkpzzrW{owgvn()H5P18 z;4%CKf3`yr#~KDfzMgBEeud58*)&-nFLEq-m|cIH!gE5jJ^}^+q9d%fK$b2Q`K_Gb zLFJN7Pz?;1MeFjvis>MFTVsc)Thh8f+Cge-t4;YX zkOcG)aI&YzR%MZe0v{%YUC5oyK7@_0aE6qA6*x8_h8)uw&`)B_)?!}#1_>w zqfO@YcQ%=3GhoNf^w)A7!Kh7H^&pc|AVmKABoU1la}9IqFl{vaNWaT+gGE;*k9D@I zme@$R?uy!vA7*m_YALvD?UF}1?~(*2yYSA|g{IL9FubD%<_I)?#PzERtwm;n25J`A zCfpL_F6b`h!4^Ig+~J0qrQl;OCMWmK-TeGB8fpY-&IY}jqg61ph$N^LpmDpzLYY!7 z9)yN-00kO!9f=k3Ls#ld$XGQzh5jdbd3-n(0en)f-6Cz)J)%37_Cblj=t*EnAuu(G z+XMjK7KrHAYH|J;zHh6Nj6F1|D6tb$wXO!Q=6M?zU*-I9Vi-A=&mVOm_~iCuF<|5y z;>hwWt1zDM% zl&8dy)*gN(2x1FSnNTx+Dgi+oL^KAY3xQDPg`%JHcR=liI2yBjF~I+W@@IW1UH*eJ zbQQ=D4T+4dG>mXcSPb~a^bjjSCS^!|XbRKdgX>S>QVkDo^BEUqCNALe_T&%I9xgrD z%baNc49E=f@YV&Ehfw@<$JJeJo@INA*60cQxKVk)d{V4vTj;N72*tig{{b`rx$z0r zH0LqSGV|y^vz^gB0=@sm=xJkHF4g}rc8SKXWm4Jb2EC(fe@5&K8a(kwGW4y5)YjtH zdN2KW9+onsN$k4F`__MreW5-~us^SI^S$Sh4i8dl-r&dCn81UPCaZYkuuo%-&d?Rk$x+Gn8Lc79f%OEi>FeJE-hJoBq z)h(ul!>ohD2`34=y){b3OZLPGx=|@0GMB}DT#0ToypR_OMiuN7rQkxX^?oxV{JjBG zXsh>cDT>-Po2nql0*&y{ND6y@*cAKM57J{Gizxg|pAZOxEb&oEa{^vn?X|hePh2H% z@Ulk|tP=L0IX<+T8i|wy`68(D38ZQW2Z}V@@pBqncoca}V0czUYA4f61-P7e00vTc zvXD-E)*VQ3#3369#w}ptW;;XAg)7lQA9XT0{$ za@njSgin2<*5pEc`Wq8(PoJ0rnZcJuUH+p63V~F`e$PvtlG5bcv|Qu}1@da(rbIx0 z03DMM-b%o}1Dv*(Kpb+wbDc6BQQ8h&1t4CdN^?)(CV*}Gwbky>#RSLXWV$CakMRHi zKaFwwd8w7St7i1hqsVXaWBaX(X~cp_;0K>)!am;47h-2Dqu^IrU7FyHUfb2ER<8&8 zbVc4j}*=aJu$$F<)sjsK@yP;A%rJK|6BLFk#a?@kM7I;#rHmBk4 zvatnydvwDek=s=&vZlV@QFP3_HtTlyhQs%K@yC<_Lnrn(CceHaY0L*UsEeEuCW+cf zWx6?p{GXqzSe>y@wVn5({`V;>w8mRLLW0jBO2vk`sIjHOhPiql z`fk_y-Xn&!R|4Jxo)7Z_g}2A9y!eARTJ1;Bm2O0|v_MaC{Wz}!jIpmfZfvw2k@DY~ zxb||LdZd@%(wuf;oIZvOGAkvYFUJD$Zi3!kNGD$>+MGtcdV~0Emm!e)l~icRvHr?@H~a#ZV-lW0|%A*=_uxO78=cE)PylfRpv-E+YGpzV~O? z?(;Of+g7fe1PeJ?>lYHi+Xg$MDrNI}+fCswU-$HM}V9Nwg`=Lb780Q{n5OE%UGuR+k>wF=8gq!hs zMWJe3%!E3WL0?`%?TGoGu|#kZf!AvncX?jDP$oFW7h+1g?HqD<_pviWuO3w#^`9!i z64-YKLGOh6PtnNZVM+gXz>x(*Hm?0)kOh4~5(RkxwqyVkzvun@9>SI02T_ZL&&QSa zyT~U~%gz{~uOY4dkG?lk(B&1!cZ%M(4?UF{4vYNlx9Q2-@9l*X5Rl-%UlsJfb_xtv z)gnB}@xgy59#v?&6b^DiCHl7Bt)8kn>>%9Rqvan!L9K=Tu3qg5bwW$IVgxP&* zaT2XjH1hh&^#z*$vB@R==dB2SdNAMrQuq5H?Wm_|&V9PcgU%Z?3V5J;p8DY1<7Mo< zJ>%LFa0&_sTaItr?fR;RJo<$z_|Z^xyX~b<-~W0Z-`DRI4BmkdcSIsK#lF zC=#Igy#g*XUc-4YAx$d-(Taoh8kdV9OD|bhtH2h1O#) zYo!M_|Mid53Ft*i`O1at8u4z7IFHL29n+}S*Qc+~=HAf3^RZVTWj`rLo- zBxd%ZuJ4h||BOxujrAXV(C3@?6Q3d31%=Pu*3DL!WpTKY(G!;bTY{F2)~(g^^iyE; z+L?~d2K0^}rr>*T6@+#oe=Bs*3osupMC6zyn!yB|iQ9=l@DVy=pFa2PZ9TqkwD0|p z^s$W@^ zQ~*Xq$yJ@g8@98n>wDzrDMhUAx^BlN`rIv3uA9SL?Eh(AA1lYy1+mk6$7CUvfd8w% zt@kh6`=M2zBu3@C3K-NWMfYb`?5$RQK=%8G8(-q?1=lCs*URJ^g;LAsGthe@n`!j= zyT(5WJ@eECJf%GYC}~?aU4#VRI-K^p-MIFgdY`H8d7E>Lu#E#Ssq+2NKK~sM3Fovw z&m#);?~xUAzg;fe7TOslYU%qYj92%*KM)BKX7KmQtFn^7dozZs>$gL0meOBhSIqs;R)=dv}k zprK67Z|O2Uk?dA#hFWfX$ZEUq(R}nf^oPLp@&^+G z{pqe(@9}<(j=rndV>aA1r`$mk^+GZAc{gc?Q01*B>N)O2a3eU+M^`a(YY(ejx72Y@_ne=+wyuk4I&2NXX)6ZIk2`7Ft~ zjMWhh2fh2po+8x+oGf|2NSy2^k3H>1IKAWdeNKr*74r(-f7;#ldKtxUZ=(?gyz}ti z&Ms(onuDC=`_V>3mQOId+L?BpK23|w#vf`zrb>SJl6QuzJLC`?(yEA zGbkq@kXVc}*5hF(!%mAfGCp+vuM}toeW|uDqZxFU^FCLNGB5ttxz(2fxsBj5pdmIx zhS#W9aH;vZ469 zkH%zw73z49sq)&<@D%kaK$nw?(N{l*88>?^=o~j(h5Y-X-KKdV`<}YAcK=M_L4fdi zT@MXyZbogTiu1@XM%38TtiXV5I`QcoiH=$RXwOP1Mm zIT7P_`LNaZpVJvXa*aYq7eN_#0)O8>j=a4!gHF;$0!X6Q_-Zg}W*GWYGI9rzO|N$o z(xpGihQa9v@W}a% z9@qxHvWBN>qlg~xJjWZyVNy~{3sp=k^qcRzVmiG~R69@_nATCjB_-? zPp-AnTg6GUMJztB7%oWxvZX|>(#mYpYmM&>qigOCKTJX_OG%C1jTbAK`J1YCB(lV! zAy(^lU}Vp5iugRbb{B26*d z*ZjVIvd-FopV~#o@KEqR;$CtBMvI30qHxD z>N!%qXnT~P`arQ&lr|{|F91fs_dR4%4qO9bxM3AG` z64qV6|F`rjJd%TBQBe=pB3hlWCN~(XYNEEi*<8Khf-v&6VdD7buYc}bdYY^$+g58m zRLe2xQOgsJ1mrSm?%_5RP1=%ka;i2npfJ_kj0Lkx$TN4lX_`X}HInK=Q4^~R<>_T8 z;`BByiz5=tlM;uqEULg4UHe+D-8WVZA~jD#0*`t z!DtP#>u7_1(JCTm)Se}to)4r)&=*Ns>9OcCfTp8;Mwoyn*V*{d6sSk4$53pj_qvKn zoDp(zjMV*$qm3*bW0^lo-OlFWRutL)G2(H)|NRe>K6WeS5OTm-n#i)!8QIcXvP*rn zA}7LOXL`Y^0J#9YE3m~mW~e;QLCWXyM{~O+iPWX%b-V>Nm^^PsEBK7dUgH_0oW}0Z z^g|IQPx-WBKLb7L?0wOG+xY}8F6W@64u}2$SmErmtkhUmi1t%{(wwAIcUGG$?ca`o<`BEp5+TPUnkcIsM-3>?w zCYh`jCCAWEI2;gsft5T%6U@fw5i@E0U2Af^p-h@0YPU^XkUOwE9CiuAZe0bK0l7Ft z0i6E{>8gU9Aur!)$xVpwQtCq}t*(wu_#jaa0T80f;7u73_&5e#X^&v!mzQ8a^%Kz! zIq51VRcql@TtJ-RCI;&Z#d;9b%aWf-OsOJ=T~H)yTHnYF@=nhw7zAWg{**Yj|3-Tk z9!Fgo1C&G%<^W$+s|u5R6&o#1M$*jUsIlY80SpzaB(_<~Y%+zZ3{? zG+IToqE*1ZXk^fUa%zv-L_-_3npcR9Tot8XmPLo6+!E1isides#~jvFtW@7mDv4xr zm^!SNL?j=m2GM<3o^_ZumOH9{7req|!Y}s3dvJCIi>38N!-l}BsRLn^F>X>zF{|Ro zKPch`*c^=vj&~yN9Q>vU)(jbm`k5 z`a*N|dv*bl)7+EbXv-A^qa`1x2a~YjMm;Kn1Y4rtJ2I<^`PsgCfbZoAwWArX_*&%R z4AqAw8%3fwoamm9EI~j$_MTxpN3b`nYDxWbciC=Fdf&TH)<7|Lj zY<5uDOo60A?XBHwAFaLFaA(7w4QiiAPnGRHigS6Bj0Itat_CJCs^#xgx_4fh50M6D z>$~T?iRSu(cHcn?))yh`gD&AY^RWhd>aH|Y>0-crhimz#ne3v zx-|Taa5aI0E@S__NlCQ#bbr&haD3w)%<&}HsL^-j+h^pQ6 zqy9fYMk7%o_UJHC41dw2wG5TIR31@Unrf3RpMrt@fgCvj%EGl-P93k=e*Y0uS{>vA z5*<6&0}Rd+5cD>8Wz7zj)4j*7@4ZKPxf2AVrna#ED)78Y*uCEvdplZX2-xy_+`k6$7uWppzNH+cDk*a9chOeE7bc$AntnN5`FT}vzrdK0u_2c$-W(LrMf-W z%1dnPJ4<_xB>F`7-U*^NJyXllgepTXp6$=pmEF?p>;43Su7<0*GUdG75gjWh@vnOl zdL7ody=y}M7rd`9bfxv+rfETB;I$w<-uYl{XiED-ufeMSJ!|*-J9@p{4ov4JO5~$p zEQ8*)ghMN-Yc>3|5OhY zP*kvp#Zgm8h;|y_1W2vi2k*K(XwI6@xIaOE}sOJ6A9|+HTmw=?V zg^UMvc^ejOi8QMiB5|c)u#nvlWwV51==3*7^$ABT5f^0%>51x!sP~h@P!cI#9(3^H2NdodwI8=J4V>XA4b}?0-Tra&yW4#fXg>s=?CxXd$Cr5} z>`PeHjnx|X-Tr^gUG-NK&=RIux!mXL0h zP66o>x8_>I6rG)hxXln-b__#+3fz)5_fH&U+rbBm}`#SY0+bmji#+ntdT(`tP11Hu{8Wq z28Zf}mm>R4c?6$33vxpv+#=Rr_fquPow>@Kz(*(+Q^yNra@Jy7Xv03*iKL0xB0!YOD`^z#;9qD^I zuwdW8D4_haQz@(YZ)=%$>_7a{mU4a~5&M}4=r#_-?>kh?V+Sy1hy8x%fMc;vhJ@W+ zj0{yBA|MpeP)WlO@aEOSF~~!ipyLBW2roKmu5*;p4sP8}CIEayQ@Ls0b1K$Wm-zP& z5!~3$%@tjt`rB~Mekb|0aRPeuXA%*ohV#4p6rO-v`o1%3RI+Uq=*EV019%o)FIimu z722iX6x9Q3(nX#_nWbic-(|nUHSY43vvIS$wOa&G`2!U){<#N0Z5~emNfIxm2J5YW z#!QglSyZ5X+p^OSOaO>2=#a?6kRWebb;Oh{Qv5pn@)N$E5#$)`W-4GM#9TJX<@Xj1 z+5``Hirfln`~}W4tKyQbe312c<%$ny{aTk|N6SJh&WpV^&NND(F)mUa1gUz5-a({h zBmVu-1ENgmp5y?|Cl-h+4TM}6Ig<7zvXewK0bslW#YWh z3d7nmR`P}~KnuncDhq#+_8j`4bS9_0#|O!1>STPOwx84-w32~u5hn~rt8CW)h@3tS zJ;X;o;3Qd4ahJp*tQ5MeLT7T7ndm}Ew8n{lt6~fiq|%Fe2?>&-2bYU^=!bm2 z98?+2?FMkXC^twx>KfT;VXQb=6m1D1sBSYG+nwutrehht3MrOm9)jUg#~$EtqOiSP zub2Y0PJ5AH;B;YzZVDZ0AOIL7o+o=OJ4%`+<_s#Xab zY^Rz^*^lNb2f8!{;~}s6z=VAs{wdjh)W#8Q;-StDeEq|1&e%pR*%ETKUhLQ3>|j+a zvlm3DFw$K0;18U@Pi3&f4)w2f`*xKpBOuY?YH3TOr1nqa_7bew+6?)kG))@h(*MnhLVzQ^O*lu%L%&6CY;O05Cjld_15p?N+KA3rcH_vr!kEWZx0 znG@{T_;(>Ls%;=$uB-6FUY~eCb-+ySPtGb5SM-ION+c)9Y8Nv!B1J)mB1#aj#MK`= zhA3c&(9>Qm5I!OhqTP<^cLCzqfv*DtpKu|9&uI--^^lTPDJ2)Zv%`7ug>qJmfAbcI zIubS8kUEYrL9;;eNZ_#Yp`^7a_HL zNJ*MtHm`vKSgVMrh38QnoAG^jU$!cGBm9aFSxPd9NK*_^3RKpXbC+|Y4BF~Hkibb2 z#lUuL%WvomvCoO;Q=6`dJ_|<~TER&lD`9R{U!Gm97!W$rCv#l>3qZrJ^|xFoT_I!+ zrc`r-g-0$#hL#DHbB3SLWi`L9J0LZsAdYAWiKk+i(%wLb%^zp{3!Qub=U(H|5TMI# z3stHO^k=iT;WtG&zL~xNgsg%S-*<3XrD}e@S^o^Mx!p za$=I%-|!|&kJV0jbfy*c*qIx{YoR)zEYVv?d9b{$*9QA2**C zaR((lKN_fMeK#h6oZ!?C1HL$B)*Plv>qwb6rD{|F5M&0X#Lj(Xz~sxwHfCiHB(DxJ zEt~K&(}eFSy0OEffFZwT2(G*aXp@ARNm6S|zk_0w$VQv7_2~5sNjTFA%%eD3X}V2e zE-Ck+l3V{IbD`HX(d(95MT50kdKlOszBFQN9n9%gt_zpAustofDR6Pu_A^oRAvB}Hc zspNk`EqVqe!JKNjb1`{>s>{?wg!rx4XS94{0pvq zGZfY#wp0EHo(5I^SQrANumL=_y`-t9N;Q$UUIp0ELJ!nT1CKpz?F>T3;#K)a-0b%bAjT#a{=-4}wvAz=whBJU z;aY`X|hCJpG1c{Exh>!cl>Wlf=odorU$jN_E<}$IbLrCA0ga|vokAj-FSY2Y<Gs&e^I)0gPNzL2b!vJK=dafVga67t@S?sDbW2Dth6qEJwOCaBI)&BXw|ouGq6ha6*Z=d`#V^Nby9f zY)Z1Ied>seT~s-Hs!L*ywzoV|Ydzx!;F(#j6s;kS^N|QX3?~;x+t~|23dk<*F<(g0 zI1AWI15b!cXrmpcrZaT9nPiV{8H&C*L!x-Crih6**{_e-jvtAVsFj2*M;&IXK4Peq z#Bv}uRakoyHXw6|QerQBsGDXp=7y?q&d0GJYRqh(o+Cn5rCbV#a*S;^uuNiNA5;33 zOe*3fPJa*`E5w*L%o=-m*vFpI?bE24W}Wr#X$jx}RX>emBZcgoil&Qp+O{iQv3R7t zBX2@B2vsAMe3ng%Xn*$>$ZD@lNd(h(e=iY(IMF83g(M9Mr3k5{@Rh$0u<^GfRRJcN zB6&%Q9}IEtZNB~(_2!PW)D_l*zQqqZNtvE@uVXY0k`=H7XRy<*TyaO7zQomtw)xO; z77m)Y0DONS51dm7U+8co5wTNc3pQOcdT+hs@t&T{hq?(HKM>nFL9>rRJS4v_VM!e* z#kGNe?!UqN=S*NDMY#~2qhbB0!v;Hz4<-Q*@e+6Y3c-}U5yY4v)ofDv{QYaRVE{^@ zLC8Lo348&L&(rWpe~Ss8qYxF-9_E)0`X4v8+R0iN_Rn*pZY{#TnCg5&2>v&KSai8- zG*V9nziC*Jqd@isGd+p)WT(!n#QB2(^FXl%+cIs+M8N_n%8`=E_2B2f@auK$Pjs}7bO6@AP)sa|88BrEr4H8jW-5EydV0{8 zq#3CJ`fNxLh#70G;!Lw<>cbFBv5v^-9AQmO`pJ-I+Q^Z4D8~o1n$3*f4G+ay%B@%u z;I#mL56)asCvc?4l5O4ozdSCaxMjKd;MKCeK5@_o<6Vb!3t{>1e4z#`JHHUaXeYN^9%}$A3Ag zebB}o;KJC|0XPZy*mrMmh+~4Lth;9CgMhV-q}}b9UnWRNn@nI$Kt))LI4Wp>Wf^MZ zz2(qnz16QSDb|20gVR@$1kFxFG5)Fe&86>cf|`_RiBs7D0sUU~g&(yV+3>vk;C6@g z;KVC$Jf^Mvtnmo)ZU(fL*ztkUNQC(|UwfvTH*}wjq(VlEjO!ZAM-=}zun$G84i*n|%K^F)e6EOSIo72$ zPMKG>78>UpAZ{4-f_&?3ae8X);#x`F9;;*D8y&4=`&Js2IV1ZaU^|k)c~fQ@n>MWT ztRL^)F&6%pAC%4?G{}vBZr{cxvIoTWmC4om;=|;MS;*=!2slz}sBU*-Z%@1S3kQye zujsIpAA1SN3!>kB@N+l^Wf!X@&kPyh4EpY_&im}Mk2URdti9Q&=iN+$=1D1%>1+9;>4_Yv270pAxdtS9c!$Hwy8VHDn&5ra zCP3O_B7}5z)5)1KnV3y5w)}ocrZ4#NH)#hBQv8i1`7WjK{uG}|JZIPyCVYVE42|gI zfuMb1+-fa6aRXQSj*e<}lejN)$4afzR50(WNxEjrw?by~z|i?3R}ZlbjZd5@_5UJT zI?HP~iRS?eQOa_wa?w%3L@V_44z$<|(-H3EEFy^!r8mD!1!J zi{v_6N(UQ%k^TCkzr#P)-ZQRZk4%{(-olT_b98uWI%?!Bt4B`k5B{4=ks)Oz3PkXN z;=!oOAf?=2(hBV|)dfry$CRHIN34C{T_j|N?QdA+Z)#=BaquW#ECR1H_t|y^7+!bw zuk5;I+5Mohu&cu5AuRd?D6Eti8q8tN2ie>bu^6E55q+e*4hkCvy)I>3DVw$*)115x zpCM}`<`7dLxL$p*fRn>KskCNh8^V#eI*duB>yIxB+&*hB^8a_ zi7EG0s|h-*6n{)Ndc8GLNsW`b?o0WL+jmvJfvrInT1hKp?#fe$_H#`8?3B{#dRUwL zX_~EJjq7@A!siADcBjaTKQqdKq;!N>1}8(5$s2}b+I#PJbqFD^aGq&A_JZhGGRxtB zvSBezwQ0k5$VowoS?k*YBFfN(WM!H(d72lW>cVGBcMmDp*j{VtUhkOaSqd<}rJ9-s zGia29J0ApfEzp}3=9_q@F|cDCIUg}sjuX=}+dDDUGn*3UMoVRYf4aEzcK4mzNiATG5=L-P9eC43aWU%feVhte$O1>LY*`^)?s)cF zM@0avMvMAI1zE~TIw{%e#G|YcC1=N;!mg{#h5dPS$lbv;3)NTMc#>Y@`xQ;~8)Z7g z(vr$o??IHx-f8H5@rXLTf*u8Pa@E58Vmt|SjVxyd2HXszfnRgE(71jS*<-RkSF}x5TB0{#qQQ_%ly);@_*ek}q?V|# ze#=+> z(N?1;iqpUC1R%;fo5RTs4Bxv^7dJ6^J#guI-9Gql13B=^ZZa*~tpV%9GO8XFbH}No znvSC2w{Z9@?Yc{TZXGL$gtXlm9RtIsUp$-J1f7m$)n6_+LBFxEMQpz7y5~I)6*s8o zmJ=xvYByq|8UGNe7^mH7{S0feqI;HjIP@eJeF_t;5B^;jcB`~_5MsnS#ua5V(DCBF zo8ZmVkU+;_3z2%8kM_!4_sV!q7Ns}8WECltI2AU{T-E~mf!$RnAfq~>HeTI;~;Xw z4uyTJB=EPU65d}LSeDupT!QzHaSgmN^MxK`Aum^ZD;LfcOtM_?Z%O8 z?n0&wPM;h4prGq|LP!Tr4a=MO(Vg)J=7_)5jJk9O8l5z8<06L3N~?!&S4+j*)g({{ z8$Ea_p9FwIzIQ8h?X?AP zO(x{Js@Nyb)h|ug2G1k;SC2yzGv}88m!7~U z=;E8;3ehPiTfERt#n}Yva0?2V8tZv4)lRopc2EPJIJicOz)ble}Y2GIyip!ULys9*H52 zo_0S6e=BiJI*xeoC5Qc^(@*awar*K=TNa}B1K(@~zojhwvt#ww)DsRoVsJpThKQ}y z7twl56sveu9ang4!V020g%hpbbzYM3n?{pwbE_Y{s+nbKM=$ z(RezF`Wy@%Joy^^2YUDp;IgEr+^(oFTDAtaFq?bUHx_vnE7=4;23R!@o$ShN?Jv2% z+4(t2GiUU^K}_-I{t{yW>??+WtCTuq;LwbeJqc{~s0{QKQ?dQ@)6Xf-(& ztNtQsMNR@gD{+@&S$FH|BF>)L7P$>0K$T#Kryb~%`CLcY9809&R}rhVqeKrmN)N*? zFCL(OA@N&h@de)+6(%T?wfebxluc`PuSSJ){{UiRS;Ov#*{A+l@o?l(yk-!-m^9a% zWl@~@RNgv={N!wwzr{HoJdoEK{NAMR53`$LZ|>zFjfJ2W_TwEt*7h4$v$KJ`b49?$ zQZ3tlc=z%r{s0E&M{l&uNo@jg>V3FbQu6zhX3%`-hO5ksd*e1(yY=2~~oQVEtw7xBp8x#SZK&D(j)qBwW}N#gU(~md(TkoCi#UHjwrg?@5SZan3q}aL!EC}ZLNmn zVIExRR?N117oK0LO`KcyVe*%slSu+t;TQ5tLX`5p&2LnQ#p~_z#u& zTg=S5uPsG?-a?Ts)-e0`_M`q#k0TVDzfkTrxsu zs**qlxQ8>}K@Eya_0wvA=vowWzpI_7ne|>bS)8)5%lXUmb+vMx^`q>+N%7KqbaF55 zSZ2jF4MmgsnVO%UO2c^S^V?e*e67cHBAl|p*MCg4fK6eHuG%!B6n|SsIrx7QX;(#f zsW4UeH=8X;RkT$U7_=`E7;JqO%8b@W;permz^v-g)S%y&F6F>NppFQU3gSbbLannQf? za9^XeiQKNxjJ8Hu`EVj(&zHHuL^+f|*iS8rnL)@oJOP!FJv+!|8U1AYW{-8%8`= zMU-O&S_qNA;H&xe=io39;WW>;TmRd8O*ndpYo?e?)#e52cwkF^NSTXgX;x9@UbDVp z8u~r?61V`HNj|d@iJD32{(9D3%9o5;P)MS~PNmMu^K_ou9QLizHQ>a~4 zb2y;MuR+B01ZlKZj~qln!Q}n#jsTttXrHK%48qm|Vdku^#W4A6*}7JQt#7zU=|@7y ztV1OK4mRSfs@y=JfuG8s^%fJ8>*SJuc}+r=e!_?YAWpQHb*E+5f2?2DIlif}XEsJ_ z6nj{kc>D+4>kBh4(Y8gex8-rjy$m<;_;Gu32g8ArrwJ)g568@kKiY?SpOH^4FwWEl z875_vCf95o`Na?x_OYlmb}k+sQ$2-Vw$}MVUt1))GK_22bUO_RFtYc%q=KT-#NU5s z{rv&M61VRRij8tZhyO1)G3%<1Rcb_6iZ6Bokt=e5>(QT?A?Co--i?fpUlOxis~H<* zt6j#a0bQ)JN3~sNLf+eiFMn3dt%|41Vc!nL*n<2m51uc)<{eJT-9NUEbY^4j3OiANw+b7 zbrCV=NprzJr-|pjvwF$l_k|%2p8@sm`8RL3Mw|ovb@eD*BSXH$=6*Ud{S_WNV7cy! zko4L9h5a^Iv56OD^Ary#2^hSdh@T>=NkDYEM52rHDUmE#a&hf_J;V18zm9_oPs2;4 z&L39i8fBF#H-Y~gI&Oci-333%Q$U?L*Bq=6Ye@$bU5Qn~aCr#_F6hMrMT_d%u zcnjE$4|zVj8LV|CV%`X8#?Cunun8o2-%GPz*hX<8he3z9u_pV$lE8~b2-#jEYlTb2 zJOdcszyl)Am3mR#0t2>;zhFNDR>QTtlKHv;V%CZ8biT*kynF@(AYxBRhN+%you9;- z&oC%H1BgUsr26lkZ3%ZvLAh4Lp8+R*Z0#!4ub*uVx3d4gKF$XVB1Hb@X6@bij}PmK zym9VIJZL>Jy-Tly6W?{;W0_`toL%-U_$n3L$omiKS2(`2_VFtqK?=?5QFD&`%i`bk z*F|)YA`j^4ln2T3!he5#^zEy6vc$8SN`5l5wpk`V`?c;g-~6_M<=Ht$C(!t{|Ho@* aJtHY*=zP_`;LlrDP}G#P73<`!!~O%Bf_wV_ literal 0 HcmV?d00001 diff --git a/AR/marker/seven320.patt b/AR/marker/seven320.patt new file mode 100644 index 000000000..ee8b0bc50 --- /dev/null +++ b/AR/marker/seven320.patt @@ -0,0 +1,195 @@ +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 246 219 217 215 243 230 249 249 235 239 215 217 220 245 255 +255 219 122 118 131 200 118 173 193 163 180 131 116 130 214 255 +255 217 118 82 158 186 88 96 89 150 172 159 78 129 211 255 +255 216 132 156 159 181 121 61 39 63 155 159 155 143 209 255 +255 240 189 179 189 218 205 150 137 199 217 185 186 200 241 255 +255 228 138 56 144 136 27 153 100 92 77 95 153 183 232 255 +255 226 136 97 59 190 74 149 114 99 75 128 138 179 238 255 +255 228 143 87 96 99 133 104 106 165 95 90 122 172 235 255 +255 217 152 114 57 105 140 142 68 80 82 120 144 162 219 255 +255 235 178 159 145 206 104 141 146 88 172 174 157 142 207 255 +255 216 133 161 161 190 66 10 103 96 155 155 93 202 241 255 +255 217 117 78 156 179 81 77 128 80 9 105 120 152 221 255 +255 220 130 129 142 190 134 211 127 143 77 154 140 136 224 255 +255 245 214 211 209 238 228 252 230 234 218 243 231 215 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 246 219 217 215 243 230 249 249 235 239 215 217 220 245 255 +255 219 122 118 131 200 118 173 193 163 180 131 116 130 214 255 +255 217 118 82 158 186 88 96 89 150 172 159 78 129 211 255 +255 216 132 156 159 181 121 61 39 63 155 159 155 143 209 255 +255 240 189 179 189 218 205 150 137 199 217 185 186 200 241 255 +255 228 138 56 144 136 27 153 100 92 77 95 153 183 232 255 +255 226 136 97 59 190 74 149 114 99 75 128 138 179 238 255 +255 228 143 87 96 99 133 104 106 165 95 90 122 172 235 255 +255 217 152 114 57 105 140 142 68 80 82 120 144 162 219 255 +255 235 178 159 145 206 104 141 146 88 172 174 157 142 207 255 +255 216 133 161 161 190 66 10 103 96 155 155 93 202 241 255 +255 217 117 78 156 179 81 77 128 80 9 105 120 152 221 255 +255 220 130 129 142 190 134 211 127 143 77 154 140 136 224 255 +255 245 214 211 209 238 228 252 230 234 218 243 231 215 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 246 219 217 215 243 230 249 249 235 239 215 217 220 245 255 +255 219 122 118 131 200 118 173 193 163 180 131 116 130 214 255 +255 217 118 82 158 186 88 96 89 150 172 159 78 129 211 255 +255 216 132 156 159 181 121 61 39 63 155 159 155 143 209 255 +255 240 189 179 189 218 205 150 137 199 217 185 186 200 241 255 +255 228 138 56 144 136 27 153 100 92 77 95 153 183 232 255 +255 226 136 97 59 190 74 149 114 99 75 128 138 179 238 255 +255 228 143 87 96 99 133 104 106 165 95 90 122 172 235 255 +255 217 152 114 57 105 140 142 68 80 82 120 144 162 219 255 +255 235 178 159 145 206 104 141 146 88 172 174 157 142 207 255 +255 216 133 161 161 190 66 10 103 96 155 155 93 202 241 255 +255 217 117 78 156 179 81 77 128 80 9 105 120 152 221 255 +255 220 130 129 142 190 134 211 127 143 77 154 140 136 224 255 +255 245 214 211 209 238 228 252 230 234 218 243 231 215 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 + +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 245 218 216 214 243 236 239 238 222 213 242 225 227 247 255 +255 217 131 128 142 201 184 178 176 159 140 201 152 137 220 255 +255 213 119 79 161 186 156 136 126 146 159 99 121 141 233 255 +255 211 133 155 159 182 101 123 95 120 176 150 105 158 245 255 +255 237 181 174 157 213 74 79 89 84 179 152 8 79 222 255 +255 232 161 152 61 196 94 103 168 79 87 93 78 149 238 255 +255 249 192 89 40 140 94 120 100 69 149 110 129 127 232 255 +255 249 169 94 58 147 153 151 98 145 141 12 81 212 253 255 +255 229 118 91 121 200 32 81 132 143 104 65 83 140 232 255 +255 242 197 183 180 215 134 186 96 110 206 187 176 189 240 255 +255 211 135 162 160 189 146 59 101 54 149 162 162 142 214 255 +255 213 118 78 160 175 55 96 83 112 159 156 79 127 216 255 +255 215 124 119 135 188 136 138 141 157 179 134 119 131 218 255 +255 244 215 213 211 239 225 223 224 213 234 211 213 217 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 245 218 216 214 243 236 239 238 222 213 242 225 227 247 255 +255 217 131 128 142 201 184 178 176 159 140 201 152 137 220 255 +255 213 119 79 161 186 156 136 126 146 159 99 121 141 233 255 +255 211 133 155 159 182 101 123 95 120 176 150 105 158 245 255 +255 237 181 174 157 213 74 79 89 84 179 152 8 79 222 255 +255 232 161 152 61 196 94 103 168 79 87 93 78 149 238 255 +255 249 192 89 40 140 94 120 100 69 149 110 129 127 232 255 +255 249 169 94 58 147 153 151 98 145 141 12 81 212 253 255 +255 229 118 91 121 200 32 81 132 143 104 65 83 140 232 255 +255 242 197 183 180 215 134 186 96 110 206 187 176 189 240 255 +255 211 135 162 160 189 146 59 101 54 149 162 162 142 214 255 +255 213 118 78 160 175 55 96 83 112 159 156 79 127 216 255 +255 215 124 119 135 188 136 138 141 157 179 134 119 131 218 255 +255 244 215 213 211 239 225 223 224 213 234 211 213 217 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 245 218 216 214 243 236 239 238 222 213 242 225 227 247 255 +255 217 131 128 142 201 184 178 176 159 140 201 152 137 220 255 +255 213 119 79 161 186 156 136 126 146 159 99 121 141 233 255 +255 211 133 155 159 182 101 123 95 120 176 150 105 158 245 255 +255 237 181 174 157 213 74 79 89 84 179 152 8 79 222 255 +255 232 161 152 61 196 94 103 168 79 87 93 78 149 238 255 +255 249 192 89 40 140 94 120 100 69 149 110 129 127 232 255 +255 249 169 94 58 147 153 151 98 145 141 12 81 212 253 255 +255 229 118 91 121 200 32 81 132 143 104 65 83 140 232 255 +255 242 197 183 180 215 134 186 96 110 206 187 176 189 240 255 +255 211 135 162 160 189 146 59 101 54 149 162 162 142 214 255 +255 213 118 78 160 175 55 96 83 112 159 156 79 127 216 255 +255 215 124 119 135 188 136 138 141 157 179 134 119 131 218 255 +255 244 215 213 211 239 225 223 224 213 234 211 213 217 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 + +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 247 220 233 245 222 238 232 253 232 240 214 216 218 245 255 +255 227 137 141 158 79 149 127 212 140 189 142 127 131 217 255 +255 225 152 121 105 8 78 129 81 83 176 162 79 119 213 255 +255 242 201 99 150 152 93 110 12 65 187 162 156 134 211 255 +255 213 140 159 176 179 87 149 141 104 206 149 159 179 234 255 +255 222 159 146 120 84 79 69 145 143 110 54 112 157 213 255 +255 238 176 126 95 89 168 100 98 132 96 101 83 141 224 255 +255 239 178 136 123 79 103 120 151 81 186 59 96 138 223 255 +255 236 184 156 101 74 94 94 153 32 134 146 55 136 225 255 +255 243 201 186 182 213 196 140 147 200 215 189 175 188 239 255 +255 214 142 161 159 157 61 40 58 121 180 160 160 135 211 255 +255 216 128 79 155 174 152 89 94 91 183 162 78 119 213 255 +255 218 131 119 133 181 161 192 169 118 197 135 118 124 215 255 +255 245 217 213 211 237 232 249 249 229 242 211 213 215 244 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 247 220 233 245 222 238 232 253 232 240 214 216 218 245 255 +255 227 137 141 158 79 149 127 212 140 189 142 127 131 217 255 +255 225 152 121 105 8 78 129 81 83 176 162 79 119 213 255 +255 242 201 99 150 152 93 110 12 65 187 162 156 134 211 255 +255 213 140 159 176 179 87 149 141 104 206 149 159 179 234 255 +255 222 159 146 120 84 79 69 145 143 110 54 112 157 213 255 +255 238 176 126 95 89 168 100 98 132 96 101 83 141 224 255 +255 239 178 136 123 79 103 120 151 81 186 59 96 138 223 255 +255 236 184 156 101 74 94 94 153 32 134 146 55 136 225 255 +255 243 201 186 182 213 196 140 147 200 215 189 175 188 239 255 +255 214 142 161 159 157 61 40 58 121 180 160 160 135 211 255 +255 216 128 79 155 174 152 89 94 91 183 162 78 119 213 255 +255 218 131 119 133 181 161 192 169 118 197 135 118 124 215 255 +255 245 217 213 211 237 232 249 249 229 242 211 213 215 244 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 247 220 233 245 222 238 232 253 232 240 214 216 218 245 255 +255 227 137 141 158 79 149 127 212 140 189 142 127 131 217 255 +255 225 152 121 105 8 78 129 81 83 176 162 79 119 213 255 +255 242 201 99 150 152 93 110 12 65 187 162 156 134 211 255 +255 213 140 159 176 179 87 149 141 104 206 149 159 179 234 255 +255 222 159 146 120 84 79 69 145 143 110 54 112 157 213 255 +255 238 176 126 95 89 168 100 98 132 96 101 83 141 224 255 +255 239 178 136 123 79 103 120 151 81 186 59 96 138 223 255 +255 236 184 156 101 74 94 94 153 32 134 146 55 136 225 255 +255 243 201 186 182 213 196 140 147 200 215 189 175 188 239 255 +255 214 142 161 159 157 61 40 58 121 180 160 160 135 211 255 +255 216 128 79 155 174 152 89 94 91 183 162 78 119 213 255 +255 218 131 119 133 181 161 192 169 118 197 135 118 124 215 255 +255 245 217 213 211 237 232 249 249 229 242 211 213 215 244 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 + +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 245 217 213 211 234 213 224 223 225 239 211 213 215 244 255 +255 218 131 119 134 179 157 141 138 136 188 135 119 124 215 255 +255 216 127 79 156 159 112 83 96 55 175 160 78 118 213 255 +255 214 142 162 162 149 54 101 59 146 189 160 162 135 211 255 +255 240 189 176 187 206 110 96 186 134 215 180 183 197 242 255 +255 232 140 83 65 104 143 132 81 32 200 121 91 118 229 255 +255 253 212 81 12 141 145 98 151 153 147 58 94 169 249 255 +255 232 127 129 110 149 69 100 120 94 140 40 89 192 249 255 +255 238 149 78 93 87 79 168 103 94 196 61 152 161 232 255 +255 222 79 8 152 179 84 89 79 74 213 157 174 181 237 255 +255 245 158 105 150 176 120 95 123 101 182 159 155 133 211 255 +255 233 141 121 99 159 146 126 136 156 186 161 79 119 213 255 +255 220 137 152 201 140 159 176 178 184 201 142 128 131 217 255 +255 247 227 225 242 213 222 238 239 236 243 214 216 218 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 245 217 213 211 234 213 224 223 225 239 211 213 215 244 255 +255 218 131 119 134 179 157 141 138 136 188 135 119 124 215 255 +255 216 127 79 156 159 112 83 96 55 175 160 78 118 213 255 +255 214 142 162 162 149 54 101 59 146 189 160 162 135 211 255 +255 240 189 176 187 206 110 96 186 134 215 180 183 197 242 255 +255 232 140 83 65 104 143 132 81 32 200 121 91 118 229 255 +255 253 212 81 12 141 145 98 151 153 147 58 94 169 249 255 +255 232 127 129 110 149 69 100 120 94 140 40 89 192 249 255 +255 238 149 78 93 87 79 168 103 94 196 61 152 161 232 255 +255 222 79 8 152 179 84 89 79 74 213 157 174 181 237 255 +255 245 158 105 150 176 120 95 123 101 182 159 155 133 211 255 +255 233 141 121 99 159 146 126 136 156 186 161 79 119 213 255 +255 220 137 152 201 140 159 176 178 184 201 142 128 131 217 255 +255 247 227 225 242 213 222 238 239 236 243 214 216 218 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 245 217 213 211 234 213 224 223 225 239 211 213 215 244 255 +255 218 131 119 134 179 157 141 138 136 188 135 119 124 215 255 +255 216 127 79 156 159 112 83 96 55 175 160 78 118 213 255 +255 214 142 162 162 149 54 101 59 146 189 160 162 135 211 255 +255 240 189 176 187 206 110 96 186 134 215 180 183 197 242 255 +255 232 140 83 65 104 143 132 81 32 200 121 91 118 229 255 +255 253 212 81 12 141 145 98 151 153 147 58 94 169 249 255 +255 232 127 129 110 149 69 100 120 94 140 40 89 192 249 255 +255 238 149 78 93 87 79 168 103 94 196 61 152 161 232 255 +255 222 79 8 152 179 84 89 79 74 213 157 174 181 237 255 +255 245 158 105 150 176 120 95 123 101 182 159 155 133 211 255 +255 233 141 121 99 159 146 126 136 156 186 161 79 119 213 255 +255 220 137 152 201 140 159 176 178 184 201 142 128 131 217 255 +255 247 227 225 242 213 222 238 239 236 243 214 216 218 245 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 diff --git a/AR/marker/seven320.png b/AR/marker/seven320.png new file mode 100644 index 0000000000000000000000000000000000000000..bae9926ac2cf5428ad13766aa3bb9cc459581bf9 GIT binary patch literal 12825 zcmeHtc|6qX+yDKUMh4kKWv3{zq{YsZq@pO<*A5buCCkVXP!`R94P>W`^r?(MqnYk6Pq>%MAo)PR$H6FUHa z^U%Tl#{odWf1&_pE&OXXplt~N32JeV^(1J-_*Uz+>hrMJop{eHW2CuNdgtNw=D0&bcI$5pZ<9PMEdA`#VT|O< zn&YnY$!t3PP9?RTo;z)wF}D; z3Uda46U2T__^GA;muZ}pLjqcF_dL78tKrPFql?yPO4&%d^@9WXMPumR=6f{+#UmntV7Ls<{G9w#VLy%Jr(^sK2LE@WXU)11J@F-zQ%>dk zBvOceopwUqq`;B`;F6ClNbRdf_kJSN{ZIM8U#}A*b(i~M!61ts_@c7N5aq?!dttDr z6w7P3V1Y`JBuFh2nY;#^ujm04pJp>f1a&=?6RD|>0O*l@%zRkMJNDG}Ctx#N@kVR2jTGD@ ziuH)UR#*r)U2a6V}X>@XI{9Z z4(ecI1lauOe(8R=^$r1X#Q9;rG=3Bg^wqk>0SBV=#-OxvXbBA=6pv`!Fbd)}q6z$J zD`TSe2tIX@2VZaNn`np!&Zh=si1oHy{`x@W6;myva>)QH;tJdxDuO9|-)V�Qoig zwJAt_y8K8UO4|CTk#7XxTJVU9t65l|PXfe0eU7@mF-rbNDf@R2>rc=>CB^}jfj>_- zfSWF0B-G$ZMPfUo;7MyNgVAt)9Jm3ue>XO&5D$=pMz7((Y&h@-k%IXhS7p)$KguKq z&(yt!=Z>KQqDFZ>Q2tgdXnV@&}GH2&I0ldZ?!yF#` zgMcpf*XMooSY$QVg`d)JT&)zZG}rJD6eh3z-l?vT{vp*QPHF z_!K9T(3a<^%V(Qij1gP!*8-&CPJ7Lo9o+2`qPXtnw2=8OA8myS*4|4TilYP?Y1-eW zlwZnoJnu2;-N$2Ynd`z`iO!j$yjoAWTrt&cz3Lq&{MyP_N#W8l`c&>ZwX0Y2$ zs6z@w5al>!0U8ey($1nYqb>59(V2o{VtyDb_i2HLPyi_Q(OoE$H#r@rQ6^EoaT@4M z)@SUda6t*+BD)FMI$(BY7m}r4ZXk+!zs5RZ8yXLI@P+&_AmQ`l-M2uS6zM(}GK%C? zC!9dGRt|)2d@QQz?^}VJPNy}6q@yg&owDqeDrZ|fn$op>TqsoxI^|jGQ5#Fb?3pOT z(i3B*fLm(@i>uxCC?Uy8jeb=&-Etw};v=y3WyP2vwE6f|`H15d07Gm=Cuy%e2vnNB z`i))#=toAYo`UZ6(rgvLU(kSoV7W9Jy36?jd1&@rPy~2&-JAc$)$IdN@~xW980^M; z>-%h2g%<5`9=zClIU`As!$F)BPtng0ny$q4(NsykrnvF!M~y3`N+Dy0qy|;87L`7! z%4n4b@_Y8O?e9ixzHnqDoQLDID41eJTI`ed$nXnOfd{A=XVOY4{5nv;#*|J(Cf_0a?XY{|_+@nPKe@^OB!d%|H{h`zfvL9o4M0aHP#qyBS zwEaT0P-A7-TTz^E5S5Y^#CV_-;zmtv3VxV1U-(jdvBuz9hc`D-OA%%AEaEYz3}`n= z7Lo!(_3rf&P?uOYu}>xECMX0NrOd6<*5?RraVWV7>TRGZgf?GBb&cce!I48A46$xB zhF32koLw!2&O{9owqURh=LZ_4nOe|{hQ{d4VA_oA=>gYC*5 zl>Uov{!bSSO*1{PNvYc(kMJdRNTGkZe!6Q~Dcwst-{HbzOU+EUD=>ZjJEzi6n zJWaau7b8cTk9=m z;Bef1-(YdXa^42iT|T)L*{WTlGvFF0kq!fhupnNi*l>ggfBct;9qBNWe)E(Z2j~*U z(|sI@&ogNhT-B#@U4;*p-oUGgS3Pzepx^HQ=1`6$JM9q5mE~F9e^)kKX@Xqw6T3|J$7#EJ$62PmRfq(I;3Wut2=V=w;M7b zlBR$^zAaVTymWNoFpId9;H(khUOk8{fVXTQD z?&*|u$6lmn!l4ipm`4~}*!Ace!e#Hi$B3)#K|3-LRk6N|K zs|Ws)Vh$@HSzcQkl0Q`7JWH9jKcLoa3L3o6SAp|deei7o=1>U`GYGFcTneZ| z1axOR1}hAgIB;GHr0#9!!@H2JboV6wXDFB7N#jl1*{J3;`Go`C*sU|=UECjYm&zG* zT1D$o&2#O2;jtA<<2e=b`7h3UG~D(m&#oA}VL05QyEu5W0?MQ?d3P4a5vx9&LU|{f zamQw&Ug(J5-UR_m5ROw85OE5Om?!HII!XfSI!HeGC#H^VOxQ5(~zs z8QI7D|C?229KB6DCg+us>jjCRbrpOH35 z?FpK$ty2hMcN}7&HxXN8H&V(co_I`jQ%r80uOKm8Rw=yG+}x$I|BN z1a(L5_>@Cod?>ofIxJq#hm%Q@7QRHg&a^Q4B5A6WtfP9a^NAg)F-_AjSzc^<8~zt( zGZ`MdTnbG<60AIr(T)PSM^k`SgL{_~9_=`{;yhS@#t;j%SnXoKx@$fKuQ9~&tL@TtCYk28-lg(_|)5ico- zCDMY{!w}K$Effv`^DSmLTLon6%0Ss9ZX`i0bfJ&(6~@o%^i#Uqcl|z* z;xO&`eszrQ_oL$(?7+BxAK}7aPnUVvY&fK*)6uwVKKnS5#`^{5G6*DWiDjJD2Nn5c9S#>;C-G!HBePN4r4&}xnORk4Bw#xX{q$$^L@kmv3_+n0yhP zsZ{1Y!i)D_^f>LOig;kir*GQu<6Wv)W*R(0i)b|lIx26+t_XXKDppJuN`=;m?X@kb zDU@GR7s`>Dm6{%&JhzJ$Zhd~sz~h`J;{^I#K6Ub!Vz;^gai97fq?^V%Wgn&NI;Xx@ zIJE;buFW9iU5sWNh_1uwI16F#Scq!<{2^i%u5FqIYAFqLtiQ^5%Ax$N2f4((`5 z2(f@jzt<~>nYsv!lD2dM;Lfj`jJ_Od9Y*qoWy zUMkY0bBBmN={)|Vh*VEORnkV+JID41bR9XXH)q{e&$~9c#|zh} zKH`h(xiC_z@JF;%{UcgNOeA~>>c1*mu3%G=+ijW$4P0=n5Eg&Y7VWS^l%pg@@!}JY zDTD;a!mM;18fvH>^Bk71 z>ZU%Mk*q@%1%k*{w7Hua++r7uyD%eueJ~GG-tB9i@cg zFV7^yI2^l<;Bh2Bi&DRdjX6vFaJL=aag`WFdNJc#$h}A4FYSO95n*R_U_Z^nl zmeqep-A}X#(^w0zbVC>?hHOZlzG5y5gsW9QI-`{1N@nBakPWUue0cBY9vx z?1BZS(6&s}?8^c}-)3vvG!cszAq3S&sI~DW0WdWz2-?v;tNF9VfQ=GJ4utJ9D&{V*>m2`SD0qnq&X60E?oD@N}{2|n3LD|rdgj&`pMk@M}dZ9=ep z^^{3HxU*r0o0I)^CxCT}PFNR%_kK={4e!@*YrRi9U%QRtliW(!Qe7;hLmm>u2B0xC zt{Ou@pdz}rCKp4D-?(uH7lKme>fCF-1%x|_1oJ|)b{ys9Yz_xRM{kIPP8B&Jk;8}I ztIS2fK#SjosHw=q0S695>p`~amEUzUHloA^R)@2=SfjkUz2Ex9Y0q2AT-Ga>TaoLP;Tp#rfjf7JkLb53(*|^D zpYQ28gg}ffE+qwSpOl@~U5k33K^oo3MjZV$NI(L7{Q%h=BMfnwKI22Iq-Sr0eBB07 zZw3mTsavtb74mb+(!G${a@~knrkOQBj4Lx$ZH><4v3$@6qX%T9ZvK^#`tM7w+BTTk zdKQ?8tU6w&==b|^Iv<(D8p+gHd$&bUmo`YYEr0o;6#(8g=39XC@2Yh?%f}v$uQ2j^ z?`eMK?yN7gPYyvV3o~Gza`t%F)%m%R&Lg&@(R~CT<+15bgTu2>@ysIfv49axa+j-n zvk1!Ma?VFblnJNb1xb`iWA2;iY?j`51F^AKUHZbN$ff8_wE3xtMvaMF3X?aq0!h2o z+w3MoBoaca=m}LU1(OSh{il1he+BE> zTX%Qbw%Ua*4*6(Lkt#|*K{VJ+dz2pN4$%r#;9Tb2Kn1yvKFY`_TjMiV9_ZAvC*AZ>WJ_z7grfB7ECANIiHK91gF5Q5^lBmJEY$i~SaDH<0Wj%7eX z1+tK@Bw=D2Pdfx29(D9-gTYUIm8yhATA(W*KAZo8$Q<;M*l+Q`8xl3FXCdQ7f;g(O zua`dqm9m0qz9&vq@3uga>34O9Q=H0WGlI{%gjV=Zjr&u&%f2iS)`W0>XS)Wzklv4@ z9rYFt+%|$`ZbpMXcrp>*aEBL`F}!^qzHX?3W0wZ%Aq329YLsGr5;pp9AscQ|)^^GO zVYFI{FEoIqvkJ`5$=f@i8SNPJ@H+RO1S6aP`QpDl4Td~7XC}z?P3u}{(WEq~kKCa! z19e&3byUHmd{Rb0|5cB=Bn2PsKZ;>0;Sn&8^)!VT_gjqp6Memd*lyJ>atOG$DCX(| z_KRklj($U~UH^)bMgKR9-Mp2AUJN^bV4 zYe?5g$unzd)nzO;MGVAgQl3Y^+MzXrKHGaFDw2@oVu$vPc!_poImo|G67XXkiZ>&c zi6=*^O@?q#i@O;?3cbeZ(RwBqyLOZUYi`yV7-YgXh9y?MjE`!;D zJ@dKQERK@{6GfrfAb~z}G$TE!!Ab@^&{lvfVNO1wyy8o(eB{{+9(i}uooAe|_us6q zQbRDYzpiRz7`DEQcS?eC$ z6R-WkN>6=88Y7~DVc~1DKrj3(JUv(=4?`Xk-9#A6yqL@LoU(`cUc4-xGuqOB-2+1c zqyy9!Xk1QJ7~+S^v^-<5Mne!b4nRTrQ~qCf63U9@rwY)M|th8<64_c7?dbRS{kuk^DLnk0=NFqI6KJc#8r{+eV|+H(;-rPq;KMGtapjev#=7 z&#H!9?F}=Zh`oV{rx(Bsr)I4OA0BR!#ez#~U_|db%?aNkp1uR0hH=53!q3UfX8KQs z{WOxFj`1@X{2z&)UNYeOEA(jn-t-{K#xrB%6FST;H|t{yGoJ5n&1K*VE}7T)YTurk zw?Y)z>SZCY`s2kzFgqOjEFb&r<@zqz%-Yp$rVsN3e7k-eg?2o?d`)`w>AEr}WJfr0 zX1uGfi&GL{`Lw>OfA#S?#t8BsMz8G5nCS>X|J?4UGXD`%S=NnaCEz9!?mhtU&msMz K`=9J{y!0Qo;tBWw literal 0 HcmV?d00001 diff --git a/AR/profile.html b/AR/profile.html new file mode 100644 index 000000000..9dc790823 --- /dev/null +++ b/AR/profile.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AR/profile.js b/AR/profile.js new file mode 100644 index 000000000..75fab1791 --- /dev/null +++ b/AR/profile.js @@ -0,0 +1,27 @@ +let datas = window.location.search +let words = datas.split("---") + +const username = words[0].split("=")[1] +const belong = words[1] +const tel = words[2] +const email = words[3] +const twitterID = words[4] +const githubID = words[5] + +console.log("success load page") +console.log(username,belong,tel,email,twitterID,githubID) + +let boxname = document.querySelector(`#name`) +boxname.setAttribute("value", "NAME:" + username) + +let formbox = document.querySelector(`#other`) + +let form_text = `belong:${belong}\nTEL:${tel}\ne-mail:${email}` +if(twitterID.length > 3){ + form_text += `\nTwitter:${twitterID}` +} +if(githubID.length > 0){ + form_text += `\ngithub:${githubID}` +} + +formbox.setAttribute("value", form_text) \ No newline at end of file diff --git a/AR/server/server.js b/AR/server/server.js new file mode 100644 index 000000000..a8af774f3 --- /dev/null +++ b/AR/server/server.js @@ -0,0 +1,101 @@ +var express = require('express'); +const fetch = require('node-fetch'); +const csp = require('express-csp-header'); +const router = require('express-promise-router')(); +const { createCanvas, Image } = require('canvas'); +const QRCode = require('qrcode'); +const twitter = require('twitter') +const fs = require('fs') + +var app = express(); + + +app.use(function(req, res, next){ + res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + next() +}); + +app.use(csp({ + 'img-src':['data:','images.com'] +})) + +app.get('/test', function(req, res){ + console.log("3000") + res.send("3000 is fine") +}) + +app.get('/qr/:query', async function(req, res){ // get QR code + + let requesturl = req.params.query + // console.log("request url is ",requesturl) + + // let requesturl = `https://api.qrserver.com/v1/create-qr-code/?data=https://google.com&size=200x200` + // const response = await fetch(requesturl) + // let buf = await response.buffer() + // let base64 = buf.toString('base64') + // res.send(base64) + + let result = await makeQRcode(requesturl) + res.send(result) +}); + +app.get('/profile/', async function(req, res){ + console.log(req.params.name) + + let url = require(req.params.name) + console.log("profile server") + +}) + +app.listen(3000, function(){ + console.log('Example app listening on port!') +}) + +function Test(){ + console.log("test") +} + + +// QRコード生成 +async function makeQRcode(url){ + console.log("in functions") + return new Promise(function(resolve, reject){ + + // canvas準備 + let canvas_size = 400 + const canvas = createCanvas(canvas_size, canvas_size) + + // QRコードの設定準備 + const segment = [ + { data:"AR名刺\n", mode:"kanji"}, + { data:url, mode:"byte"} //alphanumericだと怒られる + ]; + const options = { + width:1000, + errorCorrectionLevel: 'H' + }; + + QRCode.toCanvas(canvas, segment, options, (error) => { + let icon = new Image(); + + icon.onload = ()=>{ + const left = Math.floor((canvas.width - icon.width) / 2); // x + const top = Math.floor((canvas.height - icon.height) / 2); // y + + // 画像を載せる + const ctx = canvas.getContext('2d'); + + ctx.drawImage(icon, left, top); + + // 出力 + resolve(canvas.toDataURL()) + }; + icon.src = './QRlogo/pattern-treasure_100.png'; // 上に載せる画像 + }); + resolve(`${canvas.toDataURL()}`) + }) +} + + +function \ No newline at end of file From b4e8350c4d2e1e46491120b1b2028d56ef7d66d7 Mon Sep 17 00:00:00 2001 From: seven320 Date: Mon, 19 Aug 2019 16:06:53 +0900 Subject: [PATCH 12/12] test --- AR/.DS_Store | Bin 12292 -> 0 bytes AR/.gitignore | 3 +++ AR/server/secret.json | 6 ++++++ AR/server/token.js | 19 +++++++++++++++++++ AR/server/token.mjs | 11 +++++++++++ 5 files changed, 39 insertions(+) delete mode 100644 AR/.DS_Store create mode 100644 AR/.gitignore create mode 100644 AR/server/secret.json create mode 100644 AR/server/token.js create mode 100644 AR/server/token.mjs diff --git a/AR/.DS_Store b/AR/.DS_Store deleted file mode 100644 index 2dea7c7296894466d15b7b2ae16e0fc11eaff180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12292 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