qG&60{Eq8|O)x>`6QzmW&HUMt#t@JK+as`aStpILmDb3v(RLWZ@J!?wyCO~b
zXSI7iYnotSmZ>TNlDDes+Bb2EbtTQ)Zs3KwnquL2S{$Rh1sONH6}tm+!^CssQ8K$%
zehx^&E(T-GZb{fHgg@8IX|Z01<5jPxm&O%=5lQUr#c+2~IyF&dj3E-|MHq80p(z#|
z>D0u5_>9hB8C_gnw_d^JkX?X`X#b*gFJNxRrw`%^K*asz?_n6`6h#@T6$KBG7zk3X
z_Yj$U&(MwD@7`en<;w@_hu4no99zc^`*>l17tV0$V7*tKJJ~$h>@D8y&s&3etB=Eqm~xr&;ro}KHKTGh>(WqLy(GT*Mfz&=enVRyhh5z+*AD8p;7S8>W{
zpZLNy%{M)Q*9R<0Js}87_&Sb4E-<45K{y5mjs?Zzz!Z-;(};MS
zU`~i@Vi-LkQtmoVKz(ipeJ|%C&w}self?(4rBup9l}y*w%2Sl7V^G&
zG$so;@nZ6@A>)Q+E=L~cw>F@$V1o5;DyZlYCWY8aaUth9aQ%-OiMKu8mLyH&i}riDAXmG0QC@pjnK@IqvcT~Ma{v)YY_b{#OV
zsML@N#oMqf^OroamY$WpAPy7D$dGhAtK{h6l*&89x;Fs1i3ojll$_zk(+Nd5L}08l
ztV(;O@K;tXtF+s2yxQ$-Htz_G5G>qaa9_1-dZJB+Aj8Tsjd&-@)Zjj|AE2=5h5wOoKs09*zPu^lLw~n}<_cxwduX
z^W7bH+ud2(UK*k6-%)kHHuvS({`|esRdq`Cn*qi@
DzdKE#
literal 0
HcmV?d00001
diff --git a/RSI/__pycache__/urls.cpython-39.pyc b/RSI/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..aeebbb9f5e550a33aa284b977eb7579081ae63f1
GIT binary patch
literal 1014
zcmb7D&1&2*5SG2(pEyYy=nLq!F>GxbdRm(P&^9y>dPv&KvfwC|c2|of8A)yvU-LA5
zp5A=zsjpBdbfopdwoqtgEJnl3H{X03k;B6n!MgqWf;T;czPZEh8o=Qt{N@5Sie`ug
zG%N!V&ceXiy|O2wStR*0L}cAxd>;6Cv75bTk&m%Z7D?p>iICQXP?
z{PFSv7fLSpvev|MCGkROe0g<_E3MY7uxT8BSTTHE>#`!&GA+$DF1fK-tJ*Sy0l{Fa
z@F&hbn-rfxx=@;7E&)kwFsqUg!?0m&8e>>1Yb!I&GO7xb(lwDwwJldDkujM)O;0kb
zDqfh(1!qv+WbxZuA^^)wu9ld9^R8=5};
zq>FbQxCVAQgj8sDbvzzVy1rIQunCq#u+y=#$4UIUB*r|xfyU?#>fcx>yJFfANj>8&
zop*rsKWtolN=)uRj*~waoy(%EDVIwS!Pj%Gx!c|9bMA$~Kn1SH#j@iBFFGlw8@V>u
zkvhS*B)iy&7v-PX-jr&Yfq>geW9RU=<0Of{!$6}XX#0c;E|aj0oZ{`Ui*5$qpEVCj
z4RodDg&(D?dGx!(12z!|n>8aRuOt3G*=vV+4Qvj<&AAcWQYM#I>nc7LZ$4KEMr
z$hjlKEo&o((eCdI#22L9L-pGa{AM~AvMT16#1MK%bPn%j?tYh-R(I{_nNYMY+4BIB
R%mHlC(Lr$3I|$(W`3t|=Ikf-)
literal 0
HcmV?d00001
diff --git a/RSI/__pycache__/wsgi.cpython-310.pyc b/RSI/__pycache__/wsgi.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ca486370f37f10a2f8ac01b09365eecf16815b48
GIT binary patch
literal 519
zcmYjO!EO^V5cN7~Q8^Z2QR`B#O|>)Mt(FPq!&^&sICk=GOz|C*3#*1$;t+ln9pU~8ePet
z(az_D_lg)AbRe`PvSwQlXbD_Gw{U_*ZGYn`WmXcTNZOya#7LfPGwdotqv(d(Df@p)OCU0h72vWm249i-z#5(i+{+M$gpH7Z!hD-+`FJ+>dr
ubqm~vzYj*Imri=AHqu=Z+txdLR8$X;&XYsV!?zr1sAx!2
z$qqT*=Qu)6M`51KjzpLuqrG03Wju*Ook-E^8N6qPA(c7OL>RJkc0i>t;EAIBgyTJ`
z5S@Y6ncDGvCL`ssVJKp`&=kqkN8vy69{K}$q@~X=xjFMc6!ZC#m`{5zi#mWt~uW(hWxn6JVyfOH*QI>nz@%638^S67F
zyC%i_2v7&cO>IKR)T)xo6iT-a#5uiPwh25K|KBHIeQ}@l=Xpe;6W~f~g2W*i3g`HWOxNmYr#8dh5xf
zNB;)N#s9;LQbE|0A|AXcx%K31($Egfy!Yn4_kG_R=JVPbL2gZVYT`Xc=vNsmSLM=~
z9XaO%;;4r>=AOho?5r=n)bIHi0Up(sEmw9_zw(zJukagFZxLbSA@HY{sou)OYp$H0
zlh@r=o5orVL_!BTr!Tv0n&o-~u?+}mTMBP8ZNN}F1iC0@QnDinlo`rss`;^mdlJSV
z>6qnWo>D9YPWye9Wm3e<3a$EmhxgPmq&f#Glp{;$396L?7lsamguB!LkfF7i*$P9h
zV-xTZQ;A+`igg--3Lgd!!l6E~I^>W^JxM{?@Wdn{B!9{gJ55~NO29_tU35)GvAOr`
zNvCxXb@vYs+nrW7dU3G#>iPcZs+&A8V69MzX;zDB6gm1RDm-n9n+p*^?6e0ZWbQkX
zq6%s(a;*yD8aWKuv9v|~8rw%SE7e@A?{2+u`14)12ifGJw!L_}M|s1QxW9l*=#IZW
w#`vFC#g*AQ!sIu){{wmN$Qk*LHol^bFPp)q#y9l%XXEyH~4POq2#Qqq1`Q^rx219oEn$bfow{_7-V%dUdw2uWhFatu6cmI
zLVN7<38}bNn?M3|Vf?OciWqYj&FrSykHw
zAfpd8vnsjkWnuRuL|(Ix#K%B!b$(*`_bTrXV-Uk!_gq)pKtnKK3zW^
z;?ENY-YZkMUMF-oM|#c!wJyBeib!(Qo-~j(MUv0~vr@G+A;yOiW@4#*IM`wPMe1gO
uoA8(Q&nBg*^2x1mLas&4k#f>_gP2t7&^_Od^8$BGTo*(8MVB7ZWBLy|qMx1s
literal 0
HcmV?d00001
diff --git a/RSI/asgi.py b/RSI/asgi.py
new file mode 100644
index 0000000..c8f3879
--- /dev/null
+++ b/RSI/asgi.py
@@ -0,0 +1,16 @@
+"""
+ASGI config for RSI project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'RSI.settings')
+
+application = get_asgi_application()
diff --git a/RSI/settings.py b/RSI/settings.py
new file mode 100644
index 0000000..bce8cf1
--- /dev/null
+++ b/RSI/settings.py
@@ -0,0 +1,155 @@
+"""
+Django settings for RSI project.
+
+Generated by 'django-admin startproject' using Django 4.2.19.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/4.2/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/4.2/ref/settings/
+"""
+
+import socket
+from pathlib import Path
+import os
+from dotenv import load_dotenv
+
+BASE_DIR = Path(__file__).resolve().parent.parent
+
+loc_ip = socket.gethostbyname(socket.gethostname())
+
+SECRET_KEY = os.environ.get("SECRET_KEY")
+
+if not os.getenv("RUNNING_IN_DOCKER"):
+ dotenv_path = BASE_DIR / ".env.local"
+ load_dotenv(dotenv_path)
+
+DEBUG = os.environ.get("DEBUG")
+
+ALLOWED_HOSTS = os.environ.get("ALLOWED_HOSTS").split(',')
+
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+ 'corsheaders',
+ 'rest_framework',
+ 'app',
+ 'authentication',
+ 'django_filters',
+
+]
+
+MIDDLEWARE = [
+ "corsheaders.middleware.CorsMiddleware",
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'RSI.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'RSI.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
+ 'NAME': os.environ.get("DB_NAME"),
+ 'USER': os.environ.get("DB_USER"),
+ 'PASSWORD': os.environ.get("DB_PASSWORD"),
+ 'HOST': os.environ.get("DB_HOST"),
+ 'PORT': os.environ.get("DB_PORT"),
+ }
+
+}
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
+DATA_UPLOAD_MAX_MEMORY_SIZE = 154857600
+
+# Password validation
+# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+
+
+REST_FRAMEWORK = {
+ 'DEFAULT_PERMISSION_CLASSES': (
+ 'rest_framework.permissions.IsAuthenticated',
+ ),
+ 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
+
+}
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/4.2/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_TZ = True
+
+
+CORS_ORIGIN_ALLOW_CREDENTIALS = True
+CORS_ORIGIN_ALLOW_ALL = os.environ.get("CORS_ORIGIN_ALLOW_ALL", "False").lower() == "true"
+CORS_ORIGIN_WHITELIST = os.environ.get("CORS_ORIGIN_WHITELIST").split(',')
+
+CORS_ALLOWED_ORIGINS = os.environ.get("CORS_ORIGIN_WHITELIST").split(',')
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/4.2/howto/static-files/
+
+STATIC_URL = 'static/'
+
+# Default primary key field type
+# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
diff --git a/RSI/urls.py b/RSI/urls.py
new file mode 100644
index 0000000..44d04fe
--- /dev/null
+++ b/RSI/urls.py
@@ -0,0 +1,24 @@
+"""
+URL configuration for RSI project.
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+ https://docs.djangoproject.com/en/4.2/topics/http/urls/
+Examples:
+Function views
+ 1. Add an import: from my_app import views
+ 2. Add a URL to urlpatterns: path('', views.home, name='home')
+Class-based views
+ 1. Add an import: from other_app.views import Home
+ 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
+Including another URLconf
+ 1. Import the include() function: from django.urls import include, path
+ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
+"""
+from django.contrib import admin
+from django.urls import path , include
+
+urlpatterns = [
+ path('admin/', admin.site.urls),
+ path('authentication/', include('authentication.urls')),
+ path('app/', include('app.urls'))
+]
\ No newline at end of file
diff --git a/RSI/wsgi.py b/RSI/wsgi.py
new file mode 100644
index 0000000..043abda
--- /dev/null
+++ b/RSI/wsgi.py
@@ -0,0 +1,16 @@
+"""
+WSGI config for RSI project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/
+"""
+
+import os
+
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'RSI.settings')
+
+application = get_wsgi_application()
diff --git a/__pycache__/helpers.cpython-310.pyc b/__pycache__/helpers.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5bbcbf540e47ed7efc413eb0cd91b7cc20a6c2cd
GIT binary patch
literal 1093
zcmZWo%Wl*#6t(l3%nMCXL9{}!p3R6gLa0(JAr^#3cUF;cV|SY3Bvacd3`$q+7JdLB
zwGx~D2Vda@8&>@VR$P1fQn`|yYy0Nj<8zPe;jo9mUVZpI{S_ee$1QGJ1dBBoI)jNL
zjwK@Q8%SIRB*4xOWmrZe!srF!5s!}%k4114l9&&8!aK*9Bs}HaV?;W<$NTV2Io?F$
z;W^|)*%;g9H*6}hrrZ_^yrN>JsH-z<@!Q;m+%yb}H5mECW9nZFdHhs4l*Ua}MiloY<7oij{&=+oQCsc_W=apme`sa&e+M5KHb|
z{R>Az&FPFOR+3@KK7)Ia_6(^31pDdl>c-P8#Wdq{rncT~zTDasawe3X%;qYFs04;i
zVM#1})k^??(VKFrbp*j4esAA-}OJ=6lgBh2wv?D*xu3YrbM<2iDAjZJNsRI3oIoFHMV%chQHU=q-#
z9-bD)_VZdcW#tt{?p(#touf;2&c=3jm>yRDsJyuQY3E!T8zJ=7vHOp(w_tA6W)82sMRqUmZ
YK3lws=kBW7RZP(UfQ-UklE#D1KYZN(*8l(j
literal 0
HcmV?d00001
diff --git a/__pycache__/helpers.cpython-311.pyc b/__pycache__/helpers.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a940fd3249012668993d3410b8292db1e7cb78be
GIT binary patch
literal 1559
zcmZux&2QX96rb_OW;c$@Zk03*AKeO}MoUF1)N*Mls7*>#0V|-u!4z4}&SdN0k7aBZ
zQf-9~ITR^ETu>qb(jHJ~6%PCn`~lu-rCK9#;*{H>a4Hwx*c&(5Fdjd@dGlt*@ArOh
ze%19!1nryUf7^dZ2>m4n2TdI*`=5fcg$N?pL5BEB4t6C&!a|oF*;Nb$BMB`dqHG|d
zQfWsIB9?T>EVynTl{9m;}*&N`a_dnQVt1ZP0R#gkS~#y8U!=M!Zvot}-~7Z0l)
zENB&Af<+`oj7NzH4=@4KTA_DQ7k9@J(SsBpZ#!VxEzI}jt_=9$W<%zcHDZM{v|Y-}
zg{Fmmo6)w;T~?HBey3v(VT{Pn3<6@G
z(!X8YT#Rp|wb>!U>KmDOpr&R0hgwp*1burZIdwko4?js}F6P#L`O*Uw{IqKPUXIQG
z@+8Nmi+XU{@g|`zM7{&e*)7=f+t^sJf=F}4;tnQ)C5otAHS|NvVXwd>6R81H#cB(V
z01p79a)wGkL$0-aCvv^4+W3jW$6SrP7B4XxL{2zPoE)~6<+LIvyA#-}aK>qPgV#aC
zDAi}4==H~Xz3273-#_c0yEZs?Ez#?J{rW(^9>0@nweROQ-%hmpwv{OL3?@iwv)QOH
z$TQ+|aByg@LM79$eD=ixRPyNhVFFEFC2N+~_7}*?0$dK%379CryqE=vvutL6m2)F2
zTEY6KBu15zv@B#=0?3J3lOZd`0~h&50NiBoQ^e@V7-`?W_vX#V`~BXV
z-z;k$aO_?*{9hG-zol_F^rc`PtBFMY#a*tAy
zsWCZ$$__Aa2n9!>#8Ii@XjFCdo@VQ!ww5Jn93E|TAQKeTEj-0d{9EjRqTRA9!f@Tl
z3z_SRdDjhNngvo{aNUnHFDPetRjzH!*5VZ7J$K9FUMQ^4yNT*_+q*EqSa?`pyKwEj
ztCz1`XTcWZ$;wub&!N8%6;zVrD7Il-JKn!Me)`N%TOKbief|!w9|pCj(4h?=DUkN$
z3W^;_4^e`g99$+P>g_nX!FcMXu^akfhjLoU#|5pjq6MIf#@%N
zp^pvg+xn<}e$W`q4L%({dG^lx!^SyujEwWQ^?y_h`pc~K-!75(-(pzDop&II?yMZp
zF&zqKmXqD-%+E7TQcjg+jJin@*}1X+G}(Z98mC^sPvaDqz@w|`btL^rF#=%}nI|k2
zW;+hDFe=(c9Gk_sn_1Kr70!|@NFT3>5}LLbw6maSZT>u-A)7d{QS@PKHTJFM$ZGx=
z{qn)ybFUAr=AL!2|Hjy?e{<&cYrmV#fj88e1sq6Nt7TU?vIt@s4@})nY(@4-%s*Pe
zR-C>bT%smwwChEkc!h4PV0W`1;j$yjZj^OdFjd^9BeF8eP`Zbo?k
literal 0
HcmV?d00001
diff --git a/__pycache__/helpers.cpython-39.pyc b/__pycache__/helpers.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..aa626db2ce2150412bbb5ee1448629b5bc6c7478
GIT binary patch
literal 1089
zcmZWo&2H2%5ccG6vwzhVQA7)ZUiY%%j1W|6CB!8_dy9%JH}-B*^0T#_(naa1y}}D1
zq*mh6_uvh<`O2xUz=?6TY^&nP;~9H0^Ue4(>-ReZ$MLUM=}(7{-`2Q2JTx|Nst5%q
z95NEy)yW`tVh615W^V4q9+20Bd)z-G+!xNN8~eP+1Kv7=IN%{~pOLu5JG_f)$YF;J
z`&Sr~L_;w5-?52^s(epK)Y5|Kv@9;c!286y+#Z0&22S-5g&;9-5<47Xmpie?ZBh?I
z`)06NDP86_;jV0RHdKA6-PT71}3DmV7Z{wbSTYBUS(GAQF>UhY399XLQOW%j15|j#0f1dr4#uog4Az>DKezyqG4t+e|S&W0G#~yxH9s*;Gh1n$Dz;
zt^rPEMF<{#&0gZ7{cqSiu#THJ)dLiooI_1&sGSS<+_@kpZtY^x5Di_^KHy9Xo#w)X
z3$3fmi4>DkrmPrx#+wNyjh~l=-Zw61Gvis;8{o2!Sfa%Sz0J*+kk+BaVj#djDN(kN*KRszww*hyQsT+Rhsen4K3sEDnvmbfDoR5
zTtof8=GrU`=EtbimdQuxEG->ztIa01!PrDZ
z8#eHi(59P|S(O(Jzv88Z4;@!UVge~tmFc_qm*@BsmL*lzJOs=1>#h$#uG@@m6h*_f
zTtYow#Ws1=^S-W&eo7p>%d?Z7-EKtW>KPzS%aCkVAkZA;iV%0B4YqIH`-wc8b-q?Sk2?*
zMe5gr!H`q~&!av&>N-9rk#t-~HpqM+2xXq*JE0U*I(1GY4VS{=H%(Njw&@aul{D42
z^+btvkcm@^#ZIz+Jj!SNb7`A8@r^bXK^B&?)eXwwE;SC=A`J)GN`!>O{`aksMTZYjyv}NL5U9AlC^|!J(+yAR&
zs>khckD`8<8iuFYQr>))$(07oX9Je9ZAy`yRSBQ{CuD>j2=~-R3JZ{|;wv
NpKY0d_lp6A{S8-<12O;r
literal 0
HcmV?d00001
diff --git a/__pycache__/manage.cpython-39.pyc b/__pycache__/manage.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2927cf79600363ecb7131db12066585c61b78f90
GIT binary patch
literal 801
zcmZuv&rcLF6mC1SKSUrL3=vPgku`C|lL;~6hTQ-L7s9R~Y&L1?w7V8&TGDnl>;^oD
ze})G=^4EBut0(^jW1_FSkZ`a`zs~f1eeZi;%a@iG5R4y#7awm3LO;XL{Q-OE4NR8+
z2-HUc3zFeJo~@)$L?q%bs2|B#RL+QfDx+(Jksw{vs7_zDPPrbLbw^W^=Uj_tnbMLL
zUS-Np=+IcoMXt1R-g2+Tl6vmWT=ENwp-vj`ZUiAg>NZR_0PyG(e|T@9Sed}R@{tVnYy>@*5BFx>w5>I^jNHVPF}I^}
zgUrK`yhv}5T?FdyC#}ta<&KL9=k__+H<%|&&L?G@bERv*a*qHIS;hpf;DF>WiOHYG
z6}t@kWu39WWUNssYm5n#GG=3l*ardbIGX1Y0-@|ZSej*cl^aoH@^yG)Eg`kg5bJ?=^*+sh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o2DW#VV#Ku{bfM
tGO;KoDA+S5v7jI(K0Y%qvm`!Vub}c4hfQvNN@-529Y|v_6OdqG007cV7>NJ?
literal 0
HcmV?d00001
diff --git a/app/__pycache__/__init__.cpython-311.pyc b/app/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..d019d5bf624f2c9c12ec74f44d4ce002160472d4
GIT binary patch
literal 131
zcmZ3^%ge<81oiH}(?RrO5CH>>P{wCAAY(d13PUi1CZpd&ryk0@&FAkgB{FKt1RJ$TppfZp_#r#0x12ZEd;|B&9QN#=s0{~F2
B8Vmpc
literal 0
HcmV?d00001
diff --git a/app/__pycache__/__init__.cpython-312.pyc b/app/__pycache__/__init__.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e585a3fa27d82b170755d24a99c4c437de1844ed
GIT binary patch
literal 119
zcmX@j%ge<81go7mGC}lX5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!5_7hS2@3X%Nh~Oc
siI30B%PfhH*DI*}#bJ}1pHiBWYFESxRK^Iz#UREg`kf{M%bnIQTxh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o2D7#VRH@uOK-l
wD6u#(r82Q7J}B5TCb6I(CO$qhFS8^*Uaz3?7Kcr4eoARhsvSu8XCP((04n$z;Q#;t
literal 0
HcmV?d00001
diff --git a/app/__pycache__/admin.cpython-310.pyc b/app/__pycache__/admin.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..cd8ac1be717ab50474728df3dcd4c57a3b426572
GIT binary patch
literal 165
zcmd1j<>g`kg5bJ?=}tiUF^Gc(44TX@fuanW
zjJH@5Q*tx&{4|-O_)@YG^V0M6lJoOQiZYXmKnAR2C}IXuVB(jIi&acfVsTTZlX-=wL5eHBWBM=wM0*MdIjEsyo7!)pGLq%*r6#!UtD~kXC
literal 0
HcmV?d00001
diff --git a/app/__pycache__/admin.cpython-312.pyc b/app/__pycache__/admin.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6ba60a10ae688b9048ed1893c0135595cd996e00
GIT binary patch
literal 163
zcmX@j%ge<81go7mGM#|*V-N=hn4pZ$0zk%eh7^Vr#vF!R#wbQchDs()=9eI8O~zZS
zi7C06d48HqxA;=B67$mY^^)`RN{TX*ikN{4Rx*4Bsrx1DY!wp}>=~0-P!I#wpjS}&
ji^C>2KczG$)vkyGsD=@Ui$RPJ%#4hT_ZSq4*nk`WU85ug
literal 0
HcmV?d00001
diff --git a/app/__pycache__/admin.cpython-39.pyc b/app/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a101e308572f27bd9818a9b8677d9ebb90439526
GIT binary patch
literal 168
zcmYe~<>g`kf{M%bnNC3ZF^Gc(44TX@fuanW
zjJH@5Q*tx&{4|-O_)@YG^V0M6lJoOQiZYXmKnAR2C}IXuVB(jei&ac+UO{q9P-1an
nN@ZeEd{D4wOkzPn4A>04g34PQHo5sJr8%i~j6hwVftUdRD*Yxd
literal 0
HcmV?d00001
diff --git a/app/__pycache__/apps.cpython-310.pyc b/app/__pycache__/apps.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8e3c71606344371de344a29d5a657e9a75b8d9fd
GIT binary patch
literal 386
zcmYjNJ5Iwu5S{gIkQ0&yr9()xZhQcQPyz@4e)z>eU^2~D%_|pyHD;i+Thj3?PfU1Kf@jngdkYRhTJL&+~Mw0UpplK
Whi*OpV;7!pueNo#Qj5VH2nc-`pp6I`
zw1BiJknZB64)DTf6E>330W`Po0
z;x=~tjH!~_b7Fri9Bvmq)o)1d8B#gWy4pPKUUtsA>?u!Vg?DNQl?+xybxxC?wX7d3
zjM}oaGik~-Dl@CJZBt81+2GP><5H5e(o`6&^GBOGk4M{F%3l&)a9ZhzxP<-1@4ed6
TaCZfN)2#3=zkd8fsmHzmmH~1@
literal 0
HcmV?d00001
diff --git a/app/__pycache__/apps.cpython-312.pyc b/app/__pycache__/apps.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..71dcad53f7eed616e4e5da4f128e0f1f65221c07
GIT binary patch
literal 408
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
literal 0
HcmV?d00001
diff --git a/app/__pycache__/cityandprovince.cpython-312.pyc b/app/__pycache__/cityandprovince.cpython-312.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..34938e6568c58997e8870779e29b1ca0875c4457
GIT binary patch
literal 35270
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