From 52078d7ee08ba1566d795b2b6af3fe6b5de966d6 Mon Sep 17 00:00:00 2001 From: sainw Date: Wed, 26 Aug 2020 16:01:13 +0630 Subject: [PATCH 01/22] config dev --- .gitignore | 1 + .vscode/launch.json | 10 +- android/app/build.gradle | 54 ++++- android/app/src/dev/AndroidManifest.xml | 38 ++++ android/app/src/dev/google-services.json | 40 ++++ android/app/src/dev/res/values/strings.xml | 4 + android/app/src/main/AndroidManifest.xml | 2 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 8760 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 4526 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 12725 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 24893 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 37342 bytes android/app/src/main/res/values/strings.xml | 4 + android/build.gradle | 3 +- android/proguard-rules.pro | 7 + assets/logo.png | Bin 36541 -> 96138 bytes lib/main-dev.dart | 2 +- lib/main-prod.dart | 18 ++ lib/pages/home_page.dart | 101 ++++----- lib/widget/right_left_page_route copy.dart | 23 +++ pubspec.lock | 191 ++++++++++++++---- pubspec.yaml | 4 + 22 files changed, 401 insertions(+), 101 deletions(-) create mode 100644 android/app/src/dev/AndroidManifest.xml create mode 100644 android/app/src/dev/google-services.json create mode 100644 android/app/src/dev/res/values/strings.xml create mode 100644 android/app/src/main/res/values/strings.xml create mode 100644 android/proguard-rules.pro create mode 100644 lib/main-prod.dart create mode 100644 lib/widget/right_left_page_route copy.dart diff --git a/.gitignore b/.gitignore index 1ba9c33..c4c7ab6 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ app.*.map.json # Exceptions to above rules. !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +android/key.properties diff --git a/.vscode/launch.json b/.vscode/launch.json index 0f0fd6c..62ecdbb 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,16 +9,20 @@ "args": [ "-t", "lib/main-dev.dart", + "--flavor", + "dev" ], }, { - "name": "Flutter Dev2", + "name": "Flutter Pro", "request": "launch", "type": "dart", - "program": "lib/main-dev.dart", + "program": "lib/main-prod.dart", "args": [ "-t", - "lib/main-dev.dart", + "lib/main-prod.dart", + "--flavor", + "prod" ], }, ] diff --git a/android/app/build.gradle b/android/app/build.gradle index bf27151..6002305 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -24,6 +24,12 @@ if (flutterVersionName == null) { apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + android { compileSdkVersion 28 @@ -32,20 +38,53 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.mokkon.fcs_dev.fcs" minSdkVersion 21 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName + multiDexEnabled true + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + + + flavorDimensions "app" + productFlavors { + prod { + dimension "app" + applicationId "com.mokkon.fcs" + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + dev { + dimension "app" + applicationId "com.mokkon.fcs.dev" + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + } + + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile file(keystoreProperties['storeFile']) + storePassword keystoreProperties['storePassword'] + } } buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug + signingConfig signingConfigs.release + + minifyEnabled true + useProguard false + + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + debug { + debuggable true + } + } } @@ -58,6 +97,9 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.android.support:multidex:1.0.3' + implementation 'com.google.firebase:firebase-analytics:17.5.0' implementation 'com.google.firebase:firebase-auth:19.0.0' implementation 'com.google.firebase:firebase-messaging:20.1.0' -} \ No newline at end of file +} + +apply plugin: 'com.google.gms.google-services' diff --git a/android/app/src/dev/AndroidManifest.xml b/android/app/src/dev/AndroidManifest.xml new file mode 100644 index 0000000..d269aae --- /dev/null +++ b/android/app/src/dev/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/dev/google-services.json b/android/app/src/dev/google-services.json new file mode 100644 index 0000000..c6afa35 --- /dev/null +++ b/android/app/src/dev/google-services.json @@ -0,0 +1,40 @@ +{ + "project_info": { + "project_number": "944560757353", + "firebase_url": "https://fcs-dev1.firebaseio.com", + "project_id": "fcs-dev1", + "storage_bucket": "fcs-dev1.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:944560757353:android:d21ae04e44e82f10fa60f8", + "android_client_info": { + "package_name": "com.mokkon.fcs.dev" + } + }, + "oauth_client": [ + { + "client_id": "944560757353-n44kricufdgign6ki6eu1fqvh7ppa29m.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyA3v2o4UqvL61fw8sVHer6pYU9tGiBagu8" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "944560757353-n44kricufdgign6ki6eu1fqvh7ppa29m.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/dev/res/values/strings.xml b/android/app/src/dev/res/values/strings.xml new file mode 100644 index 0000000..7fc4de4 --- /dev/null +++ b/android/app/src/dev/res/values/strings.xml @@ -0,0 +1,4 @@ + + + FCS - Dev + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e26cdfa..b7eb249 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ FlutterApplication and put your custom class here. --> !P}7OYgm?{^~~;dT*6h(V{K2QzEFP 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 AQ2+n{ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..cdf697f1378038727e4f7289c30acafef063f5b0 100644 GIT binary patch literal 4526 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 literal 442 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 literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C zcc@hG6rikF&NPT(23>y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..2b859873f7466adf291ec381116ed3c0418d1e4a 100644 GIT binary patch literal 24893 zcmV*(KsLXLP)gT@;?4__k^9@+03$J1SBJZ0sUsa)&3!zUWu~Y5?We1rs(Pwk3IBWjZv}2*1*Dt! z?EgOczZJm$0Q5f)+|&yEzYd_%x_5d{XYS! z8(p|RGhnU+6!Z6?e-;O#lB@}V!vsi4|D-kh{~f4GvRHp+u$bpo9BAlw=I`Y<-+a^7 ztXVT>e0;n!CMG5-CMG61Ha7NFMNz6-t=3AiESCq6WU*Lk0I*%*qJ4ot;3$AJP1DZ% z{r)qmsvdK>Tu1Wq@-Ad%W)@^+Wx2L&+2R^AW{l4Oj0v`Ip#A>>Q2*@!x{_6qTeN7Q zeDcXB;}8`iHG5Aw}2y0CII*&kFm^ z(cjJ2f0dj2Zvs#_cVWEu2p0Agk5dy0ooJX#tO{l;7`P>vFkf zo;Y!0tXS95ixbqb|^oc{&@g#(8z&8k(a%HMX|ZEd5XqB`2`b^=Z1 zQeU0l@qoInpZ0paYxDE-SM1rdXLY-F?amo4j;v8}B>i_hn;Sp$pBX^K0%z*fsb#x& z@BX;c=^Q|yktE4^+#E&`Lw<(j>C@#3$B4I6eT#KryTf%IntP$+Q7+DNaw z@=C;@L4&H+s#R-9baeEy2Cwm?oPm9G;^Tsdrzvq*IK;W?7?_YTO^y#U?hY#Po zefxGIAuJ z`v52nU`B6d)b<|-(tjF2;qFR)_uY4+@4N55HWe#Y{6dnXvZZn>{>u-d>-wd$XU~qB zGG)q|*I$1jOUcFra)IWn;`%eML1P{BbL4yW4CQX_&C?O%?Raus)l<>dT6;?pgw4<4s zneRXO|5UAw*(85#L_NbTwmTY#eV&BEmn z7{)oN|~hc17SFVn@cOCjLVHK@7{2{Qj$=bz~$}6v|pE+};H^ildqWpI~tv?Dtq2M9QW4U}U2zXw8`Q`XAW5)a|A|j%*BuQ5i zZ2c}5S$I&xqU#da@<27Lj*0~-Yp`hkIvhWo4UbobE(OS$1*wrl?n;wkv+Jl-B?fIf zG(^7v?NP2=8Gg@y(hHl{r|Y`Ue-j%U?vOTD>Y&(O@pQb9*-CM_8rGJ|4zYsGE@Ir8zxA3uKP z%$e{qNU47L?*X7t%VSx*cyaZ1?b>}vmWRl5sh<5c4;B{H>J&q1@Oa!fbs`Jmp-1Rip27PdIT&y&USpou}dRSfER)02tS9gG@qX<8)EGm8Ae;;w@;}tTy`e zZH2~n)PW&ihAgeA(4%)t+||4u5)+(IDC**bVh|z01Ta}S^LUgQ2omcc{}TURNVtuB zQV4hr*p=GzM8rBjKmXfLKmByf|NY_ZkTs#3PZ?x#L>DjQ;NM@(!kg1)wUsG;v!+ONRWB8=>H6h6~wL1priyO{ae7NVcjp=v1aualu3+3kDl#OwR(9- zly{V5$Q-s6TD+nzFdS4jk0lE6v$L~5N=Qg}4*-#BvqR*jK~!1*V*O6XjvXD7Cr`ew zLWK$wZ~n5c;|PQWN#%Tv7639c3$S6sZ4;UL6c{Qd=6!ib!24ZV8_gd$DIhr-U4KdL+NU|=h1@RmcYz!iDk7DU4 zs`Ghu?Adh$smr!u^{Sn?l$H-oqf{3WaSf6jfGqh@uWm(j>UIb2Y10UmtCWMHD27$j z*)kP=M+q01# z2eiRmch^Tkq5}#=SGrYrnai$(z(aslplcE?T*|<#SwCad@?AJ{$_3SHg|3hrBr9jQ zMM;H3)=1Y85#>Xj`sFcTP)D?F+YAvAHYkd?kD_($_ggxuo%wvewUZ}Leq`jxk<bCWJ=-GTdWQ}jqUO$>`(AW(^kXHu`z3x;aU@fmGJzuyP;u#E22xUf!Th=Fk(sVT zQz^7IqpNV9LE*fx8#;U_o9smQo-NR~-#sW-K9Q{fh2;!0S@0QgLru3OLVV)b#HrT( z@+-cd{4l z!f#9I@}j)FynprU*YCB|)YSZ&4exIRK;~zd_fQ}C$&)8XRH;(si_(33O!+U>qv+1k zO`v>?%tSdoJqH`t{ffD>R^rg%OVCsspc6?payd+p>5M2bXt*t1@Q&yhEADDp3;hPQ zLxTp@5MdVuQP%sIk`1N^ib0I&P@-n$^{Cjt_ax@cT8p)7b|Wv3es6^GY!NkZ*~4&g zoF*_5lXUJ9zn7MfK<-1iWC!{UXoGG&TcSdxcuq>vdrT>bz>=A2xRKjc?9-~BI(2GP z)v8s03?bEK$)m)Ncd-V#1fMR#dp2#_bVrjWO(xTjf)af8`rcx=DB+37?Py#r-??)? zW=&s)UE5B=T_8hef*c|ZV=EKFbtpp9{jfU%XmDFq3>w@8P421(XS5B9MA4PPmg#cO zOYX|gAW~Hcr%q*JAy?_wBRkUzO;e!BWND1AGrgrGNO_R7vpXf=6eY?OxyiZ@Ry$Cw zdKnBI(G9KcX@tZwP7$#Yapz|=G-|uPCA`wRX(+_DZQCAb-n{vao8d#(3u*KHtm%33 z$tUAJ_~3(aPN#E3>0DOPqcGPnxQoZF;>h7MSh9E>mjApNxtSVd*ag=y`EX(WPB(@Ei)4YYLO#fplhW**2C&(EoHppwuMHYC zu7&7WJ4cUf(I{#wWq#yxxqkf1U;gsaq)C%*xbS)-01CRUef#$Hs9n4E=f8&lo~(_k z2cQOYoH}_Csmr%u?dn}Pek>EJpQ0k-40IDoh)3K*pone`Ews!o#E%M~VT%_9CIafRPxQ{wxGXlsB*=R|1&KP1_YvdM91(W*YW^=N^H zjjO|Elc7k$t(E4Bg!%^$9(<}^y?Ton%{LI*Uk`vni8HODT~*bCvMeW+=0%yuBJSWS z@M7hPt(ZDxIZmI-f#0V?BYCND7epv+Ttdj5AJxmWRG$|A7Ul4PS5c&L#NRiV6#<}T$#VR8q(S~lln&7dKgAg4R5vsZ^ zwI$ayElp9B+5qTDBoKv84!P#{TrYs=>Mgh2a*JcjmMwotN=kb5n%_{8H?ZZPn;GDR zbr+~Ob1oB;zgvJ6%eFuZL_*>xUk7A*>P7NRqEMR5J4IcZ!Y<41&``dD6C>{JjLuzK zz!61Nb`=uwq#*bVz)&sBq)O1>_o>Lp$j6Fh+c0IyVx(Uz0PEgZ%3)lH6yR*Nu2Yhb z!ftOcYIDX)XnuEnJoeZC+)^zWvLX&nz+bv#6Q+E>5T{RN!sDiL2@!hJ_Y%?9I4vOP z4*felC^}RnP`IeujY4io7WnG#NlQz6zge?pADlRGf)b3^ zm8C8zfI^A0ZRN_9jas*EJyTH>n(B4aFOIHM4PIY><)o`tZo|(%Z@{^;xsXYF#st(b z`TVEJB@CybE3jI0RK0~1gSVl3kGoO1N^(%66C}qW9LYRs4JrbG04`n3#+FU{@$=$M z*tPQnygm_;g?ycni53<^qlk`NmF`D;d?fB@aw|G_Z;BQz>%$op!8Nncm!<}A^5l6e zU$zx1SM0>mBkAyZL=If!fJ|;gZq58!^9K!aaaOc!)qv9ujT+ZPR8%A^iULX0S8nR1 zY1+9pYt{^I-@ZNdn}wD-idnIuUsaNCFG8Gq_3GvP_StJ8}GYCVW0sL^7NKrvJ>$yTEecmFb9&wxd(m+tIDpU8r8IA|fLrSuiFm^puBO zq7l`RIT4meLP5R<8#nI4{CVr}>-JM9aFI1oILIzaSg6KEAv*Cbg;YhbSOU21_8REh zuQgkq_=HH1p;L%ku~s_d#nGG(KA(mY$I`K6;a1FisDk?7IuPCWETZ^Xwtg%!K`mzt50G3lX)9{T%&1q*0i5m_NKOMTU&mlQxIakkEy zHLGs#-o2+z(j}WQY2rL&=LqX# zwhsvqncS$5*cq$~QBgq8zD@De=pl%YD>VSY@An^>KY#wPfddEb4+-n9nHwr8fH-U? z;(Y%6`Pa&oEBBYu0*|@4s;a@`^TQT=<}T`SMh;Cqi8! zD|9UY87s*?#P-4qFH{^iZrrw#&gThQ3XQ^TIv)k9q(Ej@K#L}FD8a=dQmaYG%kyB< zroH&~+j%&7EE9g8D2Q_I#fZF$JGHXO~KCkPd@e#g8|<8F{LNe=Yw z+Y0>$wMY31u||^7QVfYEunH^9t6|>VYu#lN>bjoy(n~Kj`RJpMs7_`!Dw?5cu_(RP zq3Pd)*5~Zmv#(dEP~nx5;$4W+CFrUKzpO!FcO*e!>8N;Ex#Yz6tI(HoC=DHHX<3*v zb2V13*oCvFvpJgK_XR&=F1;}Ifj3CC87a@%M`CvKa`NoJR=vdA(@SWgQ8L5opr18U_#Tgxed}6lD&|oEIzLH_3ef zsw&bIbd18az1FQ3Z#{SJ+}Mg0E52J&D|EG^7Kyw*{`li6Pd)Y2T&vYeIfD|s$Zm_Y zo=OdSo_r|TnXo4&05*qsT6K}E=OmknBjd55%q;!SogcuVgJ+PsY&+Jj{uLL_yDm$p zQS>X!7+DgrkfH@gLdDAQh>nTExwC0pKhsD&&jNaph$QhC^F@QKiv%Pw@BnV9UWSv9 zZQD^2vI1;YQ7sql%DCZ%{SY-TqspcES(CJG&2Lz~bO(Ojc?5Yb53%~7K3klt8F3Xh zC(?CCIW1_`yf(UZZ^}x@IOaO0l?w?Bf@%Ztz|pr;r^(^Nr;v~ki%Jy}uTr2b{ucWE z{)3-?{&~OWpMU;TNOI9w)XP6}EdX)ehq%w7Lx+afs8M5_EXz?PK#zEfZcuquh3oV_ zq|N#ovDK;|p-mqkz6t`e6;`O6w-uG@ka`qHNuq#By5_uGFOD3#fT=&Oz%OgIvfP3y z+mNhKSwCugA^%JO3JLv#A+kw`jmtKQtZedi;xalU-4APo58Zp+g}(hdp$5A_tN6EI zb-r)~L{7-aFjJvdm9cZ@5&Zk>x!AYo99+37RO3MkE{bV=xVTHXEIL6V?q1wdJrR#S z-V1j%ua7c`QLqrtDYhO)sRS`|N+cyMxNtrT-+#XV8#nF5{rC4q-+t{lppb&R?Amuu z)3p4fM~}W#t5&U_Lafjg$@G-~6l#5}_uqei{HLFOIzBcwcF46)A>VPE3*hJW9K#C1%pp;oN?0Ny@xr1JUTvf_Z1 zTnaz*MRhPFgeP}LE`w729=C?0N6uo_tW{XMW(RV!{k-tv$>z3*V3Czmaf|_l3$41Q z!D7)+wrnIicD@6>`?f`;DrI1`nGuY+;2}$7&}z#kUYyw zakQs3lIY4m$ zDngzKK-t;Z(_&*|JC^LL3k?BxK5!ec3h&|H;Qjas#9lm#fUJSM2`M>!76~r94Ze!? zVZVD2oOgAET&6r!i&6YE9(pq=$m=iB4J7VCQHg@=oE&V~{2OLYOU3@*F2d(gpfh+x zjY*gw0+qqDWDg=70W`m>9tI8WjE0SB!Vx8Uy$YXJT82>9FDxJ(!{gR*_|R$0nY|LJ zsXLI9<%6V02)jwC09ov_BDjqSL_fP!MX{iA)j0I&-vZrw+>PY234ETUfE0NoQwV1~ zg+?xutaw26BkfWa7SCUg`SaG}_z4;*ZDaAi$ax71ZBZnQexbVoAbOx!>~vkXFE=-L zMQm*BPy;}rmHH9`h~3xgufJaHAOHBr#_QfbfP<`X0F6ZK#UuQCvLze@8ALXq+u)5% zg12S^Slaf0y-6o1&a%*DVaP3Heb|l{W~O=YlSILuhJY&J!r3gWPTh`_xhrw>cm^by z3ZbUEGDM~p9~w8VhCcmTp?UL$h)am#C*Q2_n>iifs)YX8%sG%1ICDB3^XIKW>WW=B zb2Me{SqWQV0W`B!NaF^@vSlK<+|s2-b5yHV4iORdVD3mfAO_zt9(Eq? zz}8ekR<;W(mT$qrc^hzG-)ZJOf*YGcHIc2S_gWSCrU69TGK?8Brp1^sV~$_Vja|tC zahC-F=+|F=eY9c2h96!Re8XK>&;pG_?1iJ8NYqIBU^M8-r0kP)Xfp8w3tSQ9;lHg7 z;`@()Qn?la5i!guteku_YfNTjS;#Ocn;r10xNspIQ+`;8#f!GW?Gi0Hvf@WdIg`DQjwo}}a^r2&XznJZJs!N^T= zDTY~>4;HH*cQmev(W8f+i(9m#Eo56A1e+(!Mazua^<29 zA3pqp)9Iwa2-o*2)&f0&n2X1tkXw_`m$ z4SMx%4ToJwR7C~dbdN^)gAZh8l2v%U8V`V=R-wt?EriP@8J`mp6v|@}kE&QH2_Cl( z=g(*H!$sF+vEZgH5S@<8qC#B5e|1@69_;@ShvIKJR>trnPbjXkin*$iKHW-hymH7N{o_4l1sn1JSAZe7;j3fBbRpS6_XVCVZInu_8&u z;s9hO45^9J|&%>Rq0q*+9 z%E;#)v!55Q#hKHYP<=LNB;#ONs+sjREER*_B)?unIc4#>{E?LC0MjfK2}5IC=8q)0Hb% z{_72G)>e!Q^GtZ0Es)~3AU`S=zU~9y_1U3pNI^{Yc~}ELz^X#gR8Vgo6KIWqW#m9q z1sPF^P+RszLXTmPE8Pm%oPuO?F;xIal}PGty1HvXpTm73;VSa;{n)wV5Wf6k4i4{6 zgQl9YRS{l`Y>ZetktPs{NCGSsTkF&HZJKxb^yz<8ty+~*IHXoI-B_^zDiXdoZrnI_$&w}iNKQ_E=(?@XRY1uo8zOclVg=BL;qs%Xf$hbTr@;TRfQ8he2-;IL@&+%Z*mCJV^FONQNZg3b%j>XXm zCzxrlS!LW(y)1h5Zi%klS|F)xltIc(J&~~(p|TR5{sDNsKAbvpk-JPN33>JuiT15* zo!QOnIxMn|xcEr4ZhIRB3~qyZw^b4{4ld(RibThoZ+wBd(|57PNtRWS2Py>s(K%kc zc=6kA-MamC=gyruVZwWZ{}rxq5&ko3)Tjz?zy0>4#Kgq**SZN;`gbwhiBj&A2in7V zpqTT=5wHc|x5WU%{svo@d-+LH^E2W5Z5@2e=fHAsJ8a%eSh<8@!azhB>^Nuyi!P(U z9)p6a_2K9=9MN~)13j)BblGM^YvgW34(4hw@_PMPwsajPeKr#pFZiLVlmRvrkVXzk zK&WW(l(gC9E5xHq*E`XFU`LcK8x6Zne3mVbS=0?$t-{g;MNt{)*;u`L8>UTNi4#ZD zII0u6AdxMnd{BfPsDE2|-2XriG`XubqMQyU{oEM9r$g(Y<*3rAr$ z@51P+Gcz+&|Ms`PJ^A_PpVL;Im+_#`wKZc&BG3_I$BwP>^wUpIbvPWgZVW)?j6sTK z0`MH(0pEBc(Wlt5xSY|D?tK%Ho$iBXkyzAaQB`Q^r;xvSG2ClX;5>5x5k3zTvz|mx z90ftDh`p$(&#xD9`#o^9?GJmcJ0V9>DMDsTM-RTxwu?m%2NShNpEz+2OP8$2 z@}=8x?z9U5x|y7GGP_!h#zjN;6&-6qvlcZmU{D7%YE%mmcB2p*R56-abfW~p5t|Uo zlZ1BXj)N>y`DM*+_-GO=*Sri}lwox$R*pfhzAe$GUptg57jNj546el&A-YG%N-=<@ z?-nv%Il#%vXI>-#Q6^egs_Q9bgx+tr+kNP>&psRW$}6uNDXzF04j@ze6Y<@5-!;7N zzWbKSvg{}w0BwVB{3t|UJOxG9kQW^b>4CQp)nSBiJ1P|^WcXwik~;_LnPYHoUIux? z0z{lU35ynhMWWmX^?d0}uIVOAq$ZSQ_>~A0BvplaM@K}p=>vPU29PWyx-ugeqkY-9 zVv&TTn@Tk@>ICtzY-IV;job;6mgWa^nnWxLt&n_BEPga=UXKS(kwu74aKNgVR;LKT z2`(9roq?Ch@ZLQqv0&aRY+QE$mo9jrs$AJKhA@bM53#Wpbn4WIN5Rx>P!&;8wn8pd znC;}_6M$4z$6sHcgavc<8iUURu$TaP^yUGiX_|Y=lqp>weDJ|N1`jHtR15`>S#cxh z?^w8SVTT?)dd#>n@Q5cQC@5nKR2+cDAgaS~_}Qn+u+YE+`XuvO8lK>SesVYR=6wt6 z)>Vl1<-sCT*+54?k`SQUt0pqkT8l@B1-KoG=x8_gsMAt3XoxNGxN)$ft&)UHdx`7jHKN`{KMWYl$}6 zlz4=mE;Biw@?8pM&qzgfrViClN<>Nql64lDbq#J*sTPfwUwIHso7RCN$_|B0r)ZNj zOef{JjNFqXb7x4}r93?M%vkK+kp@i@TQN{i*)uPOBoc4J0@0mZxNza1UcGv)3?b6N z-m!21@vsB{ksCK|e7Je@=Csk-4Zf}fpp)#9a-(A*KR^H)0gcD05bYHSILiO9;7cXT z;)CwXg?rsX_?AwEGIp_rg}|P6XoO z*tFZI!?Q@IhH-hJqJ0fWPtQim+*R1~>tR%{Q4ziSw#O~i%W=o4uxd1}rTDE5C?ie< z-^`pG?A(4F-+Z+cdv+a%qS*PmIPXQ)R0C{^9f?VHwC#8s9)7G3lFG(HF*4&tg8;Ks zK_S14Kma&%CLOb8EXRzgYv3+0rh!mXC2^n^yWrtRjXcmz0%+5wO|Q0S(c<3*fQr<` z!U075hXJ&2-@do%)~!402GMgB3nTy}T$limC;`!_h)im*?8{-S#{5VQc;P#@AFi#d zpl(?K$LYOrc=Mnz+C($45nw|zwutx23OtGBfZOkZ{qCNy*K7jCnE;uq-hyC@jZ}=A z!@m#>h*SWkpUFjVlLtjcLD{XTNHiq2h7DmmsOiYfE5Pnwk74Pet=O>sHy(UNnJRNA zmB^T@h>fwK*#xrAqJ82ha%tAZI+J z2MIvKs8T8-4-UQyv)IHQ#NS1K82Nn7n~T7y1IS;u2;OxmD3fu9!9%>toSZ7DHmI_S zfF;0*Nga`Jm8%AClg^0i*dO-FH33BkD>WK2WyE)+A|iLe8D*}_o2=W+{e(~Opn8?4 zc!?$k3yvSVh#AvUk-B^b%Pd3(s$YzK;U|TT?L)2F>=MN^G$Yq! zjEEuYDiV!CtbbtNDf}>b5q?>{2iZB)Yi1Nv*~%CIvX~^=v_M9k>;`YgH!a-M<}K^QI#5=oUm2~?BI8f<9^D)oK$}GUj6+7_b_X}|P zbPiOWS7cf`VdbccmD+;Zb!v>^_jW^#8s)k0dHKswP#VpTs-__~s{kvOZNhio%*VMi zdC*j=!Q2Yd1Kd?Yv|mvS4s>&+4D-Cw($Y4SEn9Yg0U*)`nMC?B3&bHj0B2ra-YTcl zc@w)NUj;xqkQ*H@I8aBjK!pG@32v~|NKdek^FSpvAG;h2bd_3ld{7J0QLte#{HgQc zII# zAfn>{pmrnJq%G0xZT1&hjN%vgcc<=f!O6D~$bPQ~B^7TYU+ zB$toD;6WYHv)4T+n@rLaA=)i&l%$ZWitwDeNER(zhwmq+AS=xWO?5z54God(H3m`$ z*DnNYB0?)|08vRpmSq|s778Gib`%F7%KJEVU8lB=n|Kuipm9`86#&YKPJnU+3q+Y~ zPx=MO9v7_1m7v+9m|hbgNJk`sDB%`pXF(E_$(jt!>w)LcW_Z`606SN~nRO9%)eW5_ zv_`XrpL)8;x&(AiG`bZVJjpd6x9f+fdwRoGwgx1{#+>Bxv?EzP4e4pQSiE38=FMG; zW5?4ud=^>CLanu|sEAFlqUGInFlcC3)USUFY((B!0~OL1R3x_}GRrQP8^7*4g6UJ2 zW6kPc5uh=}+`($*;?3J)CJ05@!<2|nHU60wNs(AO7KkZB7R12O<~ z@+Q!8c@%bNtC2`FEs*KLhO-M322jW(=t)Z7@H1SCe?WZeu83^X0gAI6B+6JDg;gTQ zblU=y+o8G*DFj|RNl0qY9A_8c7S55Tndk^Py z63Rr2hCqW?6?U*1dwA$ZcdDk~)Tv9DJ9jOX|GWifPUk>VMTx_Nj;Ui3;4UP`g{{y+ z&QY2!%m7f;5C8>>s^J#scLk7l{3yg+q%dAXZgiaC!bXq^+%UtUc18foPE7$m`3v+o z3tV+?N7-JZV5!{+u!9pLYS?T^o=;?Hfd#`wcOYS7fne zF`$7QAt&ib606&g9akQaBi}_tt6p3X6;Y8%nCW%}uyxBmy!`yXSO-m+b4upX_mMtH z(+W^FITj0>oU13kuuo0em6e-WD1TQ&xO|`L#L;O zqbt&X7rLtO2Rk^s$cW(n3;>GOb^SzXTcA(?wZ<3}S} zcOyT-f;2~Y#CIJGXPf?z%T|VDAsL4Sx*|#vp|*lK1ObrHQ)4ZhFjeHwpUdDZ^^cPmBM`829!oR;kgKC? zHl45O9>w*t6Ay|if-q;RL~@Sb!G+yoSRl#;UDX27SPSAnr4Arb3o|WHEab}oL@tcR zuV~0!I~(#xqY+JEG7(aZs_!;Hu5vEs*Tglt{VHqO*WFXJkZ73f+K$ zT;v_t41ekzL~dOPM*(#-5WvKQGZKvXBW&;tcoDHfpNB+Q!g*tlUYi}ZKzJPFlr6MRav ze~DMHs(<<8{QoF`POv6AHztk&6xn__Bv!W@-4@)gqakngTv$JP77nR^^Et9AA}Hc5 zzNiHFYc_`5rWa!F?gBW<7_Eqfi9RY)a_2_3_iaLD^~pz6)I96 z8*P6;vQp!NtnDFwLpgN`KEI69CoW;u^p#k)WGm9s$r~8*T^?UU=PgFn1P6#38EM+L zL*$^seb;4v3|2+LGcT216y|oj{gIK8loQMgS0-MGL`SEmr!P-TOf0=bVh})Nfh0~O zN)P=V&JIHS(v8BVXae+F9qp*jDLS2ygtgq5Z7{J{ibgaA16943X|2Mv5`|(x{l23e5A}WShe8wpgJ^ID&g~ikx6xEwY%*e<%T&7GJYAiLw_-jXD zr%#`rQK?d;yKcbrm~l%{IY$_P@}lE_2mcOd$KeKm%w(7VP;Tl>*ghJK2+0SZRfo+l zbU=kQMhe?SP)q;$rAW9c)rP(My>PVb4#bq_%zz@%=sL0!*$Dh>90r!^UqAA8(`tf;lQtsP%YM?Amb%pMEkG`ws|th#21|YG@*)FZ#ON zEnVr~&8rU~(Z-12XI>~h0G&B=W^?7rl?Rs;K%9x*zkmOvI(6#Y#CDaJyD;xKQY4xd zC=T*NZzHN03q*O9++R{4k9`W!k_Uc^#x6|ke^NMeSF|tF6K;VT8x9;eu&{33x-?YP%tT+&0tHJMTefU@qiNHo zkC&zeDg+Ra>x^drMRpV%$eh~6JOAk_Jio3%&X`A#9LVG8?UG6shwwve!i-QvGM#vb z7~Mi85Wu4-a3@uSbX!~4n)imiUQ<{iBLPwmY6PG~u>SLTMCGIzyh@CPyE=fx&7A(z z3IQN5MTa`PfgG&<<)5ffKB^EvoH5qm52%z)qY4A2NKPByV#0^>P~b5$ z$3|tC7uIa;2@z|DSQc}#hiQQ>58F*ZnI96?*=iNV)S#g3COOcG6)XPQsZ*!#LaOn> zea1pbwAoO|dY~y&rnDb1V#E(OymuULRzftALeT(x`?tdP(MYa^5rA@H5}-W%4>;Qm zF{<%}0xvNmQG=Fo5*gDcz_xh_VskS1I5gIS_h&O6W|^nEn?sulSDzM}B(GHWD$pa5 zR<#b|2RsT#!!{_`y$P0oy@BYgGc4#Q(HiBM2tee*oI{@liUknZ0*!xv5pQxwx8JAc zVEKyAQMpPCcT9*ViLP3K*YCr$pHeaL;|1`ziQ5?=d02WNXi`O&VUR-x?aJje=?d== zot0#PNK{`MibT2>Q>IM0?|}y%NDa{g6)WeUGv}6O0?>Q!z1Q%$=boDv5fO1?qWUlZ z`3XSdM#6bX04O(>EKu3&Y3b-v66hy{DYkUtRrxT8qix5?i3DrWkTIDLg-?Tu(o&}^Z3&cd+ zv_K2s^^x2{hsU3d#Y-ljX3Zp_aSjL2kE!_d(&=g$BjkH_PlFkwR9 z*Is*V_q7CNCV+_PMLqrW)3?6$)?42tCMMq4KyjmY+_XU6eOurkKN8WGPO^Ew5`fG_ z;|-8W^CJO%-2*-26#QFO!@D{K^3k1$@#pa#JyeULI#lTFdf^<592_;<@xiG2uEV25 zL6x1b1+rmRz2c2bqGkAP4tNK@g6Lt-^X$bUF3iY83l}B;L|Gn>FB^*%PeAQDq$w&2 zAYZ`GGaWw}p8_9cu8Xrk=E(-ZU-Ur`fV>)!Ft?d9-dM^OC?g}|$Xjo{_26fpeMW6P zq(~%9wAtcZB-v_C&lU;apjQw*{CVNRLR}5#fiz5?nu>An5sCIPsrUGDuz1PG zs8uVu7z^abk5iW6vyTaIVh2RN%^|Z6!nZakVs%1jQ{kx;y1Ak`q2C8UXU?2iGkWys z=jP3uccvtw`e0vtjT$xLmo8oUW{ny(?!6%%WB`b50|RI?{2x7z=yU=QDH0PPKk^Q9 zAl*U*$xwb^jKvJ$1e`OW79J9md9vX?ydCbfDF|#>io}96*qC=1YCg&rQkMq_?y1^M zMNQ5^8zWQx{Tme9Zndouv&4-U&7~uBh3INq6d91KNyhQ_Z zAP>I(ZYjR_bTPa%<2uX&g@^4$+KmbWtFY&{kT9DmfS`_=uixZAAtd?+yE5o}jvhVw zL)Wfd#~eL+lm>2+7O2RUP@xZ*sY)~>G3WaA>z}ymuDf1VXr%h}zKqqOGJ+KFu>}e+ zfX=Wy)fJfl>9KdI!RiVj+MHmdH^C{cREjzURwqdGy@+*PT3rlV~3J&c?_RP-_ zeQY;kytzF0S!K6I01|@}d^W%mF!+!$d|N!nf{BxWo=(cgF6=LG4t?&*QP|XF828>> z13(Hq-W)7k`Uz^)7A{O2QwY7hemB1V?q^K;bP0S6prTP-QLA$K0v8u`8P3_5{${8U zg1SI)42xA%<8L+!Q&rW!dGqEE@4ox)e-@VmqVEa^kQs?_DF5$&|GV>u5hFgf+wF1J ziyt#9RtTWY2z)dW&h*oq56O2VKz{sPM70?l1|ZQ(ud)D(hAPNV$)ZS-AkHKPlSn{8 zcisnC^CEEZB63$uhrD?{A}*dpgeL$=^+Hlacup_Td}s{!HZR+-aAFjn$OHL?P!v`| z0O>M3-drsFc>-$IPBzB!76s7cZ-2%Y6PK_B3U>KlCE6-1S%j{5sM|7n`iv^QM6yaV zLCM$WFEs#pz258}fBf`(S(u9yer$t9cS1N4)6-1E* zdJj>p2NeMjnN3P2`n_H*PD(U}i+Bv5013B5XijnnDpXUrFKYovZWjuU?m_;BMX+pM zj>tXv*u1eP_0?K-U2vpH~o{Yn3TXj&$Yq zrimOz&|nPYq((w#bQH3)GuZOcFsstAKzVt2XGV`6J#_Nq$w$LNcoCHpV}VQnk;{sV zjg5`jvSrJ^YSpSmiu~()UFO1yTA(WfNQ}nK-mwkdL%R^$r9G6man_qcyQN#pM7Z5?!>ID)d0}X0O3} zZ_nf{1*oRw_2pmzS)f{1u|Vv?!lSU_L#yK5Rv{tc2aF#i@t~DSip0RdopJF(I*;L# zrN~kP(4j+zRyJ$a?D3qOoLr-+(CkXRB7o>jgG8EYVzXw=da!^0{$sA2NEZj7@sGoq zafT%p1PCe|qf>k%=zOg&7toWzJf> z`}Rz@3y4oD@c44EaOpK%*r!WafL6GnOi02rG<8^PF39ZV7rOz8$@kPIB%^VYs(9kb z0cgQ-|&LyMCc>mh4Y@l&^a4y^oP>c zP`V$kRny_0@C<97ebMEhx9o|Cc6||9y*?y|g9lBSH=o%*_neD%ABpymaAhNZ^81Kf z_6;P>&2y=__dfg;1dtp8AW|gK)Q!RyV@=n<0Q&n3xY+^;4z%cM9OxT^192XxXqNf1 zQi-vto%mLhW*Ciwwcu+g001BWNklNILU;0XcHSw2ibOc`h+-$ir~K*s*-K>*E!_VIIY!o%Tvt|JDyN!8(O*#!}8 zyTMwa0dydX-ySS-q$rmtqzoc}i2ieKYxm?J|A!9|vE&O_{BA*@jgh!TuA>NmBH~Im_^jk zoQ@bcDrQDYw4pE!bWn6usZs{L`m{ukUM*3fVyv+d3yJ1bO!{;_J{dm`7K@E1l-(?V z_U+rZwtoHkj~XJf(3a*Pfez$M`W2z8~omL<2!b}jEJcz^j(W6J#dGpOT zrz9rQsEZQ5!T`jH#Bq;t9>@fcKJq;{TMa4#ATf|fwnym)1VasaY;}mD7LiN8x&nZV+h`60B|>Z?4nzQ= zYJ6BJ!vGL96Tb7-ba+h*#9{mu0OU6;(5F8endqX+T|8kHLlWqn&S(WK?x~CJJzL?9 zJ8L2~E`sH%+~vVt8-fc80Febs;aw0#HU7r)Kp7bs7siYkbKk^?6Au{CSCMAIPy}2F zK%tfS$UE-1qwEhq{P6eMwQKh&ez&}0Kotfc_nr;#je8t%nKWt-@WhpcKI(l$wiv)6 zwruPZVFD;ObvmR8FTkl&XQ_C4Y5Xr2_qk}Ppg>mOjdH?&dwV1deiTZT#!&P~)+%eB zT)4jf@CpD5VXHwGMgSr?$LkCra$%SCg;5k%9DtTlBJpwy?ys>``irFtAjKRX;PTGdB%j2#NK4{@J;$P^DlA5@wEqPFsb2M?y)d+)t}+p%K@ zwXT>WT`n8(Tbv8Kq8pnrW5&SVy?ei9x7(@h=bA4;p~a*zs9tz}`vvL;Pa`t-0u;@U zoP;DuPkaDpi+&tp6EG#-NstPtWPzpwA3qBx4F1B$GQ2BUBx>Yiy)%%nM5h`5QzV{GJNMp7I+ip}C^8%zR} z#TG!>IFIf=BP-QWKDC1%ao423rFBM$UJ zA3Xe6XECgb_l3RYE#o(Mz21V9l$0?;h72M1Wkz4uwb@Fz8{=rKPoF;3zWnmbZG93utgh#KYU;VMKJh7uLk8kgZ}29Tj?s^W?9b z1$-<-^=9sdB^#pP6^a2S>O`XhN&@_~n*(jT!&U$E1}U>vHQqh>8SL3 zvpP=zBC8X1L6WTkX`*icK>kcDSU4W_>Q}f1fXEFKcQI>zBABt+RGvIPaA*hI-l!ID z$v`)q0|M5tn(rseTqx%y@|>NOkA?Gp!PFm@;~3XE1vj!$9_WRhc<8Y%0zgGNW3PVq z7B61>d5<1FCK%*7d?MLp+0Uy1$c)C!e)*`jZQE9vK7IPqvSrJbVBb{wE=meYRQ-hS z=vhiA`L;G?Gy4X==#@(_jM)BhZ|@RO#q z+|?Za!Y+ccUlxr)#XW~%>{S$WN&p}#AZRK~7e)Z0X&@e72Iemuhx+v^vC9!X>|ri! z{5*Kw!iv%)`Q!=?bney^!$)*SxpE0&c(`G8F5AV&Xo{rSi`2|`?C3e(mvuqPI%MaG zP4~oHM`JR-q@hYR2gZH;Eb7&-Du{P+lVrp0o8Rxpnl)=Cb?VgVlMw4;P9rOl`w9K% z)f}T~@Pm_EDWo4YYE<1f-+XgYa&j`Yx?cT7MQ-D!`$?~pb^@6xUqSw5K4R0)L*dR% z3fs+wK^bmG65MyRhofQ=Fl!PbwE$1^FdoEW$sluUx^--zjM9XF6B{g5Qn{2-G?6I4 z7;1q?&cUUOVbqx#u1FMJv-4)J$2)J)a0OFPmWBBXKji$301&-MxF*9F2;iqFEAZ(@ zDex2o5EElXtG4wq{N668U9S>PDKj(&hWb&29^x1x;v(X%>Ry~bn}fv*H(>URmAG)$ z#k)iEL|U@GM3Qw4R;z}pHDWOG$-d~&u{k0l#MG0Ll%XzOym(^Fm@!X&@x>SW4eMhL zQ3$FJi@Vv^VpgUbGuwTlDp#%?KXvNV7n?O}cE6R_S_xmG%C14nPecB1YvEh70G2&F z;mAG@g@`hH5+d9(yowEyMS)dyG2!Np9iBpJ;>S$I2?!MXGJkEjs^Y}zMF2#ida8vD zdKJ+lUbuoHkpQ#~|9EpYygrX;A@b#6{=yGXpPzOUyn?Gx0rjUJ7URo*rl9t%HPCOs zJ!sdV35Vrk&#>@k+1MtN|4D=2uOcVg&3*K}alBQhze!sS5%a-ql4I4K8H0^6uI85`h%~itJx+DNHSs0K1B`fs& z^UpVW{q@(sC{w0PatZOn;VO9#l3_?R+c5hyJo~r9yKx1iU8@nDdkKmbVBIneQXmDP zZlTFyVxwJ_ZqTSYwlY@$P3XxK`Wl~G(M&(faf?Cc(8H9uUM3_30pTEMOLP}$lhe;qmx+1hBoc$p?l93 zsNbMEVq%=!Uc}zJ2>%*Bog<1!?py$x|)R0)D8j4ET<0ME1x#Bz?J0HSji64~I$8m_gO%V_%H!uvu%qkZqQ z(p^};{#ShR>5n*fCLfCA6p2QfHe$$RtyUdLxFhbnuLq(cX-fp->I!{)i5vqR z`{c=!8P%#)GbgZyCJwJ@eZ*sO?U#Awp)wC1LiO2apLH5OeE2`&){ zRnqEky&1aS3-!ouxYx~xx?=@zYhYK20Q-$0;>Ms2HjnJb{3)F2;iRVF6#=Ec~!F<9>a$A9{ ztgP&xe){RJPe1+i@{s9cp|XvuTAz{v$b4UD+Yc96>(r@JX3CT)Z!~Jus1K30>wOhc zVS^u$HK6&qu5@@#>_x$EQ7Gr&XNdTqs$=KQLzp>z8P>1ehwMxr zcau=FBv~+V1Rv}+9bLOML;r#8Q17;Ch>Q{hS>$(09LE$npFkjhUAuOr+;`u7Zyz{t zAU#C$99p)x=AxDis)d#+JTK&Y_St6}z4X#c<11CFRQY-VWWL`V-Ax^)JrHpqvOq>(Sa>nD5J1!6 zagzn2u8ce^SX>eSncHO2KByYbo}syjE3s()CS1Ch!x0tbdZ^)mH|*3E*z7v$)Jwo4 zkM%*bW(^P<7s<&{ab6~PN_q>6uF;t@XHJhBH}1txKKW#4NZ5YOyifQ_U(dIP=7oYo z7|0TR_0?AchYlV3_vq;8>p5QVT?%JUAr|$nKB8mT1CcOv<;cJqJ$(Q z?5^kK<>}L=P5ay9k3T-k01pvo0#9hzUZO?4-Wx8QxG1ieg0rZkq@=iM)26-JvSrJ` z5w!d4b-oN$OUP=_*HENJEj+YfKA<26{^JLcx#)YSd)A>$_BlkTG^0oCk#%(tT|Q4I zc#1^;L~T8)81l=C`kl+ehi*h!Z1Dbc6dA5Tx$1QA&wGdJYy(4j-62@@u~U$<`ErV3r{^}M*sE~ct-x}QT} zkvt?2iAjSZH-v&LT`b9oYegI~!J=28*_*8_1su! z0O+#uE-d(`*5>8-;GH?Nr#ff4NfW(b(TAwtpo)-lm=Pm)iD+=UeK>yX3>Gci$WoB3 zOrNNZGw8*9MA_nlGe$?FJ8NRd&@O1%sy^%_Z00(h80IJOo*Ln_o}T5BFSV+w`u_d< zw?6mWbFZeRrjoLcqAtof6L>=P&Ly%w*F&O1;Sd_u(^XMe&k4r2-+ue|P!}8_J zU;jSy!RRS$k%F2XqxeaH@_XPvyB`IcmO$OG7`D>~5$X5vwwOUe#N=2!sk~>Z2-z-Q z?$E9b;y^=RNA$24fMTLBQWZ>}x(s9Aq0Uq>Xx!_`!u&-ap?-tPTukM}0}By!oTR;2 zc?-?$IC$VZ0s(W5qOli{F7bBZP423OE)-$W z_seg*@y7ZP-eal_OBA->3a zLfmz}ZuBfeb3^7#Ar9>+KQw2~oKYP*ba*I+rf!$=i%TLDtQk&#{;s%P@a|fPj9C-m zJhcZgE*BJ42-B$Zmv;9dIR|ToWU-@7;lpjX9cpc+F#c*TOxH2($7LA%?p!9(-2eXn zb$2yDQC(N~@Z++7=(4(il8s6PtRN#5Ffsms#-`N>B4g|5v@5>^-@bLp$;pdVDwXGj8F~aACx$uQg#M5p))F$-LdzG~0EPdAzWcXixb3(v_)8QA7(2^klCLfWLow9(E&u>`BfYYL`g|WVSD!M**Fd zAawF+4l6WWnrR@Rcz7$U_-PsxUoVDlzIg=gj$v#S34%iC-XnC1j-T=} zEdJpPn3a+MTCE!VakiYf3sPaslBK;dSnL|FUAuN^uvlb-&TpBVJRc%fweY6d&PBDwIkrG zd>C$SfIuupCHCB6>&RFx4O${h%%YUmEudQdD>sG45erWE?9+VM`R-}3V@4tt`(#OC ztbVyrWK*mFf+9K~5FjEV7#3yBg16FU!Ap89gC_|2#|?bFf|VyuVzb$trKP1`tyr<* zm*wT( zM>VDecaLrjyG%P+JZHgMufoE#*C6IQ5ujEnMOWO%1Auv`ZEeo7va&CB@7}%ZDS{$iur3$d(IXHUQ?iVy#56#2pjS?lKbbN?dU4$XWQ) z&Rpnl3VrK^ASl5QvjQ=mGalBiTMDspn04sS1T>5Hi2dOEdry7&Tw7Zkl$Mqj@7c3w zE3T}t+wDAf`1*!oZb@Ix+Ve5q0+2fpp{Pa>u{hDBNs~q%IB?+iQ>RXyu2!pu^*sfo ze>aFT9q7j63_6oIm>=!x0O#E@Xg+rg{EIGt!dwS|PV|t_v|&DwlFfx-ItQk-@;}08 zJK^Jx&cgek-67k{~C&6?ldym=GN7J>)8Eo2_lJ^bRpeu-x3)9~gk(YbI><_y(y7l;xQ6GM0G z*zxnk#KiQFkPxrC_}w44zzr5#Z{G(Up&TLy3xo`!(03qfwK1(~BmsFApI z3k+Yj0Z_n51E_YvLZvsdvs`)uH0+9llXxp}JKb|>r<~!lx zeP3$tIS+|Tc0{Ewq>G9fNQ_RL;55}j``1^%lKTm$ZW=)5?*hk$N# zJ5q1UC*biF1JQ%zLByLgUKc55&6*XydGqFrzVM`-EgVAism1tL4a z#iEJ;fvj7h6ahkcxpsR8TP}<-9xRT~y`gUZvI9N27o6d5XlUpxDJjX?xpU`7SFT*a zjxkb`<#lhXr)%`__oPcY@-99v22Bh-41u|+_|5hpMPZg z_U->RnM_#xi5Q0hggCe5b#H610K~H#jjE7-C*%_Gu71$!)vIGOGc%V?oH%jD=+UD! z9#ur^?{i`cCXjtl{E8C`(z&T89C~Cd0W?p}I`kGP@83mY#juADADVC7x^*=xE9=C; zg9pn+x14v;iFNq246nHAy`6p0`K1E;PJHva`y=NxibP1fr!`$ z_iQ_U{P@a*goJdxUO!SUm-`P0BMkxIA>-I=Hdjqe&9@~bC1;i`TXtAv9Q3Skqrf1~ zI${ZXb^`+fp1}Z+)TFs%BLa|IsZ=VKFJB(LV8MbP#KgqR3=a=~dH8T_?B;v1Iv6-Y zJ=WCJ1a)BrR+O4RL+&|g9ez@Dzu>A zK4M@B3ky@Gq@?IGGBVzbkB?s(78a(`Xf!VjkPtX#vl;5^>#e1wr6;npv(I0;bg8Dk zzMcv^5%VD9@KI$xvOM7687u~p>LMwSNM!S-4S|H9k|iZ2jat8ceP&Ed%o}>WK2)R8 zC_Sk}F&N(zcYhN>gNysjW^-#zO-(~ZMa6&i?%kVp{rYuWe$#=-JCgd;wMj@JTE*vJVC3~%26xzXN{Vtpy-Bk$tHi>2k|<;Kd&N{k>QaCp$*|A}#=i~T6^eNaqRPYOD5w_$eaI*T6k3E$C+BM!#crqTOz{wY0Q6G@H$Jj~+d$H5!c%s;jH3 z3J0R>*b(U@sw_Z2BH`_B&zLJTG&D%B z*Q-K9L$ME<66+d`A3t8N)9J>j)#@;XLNPKZC@4g!R7Ut?6ACv!E|<&E+S>Y{y}iA$ zt*!0bmX?-!qtRGfRaJHG-o1M!i^bB~(9nRQ*xJz0KnYyPA_$6}HewpuleQU>jPpDK zNa`(85Qt11fk`NqBj_b}dwQQtB5xvTu8#gzPtFBBTz*fYR%mh|B&zeEAl8xY=~!YK zDR2ffAg9zLHvj+t;7LS5RM=mAGE}@UPp+RA+k6OsN`mnKA<*z3EjfyBQr1r2{*PsU=Sd$cV?mpKoj3fTXof+fJkGtQ= z9Pv!{T$re*f$2p6P;bIps%Z!$?q27$R&N@JXAG%n!}s_C1=3*Oko2UU29n<1e^CL% z-?O`W6D A-v9sr literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..7e0c4477905b9e7186f85a265f234a8454bee76c 100644 GIT binary patch literal 37342 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 diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..0a46b50 --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + FCS + diff --git a/android/build.gradle b/android/build.gradle index e0d7ae2..9234dae 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -5,7 +5,8 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.google.gms:google-services:4.3.3' } } diff --git a/android/proguard-rules.pro b/android/proguard-rules.pro new file mode 100644 index 0000000..70885bd --- /dev/null +++ b/android/proguard-rules.pro @@ -0,0 +1,7 @@ +## Flutter wrapper +-keep class io.flutter.app.** { *; } +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.** { *; } +-keep class io.flutter.plugins.** { *; } \ No newline at end of file diff --git a/assets/logo.png b/assets/logo.png index 6254dd0d20ebc85ab629f8842c4d0bd260d769f7..96a4619df494acec4149342f8e5bcde12fd6bc00 100644 GIT binary patch literal 96138 zcmaHSV{l|$)NYcAZQHhOI}_WsJ+W<1JQGZ8+n#hLwx(k{U(b8%`*W-A{c)-~yQ_1~ z*?X>H!&HXVW5L|^Hz_Jj#oG78|oh?o#>zbK4FrRZD6p2i@G!P z4I`in`YRG-mZzB2u2vM5OL-YK&6iUVQNk<()vts7{kUH&+_SPUzx}}zZIxB$&NlpF zh67FnYoP+xutau7Wx|E}fLx!OOlnQ~ikN(!oH(p3ZYFUK1%6~ffo`Y-Nh?=N3%=l_ zjEMN1H6ogP5T0z55qfwO5m8YA)$BPA7niXYVuXftIMs@s)xp`)B)L5TRYSMGzkhqM zzy3VH%~lQXw;dg+@QhC?Uydib4EG}sxc`EvEyhSvE=D|M4NXS_bmmy^4D%1O^9|l= zE2X24wW%m${I^dOuq`o-z@+*tCeU=jxyb6egMlGn{JX%xa`SOPgD@U)N>VTfu=p^% z{JC%egJ58!U~-aTUwzijdc5-wEDJ7Qg9cf?Y97NOB2IiWMY7jfY5x0{o)`n3{<{S@ z+Hn1^uH!SI$0Yy33qIgx6ErF+8sayL{am)=d{s3`b`1Z{u0HV;*nvKUb^rU` zE_vnOU@iW^e}mP~zW)Z7tHg}{KfhTft^0rf=70a?|8<{t;xf>K07J+g{hL_~?(;8% zh1;snzyJ4GYyKvk@1fYmZ+Zx%W?9)oIm= zd=G!zT8SzKkaYR!W=XHN`HOuRl@|Mbj7T>IrI+sGsJAl*DV!@ zYzKPD`^sO-zXp3EONX@QTW0qS>eC}sWjhuR8x2PB$$x5t^VR(AGM<5`6Egy${8*DQ z0*0V?H=u9C4NP5mYTc>H7hA+@;a?72DyRu183#<3z*f;#u`}7+$ zk^k1Ar>Pr9gxS--%oQH?W`iP}CJ{onAfz!oh$I!V1eP30eS+-UZMP)PzR=SIXca+= z0|?AA;n^|Tov&D#Ymi1grIsVFr`mX{E(o|Dt-J2IeE%kJ(H=*uUSljWWd8Z4Ciu#y zavT$Ut=bGt#Sk6Wf}J$UkMqbC(V$iPN#d08@8Q9VH#_N|Q6KH+jnwgDw02FmpI++P z_iljCgU5Y?XNlal{L+NwvQRxnQC`-W2{4M+p*X}7bd`nuX&*N(;U+xH`O6T6jgh|p z1=G3mEMGncESai&JlKY5fz$+SQsw%23ME{May|7^r}M`QqjumE^sn|e{EJ?97#Qau zR`Xh0uk&1*7!8jy+E_#)F<-fbHB3mbmx9imG(<;TF!q;-n z`j^4>I$V;?iC^7}vIJxWzZ`!K%>};*;LqSKS|D~0>PDcVr8t#nDpoF0$dQNN@oJ}X zbE+|(daW~hw5Hy-x%Y=?oDIxkfs*&Ha8-1SQ(P z+$QB|9p;lE9GTj{Ee0FYW3_ymo#|T}q`C|gDSA7oq=lDT%r05Z76)dNx8Z)#qw-;) zb(1JvC|Lo1r-)GxRjx!DT(F~}Jy&Hf&6;U)T*oH9KasftwDsm>^`6n~Cc)9ls}M#> zjs6K0yu=vE)fro^{`%j2K_N^iJ|Xzc8^T@);CB@(UFC}Hb@9#q*9-2Y&nuL}Ci_$v zu?M8MG-ZP8(GkwcJ^LPSMM@&f34R<`;lzYotJ7v|BIW-6zJ)G{IeZE2V0vJxEJa4? zvV6{FOF}`DzR!bu;XvM20P>vAkpx3_*jNf>*rZwd6$R?{V&UNb8hb=oI>cP0+NQt$rOHD*m%GG02697*iIhwI$ z569!6${KN3EMF75{&>uD(iFJ~f-XWBN8+JZ`g;RWUHsH`=7}GmS^@~ht=79Z+?N)S zf2&WDgSCR+0c_8@J|B`C#ZJ|g3mGpuD5gka@DhY1$?my!r`^2}m3-YR2Y+LYK-*1j zw9{vR91U+COV2A4?zMNOUWwv04lYJd0;P2s1IHH{8Vuc!J z^H_6v_cY!K_3q2setY3Y{^J8HU$KMry*h{{PD~YyWka@

NQzsS_KAsFrKX-@%qH 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 literal 36541 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

Fx=zcFhR6Y!<^W z&~@Xt4+H^>4IAis<}t<=r>QJ1L!STNU9-AIxV43jC->rCzmAM;@{9d%b7g9V)|M2* z1B3K-zP~)1kdF=o0feet`+}l$DS0+k*9KL7AOHjqU2UXyY(%_!2xmS^K|om7(JcF+ zKYyDnlAViD{rNu3cnkW+w$eV_$Ge9Padqox5N^%?Km%uvEiyY{ z_qH!lDOb_eD4Oo0SaIe>=Jms1}b5;*{n(3=2d1v1;4bd1ocI+e+h_X08k0)>U z8iR(y=RetiC)T5C=h^qt9A?1+Z}^@jSW)Wwpq}TgMuG~8P_bF#idfVXzY*C*WW`R?86f_sm?I1t$t>%)^3}% zso+PhcIe%>FKVXEy9dWOc{0HEtr2!?eVj_kMoI^N5O(cNaQ0F!nYl?y84LG;h?)(U z<`RdGTw!+pJp1-F5o-__KFM;X#;Fr|JlTVGi&LYl&KMDTiQe@F&wR0)rj{CGV^=tO z^dyy{q^+xy=0qE*uKU}wW5*UaJ35AC8>^(PxM`s79YN4j$SjsPeR7(0Kp~OBB2{p9FL$@-%Rl>8<0zLEX*&le0-9o8-7n$QBghjKUo0GAn^C3 zX?^-J0$aD>ghT8*c7#_C96%~6J)Pa`-no-?>({-%8_W8p@svmK(6U|qhbyC$Ofo;PYMA7kkK8!acpL7Szy-6r0qAyo%OF_^tlVih$X7gsB3J297a=@$?Ak#~vK3WRsZ}Ls&*nINY6g`J*!M6!f;gV6kzY1>`JY#i z)p>@7B#C$pU9(XXux%fennQMFo~h|MMo(23J#Mp*X~O3XQ>5OGw1kNwGIS0m=xML7 z%8}D&`R;cQbLc=7jdgd-v)xE%*8e8O)Wj7Iygfmpp`F%LJN}@9g-J54vSvdQqi0H# z^0yk;Fp|Kv>d5!sXDdF0Aq%`qpz+ez@haBB|@oRfpgOB%ky6(U0F|rPRh3 zzPN$Dz787VG0N4I-wqJeSBD6`2Y~fe8zTN#k=o<}Q`rjssS-h}?p^+;41kkHfMR2q zp-+B{z$c%9R14#iQykp4A2Yi`cWaWtRn5EijZ;FwQ54Ka&>N$8t4DEl){>@y&;+gu z)`tu~l|+)rmaVKD9;LcagX*Ju|BA7QX2!{%IEMdJ53$z04E6MJAb*2YsIU1u;EXzXEeN<}_ z%M_GyE@n-k>}lxqp}0w0H%NdW7W4QUa;)3bLT6V9&$F1GEA#W89_L5j%P@Yqg_<>R z4^V06$U9R^P9LFEEc1Kc-b{C21D0DMzqCX{;&!p-m|x*zyJF~SKjGj6&;R%`3k#D7 zIfA^Ul2Tx!87hier)?{>EbUz}9^1QxRBJm6^ESs%F7wjMGn_vcLXbk}a(+N|UQI8GZu`YGRF=rt}8YgT#U$-3ac z@iXK6)&Kru-g?W=+|>>Ynr|rkk@uvvFO8Y}-FGgK&zAYdvjg-E1kwFA@dm->4b2>Q zsl?TlaZK5B6QJIyJwT<6a&d}Rf3e8vBRP(3o8wRaw3ESgI<8wmH%vx`Be>t_q*|C{ z->=5W%m*pS2WzuZ=mG0`rc>Uf`CerLsb%TvFnIbCO?>XN?L@<6PMkc$u_MQ+R7|?t zn@DxEl1$xvrrs-p0XQ|9=eyr|i`QPf$i%q7tqvl+o%dZ=Z8bua#4xMv96o%Kh50k& z@-|<7b{oTMqiFsblM7erZ0Y`JK`^G>`J-ZJ8!cb7v5Wv$o`0Rtc$VH$;XitytBDl? z7)Tko;jn9D)EK$uFv(9nM(9hQ!x`@5>cSj9d--K1&t7C87H7-IMz(I=NM}dq2ME?w zJX9=Q!&HO#+}m|IUA3+;sygqll2mh5oEuc4gk_@GHi~>tP5(oJ)5r+Eoja*qTB0yl zBJKF8X}L%8ehk$jKR-tP)t3pRVx)KOp{2Wvv!~CHTFO3D5OiG03%?%cpP#$Hy9cr? z%!g1Jz`aLat6mykcLWTEkqk36;o?$d`WCvaZZ69}84U&S;}Al@kAjWP3VppQyLL5` zXsVY>9zA-6pZxSV=g;+F%6ki8>-1yN&)nobe)^+xtlQW_dv7zvN|lorPm@ZvF|=j` z!*@GPxp#YzaHNA!tjJIQ={z%IIebb#6}#t#JzJtN9>wpgi-s@f7kF&%R-%m&<})jN z_is=0+%IOC7;B_zZp65YjMj~sodV_BG>lRi3S|e63IYp(T$OQif&My`M-V}Rn`_l) zam5wZZ*64v&iWLDpZ@SIp8LmhxX#x>uEo1SF7Ce3inWRJr%&_U#q-4c8sGf=H8izA z&~SNtcRMF{mYJQM#;o+*2T&~(3=~U+$u--RAtIOT6*& zKBmUzXl?Ca-G)KdZyunv>*hRc*_k0?)cXSW?Z3qH&rdLOr4776TsFM#bLO%J!)auG zVw9ghH;z9VrK5Kbit2Ic(nV$`X4$o4&u>po@TQxLY@ywiSj$Cbi*GY-y7buP|ENLG zFJnky-U5so#ilUr&+H}n>8H^LdYLU1dG3{0c<0Cw;^7GEhKAU(aRVFHZ~S2SH3W*3 zD4s;QOU0(*%4?r}f03X>^*mTDVhY-lkOLuG5O5y?|JvP7!;?EuFJ58l|7-6&pX0jH zJN?{qQ|H_bfB?FYBS{1%QItiBBiZZSv1fMdavWE!?N3|#Pwl!~>)I`QZSQ)<-dWEm zOB|76P5?=Rnc?2tEHkD-&kLNypL*vsQ{~-XT;QL7`ZQG+cY65r+&yM* zU!dZ4BA!tW=|O2IonCC}2-Yz*onXL^ro;O3D*yPu|CWJ)EN`Dy$@LHMM}OW<-$;yq z`lk)fov$;uFio*i!y|<8gyYhKEI9HR?YM!emPohRj33DG+dpXM)LS`P+9dOHGko;^ zdo0e*lS-sHaNq!whb9;vebPBf6^|?eHA_;j>9}41@mSivuScC$gg1jz3!-{{3-Ev`&)#9A(sE&CoC+klHJVntwuHmSqeek46zvr zlYHw4Z9n`?%&`&fRf_!I_kO{rXFo%zDuW}#jE|3T{Ph&)D~in3Ou#~&xOvHSBtK@zCC zY|O53_v5qpkDVYBit)zqFdx153s!^vT@yh~2%-@`v8YaIyNFxg#$b^u1`1I$>Ok#b zZL|j!CLX+wy~j@akA5pOGHf;+FY-t>Q4km+iYntsY2va;u213QZ*-Gw52LGf>^ck& zb@RrFF}4;h);DiZl^z0#CUjg+#YRV^6=lbCsdAHWq{v(Ej4^gFifc>O*797tHpRWA zRXW;wo+*L=BRv6(KOH3)i19!F<`UDF?jW7}NT8!tWn?IT&lKEU*koy;g6B2_z-J~% zBwGmRd4#f#ii<*pGBpfT#Ez?ovNNk6^^bh67%BJw9f7-J>JxaVI2bhQIcxy;`QC4h za{BZm&&nVC@Dz))2IoG~xWBoCg^f-Km&nfN_`mdBB?PsdGM^TbH9B&By80scf|5#g zi^BGOQt>Wcdn3*t|IvQ_>wmk(;=Dy&E};-XRl~S$>M8A5!Y_)1k``l!Q}pyJ*iMl< zx2Cv$?FQS0ReE}d2#myN@9CqxCrWNO%#{lkAHIK|%U2h;yR=MoE01mYaHNLBkEG?{ zxIg}~p98VTzAnMRksM=(LmWGvV)C#bRjqS#>NX#I@Kdf_IY%rOW^8PNvGF4uo_t0Q zR_{@W(23)HTzF%hE9YVL{ubNYH?XCFK;JpJKRAtQG)nopcz6hOAiHBRSwS~8$+Y@; z{q;#s9nTUrT^45x%uLU*wz^D9Cd0mc`^e?GzgZ#(KsbpxF-Au;iW!fx_|u=WdbUEQ zZvEOctQhd2dXhlx#h=0T`PqmDvC?tc-g=Yd+b1y(46{S|Jj8WOnQ8 z6#Vc<9Yi96|MPd3xPD^>p}4$xa+INi2EL%j?fLWE+nC|b!c9(an9<2NfBKgv$?Utz z@>&T`N_?h=?b@i0`pBDAQ66sY9>g0yZwn+;r;)(it?eY}R;kxvyJS-=m#A9n8EGs0Kn4II@nSdia9|$#{%J zB2F}t;=qv>zW47k1j8DaE??&M^hJ(Lo?x*57{B)?y;xqIGoP+={nje?@2((}D4JMB zdOjQ^8Y*ZdB8eJ3odFIV>ETCz&`z#LGB>}-`Oh!lIX)cAk8SHHs=)CqG+{D6E*Ky8 zbMSDM*_kjmZ>)3c<_7b#TWsfDHnwZjsyDH#pg0=AK#*80N;DP53_^FdgW-udW8>{~ zWChWvN4c`e)oT~Hc<~G~GuKIHVjMkul!IfF3=d2^a})x`qbl>q4=1qy%TaD#uW|jV z#mr2J?LwVOxk9;Eq*AV8mmToHRcxeUBQyoS;U{D);rICoMSXO4CK#KDarAhUfnl9O z;U3qoeahu;d#?prAdV@c9J4G|BqBL9w++xJlN68x4tzf{pZCYGs%8)fyZ3%OsN~M_y|u zo~m(c<~l$5=|7N8wBrB%A9DD$PP+PH%*>aWolCK@x<#Q-qh@(XMaM8q(wQheQ=zXf zL3b`pwngFY<}J>g`w8bS{+v`g!@$4**<9{10R#y8<5=|#bUlht8n24(4u#+U{e5(I zYfRmUA(R>uhkEHAkQ8h4T)y!xo26N<-1;TA7G9%2+sA+U%R$DECCP7B@T7`vm`F#W zIPRm4P#O}bC_5sEFADiNBX?npK_>TGP(SX~Km=twtjpK7$}?|#@1%vbGkYQmL_(uduOJrdnzQu&b(yCp|PnArke`(i$O?i4ckT zh@=GBcEP3VQ@s20Pg$J1hEENUh_%u?Fv^ere1PMp+PQXpo$D7%EG=3T)+IUy0ly#A zI<4(tdWQr9!$Agy!gO^jEHBOQ!H4fMKetRe-cNVu0P%1iQS(Vt{CqYeBM^uTd=5+1#wKxmBjTRinODM{$*gH>%>G znF_(6pGe3g95hM9!z2@7T3U4cL5uwMESIi)#MJcr7)FiW-Vw6dEImDa-(V4ZVAoB= zNWAkVTEt-cm!C8D@p)F3Hfgg2nXTe06Tz1ez!fct-JT?R{2;M+-XJ(WgcS>MbAE>R ze|d(F&z?n51aBTc!QshC+S*!QUI1xibmiy`e82(3NhC?ZVmum!_APnm*6vix)|y(hT+-VrXE3vB}Y=OcfJPmZ(~H(bXh| z-ni?Dh7?YpY~l3DmWThlx;e|;#c2w~Jgsf}2t}fg73v+|pL%8Me!J?iw$Vu_)M)qg z{B3^zum3{8XA&~PeE)ZTNUl$iLjcLg@BJ&1YDHpILDdx!X;8nkHWu!!@#)2FZd|^B zRW<2o8^y23sn-fPc9HJxFx}lT_8*9_aT*Hi7UjH!Dm4t#z|%aUDT7R#LThW|vv1$I z$eA-AbM?wO60sJBh9?*s8)JO`wQ&|NU77vi_ZQ@#wkg zmZZK@i_^9xsxFB}A9vWPTMiqmYpgD=Fg1OFJ2MwaCgb$=?WZ$)fWE%n4}aPd5j4^b zkD$fT96s zE}i3F-g}qXg}bEVDUMD|GI4O6(UBoc)7+J35FY3rXs+_iFcakkvx_!rE;cfGG)|3; zTP#5eH{V8A1B63QcRtWmh18dvR#)Dgo8IfQ%>qQN*vC*MG-2H9Lc zt?8#{Ig!#qN*5u_J?YP=Ul8qh@IeH^MN3~iczqP^o#u|=e zlS~+-QyqlEBVW#Ueyw z8M4{YJ$Wu|FBiAsYsDOBr9II?WMG8qg1Ts{=Rc=g!7`-oJ95PcD2;u~cSsaFj#C2N)k3p=4h%l|G$Gv^6 z(iT#8Fw|c?-`7^>@a#H4Ux=Qr0fzbmM8au0yM}kyGUpUQwb68!bSg|D=EE@k7^WXk z(X}7}U+b@Z9dvefHNTNI+hk>93!_@csJQrSNeg>xGPTgj>jBC>6+05ZXiF38&5{@%B+%cB-qi)IEfl;u z7pJfD&!2q2t$RykG8s-CKE`DCAh~4biQrM-r34TfISord$a-Z{l8Xb$L(i|N%-6$h~s z^k1=jc%Ym7R66LW2~=-)Pcjie(V?@e)1Vz@m59$I{7xDX(p*u?&bC*saI2F zBj67Z@CUw8{g;S0OnW`OFK!kOg}$13P&d*j>K5M963Ev#kZu*l-x!N@ri*l@YtP$n zXkkJ@sB0VebRVkF5o+=qJKsCA?XPxy?dgILj|bl>9Xa%l9PyDpqWNt?cV?+BE|Z_0 zr8>V%b#a~AdXZW=OxOXt1VsC?NLVlDR=5>W@Pxo}JgSz&7Ai6r#0dvb;&IZ01H=dW z(R;e^b?(D#NhAF}N_L%_^HY3q;T*S@7LY!Z(TQ<}d;8g+>t%meZqNG6(pB=Q5Vhe> zDrFC+YEx7MHQ`bb4xZi!mNp%UX*cR2x(Zmjz*AtwO`*6Rb=AewB|-zFz;gu!p^@(C zfJDPISlcOiu>AUxc9e~3F!~FgK`bVx^xkNe=Ces?D z$-iA(uZSwbFZCIlat;qlmjkqNJIDg(ETBdP=t6YL#U+{HIqhk_uz}iF%wBh#Bl?D zR*MCu=Wa1IbDNo!Wi~4%(p{a5Pfn2Q$dWJvbVv5KbW~_)kiH-N2Re@(B48^h)jEo* z;u!*0cpwy{=OLUO2N($miKi(@p`gfy`=O(INYzC}qBwvpaHWcoOvB-ZZT;5j3T5fw zX`uOb&pov33&FC!$=5hE`5KFV{WpY7KZ@6gjFUSNbVACVhz$jV`p{VrU{GNvoZ}1m zPIvxa@#Le58xq{QjT;VOhy8ep#NYYINy#b{xp?6$*|t_Pt%sYd{@*Y!D}VqApj8|MSJL8U=VzQbnlX zxsOMl7fTS|IpwJ;(rVnvT)lX{5yz)U%C+t0if{6*qA7rTk0PHRmAbbg=#$wpn*fFDwiU$8DO++nL!Vt#pv z)s0PT*F`mbL}D@awYSrfP80D32p9$d-TY1rbgfpz=WFbO*NX*aOWWL9m;>9P#TR5S z-AYSq%X72De;c`R?i}m+b!vFzdb%0t9sWi?uPYnkttw{o?bM{ncU=Tu6_rYrm9;gt zOC<`$ZA#S&o^*&rq9hY>BK|o$F4j!PWDqGb$w(C%{tK* diff --git a/lib/main-dev.dart b/lib/main-dev.dart index cec96f1..050eee0 100644 --- a/lib/main-dev.dart +++ b/lib/main-dev.dart @@ -7,7 +7,7 @@ import 'app.dart'; void main() { Config( - flavor: Flavor.PRODUCTION, + flavor: Flavor.DEV, color: Colors.blue, apiURL: "https://asia-northeast1-mokkon-wholesale-dev.cloudfunctions.net/APIOK", diff --git a/lib/main-prod.dart b/lib/main-prod.dart new file mode 100644 index 0000000..7314fac --- /dev/null +++ b/lib/main-prod.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:logging/logging.dart'; +import 'package:fcs/config.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import 'app.dart'; + +void main() { + Config( + flavor: Flavor.PRODUCTION, + color: Colors.blue, + apiURL: + "https://asia-northeast1-mokkon-wholesale-dev.cloudfunctions.net/APIOK", + reportURL: "http://petrok-dev.mokkon.com:8080", + reportProjectID: "prod", + level: Level.ALL); + runApp(App()); +} diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 700e2b5..4b02747 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -8,6 +8,7 @@ import 'package:fcs/pages_fcs/delivery_list.dart'; import 'package:fcs/pages_fcs/package_list.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/localization/transalation.dart'; +import 'package:fcs/widget/right_left_page_route%20copy.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; @@ -245,11 +246,8 @@ class _HomePageState extends State { ), IconButton( onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => Profile()), - ); + Navigator.of(context) + .push(RightLeftPageRoute(Profile())); }, iconSize: 30, icon: Icon(Icons.account_circle), @@ -326,35 +324,41 @@ class _HomePageState extends State { child: Column( children: [ Expanded( - child: ListView(children: [ - Wrap( - alignment: WrapAlignment.center, - children: widgets, - ), - ]), + child: Padding( + padding: const EdgeInsets.only(top: 8.0), + child: ListView(children: [ + Wrap( + alignment: WrapAlignment.center, + children: widgets, + ), + ]), + ), ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - // _buildSmallButton( - // "Policies", FontAwesomeIcons.fileContract), - InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => Contact())); - }, - child: _buildSmallButton( - "Contact Us", SimpleLineIcons.support), - ), - InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => Term())); - }, - child: _buildSmallButton( - "Terms of service", Icons.info_outline), - ), - ], + Container( + height: 80, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // _buildSmallButton( + // "Policies", FontAwesomeIcons.fileContract), + InkWell( + onTap: () { + Navigator.of(context) + .push(BottomUpPageRoute(Contact())); + }, + child: _buildSmallButton( + "Contact Us", SimpleLineIcons.support), + ), + InkWell( + onTap: () { + Navigator.of(context) + .push(BottomUpPageRoute(Term())); + }, + child: _buildSmallButton( + "Terms of service", Icons.info_outline), + ), + ], + ), ) ], ))), @@ -463,20 +467,23 @@ class _HomePageState extends State { ), ), - FittedBox( - fit: BoxFit.fitWidth, - child: Text(AppTranslations.of(context).text(title), - style: languageModel.isEng - ? TextStyle( - color: Colors.white, - fontWeight: FontWeight.w500, - fontSize: 14.0, - fontFamily: "Roboto") - : TextStyle( - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: 12.0, - fontFamily: "MyanmarUnicode")), + Container( + height: 30, + child: FittedBox( + fit: BoxFit.fitWidth, + child: Text(AppTranslations.of(context).text(title), + style: languageModel.isEng + ? TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500, + fontSize: 14.0, + fontFamily: "Roboto") + : TextStyle( + color: Colors.white, + fontWeight: FontWeight.w700, + fontSize: 12.0, + fontFamily: "MyanmarUnicode")), + ), ), ]), ), diff --git a/lib/widget/right_left_page_route copy.dart b/lib/widget/right_left_page_route copy.dart new file mode 100644 index 0000000..04adf51 --- /dev/null +++ b/lib/widget/right_left_page_route copy.dart @@ -0,0 +1,23 @@ +import 'package:flutter/cupertino.dart'; + +class RightLeftPageRoute extends PageRouteBuilder { + final Widget child; + + RightLeftPageRoute(this.child) + : super( + pageBuilder: (context, animation, secondaryAnimation) => child, + transitionsBuilder: (context, animation, secondaryAnimation, child) { + var begin = Offset(1.0, 0.0); + var end = Offset.zero; + var curve = Curves.ease; + + var tween = + Tween(begin: begin, end: end).chain(CurveTween(curve: curve)); + + return SlideTransition( + position: animation.drive(tween), + child: child, + ); + }, + ); +} diff --git a/pubspec.lock b/pubspec.lock index bbce1c0..cffe47f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,7 +21,14 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.1" + version: "2.4.2" + barcode_scan: + dependency: "direct main" + description: + name: barcode_scan + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" boolean_selector: dependency: transitive description: @@ -36,6 +43,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.4.3+2" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" charcode: dependency: transitive description: @@ -57,13 +71,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.8.1" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" cloud_firestore: dependency: "direct main" description: name: cloud_firestore url: "https://pub.dartlang.org" source: hosted - version: "0.13.6" + version: "0.13.7" cloud_firestore_platform_interface: dependency: transitive description: @@ -84,21 +105,28 @@ packages: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.12" + version: "1.14.13" connectivity: dependency: "direct main" description: name: connectivity url: "https://pub.dartlang.org" source: hosted - version: "0.4.8+6" + version: "0.4.9+2" + connectivity_for_web: + dependency: transitive + description: + name: connectivity_for_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.1+2" connectivity_macos: dependency: transitive description: name: connectivity_macos url: "https://pub.dartlang.org" source: hosted - version: "0.1.0+3" + version: "0.1.0+4" connectivity_platform_interface: dependency: transitive description: @@ -119,7 +147,7 @@ packages: name: country_code_picker url: "https://pub.dartlang.org" source: hosted - version: "1.3.15" + version: "1.4.0" country_icons: dependency: "direct main" description: @@ -133,7 +161,7 @@ packages: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.5" cupertino_icons: dependency: "direct main" description: @@ -147,21 +175,28 @@ packages: name: device_info url: "https://pub.dartlang.org" source: hosted - version: "0.4.2+4" + version: "0.4.2+7" + device_info_platform_interface: + dependency: transitive + description: + name: device_info_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" dio: dependency: "direct main" description: name: dio url: "https://pub.dartlang.org" source: hosted - version: "3.0.9" + version: "3.0.10" dots_indicator: dependency: transitive description: name: dots_indicator url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" downloads_path_provider: dependency: "direct main" description: @@ -169,6 +204,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.0" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" faker: dependency: "direct main" description: @@ -183,6 +225,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.3" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "5.2.1" firebase: dependency: transitive description: @@ -232,6 +281,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.6" + fixnum: + dependency: transitive + description: + name: fixnum + url: "https://pub.dartlang.org" + source: hosted + version: "0.10.11" flutter: dependency: "direct main" description: flutter @@ -250,14 +306,14 @@ packages: name: flutter_datetime_picker url: "https://pub.dartlang.org" source: hosted - version: "1.3.8" + version: "1.4.0" flutter_downloader: dependency: "direct main" description: name: flutter_downloader url: "https://pub.dartlang.org" source: hosted - version: "1.4.4" + version: "1.5.0" flutter_icons: dependency: "direct main" description: @@ -284,6 +340,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.3.5" + flutter_pdfview: + dependency: "direct main" + description: + name: flutter_pdfview + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3+3" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -318,7 +381,7 @@ packages: name: flutter_staggered_grid_view url: "https://pub.dartlang.org" source: hosted - version: "0.3.0" + version: "0.3.2" flutter_test: dependency: "direct dev" description: flutter @@ -358,7 +421,7 @@ packages: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.12.1" + version: "0.12.2" http_parser: dependency: "direct main" description: @@ -379,14 +442,14 @@ packages: name: image url: "https://pub.dartlang.org" source: hosted - version: "2.1.12" + version: "2.1.14" image_picker: dependency: "direct main" description: name: image_picker url: "https://pub.dartlang.org" source: hosted - version: "0.6.7" + version: "0.6.7+7" image_picker_platform_interface: dependency: transitive description: @@ -407,14 +470,14 @@ packages: name: introduction_screen url: "https://pub.dartlang.org" source: hosted - version: "1.0.8" + version: "1.0.9" js: dependency: transitive description: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.1+1" + version: "0.6.2" logging: dependency: "direct main" description: @@ -428,14 +491,14 @@ packages: name: markdown url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.8" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.12.8" meta: dependency: transitive description: @@ -449,7 +512,7 @@ packages: name: mime url: "https://pub.dartlang.org" source: hosted - version: "0.9.6+3" + version: "0.9.7" notus: dependency: transitive description: @@ -470,21 +533,28 @@ packages: name: package_info url: "https://pub.dartlang.org" source: hosted - version: "0.4.0+18" + version: "0.4.3" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" + version: "1.7.0" path_provider: dependency: "direct main" description: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "1.6.9" + version: "1.6.14" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+2" path_provider_macos: dependency: transitive description: @@ -498,7 +568,7 @@ packages: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" pedantic: dependency: transitive description: @@ -526,7 +596,7 @@ packages: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "3.0.4" photo_view: dependency: "direct main" description: @@ -540,7 +610,7 @@ packages: name: pin_input_text_field url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "3.0.5" platform: dependency: transitive description: @@ -562,6 +632,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.2" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.13" progress: dependency: "direct main" description: @@ -569,6 +646,13 @@ packages: relative: true source: path version: "0.0.1" + protobuf: + dependency: transitive + description: + name: protobuf + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" provider: dependency: "direct main" description: @@ -589,7 +673,7 @@ packages: name: qr url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0" qr_flutter: dependency: "direct main" description: @@ -624,14 +708,21 @@ packages: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "0.5.7+3" + version: "0.5.10" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.2+2" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+9" + version: "0.0.1+10" shared_preferences_platform_interface: dependency: transitive description: @@ -664,7 +755,7 @@ packages: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.9.5" stream_channel: dependency: transitive description: @@ -692,7 +783,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.15" + version: "0.2.17" timeline_list: dependency: "direct main" description: @@ -706,14 +797,21 @@ packages: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.2.0" url_launcher: dependency: "direct main" description: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "5.4.10" + version: "5.5.0" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+1" url_launcher_macos: dependency: transitive description: @@ -734,14 +832,14 @@ packages: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.1+6" + version: "0.1.2+1" uuid: dependency: "direct main" description: name: uuid url: "https://pub.dartlang.org" source: hosted - version: "2.0.4" + version: "2.2.0" vector_math: dependency: transitive description: @@ -749,13 +847,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.8" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0" xml: dependency: transitive description: name: xml url: "https://pub.dartlang.org" source: hosted - version: "3.6.1" + version: "4.2.0" yaml: dependency: transitive description: @@ -766,10 +871,12 @@ packages: zefyr: dependency: "direct main" description: - name: zefyr - url: "https://pub.dartlang.org" - source: hosted + path: "packages/zefyr" + ref: HEAD + resolved-ref: "20b890b7714fd54ccd0028da5b354d3d8ac68251" + url: "git://github.com/masewo/zefyr.git" + source: git version: "0.11.0" sdks: - dart: ">=2.7.0 <3.0.0" - flutter: ">=1.12.13+hotfix.6 <2.0.0" + dart: ">=2.9.0-14.0.dev <3.0.0" + flutter: ">=1.17.0 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index d6a6116..06777d8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,6 +41,10 @@ dependencies: photo_view: ^0.9.0 uuid: ^2.0.4 zefyr: + git: + url: git://github.com/masewo/zefyr.git + path: packages/zefyr + commit: 2e379982e97cc9b5aeb4fc0fcd85d6d32833f4ea flutter_signature_pad: ^2.0.0+1 path_provider: ^1.6.11 flutter_ringtone_player: ^2.0.0 From 76155a10e858edbd38c18a9c6731432985d39cb5 Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Thu, 27 Aug 2020 22:32:40 +0630 Subject: [PATCH 02/22] add phone signin --- .gitignore | 1 + .vscode/launch.json | 16 +- lib/fcs/common/data/providers/auth_fb.dart | 82 +++++ .../data/providers/user_fb_data_provider.dart | 7 + .../providers/user_local_data_provider.dart | 7 + lib/fcs/common/domain/entities/auth.dart | 11 + .../common/domain/entities/auth_status.dart | 1 + .../common/domain/entities/connectivity.dart | 5 + lib/fcs/common/domain/entities/user.dart | 285 ++++++++++++++++++ .../domain/exceiptions/server_exceptions.dart | 12 + .../common/pages/signin}/code_page.dart | 8 +- .../pages/signin/model/signin_model.dart | 8 + .../common/pages/signin}/signin_page.dart | 8 +- lib/fcs/common/services/auth_imp.dart | 37 +++ lib/fcs/common/services/auth_interface.dart | 7 + lib/fcs/common/services/user_imp.dart | 33 ++ lib/fcs/common/services/user_interface.dart | 5 + lib/main-local.dart | 17 ++ lib/pages/home_page.dart | 2 +- lib/pages/home_page_welcome.dart | 2 +- pubspec.yaml | 2 +- 21 files changed, 543 insertions(+), 13 deletions(-) create mode 100644 lib/fcs/common/data/providers/auth_fb.dart create mode 100644 lib/fcs/common/data/providers/user_fb_data_provider.dart create mode 100644 lib/fcs/common/data/providers/user_local_data_provider.dart create mode 100644 lib/fcs/common/domain/entities/auth.dart create mode 100644 lib/fcs/common/domain/entities/auth_status.dart create mode 100644 lib/fcs/common/domain/entities/connectivity.dart create mode 100644 lib/fcs/common/domain/entities/user.dart create mode 100644 lib/fcs/common/domain/exceiptions/server_exceptions.dart rename lib/{pages => fcs/common/pages/signin}/code_page.dart (97%) create mode 100644 lib/fcs/common/pages/signin/model/signin_model.dart rename lib/{pages => fcs/common/pages/signin}/signin_page.dart (96%) create mode 100644 lib/fcs/common/services/auth_imp.dart create mode 100644 lib/fcs/common/services/auth_interface.dart create mode 100644 lib/fcs/common/services/user_imp.dart create mode 100644 lib/fcs/common/services/user_interface.dart create mode 100644 lib/main-local.dart diff --git a/.gitignore b/.gitignore index c4c7ab6..734f9d4 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ app.*.map.json # Exceptions to above rules. !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages android/key.properties +android/key.jks diff --git a/.vscode/launch.json b/.vscode/launch.json index 62ecdbb..e7b950e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,7 +2,19 @@ "version": "0.2.0", "configurations": [ { - "name": "Flutter Dev", + "name": "Local Dev", + "request": "launch", + "type": "dart", + "program": "lib/main-local.dart", + "args": [ + "-t", + "lib/main-local.dart", + "--flavor", + "dev" + ], + }, + { + "name": "Dev", "request": "launch", "type": "dart", "program": "lib/main-dev.dart", @@ -14,7 +26,7 @@ ], }, { - "name": "Flutter Pro", + "name": "Pro", "request": "launch", "type": "dart", "program": "lib/main-prod.dart", diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/fcs/common/data/providers/auth_fb.dart new file mode 100644 index 0000000..9a9e19b --- /dev/null +++ b/lib/fcs/common/data/providers/auth_fb.dart @@ -0,0 +1,82 @@ +import 'dart:async'; + +import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; +import 'package:firebase_auth/firebase_auth.dart'; + +class AuthFb { + static final AuthFb instance = AuthFb._(); + AuthFb._(); + + final FirebaseAuth _fb = FirebaseAuth.instance; + static String _verificationId; + + Future sendSmsCodeToPhoneNumber(String phoneNumber) { + Completer completer = Completer(); + + final PhoneVerificationCompleted verificationCompleted = + (AuthCredential user) { + completer.complete(Auth(authStatus: AuthStatus.AUTH_VERIFIED)); + print( + 'Inside _sendCodeToPhoneNumber: signInWithPhoneNumber auto succeeded: $user'); + }; + + final PhoneVerificationFailed verificationFailed = + (AuthException authException) async { + print( + 'Phone number verification failed. Code: ${authException.code}. Message: ${authException.message}'); + completer.complete(Auth( + authStatus: AuthStatus.ERROR, + authErrorCode: authException.code, + authErrorMsg: authException.message)); + throw authException; + }; + + final PhoneCodeSent codeSent = + (String verificationId, [int forceResendingToken]) async { + _verificationId = verificationId; + print("code sent to " + phoneNumber); + completer.complete(Auth(authStatus: AuthStatus.SMS_SENT)); + }; + + final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout = + (String verificationId) { + _verificationId = verificationId; + }; + + _fb.verifyPhoneNumber( + phoneNumber: phoneNumber, + timeout: const Duration(minutes: 2), + verificationCompleted: verificationCompleted, + verificationFailed: verificationFailed, + codeSent: codeSent, + codeAutoRetrievalTimeout: codeAutoRetrievalTimeout); + + return completer.future; + } + + Future signInWithPhoneNumber(String smsCode) async { + Auth auth = Auth(); + try { + final AuthCredential credential = PhoneAuthProvider.getCredential( + verificationId: _verificationId, + smsCode: smsCode, + ); + + var firebaseUser = await _fb.signInWithCredential(credential); + final FirebaseUser currentUser = await _fb.currentUser(); + assert(firebaseUser.user.uid == currentUser.uid); + + auth.uid = firebaseUser.user.uid; + auth.authStatus = AuthStatus.AUTH_VERIFIED; + } on Exception catch (e) { + auth.authStatus = AuthStatus.ERROR; + auth.authErrorMsg = e.toString(); + } + return Future.value(auth); + } + + Future logout() { + return _fb.signOut(); + } +} diff --git a/lib/fcs/common/data/providers/user_fb_data_provider.dart b/lib/fcs/common/data/providers/user_fb_data_provider.dart new file mode 100644 index 0000000..d5e836c --- /dev/null +++ b/lib/fcs/common/data/providers/user_fb_data_provider.dart @@ -0,0 +1,7 @@ +import 'package:fcs/fcs/common/domain/entities/user.dart'; + +class UserFBDataProvider { + Future getUser(String id) { + return null; + } +} diff --git a/lib/fcs/common/data/providers/user_local_data_provider.dart b/lib/fcs/common/data/providers/user_local_data_provider.dart new file mode 100644 index 0000000..cce7642 --- /dev/null +++ b/lib/fcs/common/data/providers/user_local_data_provider.dart @@ -0,0 +1,7 @@ +import 'package:fcs/fcs/common/domain/entities/user.dart'; + +class UserLocalDataProvider { + Future getUser(String id) { + return null; + } +} diff --git a/lib/fcs/common/domain/entities/auth.dart b/lib/fcs/common/domain/entities/auth.dart new file mode 100644 index 0000000..5d173e3 --- /dev/null +++ b/lib/fcs/common/domain/entities/auth.dart @@ -0,0 +1,11 @@ +import 'auth_status.dart'; + +class Auth { + AuthStatus authStatus; + String authErrorCode; + String authErrorMsg; + + String uid; + + Auth({this.authStatus, this.authErrorCode, this.authErrorMsg}); +} diff --git a/lib/fcs/common/domain/entities/auth_status.dart b/lib/fcs/common/domain/entities/auth_status.dart new file mode 100644 index 0000000..540df1e --- /dev/null +++ b/lib/fcs/common/domain/entities/auth_status.dart @@ -0,0 +1 @@ +enum AuthStatus { SMS_SENT, AUTH_VERIFIED, ERROR } diff --git a/lib/fcs/common/domain/entities/connectivity.dart b/lib/fcs/common/domain/entities/connectivity.dart new file mode 100644 index 0000000..14674af --- /dev/null +++ b/lib/fcs/common/domain/entities/connectivity.dart @@ -0,0 +1,5 @@ +class Connectivity { + get isConnected { + return true; + } +} diff --git a/lib/fcs/common/domain/entities/user.dart b/lib/fcs/common/domain/entities/user.dart new file mode 100644 index 0000000..51248d6 --- /dev/null +++ b/lib/fcs/common/domain/entities/user.dart @@ -0,0 +1,285 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; + +class User { + String id; + String name; + String phoneNumber; + String fcsID; + String shippingAddress; + String deliveryAddress; + String get phone => phoneNumber != null && phoneNumber.startsWith("959") + ? "0${phoneNumber.substring(2)}" + : phoneNumber; + + List claimPrivileges = []; + + final String dateofBirth; + final String gender; + final String status; + final bool disable; + bool registeredBuyer; + List privilegeIds; + String roleName; + String roleID; + bool agreeTerms; + String bizID; + String accountID; + String email; + bool isBlock; + int userLevel; + String userLevelID; + + String frontUrl; + String backUrl; + String selfieUrl; + + DateTime lastActiveTime; + String device; + + String primaryDeviceID; + String primaryDeviceName; + + String pin; + + String get getname => this.name; + String get getphonenumber => this.phoneNumber; + String get getdateofBirth => this.dateofBirth; + bool get getdisable => this.disable; + + Future setFirebaseUser(FirebaseUser firebaseUser) async { + IdTokenResult idToken = await firebaseUser.getIdToken(refresh: true); + String privileges = idToken.claims["privileges"]; + if (privileges == null || privileges == "") return; + this.claimPrivileges = privileges.split(":").toList(); + + this.accountID = idToken.claims["account_id"]; + this.bizID = idToken.claims["biz_id"]; + } + + User( + {this.id, + this.name, + this.gender, + this.phoneNumber, + this.fcsID, + this.shippingAddress, + this.deliveryAddress, + this.dateofBirth, + this.roleName, + this.roleID, + this.privilegeIds, + this.email, + this.disable, + this.status, + this.frontUrl, + this.backUrl, + this.selfieUrl, + this.registeredBuyer, + this.agreeTerms, + this.lastActiveTime, + this.device, + this.primaryDeviceID, + this.primaryDeviceName, + this.isBlock, + this.userLevel, + this.userLevelID, + this.pin}); + + factory User.fromJson(Map json) { + return User( + id: json['id'], + name: json['user_name'], + phoneNumber: json['phone_number'], + dateofBirth: json['dob'], + gender: json['gender'], + frontUrl: json['front_url'], + backUrl: json['back_url'], + selfieUrl: json['selfie_url'], + status: json['status'], + agreeTerms: json['agree_terms'], + disable: json['disable'], + registeredBuyer: json['registered_buyer'], + privilegeIds: json['privileges'], + email: json['email'], + isBlock: json['black_list'], + userLevel: json['user_level'], + userLevelID: json['user_level_id'], + pin: json['pin']); + } + + factory User.fromUserJson(Map json) { + DateTime parsedDate = DateTime.parse(json['last_active_time']); + + return User( + id: json['id'], + name: json['user_name'], + phoneNumber: json['phone_number'], + dateofBirth: json['dob'], + roleName: json['role_name'], + roleID: json['role_id'], + disable: json['disable'], + gender: json['gender'], + status: json['status'], + lastActiveTime: parsedDate == null ? null : parsedDate, + device: json['last_active_device'], + email: json['email'], + primaryDeviceID: json['primary_device_id'], + primaryDeviceName: json['primary_device_name'], + userLevel: json['user_level'], + userLevelID: json['user_level_id'], + pin: json['pin']); + } + + Map toJson() => { + 'id': id, + 'user_name': name, + 'gender': gender, + 'phone_number': phoneNumber, + 'dob': dateofBirth, + 'roleName': roleName, + 'roleId': roleID, + 'disable': disable, + 'status': status, + 'registered_buyer': registeredBuyer, + 'agree_terms': agreeTerms, + 'front_url': frontUrl, + 'back_url': backUrl, + 'selfie_url': selfieUrl, + 'email': email, + 'black_list': isBlock, + 'user_level': userLevel, + 'user_level_id': userLevelID, + 'pin': pin, + 'privileges': privilegeIds, + }; + + Map toMap() { + return { + 'user_name': name, + 'phone_number': phoneNumber, + 'dob': dateofBirth, + 'role_name': roleName, + 'role_id': roleID, + 'disable': disable, + 'gender': gender, + 'status': status, + 'email': email, + 'black_list': isBlock, + 'user_level': userLevel, + 'user_level_id': userLevelID, + 'pin': pin + }; + } + + factory User.fromMap(Map map, String docID) { + var activeTime = (map['last_active_time'] as Timestamp); + return User( + id: docID, + name: map['user_name'], + phoneNumber: map['phone_number'], + privilegeIds: + map['privileges'] == null ? [] : map['privileges'].cast(), + dateofBirth: map['dob'], + roleName: map['role_name'], + roleID: map['role_id'], + disable: map['disable'], + gender: map['gender'], + status: map['status'], + registeredBuyer: map['registered_buyer'], + agreeTerms: map['agree_terms'] == null ? false : map['agree_terms'], + lastActiveTime: activeTime == null ? null : activeTime.toDate(), + device: map['last_active_device'], + email: map['email'], + primaryDeviceID: map['primary_device_id'], + primaryDeviceName: map['primary_device_name'], + isBlock: map['black_list'], + userLevel: map['user_level'], + userLevelID: map['user_level_id'], + pin: map['pin']); + } + + bool isBlockUser() { + return this.isBlock == true; + } + + bool isPrimaryDevice() { + return this.primaryDeviceID != null && this.primaryDeviceID != ''; + } + + bool isRegisteredBuyer() { + return this.registeredBuyer != null && this.registeredBuyer; + } + + bool isSysAdmin() { + return claimPrivileges != null + ? claimPrivileges.contains('sys_admin') + : false; + } + + bool isSysSupport() { + return claimPrivileges != null + ? claimPrivileges.contains('sys_support') + : false; + } + + bool isBizAdmin() { + return claimPrivileges != null ? claimPrivileges.contains('ba') : false; + } + + bool isBuyer() { + return claimPrivileges == null || claimPrivileges.length == 0; + } + + bool isEmail() { + return email != null; + } + + bool hasAccount() { + return isOwner() || + (claimPrivileges != null ? claimPrivileges.contains('a') : false); + } + + bool hasDelivery() { + return isOwner() || + (claimPrivileges != null ? claimPrivileges.contains('d') : false); + } + + bool hasBuyer() { + return isOwner() || + (claimPrivileges != null ? claimPrivileges.contains('b') : false); + } + + bool isOwner() { + return claimPrivileges != null ? claimPrivileges.contains('o') : false; + } + + bool isOwnerAndAbove() { + return isOwner() || isBizAdmin() || isSysAdmin(); + } + + bool hasAdmin() { + return isOwner() || + (claimPrivileges != null ? claimPrivileges.contains('admin') : false); + } + + bool hasDO() { + return isOwner() || + (claimPrivileges != null ? claimPrivileges.contains('do') : false); + } + + bool hasPO() { + return isOwner() || + (claimPrivileges != null ? claimPrivileges.contains('po') : false); + } + + bool hasInventory() { + return isOwner() || + (claimPrivileges != null ? claimPrivileges.contains('inv') : false); + } + + @override + String toString() { + return 'User{name: $name, phoneNumber: $phoneNumber,dateofBirth:$dateofBirth,disable:$disable,gender:$gender,roleName:$roleName,roleID:$roleID,privilegeIds:$privilegeIds,status:$status,frontUrl:$frontUrl,backUrl:$backUrl,selfieUrl:$selfieUrl}'; + } +} diff --git a/lib/fcs/common/domain/exceiptions/server_exceptions.dart b/lib/fcs/common/domain/exceiptions/server_exceptions.dart new file mode 100644 index 0000000..a76ba67 --- /dev/null +++ b/lib/fcs/common/domain/exceiptions/server_exceptions.dart @@ -0,0 +1,12 @@ + +class ServerException { + @override + List get props => null; + + call() { + return null; + } + + @override + bool get stringify => null; +} diff --git a/lib/pages/code_page.dart b/lib/fcs/common/pages/signin/code_page.dart similarity index 97% rename from lib/pages/code_page.dart rename to lib/fcs/common/pages/signin/code_page.dart index e167125..f9f3dd2 100644 --- a/lib/pages/code_page.dart +++ b/lib/fcs/common/pages/signin/code_page.dart @@ -8,10 +8,10 @@ import 'package:flutter/material.dart'; import 'package:pin_input_text_field/pin_input_text_field.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; -import '../widget/local_text.dart'; -import '../widget/progress.dart'; -import 'user_edit.dart'; +import '../../../../theme/theme.dart'; +import '../../../../widget/local_text.dart'; +import '../../../../widget/progress.dart'; +import '../../../../pages/user_edit.dart'; const resend_count_sec = 5; diff --git a/lib/fcs/common/pages/signin/model/signin_model.dart b/lib/fcs/common/pages/signin/model/signin_model.dart new file mode 100644 index 0000000..15d8308 --- /dev/null +++ b/lib/fcs/common/pages/signin/model/signin_model.dart @@ -0,0 +1,8 @@ +import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; +import 'package:flutter/foundation.dart'; + +class SigninModel extends ChangeNotifier { + setPhoneNumber(String phoneNumber) async { + await AuthFb.instance.sendSmsCodeToPhoneNumber(phoneNumber); + } +} diff --git a/lib/pages/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart similarity index 96% rename from lib/pages/signin_page.dart rename to lib/fcs/common/pages/signin/signin_page.dart index 6b720b1..ce8f25e 100644 --- a/lib/pages/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -4,11 +4,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../theme/theme.dart'; -import '../widget/local_text.dart'; -import '../widget/progress.dart'; +import '../../../../theme/theme.dart'; +import '../../../../widget/local_text.dart'; +import '../../../../widget/progress.dart'; import 'code_page.dart'; -import 'util.dart'; +import '../../../../pages/util.dart'; class SigninPage extends StatefulWidget { @override diff --git a/lib/fcs/common/services/auth_imp.dart b/lib/fcs/common/services/auth_imp.dart new file mode 100644 index 0000000..f510cd1 --- /dev/null +++ b/lib/fcs/common/services/auth_imp.dart @@ -0,0 +1,37 @@ +import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; +import 'package:fcs/fcs/common/data/providers/user_fb_data_provider.dart'; +import 'package:fcs/fcs/common/data/providers/user_local_data_provider.dart'; +import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; +import 'package:flutter/material.dart'; + +import 'auth_interface.dart'; + +class AuthImp implements AuthInterface { + AuthImp({ + @required this.authFb, + @required this.connectivity, + @required this.userFBDataProvider, + @required this.userLocalDataProvider, + }); + + final Connectivity connectivity; + final UserFBDataProvider userFBDataProvider; + final UserLocalDataProvider userLocalDataProvider; + final AuthFb authFb; + + @override + Future sendSmsCodeToPhoneNumber(String phoneNumber) { + return authFb.sendSmsCodeToPhoneNumber(phoneNumber); + } + + @override + Future signInWithSmsCode(String smsCode) { + return authFb.signInWithPhoneNumber(smsCode); + } + + @override + Future logout() { + return authFb.logout(); + } +} diff --git a/lib/fcs/common/services/auth_interface.dart b/lib/fcs/common/services/auth_interface.dart new file mode 100644 index 0000000..8034341 --- /dev/null +++ b/lib/fcs/common/services/auth_interface.dart @@ -0,0 +1,7 @@ +import 'package:fcs/fcs/common/domain/entities/auth.dart'; + +abstract class AuthInterface { + Future sendSmsCodeToPhoneNumber(String phoneNumber); + Future signInWithSmsCode(String smsCode); + Future logout(); +} diff --git a/lib/fcs/common/services/user_imp.dart b/lib/fcs/common/services/user_imp.dart new file mode 100644 index 0000000..c863333 --- /dev/null +++ b/lib/fcs/common/services/user_imp.dart @@ -0,0 +1,33 @@ +import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/domain/exceiptions/server_exceptions.dart'; +import 'package:flutter/material.dart'; + +import 'user_interface.dart'; + +class UserImp implements UserInterface { + UserImp({ + @required this.connectivity, + }); + + final Connectivity connectivity; + + @override + Future getUser(String id) async { + if (connectivity.isConnected) { + try { + final User user = User(); + // await userFBDataProvider.getUser(id); + // cache product + // productLocalDataProvider.cacheProduct(product); + return user; + } catch (e) { + print(e); + return ServerException()(); + } + } else { + return Future.value(User()); + // return userLocalDataProvider.getUser(id); + } + } +} diff --git a/lib/fcs/common/services/user_interface.dart b/lib/fcs/common/services/user_interface.dart new file mode 100644 index 0000000..31d48f4 --- /dev/null +++ b/lib/fcs/common/services/user_interface.dart @@ -0,0 +1,5 @@ +import 'package:fcs/fcs/common/domain/entities/user.dart'; + +abstract class UserInterface { + Future getUser(String id); +} diff --git a/lib/main-local.dart b/lib/main-local.dart new file mode 100644 index 0000000..6d48ad8 --- /dev/null +++ b/lib/main-local.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:logging/logging.dart'; +import 'package:fcs/config.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import 'app.dart'; + +void main() { + Config( + flavor: Flavor.DEV, + color: Colors.blue, + apiURL: "https://localhost:7777", + reportURL: "http://petrok-dev.mokkon.com:8080", + reportProjectID: "dev", + level: Level.ALL); + runApp(App()); +} diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 4b02747..6a421d0 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -58,7 +58,7 @@ import 'my_registeration.dart'; import 'pd/pd_list.dart'; import 'products_list.dart'; import 'profile_page.dart'; -import 'signin_page.dart'; +import '../fcs/common/pages/signin/signin_page.dart'; import 'staff_list.dart'; import 'fcs_profile_page.dart'; diff --git a/lib/pages/home_page_welcome.dart b/lib/pages/home_page_welcome.dart index 6f37b24..74e232b 100644 --- a/lib/pages/home_page_welcome.dart +++ b/lib/pages/home_page_welcome.dart @@ -15,7 +15,7 @@ import 'package:provider/provider.dart'; import '../theme/theme.dart'; import 'profile_page.dart'; -import 'signin_page.dart'; +import '../fcs/common/pages/signin/signin_page.dart'; import 'term.dart'; final msgLog = Logger('backgroundMessageHandler'); diff --git a/pubspec.yaml b/pubspec.yaml index 06777d8..44856c5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: fcs -description: A new Flutter project. +description: FCS Logistics publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 From 10338bbfe9cbea2ee89376dd592cf508588a7150 Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Sun, 30 Aug 2020 21:26:37 +0630 Subject: [PATCH 03/22] add signin function --- lib/app.dart | 89 +++++----- lib/charts/bar_chart.dart | 5 +- lib/charts/delivery_do_line.dart | 9 +- lib/charts/delivery_do_line_detail.dart | 2 +- lib/charts/delivery_do_summary.dart | 2 +- lib/charts/delivery_do_summary_details.dart | 2 +- lib/charts/delivery_line.dart | 2 +- lib/charts/delivery_line_data.dart | 9 +- lib/charts/delivery_line_detail.dart | 9 +- lib/charts/delivery_summary.dart | 2 +- lib/charts/delivery_summary_detail.dart | 2 +- lib/charts/do_line.dart | 2 +- lib/charts/do_line_detail.dart | 2 +- lib/charts/po_balance_chart.dart | 2 +- lib/charts/po_balance_table.dart | 2 +- lib/charts/po_balanceby_buyer.dart | 4 +- lib/charts/po_line.dart | 2 +- lib/charts/po_line_detail.dart | 2 +- lib/charts/qtyby_customer_table.dart | 2 +- lib/charts/revenue_line.dart | 2 +- lib/charts/revenue_line_data.dart | 12 +- lib/charts/revenue_line_detail.dart | 2 +- lib/{model => fcs/common}/api_helper.dart | 2 +- lib/fcs/common/data/providers/auth_fb.dart | 67 +++++-- lib/fcs/common/domain/entities/auth.dart | 2 + .../common/domain/entities/auth_status.dart | 2 +- lib/{ => fcs/common}/pages/home_page.dart | 70 ++------ lib/{ => fcs/common}/pages/profile_page.dart | 26 ++- lib/fcs/common/pages/signin/code_page.dart | 28 ++- .../pages/signin/model/signin_model.dart | 21 ++- lib/fcs/common/pages/signin/signin_page.dart | 26 ++- .../common/pages/signin/signup_page.dart} | 21 ++- .../common/pages/splash_page.dart} | 6 +- .../common/pages/welcome_page.dart} | 165 +++++++++--------- lib/fcs/common/services/auth_imp.dart | 4 +- lib/fcs/common/services/auth_interface.dart | 2 +- lib/{theme => fcs/common}/theme.dart | 2 +- lib/main-dev.dart | 6 +- lib/model/base_model.dart | 2 +- lib/model/buyer_model.dart | 2 +- lib/model/do_model.dart | 6 +- lib/model/main_model.dart | 10 +- lib/model/report_model.dart | 2 +- lib/pages/add_pin_editor.dart | 2 +- lib/pages/announcement.dart | 2 +- lib/pages/announcement_editor.dart | 2 +- lib/pages/announcement_list.dart | 47 ++--- lib/pages/banks/bank_edit.dart | 2 +- lib/pages/banks/banks.dart | 2 +- lib/pages/barcode_screen_page.dart | 2 +- lib/pages/block_list.dart | 2 +- lib/pages/buyer_info.dart | 2 +- lib/pages/buyer_list.dart | 2 +- lib/pages/buyer_list_row.dart | 2 +- lib/pages/buying_online.dart | 2 +- lib/pages/calculate_shipment_cost_editor.dart | 8 +- lib/pages/chage_phone_number.dart | 2 +- lib/pages/change_password.dart | 2 +- lib/pages/confirm_email.dart | 4 +- lib/pages/contact.dart | 2 +- lib/pages/contact_editor.dart | 2 +- lib/pages/custom_editor.dart | 2 +- lib/pages/customer_editor.dart | 2 +- lib/pages/customer_list.dart | 4 +- lib/pages/delivery/delivery_item.dart | 12 +- lib/pages/delivery/delivery_list.dart | 2 +- lib/pages/device_list.dart | 2 +- lib/pages/discount_by_weight_editor.dart | 2 +- lib/pages/discount_editor.dart | 2 +- lib/pages/discount_list.dart | 7 +- lib/pages/do/do_approve.dart | 19 +- lib/pages/do/do_creation_form.dart | 52 +++--- lib/pages/do/do_creation_todelete.dart | 2 +- lib/pages/do/do_list.dart | 2 +- lib/pages/do/do_product_item.dart | 2 +- lib/pages/do/do_storage_item.dart | 2 +- lib/pages/do/photo_page.dart | 2 +- lib/pages/do/po_selection.dart | 2 +- lib/pages/document_log_page.dart | 2 +- lib/pages/email_page.dart | 5 +- lib/pages/fcs_profile_page.dart | 2 +- lib/pages/forget_password.dart | 2 +- lib/pages/instruction.dart | 7 +- lib/pages/invitation_page.dart | 2 +- lib/pages/invoice/box_addition.dart | 6 +- lib/pages/invoice/invoce_list.dart | 25 +-- lib/pages/invoice/invoice_editor.dart | 46 +++-- lib/pages/invoice/invoice_list_row.dart | 49 +++--- lib/pages/invoice/package_addition.dart | 2 +- lib/pages/invoice/package_info.dart | 6 +- lib/pages/invoice/payment_page.dart | 2 +- lib/pages/invoice/payment_pdf_screen.dart | 4 +- lib/pages/log_list.dart | 2 +- lib/pages/login_page.dart | 7 +- lib/pages/manual/instruction_data_page.dart | 2 +- lib/pages/manual/manual_page.dart | 2 +- lib/pages/message_detail.dart | 4 +- lib/pages/my_registeration.dart | 2 +- lib/pages/my_registeration_info.dart | 14 +- lib/pages/my_registeration_item.dart | 2 +- lib/pages/notification_list.dart | 2 +- lib/pages/payment_editor.dart | 2 +- lib/pages/payment_method_page.dart | 2 +- lib/pages/pd/pd_form.dart | 8 +- lib/pages/pd/pd_item.dart | 2 +- lib/pages/pd/pd_list.dart | 2 +- lib/pages/phone_input.dart | 4 +- lib/pages/pickup_box_editor.dart | 2 +- lib/pages/pickup_editor.dart | 2 +- lib/pages/pickup_list.dart | 2 +- lib/pages/pickup_list_row.dart | 2 +- lib/pages/pin_login_dialog.dart | 2 +- lib/pages/po/po_item.dart | 4 +- lib/pages/po/po_submission_form.dart | 2 +- lib/pages/product_edit_item.dart | 2 +- lib/pages/products_list.dart | 2 +- lib/pages/products_list_edit.dart | 2 +- lib/pages/profile_edit.dart | 2 +- lib/pages/profile_setting.dart | 2 +- lib/pages/quota_form.dart | 2 +- lib/pages/quota_page.dart | 2 +- lib/pages/report_user_editor.dart | 2 +- lib/pages/report_user_list.dart | 2 +- lib/pages/reset_password.dart | 4 +- lib/pages/search_page.dart | 2 +- lib/pages/setting_editor.dart | 8 +- lib/pages/setting_editor_byOwner.dart | 2 +- lib/pages/shipment_editor.dart | 2 +- lib/pages/shipment_list.dart | 2 +- lib/pages/shipment_list_row.dart | 2 +- lib/pages/shipment_rates.dart | 2 +- lib/pages/shipment_rates_calculate.dart | 2 +- lib/pages/shipment_rates_edit.dart | 2 +- lib/pages/shipping_address_editor.dart | 4 +- lib/pages/sms_page.dart | 2 +- lib/pages/staff_editor.dart | 2 +- lib/pages/staff_list.dart | 4 +- lib/pages/storage/inventory_item.dart | 2 +- lib/pages/storage/inventory_take.dart | 8 +- lib/pages/storage/inventory_taking_list.dart | 2 +- lib/pages/storage/storage_addition.dart | 12 +- lib/pages/storage/storage_list.dart | 6 +- lib/pages/term.dart | 2 +- lib/pages/term_edit.dart | 2 +- lib/pages/test_list.dart | 2 +- lib/pages/user_editor.dart | 2 +- lib/pages/user_list.dart | 2 +- lib/pages/user_search_page.dart | 2 +- lib/pages/util.dart | 4 +- lib/pages/welcome_page.dart | 161 ----------------- lib/pages_fcs/box_editor.dart | 2 +- lib/pages_fcs/box_list.dart | 2 +- lib/pages_fcs/cargo_editor.dart | 2 +- lib/pages_fcs/delivery_list.dart | 2 +- lib/pages_fcs/package_editor.dart | 5 +- lib/pages_fcs/package_list.dart | 2 +- lib/pages_fcs/pickup_editor.dart | 2 +- lib/pages_fcs/shipping_address_list.dart | 2 +- lib/pages_fcs/shipping_address_row.dart | 2 +- lib/reports/report_field_list_page.dart | 2 +- lib/reports/report_filter_list_page.dart | 2 +- lib/reports/report_list.dart | 2 +- lib/reports/reports_data_table.dart | 2 +- lib/widget/NetworkConnectivity.dart | 2 +- lib/widget/fcs_text_field.dart | 2 +- lib/widget/fcs_text_field_readonly.dart | 2 +- lib/widget/label_widgets.dart | 10 +- lib/widget/local_text.dart | 2 +- lib/widget/local_text_field.dart | 2 +- lib/widget/number_cell.dart | 2 +- lib/widget/products.dart | 4 +- lib/widget/products_price_table.dart | 6 +- lib/widget/progress.dart | 2 +- lib/widget/show_img.dart | 2 +- pubspec.lock | 9 +- pubspec.yaml | 2 +- 176 files changed, 664 insertions(+), 756 deletions(-) rename lib/{model => fcs/common}/api_helper.dart (99%) rename lib/{ => fcs/common}/pages/home_page.dart (90%) rename lib/{ => fcs/common}/pages/profile_page.dart (97%) rename lib/{pages/user_edit.dart => fcs/common/pages/signin/signup_page.dart} (84%) rename lib/{pages/splash.dart => fcs/common/pages/splash_page.dart} (97%) rename lib/{pages/home_page_welcome.dart => fcs/common/pages/welcome_page.dart} (68%) rename lib/{theme => fcs/common}/theme.dart (98%) delete mode 100644 lib/pages/welcome_page.dart diff --git a/lib/app.dart b/lib/app.dart index 617ce37..ce29ae6 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,22 +1,22 @@ -import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/model_fcs/message_model.dart'; -import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/vo/message.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/delivery_model.dart'; +import 'package:fcs/model/discount_model.dart'; import 'package:fcs/model/manual_model.dart'; import 'package:fcs/model/notification_model.dart'; import 'package:fcs/model/pd_model.dart'; import 'package:fcs/model/reg_model.dart'; import 'package:fcs/model/report_model.dart'; +import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/model/test_model.dart'; +import 'package:fcs/model_fcs/message_model.dart'; +import 'package:fcs/model_fcs/package_model.dart'; import 'package:fcs/pages/email_page.dart'; import 'package:fcs/pages/login_page.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:provider/provider.dart'; import 'model/announcement_model.dart'; import 'model/chart_model.dart'; @@ -35,11 +35,10 @@ import 'model/report_user_model.dart'; import 'model/shipment_rate_model.dart'; import 'model/user_model.dart'; import 'model_fcs/box_model.dart'; -import 'pages/home_page.dart'; -import 'pages/home_page_welcome.dart'; -import 'pages/splash.dart'; +import 'fcs/common/pages/home_page.dart'; +import 'fcs/common/pages/welcome_page.dart'; +import 'fcs/common/pages/splash_page.dart'; import 'pages/term.dart'; -import 'pages/welcome_page.dart'; import 'widget/localization/app_translations_delegate.dart'; import 'widget/localization/transalation.dart'; @@ -131,9 +130,8 @@ class _AppState extends State { Map route(BuildContext context) { final routes = { '/': (_) => SplashScreen(), - '/home': (_) => HomePageWelcome(), - '/homeLogin': (_) => HomePage(), - '/welcome': (context) => WelcomePage(), + '/welcome': (_) => WelcomePage(), + '/home': (_) => HomePage(), '/term': (context) => Term( agreePage: true, ), @@ -147,38 +145,37 @@ class _AppState extends State { Widget build(BuildContext context) { return MultiProvider( providers: [ - ChangeNotifierProvider(builder: (context) => mainModel), - ChangeNotifierProvider(builder: (context) => userModel), - ChangeNotifierProvider(builder: (context) => productModel), - ChangeNotifierProvider(builder: (context) => employeeModel), - ChangeNotifierProvider(builder: (context) => poSubmissionModel), - ChangeNotifierProvider(builder: (context) => doModel), - ChangeNotifierProvider(builder: (context) => storageModel), - ChangeNotifierProvider(builder: (context) => pdModel), - ChangeNotifierProvider(builder: (context) => lanuguageModel), - ChangeNotifierProvider(builder: (context) => regModel), - ChangeNotifierProvider(builder: (context) => buyerModel), - ChangeNotifierProvider(builder: (context) => notificationModel), - ChangeNotifierProvider(builder: (context) => chartModel), - ChangeNotifierProvider(builder: (context) => deliveryModel), - ChangeNotifierProvider(builder: (context) => manualModel), - ChangeNotifierProvider(builder: (context) => logModel), - ChangeNotifierProvider(builder: (context) => deliveryModel), - ChangeNotifierProvider(builder: (context) => phoneDeviceModel), - ChangeNotifierProvider(builder: (context) => reportModel), - ChangeNotifierProvider(builder: (context) => announcementModel), - ChangeNotifierProvider(builder: (context) => reportUserModel), - ChangeNotifierProvider(builder: (context) => pickUpModel), - ChangeNotifierProvider(builder: (context) => shipmentRateModel), - ChangeNotifierProvider(builder: (context) => shipmentModel), - ChangeNotifierProvider(builder: (context) => packageModel), - ChangeNotifierProvider(builder: (context) => boxModel), - ChangeNotifierProvider(builder: (context) => messageModel), - ChangeNotifierProvider(builder: (context) => invoiceModel), - ChangeNotifierProvider(builder: (context) => customerModel), - ChangeNotifierProvider(builder: (context) => discountModel), + ChangeNotifierProvider.value(value: mainModel), + ChangeNotifierProvider.value(value: userModel), + ChangeNotifierProvider.value(value: productModel), + ChangeNotifierProvider.value(value: employeeModel), + ChangeNotifierProvider.value(value: poSubmissionModel), + ChangeNotifierProvider.value(value: doModel), + ChangeNotifierProvider.value(value: storageModel), + ChangeNotifierProvider.value(value: pdModel), + ChangeNotifierProvider.value(value: lanuguageModel), + ChangeNotifierProvider.value(value: regModel), + ChangeNotifierProvider.value(value: buyerModel), + ChangeNotifierProvider.value(value: notificationModel), + ChangeNotifierProvider.value(value: chartModel), + ChangeNotifierProvider.value(value: deliveryModel), + ChangeNotifierProvider.value(value: logModel), + ChangeNotifierProvider.value(value: phoneDeviceModel), + ChangeNotifierProvider.value(value: reportModel), + ChangeNotifierProvider.value(value: announcementModel), + ChangeNotifierProvider.value(value: reportUserModel), + ChangeNotifierProvider.value(value: pickUpModel), + ChangeNotifierProvider.value(value: shipmentRateModel), + ChangeNotifierProvider.value(value: shipmentModel), + ChangeNotifierProvider.value(value: packageModel), + ChangeNotifierProvider.value(value: boxModel), + ChangeNotifierProvider.value(value: messageModel), + ChangeNotifierProvider.value(value: invoiceModel), + ChangeNotifierProvider.value(value: customerModel), + ChangeNotifierProvider.value(value: discountModel), + ChangeNotifierProvider.value(value: testModel), ChangeNotifierProvider( - builder: (context) => testModel, + create: (_) => SigninModel(), ), ], child: Consumer( diff --git a/lib/charts/bar_chart.dart b/lib/charts/bar_chart.dart index 4421669..bd3cee6 100644 --- a/lib/charts/bar_chart.dart +++ b/lib/charts/bar_chart.dart @@ -6,7 +6,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/charts/qtyby_customer_table.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; @@ -41,7 +41,8 @@ class _BarChartState extends State { }); }); - this.chartSummary + this + .chartSummary .sort((s1, s2) => s1.displayOrder.compareTo(s2.displayOrder)); } List> series = [ diff --git a/lib/charts/delivery_do_line.dart b/lib/charts/delivery_do_line.dart index f9f53d9..2ae625f 100644 --- a/lib/charts/delivery_do_line.dart +++ b/lib/charts/delivery_do_line.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; @@ -45,7 +45,8 @@ class _DODeliveryLineChartState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - LocalText(context, "delivery.do.title", color: primaryColor, fontSize: 16), + LocalText(context, "delivery.do.title", + color: primaryColor, fontSize: 16), InkWell( child: LocalText( context, @@ -54,8 +55,8 @@ class _DODeliveryLineChartState extends State { fontSize: 14, ), onTap: () { - Navigator.of(context) - .push(MaterialPageRoute(builder: (_) => DODeliveryLineDetail())); + Navigator.of(context).push(MaterialPageRoute( + builder: (_) => DODeliveryLineDetail())); }, ), ], diff --git a/lib/charts/delivery_do_line_detail.dart b/lib/charts/delivery_do_line_detail.dart index b8ba3cb..353ee93 100644 --- a/lib/charts/delivery_do_line_detail.dart +++ b/lib/charts/delivery_do_line_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/delivery_do_summary.dart b/lib/charts/delivery_do_summary.dart index 889299c..7fece95 100644 --- a/lib/charts/delivery_do_summary.dart +++ b/lib/charts/delivery_do_summary.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/delivery_do_summary_details.dart b/lib/charts/delivery_do_summary_details.dart index e9c77e0..486b53e 100644 --- a/lib/charts/delivery_do_summary_details.dart +++ b/lib/charts/delivery_do_summary_details.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/delivery_line.dart b/lib/charts/delivery_line.dart index 5e74c90..ba930f8 100644 --- a/lib/charts/delivery_line.dart +++ b/lib/charts/delivery_line.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/delivery_line_data.dart b/lib/charts/delivery_line_data.dart index 8428f61..e813768 100644 --- a/lib/charts/delivery_line_data.dart +++ b/lib/charts/delivery_line_data.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; @@ -56,7 +56,8 @@ class _DeliveryBarDataState extends State { columnSpacing: 100, columns: [ MyDataColumn(label: LocalText(context, "delivery.date")), - MyDataColumn(label: LocalText(context, "delivery.qty"),numeric: true), + MyDataColumn( + label: LocalText(context, "delivery.qty"), numeric: true), ], rows: getProductRow(chartModel.revenue.getDelivery()), ), @@ -80,9 +81,7 @@ class _DeliveryBarDataState extends State { MyDataCell( new Text(dateFormatter.format(d.date), style: textStyle), ), - MyDataCell( - NumberCell(d.amount) - ), + MyDataCell(NumberCell(d.amount)), ], ); diff --git a/lib/charts/delivery_line_detail.dart b/lib/charts/delivery_line_detail.dart index 8319317..445d376 100644 --- a/lib/charts/delivery_line_detail.dart +++ b/lib/charts/delivery_line_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/do_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; @@ -61,7 +61,8 @@ class _DeliveryBarDetailState extends State { columns: [ MyDataColumn(label: LocalText(context, "do.name")), MyDataColumn(label: LocalText(context, "do.do_num")), - MyDataColumn(label: LocalText(context, "do.quantity"),numeric: true), + MyDataColumn( + label: LocalText(context, "do.quantity"), numeric: true), ], rows: getProductRow(), ), @@ -82,9 +83,7 @@ class _DeliveryBarDetailState extends State { MyDataCell( new Text(d.doNumber, style: textStyle), ), - MyDataCell( - NumberCell(d.totalQty) - ), + MyDataCell(NumberCell(d.totalQty)), ], ); diff --git a/lib/charts/delivery_summary.dart b/lib/charts/delivery_summary.dart index 49a3e28..2d7eb26 100644 --- a/lib/charts/delivery_summary.dart +++ b/lib/charts/delivery_summary.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'delivery_summary_detail.dart'; diff --git a/lib/charts/delivery_summary_detail.dart b/lib/charts/delivery_summary_detail.dart index 0a6fcae..4065acf 100644 --- a/lib/charts/delivery_summary_detail.dart +++ b/lib/charts/delivery_summary_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/do_line.dart b/lib/charts/do_line.dart index 6300b05..fe1c8ca 100644 --- a/lib/charts/do_line.dart +++ b/lib/charts/do_line.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/do_line_detail.dart b/lib/charts/do_line_detail.dart index 5faa01e..add1cce 100644 --- a/lib/charts/do_line_detail.dart +++ b/lib/charts/do_line_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/po_balance_chart.dart b/lib/charts/po_balance_chart.dart index be48f37..6d2450a 100644 --- a/lib/charts/po_balance_chart.dart +++ b/lib/charts/po_balance_chart.dart @@ -6,7 +6,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/charts/po_balance_table.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/po_balance_table.dart b/lib/charts/po_balance_table.dart index b28ec94..66f3f2f 100644 --- a/lib/charts/po_balance_table.dart +++ b/lib/charts/po_balance_table.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/charts/po_balanceby_buyer.dart b/lib/charts/po_balanceby_buyer.dart index 7a11fdc..77b7708 100644 --- a/lib/charts/po_balanceby_buyer.dart +++ b/lib/charts/po_balanceby_buyer.dart @@ -3,15 +3,13 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; class POBalanceChart_ extends StatefulWidget { @override _POBalanceChartState createState() => _POBalanceChartState(); - - } class _POBalanceChartState extends State { diff --git a/lib/charts/po_line.dart b/lib/charts/po_line.dart index a89cf0a..ac6da23 100644 --- a/lib/charts/po_line.dart +++ b/lib/charts/po_line.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/charts/po_line_detail.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/po_line_detail.dart b/lib/charts/po_line_detail.dart index 002a30f..f0f570e 100644 --- a/lib/charts/po_line_detail.dart +++ b/lib/charts/po_line_detail.dart @@ -4,7 +4,7 @@ import 'package:http/http.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/qtyby_customer_table.dart b/lib/charts/qtyby_customer_table.dart index 4892da7..f35d178 100644 --- a/lib/charts/qtyby_customer_table.dart +++ b/lib/charts/qtyby_customer_table.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/charts/revenue_line.dart b/lib/charts/revenue_line.dart index ad3f9e8..385e7ca 100644 --- a/lib/charts/revenue_line.dart +++ b/lib/charts/revenue_line.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/revenue_line_data.dart b/lib/charts/revenue_line_data.dart index d5301d7..99b8986 100644 --- a/lib/charts/revenue_line_data.dart +++ b/lib/charts/revenue_line_data.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; @@ -56,7 +56,9 @@ class _RevenueLineDataState extends State { columnSpacing: 100, columns: [ MyDataColumn(label: LocalText(context, "revenue.date")), - MyDataColumn(label: LocalText(context, "revenue.amount"),numeric: true), + MyDataColumn( + label: LocalText(context, "revenue.amount"), + numeric: true), ], rows: getProductRow(chartModel.revenue.getData()), ), @@ -70,7 +72,7 @@ class _RevenueLineDataState extends State { List getProductRow(List revs) { return revs.map((p) { var r = MyDataRow( - onSelectChanged: (bool selected) async { + onSelectChanged: (bool selected) async { Navigator.push( context, MaterialPageRoute(builder: (context) => RevenueLineDetail(p.date)), @@ -80,9 +82,7 @@ class _RevenueLineDataState extends State { MyDataCell( new Text(dateFormatter.format(p.date), style: textStyle), ), - MyDataCell( - NumberCell(p.amount) - ), + MyDataCell(NumberCell(p.amount)), ], ); diff --git a/lib/charts/revenue_line_detail.dart b/lib/charts/revenue_line_detail.dart index 03187ad..7b976cb 100644 --- a/lib/charts/revenue_line_detail.dart +++ b/lib/charts/revenue_line_detail.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/model/api_helper.dart b/lib/fcs/common/api_helper.dart similarity index 99% rename from lib/model/api_helper.dart rename to lib/fcs/common/api_helper.dart index cb6e5ce..b5e958f 100644 --- a/lib/model/api_helper.dart +++ b/lib/fcs/common/api_helper.dart @@ -6,7 +6,7 @@ import 'package:dio/dio.dart'; import 'package:logging/logging.dart'; import 'package:fcs/vo/status.dart'; -import '../config.dart'; +import '../../config.dart'; final log = Logger('requestAPI'); diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/fcs/common/data/providers/auth_fb.dart index 9a9e19b..bbb90ba 100644 --- a/lib/fcs/common/data/providers/auth_fb.dart +++ b/lib/fcs/common/data/providers/auth_fb.dart @@ -4,21 +4,29 @@ import 'package:fcs/fcs/common/domain/entities/auth.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:firebase_auth/firebase_auth.dart'; +import '../../api_helper.dart'; + class AuthFb { static final AuthFb instance = AuthFb._(); AuthFb._(); - final FirebaseAuth _fb = FirebaseAuth.instance; + static final FirebaseAuth _fb = FirebaseAuth.instance; + static FirebaseUser firebaseUser; static String _verificationId; Future sendSmsCodeToPhoneNumber(String phoneNumber) { Completer completer = Completer(); final PhoneVerificationCompleted verificationCompleted = - (AuthCredential user) { - completer.complete(Auth(authStatus: AuthStatus.AUTH_VERIFIED)); + (AuthCredential authCredential) async { + firebaseUser = await _signIn(authCredential); + Auth auth = Auth(authStatus: AuthStatus.AUTH_VERIFIED); + auth.uid = firebaseUser.uid; + auth.name = await _getName(firebaseUser); + auth.phoneNumber = firebaseUser.phoneNumber; + completer.complete(auth); print( - 'Inside _sendCodeToPhoneNumber: signInWithPhoneNumber auto succeeded: $user'); + 'Inside _sendCodeToPhoneNumber: signInWithPhoneNumber auto succeeded: $firebaseUser'); }; final PhoneVerificationFailed verificationFailed = @@ -28,8 +36,7 @@ class AuthFb { completer.complete(Auth( authStatus: AuthStatus.ERROR, authErrorCode: authException.code, - authErrorMsg: authException.message)); - throw authException; + authErrorMsg: "Phone number verification failed")); }; final PhoneCodeSent codeSent = @@ -63,11 +70,10 @@ class AuthFb { smsCode: smsCode, ); - var firebaseUser = await _fb.signInWithCredential(credential); - final FirebaseUser currentUser = await _fb.currentUser(); - assert(firebaseUser.user.uid == currentUser.uid); + firebaseUser = await _signIn(credential); - auth.uid = firebaseUser.user.uid; + auth.uid = firebaseUser.uid; + auth.name = await _getName(firebaseUser); auth.authStatus = AuthStatus.AUTH_VERIFIED; } on Exception catch (e) { auth.authStatus = AuthStatus.ERROR; @@ -76,7 +82,46 @@ class AuthFb { return Future.value(auth); } - Future logout() { + Future signout() { + firebaseUser = null; return _fb.signOut(); } + + Future _signIn(AuthCredential credential) async { + AuthResult _authResult = await _fb.signInWithCredential(credential); + FirebaseUser _fusr = _authResult.user; + final FirebaseUser firebaseUser = await _fb.currentUser(); + assert(_fusr.uid == firebaseUser.uid); + + var idToken = await firebaseUser.getIdToken(); + print("Claims:${idToken.claims}"); + + return firebaseUser; + } + + Future _getName(FirebaseUser firebaseUser) async { + IdTokenResult idToken = await firebaseUser.getIdToken(); + return idToken.claims["name"]; + } + + Future hasSignup() async { + IdTokenResult idToken = await firebaseUser.getIdToken(); + return idToken.claims.containsKey("signup") && idToken.claims["signup"]; + } + + Future signup(String name) async { + await requestAPI("/signup", "POST", + payload: { + 'name': name, + }, + token: await getToken()); + // refresh token once signup + await firebaseUser.getIdToken(refresh: true); + } + + static Future getToken() async { + FirebaseUser firebaseUser = await _fb.currentUser(); + IdTokenResult token = await firebaseUser.getIdToken(); + return token.token; + } } diff --git a/lib/fcs/common/domain/entities/auth.dart b/lib/fcs/common/domain/entities/auth.dart index 5d173e3..8fd50c5 100644 --- a/lib/fcs/common/domain/entities/auth.dart +++ b/lib/fcs/common/domain/entities/auth.dart @@ -6,6 +6,8 @@ class Auth { String authErrorMsg; String uid; + String name; + String phoneNumber; Auth({this.authStatus, this.authErrorCode, this.authErrorMsg}); } diff --git a/lib/fcs/common/domain/entities/auth_status.dart b/lib/fcs/common/domain/entities/auth_status.dart index 540df1e..dd68667 100644 --- a/lib/fcs/common/domain/entities/auth_status.dart +++ b/lib/fcs/common/domain/entities/auth_status.dart @@ -1 +1 @@ -enum AuthStatus { SMS_SENT, AUTH_VERIFIED, ERROR } +enum AuthStatus { SMS_SENT, AUTH_VERIFIED, ERROR, SIGN_OUT } diff --git a/lib/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart similarity index 90% rename from lib/pages/home_page.dart rename to lib/fcs/common/pages/home_page.dart index 6a421d0..abc10e6 100644 --- a/lib/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -1,74 +1,38 @@ -import 'package:country_code_picker/country_code.dart'; +import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; +import 'package:fcs/pages/contact.dart'; import 'package:fcs/pages/discount_list.dart'; +import 'package:fcs/pages/notification_list.dart'; import 'package:fcs/pages/payment_method_page.dart'; import 'package:fcs/pages/shipment_list.dart'; +import 'package:fcs/pages/term.dart'; import 'package:fcs/pages_fcs/box_list.dart'; import 'package:fcs/pages_fcs/delivery_list.dart'; import 'package:fcs/pages_fcs/package_list.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/localization/transalation.dart'; -import 'package:fcs/widget/right_left_page_route%20copy.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_icons/flutter_icons.dart'; -import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:intl/intl.dart'; -import 'package:logging/logging.dart'; -import 'package:provider/provider.dart'; -import 'dart:math' as math; -import 'package:fcs/charts/bar_chart.dart'; -import 'package:fcs/charts/delivery_do_line.dart'; -import 'package:fcs/charts/delivery_do_summary.dart'; -import 'package:fcs/charts/delivery_line.dart'; -import 'package:fcs/charts/delivery_summary.dart'; -import 'package:fcs/charts/do_line.dart'; -import 'package:fcs/charts/po_balance_chart.dart'; -import 'package:fcs/charts/po_line.dart'; -import 'package:fcs/charts/revenue_line.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/pages/banks/banks.dart'; -import 'package:fcs/pages/buyer_list.dart'; -import 'package:fcs/pages/contact.dart'; -import 'package:fcs/pages/delivery/delivery_list.dart'; -import 'package:fcs/pages/manual/manual_page.dart'; -import 'package:fcs/pages/notification_list.dart'; -import 'package:fcs/pages/term.dart'; -import 'package:fcs/reports/report_list.dart'; import 'package:fcs/widget/banner.dart'; -import 'package:fcs/widget/local_text.dart'; +import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/localization/app_translations.dart'; +import 'package:fcs/widget/localization/transalation.dart'; import 'package:fcs/widget/offline_redirect.dart'; +import 'package:fcs/widget/right_left_page_route%20copy.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; +import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; -import 'announcement_list.dart'; -import 'buying_online.dart'; -import 'customer_list.dart'; -import 'do/do_list.dart'; -import 'invoice/invoce_list.dart'; -import 'my_registeration.dart'; -import 'pd/pd_list.dart'; -import 'products_list.dart'; +import '../../../pages/buying_online.dart'; +import '../../../pages/customer_list.dart'; +import '../../../pages/fcs_profile_page.dart'; +import '../../../pages/invoice/invoce_list.dart'; +import '../../../pages/pickup_list.dart'; +import '../../../pages/shipment_rates.dart'; +import '../../../pages/staff_list.dart'; +import '../theme.dart'; import 'profile_page.dart'; -import '../fcs/common/pages/signin/signin_page.dart'; -import 'staff_list.dart'; - -import 'fcs_profile_page.dart'; -import 'pd/pd_list.dart'; -import 'pickup_list.dart'; -import 'products_list.dart'; -import 'profile_page.dart'; -import 'shipment_rates.dart'; -import 'storage/storage_list.dart'; -import 'user_list.dart'; +import 'signin/signin_page.dart'; final msgLog = Logger('backgroundMessageHandler'); diff --git a/lib/pages/profile_page.dart b/lib/fcs/common/pages/profile_page.dart similarity index 97% rename from lib/pages/profile_page.dart rename to lib/fcs/common/pages/profile_page.dart index 9345122..7393725 100644 --- a/lib/pages/profile_page.dart +++ b/lib/fcs/common/pages/profile_page.dart @@ -1,26 +1,21 @@ -import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/pages_fcs/shipping_address_row.dart'; -import 'package:fcs/vo/shipping_address.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_icons/flutter_icons.dart'; -import 'package:package_info/package_info.dart'; -import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; +import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/pages/profile_edit.dart'; import 'package:fcs/pages/util.dart'; +import 'package:fcs/pages_fcs/shipping_address_row.dart'; import 'package:fcs/vo/role.dart'; +import 'package:fcs/vo/shipping_address.dart'; +import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/localization/transalation.dart'; import 'package:fcs/widget/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; -import '../theme/theme.dart'; -import 'profile_setting.dart'; -import 'shipping_address_editor.dart'; +import '../../../pages/shipping_address_editor.dart'; +import '../theme.dart'; typedef void ProfileCallback(); @@ -235,8 +230,9 @@ class _ProfileState extends State { _isLoading = true; }); await mainModel.logout(); + await context.read().signout(); Navigator.of(context).pushNamedAndRemoveUntil( - "/home", ModalRoute.withName('/home')); + "/welcome", ModalRoute.withName('/welcome')); Future.delayed(Duration(seconds: 1), () { if (mounted) { setState(() { diff --git a/lib/fcs/common/pages/signin/code_page.dart b/lib/fcs/common/pages/signin/code_page.dart index f9f3dd2..892ebeb 100644 --- a/lib/fcs/common/pages/signin/code_page.dart +++ b/lib/fcs/common/pages/signin/code_page.dart @@ -1,17 +1,19 @@ import 'dart:async'; +import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/shared_pref.dart'; -import 'package:fcs/vo/user.dart'; +import 'package:fcs/pages/util.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:pin_input_text_field/pin_input_text_field.dart'; import 'package:provider/provider.dart'; -import '../../../../theme/theme.dart'; +import 'signup_page.dart'; +import '../../theme.dart'; import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; -import '../../../../pages/user_edit.dart'; const resend_count_sec = 5; @@ -191,9 +193,21 @@ class _CodePageState extends State { _resend() async {} _verify() async { - Provider.of(context).saveUser(pin, widget.phoneNumber); - await Navigator.of(context).push(BottomUpPageRoute(UserEditPage())); - Navigator.pop(context); + try { + Auth auth = await context.read().signin(this.pin); + if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { + bool hasSignup = await context.read().hasSignup(); + if (!hasSignup) { + await Navigator.of(context).push(BottomUpPageRoute(SignupPage())); + } else { + Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); + } + Provider.of(context, listen: false) + .saveUser(pin, widget.phoneNumber); + } + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } } _completeResend() { diff --git a/lib/fcs/common/pages/signin/model/signin_model.dart b/lib/fcs/common/pages/signin/model/signin_model.dart index 15d8308..97d7998 100644 --- a/lib/fcs/common/pages/signin/model/signin_model.dart +++ b/lib/fcs/common/pages/signin/model/signin_model.dart @@ -1,8 +1,25 @@ import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; +import 'package:fcs/fcs/common/domain/entities/auth.dart'; import 'package:flutter/foundation.dart'; class SigninModel extends ChangeNotifier { - setPhoneNumber(String phoneNumber) async { - await AuthFb.instance.sendSmsCodeToPhoneNumber(phoneNumber); + Future sendSms(String phoneNumber) { + return AuthFb.instance.sendSmsCodeToPhoneNumber(phoneNumber); + } + + Future signin(String smsCode) { + return AuthFb.instance.signInWithPhoneNumber(smsCode); + } + + Future signout() { + return AuthFb.instance.signout(); + } + + Future hasSignup() { + return AuthFb.instance.hasSignup(); + } + + Future signup(String name) { + return AuthFb.instance.signup(name); } } diff --git a/lib/fcs/common/pages/signin/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart index ce8f25e..7454cee 100644 --- a/lib/fcs/common/pages/signin/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -1,10 +1,14 @@ import 'package:country_code_picker/country_code_picker.dart'; +import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:provider/provider.dart'; -import '../../../../theme/theme.dart'; +import '../../theme.dart'; import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; import 'code_page.dart'; @@ -157,19 +161,33 @@ class _SigninPageState extends State { return; } + setState(() { + _isLoading = true; + }); + try { Exception exp; phoneNumber = phoneNumber[0] == "0" ? phoneNumber.replaceFirst("0", "") : phoneNumber; phoneNumber = dialCode + phoneNumber; - await Navigator.of(context) - .push(BottomUpPageRoute(CodePage(phoneNumber: phoneNumber))); - Navigator.pop(context); + + Auth auth = await context.read().sendSms(phoneNumber); + if (auth.authStatus == AuthStatus.SMS_SENT) { + await Navigator.of(context) + .push(BottomUpPageRoute(CodePage(phoneNumber: phoneNumber))); + Navigator.pop(context); + } + if (auth.authStatus == AuthStatus.ERROR) { + showMsgDialog(context, "Error", auth.authErrorMsg); + } if (exp != null) throw exp; } catch (e) { showMsgDialog(context, "Error", e.toString()); } + setState(() { + _isLoading = false; + }); } } diff --git a/lib/pages/user_edit.dart b/lib/fcs/common/pages/signin/signup_page.dart similarity index 84% rename from lib/pages/user_edit.dart rename to lib/fcs/common/pages/signin/signup_page.dart index 10c35a8..bd550b2 100644 --- a/lib/pages/user_edit.dart +++ b/lib/fcs/common/pages/signin/signup_page.dart @@ -1,21 +1,19 @@ -import 'package:fcs/model/shared_pref.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../theme/theme.dart'; -import '../widget/local_text.dart'; -import '../widget/progress.dart'; -import 'home_page.dart'; +import '../../../../widget/local_text.dart'; +import '../../../../widget/progress.dart'; +import '../../theme.dart'; +import 'package:provider/provider.dart'; -class UserEditPage extends StatefulWidget { +class SignupPage extends StatefulWidget { @override - _UserEditPageState createState() => _UserEditPageState(); + _SignupPageState createState() => _SignupPageState(); } -class _UserEditPageState extends State { +class _SignupPageState extends State { bool _isLoading = false; TextEditingController nameCtl; @@ -110,6 +108,7 @@ class _UserEditPageState extends State { } _submit() async { - Navigator.pushNamedAndRemoveUntil(context, "/homeLogin", (r) => false); + await context.read().signup(nameCtl.text); + Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); } } diff --git a/lib/pages/splash.dart b/lib/fcs/common/pages/splash_page.dart similarity index 97% rename from lib/pages/splash.dart rename to lib/fcs/common/pages/splash_page.dart index 492c3ff..9a6f676 100644 --- a/lib/pages/splash.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; @@ -51,9 +51,9 @@ class _SplashScreenState extends State { if (_loaded) { timer.cancel(); if (this._isLogin) { - Navigator.of(context).pushReplacementNamed('/homeLogin'); - } else { Navigator.of(context).pushReplacementNamed('/home'); + } else { + Navigator.of(context).pushReplacementNamed('/welcome'); } // if (_isSupport) { diff --git a/lib/pages/home_page_welcome.dart b/lib/fcs/common/pages/welcome_page.dart similarity index 68% rename from lib/pages/home_page_welcome.dart rename to lib/fcs/common/pages/welcome_page.dart index 74e232b..b4b14eb 100644 --- a/lib/pages/home_page_welcome.dart +++ b/lib/fcs/common/pages/welcome_page.dart @@ -13,21 +13,21 @@ import 'package:intl/intl.dart' as intl; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; +import '../theme.dart'; import 'profile_page.dart'; -import '../fcs/common/pages/signin/signin_page.dart'; -import 'term.dart'; +import 'signin/signin_page.dart'; +import '../../../pages/term.dart'; final msgLog = Logger('backgroundMessageHandler'); -class HomePageWelcome extends StatefulWidget { +class WelcomePage extends StatefulWidget { @override - _HomePageWelcomeState createState() => _HomePageWelcomeState(); + _WelcomePageState createState() => _WelcomePageState(); } typedef BtnCallback(); -class _HomePageWelcomeState extends State { +class _WelcomePageState extends State { final log = Logger('_HomePageWelcomeState'); bool login = false; bool customer = true; @@ -137,56 +137,54 @@ class _HomePageWelcomeState extends State { Color(0xfa272262), ], // whitish to gray )), - child: Column( + child: ListView( children: [ - Expanded( - child: Column( - children: [ - Padding( - padding: const EdgeInsets.all(80.0), - child: Text( - "Welcome!", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 28, - fontFamily: "Roboto"), - ), + Column( + children: [ + Padding( + padding: const EdgeInsets.all(80.0), + child: Text( + "Welcome!", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontFamily: "Roboto"), ), - Padding( - padding: const EdgeInsets.only(top: 0.0), - child: Text( - "Cargo Services", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 28, - fontFamily: "Roboto"), - ), + ), + Padding( + padding: const EdgeInsets.only(top: 0.0), + child: Text( + "Cargo Services", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontFamily: "Roboto"), ), - Padding( - padding: const EdgeInsets.all(10.0), - child: Text( - "by FCS Trading", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontFamily: "Roboto"), - ), + ), + Padding( + padding: const EdgeInsets.all(10.0), + child: Text( + "by FCS Trading", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontFamily: "Roboto"), ), - Container( - padding: EdgeInsets.only(top: 10, bottom: 10), - child: CircleAvatar( - radius: (50), - backgroundColor: Colors.white, - child: ClipRRect( - borderRadius: BorderRadius.circular(50), - child: Image.asset("assets/logo.jpg"), - )), - ), - ], - ), + ), + Container( + padding: EdgeInsets.only(top: 10, bottom: 10), + child: CircleAvatar( + radius: (50), + backgroundColor: Colors.white, + child: ClipRRect( + borderRadius: BorderRadius.circular(50), + child: Image.asset("assets/logo.jpg"), + )), + ), + ], ), // Row( // children: [ @@ -241,28 +239,29 @@ class _HomePageWelcomeState extends State { // ), // ], // ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - // _buildSmallButton( - // "Policies", FontAwesomeIcons.fileContract), - InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => Contact())); - }, - child: _buildSmallButton( - "Contact Us", SimpleLineIcons.support), - ), - InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => Term())); - }, - child: _buildSmallButton( - "Terms of service", Icons.info_outline), - ), - ], + Padding( + padding: const EdgeInsets.only(top: 28.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + InkWell( + onTap: () { + Navigator.of(context).push( + MaterialPageRoute(builder: (_) => Contact())); + }, + child: _buildSmallButton( + "Contact Us", SimpleLineIcons.support), + ), + InkWell( + onTap: () { + Navigator.of(context).push( + MaterialPageRoute(builder: (_) => Term())); + }, + child: _buildSmallButton( + "Terms of service", Icons.info_outline), + ), + ], + ), ) ], ))), @@ -285,20 +284,12 @@ class _HomePageWelcomeState extends State { return Padding( padding: const EdgeInsets.all(18.0), child: Row( + mainAxisAlignment: MainAxisAlignment.center, children: [ - IconButton( - icon: Icon(iconData, color: Colors.white70), - color: Colors.white70, - onPressed: null), - // RaisedButton(onPressed: ()=>{},child: Row( - // children: [ - // IconButton( - // icon: Icon(iconData, ), - // onPressed: null), - // Text(text), - // ], - // ),color: Colors.transparent, - // focusColor: Colors.transparent,), + Padding( + padding: const EdgeInsets.only(right: 5), + child: Icon(iconData, color: Colors.white70, size: 18), + ), Text( text, style: subMenuStyle, diff --git a/lib/fcs/common/services/auth_imp.dart b/lib/fcs/common/services/auth_imp.dart index f510cd1..cef656d 100644 --- a/lib/fcs/common/services/auth_imp.dart +++ b/lib/fcs/common/services/auth_imp.dart @@ -31,7 +31,7 @@ class AuthImp implements AuthInterface { } @override - Future logout() { - return authFb.logout(); + Future signout() { + return authFb.signout(); } } diff --git a/lib/fcs/common/services/auth_interface.dart b/lib/fcs/common/services/auth_interface.dart index 8034341..bcf5d29 100644 --- a/lib/fcs/common/services/auth_interface.dart +++ b/lib/fcs/common/services/auth_interface.dart @@ -3,5 +3,5 @@ import 'package:fcs/fcs/common/domain/entities/auth.dart'; abstract class AuthInterface { Future sendSmsCodeToPhoneNumber(String phoneNumber); Future signInWithSmsCode(String smsCode); - Future logout(); + Future signout(); } diff --git a/lib/theme/theme.dart b/lib/fcs/common/theme.dart similarity index 98% rename from lib/theme/theme.dart rename to lib/fcs/common/theme.dart index 1c84937..a8b4a9f 100644 --- a/lib/theme/theme.dart +++ b/lib/fcs/common/theme.dart @@ -18,7 +18,7 @@ const TextStyle welcomeLabelStyle = const TextStyle welcomeSubLabelStyle = TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500); const TextStyle subMenuStyle = - TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500); + TextStyle(fontSize: 11, color: Colors.white, fontWeight: FontWeight.w500); const TextStyle siginButtonStyle = TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500); diff --git a/lib/main-dev.dart b/lib/main-dev.dart index 050eee0..889ea4a 100644 --- a/lib/main-dev.dart +++ b/lib/main-dev.dart @@ -1,7 +1,6 @@ +import 'package:fcs/config.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; -import 'package:fcs/config.dart'; -import 'package:shared_preferences/shared_preferences.dart'; import 'app.dart'; @@ -9,8 +8,7 @@ void main() { Config( flavor: Flavor.DEV, color: Colors.blue, - apiURL: - "https://asia-northeast1-mokkon-wholesale-dev.cloudfunctions.net/APIOK", + apiURL: "http://192.168.100.11:7777", reportURL: "http://petrok-dev.mokkon.com:8080", reportProjectID: "dev", level: Level.ALL); diff --git a/lib/model/base_model.dart b/lib/model/base_model.dart index fac0fb9..6b220fb 100644 --- a/lib/model/base_model.dart +++ b/lib/model/base_model.dart @@ -1,5 +1,5 @@ import 'package:flutter/foundation.dart'; -import 'package:fcs/model/api_helper.dart'; +import 'package:fcs/fcs/common/api_helper.dart'; import '../vo/setting.dart'; import '../vo/user.dart'; diff --git a/lib/model/buyer_model.dart b/lib/model/buyer_model.dart index 88a277d..f5326e4 100644 --- a/lib/model/buyer_model.dart +++ b/lib/model/buyer_model.dart @@ -4,7 +4,7 @@ import 'dart:convert' show HtmlEscape, base64, utf8; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:logging/logging.dart'; import 'package:fcs/config.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/vo/popup_menu.dart'; diff --git a/lib/model/do_model.dart b/lib/model/do_model.dart index d311062..3816e6b 100644 --- a/lib/model/do_model.dart +++ b/lib/model/do_model.dart @@ -4,7 +4,7 @@ import 'dart:typed_data'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:path/path.dart' as Path; -import 'package:fcs/model/api_helper.dart'; +import 'package:fcs/fcs/common/api_helper.dart'; import 'package:fcs/model/constants.dart'; import 'package:fcs/pages/do/do_files.dart'; import 'package:fcs/vo/do.dart'; @@ -27,7 +27,6 @@ class DOModel extends BaseModel { _loadDOs(); } - @override logout() async { if (listener != null) await listener.cancel(); @@ -247,7 +246,8 @@ class DOModel extends BaseModel { .where("status", isEqualTo: do_approved_status) .where("delivery_date", isGreaterThanOrEqualTo: date) .where("delivery_date", isLessThan: dateAddOne) - .orderBy("delivery_date").orderBy("user_name") + .orderBy("delivery_date") + .orderBy("user_name") .limit(100) .getDocuments(); snapshots.documents.forEach((d) { diff --git a/lib/model/main_model.dart b/lib/model/main_model.dart index 730b399..c82615f 100644 --- a/lib/model/main_model.dart +++ b/lib/model/main_model.dart @@ -22,7 +22,7 @@ import 'package:fcs/widget/NetworkConnectivity.dart'; import '../config.dart'; import '../vo/status.dart'; import '../vo/user.dart'; -import 'api_helper.dart'; +import '../fcs/common/api_helper.dart'; import 'base_model.dart'; import 'constants.dart'; import 'firebase_helper.dart'; @@ -97,10 +97,10 @@ class MainModel extends ChangeNotifier { phone: '+959123456789', mail: 'kbz@gmail.com'), PaymentMethod( - name: 'PayPal', - accountName: 'FCS', - link: 'https://www.paypal.com/donate/buttons', - ), + name: 'PayPal', + accountName: 'FCS', + link: 'https://www.paypal.com/donate/buttons', + ), ]; return methods; } diff --git a/lib/model/report_model.dart b/lib/model/report_model.dart index 849ba98..e958caa 100644 --- a/lib/model/report_model.dart +++ b/lib/model/report_model.dart @@ -6,7 +6,7 @@ import 'package:fcs/vo/report.dart'; import 'package:fcs/vo/report_user.dart'; import 'package:open_file/open_file.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:fcs/model/api_helper.dart' as api; +import 'package:fcs/fcs/common/api_helper.dart' as api; import 'package:fcs/vo/report.dart'; import '../config.dart'; diff --git a/lib/pages/add_pin_editor.dart b/lib/pages/add_pin_editor.dart index e70aed4..1591a81 100644 --- a/lib/pages/add_pin_editor.dart +++ b/lib/pages/add_pin_editor.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart' as Theme; +import '../fcs/common/theme.dart' as Theme; import 'util.dart'; class AddPINEditor extends StatefulWidget { diff --git a/lib/pages/announcement.dart b/lib/pages/announcement.dart index 8eb7ef4..e81a807 100644 --- a/lib/pages/announcement.dart +++ b/lib/pages/announcement.dart @@ -12,7 +12,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:fcs/widget/progress.dart'; import 'package:zefyr/zefyr.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'announcement_editor.dart'; class AnnouncementPage extends StatefulWidget { diff --git a/lib/pages/announcement_editor.dart b/lib/pages/announcement_editor.dart index 4cdcd04..e2ff07a 100644 --- a/lib/pages/announcement_editor.dart +++ b/lib/pages/announcement_editor.dart @@ -5,7 +5,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/announcement_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/announcement.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/announcement_list.dart b/lib/pages/announcement_list.dart index 1866ac9..4119f47 100644 --- a/lib/pages/announcement_list.dart +++ b/lib/pages/announcement_list.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'announcement.dart'; import 'announcement_editor.dart'; @@ -43,15 +43,13 @@ class _AnnouncementListState extends State { inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( - backgroundColor: primaryColor, - title: - LocalText( - context, - "announcement.title", - color: Colors.white, - fontSize: 20, - ) - ), + backgroundColor: primaryColor, + title: LocalText( + context, + "announcement.title", + color: Colors.white, + fontSize: 20, + )), floatingActionButton: isOwnerAndAbove || hasAdmin ? FloatingActionButton( backgroundColor: primaryColor, @@ -118,19 +116,22 @@ class _AnnouncementListState extends State { ], ), ), - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text(announce.time==null?"":timeFormatter.format(announce.time)), - ), - announce.fromToday() - ? Container() - : Text(announce.time==null?"":dateFormatter.format(announce.time)), - ], - ) - + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text(announce.time == null + ? "" + : timeFormatter.format(announce.time)), + ), + announce.fromToday() + ? Container() + : Text(announce.time == null + ? "" + : dateFormatter.format(announce.time)), + ], + ) ], ), ), diff --git a/lib/pages/banks/bank_edit.dart b/lib/pages/banks/bank_edit.dart index f5e4b1f..2b5252a 100644 --- a/lib/pages/banks/bank_edit.dart +++ b/lib/pages/banks/bank_edit.dart @@ -5,7 +5,7 @@ import 'package:image_picker/image_picker.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/bank_account.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/local_text_field.dart'; diff --git a/lib/pages/banks/banks.dart b/lib/pages/banks/banks.dart index c2471a5..aa1bdb7 100644 --- a/lib/pages/banks/banks.dart +++ b/lib/pages/banks/banks.dart @@ -3,7 +3,7 @@ import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/banks/bank_edit.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/bank_account.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/barcode_screen_page.dart b/lib/pages/barcode_screen_page.dart index f1d4e5c..4e5d72f 100644 --- a/lib/pages/barcode_screen_page.dart +++ b/lib/pages/barcode_screen_page.dart @@ -5,7 +5,7 @@ import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/block_list.dart b/lib/pages/block_list.dart index 01a5989..a341f10 100644 --- a/lib/pages/block_list.dart +++ b/lib/pages/block_list.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/buyer_info.dart b/lib/pages/buyer_info.dart index f39e419..e81b45f 100644 --- a/lib/pages/buyer_info.dart +++ b/lib/pages/buyer_info.dart @@ -12,7 +12,7 @@ import 'package:fcs/widget/label_widgets.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'document_log_page.dart'; class BuyerInfo extends StatefulWidget { diff --git a/lib/pages/buyer_list.dart b/lib/pages/buyer_list.dart index 9d3501a..c4edf25 100644 --- a/lib/pages/buyer_list.dart +++ b/lib/pages/buyer_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'buyer_list_row.dart'; class BuyerList extends StatefulWidget { diff --git a/lib/pages/buyer_list_row.dart b/lib/pages/buyer_list_row.dart index e0d4fa1..c29d03f 100644 --- a/lib/pages/buyer_list_row.dart +++ b/lib/pages/buyer_list_row.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'buyer_info.dart'; diff --git a/lib/pages/buying_online.dart b/lib/pages/buying_online.dart index 8583efd..7c8cc70 100644 --- a/lib/pages/buying_online.dart +++ b/lib/pages/buying_online.dart @@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import '../widget/label_widgets.dart'; import '../widget/local_text.dart'; import 'instruction.dart'; diff --git a/lib/pages/calculate_shipment_cost_editor.dart b/lib/pages/calculate_shipment_cost_editor.dart index 955191c..bc84b34 100644 --- a/lib/pages/calculate_shipment_cost_editor.dart +++ b/lib/pages/calculate_shipment_cost_editor.dart @@ -6,17 +6,19 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class CalculateShipmentCostEditor extends StatefulWidget { final PickUp pickUp; CalculateShipmentCostEditor({this.pickUp}); @override - _CalculateShipmentCostEditorState createState() => _CalculateShipmentCostEditorState(); + _CalculateShipmentCostEditorState createState() => + _CalculateShipmentCostEditorState(); } -class _CalculateShipmentCostEditorState extends State { +class _CalculateShipmentCostEditorState + extends State { TextEditingController _addressEditingController = new TextEditingController(); TextEditingController _fromTimeEditingController = new TextEditingController(); diff --git a/lib/pages/chage_phone_number.dart b/lib/pages/chage_phone_number.dart index c65004a..77b46bb 100644 --- a/lib/pages/chage_phone_number.dart +++ b/lib/pages/chage_phone_number.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart' as Theme; +import '../fcs/common/theme.dart' as Theme; import 'confirm_email.dart'; import 'util.dart'; diff --git a/lib/pages/change_password.dart b/lib/pages/change_password.dart index e64e363..9a158d8 100644 --- a/lib/pages/change_password.dart +++ b/lib/pages/change_password.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart' as Theme; +import '../fcs/common/theme.dart' as Theme; import 'util.dart'; class ChangePassword extends StatefulWidget { diff --git a/lib/pages/confirm_email.dart b/lib/pages/confirm_email.dart index efaa60f..5e509d2 100644 --- a/lib/pages/confirm_email.dart +++ b/lib/pages/confirm_email.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; @@ -38,7 +38,7 @@ class _ConfirmEmailState extends State { try { await userModel.confirmEmail( widget.id, widget.email, widget.phoneNumber, _sms.text); - Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); + Navigator.pushNamedAndRemoveUntil(context, "/welcome", (r) => false); } catch (e) { showMsgDialog(context, "Error", e.toString()); } diff --git a/lib/pages/contact.dart b/lib/pages/contact.dart index 6fd2967..7dc16f9 100644 --- a/lib/pages/contact.dart +++ b/lib/pages/contact.dart @@ -7,7 +7,7 @@ import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/contact_editor.dart b/lib/pages/contact_editor.dart index 16f1c7f..2020895 100644 --- a/lib/pages/contact_editor.dart +++ b/lib/pages/contact_editor.dart @@ -5,7 +5,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/phone_input.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/setting.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/local_text_field.dart'; diff --git a/lib/pages/custom_editor.dart b/lib/pages/custom_editor.dart index 086deec..bbacc51 100644 --- a/lib/pages/custom_editor.dart +++ b/lib/pages/custom_editor.dart @@ -4,7 +4,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class CustomEditor extends StatefulWidget { final Custom custom; diff --git a/lib/pages/customer_editor.dart b/lib/pages/customer_editor.dart index c67ab45..d436d3f 100644 --- a/lib/pages/customer_editor.dart +++ b/lib/pages/customer_editor.dart @@ -4,7 +4,7 @@ import 'package:fcs/model/employee_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/customer_list.dart b/lib/pages/customer_list.dart index c2b20f6..8023dd8 100644 --- a/lib/pages/customer_list.dart +++ b/lib/pages/customer_list.dart @@ -7,10 +7,10 @@ import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import '../vo/user.dart'; import '../widget/local_text.dart'; import 'customer_editor.dart'; diff --git a/lib/pages/delivery/delivery_item.dart b/lib/pages/delivery/delivery_item.dart index 1edf5fc..3611100 100644 --- a/lib/pages/delivery/delivery_item.dart +++ b/lib/pages/delivery/delivery_item.dart @@ -12,7 +12,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/do/photo_page.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/widget/img_file.dart'; import 'package:fcs/widget/local_text.dart'; @@ -425,8 +425,8 @@ class _DeliveryItemState extends State { label: LocalText(context, "do.storage"), ), MyDataColumn( - label: LocalText(context, "do.quantity"),numeric: true - ), + label: LocalText(context, "do.quantity"), + numeric: true), ], rows: getProductRow(doObj.doLines), ), @@ -446,7 +446,7 @@ class _DeliveryItemState extends State { List getProductRow(List doLines) { ProductModel productModel = Provider.of(context); - if (doLines.isNotEmpty) { + if (doLines.isNotEmpty) { doLines.forEach((d) { productModel.products.forEach((p) { if (p.id == d.productID) { @@ -471,9 +471,7 @@ class _DeliveryItemState extends State { MyDataCell( new Text(d.storageName, style: textStyle), ), - MyDataCell( - NumberCell(d.qty) - ), + MyDataCell(NumberCell(d.qty)), ], ); }).toList(); diff --git a/lib/pages/delivery/delivery_list.dart b/lib/pages/delivery/delivery_list.dart index aa9968d..7e30966 100644 --- a/lib/pages/delivery/delivery_list.dart +++ b/lib/pages/delivery/delivery_list.dart @@ -7,7 +7,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/delivery/delivery_item.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/popupmenu.dart'; diff --git a/lib/pages/device_list.dart b/lib/pages/device_list.dart index a0a3db4..9d38ef9 100644 --- a/lib/pages/device_list.dart +++ b/lib/pages/device_list.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/popupmenu.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'util.dart'; class PhoneDeviceList extends StatefulWidget { diff --git a/lib/pages/discount_by_weight_editor.dart b/lib/pages/discount_by_weight_editor.dart index 245c9c5..e9af24f 100644 --- a/lib/pages/discount_by_weight_editor.dart +++ b/lib/pages/discount_by_weight_editor.dart @@ -5,7 +5,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class DiscountByWeightEditor extends StatefulWidget { final Discount discount; diff --git a/lib/pages/discount_editor.dart b/lib/pages/discount_editor.dart index fae6a23..1b6c49a 100644 --- a/lib/pages/discount_editor.dart +++ b/lib/pages/discount_editor.dart @@ -8,7 +8,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class DiscountEditor extends StatefulWidget { final Discount discount; diff --git a/lib/pages/discount_list.dart b/lib/pages/discount_list.dart index 765baaf..7cb569c 100644 --- a/lib/pages/discount_list.dart +++ b/lib/pages/discount_list.dart @@ -7,7 +7,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class DiscountList extends StatefulWidget { @override @@ -95,7 +95,8 @@ class _DiscountListState extends State { crossAxisAlignment: CrossAxisAlignment.end, children: [ Padding( - padding: const EdgeInsets.only(left: 10.0,bottom: 5.0), + padding: + const EdgeInsets.only(left: 10.0, bottom: 5.0), child: Text( '\$ ${discount.amount.toString()}', style: TextStyle( @@ -104,7 +105,7 @@ class _DiscountListState extends State { fontSize: 16), ), ), - getStatus(discount.status), + getStatus(discount.status), ], ), ], diff --git a/lib/pages/do/do_approve.dart b/lib/pages/do/do_approve.dart index d4042b0..ad62733 100644 --- a/lib/pages/do/do_approve.dart +++ b/lib/pages/do/do_approve.dart @@ -13,7 +13,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/do/photo_page.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; @@ -539,8 +539,9 @@ class _DOApprovalState extends State { label: LocalText(context, "do.storage"), ), MyDataColumn( - label: LocalText(context, "do.quantity"),numeric: true - ), + label: + LocalText(context, "do.quantity"), + numeric: true), ], rows: getProductRow(doObj.doLines), ), @@ -633,16 +634,20 @@ class _DOApprovalState extends State { MyDataColumn(label: LocalText(context, "po.number")), MyDataColumn(label: LocalText(context, "po.product")), MyDataColumn( - label: LocalText(context, "do.po_qty"),numeric: true, + label: LocalText(context, "do.po_qty"), + numeric: true, ), MyDataColumn( - label: LocalText(context, "do.po_balance_qty"),numeric: true, + label: LocalText(context, "do.po_balance_qty"), + numeric: true, ), MyDataColumn( - label: LocalText(context, "po.retrieved.amount"),numeric: true, + label: LocalText(context, "po.retrieved.amount"), + numeric: true, ), MyDataColumn( - label: LocalText(context, "do.do_qty"),numeric: true, + label: LocalText(context, "do.do_qty"), + numeric: true, ), ], rows: getPOProductRow(), diff --git a/lib/pages/do/do_creation_form.dart b/lib/pages/do/do_creation_form.dart index ce34abe..3c11275 100644 --- a/lib/pages/do/do_creation_form.dart +++ b/lib/pages/do/do_creation_form.dart @@ -9,7 +9,7 @@ import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/do/do_product_item.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; @@ -415,9 +415,7 @@ class _DOFormState extends State { columns: [ MyDataColumn(label: LocalText(context, "do.product")), MyDataColumn( - label: LocalText(context, "po.avail.qty"), - numeric: true - ), + label: LocalText(context, "po.avail.qty"), numeric: true), MyDataColumn( label: LocalText(context, "do.do_qty"), numeric: true, @@ -464,19 +462,17 @@ class _DOFormState extends State { style: textStyle, ), ), - MyDataCell( - NumberCell(d.poBalQty) - ), + MyDataCell(NumberCell(d.poBalQty)), MyDataCell( Container( color: Colors.cyan, - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - new Text(d.qty == null ? "0" : d.qty.toString(), - style: textStyle), - ], - )), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + new Text(d.qty == null ? "0" : d.qty.toString(), + style: textStyle), + ], + )), ), ], ); @@ -504,16 +500,20 @@ class _DOFormState extends State { MyDataColumn(label: LocalText(context, "po.number")), MyDataColumn(label: LocalText(context, "po.product")), MyDataColumn( - label: LocalText(context, "do.po_qty"),numeric: true, + label: LocalText(context, "do.po_qty"), + numeric: true, ), MyDataColumn( - label: LocalText(context, "po.avail.qty"),numeric: true, + label: LocalText(context, "po.avail.qty"), + numeric: true, ), MyDataColumn( - label: LocalText(context, "po.retrieved.amount"),numeric: true, + label: LocalText(context, "po.retrieved.amount"), + numeric: true, ), MyDataColumn( - label: LocalText(context, "do.do_qty"),numeric: true, + label: LocalText(context, "do.do_qty"), + numeric: true, ), ], rows: getPOProductRow(), @@ -540,8 +540,8 @@ class _DOFormState extends State { }); doSubmission.dopoLies.sort((p1, p2) { - if (p1.displayOrder!=p2.displayOrder) - return p1.displayOrder.compareTo(p2.displayOrder); + if (p1.displayOrder != p2.displayOrder) + return p1.displayOrder.compareTo(p2.displayOrder); return p1.poNumber.compareTo(p2.poNumber); }); } @@ -560,15 +560,9 @@ class _DOFormState extends State { style: textStyle, ), ), - MyDataCell( - NumberCell(d.poQty) - ), - MyDataCell( - NumberCell(d.poBalQty) - ), - MyDataCell( - NumberCell(d.getPoBalanceQty) - ), + MyDataCell(NumberCell(d.poQty)), + MyDataCell(NumberCell(d.poBalQty)), + MyDataCell(NumberCell(d.getPoBalanceQty)), MyDataCell( Container( color: Colors.grey, diff --git a/lib/pages/do/do_creation_todelete.dart b/lib/pages/do/do_creation_todelete.dart index 9b6bb20..0dddc74 100644 --- a/lib/pages/do/do_creation_todelete.dart +++ b/lib/pages/do/do_creation_todelete.dart @@ -3,7 +3,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; diff --git a/lib/pages/do/do_list.dart b/lib/pages/do/do_list.dart index b18f6d0..45c0f94 100644 --- a/lib/pages/do/do_list.dart +++ b/lib/pages/do/do_list.dart @@ -6,7 +6,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/do/do_creation_form.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/popupmenu.dart'; diff --git a/lib/pages/do/do_product_item.dart b/lib/pages/do/do_product_item.dart index ebb7e92..b7bf75e 100644 --- a/lib/pages/do/do_product_item.dart +++ b/lib/pages/do/do_product_item.dart @@ -3,7 +3,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/do/do_storage_item.dart b/lib/pages/do/do_storage_item.dart index 5fc50d4..ec8a381 100644 --- a/lib/pages/do/do_storage_item.dart +++ b/lib/pages/do/do_storage_item.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/util.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/storage.dart'; diff --git a/lib/pages/do/photo_page.dart b/lib/pages/do/photo_page.dart index 24b4807..f6189a2 100644 --- a/lib/pages/do/photo_page.dart +++ b/lib/pages/do/photo_page.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import '../util.dart'; diff --git a/lib/pages/do/po_selection.dart b/lib/pages/do/po_selection.dart index 12d7e70..d9e45c8 100644 --- a/lib/pages/do/po_selection.dart +++ b/lib/pages/do/po_selection.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/document_log_page.dart b/lib/pages/document_log_page.dart index 1d4faea..766b797 100644 --- a/lib/pages/document_log_page.dart +++ b/lib/pages/document_log_page.dart @@ -3,7 +3,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/log_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/document_log.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/email_page.dart b/lib/pages/email_page.dart index 2a687ae..0c097ef 100644 --- a/lib/pages/email_page.dart +++ b/lib/pages/email_page.dart @@ -4,7 +4,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shared_pref.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -82,7 +82,8 @@ class _EmailPageState extends State { child: InkWell( onTap: () { SharedPref.saveSkippedRecoverEmail(true); - Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); + Navigator.pushNamedAndRemoveUntil( + context, "/welcome", (r) => false); }, child: Row( mainAxisAlignment: MainAxisAlignment.end, diff --git a/lib/pages/fcs_profile_page.dart b/lib/pages/fcs_profile_page.dart index cd4a8ff..8cd1695 100644 --- a/lib/pages/fcs_profile_page.dart +++ b/lib/pages/fcs_profile_page.dart @@ -9,7 +9,7 @@ import 'package:provider/provider.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class FCSProfilePage extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages/forget_password.dart b/lib/pages/forget_password.dart index 784aae2..6208dae 100644 --- a/lib/pages/forget_password.dart +++ b/lib/pages/forget_password.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; import 'package:fcs/pages/reset_password.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/instruction.dart b/lib/pages/instruction.dart index f6d8e87..94de671 100644 --- a/lib/pages/instruction.dart +++ b/lib/pages/instruction.dart @@ -1,4 +1,4 @@ -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; @@ -53,9 +53,10 @@ class _InstructionPageState extends State { ), body: Container( padding: EdgeInsets.only(left: 5, right: 5, top: 5), - child: Card(elevation: 0, + child: Card( + elevation: 0, child: Expanded( - child: FittedBox( + child: FittedBox( child: Image.asset(widget.image), fit: BoxFit.contain), )), ), diff --git a/lib/pages/invitation_page.dart b/lib/pages/invitation_page.dart index 9d2ba4a..d5374ab 100644 --- a/lib/pages/invitation_page.dart +++ b/lib/pages/invitation_page.dart @@ -3,7 +3,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class InvitationPage extends StatefulWidget { @override diff --git a/lib/pages/invoice/box_addition.dart b/lib/pages/invoice/box_addition.dart index b2c07c1..663f79d 100644 --- a/lib/pages/invoice/box_addition.dart +++ b/lib/pages/invoice/box_addition.dart @@ -1,6 +1,6 @@ import 'package:fcs/model_fcs/box_model.dart'; import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; @@ -61,7 +61,9 @@ class _BoxAdditionState extends State { icon: Icon(Icons.pages)), items: boxModel.processed .map((e) => DropdownMenuItem( - child: Text('${e.shipmentNumber}-${e.receiverNumber} #${e.boxNumber}'), value: e)) + child: Text( + '${e.shipmentNumber}-${e.receiverNumber} #${e.boxNumber}'), + value: e)) .toList(), onChanged: (map) => {}, ), diff --git a/lib/pages/invoice/invoce_list.dart b/lib/pages/invoice/invoce_list.dart index ed072bb..f6e52eb 100644 --- a/lib/pages/invoice/invoce_list.dart +++ b/lib/pages/invoice/invoce_list.dart @@ -3,7 +3,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model_fcs/package_model.dart'; import 'package:fcs/pages_fcs/package_list_row.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:provider/provider.dart'; @@ -39,7 +39,7 @@ class _InvoiceListState extends State { @override Widget build(BuildContext context) { - var owner = Provider.of(context).isOwner(); + var owner = Provider.of(context).isOwner(); return LocalProgress( inAsyncCall: _isLoading, @@ -73,16 +73,19 @@ class _InvoiceListState extends State { ], ), ), - floatingActionButton:owner? FloatingActionButton.extended( - onPressed: () { - _newInvoice(); - }, - icon: Icon(Icons.add), - label: Text(AppTranslations.of(context).text("invoices.add")), - backgroundColor: primaryColor, - ):null, + floatingActionButton: owner + ? FloatingActionButton.extended( + onPressed: () { + _newInvoice(); + }, + icon: Icon(Icons.add), + label: + Text(AppTranslations.of(context).text("invoices.add")), + backgroundColor: primaryColor, + ) + : null, body: TabBarView( - children: [ _pending(), _paided()], + children: [_pending(), _paided()], )), ), ); diff --git a/lib/pages/invoice/invoice_editor.dart b/lib/pages/invoice/invoice_editor.dart index a4c54e8..abdc266 100644 --- a/lib/pages/invoice/invoice_editor.dart +++ b/lib/pages/invoice/invoice_editor.dart @@ -2,7 +2,7 @@ import 'package:fcs/model/discount_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model_fcs/box_model.dart'; import 'package:fcs/pages/invoice/package_addition.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/vo/cargo.dart'; import 'package:fcs/vo/invoice.dart'; @@ -173,8 +173,9 @@ class _InvoiceEditorState extends State { decoration: InputDecoration( fillColor: Colors.white, labelText: 'Invoice Date', - labelStyle: - TextStyle(fontSize: 16,), + labelStyle: TextStyle( + fontSize: 16, + ), filled: true, enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, @@ -194,7 +195,8 @@ class _InvoiceEditorState extends State { fillColor: Colors.white, labelText: 'Invoice Number', labelStyle: TextStyle( - fontSize: 16,), + fontSize: 16, + ), filled: true, enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, @@ -213,8 +215,9 @@ class _InvoiceEditorState extends State { decoration: InputDecoration( fillColor: Colors.white, labelText: 'Customer Name', - labelStyle: - TextStyle(fontSize: 16,), + labelStyle: TextStyle( + fontSize: 16, + ), filled: true, focusedBorder: UnderlineInputBorder( borderSide: BorderSide( @@ -243,7 +246,8 @@ class _InvoiceEditorState extends State { fillColor: Colors.white, labelText: 'Customer Name', labelStyle: TextStyle( - fontSize: 16,), + fontSize: 16, + ), filled: true, enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, @@ -288,7 +292,8 @@ class _InvoiceEditorState extends State { fillColor: Colors.white, labelText: 'Status', labelStyle: TextStyle( - fontSize: 16, ), + fontSize: 16, + ), filled: true, enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, @@ -307,8 +312,9 @@ class _InvoiceEditorState extends State { decoration: InputDecoration( fillColor: Colors.white, labelText: 'Amount', - labelStyle: - TextStyle(fontSize: 16,), + labelStyle: TextStyle( + fontSize: 16, + ), filled: true, enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, @@ -327,8 +333,9 @@ class _InvoiceEditorState extends State { decoration: InputDecoration( fillColor: Colors.white, labelText: 'Balance', - labelStyle: - TextStyle(fontSize: 16, ), + labelStyle: TextStyle( + fontSize: 16, + ), filled: true, enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, @@ -347,8 +354,9 @@ class _InvoiceEditorState extends State { decoration: InputDecoration( fillColor: Colors.white, labelText: 'Handling Fee', - labelStyle: - TextStyle(fontSize: 16,), + labelStyle: TextStyle( + fontSize: 16, + ), filled: true, enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, @@ -367,8 +375,9 @@ class _InvoiceEditorState extends State { decoration: InputDecoration( fillColor: Colors.white, labelText: 'Customs Fee', - labelStyle: - TextStyle(fontSize: 16,), + labelStyle: TextStyle( + fontSize: 16, + ), filled: true, icon: Icon( FontAwesomeIcons.moneyBill, @@ -388,8 +397,9 @@ class _InvoiceEditorState extends State { decoration: InputDecoration( fillColor: Colors.white, labelText: 'Customs Fee Description', - labelStyle: - TextStyle(fontSize: 16,), + labelStyle: TextStyle( + fontSize: 16, + ), filled: true, icon: Icon( Icons.comment, diff --git a/lib/pages/invoice/invoice_list_row.dart b/lib/pages/invoice/invoice_list_row.dart index 4346531..bfdf174 100644 --- a/lib/pages/invoice/invoice_list_row.dart +++ b/lib/pages/invoice/invoice_list_row.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/invoice/payment_pdf_screen.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/invoice.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/cupertino.dart'; @@ -132,29 +132,30 @@ class _InvoiceListRowState extends State { // padding: const EdgeInsets.all(0), // child: getStatus(_invoice.status), // ), - _invoice.status=="Pending"? - Padding( - padding: const EdgeInsets.only(left: 10.0), - child: InkWell( - child: RaisedButton( - child: Row( - children: [ - Icon( - Icons.payment, - color: primaryColor, - ), - Padding( - padding: const EdgeInsets.only(left:8.0), - child: Text("Payment"), - ) - ], - ), - onPressed: () { - Navigator.of(context) - .push(BottomUpPageRoute(PaymentPage(invoice: _invoice))); - }, - )), - ):Container(), + _invoice.status == "Pending" + ? Padding( + padding: const EdgeInsets.only(left: 10.0), + child: InkWell( + child: RaisedButton( + child: Row( + children: [ + Icon( + Icons.payment, + color: primaryColor, + ), + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Text("Payment"), + ) + ], + ), + onPressed: () { + Navigator.of(context).push( + BottomUpPageRoute(PaymentPage(invoice: _invoice))); + }, + )), + ) + : Container(), Padding( padding: const EdgeInsets.only(left: 8.0), child: InkWell( diff --git a/lib/pages/invoice/package_addition.dart b/lib/pages/invoice/package_addition.dart index 58b76e1..5b8d7b0 100644 --- a/lib/pages/invoice/package_addition.dart +++ b/lib/pages/invoice/package_addition.dart @@ -1,5 +1,5 @@ import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/invoice/package_info.dart b/lib/pages/invoice/package_info.dart index 5807b57..024b83f 100644 --- a/lib/pages/invoice/package_info.dart +++ b/lib/pages/invoice/package_info.dart @@ -1,6 +1,6 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -61,7 +61,9 @@ class _PackageInfoState extends State { padding: EdgeInsets.only(top: 10), child: Row( children: [ - Icon(Icons.calendar_today,), + Icon( + Icons.calendar_today, + ), Padding( padding: const EdgeInsets.only(right: 8.0, left: 15), child: labeledText( diff --git a/lib/pages/invoice/payment_page.dart b/lib/pages/invoice/payment_page.dart index 105e37a..397c42c 100644 --- a/lib/pages/invoice/payment_page.dart +++ b/lib/pages/invoice/payment_page.dart @@ -1,6 +1,6 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/invoice.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/invoice/payment_pdf_screen.dart b/lib/pages/invoice/payment_pdf_screen.dart index 853b375..ea01da4 100644 --- a/lib/pages/invoice/payment_pdf_screen.dart +++ b/lib/pages/invoice/payment_pdf_screen.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -30,7 +30,7 @@ class _PaymentPDFScreenState extends State return Scaffold( appBar: AppBar( backgroundColor: primaryColor, - title:Text("Invoice File"), + title: Text("Invoice File"), actions: [ IconButton( icon: Icon(Icons.share), diff --git a/lib/pages/log_list.dart b/lib/pages/log_list.dart index 1e7926e..cae3afd 100644 --- a/lib/pages/log_list.dart +++ b/lib/pages/log_list.dart @@ -6,7 +6,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class LogList extends StatefulWidget { @override diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index 1d5c150..8f06498 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -10,7 +10,7 @@ import 'package:fcs/widget/bubble_indication_painter.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart' as Theme; +import '../fcs/common/theme.dart' as Theme; import 'forget_password.dart'; import 'sms_page.dart'; import 'util.dart'; @@ -82,7 +82,7 @@ class _LoginPageState extends State : 580.0, child: Column( mainAxisSize: MainAxisSize.max, - children: [ + children: [ Padding( padding: EdgeInsets.only(top: 50.0), child: _buildMenuBar(context), @@ -662,14 +662,13 @@ class _LoginPageState extends State var phoneNumber = signupPhoneNumberController.text; try { await authModel.signup(name, password, confirmPassword, phoneNumber); - Navigator.push( + Navigator.push( context, MaterialPageRoute( builder: (context) => SmsCodePage(id: phoneNumber, password: password), ), ); - } catch (e) { showMsgDialog(context, "Error", e.toString()); } finally { diff --git a/lib/pages/manual/instruction_data_page.dart b/lib/pages/manual/instruction_data_page.dart index 4d32f60..de59b6b 100644 --- a/lib/pages/manual/instruction_data_page.dart +++ b/lib/pages/manual/instruction_data_page.dart @@ -7,7 +7,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/manual_model.dart'; import 'package:fcs/pages/manual/moveable_stack_item.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/manual.dart'; import 'package:path/path.dart' as Path; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/manual/manual_page.dart b/lib/pages/manual/manual_page.dart index dde65f9..6ec770b 100644 --- a/lib/pages/manual/manual_page.dart +++ b/lib/pages/manual/manual_page.dart @@ -9,7 +9,7 @@ import 'package:fcs/vo/manual.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; -import '../../theme/theme.dart'; +import '../../fcs/common/theme.dart'; import 'slide_page.dart'; class ManualPage extends StatefulWidget { diff --git a/lib/pages/message_detail.dart b/lib/pages/message_detail.dart index 1af2130..c76d0b4 100644 --- a/lib/pages/message_detail.dart +++ b/lib/pages/message_detail.dart @@ -1,5 +1,5 @@ import 'package:fcs/model_fcs/message_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/message.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; @@ -82,7 +82,7 @@ class MessageDetail extends StatelessWidget { @override Widget build(BuildContext context) { - DateFormat dateFormat=DateFormat("HH:mm"); + DateFormat dateFormat = DateFormat("HH:mm"); MessageModel messageModel = Provider.of(context); List messages = messageModel.getMessage(msg.receiverName); List bubbles = messages diff --git a/lib/pages/my_registeration.dart b/lib/pages/my_registeration.dart index f0c2c2a..76d7f91 100644 --- a/lib/pages/my_registeration.dart +++ b/lib/pages/my_registeration.dart @@ -10,7 +10,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import '../widget/localization/app_translations.dart'; import 'my_registeration_item.dart'; diff --git a/lib/pages/my_registeration_info.dart b/lib/pages/my_registeration_info.dart index 9f25235..d25a403 100644 --- a/lib/pages/my_registeration_info.dart +++ b/lib/pages/my_registeration_info.dart @@ -6,7 +6,7 @@ import 'package:fcs/model/reg_model.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import '../util.dart'; import '../widget/localization/app_translations.dart'; import 'my_registeration.dart'; @@ -50,13 +50,17 @@ class _MyRegisterationInfoState extends State { labeledText(context, regModel.reg.bizType, "buyer.type_biz"); final statusBox = labeledText(context, regModel.reg.status, "reg.status"); final dailyQuotaBox = labeledText( - context, formatNumber(regModel.reg.dailyQuota), "reg.quota",number: true); + context, formatNumber(regModel.reg.dailyQuota), "reg.quota", + number: true); final dailyQuotaUsedBox = labeledText( - context, formatNumber(regModel.reg.dailyQuotaUsed), "reg.quota.used",number: true); + context, formatNumber(regModel.reg.dailyQuotaUsed), "reg.quota.used", + number: true); final maxQuotaBox = labeledText( - context, formatNumber(regModel.reg.maxQuota), "reg.max_quota",number: true); + context, formatNumber(regModel.reg.maxQuota), "reg.max_quota", + number: true); final maxQuotaUsedBox = labeledText( - context, formatNumber(regModel.reg.maxQuotaUsed), "reg.max_quota.used",number: true); + context, formatNumber(regModel.reg.maxQuotaUsed), "reg.max_quota.used", + number: true); final nricFrontBox = labeledImg(context, regModel.reg.nricFrontUrl, "reg_info.nric_front"); final nricBackBox = diff --git a/lib/pages/my_registeration_item.dart b/lib/pages/my_registeration_item.dart index eea09a5..a0d7d76 100644 --- a/lib/pages/my_registeration_item.dart +++ b/lib/pages/my_registeration_item.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/notification_list.dart b/lib/pages/notification_list.dart index dcd75f7..8c498f6 100644 --- a/lib/pages/notification_list.dart +++ b/lib/pages/notification_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/model/notification_model.dart'; import 'package:fcs/vo/notification.dart' as Noti; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import '../widget/local_text.dart'; class NotificationList extends StatefulWidget { diff --git a/lib/pages/payment_editor.dart b/lib/pages/payment_editor.dart index 7ed7ba0..c81ae09 100644 --- a/lib/pages/payment_editor.dart +++ b/lib/pages/payment_editor.dart @@ -9,7 +9,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class PaymentMethodEditor extends StatefulWidget { final PaymentMethod paymentMethod; diff --git a/lib/pages/payment_method_page.dart b/lib/pages/payment_method_page.dart index 4b700d6..0e18b06 100644 --- a/lib/pages/payment_method_page.dart +++ b/lib/pages/payment_method_page.dart @@ -6,7 +6,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class PaymentMethodPage extends StatefulWidget { @override diff --git a/lib/pages/pd/pd_form.dart b/lib/pages/pd/pd_form.dart index a35b28c..5d520a0 100644 --- a/lib/pages/pd/pd_form.dart +++ b/lib/pages/pd/pd_form.dart @@ -5,7 +5,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/log_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/pd_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/pd.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -142,13 +142,11 @@ class _PDFormState extends State { scrollDirection: Axis.horizontal, child: MyDataTable( columns: [ - MyDataColumn( - label: LocalText(context, "pd.product")), + MyDataColumn(label: LocalText(context, "pd.product")), MyDataColumn( label: LocalText(context, "pd.storage"), ), - MyDataColumn( - label: LocalText(context, "pd.quantity")), + MyDataColumn(label: LocalText(context, "pd.quantity")), ], rows: getProductRow(pd), ), diff --git a/lib/pages/pd/pd_item.dart b/lib/pages/pd/pd_item.dart index 8b3f7e5..d39acbc 100644 --- a/lib/pages/pd/pd_item.dart +++ b/lib/pages/pd/pd_item.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/pd.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/vo/storage.dart'; diff --git a/lib/pages/pd/pd_list.dart b/lib/pages/pd/pd_list.dart index 3344980..41565ff 100644 --- a/lib/pages/pd/pd_list.dart +++ b/lib/pages/pd/pd_list.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/pd_model.dart'; import 'package:fcs/pages/pd/pd_form.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/phone_input.dart b/lib/pages/phone_input.dart index 253e910..60a18e7 100644 --- a/lib/pages/phone_input.dart +++ b/lib/pages/phone_input.dart @@ -1,7 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -16,7 +16,7 @@ class _PhoneEditorState extends State { @override void initState() { super.initState(); - _phone.text ='09'; + _phone.text = '09'; } @override diff --git a/lib/pages/pickup_box_editor.dart b/lib/pages/pickup_box_editor.dart index dff56db..9116bcc 100644 --- a/lib/pages/pickup_box_editor.dart +++ b/lib/pages/pickup_box_editor.dart @@ -16,7 +16,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'shipping_address_editor.dart'; class PickupBoxEditor extends StatefulWidget { diff --git a/lib/pages/pickup_editor.dart b/lib/pages/pickup_editor.dart index 66feeaf..f927d36 100644 --- a/lib/pages/pickup_editor.dart +++ b/lib/pages/pickup_editor.dart @@ -23,7 +23,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'pickup_box_editor.dart'; class PickUpEditor extends StatefulWidget { diff --git a/lib/pages/pickup_list.dart b/lib/pages/pickup_list.dart index 33f1368..0968627 100644 --- a/lib/pages/pickup_list.dart +++ b/lib/pages/pickup_list.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'pickup_editor.dart'; class PickUpList extends StatefulWidget { diff --git a/lib/pages/pickup_list_row.dart b/lib/pages/pickup_list_row.dart index 21528d8..e817c0a 100644 --- a/lib/pages/pickup_list_row.dart +++ b/lib/pages/pickup_list_row.dart @@ -7,7 +7,7 @@ import 'package:flutter_icons/flutter_icons.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'buyer_info.dart'; diff --git a/lib/pages/pin_login_dialog.dart b/lib/pages/pin_login_dialog.dart index 349d67d..2b48f84 100644 --- a/lib/pages/pin_login_dialog.dart +++ b/lib/pages/pin_login_dialog.dart @@ -5,7 +5,7 @@ import 'package:flutter_verification_code_input/flutter_verification_code_input. import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:quiver/async.dart'; class PinLoginDialog extends StatefulWidget { diff --git a/lib/pages/po/po_item.dart b/lib/pages/po/po_item.dart index 9db9e39..1eb2b1e 100644 --- a/lib/pages/po/po_item.dart +++ b/lib/pages/po/po_item.dart @@ -3,7 +3,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/local_text.dart'; @@ -62,7 +62,7 @@ class _POItemState extends State { width: 170.0, child: DropdownButton( value: currentProductID, - isExpanded: true, + isExpanded: true, hint: Text( 'Select Product', style: labelStyle, diff --git a/lib/pages/po/po_submission_form.dart b/lib/pages/po/po_submission_form.dart index ab51231..9699a41 100644 --- a/lib/pages/po/po_submission_form.dart +++ b/lib/pages/po/po_submission_form.dart @@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/po/po_item.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/attach.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; diff --git a/lib/pages/product_edit_item.dart b/lib/pages/product_edit_item.dart index d2b3ad5..1060c2e 100644 --- a/lib/pages/product_edit_item.dart +++ b/lib/pages/product_edit_item.dart @@ -8,7 +8,7 @@ import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class ProductEditItem extends StatefulWidget { final Product product; diff --git a/lib/pages/products_list.dart b/lib/pages/products_list.dart index f3edc40..ef04b08 100644 --- a/lib/pages/products_list.dart +++ b/lib/pages/products_list.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/products.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/products_list_edit.dart b/lib/pages/products_list_edit.dart index 66f6031..25645da 100644 --- a/lib/pages/products_list_edit.dart +++ b/lib/pages/products_list_edit.dart @@ -8,7 +8,7 @@ import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'product_edit_item.dart'; class ProductsListEdit extends StatefulWidget { diff --git a/lib/pages/profile_edit.dart b/lib/pages/profile_edit.dart index ef76977..1190621 100644 --- a/lib/pages/profile_edit.dart +++ b/lib/pages/profile_edit.dart @@ -6,7 +6,7 @@ import 'package:fcs/pages/util.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; typedef void ProfileCallback(); diff --git a/lib/pages/profile_setting.dart b/lib/pages/profile_setting.dart index 5a4b459..0f457bf 100644 --- a/lib/pages/profile_setting.dart +++ b/lib/pages/profile_setting.dart @@ -4,7 +4,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'add_pin_editor.dart'; import 'block_list.dart'; import 'chage_phone_number.dart'; diff --git a/lib/pages/quota_form.dart b/lib/pages/quota_form.dart index d91bf39..73ff056 100644 --- a/lib/pages/quota_form.dart +++ b/lib/pages/quota_form.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/quota_page.dart b/lib/pages/quota_page.dart index 1590579..948e17e 100644 --- a/lib/pages/quota_page.dart +++ b/lib/pages/quota_page.dart @@ -8,7 +8,7 @@ import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class QuotaPage extends StatefulWidget { final Buyer buyer; diff --git a/lib/pages/report_user_editor.dart b/lib/pages/report_user_editor.dart index 74b8972..0ebab33 100644 --- a/lib/pages/report_user_editor.dart +++ b/lib/pages/report_user_editor.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/report_user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/report.dart'; import 'package:fcs/vo/report_user.dart'; import 'package:fcs/vo/user.dart'; diff --git a/lib/pages/report_user_list.dart b/lib/pages/report_user_list.dart index bcb8c72..01bc46f 100644 --- a/lib/pages/report_user_list.dart +++ b/lib/pages/report_user_list.dart @@ -7,7 +7,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'report_user_editor.dart'; import 'util.dart'; diff --git a/lib/pages/reset_password.dart b/lib/pages/reset_password.dart index 121b10d..4e94c9a 100644 --- a/lib/pages/reset_password.dart +++ b/lib/pages/reset_password.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart' as Theme; +import '../fcs/common/theme.dart' as Theme; import 'util.dart'; class ResetPasswordPage extends StatefulWidget { @@ -319,7 +319,7 @@ class _ResetPasswordPageState extends State UserModel userModel = Provider.of(context); try { await userModel.resetPassword(widget.phoneNumber, password, smsCode); - Navigator.pushNamedAndRemoveUntil(context, "/login", (r) => false); + Navigator.pushNamedAndRemoveUntil(context, "/login", (r) => false); } catch (e) { showMsgDialog(context, "Error", e.toString()); } finally { diff --git a/lib/pages/search_page.dart b/lib/pages/search_page.dart index e53f10b..bd46881 100644 --- a/lib/pages/search_page.dart +++ b/lib/pages/search_page.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'buyer_list_row.dart'; diff --git a/lib/pages/setting_editor.dart b/lib/pages/setting_editor.dart index 70c2b7c..cbecf85 100644 --- a/lib/pages/setting_editor.dart +++ b/lib/pages/setting_editor.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/setting.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; @@ -21,7 +21,7 @@ class _SettingEidtorState extends State { TextEditingController _poExpire = new TextEditingController(); TextEditingController _poOpend = new TextEditingController(); TextEditingController _poClosed = new TextEditingController(); - TextEditingController _latestDeliveryDay = new TextEditingController(); + TextEditingController _latestDeliveryDay = new TextEditingController(); TextEditingController _firstStorageDay = new TextEditingController(); TextEditingController _firstStorageCharge = new TextEditingController(); TextEditingController _secondStorageDay = new TextEditingController(); @@ -40,7 +40,7 @@ class _SettingEidtorState extends State { _poExpire.text = widget.setting.poExpireInHours.toString(); _poOpend.text = widget.setting.poOpenAt.toString(); _poClosed.text = widget.setting.poCloseAt.toString(); - _latestDeliveryDay.text =widget.setting.latestDeliveryDay.toString(); + _latestDeliveryDay.text = widget.setting.latestDeliveryDay.toString(); _firstStorageDay.text = widget.setting.firstStorageChargeIn.toString(); _firstStorageCharge.text = widget.setting.firstStorageCharge.toString(); _secondStorageDay.text = widget.setting.secondStorageChargeIn.toString(); @@ -395,7 +395,7 @@ class _SettingEidtorState extends State { widget.setting.poExpireInHours = int.parse(_poExpire.text); widget.setting.poOpenAt = int.parse(_poOpend.text); widget.setting.poCloseAt = int.parse(_poClosed.text); - widget.setting.latestDeliveryDay=int.parse(_latestDeliveryDay.text); + widget.setting.latestDeliveryDay = int.parse(_latestDeliveryDay.text); widget.setting.firstStorageChargeIn = int.parse(_firstStorageDay.text); widget.setting.firstStorageCharge = int.parse(_firstStorageCharge.text); widget.setting.secondStorageChargeIn = int.parse(_secondStorageDay.text); diff --git a/lib/pages/setting_editor_byOwner.dart b/lib/pages/setting_editor_byOwner.dart index 59be90a..0c6401f 100644 --- a/lib/pages/setting_editor_byOwner.dart +++ b/lib/pages/setting_editor_byOwner.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/setting.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/shipment_editor.dart b/lib/pages/shipment_editor.dart index 27293c1..bef76b6 100644 --- a/lib/pages/shipment_editor.dart +++ b/lib/pages/shipment_editor.dart @@ -13,7 +13,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class ShipmentEditor extends StatefulWidget { final Shipment shipment; diff --git a/lib/pages/shipment_list.dart b/lib/pages/shipment_list.dart index b8899f1..778dbf7 100644 --- a/lib/pages/shipment_list.dart +++ b/lib/pages/shipment_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'shipment_editor.dart'; import 'shipment_list_row.dart'; diff --git a/lib/pages/shipment_list_row.dart b/lib/pages/shipment_list_row.dart index a389585..f2a4c0f 100644 --- a/lib/pages/shipment_list_row.dart +++ b/lib/pages/shipment_list_row.dart @@ -1,4 +1,4 @@ -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/shipment.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; diff --git a/lib/pages/shipment_rates.dart b/lib/pages/shipment_rates.dart index 19d1c75..eff95fe 100644 --- a/lib/pages/shipment_rates.dart +++ b/lib/pages/shipment_rates.dart @@ -12,7 +12,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'util.dart'; class ShipmentRates extends StatefulWidget { diff --git a/lib/pages/shipment_rates_calculate.dart b/lib/pages/shipment_rates_calculate.dart index f30f1eb..07f5716 100644 --- a/lib/pages/shipment_rates_calculate.dart +++ b/lib/pages/shipment_rates_calculate.dart @@ -6,7 +6,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class ShipmentRatesCal extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages/shipment_rates_edit.dart b/lib/pages/shipment_rates_edit.dart index 263f03a..da5769f 100644 --- a/lib/pages/shipment_rates_edit.dart +++ b/lib/pages/shipment_rates_edit.dart @@ -13,7 +13,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'custom_editor.dart'; import 'discount_by_weight_editor.dart'; import 'util.dart'; diff --git a/lib/pages/shipping_address_editor.dart b/lib/pages/shipping_address_editor.dart index b5c9c16..8c62c20 100644 --- a/lib/pages/shipping_address_editor.dart +++ b/lib/pages/shipping_address_editor.dart @@ -5,7 +5,7 @@ import 'package:flutter_icons/flutter_icons.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class ShippingAddressEditor extends StatefulWidget { final ShippingAddress shippingAddress; @@ -85,7 +85,7 @@ class _ShippingAddressEditorState extends State { children: [ Expanded( child: Padding( - padding: const EdgeInsets.only(left: 10.0,right: 10), + padding: const EdgeInsets.only(left: 10.0, right: 10), child: ListView(children: [ usaAddress, SizedBox(height: 10), diff --git a/lib/pages/sms_page.dart b/lib/pages/sms_page.dart index 4d43744..b186c3b 100644 --- a/lib/pages/sms_page.dart +++ b/lib/pages/sms_page.dart @@ -3,7 +3,7 @@ import 'package:progress/progress.dart'; import 'package:provider/provider.dart'; import '../model/main_model.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import '../widget/localization/app_translations.dart'; import '../widget/progress.dart'; import 'util.dart'; diff --git a/lib/pages/staff_editor.dart b/lib/pages/staff_editor.dart index 568f197..c8d4772 100644 --- a/lib/pages/staff_editor.dart +++ b/lib/pages/staff_editor.dart @@ -4,7 +4,7 @@ import 'package:fcs/model/employee_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/staff_list.dart b/lib/pages/staff_list.dart index 7659c95..1e696b4 100644 --- a/lib/pages/staff_list.dart +++ b/lib/pages/staff_list.dart @@ -6,10 +6,10 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/employee_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import '../vo/user.dart'; import '../widget/local_text.dart'; import 'staff_editor.dart'; diff --git a/lib/pages/storage/inventory_item.dart b/lib/pages/storage/inventory_item.dart index e184938..ed8fefe 100644 --- a/lib/pages/storage/inventory_item.dart +++ b/lib/pages/storage/inventory_item.dart @@ -5,7 +5,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/inventory_line.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/vo/storage.dart'; diff --git a/lib/pages/storage/inventory_take.dart b/lib/pages/storage/inventory_take.dart index c6d3698..86bd1ec 100644 --- a/lib/pages/storage/inventory_take.dart +++ b/lib/pages/storage/inventory_take.dart @@ -3,7 +3,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/pages/storage/inventory_item.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/inventory_line.dart'; import 'package:fcs/vo/inventory_taking.dart'; import 'package:fcs/widget/local_text.dart'; @@ -78,10 +78,8 @@ class _TakeInventoryState extends State { scrollDirection: Axis.horizontal, child: MyDataTable( columns: [ - MyDataColumn( - label: LocalText(context, "inventory.product")), - MyDataColumn( - label: LocalText(context, "inventory.storage")), + MyDataColumn(label: LocalText(context, "inventory.product")), + MyDataColumn(label: LocalText(context, "inventory.storage")), MyDataColumn( label: LocalText(context, "inventory.old.qty"), ), diff --git a/lib/pages/storage/inventory_taking_list.dart b/lib/pages/storage/inventory_taking_list.dart index dfb11dd..193f2f7 100644 --- a/lib/pages/storage/inventory_taking_list.dart +++ b/lib/pages/storage/inventory_taking_list.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/pages/storage/inventory_take.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/inventory_taking.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/storage/storage_addition.dart b/lib/pages/storage/storage_addition.dart index b559c6e..9a8cf4d 100644 --- a/lib/pages/storage/storage_addition.dart +++ b/lib/pages/storage/storage_addition.dart @@ -3,7 +3,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/storage.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -39,14 +39,20 @@ class _StorageAdditionState extends State { child: Scaffold( appBar: AppBar( backgroundColor: primaryColor, - title: LocalText(context, "storage.item.title",color: Colors.white,fontSize: 20,), + title: LocalText( + context, + "storage.item.title", + color: Colors.white, + fontSize: 20, + ), actions: [ widget.storage == null ? Container() : IconButton( icon: Icon(Icons.delete), onPressed: () { - showConfirmDialog(context, "storage.delete_confirm", () { + showConfirmDialog(context, "storage.delete_confirm", + () { _delete(context); }); }, diff --git a/lib/pages/storage/storage_list.dart b/lib/pages/storage/storage_list.dart index b1e55b5..945bc42 100644 --- a/lib/pages/storage/storage_list.dart +++ b/lib/pages/storage/storage_list.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/pages/storage/storage_addition.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/vo/storage.dart'; import 'package:fcs/widget/local_text.dart'; @@ -174,9 +174,7 @@ class _StorageListState extends State { style: textStyle, ), ), - MyDataCell( - NumberCell(p.quantity) - ), + MyDataCell(NumberCell(p.quantity)), ], ); }).toList(); diff --git a/lib/pages/term.dart b/lib/pages/term.dart index 4afdc8c..cd70908 100644 --- a/lib/pages/term.dart +++ b/lib/pages/term.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; import 'package:zefyr/zefyr.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; typedef void ProfileCallback(); diff --git a/lib/pages/term_edit.dart b/lib/pages/term_edit.dart index 744b02b..bd88c3a 100644 --- a/lib/pages/term_edit.dart +++ b/lib/pages/term_edit.dart @@ -9,7 +9,7 @@ import 'package:fcs/pages/util.dart'; import 'package:fcs/widget/progress.dart'; import 'package:zefyr/zefyr.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; typedef void ProfileCallback(); diff --git a/lib/pages/test_list.dart b/lib/pages/test_list.dart index 2b0b7c3..77d0e52 100644 --- a/lib/pages/test_list.dart +++ b/lib/pages/test_list.dart @@ -3,7 +3,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/test_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; class TestList extends StatefulWidget { diff --git a/lib/pages/user_editor.dart b/lib/pages/user_editor.dart index fed99de..f33275c 100644 --- a/lib/pages/user_editor.dart +++ b/lib/pages/user_editor.dart @@ -5,7 +5,7 @@ import 'package:url_launcher/url_launcher.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/user_list.dart b/lib/pages/user_list.dart index 617575b..7f87d5e 100644 --- a/lib/pages/user_list.dart +++ b/lib/pages/user_list.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/user_search_page.dart b/lib/pages/user_search_page.dart index 5696618..a3e9cd3 100644 --- a/lib/pages/user_search_page.dart +++ b/lib/pages/user_search_page.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/user.dart'; import 'user_editor.dart'; diff --git a/lib/pages/util.dart b/lib/pages/util.dart index 3cb6a6a..25f48c7 100644 --- a/lib/pages/util.dart +++ b/lib/pages/util.dart @@ -11,7 +11,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/notification_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -479,7 +479,7 @@ Widget fcsInputReadOnly(String label, IconData iconData, filled: true, icon: Icon( iconData, - color:primaryColor, + color: primaryColor, ), )); // return Row( diff --git a/lib/pages/welcome_page.dart b/lib/pages/welcome_page.dart deleted file mode 100644 index 2a392d2..0000000 --- a/lib/pages/welcome_page.dart +++ /dev/null @@ -1,161 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:package_info/package_info.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/widget/banner.dart'; -import 'package:fcs/widget/localization/transalation.dart'; -import 'package:fcs/widget/offline_redirect.dart'; -import 'package:fcs/widget/products.dart'; - -import 'contact.dart'; -import 'login_page.dart'; -import 'manual/manual_page.dart'; - -class WelcomePage extends StatefulWidget { - @override - _WelcomePageState createState() => _WelcomePageState(); -} - -class _WelcomePageState extends State { - String version = ""; - List _selection = List.generate(2, (_) => false); - - @override - void initState() { - super.initState(); - _loadVersion(); - var languageModel = Provider.of(context, listen: false); - languageModel.isEng ? _selection[0] = true : _selection[1] = true; - } - - _loadVersion() async { - var version = await getVersionNumber(); - setState(() { - this.version = version; - }); - } - - Future getVersionNumber() async { - PackageInfo packageInfo = await PackageInfo.fromPlatform(); - return "v${packageInfo.version}+${packageInfo.buildNumber}"; - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - var toggleButtons = ToggleButtons( - constraints: BoxConstraints(minWidth: 25.0, minHeight: 25.0), - children: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: Container( - decoration: languageModel.isEng - ? BoxDecoration( - border: Border.all(color: Colors.blueAccent, width: 1)) - : null, - child: Image.asset( - "assets/eng_flag.png", - width: 23, - ), - ), - ), - Container( - decoration: !languageModel.isEng - ? BoxDecoration( - border: Border.all(color: Colors.blueAccent, width: 1)) - : null, - child: Image.asset( - "assets/myan_flag.png", - width: 23, - ), - ), - ], - renderBorder: false, - isSelected: _selection, - fillColor: Colors.white, - onPressed: (int index) { - languageModel.saveLanguage(Translation().supportedLanguages[index]); - setState(() { - for (int buttonIndex = 0; - buttonIndex < _selection.length; - buttonIndex++) { - if (buttonIndex == index) { - _selection[buttonIndex] = true; - } else { - _selection[buttonIndex] = false; - } - } - }); - }, - ); - - return OfflineRedirect( - child: FlavorBanner( - child: Scaffold( - backgroundColor: Colors.white, - appBar: AppBar( - backgroundColor: Colors.white, - iconTheme: IconThemeData( - color: Colors.grey, - ), - elevation: 0, - title: Image( - height: 30, - fit: BoxFit.scaleDown, - image: new AssetImage('assets/img/logo.png')), - actions: [ - IconButton( - icon: Image.asset( - "assets/manual.png", - width: 30, - height: 30, - color: Colors.black, - ), - onPressed: () => Navigator.of(context) - .push(MaterialPageRoute(builder: (_) => ManualPage())), - ), - IconButton( - icon: Icon( - FontAwesomeIcons.phone, - color: Colors.black, - size: 20, - ), - onPressed: () => Navigator.of(context) - .push(MaterialPageRoute(builder: (_) => Contact())), - ), - IconButton( - icon: Icon( - FontAwesomeIcons.signInAlt, - color: Colors.black, - size: 20, - ), - onPressed: () => Navigator.of(context) - .push(MaterialPageRoute(builder: (_) => LoginPage())), - ), - ], - ), - body: ListView( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: toggleButtons, - ), - ], - ), - Padding( - padding: const EdgeInsets.only(top: 5), - child: ProductsWidget(isWelcomePage: false), - ), - SizedBox(height: 30,), - Center(child: Text("${this.version}")), - ], - )), - ), - ); - } -} diff --git a/lib/pages_fcs/box_editor.dart b/lib/pages_fcs/box_editor.dart index a969342..9816302 100644 --- a/lib/pages_fcs/box_editor.dart +++ b/lib/pages_fcs/box_editor.dart @@ -21,7 +21,7 @@ import 'package:provider/provider.dart'; import 'package:timeline_list/timeline.dart'; import 'package:timeline_list/timeline_model.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'shipping_address_row.dart'; class BoxEditor extends StatefulWidget { diff --git a/lib/pages_fcs/box_list.dart b/lib/pages_fcs/box_list.dart index 9d02ab8..9ef6b13 100644 --- a/lib/pages_fcs/box_list.dart +++ b/lib/pages_fcs/box_list.dart @@ -14,7 +14,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'pickup_editor.dart'; class BoxList extends StatefulWidget { diff --git a/lib/pages_fcs/cargo_editor.dart b/lib/pages_fcs/cargo_editor.dart index 2101b3e..2d61cf2 100644 --- a/lib/pages_fcs/cargo_editor.dart +++ b/lib/pages_fcs/cargo_editor.dart @@ -3,7 +3,7 @@ import 'package:fcs/vo/rate.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class CargoEditor extends StatefulWidget { final Rate rate; diff --git a/lib/pages_fcs/delivery_list.dart b/lib/pages_fcs/delivery_list.dart index 859e88f..dc60fc3 100644 --- a/lib/pages_fcs/delivery_list.dart +++ b/lib/pages_fcs/delivery_list.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'delivery_list_row.dart'; class DeliverList extends StatefulWidget { diff --git a/lib/pages_fcs/package_editor.dart b/lib/pages_fcs/package_editor.dart index aefa7bb..bf62d4e 100644 --- a/lib/pages_fcs/package_editor.dart +++ b/lib/pages_fcs/package_editor.dart @@ -18,7 +18,7 @@ import 'package:provider/provider.dart'; import 'package:timeline_list/timeline.dart'; import 'package:timeline_list/timeline_model.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'shipping_address_list.dart'; class PackageEditor extends StatefulWidget { @@ -363,8 +363,7 @@ class _PackageEditorState extends State { ), ], ), - isNew?Container(): - getShippingAddressList(context), + isNew ? Container() : getShippingAddressList(context), isNew ? Container() : ExpansionTile( diff --git a/lib/pages_fcs/package_list.dart b/lib/pages_fcs/package_list.dart index 0276184..1d995dd 100644 --- a/lib/pages_fcs/package_list.dart +++ b/lib/pages_fcs/package_list.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class PackageList extends StatefulWidget { @override diff --git a/lib/pages_fcs/pickup_editor.dart b/lib/pages_fcs/pickup_editor.dart index 85525e8..b162ffb 100644 --- a/lib/pages_fcs/pickup_editor.dart +++ b/lib/pages_fcs/pickup_editor.dart @@ -10,7 +10,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class PickUpEditor extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages_fcs/shipping_address_list.dart b/lib/pages_fcs/shipping_address_list.dart index 02807e5..f0e7e1c 100644 --- a/lib/pages_fcs/shipping_address_list.dart +++ b/lib/pages_fcs/shipping_address_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class ShippingAddressList extends StatefulWidget { @override diff --git a/lib/pages_fcs/shipping_address_row.dart b/lib/pages_fcs/shipping_address_row.dart index 231b38b..0d4e8cf 100644 --- a/lib/pages_fcs/shipping_address_row.dart +++ b/lib/pages_fcs/shipping_address_row.dart @@ -1,5 +1,5 @@ import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/shipping_address.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; diff --git a/lib/reports/report_field_list_page.dart b/lib/reports/report_field_list_page.dart index a6a59ec..9121572 100644 --- a/lib/reports/report_field_list_page.dart +++ b/lib/reports/report_field_list_page.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/report_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/report.dart'; class ReportFieldListPage extends StatefulWidget { diff --git a/lib/reports/report_filter_list_page.dart b/lib/reports/report_filter_list_page.dart index f892490..56e5da9 100644 --- a/lib/reports/report_filter_list_page.dart +++ b/lib/reports/report_filter_list_page.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class ReportFilterListPage extends StatefulWidget { final Report report; diff --git a/lib/reports/report_list.dart b/lib/reports/report_list.dart index 3933c81..cd0baad 100644 --- a/lib/reports/report_list.dart +++ b/lib/reports/report_list.dart @@ -11,7 +11,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; import 'reports_data_table.dart'; class ReportList extends StatefulWidget { diff --git a/lib/reports/reports_data_table.dart b/lib/reports/reports_data_table.dart index b967701..cf13625 100644 --- a/lib/reports/reports_data_table.dart +++ b/lib/reports/reports_data_table.dart @@ -13,7 +13,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/report_model.dart'; import 'package:fcs/pages/util.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/report.dart'; import 'package:fcs/widget/my_data_table.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/widget/NetworkConnectivity.dart b/lib/widget/NetworkConnectivity.dart index b774038..4888bc0 100644 --- a/lib/widget/NetworkConnectivity.dart +++ b/lib/widget/NetworkConnectivity.dart @@ -4,7 +4,7 @@ import 'dart:io'; import 'package:connectivity/connectivity.dart'; import 'package:logging/logging.dart'; import 'package:fcs/config.dart'; -import 'package:fcs/model/api_helper.dart'; +import 'package:fcs/fcs/common/api_helper.dart'; class NetworkConnectivity { final log = Logger('NetworkConnectivity'); diff --git a/lib/widget/fcs_text_field.dart b/lib/widget/fcs_text_field.dart index a9c4df8..cecfd2b 100644 --- a/lib/widget/fcs_text_field.dart +++ b/lib/widget/fcs_text_field.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class FCSTextField extends StatelessWidget { final TextEditingController controller; diff --git a/lib/widget/fcs_text_field_readonly.dart b/lib/widget/fcs_text_field_readonly.dart index 74dd82e..9ae2b83 100644 --- a/lib/widget/fcs_text_field_readonly.dart +++ b/lib/widget/fcs_text_field_readonly.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../theme/theme.dart'; +import '../fcs/common/theme.dart'; class FCSTextFieldReadOnly extends StatelessWidget { final TextEditingController controller; diff --git a/lib/widget/label_widgets.dart b/lib/widget/label_widgets.dart index 551c238..9fa4eb2 100644 --- a/lib/widget/label_widgets.dart +++ b/lib/widget/label_widgets.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/img_url.dart'; import 'package:fcs/widget/local_text.dart'; @@ -14,16 +14,16 @@ Widget labeledText(BuildContext context, String text, String label, crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.only(top:8.0), - child: LocalText( + padding: const EdgeInsets.only(top: 8.0), + child: LocalText( context, label, fontSize: 14, - color:primaryColor, + color: primaryColor, fontWeight: FontWeight.bold, ), ), - + // number ? Spacer() : Container(), Container( padding: EdgeInsets.only(top: 10), diff --git a/lib/widget/local_text.dart b/lib/widget/local_text.dart index 7f1d41b..4875ac5 100644 --- a/lib/widget/local_text.dart +++ b/lib/widget/local_text.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'localization/app_translations.dart'; diff --git a/lib/widget/local_text_field.dart b/lib/widget/local_text_field.dart index 398cf2f..596b0cc 100644 --- a/lib/widget/local_text_field.dart +++ b/lib/widget/local_text_field.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'localization/app_translations.dart'; diff --git a/lib/widget/number_cell.dart b/lib/widget/number_cell.dart index eca556b..54d43e5 100644 --- a/lib/widget/number_cell.dart +++ b/lib/widget/number_cell.dart @@ -1,6 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:intl/intl.dart'; -import 'package:fcs/theme/theme.dart' as theme; +import 'package:fcs/fcs/common/theme.dart' as theme; class NumberCell extends StatelessWidget { final int number; diff --git a/lib/widget/products.dart b/lib/widget/products.dart index f51eb96..f6740dd 100644 --- a/lib/widget/products.dart +++ b/lib/widget/products.dart @@ -7,7 +7,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/charts/lines.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/po/po_submission_form.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -119,7 +119,7 @@ class _ProductsWidgetState extends State { Spacer(), Container( alignment: Alignment.bottomRight, - padding: EdgeInsets.only(right: 15,bottom: 5), + padding: EdgeInsets.only(right: 15, bottom: 5), child: InkWell( onTap: () => { Navigator.of(context).push(MaterialPageRoute( diff --git a/lib/widget/products_price_table.dart b/lib/widget/products_price_table.dart index 50399ac..59a75dc 100644 --- a/lib/widget/products_price_table.dart +++ b/lib/widget/products_price_table.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; @@ -19,7 +19,6 @@ class _ProductPriceTableState extends State { final numberFormatter = new NumberFormat("#,###"); var dateFormatter = new DateFormat('dd MMM yyyy\nhh:mm:ss a'); - @override Widget build(BuildContext context) { var productModel = Provider.of(context); @@ -42,7 +41,8 @@ class _ProductPriceTableState extends State { columns: [ DataColumn(label: LocalText(context, "product.update.date")), DataColumn(label: LocalText(context, "prodcuts")), - DataColumn(label: LocalText(context, "products.prices"),numeric: true), + DataColumn( + label: LocalText(context, "products.prices"), numeric: true), ], rows: getProductRow(productModel.getPrices), ), diff --git a/lib/widget/progress.dart b/lib/widget/progress.dart index 6ea60bc..3f35d0a 100644 --- a/lib/widget/progress.dart +++ b/lib/widget/progress.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:progress/progress.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; class LocalProgress extends Progress { LocalProgress({bool inAsyncCall, Widget child}) diff --git a/lib/widget/show_img.dart b/lib/widget/show_img.dart index 330def7..a0a8717 100644 --- a/lib/widget/show_img.dart +++ b/lib/widget/show_img.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:photo_view/photo_view.dart'; -import 'package:fcs/theme/theme.dart'; +import 'package:fcs/fcs/common/theme.dart'; class ShowImage extends StatefulWidget { final String url; diff --git a/pubspec.lock b/pubspec.lock index cffe47f..8c81efa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -513,6 +513,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.9.7" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" notus: dependency: transitive description: @@ -659,7 +666,7 @@ packages: name: provider url: "https://pub.dartlang.org" source: hosted - version: "2.0.1+1" + version: "4.3.2+1" pub_semver: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 44856c5..1ce2236 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,7 +18,7 @@ dependencies: firebase_storage: ^3.1.0 firebase_auth: ^0.14.0 firebase_messaging: ^6.0.15 - provider: ^2.0.0+1 + provider: ^4.3.2+1 flutter_launcher_icons: "^0.7.2" qr_flutter: ^2.1.0+55 image_picker: ^0.6.0+9 From acfab08198baeb3d3aa0419f895628eb30b6ff8d Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Fri, 4 Sep 2020 01:42:58 +0630 Subject: [PATCH 04/22] fix mainmodel --- lib/app.dart | 9 +- lib/fcs/common/data/providers/auth_fb.dart | 119 ++++++------ lib/fcs/common/domain/constants.dart | 37 ++++ lib/fcs/common/domain/entities/auth.dart | 13 -- .../common/domain/entities/auth_result.dart | 9 + .../common/domain/entities/bank_account.dart | 31 ++++ lib/fcs/common/domain/entities/setting.dart | 166 +++++++++++++++++ lib/fcs/common/domain/entities/user.dart | 4 +- .../domain/exceiptions/signin_exception.dart | 8 + lib/fcs/common/network_connectivity.dart | 67 +++++++ lib/fcs/common/pages/home_page.dart | 2 +- lib/fcs/common/pages/model/main_model.dart | 170 ++++++++++++++++++ lib/fcs/common/pages/profile_page.dart | 10 +- lib/fcs/common/pages/signin/code_page.dart | 16 +- .../pages/signin/model/signin_model.dart | 25 --- lib/fcs/common/pages/signin/signin_page.dart | 9 +- lib/fcs/common/pages/signin/signup_page.dart | 6 +- lib/fcs/common/pages/splash_page.dart | 71 ++------ lib/fcs/common/pages/welcome_page.dart | 3 +- lib/fcs/common/services/auth_imp.dart | 36 +++- lib/fcs/common/services/auth_interface.dart | 7 - lib/fcs/common/services/auth_service.dart | 13 ++ lib/fcs/common/services/services.dart | 19 ++ lib/main-dev.dart | 4 +- lib/model/main_model.dart | 6 +- 25 files changed, 668 insertions(+), 192 deletions(-) create mode 100644 lib/fcs/common/domain/constants.dart delete mode 100644 lib/fcs/common/domain/entities/auth.dart create mode 100644 lib/fcs/common/domain/entities/auth_result.dart create mode 100644 lib/fcs/common/domain/entities/bank_account.dart create mode 100644 lib/fcs/common/domain/entities/setting.dart create mode 100644 lib/fcs/common/domain/exceiptions/signin_exception.dart create mode 100644 lib/fcs/common/network_connectivity.dart create mode 100644 lib/fcs/common/pages/model/main_model.dart delete mode 100644 lib/fcs/common/pages/signin/model/signin_model.dart delete mode 100644 lib/fcs/common/services/auth_interface.dart create mode 100644 lib/fcs/common/services/auth_service.dart create mode 100644 lib/fcs/common/services/services.dart diff --git a/lib/app.dart b/lib/app.dart index ce29ae6..df6f0c7 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,4 +1,3 @@ -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/delivery_model.dart'; import 'package:fcs/model/discount_model.dart'; @@ -17,6 +16,7 @@ import 'package:fcs/pages/login_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart' as fcs; import 'model/announcement_model.dart'; import 'model/chart_model.dart'; @@ -48,6 +48,8 @@ class App extends StatefulWidget { } class _AppState extends State { + final fcs.MainModel mainModel2 = new fcs.MainModel(); + final MainModel mainModel = new MainModel(); final UserModel userModel = new UserModel(); final ProductModel productModel = new ProductModel(); @@ -84,6 +86,7 @@ class _AppState extends State { @override void initState() { super.initState(); + mainModel2.init(); _newLocaleDelegate = AppTranslationsDelegate(newLocale: null); Translation().onLocaleChanged = onLocaleChange; mainModel @@ -174,9 +177,7 @@ class _AppState extends State { ChangeNotifierProvider.value(value: customerModel), ChangeNotifierProvider.value(value: discountModel), ChangeNotifierProvider.value(value: testModel), - ChangeNotifierProvider( - create: (_) => SigninModel(), - ), + ChangeNotifierProvider.value(value: mainModel2), ], child: Consumer( builder: (BuildContext context, LanguageModel value, Widget child) { diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/fcs/common/data/providers/auth_fb.dart index bbb90ba..1c076aa 100644 --- a/lib/fcs/common/data/providers/auth_fb.dart +++ b/lib/fcs/common/data/providers/auth_fb.dart @@ -1,7 +1,12 @@ import 'dart:async'; -import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:fcs/fcs/common/domain/constants.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_result.dart' as fcs; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart'; import 'package:firebase_auth/firebase_auth.dart'; import '../../api_helper.dart'; @@ -11,39 +16,37 @@ class AuthFb { AuthFb._(); static final FirebaseAuth _fb = FirebaseAuth.instance; - static FirebaseUser firebaseUser; static String _verificationId; - Future sendSmsCodeToPhoneNumber(String phoneNumber) { - Completer completer = Completer(); + Future sendSmsCodeToPhoneNumber(String phoneNumber) { + Completer completer = Completer(); final PhoneVerificationCompleted verificationCompleted = - (AuthCredential authCredential) async { - firebaseUser = await _signIn(authCredential); - Auth auth = Auth(authStatus: AuthStatus.AUTH_VERIFIED); - auth.uid = firebaseUser.uid; - auth.name = await _getName(firebaseUser); - auth.phoneNumber = firebaseUser.phoneNumber; + (AuthCredential credential) async { + AuthResult _authResult = await _fb.signInWithCredential(credential); + if (_authResult == null) { + throw SigninException("Sigin error!"); + } + fcs.AuthResult auth = + fcs.AuthResult(authStatus: AuthStatus.AUTH_VERIFIED); completer.complete(auth); print( - 'Inside _sendCodeToPhoneNumber: signInWithPhoneNumber auto succeeded: $firebaseUser'); + 'Inside _sendCodeToPhoneNumber: signInWithPhoneNumber auto succeeded: ${_authResult.user}'); }; final PhoneVerificationFailed verificationFailed = (AuthException authException) async { print( 'Phone number verification failed. Code: ${authException.code}. Message: ${authException.message}'); - completer.complete(Auth( - authStatus: AuthStatus.ERROR, - authErrorCode: authException.code, - authErrorMsg: "Phone number verification failed")); + completer + .completeError(SigninException("Phone number verification failed")); }; final PhoneCodeSent codeSent = (String verificationId, [int forceResendingToken]) async { _verificationId = verificationId; print("code sent to " + phoneNumber); - completer.complete(Auth(authStatus: AuthStatus.SMS_SENT)); + completer.complete(fcs.AuthResult(authStatus: AuthStatus.SMS_SENT)); }; final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout = @@ -62,61 +65,65 @@ class AuthFb { return completer.future; } - Future signInWithPhoneNumber(String smsCode) async { - Auth auth = Auth(); + Future signInWithPhoneNumber(String smsCode) async { + User user; try { final AuthCredential credential = PhoneAuthProvider.getCredential( verificationId: _verificationId, smsCode: smsCode, ); - - firebaseUser = await _signIn(credential); - - auth.uid = firebaseUser.uid; - auth.name = await _getName(firebaseUser); - auth.authStatus = AuthStatus.AUTH_VERIFIED; + AuthResult _authResult = await _fb.signInWithCredential(credential); + if (_authResult == null) { + throw SigninException("Sigin error!"); + } } on Exception catch (e) { - auth.authStatus = AuthStatus.ERROR; - auth.authErrorMsg = e.toString(); + return Future.error(SigninException(e.toString())); } - return Future.value(auth); + if (user == null) Future.error(SigninException("No current user!")); + return Future.value(fcs.AuthResult(authStatus: AuthStatus.AUTH_VERIFIED)); } Future signout() { - firebaseUser = null; return _fb.signOut(); } - Future _signIn(AuthCredential credential) async { - AuthResult _authResult = await _fb.signInWithCredential(credential); - FirebaseUser _fusr = _authResult.user; + Stream get onAuthStatus async* { + await for (FirebaseUser firebaseUser in _fb.onAuthStateChanged) { + if (firebaseUser == null) { + yield null; + } + yield await getUser(); + } + } + + Future getUser({bool refreshIdToken = false}) async { + FirebaseUser firebaseUser = await _fb.currentUser(); + if (firebaseUser == null) return null; + IdTokenResult idToken = + await firebaseUser.getIdToken(refresh: refreshIdToken); + String name = idToken.claims["name"]; + User user = User(); + user.id = firebaseUser.uid; + user.name = name; + user.hasSignup = + idToken.claims.containsKey("signup") && idToken.claims["signup"]; + user.phoneNumber = firebaseUser.phoneNumber; + return user; + } + + Future isLogin() async { final FirebaseUser firebaseUser = await _fb.currentUser(); - assert(_fusr.uid == firebaseUser.uid); - - var idToken = await firebaseUser.getIdToken(); - print("Claims:${idToken.claims}"); - - return firebaseUser; + return Future.value(firebaseUser != null); } - Future _getName(FirebaseUser firebaseUser) async { - IdTokenResult idToken = await firebaseUser.getIdToken(); - return idToken.claims["name"]; - } - - Future hasSignup() async { - IdTokenResult idToken = await firebaseUser.getIdToken(); - return idToken.claims.containsKey("signup") && idToken.claims["signup"]; - } - - Future signup(String name) async { + Future signup(String userName) async { await requestAPI("/signup", "POST", payload: { - 'name': name, + 'user_name': userName, }, token: await getToken()); // refresh token once signup - await firebaseUser.getIdToken(refresh: true); + return getUser(refreshIdToken: true); } static Future getToken() async { @@ -124,4 +131,16 @@ class AuthFb { IdTokenResult token = await firebaseUser.getIdToken(); return token.token; } + + Future getSetting() async { + var snap = await Firestore.instance + .collection(config_collection) + .document(setting_doc_id) + .get(); + if (!snap.exists) { + return null; + } + // _listSetting(); + return Setting.fromMap(snap.data); + } } diff --git a/lib/fcs/common/domain/constants.dart b/lib/fcs/common/domain/constants.dart new file mode 100644 index 0000000..c7d22eb --- /dev/null +++ b/lib/fcs/common/domain/constants.dart @@ -0,0 +1,37 @@ +const ok_doc_id = "ok"; +const setting_doc_id = "setting"; + +const config_collection = "configs"; +const biz_collection = "bizs"; +const product_collection = "products"; +const user_collection = "users"; +const privilege_collection = "privileges"; +const user_level_collection = "user_levels"; +const storage_collection = "storages"; +const buyer_collection = "buyers"; +const buying_pos = "buying_pos"; +const selling_pos = "selling_pos"; +const inventory_takings = "inventory_takings"; +const inventory_lines = "inventory_lines"; +const pds_collection = "pds"; +const pos_collection = "pos"; +const dos_collection = "dos"; +const notification_collection = "notifications"; +const log_collection = "logs"; +const report_collection = "reports"; +const po_product_collection = "po_products"; +const device_collection = "devices"; +const do_po_lines_collection = "do_po_lines"; +const reports_collection = "reports"; +const announcement_collection = "announcements"; +const report_user_collection = "report_users"; + +const po_files_path = "/ok/po"; +const reg_files_path = "/ok/reg"; +const do_files_path = "/ok/do"; +const sign_files_path = "/ok/sign"; +const bank_images_path = "/ok/banks"; + +const po_approved_status = "approved"; +const po_closed_status = "closed"; +const do_approved_status = "approved"; diff --git a/lib/fcs/common/domain/entities/auth.dart b/lib/fcs/common/domain/entities/auth.dart deleted file mode 100644 index 8fd50c5..0000000 --- a/lib/fcs/common/domain/entities/auth.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'auth_status.dart'; - -class Auth { - AuthStatus authStatus; - String authErrorCode; - String authErrorMsg; - - String uid; - String name; - String phoneNumber; - - Auth({this.authStatus, this.authErrorCode, this.authErrorMsg}); -} diff --git a/lib/fcs/common/domain/entities/auth_result.dart b/lib/fcs/common/domain/entities/auth_result.dart new file mode 100644 index 0000000..dd989fd --- /dev/null +++ b/lib/fcs/common/domain/entities/auth_result.dart @@ -0,0 +1,9 @@ +import 'auth_status.dart'; + +class AuthResult { + AuthStatus authStatus; + String authErrorCode; + String authErrorMsg; + + AuthResult({this.authStatus, this.authErrorCode, this.authErrorMsg}); +} diff --git a/lib/fcs/common/domain/entities/bank_account.dart b/lib/fcs/common/domain/entities/bank_account.dart new file mode 100644 index 0000000..98027f0 --- /dev/null +++ b/lib/fcs/common/domain/entities/bank_account.dart @@ -0,0 +1,31 @@ +class BankAccount { + int index; + String bankName; + String bankLogo; + String accountName; + String accountNumber; + BankAccount( + {this.index, + this.bankName, + this.bankLogo, + this.accountName, + this.accountNumber}); + + BankAccount.fromMap(int index, Map json) { + this.index = index; + bankName = json['bank_name']; + bankLogo = json['bank_logo']; + accountName = json['account_name']; + accountNumber = json['account_number']; + } + + Map toMap() { + return { + "index": index, + 'bank_name': bankName, + 'bank_logo': bankLogo, + 'account_name': accountName, + 'account_number': accountNumber, + }; + } +} diff --git a/lib/fcs/common/domain/entities/setting.dart b/lib/fcs/common/domain/entities/setting.dart new file mode 100644 index 0000000..b5f9db1 --- /dev/null +++ b/lib/fcs/common/domain/entities/setting.dart @@ -0,0 +1,166 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; + +import 'bank_account.dart'; + +List dayLists = [ + Day(id: 1, name: 'Sun'), + Day(id: 2, name: 'Mon'), + Day(id: 3, name: 'Tue'), + Day(id: 4, name: 'Wed'), + Day(id: 5, name: 'Thu'), + Day(id: 6, name: 'Fri'), + Day(id: 7, name: 'Sat'), +]; + +class Setting { + final int supportBuildNum; + final String okEnergyId; + final String about; + final String terms; + int poExpireInHours; + int doExpireInHours; + int poOpenAt; + int poCloseAt; + List poCloseOn; + int latestDeliveryDay; + int firstStorageChargeIn; + int firstStorageCharge; + int secondStorageChargeIn; + int secondStorageCharge; + int deliveryStartWaitMin; + String reportURL; + String helpVersion; + String helpURL; + + List phones; + String deliveryPhone; + String address; + String email; + String website; + String facebook; + DateTime priceLastUpdate; + String bankAccountInfo; + List bankAccounts; + + String get getPoOpenAt => poOpenAt > 12 + ? (poOpenAt - 12).toString() + "PM" + : poOpenAt.toString() + "AM"; + + String get getPoCloseAt => poCloseAt > 12 + ? (poCloseAt - 12).toString() + "PM" + : poCloseAt.toString() + "AM"; + + String get getPoCloseOn => poCloseOn.fold( + "", (p, e) => p + (p == "" ? "" : ", ") + dayLists[e - 1].name); + + String get getPoOpenOn => dayLists.fold( + "", + (p, e) => + p + + (p == "" ? "" : poCloseOn.contains(e.id) ? "" : ", ") + + (poCloseOn.contains(e.id) ? "" : e.name)); + + bool get isPOClose { + DateTime now = DateTime.now(); + // dart starts from monday width starting index one + // server starts from sunday with starting index one + var day = (now.weekday + 1) == 8 ? 1 : now.weekday + 1; + return poCloseOn.contains(day) || + (now.hour < poOpenAt || now.hour >= poCloseAt); + } + + Setting( + {this.supportBuildNum, + this.about, + this.okEnergyId, + this.terms, + this.poExpireInHours, + this.doExpireInHours, + this.poOpenAt, + this.poCloseAt, + this.poCloseOn, + this.latestDeliveryDay, + this.firstStorageCharge, + this.firstStorageChargeIn, + this.secondStorageCharge, + this.secondStorageChargeIn, + this.deliveryStartWaitMin, + this.reportURL, + this.helpVersion, + this.helpURL, + this.phones, + this.email, + this.website, + this.facebook, + this.priceLastUpdate, + this.bankAccountInfo, + this.bankAccounts, + this.deliveryPhone, + this.address}); + + factory Setting.fromMap(Map map) { + var ts = (map['price_last_update'] as Timestamp); + var list = (map['bank_accounts'] as List); + List bankAccounts = []; + if (list != null) { + list.asMap().forEach((index, item) { + bankAccounts + .add(BankAccount.fromMap(index, item.cast())); + }); + } + + return Setting( + priceLastUpdate: ts?.toDate(), + supportBuildNum: map['support_build_number'], + about: map['about'], + terms: map['terms'], + okEnergyId: map['ok_energy_id'], + poExpireInHours: map['po_expire_hours'], + doExpireInHours: map['do_expire_hours'], + poOpenAt: map['po_open_at'], + poCloseAt: map['po_close_at'], + latestDeliveryDay: map['latest_delivery_days'], + firstStorageChargeIn: map['first_storage_charge_in'], + firstStorageCharge: map['first_storage_charge'], + secondStorageChargeIn: map['second_storage_charge_in'], + secondStorageCharge: map['second_storage_charge'], + deliveryStartWaitMin: map['delivery_start_wait_min'], + reportURL: map['report_url'], + helpVersion: map['help_version'], + helpURL: map['help_url'], + email: map['email'], + deliveryPhone: map['delivery_phone'], + address: map['address'], + website: map['website'], + facebook: map['facebook'], + bankAccountInfo: map['bank_account_info'], + bankAccounts: bankAccounts); + } + + Map toMap() { + return { + 'terms': terms, + }; + } + + String helpFileName() { + return "help-v$helpVersion.zip"; + } + + @override + String toString() { + return 'Setting{supportBuildNum:$supportBuildNum,about:$about,okEnergyId:$okEnergyId}'; + } +} + +class Day { + int id; + String name; + bool isChecked = false; + Day({this.id, this.name, this.isChecked}); + + @override + String toString() { + return 'Day{id:$id,name:$name,isChecked:$isChecked}'; + } +} diff --git a/lib/fcs/common/domain/entities/user.dart b/lib/fcs/common/domain/entities/user.dart index 51248d6..768d8b1 100644 --- a/lib/fcs/common/domain/entities/user.dart +++ b/lib/fcs/common/domain/entities/user.dart @@ -5,6 +5,8 @@ class User { String id; String name; String phoneNumber; + bool hasSignup; + String fcsID; String shippingAddress; String deliveryAddress; @@ -280,6 +282,6 @@ class User { @override String toString() { - return 'User{name: $name, phoneNumber: $phoneNumber,dateofBirth:$dateofBirth,disable:$disable,gender:$gender,roleName:$roleName,roleID:$roleID,privilegeIds:$privilegeIds,status:$status,frontUrl:$frontUrl,backUrl:$backUrl,selfieUrl:$selfieUrl}'; + return 'User{name: $name, phoneNumber: $phoneNumber,hasSignup:$hasSignup}'; } } diff --git a/lib/fcs/common/domain/exceiptions/signin_exception.dart b/lib/fcs/common/domain/exceiptions/signin_exception.dart new file mode 100644 index 0000000..2715b72 --- /dev/null +++ b/lib/fcs/common/domain/exceiptions/signin_exception.dart @@ -0,0 +1,8 @@ +class SigninException { + final String msg; + + SigninException(this.msg); + + @override + String toString() => msg; +} diff --git a/lib/fcs/common/network_connectivity.dart b/lib/fcs/common/network_connectivity.dart new file mode 100644 index 0000000..be680b4 --- /dev/null +++ b/lib/fcs/common/network_connectivity.dart @@ -0,0 +1,67 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:connectivity/connectivity.dart'; +import 'package:fcs/config.dart'; +import 'package:fcs/fcs/common/api_helper.dart'; +import 'package:logging/logging.dart'; + +class NetworkConnectivity { + final log = Logger('NetworkConnectivity'); + + static final NetworkConnectivity instance = NetworkConnectivity._internal(); + static String hostName; + NetworkConnectivity._internal() { + _initialise(); + var uri = Uri.parse(Config.instance.apiURL); + hostName = uri.host; + log.info("host name:$hostName"); + } + + Connectivity connectivity = Connectivity(); + + final StreamController _controller = StreamController.broadcast(); + + Stream get statusStream => _controller.stream; + + void _initialise() async { + ConnectivityResult result = await connectivity.checkConnectivity(); + _checkStatus(result); + connectivity.onConnectivityChanged.listen((result) { + _checkStatus(result); + }); + } + + void _checkStatus(ConnectivityResult result) async { + bool isOnline = false; + // lookup if connectivity is not none + if (result != ConnectivityResult.none) { + try { + final hostNameLookup = await InternetAddress.lookup(hostName); + if (hostNameLookup.isNotEmpty && + hostNameLookup[0].rawAddress.isNotEmpty) { + if (await checkHeartbeat()) { + isOnline = true; + } + } else + isOnline = false; + } on SocketException catch (_) { + isOnline = false; + } + } + + if (_controller != null && !_controller.isClosed) + _controller.sink.add({"isOnline": isOnline}); + } + + Future checkHeartbeat() async { + var result = await requestAPI("/hb", "GET"); + var status = result["status"]; + if (status != null && status != "") { + return true; + } + return false; + } + + void disposeStream() => _controller.close(); +} diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index abc10e6..5832364 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -1,5 +1,5 @@ +import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/contact.dart'; import 'package:fcs/pages/discount_list.dart'; import 'package:fcs/pages/notification_list.dart'; diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart new file mode 100644 index 0000000..2462c94 --- /dev/null +++ b/lib/fcs/common/pages/model/main_model.dart @@ -0,0 +1,170 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:device_info/device_info.dart'; +import 'package:dio/dio.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/network_connectivity.dart'; +import 'package:fcs/fcs/common/services/services.dart'; +import 'package:flutter/foundation.dart'; +import 'package:logging/logging.dart'; +import 'package:package_info/package_info.dart'; + +class MainModel extends ChangeNotifier { + final log = Logger('MainModel'); + + User user; + PackageInfo packageInfo; + + Setting setting = Setting( + terms: + '[{"insert":"* Minimum shipping weight is 1lbs.\n* Oversized goods, Light weight/Large volume items, laptops, phones, tablets may incur extra charges based on pecifications.Please contact us for pricing.\n* Goods with lithium battary needs extra packaging and declaration. Please inform us ahead of time so that we can process your package accordingly.\n* Loose Batteries, Drones, and Prescription medicines are not allowed on aircraft.\n* Payment: We accept money orders, any US bank transfers via Zelle, AYA, KBZ and CB. No COD except for pick-ups.\n*Payments made in Myanmar will incur 2% tranfer fee\n"}]'); + + bool isLoaded = false; + bool isOnline = false; + + MainModel() { + NetworkConnectivity.instance.statusStream.listen((data) { + bool _isOnline = data["isOnline"]; + if (_isOnline && !this.isOnline) { + init(); + } + this.isOnline = _isOnline; + notifyListeners(); + }); + Services.instance.authService.onAuthStatus().listen((event) { + print("main event-->$event"); + }); + } + + bool isLogin() { + return this.user != null; + } + + bool isCustomer() { + return user != null && user.name != "Owner"; + } + + bool isOwner() { + return user != null && user.name == "Owner"; + } + + bool hasEmail() { + return this.user != null && this.user.isEmail(); + } + + bool agreedTerm() { + return this.user != null && this.user.agreeTerms; + } + + bool isBuyer() { + return this.user == null || this.user.isBuyer(); + } + + bool isSysAdmin() { + return this.user != null && this.user.isSysAdmin(); + } + + bool isSysSupport() { + return this.user != null && this.user.isSysSupport(); + } + + bool isBizAdmin() { + return this.user != null && this.user.isBizAdmin(); + } + + bool isOwnerAndAbove() { + return this.user != null && this.user.isOwnerAndAbove(); + } + + bool isAdmin() { + return this.user != null && this.user.hasAdmin(); + } + + bool showHistoryBtn() { + return isSysAdmin() || isSysSupport() || isBizAdmin(); + } + + init() async { + await _loadSetting(); + _loadUser(); + this.packageInfo = await PackageInfo.fromPlatform(); + } + + // void addModel(BaseModel model) { + // models.add(model); + // } + + // void _initUser(User user) { + // models.forEach((m) => m.initUser(user)); + + // if (firebaseMessaging != null) { + // firebaseMessaging.subscribeToTopic(user.docID); + // } + // } + + // void _initSetting(Setting setting) { + // models.forEach((m) => m.initSetting(setting)); + // } + + Future _loadSetting() async { + try { + this.setting = await Services.instance.authService.getSetting(); + } finally {} + // _initSetting(setting); + } + + void _loadUser() async { + try { + this.user = await Services.instance.authService.getUser(); + } finally { + this.isLoaded = true; + notifyListeners(); + } + } + + @override + void dispose() { + super.dispose(); + // if (this.userListener != null) { + // this.userListener.cancel(); + // } + // SharedPref.removeUser(); + // this.user = User(); + } + + bool isSupport() { + if (packageInfo == null || setting == null) return false; + return int.parse(packageInfo.buildNumber) >= setting.supportBuildNum; + } + + Future sendSms(String phoneNumber) { + return Services.instance.authService.sendSmsCodeToPhoneNumber(phoneNumber); + } + + Future signin(String smsCode) async { + AuthResult authResult = + await Services.instance.authService.signInWithSmsCode(smsCode); + if (authResult != null && + authResult.authStatus == AuthStatus.AUTH_VERIFIED) { + this.user = await Services.instance.authService.getUser(); + } + return authResult; + } + + Future signout() { + this.user = null; + notifyListeners(); + return Services.instance.authService.signout(); + } + + Future signup(String userName) async { + await Services.instance.authService.signup(userName); + this.user = await Services.instance.authService.getUser(); + notifyListeners(); + } +} diff --git a/lib/fcs/common/pages/profile_page.dart b/lib/fcs/common/pages/profile_page.dart index 7393725..cb8f876 100644 --- a/lib/fcs/common/pages/profile_page.dart +++ b/lib/fcs/common/pages/profile_page.dart @@ -1,6 +1,5 @@ -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model/user_model.dart'; import 'package:fcs/pages/util.dart'; @@ -89,7 +88,9 @@ class _ProfileState extends State { Container( child: Center( child: Text( - mainModel.user == null ? "" : mainModel.user.name, + mainModel.user == null || mainModel.user.name == null + ? "" + : mainModel.user.name, style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal), ), @@ -229,8 +230,7 @@ class _ProfileState extends State { setState(() { _isLoading = true; }); - await mainModel.logout(); - await context.read().signout(); + await context.read().signout(); Navigator.of(context).pushNamedAndRemoveUntil( "/welcome", ModalRoute.withName('/welcome')); Future.delayed(Duration(seconds: 1), () { diff --git a/lib/fcs/common/pages/signin/code_page.dart b/lib/fcs/common/pages/signin/code_page.dart index 892ebeb..068df13 100644 --- a/lib/fcs/common/pages/signin/code_page.dart +++ b/lib/fcs/common/pages/signin/code_page.dart @@ -1,9 +1,9 @@ import 'dart:async'; -import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; -import 'package:fcs/model/main_model.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/pages/util.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; @@ -194,16 +194,16 @@ class _CodePageState extends State { _verify() async { try { - Auth auth = await context.read().signin(this.pin); + AuthResult auth = await context.read().signin(this.pin); if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { - bool hasSignup = await context.read().hasSignup(); - if (!hasSignup) { + User user = context.read().user; + if (user != null && !user.hasSignup) { await Navigator.of(context).push(BottomUpPageRoute(SignupPage())); } else { Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); } - Provider.of(context, listen: false) - .saveUser(pin, widget.phoneNumber); + // Provider.of(context, listen: false) + // .saveUser(pin, widget.phoneNumber); } } catch (e) { showMsgDialog(context, "Error", e.toString()); diff --git a/lib/fcs/common/pages/signin/model/signin_model.dart b/lib/fcs/common/pages/signin/model/signin_model.dart deleted file mode 100644 index 97d7998..0000000 --- a/lib/fcs/common/pages/signin/model/signin_model.dart +++ /dev/null @@ -1,25 +0,0 @@ -import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; -import 'package:fcs/fcs/common/domain/entities/auth.dart'; -import 'package:flutter/foundation.dart'; - -class SigninModel extends ChangeNotifier { - Future sendSms(String phoneNumber) { - return AuthFb.instance.sendSmsCodeToPhoneNumber(phoneNumber); - } - - Future signin(String smsCode) { - return AuthFb.instance.signInWithPhoneNumber(smsCode); - } - - Future signout() { - return AuthFb.instance.signout(); - } - - Future hasSignup() { - return AuthFb.instance.hasSignup(); - } - - Future signup(String name) { - return AuthFb.instance.signup(name); - } -} diff --git a/lib/fcs/common/pages/signin/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart index 7454cee..ef19eac 100644 --- a/lib/fcs/common/pages/signin/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -1,7 +1,7 @@ import 'package:country_code_picker/country_code_picker.dart'; -import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -166,13 +166,12 @@ class _SigninPageState extends State { }); try { - Exception exp; phoneNumber = phoneNumber[0] == "0" ? phoneNumber.replaceFirst("0", "") : phoneNumber; phoneNumber = dialCode + phoneNumber; - Auth auth = await context.read().sendSms(phoneNumber); + AuthResult auth = await context.read().sendSms(phoneNumber); if (auth.authStatus == AuthStatus.SMS_SENT) { await Navigator.of(context) .push(BottomUpPageRoute(CodePage(phoneNumber: phoneNumber))); @@ -181,8 +180,6 @@ class _SigninPageState extends State { if (auth.authStatus == AuthStatus.ERROR) { showMsgDialog(context, "Error", auth.authErrorMsg); } - - if (exp != null) throw exp; } catch (e) { showMsgDialog(context, "Error", e.toString()); } diff --git a/lib/fcs/common/pages/signin/signup_page.dart b/lib/fcs/common/pages/signin/signup_page.dart index bd550b2..b4b766b 100644 --- a/lib/fcs/common/pages/signin/signup_page.dart +++ b/lib/fcs/common/pages/signin/signup_page.dart @@ -1,12 +1,12 @@ -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:provider/provider.dart'; import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; import '../../theme.dart'; -import 'package:provider/provider.dart'; class SignupPage extends StatefulWidget { @override @@ -108,7 +108,7 @@ class _SignupPageState extends State { } _submit() async { - await context.read().signup(nameCtl.text); + await context.read().signup(nameCtl.text); Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); } } diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/fcs/common/pages/splash_page.dart index 9a6f676..e4269d6 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -1,9 +1,8 @@ import 'dart:async'; -import 'package:fcs/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/theme.dart'; import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; @@ -18,10 +17,7 @@ class _SplashScreenState extends State { bool _loaded = false; bool _isSupport = false; - bool _isGoogleService = true; bool _isLogin = false; - bool _isAgree = false; - bool _hasEmail = false; bool _isOnline = true; Timer timer; @@ -35,44 +31,15 @@ class _SplashScreenState extends State { return; } - // GooglePlayServicesAvailability availability = await GoogleApiAvailability - // .instance - // .checkGooglePlayServicesAvailability(true); - // log.info("GooglePlaysServcie Result1:$availability"); - // if (availability != GooglePlayServicesAvailability.success && - // Platform.isAndroid) { - // timer.cancel(); - // setState(() { - // _isGoogleService = false; - // }); - // return; - // } - if (_loaded) { timer.cancel(); - if (this._isLogin) { - Navigator.of(context).pushReplacementNamed('/home'); - } else { - Navigator.of(context).pushReplacementNamed('/welcome'); + if (_isSupport) { + if (this._isLogin) { + Navigator.of(context).pushReplacementNamed('/home'); + } else { + Navigator.of(context).pushReplacementNamed('/welcome'); + } } - - // if (_isSupport) { - // if (_isLogin) { - // if (!_isAgree) { - // await Navigator.of(context).pushNamed('/term'); - // startTime(); - // } else { - // bool skipped = await SharedPref.getSkippedRecoverEmail(); - // skipped = skipped ?? false; - // if (!this._hasEmail && !skipped) { - // Navigator.of(context).pushReplacementNamed('/email'); - // } else { - // } - // } - // } else { - // Navigator.of(context).pushReplacementNamed('/welcome'); - // } - // } } } @@ -92,10 +59,8 @@ class _SplashScreenState extends State { MainModel mainModel = Provider.of(context); this._loaded = mainModel.isLoaded; - this._isSupport = true; + this._isSupport = mainModel.isSupport(); this._isLogin = mainModel.isLogin(); - // this._isAgree = mainModel.agreedTerm(); - this._hasEmail = mainModel.hasEmail(); this._isOnline = mainModel.isOnline; return new Scaffold( @@ -121,24 +86,18 @@ class _SplashScreenState extends State { ), ], ), - // CircularProgressIndicator( - // valueColor: new AlwaysStoppedAnimation(primaryColor), - // ), SizedBox(height: 30), - _isOnline - ? Container() - : Column( + _loaded && !_isOnline + ? Column( children: [ LocalText(context, "offline.status"), ], - ), - Text(_isGoogleService ? "" : "Google Play service not found."), + ) + : Container(), Text( - _loaded - ? (!_isSupport - ? "Version outdated, please update your app!" - : "") - : AppTranslations.of(context).text("load"), + _loaded && !_isSupport + ? "Version outdated, please update your app!" + : "", style: TextStyle( color: primaryColor, fontWeight: FontWeight.bold)), ], diff --git a/lib/fcs/common/pages/welcome_page.dart b/lib/fcs/common/pages/welcome_page.dart index b4b14eb..d6ab02e 100644 --- a/lib/fcs/common/pages/welcome_page.dart +++ b/lib/fcs/common/pages/welcome_page.dart @@ -1,9 +1,8 @@ +import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/contact.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/dimension_box.dart'; import 'package:fcs/widget/localization/transalation.dart'; import 'package:fcs/widget/offline_redirect.dart'; import 'package:flutter/cupertino.dart'; diff --git a/lib/fcs/common/services/auth_imp.dart b/lib/fcs/common/services/auth_imp.dart index cef656d..3fdda0f 100644 --- a/lib/fcs/common/services/auth_imp.dart +++ b/lib/fcs/common/services/auth_imp.dart @@ -1,14 +1,16 @@ import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; import 'package:fcs/fcs/common/data/providers/user_fb_data_provider.dart'; import 'package:fcs/fcs/common/data/providers/user_local_data_provider.dart'; -import 'package:fcs/fcs/common/domain/entities/auth.dart'; +import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:flutter/material.dart'; -import 'auth_interface.dart'; +import 'auth_service.dart'; -class AuthImp implements AuthInterface { - AuthImp({ +class AuthServiceImp implements AuthService { + AuthServiceImp({ @required this.authFb, @required this.connectivity, @required this.userFBDataProvider, @@ -21,17 +23,37 @@ class AuthImp implements AuthInterface { final AuthFb authFb; @override - Future sendSmsCodeToPhoneNumber(String phoneNumber) { + Future sendSmsCodeToPhoneNumber(String phoneNumber) { return authFb.sendSmsCodeToPhoneNumber(phoneNumber); } @override - Future signInWithSmsCode(String smsCode) { + Future signInWithSmsCode(String smsCode) { return authFb.signInWithPhoneNumber(smsCode); } @override - Future signout() { + Future signout() { return authFb.signout(); } + + @override + Future getUser({bool refreshIdToken = false}) { + return authFb.getUser(refreshIdToken: refreshIdToken); + } + + @override + Future getSetting() { + return authFb.getSetting(); + } + + @override + Future signup(String userName) { + return authFb.signup(userName); + } + + @override + Stream onAuthStatus() { + return authFb.onAuthStatus; + } } diff --git a/lib/fcs/common/services/auth_interface.dart b/lib/fcs/common/services/auth_interface.dart deleted file mode 100644 index bcf5d29..0000000 --- a/lib/fcs/common/services/auth_interface.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:fcs/fcs/common/domain/entities/auth.dart'; - -abstract class AuthInterface { - Future sendSmsCodeToPhoneNumber(String phoneNumber); - Future signInWithSmsCode(String smsCode); - Future signout(); -} diff --git a/lib/fcs/common/services/auth_service.dart b/lib/fcs/common/services/auth_service.dart new file mode 100644 index 0000000..bb9fb83 --- /dev/null +++ b/lib/fcs/common/services/auth_service.dart @@ -0,0 +1,13 @@ +import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; + +abstract class AuthService { + Future sendSmsCodeToPhoneNumber(String phoneNumber); + Future signInWithSmsCode(String smsCode); + Future signout(); + Future getUser({bool refreshIdToken = false}); + Future signup(String userName); + Future getSetting(); + Stream onAuthStatus(); +} diff --git a/lib/fcs/common/services/services.dart b/lib/fcs/common/services/services.dart new file mode 100644 index 0000000..912d376 --- /dev/null +++ b/lib/fcs/common/services/services.dart @@ -0,0 +1,19 @@ +import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; +import 'package:fcs/fcs/common/services/auth_imp.dart'; + +import 'auth_service.dart'; + +class Services { + static final Services instance = Services._(); + + AuthService _authService; + Services._() { + _authService = AuthServiceImp( + authFb: AuthFb.instance, + connectivity: null, + userFBDataProvider: null, + userLocalDataProvider: null); + } + + AuthService get authService => _authService; +} diff --git a/lib/main-dev.dart b/lib/main-dev.dart index 889ea4a..9ebdbaf 100644 --- a/lib/main-dev.dart +++ b/lib/main-dev.dart @@ -8,9 +8,7 @@ void main() { Config( flavor: Flavor.DEV, color: Colors.blue, - apiURL: "http://192.168.100.11:7777", - reportURL: "http://petrok-dev.mokkon.com:8080", - reportProjectID: "dev", + apiURL: "https://asia-northeast1-fcs-dev1.cloudfunctions.net/API", level: Level.ALL); runApp(App()); } diff --git a/lib/model/main_model.dart b/lib/model/main_model.dart index c82615f..62ed57d 100644 --- a/lib/model/main_model.dart +++ b/lib/model/main_model.dart @@ -4,6 +4,7 @@ import 'dart:io'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:device_info/device_info.dart'; import 'package:dio/dio.dart'; +import 'package:fcs/fcs/common/services/services.dart'; import 'package:fcs/vo/payment_method.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; @@ -80,6 +81,9 @@ class MainModel extends ChangeNotifier { // notifyListeners(); // }); _loadFcs(); + Services.instance.authService.onAuthStatus().listen((event) { + print("main event-->$event"); + }); } List get paymentMethods { @@ -300,7 +304,7 @@ class MainModel extends ChangeNotifier { @override void dispose() { - // super.dispose(); + super.dispose(); // if (this.userListener != null) { // this.userListener.cancel(); // } From 9a76a368839ba57794f79512b9cbe068981dda1a Mon Sep 17 00:00:00 2001 From: sainw Date: Fri, 4 Sep 2020 15:30:10 +0630 Subject: [PATCH 05/22] add contact --- lib/app.dart | 7 +- lib/charts/bar_chart.dart | 2 +- lib/charts/delivery_do_line.dart | 2 +- lib/charts/delivery_do_line_detail.dart | 2 +- lib/charts/delivery_do_summary.dart | 2 +- lib/charts/delivery_do_summary_details.dart | 2 +- lib/charts/delivery_line.dart | 2 +- lib/charts/delivery_line_data.dart | 2 +- lib/charts/delivery_line_detail.dart | 2 +- lib/charts/delivery_summary.dart | 2 +- lib/charts/delivery_summary_detail.dart | 2 +- lib/charts/do_line.dart | 2 +- lib/charts/do_line_detail.dart | 2 +- lib/charts/po_balance_chart.dart | 2 +- lib/charts/po_balance_table.dart | 2 +- lib/charts/po_balanceby_buyer.dart | 2 +- lib/charts/po_line.dart | 2 +- lib/charts/po_line_detail.dart | 2 +- lib/charts/qtyby_customer_table.dart | 2 +- lib/charts/revenue_line.dart | 2 +- lib/charts/revenue_line_data.dart | 2 +- lib/charts/revenue_line_detail.dart | 2 +- lib/fcs/common/data/providers/auth_fb.dart | 2 +- lib/fcs/common/domain/entities/setting.dart | 29 ++- lib/fcs/common/{ => helpers}/api_helper.dart | 2 +- .../{ => helpers}/network_connectivity.dart | 2 +- lib/fcs/common/helpers/shared_pref.dart | 72 ++++++ lib/fcs/common/{ => helpers}/theme.dart | 2 +- .../common/localization/app_translations.dart | 42 ++++ .../app_translations_delegate.dart | 25 ++ lib/fcs/common/localization/transalation.dart | 27 ++ lib/fcs/common/pages/contact.dart | 150 ++++++++++++ lib/fcs/common/pages/home_page.dart | 230 +++--------------- lib/fcs/common/pages/model/base_model.dart | 35 +++ .../common/pages/model/language_model.dart | 46 ++++ lib/fcs/common/pages/model/main_model.dart | 2 +- lib/fcs/common/pages/profile_page.dart | 12 +- lib/fcs/common/pages/signin/code_page.dart | 4 +- lib/fcs/common/pages/signin/signin_page.dart | 4 +- lib/fcs/common/pages/signin/signup_page.dart | 2 +- lib/fcs/common/pages/splash_page.dart | 2 +- lib/fcs/common/pages/term.dart | 173 +++++++++++++ lib/fcs/common/pages/term_edit.dart | 125 ++++++++++ lib/{ => fcs/common}/pages/util.dart | 18 +- lib/fcs/common/pages/welcome_page.dart | 190 ++++----------- .../common/pages/widgets/action_button.dart | 69 ++++++ .../common/pages/widgets/bottom_widgets.dart | 49 ++++ lib/fcs/common/pages/widgets/local_text.dart | 30 +++ lib/fcs/common/pages/widgets/progress.dart | 45 ++++ lib/main-local.dart | 5 +- lib/model/base_model.dart | 2 +- lib/model/buyer_model.dart | 2 +- lib/model/do_model.dart | 2 +- lib/model/main_model.dart | 2 +- lib/model/report_model.dart | 2 +- lib/pages/add_pin_editor.dart | 4 +- lib/pages/announcement.dart | 4 +- lib/pages/announcement_editor.dart | 4 +- lib/pages/announcement_list.dart | 2 +- lib/pages/banks/bank_edit.dart | 4 +- lib/pages/banks/banks.dart | 2 +- lib/pages/barcode_screen_page.dart | 2 +- lib/pages/block_list.dart | 4 +- lib/pages/buyer_info.dart | 4 +- lib/pages/buyer_list.dart | 2 +- lib/pages/buyer_list_row.dart | 4 +- lib/pages/buying_online.dart | 4 +- lib/pages/calculate_shipment_cost_editor.dart | 2 +- lib/pages/chage_phone_number.dart | 4 +- lib/pages/change_password.dart | 4 +- lib/pages/confirm_email.dart | 4 +- lib/pages/contact.dart | 4 +- lib/pages/contact_editor.dart | 4 +- lib/pages/custom_editor.dart | 4 +- lib/pages/customer_editor.dart | 4 +- lib/pages/customer_list.dart | 6 +- lib/pages/delivery/delivery_item.dart | 4 +- lib/pages/delivery/delivery_list.dart | 4 +- lib/pages/device_list.dart | 4 +- lib/pages/discount_by_weight_editor.dart | 4 +- lib/pages/discount_editor.dart | 4 +- lib/pages/discount_list.dart | 4 +- lib/pages/do/do_approve.dart | 4 +- lib/pages/do/do_creation_form.dart | 4 +- lib/pages/do/do_creation_todelete.dart | 4 +- lib/pages/do/do_list.dart | 4 +- lib/pages/do/do_product_item.dart | 4 +- lib/pages/do/do_storage_item.dart | 2 +- lib/pages/do/photo_page.dart | 4 +- lib/pages/do/po_selection.dart | 2 +- lib/pages/document_log_page.dart | 2 +- lib/pages/email_page.dart | 4 +- lib/pages/fcs_profile_page.dart | 4 +- lib/pages/forget_password.dart | 4 +- lib/pages/instruction.dart | 4 +- lib/pages/invitation_page.dart | 4 +- lib/pages/invoice/box_addition.dart | 2 +- lib/pages/invoice/invoce_list.dart | 2 +- lib/pages/invoice/invoice_editor.dart | 4 +- lib/pages/invoice/invoice_list_row.dart | 4 +- lib/pages/invoice/package_addition.dart | 2 +- lib/pages/invoice/package_info.dart | 2 +- lib/pages/invoice/payment_page.dart | 4 +- lib/pages/invoice/payment_pdf_screen.dart | 2 +- lib/pages/log_list.dart | 2 +- lib/pages/login_page.dart | 4 +- lib/pages/manual/instruction_data_page.dart | 2 +- lib/pages/manual/manual_page.dart | 4 +- lib/pages/message_detail.dart | 2 +- lib/pages/my_registeration.dart | 4 +- lib/pages/my_registeration_info.dart | 2 +- lib/pages/my_registeration_item.dart | 2 +- lib/pages/notification_list.dart | 2 +- lib/pages/payment_editor.dart | 4 +- lib/pages/payment_method_page.dart | 2 +- lib/pages/pd/pd_form.dart | 4 +- lib/pages/pd/pd_item.dart | 2 +- lib/pages/pd/pd_list.dart | 2 +- lib/pages/phone_input.dart | 4 +- lib/pages/pickup_box_editor.dart | 4 +- lib/pages/pickup_editor.dart | 4 +- lib/pages/pickup_list.dart | 2 +- lib/pages/pickup_list_row.dart | 4 +- lib/pages/pin_login_dialog.dart | 4 +- lib/pages/po/po_item.dart | 4 +- lib/pages/po/po_submission_form.dart | 4 +- lib/pages/product_edit_item.dart | 4 +- lib/pages/products_list.dart | 2 +- lib/pages/products_list_edit.dart | 4 +- lib/pages/profile_edit.dart | 4 +- lib/pages/profile_setting.dart | 2 +- lib/pages/quota_form.dart | 2 +- lib/pages/quota_page.dart | 4 +- lib/pages/report_user_editor.dart | 4 +- lib/pages/report_user_list.dart | 4 +- lib/pages/reset_password.dart | 4 +- lib/pages/search_page.dart | 2 +- lib/pages/setting_editor.dart | 4 +- lib/pages/setting_editor_byOwner.dart | 4 +- lib/pages/shipment_editor.dart | 4 +- lib/pages/shipment_list.dart | 2 +- lib/pages/shipment_list_row.dart | 4 +- lib/pages/shipment_rates.dart | 4 +- lib/pages/shipment_rates_calculate.dart | 2 +- lib/pages/shipment_rates_edit.dart | 4 +- lib/pages/shipping_address_editor.dart | 4 +- lib/pages/sms_page.dart | 4 +- lib/pages/staff_editor.dart | 4 +- lib/pages/staff_list.dart | 6 +- lib/pages/storage/inventory_item.dart | 2 +- lib/pages/storage/inventory_take.dart | 4 +- lib/pages/storage/inventory_taking_list.dart | 2 +- lib/pages/storage/storage_addition.dart | 4 +- lib/pages/storage/storage_list.dart | 2 +- lib/pages/term.dart | 4 +- lib/pages/term_edit.dart | 4 +- lib/pages/test_list.dart | 2 +- lib/pages/user_editor.dart | 4 +- lib/pages/user_list.dart | 4 +- lib/pages/user_search_page.dart | 2 +- lib/pages_fcs/box_editor.dart | 4 +- lib/pages_fcs/box_list.dart | 2 +- lib/pages_fcs/box_list_row.dart | 2 +- lib/pages_fcs/cargo_editor.dart | 4 +- lib/pages_fcs/delivery_list.dart | 2 +- lib/pages_fcs/delivery_list_row.dart | 2 +- lib/pages_fcs/package_editor.dart | 4 +- lib/pages_fcs/package_list.dart | 2 +- lib/pages_fcs/package_list_row.dart | 2 +- lib/pages_fcs/pickup_editor.dart | 4 +- lib/pages_fcs/shipping_address_list.dart | 2 +- lib/pages_fcs/shipping_address_row.dart | 2 +- lib/reports/report_field_list_page.dart | 2 +- lib/reports/report_filter_list_page.dart | 2 +- lib/reports/report_list.dart | 2 +- lib/reports/reports_data_table.dart | 4 +- lib/widget/NetworkConnectivity.dart | 2 +- lib/widget/fcs_text_field.dart | 2 +- lib/widget/fcs_text_field_readonly.dart | 2 +- lib/widget/label_widgets.dart | 2 +- lib/widget/local_text.dart | 2 +- lib/widget/local_text_field.dart | 2 +- lib/widget/number_cell.dart | 2 +- lib/widget/products.dart | 2 +- lib/widget/products_price_table.dart | 2 +- lib/widget/progress.dart | 2 +- lib/widget/show_img.dart | 2 +- 187 files changed, 1257 insertions(+), 616 deletions(-) rename lib/fcs/common/{ => helpers}/api_helper.dart (99%) rename lib/fcs/common/{ => helpers}/network_connectivity.dart (96%) create mode 100644 lib/fcs/common/helpers/shared_pref.dart rename lib/fcs/common/{ => helpers}/theme.dart (98%) create mode 100644 lib/fcs/common/localization/app_translations.dart create mode 100644 lib/fcs/common/localization/app_translations_delegate.dart create mode 100644 lib/fcs/common/localization/transalation.dart create mode 100644 lib/fcs/common/pages/contact.dart create mode 100644 lib/fcs/common/pages/model/base_model.dart create mode 100644 lib/fcs/common/pages/model/language_model.dart create mode 100644 lib/fcs/common/pages/term.dart create mode 100644 lib/fcs/common/pages/term_edit.dart rename lib/{ => fcs/common}/pages/util.dart (97%) create mode 100644 lib/fcs/common/pages/widgets/action_button.dart create mode 100644 lib/fcs/common/pages/widgets/bottom_widgets.dart create mode 100644 lib/fcs/common/pages/widgets/local_text.dart create mode 100644 lib/fcs/common/pages/widgets/progress.dart diff --git a/lib/app.dart b/lib/app.dart index df6f0c7..d769bd3 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,3 +1,6 @@ +import 'package:fcs/fcs/common/localization/app_translations_delegate.dart'; +import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/delivery_model.dart'; import 'package:fcs/model/discount_model.dart'; @@ -25,7 +28,6 @@ import 'model/device_model.dart'; import 'model/do_model.dart'; import 'model/employee_model.dart'; import 'model/invoice_model.dart'; -import 'model/language_model.dart'; import 'model/log_model.dart'; import 'model/main_model.dart'; import 'model/pickup_model.dart'; @@ -39,8 +41,6 @@ import 'fcs/common/pages/home_page.dart'; import 'fcs/common/pages/welcome_page.dart'; import 'fcs/common/pages/splash_page.dart'; import 'pages/term.dart'; -import 'widget/localization/app_translations_delegate.dart'; -import 'widget/localization/transalation.dart'; class App extends StatefulWidget { @override @@ -92,7 +92,6 @@ class _AppState extends State { mainModel ..addModel(userModel) ..addModel(employeeModel) - ..addModel(lanuguageModel) ..addModel(storageModel) ..addModel(regModel) ..addModel(poSubmissionModel) diff --git a/lib/charts/bar_chart.dart b/lib/charts/bar_chart.dart index bd3cee6..19de245 100644 --- a/lib/charts/bar_chart.dart +++ b/lib/charts/bar_chart.dart @@ -6,7 +6,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/charts/qtyby_customer_table.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/delivery_do_line.dart b/lib/charts/delivery_do_line.dart index 2ae625f..5e6bd38 100644 --- a/lib/charts/delivery_do_line.dart +++ b/lib/charts/delivery_do_line.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/delivery_do_line_detail.dart b/lib/charts/delivery_do_line_detail.dart index 353ee93..5ef17d8 100644 --- a/lib/charts/delivery_do_line_detail.dart +++ b/lib/charts/delivery_do_line_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/delivery_do_summary.dart b/lib/charts/delivery_do_summary.dart index 7fece95..251bf6d 100644 --- a/lib/charts/delivery_do_summary.dart +++ b/lib/charts/delivery_do_summary.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/delivery_do_summary_details.dart b/lib/charts/delivery_do_summary_details.dart index 486b53e..5fa669a 100644 --- a/lib/charts/delivery_do_summary_details.dart +++ b/lib/charts/delivery_do_summary_details.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/delivery_line.dart b/lib/charts/delivery_line.dart index ba930f8..6d8f83d 100644 --- a/lib/charts/delivery_line.dart +++ b/lib/charts/delivery_line.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/delivery_line_data.dart b/lib/charts/delivery_line_data.dart index e813768..634a6a3 100644 --- a/lib/charts/delivery_line_data.dart +++ b/lib/charts/delivery_line_data.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/delivery_line_detail.dart b/lib/charts/delivery_line_detail.dart index 445d376..211470b 100644 --- a/lib/charts/delivery_line_detail.dart +++ b/lib/charts/delivery_line_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/do_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/delivery_summary.dart b/lib/charts/delivery_summary.dart index 2d7eb26..133563b 100644 --- a/lib/charts/delivery_summary.dart +++ b/lib/charts/delivery_summary.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'delivery_summary_detail.dart'; diff --git a/lib/charts/delivery_summary_detail.dart b/lib/charts/delivery_summary_detail.dart index 4065acf..78ccad8 100644 --- a/lib/charts/delivery_summary_detail.dart +++ b/lib/charts/delivery_summary_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/do_line.dart b/lib/charts/do_line.dart index fe1c8ca..544ac65 100644 --- a/lib/charts/do_line.dart +++ b/lib/charts/do_line.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/do_line_detail.dart b/lib/charts/do_line_detail.dart index add1cce..e0c8192 100644 --- a/lib/charts/do_line_detail.dart +++ b/lib/charts/do_line_detail.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/po_balance_chart.dart b/lib/charts/po_balance_chart.dart index 6d2450a..2791633 100644 --- a/lib/charts/po_balance_chart.dart +++ b/lib/charts/po_balance_chart.dart @@ -6,7 +6,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/charts/po_balance_table.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/po_balance_table.dart b/lib/charts/po_balance_table.dart index 66f3f2f..d91280e 100644 --- a/lib/charts/po_balance_table.dart +++ b/lib/charts/po_balance_table.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/charts/po_balanceby_buyer.dart b/lib/charts/po_balanceby_buyer.dart index 77b7708..035b092 100644 --- a/lib/charts/po_balanceby_buyer.dart +++ b/lib/charts/po_balanceby_buyer.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/po_line.dart b/lib/charts/po_line.dart index ac6da23..a29736b 100644 --- a/lib/charts/po_line.dart +++ b/lib/charts/po_line.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/charts/po_line_detail.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/po_line_detail.dart b/lib/charts/po_line_detail.dart index f0f570e..198be9d 100644 --- a/lib/charts/po_line_detail.dart +++ b/lib/charts/po_line_detail.dart @@ -4,7 +4,7 @@ import 'package:http/http.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po_do_count.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/qtyby_customer_table.dart b/lib/charts/qtyby_customer_table.dart index f35d178..b5257c8 100644 --- a/lib/charts/qtyby_customer_table.dart +++ b/lib/charts/qtyby_customer_table.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/charts/revenue_line.dart b/lib/charts/revenue_line.dart index 385e7ca..dbfbdac 100644 --- a/lib/charts/revenue_line.dart +++ b/lib/charts/revenue_line.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/charts/revenue_line_data.dart b/lib/charts/revenue_line_data.dart index 99b8986..146e6dc 100644 --- a/lib/charts/revenue_line_data.dart +++ b/lib/charts/revenue_line_data.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/chart_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/charts/revenue_line_detail.dart b/lib/charts/revenue_line_detail.dart index 7b976cb..2f879e6 100644 --- a/lib/charts/revenue_line_detail.dart +++ b/lib/charts/revenue_line_detail.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/fcs/common/data/providers/auth_fb.dart index 1c076aa..2129b10 100644 --- a/lib/fcs/common/data/providers/auth_fb.dart +++ b/lib/fcs/common/data/providers/auth_fb.dart @@ -9,7 +9,7 @@ import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart'; import 'package:firebase_auth/firebase_auth.dart'; -import '../../api_helper.dart'; +import '../../helpers/api_helper.dart'; class AuthFb { static final AuthFb instance = AuthFb._(); diff --git a/lib/fcs/common/domain/entities/setting.dart b/lib/fcs/common/domain/entities/setting.dart index b5f9db1..22a0e02 100644 --- a/lib/fcs/common/domain/entities/setting.dart +++ b/lib/fcs/common/domain/entities/setting.dart @@ -14,6 +14,15 @@ List dayLists = [ class Setting { final int supportBuildNum; + + // contact page + String usaAddress; + String mmAddress; + String usaContactNumber; + String mmContactNumber; + String emailAddress; + String facebookLink; + final String okEnergyId; final String about; final String terms; @@ -35,9 +44,7 @@ class Setting { List phones; String deliveryPhone; String address; - String email; String website; - String facebook; DateTime priceLastUpdate; String bankAccountInfo; List bankAccounts; @@ -71,6 +78,12 @@ class Setting { Setting( {this.supportBuildNum, + this.usaAddress, + this.mmAddress, + this.usaContactNumber, + this.mmContactNumber, + this.emailAddress, + this.facebookLink, this.about, this.okEnergyId, this.terms, @@ -89,9 +102,7 @@ class Setting { this.helpVersion, this.helpURL, this.phones, - this.email, this.website, - this.facebook, this.priceLastUpdate, this.bankAccountInfo, this.bankAccounts, @@ -110,10 +121,16 @@ class Setting { } return Setting( - priceLastUpdate: ts?.toDate(), supportBuildNum: map['support_build_number'], + usaAddress: map['usa_address'], + mmAddress: map['mm_address'], + usaContactNumber: map['usa_contact_number'], + mmContactNumber: map['mm_contact_number'], + emailAddress: map['email_address'], + facebookLink: map['facebook_link'], about: map['about'], terms: map['terms'], + priceLastUpdate: ts?.toDate(), okEnergyId: map['ok_energy_id'], poExpireInHours: map['po_expire_hours'], doExpireInHours: map['do_expire_hours'], @@ -128,11 +145,9 @@ class Setting { reportURL: map['report_url'], helpVersion: map['help_version'], helpURL: map['help_url'], - email: map['email'], deliveryPhone: map['delivery_phone'], address: map['address'], website: map['website'], - facebook: map['facebook'], bankAccountInfo: map['bank_account_info'], bankAccounts: bankAccounts); } diff --git a/lib/fcs/common/api_helper.dart b/lib/fcs/common/helpers/api_helper.dart similarity index 99% rename from lib/fcs/common/api_helper.dart rename to lib/fcs/common/helpers/api_helper.dart index b5e958f..3e166ef 100644 --- a/lib/fcs/common/api_helper.dart +++ b/lib/fcs/common/helpers/api_helper.dart @@ -6,7 +6,7 @@ import 'package:dio/dio.dart'; import 'package:logging/logging.dart'; import 'package:fcs/vo/status.dart'; -import '../../config.dart'; +import '../../../config.dart'; final log = Logger('requestAPI'); diff --git a/lib/fcs/common/network_connectivity.dart b/lib/fcs/common/helpers/network_connectivity.dart similarity index 96% rename from lib/fcs/common/network_connectivity.dart rename to lib/fcs/common/helpers/network_connectivity.dart index be680b4..d34f593 100644 --- a/lib/fcs/common/network_connectivity.dart +++ b/lib/fcs/common/helpers/network_connectivity.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:connectivity/connectivity.dart'; import 'package:fcs/config.dart'; -import 'package:fcs/fcs/common/api_helper.dart'; +import 'package:fcs/fcs/common/helpers/api_helper.dart'; import 'package:logging/logging.dart'; class NetworkConnectivity { diff --git a/lib/fcs/common/helpers/shared_pref.dart b/lib/fcs/common/helpers/shared_pref.dart new file mode 100644 index 0000000..52821bd --- /dev/null +++ b/lib/fcs/common/helpers/shared_pref.dart @@ -0,0 +1,72 @@ +import 'dart:convert'; + +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + + +class SharedPref { + static final SharedPref instance = SharedPref._(); + SharedPref._(); + + static Future getLang() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + return prefs.getString('language'); + } + + static Future saveLang(String lang) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('language', lang); + } + + static Future saveUser(User user) async { + await _save("user", user.toJson()); + } + + static Future getUser() async { + try { + return User.fromJson(await _read("user")); + } catch (e) { + return null; + } + } + + static Future removeUser() async { + return await _remove("user"); + } + + static Future saveSkippedRecoverEmail(bool skipped) async { + await _save("skipped_recovery_email", skipped); + } + + static Future getSkippedRecoverEmail() async { + try { + bool _skipped = await _read("skipped_recovery_email"); + return _skipped; + } catch (e) { + return null; + } + } + + static _read(String key) async { + try { + final prefs = await SharedPreferences.getInstance(); + return json.decode(prefs.getString(key)); + } catch (e) { + print("Error:$e"); + } + } + + static _save(String key, value) async { + try { + final prefs = await SharedPreferences.getInstance(); + prefs.setString(key, json.encode(value)); + } catch (e) { + print("Error:$e"); + } + } + + static _remove(String key) async { + final prefs = await SharedPreferences.getInstance(); + prefs.remove(key); + } +} diff --git a/lib/fcs/common/theme.dart b/lib/fcs/common/helpers/theme.dart similarity index 98% rename from lib/fcs/common/theme.dart rename to lib/fcs/common/helpers/theme.dart index a8b4a9f..1c84937 100644 --- a/lib/fcs/common/theme.dart +++ b/lib/fcs/common/helpers/theme.dart @@ -18,7 +18,7 @@ const TextStyle welcomeLabelStyle = const TextStyle welcomeSubLabelStyle = TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500); const TextStyle subMenuStyle = - TextStyle(fontSize: 11, color: Colors.white, fontWeight: FontWeight.w500); + TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500); const TextStyle siginButtonStyle = TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500); diff --git a/lib/fcs/common/localization/app_translations.dart b/lib/fcs/common/localization/app_translations.dart new file mode 100644 index 0000000..0c8cc59 --- /dev/null +++ b/lib/fcs/common/localization/app_translations.dart @@ -0,0 +1,42 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:ui'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart' show rootBundle; + +class AppTranslations { + Locale locale; + static Map _localisedValues; + + AppTranslations(Locale locale) { + this.locale = locale; + } + + static AppTranslations of(BuildContext context) { + return Localizations.of(context, AppTranslations); + } + + static Future load(Locale locale) async { + AppTranslations appTranslations = AppTranslations(locale); + String jsonContent = await rootBundle + .loadString("assets/local/localization_${locale.languageCode}.json"); + _localisedValues = json.decode(jsonContent); + return appTranslations; + } + + get currentLanguage => locale.languageCode; + + String text(String key, {List translationVariables}) { + String value = _localisedValues[key]; + if (value == null) { + return "$key not found"; + } + if (translationVariables != null) { + translationVariables.asMap().forEach((i, s) { + value = value.replaceAll("{$i}", s); + }); + } + return value; + } +} diff --git a/lib/fcs/common/localization/app_translations_delegate.dart b/lib/fcs/common/localization/app_translations_delegate.dart new file mode 100644 index 0000000..f2b3aa1 --- /dev/null +++ b/lib/fcs/common/localization/app_translations_delegate.dart @@ -0,0 +1,25 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'app_translations.dart'; +import 'transalation.dart'; + +class AppTranslationsDelegate extends LocalizationsDelegate { + final Locale newLocale; + + const AppTranslationsDelegate({this.newLocale}); + + @override + bool isSupported(Locale locale) { + return Translation().supportedLanguagesCodes.contains(locale.languageCode); + } + + @override + Future load(Locale locale) { + return AppTranslations.load(newLocale ?? locale); + } + + @override + bool shouldReload(LocalizationsDelegate old) { + return true; + } +} \ No newline at end of file diff --git a/lib/fcs/common/localization/transalation.dart b/lib/fcs/common/localization/transalation.dart new file mode 100644 index 0000000..3ab2f99 --- /dev/null +++ b/lib/fcs/common/localization/transalation.dart @@ -0,0 +1,27 @@ +import 'dart:ui'; + +typedef void LocaleChangeCallback(Locale locale); + +class Translation { + static final Translation _translation = Translation._internal(); + + factory Translation() { + return _translation; + } + + Translation._internal(); + + final List supportedLanguages = [ + "English", + "မြန်မာ ", + ]; + + final List supportedLanguagesCodes = ["en", "mu"]; + + //returns the list of supported Locales + Iterable supportedLocales() => + supportedLanguagesCodes.map((language) => Locale(language, "")); + + //function to be invoked when changing the language + LocaleChangeCallback onLocaleChanged; +} diff --git a/lib/fcs/common/pages/contact.dart b/lib/fcs/common/pages/contact.dart new file mode 100644 index 0000000..0a8e28c --- /dev/null +++ b/lib/fcs/common/pages/contact.dart @@ -0,0 +1,150 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:package_info/package_info.dart'; +import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class Contact extends StatefulWidget { + @override + _ContactState createState() => _ContactState(); +} + +class _ContactState extends State { + bool _isLoading = false; + + @override + Widget build(BuildContext context) { + Setting setting = Provider.of(context).setting; + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + backgroundColor: primaryColor, + elevation: 0, + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + title: LocalText( + context, + "contact", + fontSize: 25, + color: Colors.white, + ), + ), + body: ListView( + children: [ + link(setting.usaContactNumber, Icons.phone_forwarded, + onTap: () => _call(setting.usaContactNumber), + label: LocalText( + context, + "contact.usa.phone", + color: primaryColor, + )), + link(setting.mmContactNumber, Icons.phone_forwarded, + onTap: () => _call( + setting.mmContactNumber, + ), + label: LocalText( + context, + "contact.mm.phone", + color: primaryColor, + )), + link( + setting.usaAddress, + Icons.location_on, + ), + link(setting.mmAddress, Icons.location_on), + link(setting.emailAddress, Icons.email, + onTap: () => _email(setting.emailAddress)), + link(setting.facebookLink, FontAwesomeIcons.facebook, + onTap: () => _openLink(setting.facebookLink)), + ], + ), + ), + ); + } + + Widget link(String text, IconData iconData, + {Function() onTap, Widget label}) { + return Padding( + padding: const EdgeInsets.only(left: 18.0, bottom: 5), + child: InkWell( + onTap: () => onTap != null ? onTap() : null, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + iconData, + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + label == null + ? Container() + : Padding( + padding: EdgeInsets.fromLTRB(10, 10, 10, 0), + child: label, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + text == null ? "" : text, + overflow: TextOverflow.ellipsis, + maxLines: 5, + style: TextStyle(fontSize: 14.0), + ), + ), + ], + ), + SizedBox( + width: 5, + ), + onTap == null + ? Container() + : Icon( + Icons.open_in_new, + color: Colors.grey, + size: 15, + ) + ], + ), + )), + ); + } + + Future getVersionNumber() async { + PackageInfo packageInfo = await PackageInfo.fromPlatform(); + String version = packageInfo.version + "+" + packageInfo.buildNumber; + return version; + } + + _call(String phone) { + showConfirmDialog( + context, "contact.phone.confim", () => launch("tel:$phone"), + translationVariables: ["$phone"]); + } + + _email(String email) { + showConfirmDialog( + context, "contact.email.configm", () => launch("mailto:$email"), + translationVariables: ["$email"]); + } + + _openLink(String link) { + showConfirmDialog(context, "contact.open.confrim", () => launch("$link"), + translationVariables: ["$link"]); + } +} diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index 5832364..27aca90 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -1,6 +1,8 @@ +import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/pages/contact.dart'; +import 'package:fcs/fcs/common/pages/widgets/action_button.dart'; +import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart'; import 'package:fcs/pages/discount_list.dart'; import 'package:fcs/pages/notification_list.dart'; import 'package:fcs/pages/payment_method_page.dart'; @@ -11,8 +13,6 @@ import 'package:fcs/pages_fcs/delivery_list.dart'; import 'package:fcs/pages_fcs/package_list.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/localization/transalation.dart'; import 'package:fcs/widget/offline_redirect.dart'; import 'package:fcs/widget/right_left_page_route%20copy.dart'; import 'package:flutter/cupertino.dart'; @@ -30,7 +30,7 @@ import '../../../pages/invoice/invoce_list.dart'; import '../../../pages/pickup_list.dart'; import '../../../pages/shipment_rates.dart'; import '../../../pages/staff_list.dart'; -import '../theme.dart'; +import '../helpers/theme.dart'; import 'profile_page.dart'; import 'signin/signin_page.dart'; @@ -41,12 +41,11 @@ class HomePage extends StatefulWidget { _HomePageState createState() => _HomePageState(); } -typedef BtnCallback(); - class _HomePageState extends State { final log = Logger('_HomePageState'); bool login = false; bool customer = true; + List isSelected = [true, false]; @override void initState() { @@ -67,41 +66,41 @@ class _HomePageState extends State { final numberFormatter = new NumberFormat("#,###"); String pin; - List isSelected = [true, false]; @override Widget build(BuildContext context) { login = Provider.of(context).isLogin(); var owner = Provider.of(context).isOwner(); var customer = Provider.of(context).isCustomer(); + LanguageModel languageModel = Provider.of(context); - final packagesBtn = _buildBtn2("package.name", + final packagesBtn = _buildBtn("package.name", icon: Octicons.package, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(PackageList()))); - final boxesBtn = _buildBtn2("boxes.name", + final boxesBtn = _buildBtn("boxes.name", icon: MaterialCommunityIcons.package, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(BoxList()))); - final pickUpBtn = _buildBtn2("pickup", + final pickUpBtn = _buildBtn("pickup", icon: SimpleLineIcons.direction, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(PickUpList()))); - final shipmentCostBtn = _buildBtn2("rate", + final shipmentCostBtn = _buildBtn("rate", icon: FontAwesomeIcons.calculator, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(ShipmentRates()))); - final fcsProfileBtn = _buildBtn2("fcs.btn", + final fcsProfileBtn = _buildBtn("fcs.btn", // imgIcon: Image.asset("assets/logo_btn.png", height: 25,color:Colors.white), icon: MaterialCommunityIcons.home_city, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(FCSProfilePage()))); - final shipmentBtn = _buildBtn2("shipment.title", + final shipmentBtn = _buildBtn("shipment.title", icon: Ionicons.ios_airplane, imgIcon: Image.asset( "assets/truck.png", @@ -112,7 +111,7 @@ class _HomePageState extends State { btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(ShipmentList()))); - final buyingBtn = _buildBtn2("buy_online", + final buyingBtn = _buildBtn("buy_online", icon: MaterialCommunityIcons.cart_outline, btnCallback: () { Navigator.push(context, BottomUpPageRoute(BuyingOnlinePage()) // MaterialPageRoute(builder: (context) => BuyingOnlinePage()), @@ -120,43 +119,43 @@ class _HomePageState extends State { }); final notiBtn = - _buildBtn2("message.btn", icon: Icons.message, btnCallback: () { + _buildBtn("message.btn", icon: Icons.message, btnCallback: () { Navigator.push( context, BottomUpPageRoute(NotificationList()), ); }); - final staffBtn = _buildBtn2("staff.title", + final staffBtn = _buildBtn("staff.title", icon: MaterialCommunityIcons.worker, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(StaffList()))); - final customersBtn = _buildBtn2("customers.btn", + final customersBtn = _buildBtn("customers.btn", icon: Feather.users, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(CustomerList()))); - final invoicesBtn = _buildBtn2("invoices.btn", + final invoicesBtn = _buildBtn("invoices.btn", icon: FontAwesomeIcons.fileInvoice, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(InvoiceList()))); - final paymentMethodBtn = _buildBtn2("payment.method.btn", + final paymentMethodBtn = _buildBtn("payment.method.btn", icon: FontAwesomeIcons.creditCard, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(PaymentMethodPage()))); - final discountBtn = _buildBtn2("discount.btn", + final discountBtn = _buildBtn("discount.btn", icon: Entypo.price_ribbon, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(DiscountList()))); - final termBtn = _buildBtn2("term.btn", + final termBtn = _buildBtn("term.btn", icon: FontAwesomeIcons.info, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(Term()))); - final deliveryBtn = _buildBtn2("delivery.title", + final deliveryBtn = _buildBtn("delivery.title", icon: MaterialCommunityIcons.truck_fast, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(DeliverList()))); @@ -206,7 +205,7 @@ class _HomePageState extends State { ) ], onPressed: _langChange, - isSelected: isSelected, + isSelected: languageModel.currentState, ), IconButton( onPressed: () { @@ -234,7 +233,7 @@ class _HomePageState extends State { ) ], onPressed: _langChange, - isSelected: isSelected, + isSelected: languageModel.currentState, ), FlatButton( onPressed: () { @@ -288,42 +287,14 @@ class _HomePageState extends State { child: Column( children: [ Expanded( - child: Padding( - padding: const EdgeInsets.only(top: 8.0), - child: ListView(children: [ - Wrap( - alignment: WrapAlignment.center, - children: widgets, - ), - ]), - ), + child: ListView(children: [ + Wrap( + alignment: WrapAlignment.center, + children: widgets, + ), + ]), ), - Container( - height: 80, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - // _buildSmallButton( - // "Policies", FontAwesomeIcons.fileContract), - InkWell( - onTap: () { - Navigator.of(context) - .push(BottomUpPageRoute(Contact())); - }, - child: _buildSmallButton( - "Contact Us", SimpleLineIcons.support), - ), - InkWell( - onTap: () { - Navigator.of(context) - .push(BottomUpPageRoute(Term())); - }, - child: _buildSmallButton( - "Terms of service", Icons.info_outline), - ), - ], - ), - ) + BottomWidgets(), ], ))), ), @@ -331,7 +302,7 @@ class _HomePageState extends State { } _langChange(index) { - var languageModel = Provider.of(context); + var languageModel = Provider.of(context,listen: false); languageModel.saveLanguage(Translation().supportedLanguages[index]); setState(() { isSelected.asMap().forEach((i, e) { @@ -341,143 +312,8 @@ class _HomePageState extends State { }); } - Widget _buildTile(Widget child, {Function() onTap}) { - return Material( - elevation: 0, - borderRadius: BorderRadius.circular(12.0), - // shadowColor: Colors.transparent, - color: Colors.transparent, - child: InkWell( - onTap: onTap != null - ? () => onTap() - : () { - log.info('Not set yet'); - }, - child: child)); - } - Widget _buildBtn(String title, {Image imgIcon, IconData icon, BtnCallback btnCallback}) { - var languageModel = Provider.of(context); - return _buildTile( - Padding( - padding: const EdgeInsets.all(5.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - icon != null - ? Material( - child: Padding( - padding: EdgeInsets.only(top: 10), - child: Icon(icon, color: primaryColor, size: 35.0))) - : Container( - padding: EdgeInsets.only(top: 3), - child: imgIcon, - ), - Padding(padding: EdgeInsets.only(bottom: 10.0)), - Text(AppTranslations.of(context).text(title), - style: languageModel.isEng - ? TextStyle( - color: Colors.black, - fontWeight: FontWeight.w700, - fontSize: 12.0) - : TextStyle( - color: Colors.black, - fontWeight: FontWeight.w700, - fontSize: 12.0, - fontFamily: "MyanmarUnicode")), - ]), - ), - onTap: btnCallback, - ); - } - - Widget _buildBtn2(String title, - {Image imgIcon, IconData icon, BtnCallback btnCallback}) { - var languageModel = Provider.of(context); - return Container( - width: 100, - height: 100, - decoration: new BoxDecoration( - color: Colors.transparent, //new Color.fromRGBO(255, 0, 0, 0.0), - borderRadius: new BorderRadius.only( - topLeft: const Radius.circular(40.0), - topRight: const Radius.circular(40.0))), - // color: Colors.transparent, - child: Padding( - padding: const EdgeInsets.all(5.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - // Padding( - // padding: EdgeInsets.only(top: 10), - // child: Icon(icon, color: Colors.white, size: 35.0)), - // Padding(padding: EdgeInsets.only(bottom: 10.0)), - ClipOval( - child: Material( - color: Colors.black54, // button color - child: InkWell( - splashColor: primaryColor, // inkwell color - child: SizedBox( - width: 60, - height: 60, - child: icon == null - ? Container(width: 10, height: 10, child: imgIcon) - : Icon(icon, color: Colors.white, size: 30)), - onTap: btnCallback, - ), - ), - ), - - Container( - height: 30, - child: FittedBox( - fit: BoxFit.fitWidth, - child: Text(AppTranslations.of(context).text(title), - style: languageModel.isEng - ? TextStyle( - color: Colors.white, - fontWeight: FontWeight.w500, - fontSize: 14.0, - fontFamily: "Roboto") - : TextStyle( - color: Colors.white, - fontWeight: FontWeight.w700, - fontSize: 12.0, - fontFamily: "MyanmarUnicode")), - ), - ), - ]), - ), - ); - } - - Widget _buildSmallButton(String text, IconData iconData) { - return Padding( - padding: const EdgeInsets.all(18.0), - child: Row( - children: [ - IconButton( - icon: Icon(iconData, color: Colors.white70), - color: Colors.white70, - onPressed: null), - // RaisedButton(onPressed: ()=>{},child: Row( - // children: [ - // IconButton( - // icon: Icon(iconData, ), - // onPressed: null), - // Text(text), - // ], - // ),color: Colors.transparent, - // focusColor: Colors.transparent,), - Text( - text, - style: subMenuStyle, - ) - ], - ), - ); + return ActionButton(title: title,imgIcon: imgIcon,icon:icon,btnCallback: btnCallback); } } diff --git a/lib/fcs/common/pages/model/base_model.dart b/lib/fcs/common/pages/model/base_model.dart new file mode 100644 index 0000000..916cd00 --- /dev/null +++ b/lib/fcs/common/pages/model/base_model.dart @@ -0,0 +1,35 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:flutter/foundation.dart'; +import 'package:fcs/fcs/common/helpers/api_helper.dart'; + +import 'main_model.dart'; + +abstract class BaseModel extends ChangeNotifier { + User user; + Setting setting; + MainModel mainModel; + + void initUser(User user) async { + this.user = user; + } + + void initSetting(Setting setting) async { + this.setting = setting; + } + + void logout(); + +// request makes http request +// if token is null + dynamic request( + String path, + method, { + dynamic payload, + String token, + String url, + }) async { + return await requestAPI(path, method, + payload: payload, token: token, url: url); + } +} diff --git a/lib/fcs/common/pages/model/language_model.dart b/lib/fcs/common/pages/model/language_model.dart new file mode 100644 index 0000000..b37910e --- /dev/null +++ b/lib/fcs/common/pages/model/language_model.dart @@ -0,0 +1,46 @@ +import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/helpers/shared_pref.dart'; +import 'package:flutter/painting.dart'; + +import 'base_model.dart'; + +class LanguageModel extends BaseModel { + String language; + bool get isEng => this.language == "English"; + List get currentState => isEng ? [true, false] : [false, true]; + + static final List languageCodesList = + Translation().supportedLanguagesCodes; + static final List languagesList = Translation().supportedLanguages; + + final Map languagesMap = { + languagesList[0]: languageCodesList[0], + languagesList[1]: languageCodesList[1], + }; + LanguageModel() { + load(); + } + @override + logout() async {} + + Future load() async { + var data = await SharedPref.getLang(); + String result = languagesList[1]; // defalut to english + if (data != null) { + result = data; + } + this.language = result; + Translation().onLocaleChanged(Locale(languagesMap[this.language])); + print("lang=====$result"); + notifyListeners(); + return result; + } + + void saveLanguage(String language) async { + Translation().onLocaleChanged(Locale(languagesMap[language])); + + SharedPref.saveLang(language); + this.language = language; + notifyListeners(); + } +} diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart index 2462c94..7fa9523 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/fcs/common/pages/model/main_model.dart @@ -8,7 +8,7 @@ import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/domain/entities/setting.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/network_connectivity.dart'; +import 'package:fcs/fcs/common/helpers/network_connectivity.dart'; import 'package:fcs/fcs/common/services/services.dart'; import 'package:flutter/foundation.dart'; import 'package:logging/logging.dart'; diff --git a/lib/fcs/common/pages/profile_page.dart b/lib/fcs/common/pages/profile_page.dart index cb8f876..e981e73 100644 --- a/lib/fcs/common/pages/profile_page.dart +++ b/lib/fcs/common/pages/profile_page.dart @@ -1,20 +1,20 @@ +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/pages_fcs/shipping_address_row.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/shipping_address.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/localization/transalation.dart'; -import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../../pages/shipping_address_editor.dart'; -import '../theme.dart'; +import '../helpers/theme.dart'; typedef void ProfileCallback(); diff --git a/lib/fcs/common/pages/signin/code_page.dart b/lib/fcs/common/pages/signin/code_page.dart index 068df13..e681af0 100644 --- a/lib/fcs/common/pages/signin/code_page.dart +++ b/lib/fcs/common/pages/signin/code_page.dart @@ -4,14 +4,14 @@ import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:pin_input_text_field/pin_input_text_field.dart'; import 'package:provider/provider.dart'; import 'signup_page.dart'; -import '../../theme.dart'; +import '../../helpers/theme.dart'; import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; diff --git a/lib/fcs/common/pages/signin/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart index ef19eac..a869786 100644 --- a/lib/fcs/common/pages/signin/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -8,11 +8,11 @@ import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; -import '../../theme.dart'; +import '../../helpers/theme.dart'; import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; import 'code_page.dart'; -import '../../../../pages/util.dart'; +import '../util.dart'; class SigninPage extends StatefulWidget { @override diff --git a/lib/fcs/common/pages/signin/signup_page.dart b/lib/fcs/common/pages/signin/signup_page.dart index b4b766b..4f5b611 100644 --- a/lib/fcs/common/pages/signin/signup_page.dart +++ b/lib/fcs/common/pages/signin/signup_page.dart @@ -6,7 +6,7 @@ import 'package:provider/provider.dart'; import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; -import '../../theme.dart'; +import '../../helpers/theme.dart'; class SignupPage extends StatefulWidget { @override diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/fcs/common/pages/splash_page.dart index e4269d6..656fe32 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; diff --git a/lib/fcs/common/pages/term.dart b/lib/fcs/common/pages/term.dart new file mode 100644 index 0000000..34ee27a --- /dev/null +++ b/lib/fcs/common/pages/term.dart @@ -0,0 +1,173 @@ +import 'dart:convert'; + +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/term_edit.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:zefyr/zefyr.dart'; + + +typedef void ProfileCallback(); + +class Term extends StatefulWidget { + final bool agreePage; + + const Term({Key key, this.agreePage = false}) : super(key: key); + @override + _TermState createState() => _TermState(); +} + +class _TermState extends State { + ZefyrController _controller; + FocusNode _focusNode; + NotusDocument document = new NotusDocument(); + bool isLoading = false; + + @override + void initState() { + super.initState(); + _controller = ZefyrController(_loadDocument()); + print("controller terms => ${_controller.document}"); + _focusNode = FocusNode(); + } + + NotusDocument _loadDocument() { + MainModel mainModel = Provider.of(context, listen: false); + String term = mainModel.setting.terms; + print("terms => $term"); + NotusDocument doc; + try { + doc = NotusDocument.fromJson(jsonDecode(term)); + print('doc=> $doc'); + } catch (e) {} + if (doc == null) { + doc = NotusDocument(); + } + return doc; + } + + @override + Widget build(BuildContext context) { + MainModel mainModel = Provider.of(context); + + bool isOwnerAndAbove = + mainModel.user != null && mainModel.user.isOwnerAndAbove(); + bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin(); + + // bool aggreed = mainModel.user.agreeTerms; + bool aggreed = true; + + final agreeBtn = Padding( + padding: EdgeInsets.symmetric(vertical: 10.0), + child: Card( + elevation: 10, + child: Container( + height: 45.0, + child: ButtonTheme( + minWidth: 900.0, + height: 100.0, + child: FlatButton.icon( + onPressed: () { + showConfirmDialog(context, "term.iagree", () async { + _agree(); + }); + }, + label: LocalText(context, "term.agree_btn"), + icon: Icon( + Icons.check, + ), + ), + ), + ), + )); + + return LocalProgress( + inAsyncCall: isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + // automaticallyImplyLeading: !widget.agreePage, + title: LocalText(context, 'term', color: Colors.white, fontSize: 20), + backgroundColor: primaryColor, + actions: [ + // isOwnerAndAbove || hasAdmin + // ? + IconButton( + icon: Icon(Icons.edit), + onPressed: () async { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => TermEdit((data) { + setState(() { + _controller = ZefyrController(data); + }); + })), + ); + // print('doc=> $doc'); + + // setState(() { + // document = doc; + // }); + // var document = await + // Navigator.push( + // context, + // MaterialPageRoute(builder: (context) => TermEdit()), + // ); + }, + ) + // : Container() + ], + ), + body: Column( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Card( + child: ZefyrTheme( + data: ZefyrThemeData().copyWith(), + child: ZefyrScaffold( + child: ZefyrEditor( + mode: ZefyrMode.view, + padding: EdgeInsets.all(16), + controller: _controller, + focusNode: _focusNode, + ), + ))), + )), + !aggreed ? agreeBtn : Container(), + ], + ), + ), + ); + } + + _agree() async { + setState(() { + isLoading = true; + }); + try { + // MainModel mainModel = Provider.of(context); + // await mainModel.agreeTerms(); + // if (widget.agreePage) { + // Future.delayed(const Duration(milliseconds: 3000), () { + // Navigator.pop(context); + // }); + // } + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + setState(() { + isLoading = false; + }); + } + } +} diff --git a/lib/fcs/common/pages/term_edit.dart b/lib/fcs/common/pages/term_edit.dart new file mode 100644 index 0000000..b00c5be --- /dev/null +++ b/lib/fcs/common/pages/term_edit.dart @@ -0,0 +1,125 @@ +import 'dart:convert'; + +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/widget/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_markdown/flutter_markdown.dart'; +import 'package:provider/provider.dart'; +import 'package:zefyr/zefyr.dart'; + + +typedef void ProfileCallback(); + +class TermEdit extends StatefulWidget { + final ValueChanged onChangedData; + TermEdit(this.onChangedData); + @override + _TermEditState createState() => _TermEditState(); +} + +class _TermEditState extends State { + /// Allows to control the editor and the document. + ZefyrController _controller; + + /// Zefyr editor like any other input field requires a focus node. + FocusNode _focusNode; + bool _isLoading; + + @override + void initState() { + super.initState(); + _isLoading = false; + + // Here we must load the document and pass it to Zefyr controller. + final document = _loadDocument(); + _controller = ZefyrController(document); + _focusNode = FocusNode(); + } + + /// Loads the document to be edited in Zefyr. + NotusDocument _loadDocument() { + MainModel mainModel = Provider.of(context, listen: false); + String term = mainModel.setting.terms; + + NotusDocument doc; + try { + doc = NotusDocument.fromJson(jsonDecode(term)); + } catch (e) {} + if (doc == null) { + doc = NotusDocument(); + } + return doc; + } + + @override + Widget build(BuildContext context) { + MainModel mainModel = Provider.of(context); + + var singleChildScrollView = SingleChildScrollView( + padding: EdgeInsets.only( + left: 25.0, + right: 25.0, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + width: 300, + height: 300, + child: Card(child: Markdown(data: mainModel.setting.terms))), + ], + ), + ); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + title: Text( + "Terms", + ), + backgroundColor: primaryColor, + actions: [ + IconButton( + icon: Icon(Icons.save), + onPressed: () { + _save(); + }, + ) + ], + ), + body: ZefyrScaffold( + child: ZefyrTheme( + data: ZefyrThemeData().copyWith(), + child: ZefyrEditor( + padding: EdgeInsets.all(16), + controller: _controller, + focusNode: _focusNode, + ), + ), + ), + ), + ); + } + + _save() { + setState(() { + _isLoading = true; + }); + try { + final contents = jsonEncode(_controller.document); + print('contents => $contents'); + widget.onChangedData(_controller.document); + // MainModel mainModel = Provider.of(context, listen: false); + // mainModel.updateTerms(contents); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + _isLoading = false; + Navigator.pop(context); + } + } +} diff --git a/lib/pages/util.dart b/lib/fcs/common/pages/util.dart similarity index 97% rename from lib/pages/util.dart rename to lib/fcs/common/pages/util.dart index 25f48c7..e64ea2b 100644 --- a/lib/pages/util.dart +++ b/lib/fcs/common/pages/util.dart @@ -11,20 +11,20 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/notification_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/vo/notification.dart' as Noti; -import 'announcement.dart'; -import 'buyer_info.dart'; -import 'do/do_approve.dart'; -import 'log_list.dart'; -import 'my_registeration_info.dart'; -import 'po/po_submission_form.dart'; -import 'products_list.dart'; -import 'user_editor.dart'; +import '../../../pages/announcement.dart'; +import '../../../pages/buyer_info.dart'; +import '../../../pages/do/do_approve.dart'; +import '../../../pages/log_list.dart'; +import '../../../pages/my_registeration_info.dart'; +import '../../../pages/po/po_submission_form.dart'; +import '../../../pages/products_list.dart'; +import '../../../pages/user_editor.dart'; final log = Logger('Util'); diff --git a/lib/fcs/common/pages/welcome_page.dart b/lib/fcs/common/pages/welcome_page.dart index d6ab02e..d7a9077 100644 --- a/lib/fcs/common/pages/welcome_page.dart +++ b/lib/fcs/common/pages/welcome_page.dart @@ -1,18 +1,17 @@ import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/pages/contact.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/localization/transalation.dart'; import 'package:fcs/widget/offline_redirect.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart' as intl; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; -import '../theme.dart'; +import '../helpers/theme.dart'; import 'profile_page.dart'; import 'signin/signin_page.dart'; import '../../../pages/term.dart'; @@ -136,132 +135,58 @@ class _WelcomePageState extends State { Color(0xfa272262), ], // whitish to gray )), - child: ListView( + child: Column( children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.all(80.0), - child: Text( - "Welcome!", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 28, - fontFamily: "Roboto"), - ), - ), - Padding( - padding: const EdgeInsets.only(top: 0.0), - child: Text( - "Cargo Services", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 28, - fontFamily: "Roboto"), - ), - ), - Padding( - padding: const EdgeInsets.all(10.0), - child: Text( - "by FCS Trading", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontFamily: "Roboto"), - ), - ), - Container( - padding: EdgeInsets.only(top: 10, bottom: 10), - child: CircleAvatar( - radius: (50), - backgroundColor: Colors.white, - child: ClipRRect( - borderRadius: BorderRadius.circular(50), - child: Image.asset("assets/logo.jpg"), - )), - ), - ], - ), - // Row( - // children: [ - // Expanded( - // child: Container( - // height: 200, - // // child: DimensionBox( - // // dimension: Dimension(length, width, height), - // // color: secondaryColor, - // // ), - // ), - // ), - // RotatedBox( - // quarterTurns: -1, - // child: Slider( - // min: 6, - // max: 100, - // value: height, - // onChanged: (value) { - // setState(() { - // height = value; - // }); - // }, - // ), - // ), - // ], - // ), - // Row( - // mainAxisAlignment: MainAxisAlignment.spaceEvenly, - // children: [ - // Slider( - // label: "Length", - // min: 6, - // max: 100, - // value: length, - // onChanged: (value) { - // setState(() { - // length = value; - // }); - // }, - // ), - // Slider( - // label: "Width", - // min: 6, - // max: 100, - // value: width, - // onChanged: (value) { - // setState(() { - // width = value; - // }); - // }, - // ), - // ], - // ), - Padding( - padding: const EdgeInsets.only(top: 28.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, + Expanded( + child: ListView( children: [ - InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => Contact())); - }, - child: _buildSmallButton( - "Contact Us", SimpleLineIcons.support), + Padding( + padding: const EdgeInsets.all(80.0), + child: Text( + "Welcome!", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontFamily: "Roboto"), + ), ), - InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => Term())); - }, - child: _buildSmallButton( - "Terms of service", Icons.info_outline), + Padding( + padding: const EdgeInsets.only(top: 0.0), + child: Text( + "Cargo Services", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontFamily: "Roboto"), + ), + ), + Padding( + padding: const EdgeInsets.all(10.0), + child: Text( + "by FCS Trading", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontFamily: "Roboto"), + ), + ), + Container( + padding: EdgeInsets.only(top: 10, bottom: 30), + child: CircleAvatar( + radius: (50), + backgroundColor: Colors.white, + child: ClipRRect( + borderRadius: BorderRadius.circular(50), + child: Image.asset("assets/logo.jpg"), + )), ), ], ), - ) + ), + BottomWidgets(), ], ))), ), @@ -278,23 +203,4 @@ class _WelcomePageState extends State { isSelected[index] = !isSelected[index]; }); } - - Widget _buildSmallButton(String text, IconData iconData) { - return Padding( - padding: const EdgeInsets.all(18.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only(right: 5), - child: Icon(iconData, color: Colors.white70, size: 18), - ), - Text( - text, - style: subMenuStyle, - ) - ], - ), - ); - } } diff --git a/lib/fcs/common/pages/widgets/action_button.dart b/lib/fcs/common/pages/widgets/action_button.dart new file mode 100644 index 0000000..66fcc0d --- /dev/null +++ b/lib/fcs/common/pages/widgets/action_button.dart @@ -0,0 +1,69 @@ +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:provider/provider.dart'; + +typedef BtnCallback(); + +class ActionButton extends StatelessWidget { + final String title; + final Image imgIcon; + final IconData icon; + final BtnCallback btnCallback; + + const ActionButton( + {Key key, this.title, this.imgIcon, this.icon, this.btnCallback}) + : super(key: key); + + @override + Widget build(BuildContext context) { + var languageModel = Provider.of(context); + return InkWell( + onTap: btnCallback != null ? btnCallback : () => {}, + child: Container( + width: 120, + height: 150, + padding: EdgeInsets.only(top:15.0), + decoration: new BoxDecoration( + color: Colors.transparent, + borderRadius: new BorderRadius.only( + topLeft: const Radius.circular(40.0), + topRight: const Radius.circular(40.0))), + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Column(children: [ + ClipOval( + child: Material( + color: Colors.black54, // button color + child: SizedBox( + width: 60, + height: 60, + child: icon == null + ? Container(width: 10, height: 10, child: imgIcon) + : Icon(icon, color: Colors.white, size: 30)), + ), + ), + Container( + height: 50, + alignment: Alignment.topCenter, + child: Text(AppTranslations.of(context).text(title), + textAlign: TextAlign.center, + style: languageModel.isEng + ? TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500, + fontSize: 15.0, + fontFamily: "Roboto") + : TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500, + fontSize: 14.0, + fontFamily: "MyanmarUnicode")), + ), + ]), + ), + ), + ); + } +} diff --git a/lib/fcs/common/pages/widgets/bottom_widgets.dart b/lib/fcs/common/pages/widgets/bottom_widgets.dart new file mode 100644 index 0000000..81b91b0 --- /dev/null +++ b/lib/fcs/common/pages/widgets/bottom_widgets.dart @@ -0,0 +1,49 @@ +import 'package:fcs/fcs/common/pages/contact.dart'; +import 'package:fcs/fcs/common/pages/term.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_icons/flutter_icons.dart'; + +class BottomWidgets extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + InkWell( + onTap: () { + Navigator.of(context).push(BottomUpPageRoute(Contact())); + }, + child: _buildSmallButton("Contact Us", SimpleLineIcons.support), + ), + InkWell( + onTap: () { + Navigator.of(context).push(BottomUpPageRoute(Term())); + }, + child: _buildSmallButton("Terms of service", Icons.info_outline), + ), + ], + ); + } + + Widget _buildSmallButton(String text, IconData iconData) { + return Padding( + padding: const EdgeInsets.all(18.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only(right: 5), + child: Icon(iconData, color: Colors.white70, size: 20), + ), + Text( + text, + style: subMenuStyle, + ) + ], + ), + ); + } +} diff --git a/lib/fcs/common/pages/widgets/local_text.dart b/lib/fcs/common/pages/widgets/local_text.dart new file mode 100644 index 0000000..c26c488 --- /dev/null +++ b/lib/fcs/common/pages/widgets/local_text.dart @@ -0,0 +1,30 @@ +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; + + +class LocalText extends Text { + final BuildContext context; + LocalText(this.context, String translationKey, + {Color color, + double fontSize, + FontWeight fontWeight, + List translationVariables, + bool underline = false}) + : super( + AppTranslations.of(context).text(translationKey, + translationVariables: translationVariables), + style: Provider.of(context).isEng + ? newLabelStyle( + color: color, + fontSize: fontSize, + fontWeight: fontWeight, + underline: underline) + : newLabelStyleMM( + color: color, + fontSize: fontSize, + fontWeight: fontWeight, + underline: underline)); +} diff --git a/lib/fcs/common/pages/widgets/progress.dart b/lib/fcs/common/pages/widgets/progress.dart new file mode 100644 index 0000000..8135fbe --- /dev/null +++ b/lib/fcs/common/pages/widgets/progress.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:progress/progress.dart'; +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; + +class LocalProgress extends Progress { + LocalProgress({bool inAsyncCall, Widget child}) + : super( + inAsyncCall: inAsyncCall, + child: child, + opacity: 0.6, + progressIndicator: Center( + child: Container( + height: 100, + width: 300, + child: Card( + color: Colors.white, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator( + valueColor: + new AlwaysStoppedAnimation(primaryColor), + ), + SizedBox( + height: 10, + ), + Text("Loading...") + ], + ), + ), + ), + )); + + Widget build(BuildContext context) { + // hide keyboard + if (inAsyncCall) { + FocusScopeNode currentFocus = FocusScope.of(context); + if (!currentFocus.hasPrimaryFocus) { + currentFocus.unfocus(); + } + } + return super.build(context); + } +} diff --git a/lib/main-local.dart b/lib/main-local.dart index 6d48ad8..eb80cc2 100644 --- a/lib/main-local.dart +++ b/lib/main-local.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:fcs/config.dart'; -import 'package:shared_preferences/shared_preferences.dart'; import 'app.dart'; @@ -9,9 +8,7 @@ void main() { Config( flavor: Flavor.DEV, color: Colors.blue, - apiURL: "https://localhost:7777", - reportURL: "http://petrok-dev.mokkon.com:8080", - reportProjectID: "dev", + apiURL: "http://192.168.1.155:7777", level: Level.ALL); runApp(App()); } diff --git a/lib/model/base_model.dart b/lib/model/base_model.dart index 6b220fb..2a39149 100644 --- a/lib/model/base_model.dart +++ b/lib/model/base_model.dart @@ -1,5 +1,5 @@ import 'package:flutter/foundation.dart'; -import 'package:fcs/fcs/common/api_helper.dart'; +import 'package:fcs/fcs/common/helpers/api_helper.dart'; import '../vo/setting.dart'; import '../vo/user.dart'; diff --git a/lib/model/buyer_model.dart b/lib/model/buyer_model.dart index f5326e4..43fbb3d 100644 --- a/lib/model/buyer_model.dart +++ b/lib/model/buyer_model.dart @@ -4,7 +4,7 @@ import 'dart:convert' show HtmlEscape, base64, utf8; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:logging/logging.dart'; import 'package:fcs/config.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/vo/popup_menu.dart'; diff --git a/lib/model/do_model.dart b/lib/model/do_model.dart index 3816e6b..4b8e0f1 100644 --- a/lib/model/do_model.dart +++ b/lib/model/do_model.dart @@ -4,7 +4,7 @@ import 'dart:typed_data'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:path/path.dart' as Path; -import 'package:fcs/fcs/common/api_helper.dart'; +import 'package:fcs/fcs/common/helpers/api_helper.dart'; import 'package:fcs/model/constants.dart'; import 'package:fcs/pages/do/do_files.dart'; import 'package:fcs/vo/do.dart'; diff --git a/lib/model/main_model.dart b/lib/model/main_model.dart index 62ed57d..75f4ae2 100644 --- a/lib/model/main_model.dart +++ b/lib/model/main_model.dart @@ -23,7 +23,7 @@ import 'package:fcs/widget/NetworkConnectivity.dart'; import '../config.dart'; import '../vo/status.dart'; import '../vo/user.dart'; -import '../fcs/common/api_helper.dart'; +import '../fcs/common/helpers/api_helper.dart'; import 'base_model.dart'; import 'constants.dart'; import 'firebase_helper.dart'; diff --git a/lib/model/report_model.dart b/lib/model/report_model.dart index e958caa..f683f0c 100644 --- a/lib/model/report_model.dart +++ b/lib/model/report_model.dart @@ -6,7 +6,7 @@ import 'package:fcs/vo/report.dart'; import 'package:fcs/vo/report_user.dart'; import 'package:open_file/open_file.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:fcs/fcs/common/api_helper.dart' as api; +import 'package:fcs/fcs/common/helpers/api_helper.dart' as api; import 'package:fcs/vo/report.dart'; import '../config.dart'; diff --git a/lib/pages/add_pin_editor.dart b/lib/pages/add_pin_editor.dart index 1591a81..8259afa 100644 --- a/lib/pages/add_pin_editor.dart +++ b/lib/pages/add_pin_editor.dart @@ -8,8 +8,8 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart' as Theme; -import 'util.dart'; +import '../fcs/common/helpers/theme.dart' as Theme; +import '../fcs/common/pages/util.dart'; class AddPINEditor extends StatefulWidget { final User user; diff --git a/lib/pages/announcement.dart b/lib/pages/announcement.dart index e81a807..af88b1a 100644 --- a/lib/pages/announcement.dart +++ b/lib/pages/announcement.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/announcement_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/announcement.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/widget/local_text.dart'; @@ -12,7 +12,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:fcs/widget/progress.dart'; import 'package:zefyr/zefyr.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'announcement_editor.dart'; class AnnouncementPage extends StatefulWidget { diff --git a/lib/pages/announcement_editor.dart b/lib/pages/announcement_editor.dart index e2ff07a..b37a332 100644 --- a/lib/pages/announcement_editor.dart +++ b/lib/pages/announcement_editor.dart @@ -4,8 +4,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/announcement_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/announcement.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/announcement_list.dart b/lib/pages/announcement_list.dart index 4119f47..0c57365 100644 --- a/lib/pages/announcement_list.dart +++ b/lib/pages/announcement_list.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'announcement.dart'; import 'announcement_editor.dart'; diff --git a/lib/pages/banks/bank_edit.dart b/lib/pages/banks/bank_edit.dart index 2b5252a..e99f1c0 100644 --- a/lib/pages/banks/bank_edit.dart +++ b/lib/pages/banks/bank_edit.dart @@ -4,8 +4,8 @@ import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/bank_account.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/local_text_field.dart'; diff --git a/lib/pages/banks/banks.dart b/lib/pages/banks/banks.dart index aa1bdb7..e1000ec 100644 --- a/lib/pages/banks/banks.dart +++ b/lib/pages/banks/banks.dart @@ -3,7 +3,7 @@ import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/banks/bank_edit.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/bank_account.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/barcode_screen_page.dart b/lib/pages/barcode_screen_page.dart index 4e5d72f..7c58af0 100644 --- a/lib/pages/barcode_screen_page.dart +++ b/lib/pages/barcode_screen_page.dart @@ -5,7 +5,7 @@ import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/block_list.dart b/lib/pages/block_list.dart index a341f10..68314c9 100644 --- a/lib/pages/block_list.dart +++ b/lib/pages/block_list.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/buyer_info.dart b/lib/pages/buyer_info.dart index e81b45f..33654b7 100644 --- a/lib/pages/buyer_info.dart +++ b/lib/pages/buyer_info.dart @@ -5,14 +5,14 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/quota_page.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/util.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'document_log_page.dart'; class BuyerInfo extends StatefulWidget { diff --git a/lib/pages/buyer_list.dart b/lib/pages/buyer_list.dart index c4edf25..9e85e5c 100644 --- a/lib/pages/buyer_list.dart +++ b/lib/pages/buyer_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'buyer_list_row.dart'; class BuyerList extends StatefulWidget { diff --git a/lib/pages/buyer_list_row.dart b/lib/pages/buyer_list_row.dart index c29d03f..a8cbbf3 100644 --- a/lib/pages/buyer_list_row.dart +++ b/lib/pages/buyer_list_row.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'buyer_info.dart'; diff --git a/lib/pages/buying_online.dart b/lib/pages/buying_online.dart index 7c8cc70..b02f050 100644 --- a/lib/pages/buying_online.dart +++ b/lib/pages/buying_online.dart @@ -1,4 +1,4 @@ -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/manual.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; @@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import '../widget/label_widgets.dart'; import '../widget/local_text.dart'; import 'instruction.dart'; diff --git a/lib/pages/calculate_shipment_cost_editor.dart b/lib/pages/calculate_shipment_cost_editor.dart index bc84b34..a78d088 100644 --- a/lib/pages/calculate_shipment_cost_editor.dart +++ b/lib/pages/calculate_shipment_cost_editor.dart @@ -6,7 +6,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class CalculateShipmentCostEditor extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages/chage_phone_number.dart b/lib/pages/chage_phone_number.dart index 77b46bb..8910567 100644 --- a/lib/pages/chage_phone_number.dart +++ b/lib/pages/chage_phone_number.dart @@ -9,9 +9,9 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart' as Theme; +import '../fcs/common/helpers/theme.dart' as Theme; import 'confirm_email.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class ChangePhoneNumber extends StatefulWidget { final User user; diff --git a/lib/pages/change_password.dart b/lib/pages/change_password.dart index 9a158d8..7cac95b 100644 --- a/lib/pages/change_password.dart +++ b/lib/pages/change_password.dart @@ -9,8 +9,8 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart' as Theme; -import 'util.dart'; +import '../fcs/common/helpers/theme.dart' as Theme; +import '../fcs/common/pages/util.dart'; class ChangePassword extends StatefulWidget { final User user; diff --git a/lib/pages/confirm_email.dart b/lib/pages/confirm_email.dart index 5e509d2..ed82bba 100644 --- a/lib/pages/confirm_email.dart +++ b/lib/pages/confirm_email.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class ConfirmEmail extends StatefulWidget { final String id, email, phoneNumber; diff --git a/lib/pages/contact.dart b/lib/pages/contact.dart index 7dc16f9..abbdefd 100644 --- a/lib/pages/contact.dart +++ b/lib/pages/contact.dart @@ -6,8 +6,8 @@ import 'package:package_info/package_info.dart'; import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/contact_editor.dart b/lib/pages/contact_editor.dart index 2020895..22db660 100644 --- a/lib/pages/contact_editor.dart +++ b/lib/pages/contact_editor.dart @@ -4,8 +4,8 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/phone_input.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/setting.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/local_text_field.dart'; diff --git a/lib/pages/custom_editor.dart b/lib/pages/custom_editor.dart index bbacc51..69b5bad 100644 --- a/lib/pages/custom_editor.dart +++ b/lib/pages/custom_editor.dart @@ -1,10 +1,10 @@ -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/custom.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class CustomEditor extends StatefulWidget { final Custom custom; diff --git a/lib/pages/customer_editor.dart b/lib/pages/customer_editor.dart index d436d3f..004dbdd 100644 --- a/lib/pages/customer_editor.dart +++ b/lib/pages/customer_editor.dart @@ -4,13 +4,13 @@ import 'package:fcs/model/employee_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; typedef void FindCallBack(); diff --git a/lib/pages/customer_list.dart b/lib/pages/customer_list.dart index 8023dd8..d61f64c 100644 --- a/lib/pages/customer_list.dart +++ b/lib/pages/customer_list.dart @@ -7,15 +7,15 @@ import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import '../vo/user.dart'; import '../widget/local_text.dart'; import 'customer_editor.dart'; import 'invitation_page.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class CustomerList extends StatefulWidget { @override diff --git a/lib/pages/delivery/delivery_item.dart b/lib/pages/delivery/delivery_item.dart index 3611100..c02418f 100644 --- a/lib/pages/delivery/delivery_item.dart +++ b/lib/pages/delivery/delivery_item.dart @@ -12,7 +12,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/do/photo_page.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/widget/img_file.dart'; import 'package:fcs/widget/local_text.dart'; @@ -21,7 +21,7 @@ import 'package:fcs/widget/my_data_table.dart'; import 'package:fcs/widget/number_cell.dart'; import 'package:fcs/widget/progress.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; class DeliveryItem extends StatefulWidget { final DOSubmission doSubmission; diff --git a/lib/pages/delivery/delivery_list.dart b/lib/pages/delivery/delivery_list.dart index 7e30966..52163de 100644 --- a/lib/pages/delivery/delivery_list.dart +++ b/lib/pages/delivery/delivery_list.dart @@ -6,8 +6,8 @@ import 'package:fcs/model/delivery_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/delivery/delivery_item.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/popupmenu.dart'; diff --git a/lib/pages/device_list.dart b/lib/pages/device_list.dart index 9d38ef9..c51ddf3 100644 --- a/lib/pages/device_list.dart +++ b/lib/pages/device_list.dart @@ -8,8 +8,8 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/popupmenu.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; -import 'util.dart'; +import '../fcs/common/helpers/theme.dart'; +import '../fcs/common/pages/util.dart'; class PhoneDeviceList extends StatefulWidget { @override diff --git a/lib/pages/discount_by_weight_editor.dart b/lib/pages/discount_by_weight_editor.dart index e9af24f..f8d0605 100644 --- a/lib/pages/discount_by_weight_editor.dart +++ b/lib/pages/discount_by_weight_editor.dart @@ -1,11 +1,11 @@ -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/custom.dart'; import 'package:fcs/vo/discount.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class DiscountByWeightEditor extends StatefulWidget { final Discount discount; diff --git a/lib/pages/discount_editor.dart b/lib/pages/discount_editor.dart index 1b6c49a..a3c3b59 100644 --- a/lib/pages/discount_editor.dart +++ b/lib/pages/discount_editor.dart @@ -1,5 +1,5 @@ import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/discount.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; @@ -8,7 +8,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class DiscountEditor extends StatefulWidget { final Discount discount; diff --git a/lib/pages/discount_list.dart b/lib/pages/discount_list.dart index 7cb569c..b22a149 100644 --- a/lib/pages/discount_list.dart +++ b/lib/pages/discount_list.dart @@ -1,13 +1,13 @@ import 'package:fcs/model/discount_model.dart'; import 'package:fcs/pages/discount_editor.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class DiscountList extends StatefulWidget { @override diff --git a/lib/pages/do/do_approve.dart b/lib/pages/do/do_approve.dart index ad62733..863830c 100644 --- a/lib/pages/do/do_approve.dart +++ b/lib/pages/do/do_approve.dart @@ -13,7 +13,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/do/photo_page.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; @@ -24,7 +24,7 @@ import 'package:fcs/widget/number_cell.dart'; import 'package:fcs/widget/progress.dart'; import '../document_log_page.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; import 'do_files.dart'; import 'do_storage_item.dart'; diff --git a/lib/pages/do/do_creation_form.dart b/lib/pages/do/do_creation_form.dart index 3c11275..843bba4 100644 --- a/lib/pages/do/do_creation_form.dart +++ b/lib/pages/do/do_creation_form.dart @@ -8,8 +8,8 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/do/do_product_item.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; diff --git a/lib/pages/do/do_creation_todelete.dart b/lib/pages/do/do_creation_todelete.dart index 0dddc74..6215b66 100644 --- a/lib/pages/do/do_creation_todelete.dart +++ b/lib/pages/do/do_creation_todelete.dart @@ -2,8 +2,8 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/po_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; diff --git a/lib/pages/do/do_list.dart b/lib/pages/do/do_list.dart index 45c0f94..b435c55 100644 --- a/lib/pages/do/do_list.dart +++ b/lib/pages/do/do_list.dart @@ -5,8 +5,8 @@ import 'package:fcs/model/do_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/do/do_creation_form.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/popupmenu.dart'; diff --git a/lib/pages/do/do_product_item.dart b/lib/pages/do/do_product_item.dart index b7bf75e..186da53 100644 --- a/lib/pages/do/do_product_item.dart +++ b/lib/pages/do/do_product_item.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/do/do_storage_item.dart b/lib/pages/do/do_storage_item.dart index ec8a381..1e3447e 100644 --- a/lib/pages/do/do_storage_item.dart +++ b/lib/pages/do/do_storage_item.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/util.dart'; import 'package:fcs/vo/do.dart'; import 'package:fcs/vo/storage.dart'; diff --git a/lib/pages/do/photo_page.dart b/lib/pages/do/photo_page.dart index f6189a2..6c0e710 100644 --- a/lib/pages/do/photo_page.dart +++ b/lib/pages/do/photo_page.dart @@ -3,10 +3,10 @@ import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; class PhotoPage extends StatefulWidget { PhotoPage({Key key}) : super(key: key); diff --git a/lib/pages/do/po_selection.dart b/lib/pages/do/po_selection.dart index d9e45c8..80b8601 100644 --- a/lib/pages/do/po_selection.dart +++ b/lib/pages/do/po_selection.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/document_log_page.dart b/lib/pages/document_log_page.dart index 766b797..2518eb9 100644 --- a/lib/pages/document_log_page.dart +++ b/lib/pages/document_log_page.dart @@ -3,7 +3,7 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/log_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/document_log.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/email_page.dart b/lib/pages/email_page.dart index 0c097ef..7165247 100644 --- a/lib/pages/email_page.dart +++ b/lib/pages/email_page.dart @@ -4,14 +4,14 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shared_pref.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; import 'confirm_email.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class EmailPage extends StatefulWidget { final User user; diff --git a/lib/pages/fcs_profile_page.dart b/lib/pages/fcs_profile_page.dart index 8cd1695..807b106 100644 --- a/lib/pages/fcs_profile_page.dart +++ b/lib/pages/fcs_profile_page.dart @@ -1,5 +1,5 @@ import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/pickup.dart'; import 'package:fcs/widget/fcs_text_field.dart'; import 'package:fcs/widget/local_text.dart'; @@ -9,7 +9,7 @@ import 'package:provider/provider.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class FCSProfilePage extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages/forget_password.dart b/lib/pages/forget_password.dart index 6208dae..8b14953 100644 --- a/lib/pages/forget_password.dart +++ b/lib/pages/forget_password.dart @@ -4,12 +4,12 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; import 'package:fcs/pages/reset_password.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class ForgetPassword extends StatefulWidget { final phoneNumber; diff --git a/lib/pages/instruction.dart b/lib/pages/instruction.dart index 94de671..d1129f1 100644 --- a/lib/pages/instruction.dart +++ b/lib/pages/instruction.dart @@ -1,11 +1,11 @@ -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/manual_model.dart'; import 'package:fcs/pages/manual/manual_item_title_dialog.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/manual.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/invitation_page.dart b/lib/pages/invitation_page.dart index d5374ab..b3173f9 100644 --- a/lib/pages/invitation_page.dart +++ b/lib/pages/invitation_page.dart @@ -1,9 +1,9 @@ -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class InvitationPage extends StatefulWidget { @override diff --git a/lib/pages/invoice/box_addition.dart b/lib/pages/invoice/box_addition.dart index 663f79d..4fea0f2 100644 --- a/lib/pages/invoice/box_addition.dart +++ b/lib/pages/invoice/box_addition.dart @@ -1,6 +1,6 @@ import 'package:fcs/model_fcs/box_model.dart'; import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/invoice/invoce_list.dart b/lib/pages/invoice/invoce_list.dart index f6e52eb..5374e9a 100644 --- a/lib/pages/invoice/invoce_list.dart +++ b/lib/pages/invoice/invoce_list.dart @@ -3,7 +3,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model_fcs/package_model.dart'; import 'package:fcs/pages_fcs/package_list_row.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:provider/provider.dart'; diff --git a/lib/pages/invoice/invoice_editor.dart b/lib/pages/invoice/invoice_editor.dart index abdc266..66f5810 100644 --- a/lib/pages/invoice/invoice_editor.dart +++ b/lib/pages/invoice/invoice_editor.dart @@ -2,7 +2,7 @@ import 'package:fcs/model/discount_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model_fcs/box_model.dart'; import 'package:fcs/pages/invoice/package_addition.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/vo/cargo.dart'; import 'package:fcs/vo/invoice.dart'; @@ -20,7 +20,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; import 'box_addition.dart'; class InvoiceEditor extends StatefulWidget { diff --git a/lib/pages/invoice/invoice_list_row.dart b/lib/pages/invoice/invoice_list_row.dart index bfdf174..fffaf2c 100644 --- a/lib/pages/invoice/invoice_list_row.dart +++ b/lib/pages/invoice/invoice_list_row.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/invoice/payment_pdf_screen.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/invoice.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/cupertino.dart'; @@ -14,7 +14,7 @@ import 'package:intl/intl.dart'; import 'package:path_provider/path_provider.dart'; import 'package:provider/provider.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; import 'invoice_editor.dart'; import 'payment_page.dart'; diff --git a/lib/pages/invoice/package_addition.dart b/lib/pages/invoice/package_addition.dart index 5b8d7b0..72055d4 100644 --- a/lib/pages/invoice/package_addition.dart +++ b/lib/pages/invoice/package_addition.dart @@ -1,5 +1,5 @@ import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/invoice/package_info.dart b/lib/pages/invoice/package_info.dart index 024b83f..239af8f 100644 --- a/lib/pages/invoice/package_info.dart +++ b/lib/pages/invoice/package_info.dart @@ -1,6 +1,6 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/invoice/payment_page.dart b/lib/pages/invoice/payment_page.dart index 397c42c..f95e7dc 100644 --- a/lib/pages/invoice/payment_page.dart +++ b/lib/pages/invoice/payment_page.dart @@ -1,6 +1,6 @@ import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/invoice.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/invoice/payment_pdf_screen.dart b/lib/pages/invoice/payment_pdf_screen.dart index ea01da4..f3dbc4b 100644 --- a/lib/pages/invoice/payment_pdf_screen.dart +++ b/lib/pages/invoice/payment_pdf_screen.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; diff --git a/lib/pages/log_list.dart b/lib/pages/log_list.dart index cae3afd..3f1847a 100644 --- a/lib/pages/log_list.dart +++ b/lib/pages/log_list.dart @@ -6,7 +6,7 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class LogList extends StatefulWidget { @override diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index 8f06498..260f11f 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -10,10 +10,10 @@ import 'package:fcs/widget/bubble_indication_painter.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart' as Theme; +import '../fcs/common/helpers/theme.dart' as Theme; import 'forget_password.dart'; import 'sms_page.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class LoginPage extends StatefulWidget { LoginPage({Key key}) : super(key: key); diff --git a/lib/pages/manual/instruction_data_page.dart b/lib/pages/manual/instruction_data_page.dart index de59b6b..669b9a4 100644 --- a/lib/pages/manual/instruction_data_page.dart +++ b/lib/pages/manual/instruction_data_page.dart @@ -7,7 +7,7 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/manual_model.dart'; import 'package:fcs/pages/manual/moveable_stack_item.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/manual.dart'; import 'package:path/path.dart' as Path; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/manual/manual_page.dart b/lib/pages/manual/manual_page.dart index 6ec770b..3a63621 100644 --- a/lib/pages/manual/manual_page.dart +++ b/lib/pages/manual/manual_page.dart @@ -4,12 +4,12 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/manual_model.dart'; import 'package:fcs/pages/manual/manual_item_title_dialog.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/manual.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; -import '../../fcs/common/theme.dart'; +import '../../fcs/common/helpers/theme.dart'; import 'slide_page.dart'; class ManualPage extends StatefulWidget { diff --git a/lib/pages/message_detail.dart b/lib/pages/message_detail.dart index c76d0b4..5598fb0 100644 --- a/lib/pages/message_detail.dart +++ b/lib/pages/message_detail.dart @@ -1,5 +1,5 @@ import 'package:fcs/model_fcs/message_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/message.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; diff --git a/lib/pages/my_registeration.dart b/lib/pages/my_registeration.dart index 76d7f91..da886aa 100644 --- a/lib/pages/my_registeration.dart +++ b/lib/pages/my_registeration.dart @@ -3,14 +3,14 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/reg_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/img_file.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/my_data_table.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import '../widget/localization/app_translations.dart'; import 'my_registeration_item.dart'; diff --git a/lib/pages/my_registeration_info.dart b/lib/pages/my_registeration_info.dart index d25a403..9152366 100644 --- a/lib/pages/my_registeration_info.dart +++ b/lib/pages/my_registeration_info.dart @@ -6,7 +6,7 @@ import 'package:fcs/model/reg_model.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import '../util.dart'; import '../widget/localization/app_translations.dart'; import 'my_registeration.dart'; diff --git a/lib/pages/my_registeration_item.dart b/lib/pages/my_registeration_item.dart index a0d7d76..c7f76fd 100644 --- a/lib/pages/my_registeration_item.dart +++ b/lib/pages/my_registeration_item.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/notification_list.dart b/lib/pages/notification_list.dart index 8c498f6..fe4c8b9 100644 --- a/lib/pages/notification_list.dart +++ b/lib/pages/notification_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/model/notification_model.dart'; import 'package:fcs/vo/notification.dart' as Noti; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import '../widget/local_text.dart'; class NotificationList extends StatefulWidget { diff --git a/lib/pages/payment_editor.dart b/lib/pages/payment_editor.dart index c81ae09..275764c 100644 --- a/lib/pages/payment_editor.dart +++ b/lib/pages/payment_editor.dart @@ -1,5 +1,5 @@ import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/discount.dart'; import 'package:fcs/vo/payment_method.dart'; import 'package:flutter/material.dart'; @@ -9,7 +9,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class PaymentMethodEditor extends StatefulWidget { final PaymentMethod paymentMethod; diff --git a/lib/pages/payment_method_page.dart b/lib/pages/payment_method_page.dart index 0e18b06..86597ca 100644 --- a/lib/pages/payment_method_page.dart +++ b/lib/pages/payment_method_page.dart @@ -6,7 +6,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class PaymentMethodPage extends StatefulWidget { @override diff --git a/lib/pages/pd/pd_form.dart b/lib/pages/pd/pd_form.dart index 5d520a0..7b6a794 100644 --- a/lib/pages/pd/pd_form.dart +++ b/lib/pages/pd/pd_form.dart @@ -5,13 +5,13 @@ import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/log_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/pd_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/pd.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/my_data_table.dart'; import 'package:fcs/widget/progress.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; import 'pd_item.dart'; class PDForm extends StatefulWidget { diff --git a/lib/pages/pd/pd_item.dart b/lib/pages/pd/pd_item.dart index d39acbc..6c39801 100644 --- a/lib/pages/pd/pd_item.dart +++ b/lib/pages/pd/pd_item.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/pd.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/vo/storage.dart'; diff --git a/lib/pages/pd/pd_list.dart b/lib/pages/pd/pd_list.dart index 41565ff..c32b736 100644 --- a/lib/pages/pd/pd_list.dart +++ b/lib/pages/pd/pd_list.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/pd_model.dart'; import 'package:fcs/pages/pd/pd_form.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/phone_input.dart b/lib/pages/phone_input.dart index 60a18e7..d6e6e44 100644 --- a/lib/pages/phone_input.dart +++ b/lib/pages/phone_input.dart @@ -1,7 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/pickup_box_editor.dart b/lib/pages/pickup_box_editor.dart index 9116bcc..5660500 100644 --- a/lib/pages/pickup_box_editor.dart +++ b/lib/pages/pickup_box_editor.dart @@ -2,7 +2,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model_fcs/package_model.dart'; import 'package:fcs/pages/invoice/package_addition.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/pages_fcs/shipping_address_row.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/vo/cargo.dart'; @@ -16,7 +16,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'shipping_address_editor.dart'; class PickupBoxEditor extends StatefulWidget { diff --git a/lib/pages/pickup_editor.dart b/lib/pages/pickup_editor.dart index f927d36..3e3d574 100644 --- a/lib/pages/pickup_editor.dart +++ b/lib/pages/pickup_editor.dart @@ -2,7 +2,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/pickup_model.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model_fcs/box_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/pages_fcs/shipping_address_row.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/vo/cargo.dart'; @@ -23,7 +23,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'pickup_box_editor.dart'; class PickUpEditor extends StatefulWidget { diff --git a/lib/pages/pickup_list.dart b/lib/pages/pickup_list.dart index 0968627..4018abe 100644 --- a/lib/pages/pickup_list.dart +++ b/lib/pages/pickup_list.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'pickup_editor.dart'; class PickUpList extends StatefulWidget { diff --git a/lib/pages/pickup_list_row.dart b/lib/pages/pickup_list_row.dart index e817c0a..7ee9b8d 100644 --- a/lib/pages/pickup_list_row.dart +++ b/lib/pages/pickup_list_row.dart @@ -6,8 +6,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'buyer_info.dart'; diff --git a/lib/pages/pin_login_dialog.dart b/lib/pages/pin_login_dialog.dart index 2b48f84..c62bcc0 100644 --- a/lib/pages/pin_login_dialog.dart +++ b/lib/pages/pin_login_dialog.dart @@ -4,8 +4,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_verification_code_input/flutter_verification_code_input.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:quiver/async.dart'; class PinLoginDialog extends StatefulWidget { diff --git a/lib/pages/po/po_item.dart b/lib/pages/po/po_item.dart index 1eb2b1e..6f11ba9 100644 --- a/lib/pages/po/po_item.dart +++ b/lib/pages/po/po_item.dart @@ -3,14 +3,14 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; class POItem extends StatefulWidget { final POLine poLine; diff --git a/lib/pages/po/po_submission_form.dart b/lib/pages/po/po_submission_form.dart index 9699a41..daa47d2 100644 --- a/lib/pages/po/po_submission_form.dart +++ b/lib/pages/po/po_submission_form.dart @@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/pages/po/po_item.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/attach.dart'; import 'package:fcs/vo/po.dart'; import 'package:fcs/widget/img_file.dart'; @@ -22,7 +22,7 @@ import 'package:fcs/widget/progress.dart'; import '../../util.dart'; import '../document_log_page.dart'; -import '../util.dart'; +import '../../fcs/common/pages/util.dart'; import 'po_files.dart'; class POSubmissionForm extends StatefulWidget { diff --git a/lib/pages/product_edit_item.dart b/lib/pages/product_edit_item.dart index 1060c2e..df6596e 100644 --- a/lib/pages/product_edit_item.dart +++ b/lib/pages/product_edit_item.dart @@ -3,12 +3,12 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class ProductEditItem extends StatefulWidget { final Product product; diff --git a/lib/pages/products_list.dart b/lib/pages/products_list.dart index ef04b08..a11d783 100644 --- a/lib/pages/products_list.dart +++ b/lib/pages/products_list.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/products.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/products_list_edit.dart b/lib/pages/products_list_edit.dart index 25645da..ef45f73 100644 --- a/lib/pages/products_list_edit.dart +++ b/lib/pages/products_list_edit.dart @@ -3,12 +3,12 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'product_edit_item.dart'; class ProductsListEdit extends StatefulWidget { diff --git a/lib/pages/profile_edit.dart b/lib/pages/profile_edit.dart index 1190621..60bfde1 100644 --- a/lib/pages/profile_edit.dart +++ b/lib/pages/profile_edit.dart @@ -2,11 +2,11 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; typedef void ProfileCallback(); diff --git a/lib/pages/profile_setting.dart b/lib/pages/profile_setting.dart index 0f457bf..c705422 100644 --- a/lib/pages/profile_setting.dart +++ b/lib/pages/profile_setting.dart @@ -4,7 +4,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'add_pin_editor.dart'; import 'block_list.dart'; import 'chage_phone_number.dart'; diff --git a/lib/pages/quota_form.dart b/lib/pages/quota_form.dart index 73ff056..c5735d4 100644 --- a/lib/pages/quota_form.dart +++ b/lib/pages/quota_form.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/quota_page.dart b/lib/pages/quota_page.dart index 948e17e..6790715 100644 --- a/lib/pages/quota_page.dart +++ b/lib/pages/quota_page.dart @@ -3,12 +3,12 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class QuotaPage extends StatefulWidget { final Buyer buyer; diff --git a/lib/pages/report_user_editor.dart b/lib/pages/report_user_editor.dart index 0ebab33..d3999d0 100644 --- a/lib/pages/report_user_editor.dart +++ b/lib/pages/report_user_editor.dart @@ -2,14 +2,14 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/report_user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/report.dart'; import 'package:fcs/vo/report_user.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; typedef void FindCallBack(); diff --git a/lib/pages/report_user_list.dart b/lib/pages/report_user_list.dart index 01bc46f..2b08a3a 100644 --- a/lib/pages/report_user_list.dart +++ b/lib/pages/report_user_list.dart @@ -7,9 +7,9 @@ import 'package:fcs/widget/local_text.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'report_user_editor.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class ReportUserList extends StatefulWidget { final Report report; diff --git a/lib/pages/reset_password.dart b/lib/pages/reset_password.dart index 4e94c9a..a1eed65 100644 --- a/lib/pages/reset_password.dart +++ b/lib/pages/reset_password.dart @@ -8,8 +8,8 @@ import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart' as Theme; -import 'util.dart'; +import '../fcs/common/helpers/theme.dart' as Theme; +import '../fcs/common/pages/util.dart'; class ResetPasswordPage extends StatefulWidget { final String phoneNumber; diff --git a/lib/pages/search_page.dart b/lib/pages/search_page.dart index bd46881..459c9f0 100644 --- a/lib/pages/search_page.dart +++ b/lib/pages/search_page.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'buyer_list_row.dart'; diff --git a/lib/pages/setting_editor.dart b/lib/pages/setting_editor.dart index cbecf85..ba184c6 100644 --- a/lib/pages/setting_editor.dart +++ b/lib/pages/setting_editor.dart @@ -3,8 +3,8 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/setting.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/setting_editor_byOwner.dart b/lib/pages/setting_editor_byOwner.dart index 0c6401f..54af0e8 100644 --- a/lib/pages/setting_editor_byOwner.dart +++ b/lib/pages/setting_editor_byOwner.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/setting.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/pages/shipment_editor.dart b/lib/pages/shipment_editor.dart index bef76b6..8a12eb1 100644 --- a/lib/pages/shipment_editor.dart +++ b/lib/pages/shipment_editor.dart @@ -1,6 +1,6 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/shipment.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/label_widgets.dart'; @@ -13,7 +13,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class ShipmentEditor extends StatefulWidget { final Shipment shipment; diff --git a/lib/pages/shipment_list.dart b/lib/pages/shipment_list.dart index 778dbf7..405c5d2 100644 --- a/lib/pages/shipment_list.dart +++ b/lib/pages/shipment_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'shipment_editor.dart'; import 'shipment_list_row.dart'; diff --git a/lib/pages/shipment_list_row.dart b/lib/pages/shipment_list_row.dart index f2a4c0f..88d1a7d 100644 --- a/lib/pages/shipment_list_row.dart +++ b/lib/pages/shipment_list_row.dart @@ -1,4 +1,4 @@ -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/shipment.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; @@ -6,7 +6,7 @@ import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; import 'shipment_editor.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class ShipmentListRow extends StatefulWidget { final Shipment shipment; diff --git a/lib/pages/shipment_rates.dart b/lib/pages/shipment_rates.dart index eff95fe..f46bbbf 100644 --- a/lib/pages/shipment_rates.dart +++ b/lib/pages/shipment_rates.dart @@ -12,8 +12,8 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; -import 'util.dart'; +import '../fcs/common/helpers/theme.dart'; +import '../fcs/common/pages/util.dart'; class ShipmentRates extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages/shipment_rates_calculate.dart b/lib/pages/shipment_rates_calculate.dart index 07f5716..2c6da22 100644 --- a/lib/pages/shipment_rates_calculate.dart +++ b/lib/pages/shipment_rates_calculate.dart @@ -6,7 +6,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class ShipmentRatesCal extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages/shipment_rates_edit.dart b/lib/pages/shipment_rates_edit.dart index da5769f..594dae4 100644 --- a/lib/pages/shipment_rates_edit.dart +++ b/lib/pages/shipment_rates_edit.dart @@ -13,10 +13,10 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'custom_editor.dart'; import 'discount_by_weight_editor.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class ShipmentRatesEdit extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages/shipping_address_editor.dart b/lib/pages/shipping_address_editor.dart index 8c62c20..6e43ccc 100644 --- a/lib/pages/shipping_address_editor.dart +++ b/lib/pages/shipping_address_editor.dart @@ -1,11 +1,11 @@ -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/shipping_address.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class ShippingAddressEditor extends StatefulWidget { final ShippingAddress shippingAddress; diff --git a/lib/pages/sms_page.dart b/lib/pages/sms_page.dart index b186c3b..a6f39c2 100644 --- a/lib/pages/sms_page.dart +++ b/lib/pages/sms_page.dart @@ -3,10 +3,10 @@ import 'package:progress/progress.dart'; import 'package:provider/provider.dart'; import '../model/main_model.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import '../widget/localization/app_translations.dart'; import '../widget/progress.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class SmsCodePage extends StatefulWidget { final String id, password; diff --git a/lib/pages/staff_editor.dart b/lib/pages/staff_editor.dart index c8d4772..24d4b7b 100644 --- a/lib/pages/staff_editor.dart +++ b/lib/pages/staff_editor.dart @@ -4,13 +4,13 @@ import 'package:fcs/model/employee_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; typedef void FindCallBack(); diff --git a/lib/pages/staff_list.dart b/lib/pages/staff_list.dart index 1e696b4..c965990 100644 --- a/lib/pages/staff_list.dart +++ b/lib/pages/staff_list.dart @@ -6,14 +6,14 @@ import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/employee_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import '../vo/user.dart'; import '../widget/local_text.dart'; import 'staff_editor.dart'; -import 'util.dart'; +import '../fcs/common/pages/util.dart'; class StaffList extends StatefulWidget { @override diff --git a/lib/pages/storage/inventory_item.dart b/lib/pages/storage/inventory_item.dart index ed8fefe..27e91e8 100644 --- a/lib/pages/storage/inventory_item.dart +++ b/lib/pages/storage/inventory_item.dart @@ -5,7 +5,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/product_model.dart'; import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/inventory_line.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/vo/storage.dart'; diff --git a/lib/pages/storage/inventory_take.dart b/lib/pages/storage/inventory_take.dart index 86bd1ec..fe586c6 100644 --- a/lib/pages/storage/inventory_take.dart +++ b/lib/pages/storage/inventory_take.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/pages/storage/inventory_item.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/inventory_line.dart'; import 'package:fcs/vo/inventory_taking.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/storage/inventory_taking_list.dart b/lib/pages/storage/inventory_taking_list.dart index 193f2f7..39d243d 100644 --- a/lib/pages/storage/inventory_taking_list.dart +++ b/lib/pages/storage/inventory_taking_list.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/pages/storage/inventory_take.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/inventory_taking.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/storage/storage_addition.dart b/lib/pages/storage/storage_addition.dart index 9a8cf4d..72d206f 100644 --- a/lib/pages/storage/storage_addition.dart +++ b/lib/pages/storage/storage_addition.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/storage.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/pages/storage/storage_list.dart b/lib/pages/storage/storage_list.dart index 945bc42..697effe 100644 --- a/lib/pages/storage/storage_list.dart +++ b/lib/pages/storage/storage_list.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/storage_model.dart'; import 'package:fcs/pages/storage/storage_addition.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/vo/storage.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/term.dart b/lib/pages/term.dart index cd70908..aaeb684 100644 --- a/lib/pages/term.dart +++ b/lib/pages/term.dart @@ -4,12 +4,12 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/term_edit.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/progress.dart'; import 'package:zefyr/zefyr.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; typedef void ProfileCallback(); diff --git a/lib/pages/term_edit.dart b/lib/pages/term_edit.dart index bd88c3a..8a38e4d 100644 --- a/lib/pages/term_edit.dart +++ b/lib/pages/term_edit.dart @@ -5,11 +5,11 @@ import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:provider/provider.dart'; import 'package:quill_delta/quill_delta.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/widget/progress.dart'; import 'package:zefyr/zefyr.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; typedef void ProfileCallback(); diff --git a/lib/pages/test_list.dart b/lib/pages/test_list.dart index 77d0e52..0fea30a 100644 --- a/lib/pages/test_list.dart +++ b/lib/pages/test_list.dart @@ -3,7 +3,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/test_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; class TestList extends StatefulWidget { diff --git a/lib/pages/user_editor.dart b/lib/pages/user_editor.dart index f33275c..a97450e 100644 --- a/lib/pages/user_editor.dart +++ b/lib/pages/user_editor.dart @@ -4,8 +4,8 @@ import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/user_list.dart b/lib/pages/user_list.dart index 7f87d5e..1286f32 100644 --- a/lib/pages/user_list.dart +++ b/lib/pages/user_list.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/popup_menu.dart'; import 'package:fcs/vo/user.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/pages/user_search_page.dart b/lib/pages/user_search_page.dart index a3e9cd3..396281c 100644 --- a/lib/pages/user_search_page.dart +++ b/lib/pages/user_search_page.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/user.dart'; import 'user_editor.dart'; diff --git a/lib/pages_fcs/box_editor.dart b/lib/pages_fcs/box_editor.dart index 9816302..38b6d5b 100644 --- a/lib/pages_fcs/box_editor.dart +++ b/lib/pages_fcs/box_editor.dart @@ -3,7 +3,7 @@ import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model_fcs/package_model.dart'; import 'package:fcs/pages/invoice/package_addition.dart'; import 'package:fcs/pages/shipping_address_editor.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/vo/cargo.dart'; import 'package:fcs/vo/package.dart'; @@ -21,7 +21,7 @@ import 'package:provider/provider.dart'; import 'package:timeline_list/timeline.dart'; import 'package:timeline_list/timeline_model.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'shipping_address_row.dart'; class BoxEditor extends StatefulWidget { diff --git a/lib/pages_fcs/box_list.dart b/lib/pages_fcs/box_list.dart index 9ef6b13..6ee408c 100644 --- a/lib/pages_fcs/box_list.dart +++ b/lib/pages_fcs/box_list.dart @@ -14,7 +14,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'pickup_editor.dart'; class BoxList extends StatefulWidget { diff --git a/lib/pages_fcs/box_list_row.dart b/lib/pages_fcs/box_list_row.dart index ed67f36..af14bb6 100644 --- a/lib/pages_fcs/box_list_row.dart +++ b/lib/pages_fcs/box_list_row.dart @@ -1,5 +1,5 @@ import 'package:fcs/pages/invoice/package_info.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/pages_fcs/box_editor.dart'; import 'package:fcs/pages_fcs/package_editor.dart'; import 'package:fcs/vo/box.dart'; diff --git a/lib/pages_fcs/cargo_editor.dart b/lib/pages_fcs/cargo_editor.dart index 2d61cf2..cc6717b 100644 --- a/lib/pages_fcs/cargo_editor.dart +++ b/lib/pages_fcs/cargo_editor.dart @@ -1,9 +1,9 @@ -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/rate.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class CargoEditor extends StatefulWidget { final Rate rate; diff --git a/lib/pages_fcs/delivery_list.dart b/lib/pages_fcs/delivery_list.dart index dc60fc3..b3c4bac 100644 --- a/lib/pages_fcs/delivery_list.dart +++ b/lib/pages_fcs/delivery_list.dart @@ -8,7 +8,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'delivery_list_row.dart'; class DeliverList extends StatefulWidget { diff --git a/lib/pages_fcs/delivery_list_row.dart b/lib/pages_fcs/delivery_list_row.dart index ba265a1..f08a564 100644 --- a/lib/pages_fcs/delivery_list_row.dart +++ b/lib/pages_fcs/delivery_list_row.dart @@ -1,4 +1,4 @@ -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/pages_fcs/box_editor.dart'; import 'package:fcs/vo/box.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; diff --git a/lib/pages_fcs/package_editor.dart b/lib/pages_fcs/package_editor.dart index bf62d4e..dd9d24a 100644 --- a/lib/pages_fcs/package_editor.dart +++ b/lib/pages_fcs/package_editor.dart @@ -2,7 +2,7 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/pages/barcode_screen_page.dart'; import 'package:fcs/pages/shipping_address_editor.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/pages_fcs/shipping_address_row.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/vo/shipping_address.dart'; @@ -18,7 +18,7 @@ import 'package:provider/provider.dart'; import 'package:timeline_list/timeline.dart'; import 'package:timeline_list/timeline_model.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'shipping_address_list.dart'; class PackageEditor extends StatefulWidget { diff --git a/lib/pages_fcs/package_list.dart b/lib/pages_fcs/package_list.dart index 1d995dd..5ad04d9 100644 --- a/lib/pages_fcs/package_list.dart +++ b/lib/pages_fcs/package_list.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:provider/provider.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class PackageList extends StatefulWidget { @override diff --git a/lib/pages_fcs/package_list_row.dart b/lib/pages_fcs/package_list_row.dart index c125e9e..59e767f 100644 --- a/lib/pages_fcs/package_list_row.dart +++ b/lib/pages_fcs/package_list_row.dart @@ -1,5 +1,5 @@ import 'package:fcs/pages/invoice/package_info.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/pages_fcs/package_editor.dart'; import 'package:fcs/vo/package.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; diff --git a/lib/pages_fcs/pickup_editor.dart b/lib/pages_fcs/pickup_editor.dart index b162ffb..e9ecf49 100644 --- a/lib/pages_fcs/pickup_editor.dart +++ b/lib/pages_fcs/pickup_editor.dart @@ -1,6 +1,6 @@ import 'package:fcs/model/main_model.dart'; import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/pages/util.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/vo/pickup.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -10,7 +10,7 @@ import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class PickUpEditor extends StatefulWidget { final PickUp pickUp; diff --git a/lib/pages_fcs/shipping_address_list.dart b/lib/pages_fcs/shipping_address_list.dart index f0e7e1c..c6ec8ce 100644 --- a/lib/pages_fcs/shipping_address_list.dart +++ b/lib/pages_fcs/shipping_address_list.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class ShippingAddressList extends StatefulWidget { @override diff --git a/lib/pages_fcs/shipping_address_row.dart b/lib/pages_fcs/shipping_address_row.dart index 0d4e8cf..57d5adf 100644 --- a/lib/pages_fcs/shipping_address_row.dart +++ b/lib/pages_fcs/shipping_address_row.dart @@ -1,5 +1,5 @@ import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/shipping_address.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; diff --git a/lib/reports/report_field_list_page.dart b/lib/reports/report_field_list_page.dart index 9121572..6c3e7e5 100644 --- a/lib/reports/report_field_list_page.dart +++ b/lib/reports/report_field_list_page.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/report_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/report.dart'; class ReportFieldListPage extends StatefulWidget { diff --git a/lib/reports/report_filter_list_page.dart b/lib/reports/report_filter_list_page.dart index 56e5da9..a3c3726 100644 --- a/lib/reports/report_filter_list_page.dart +++ b/lib/reports/report_filter_list_page.dart @@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class ReportFilterListPage extends StatefulWidget { final Report report; diff --git a/lib/reports/report_list.dart b/lib/reports/report_list.dart index cd0baad..b20e2e5 100644 --- a/lib/reports/report_list.dart +++ b/lib/reports/report_list.dart @@ -11,7 +11,7 @@ import 'package:fcs/widget/popupmenu.dart'; import 'package:flutter/material.dart'; import 'package:fcs/widget/progress.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; import 'reports_data_table.dart'; class ReportList extends StatefulWidget { diff --git a/lib/reports/reports_data_table.dart b/lib/reports/reports_data_table.dart index cf13625..4612e9e 100644 --- a/lib/reports/reports_data_table.dart +++ b/lib/reports/reports_data_table.dart @@ -12,8 +12,8 @@ import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/report_model.dart'; -import 'package:fcs/pages/util.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/report.dart'; import 'package:fcs/widget/my_data_table.dart'; import 'package:fcs/widget/progress.dart'; diff --git a/lib/widget/NetworkConnectivity.dart b/lib/widget/NetworkConnectivity.dart index 4888bc0..2e87def 100644 --- a/lib/widget/NetworkConnectivity.dart +++ b/lib/widget/NetworkConnectivity.dart @@ -4,7 +4,7 @@ import 'dart:io'; import 'package:connectivity/connectivity.dart'; import 'package:logging/logging.dart'; import 'package:fcs/config.dart'; -import 'package:fcs/fcs/common/api_helper.dart'; +import 'package:fcs/fcs/common/helpers/api_helper.dart'; class NetworkConnectivity { final log = Logger('NetworkConnectivity'); diff --git a/lib/widget/fcs_text_field.dart b/lib/widget/fcs_text_field.dart index cecfd2b..ec6dedd 100644 --- a/lib/widget/fcs_text_field.dart +++ b/lib/widget/fcs_text_field.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class FCSTextField extends StatelessWidget { final TextEditingController controller; diff --git a/lib/widget/fcs_text_field_readonly.dart b/lib/widget/fcs_text_field_readonly.dart index 9ae2b83..fc03344 100644 --- a/lib/widget/fcs_text_field_readonly.dart +++ b/lib/widget/fcs_text_field_readonly.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../fcs/common/theme.dart'; +import '../fcs/common/helpers/theme.dart'; class FCSTextFieldReadOnly extends StatelessWidget { final TextEditingController controller; diff --git a/lib/widget/label_widgets.dart b/lib/widget/label_widgets.dart index 9fa4eb2..7365b9f 100644 --- a/lib/widget/label_widgets.dart +++ b/lib/widget/label_widgets.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/img_url.dart'; import 'package:fcs/widget/local_text.dart'; diff --git a/lib/widget/local_text.dart b/lib/widget/local_text.dart index 4875ac5..d82d907 100644 --- a/lib/widget/local_text.dart +++ b/lib/widget/local_text.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'localization/app_translations.dart'; diff --git a/lib/widget/local_text_field.dart b/lib/widget/local_text_field.dart index 596b0cc..10306c9 100644 --- a/lib/widget/local_text_field.dart +++ b/lib/widget/local_text_field.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'localization/app_translations.dart'; diff --git a/lib/widget/number_cell.dart b/lib/widget/number_cell.dart index 54d43e5..dde4f01 100644 --- a/lib/widget/number_cell.dart +++ b/lib/widget/number_cell.dart @@ -1,6 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:intl/intl.dart'; -import 'package:fcs/fcs/common/theme.dart' as theme; +import 'package:fcs/fcs/common/helpers/theme.dart' as theme; class NumberCell extends StatelessWidget { final int number; diff --git a/lib/widget/products.dart b/lib/widget/products.dart index f6740dd..88c7d1d 100644 --- a/lib/widget/products.dart +++ b/lib/widget/products.dart @@ -7,7 +7,7 @@ import 'package:provider/provider.dart'; import 'package:fcs/charts/lines.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/pages/po/po_submission_form.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/widget/products_price_table.dart b/lib/widget/products_price_table.dart index 59a75dc..a2fa915 100644 --- a/lib/widget/products_price_table.dart +++ b/lib/widget/products_price_table.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/product.dart'; import 'package:fcs/widget/local_text.dart'; import 'package:fcs/widget/localization/app_translations.dart'; diff --git a/lib/widget/progress.dart b/lib/widget/progress.dart index 3f35d0a..8f4a9bd 100644 --- a/lib/widget/progress.dart +++ b/lib/widget/progress.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:progress/progress.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; class LocalProgress extends Progress { LocalProgress({bool inAsyncCall, Widget child}) diff --git a/lib/widget/show_img.dart b/lib/widget/show_img.dart index a0a8717..4f8bb1b 100644 --- a/lib/widget/show_img.dart +++ b/lib/widget/show_img.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:photo_view/photo_view.dart'; -import 'package:fcs/fcs/common/theme.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; class ShowImage extends StatefulWidget { final String url; From 9423df2cd132f415f117974d052c306aa4327680 Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Sun, 6 Sep 2020 02:36:57 +0630 Subject: [PATCH 06/22] add messaging --- lib/app.dart | 159 ++++++++++++------ .../common/data/providers/messaging_fcm.dart | 66 ++++++++ lib/fcs/common/pages/signin/code_page.dart | 2 +- lib/fcs/common/pages/signin/signin_page.dart | 2 +- lib/fcs/common/pages/welcome_page.dart | 4 +- .../common/pages/widgets/action_button.dart | 4 +- lib/fcs/common/services/messaging_imp.dart | 25 +++ .../common/services/messaging_service.dart | 7 + lib/fcs/common/services/services.dart | 5 + lib/main-dev.dart | 1 + lib/main-local.dart | 5 +- lib/main-prod.dart | 1 + pubspec.yaml | 1 + 13 files changed, 224 insertions(+), 58 deletions(-) create mode 100644 lib/fcs/common/data/providers/messaging_fcm.dart create mode 100644 lib/fcs/common/services/messaging_imp.dart create mode 100644 lib/fcs/common/services/messaging_service.dart diff --git a/lib/app.dart b/lib/app.dart index d769bd3..9f597ac 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,6 +1,9 @@ +import 'dart:io'; + import 'package:fcs/fcs/common/localization/app_translations_delegate.dart'; import 'package:fcs/fcs/common/localization/transalation.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/services/services.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/delivery_model.dart'; import 'package:fcs/model/discount_model.dart'; @@ -17,6 +20,7 @@ import 'package:fcs/model_fcs/package_model.dart'; import 'package:fcs/pages/email_page.dart'; import 'package:fcs/pages/login_page.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:provider/provider.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart' as fcs; @@ -82,6 +86,8 @@ class _AppState extends State { final DiscountModel discountModel = new DiscountModel(); AppTranslationsDelegate _newLocaleDelegate; + static FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = + FlutterLocalNotificationsPlugin(); @override void initState() { @@ -121,6 +127,64 @@ class _AppState extends State { ..addModel(customerModel) ..addModel(discountModel); this.mainModel.init(); + + _initLocalNotifications(); + Services.instance.messagingService.init((message) { + print("Message from FCM:$message"); + _showNotification(message); + }); + } + + _initLocalNotifications() { + var initializationSettingsAndroid = + new AndroidInitializationSettings('@mipmap/ic_launcher'); + var initializationSettingsIOS = new IOSInitializationSettings(); + var initializationSettings = new InitializationSettings( + initializationSettingsAndroid, initializationSettingsIOS); + _flutterLocalNotificationsPlugin.initialize(initializationSettings); + } + + static Future _showNotification(Map message) async { + var pushTitle; + var pushText; + var action; + + if (Platform.isAndroid) { + var nodeData = message['notification']; + pushTitle = nodeData['title']; + pushText = nodeData['body']; + action = nodeData['action']; + } else { + pushTitle = message['title']; + pushText = message['body']; + action = message['action']; + } + print("AppPushs params pushTitle : $pushTitle"); + print("AppPushs params pushText : $pushText"); + print("AppPushs params pushAction : $action"); + + // @formatter:off + var platformChannelSpecificsAndroid = new AndroidNotificationDetails( + 'your channel id', 'your channel name', 'your channel description', + playSound: true, + enableVibration: true, + importance: Importance.Max, + priority: Priority.High); + // @formatter:on + var platformChannelSpecificsIos = + new IOSNotificationDetails(presentSound: true); + var platformChannelSpecifics = new NotificationDetails( + platformChannelSpecificsAndroid, platformChannelSpecificsIos); + + new Future.delayed(Duration.zero, () { + _flutterLocalNotificationsPlugin.show( + 0, + pushTitle, + pushText, + platformChannelSpecifics, + payload: 'No_Sound', + ); + }); } void onLocaleChange(Locale locale) { @@ -146,55 +210,50 @@ class _AppState extends State { @override Widget build(BuildContext context) { return MultiProvider( - providers: [ - ChangeNotifierProvider.value(value: mainModel), - ChangeNotifierProvider.value(value: userModel), - ChangeNotifierProvider.value(value: productModel), - ChangeNotifierProvider.value(value: employeeModel), - ChangeNotifierProvider.value(value: poSubmissionModel), - ChangeNotifierProvider.value(value: doModel), - ChangeNotifierProvider.value(value: storageModel), - ChangeNotifierProvider.value(value: pdModel), - ChangeNotifierProvider.value(value: lanuguageModel), - ChangeNotifierProvider.value(value: regModel), - ChangeNotifierProvider.value(value: buyerModel), - ChangeNotifierProvider.value(value: notificationModel), - ChangeNotifierProvider.value(value: chartModel), - ChangeNotifierProvider.value(value: deliveryModel), - ChangeNotifierProvider.value(value: logModel), - ChangeNotifierProvider.value(value: phoneDeviceModel), - ChangeNotifierProvider.value(value: reportModel), - ChangeNotifierProvider.value(value: announcementModel), - ChangeNotifierProvider.value(value: reportUserModel), - ChangeNotifierProvider.value(value: pickUpModel), - ChangeNotifierProvider.value(value: shipmentRateModel), - ChangeNotifierProvider.value(value: shipmentModel), - ChangeNotifierProvider.value(value: packageModel), - ChangeNotifierProvider.value(value: boxModel), - ChangeNotifierProvider.value(value: messageModel), - ChangeNotifierProvider.value(value: invoiceModel), - ChangeNotifierProvider.value(value: customerModel), - ChangeNotifierProvider.value(value: discountModel), - ChangeNotifierProvider.value(value: testModel), - ChangeNotifierProvider.value(value: mainModel2), - ], - child: Consumer( - builder: (BuildContext context, LanguageModel value, Widget child) { - return MaterialApp( - debugShowCheckedModeBanner: false, - title: 'Ok Energy', - routes: route(context), - theme: ThemeData(accentColor: Colors.black), - localizationsDelegates: [ - _newLocaleDelegate, - //provides localised strings - GlobalMaterialLocalizations.delegate, - //provides RTL support - GlobalWidgetsLocalizations.delegate, - ], - supportedLocales: Translation().supportedLocales()); - }, - ), - ); + providers: [ + ChangeNotifierProvider.value(value: mainModel), + ChangeNotifierProvider.value(value: userModel), + ChangeNotifierProvider.value(value: productModel), + ChangeNotifierProvider.value(value: employeeModel), + ChangeNotifierProvider.value(value: poSubmissionModel), + ChangeNotifierProvider.value(value: doModel), + ChangeNotifierProvider.value(value: storageModel), + ChangeNotifierProvider.value(value: pdModel), + ChangeNotifierProvider.value(value: lanuguageModel), + ChangeNotifierProvider.value(value: regModel), + ChangeNotifierProvider.value(value: buyerModel), + ChangeNotifierProvider.value(value: notificationModel), + ChangeNotifierProvider.value(value: chartModel), + ChangeNotifierProvider.value(value: deliveryModel), + ChangeNotifierProvider.value(value: logModel), + ChangeNotifierProvider.value(value: phoneDeviceModel), + ChangeNotifierProvider.value(value: reportModel), + ChangeNotifierProvider.value(value: announcementModel), + ChangeNotifierProvider.value(value: reportUserModel), + ChangeNotifierProvider.value(value: pickUpModel), + ChangeNotifierProvider.value(value: shipmentRateModel), + ChangeNotifierProvider.value(value: shipmentModel), + ChangeNotifierProvider.value(value: packageModel), + ChangeNotifierProvider.value(value: boxModel), + ChangeNotifierProvider.value(value: messageModel), + ChangeNotifierProvider.value(value: invoiceModel), + ChangeNotifierProvider.value(value: customerModel), + ChangeNotifierProvider.value(value: discountModel), + ChangeNotifierProvider.value(value: testModel), + ChangeNotifierProvider.value(value: mainModel2), + ], + child: MaterialApp( + debugShowCheckedModeBanner: false, + title: 'FCS', + routes: route(context), + theme: ThemeData(accentColor: Colors.black), + localizationsDelegates: [ + _newLocaleDelegate, + //provides localised strings + GlobalMaterialLocalizations.delegate, + //provides RTL support + GlobalWidgetsLocalizations.delegate, + ], + supportedLocales: Translation().supportedLocales())); } } diff --git a/lib/fcs/common/data/providers/messaging_fcm.dart b/lib/fcs/common/data/providers/messaging_fcm.dart new file mode 100644 index 0000000..2b31272 --- /dev/null +++ b/lib/fcs/common/data/providers/messaging_fcm.dart @@ -0,0 +1,66 @@ +import 'package:fcs/fcs/common/services/messaging_service.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:logging/logging.dart'; + +final msgLog = Logger('backgroundMessageHandler'); + +Future backgroundMessageHandler(Map message) async { + if (message.containsKey('data')) { + // Handle data message + final dynamic data = message['data']; + msgLog.info("background onMessage: $message"); + } + + if (message.containsKey('notification')) { + // Handle notification message + final dynamic notification = message['notification']; + } +} + +class MessagingFCM { + final log = Logger('MessagingFCM'); + + FirebaseMessaging _firebaseMessaging; + + MessagingFCM(OnNotify onMessage, {OnNotify onLaunch, OnNotify onResume}) { + _firebaseMessaging = FirebaseMessaging(); + _firebaseMessaging.configure( + onMessage: (Map message) async { + log.info("onMessage: $message"); + if (onMessage != null) _onNotify(message, onMessage); + }, + onBackgroundMessage: backgroundMessageHandler, + onLaunch: (Map message) async { + log.info("onLaunch: $message"); + if (onLaunch != null) _onNotify(message, onLaunch); + }, + onResume: (Map message) async { + log.info("onResume: $message"); + if (onResume != null) _onNotify(message, onResume); + }, + ); + _firebaseMessaging.requestNotificationPermissions( + const IosNotificationSettings( + sound: true, badge: true, alert: true, provisional: true)); + _firebaseMessaging.onIosSettingsRegistered + .listen((IosNotificationSettings settings) { + log.info("Settings registered: $settings"); + }); + _firebaseMessaging.getToken().then((String token) { + log.info("Messaging Token:$token"); + }); + } + + Future subscribeToTopic(String topic) { + return _firebaseMessaging.subscribeToTopic(topic); + } + + _onNotify(Map message, OnNotify onNotify) { + var data = message['data'] ?? message; + onNotify(Map.from(message)); + } + + Future unsubscribeToTopic(String topic) { + return _firebaseMessaging.unsubscribeFromTopic(topic); + } +} diff --git a/lib/fcs/common/pages/signin/code_page.dart b/lib/fcs/common/pages/signin/code_page.dart index e681af0..f534eea 100644 --- a/lib/fcs/common/pages/signin/code_page.dart +++ b/lib/fcs/common/pages/signin/code_page.dart @@ -5,6 +5,7 @@ import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:pin_input_text_field/pin_input_text_field.dart'; @@ -12,7 +13,6 @@ import 'package:provider/provider.dart'; import 'signup_page.dart'; import '../../helpers/theme.dart'; -import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; const resend_count_sec = 5; diff --git a/lib/fcs/common/pages/signin/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart index a869786..ba1d2b0 100644 --- a/lib/fcs/common/pages/signin/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -2,6 +2,7 @@ import 'package:country_code_picker/country_code_picker.dart'; import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -9,7 +10,6 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import '../../helpers/theme.dart'; -import '../../../../widget/local_text.dart'; import '../../../../widget/progress.dart'; import 'code_page.dart'; import '../util.dart'; diff --git a/lib/fcs/common/pages/welcome_page.dart b/lib/fcs/common/pages/welcome_page.dart index d7a9077..f5bc2b6 100644 --- a/lib/fcs/common/pages/welcome_page.dart +++ b/lib/fcs/common/pages/welcome_page.dart @@ -1,6 +1,6 @@ +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart'; -import 'package:fcs/model/language_model.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/localization/transalation.dart'; @@ -194,7 +194,7 @@ class _WelcomePageState extends State { } _langChange(index) { - var languageModel = Provider.of(context); + var languageModel = Provider.of(context, listen: false); languageModel.saveLanguage(Translation().supportedLanguages[index]); setState(() { isSelected.asMap().forEach((i, e) { diff --git a/lib/fcs/common/pages/widgets/action_button.dart b/lib/fcs/common/pages/widgets/action_button.dart index 66fcc0d..44ed0d5 100644 --- a/lib/fcs/common/pages/widgets/action_button.dart +++ b/lib/fcs/common/pages/widgets/action_button.dart @@ -23,8 +23,8 @@ class ActionButton extends StatelessWidget { onTap: btnCallback != null ? btnCallback : () => {}, child: Container( width: 120, - height: 150, - padding: EdgeInsets.only(top:15.0), + height: 130, + padding: EdgeInsets.only(top: 10.0, left: 5, right: 5), decoration: new BoxDecoration( color: Colors.transparent, borderRadius: new BorderRadius.only( diff --git a/lib/fcs/common/services/messaging_imp.dart b/lib/fcs/common/services/messaging_imp.dart new file mode 100644 index 0000000..2d9940b --- /dev/null +++ b/lib/fcs/common/services/messaging_imp.dart @@ -0,0 +1,25 @@ +import 'package:fcs/fcs/common/data/providers/messaging_fcm.dart'; + +import 'messaging_service.dart'; + +class MessagingServiceImp implements MessagingService { + MessagingServiceImp(); + + static MessagingFCM messagingFCM; + + @override + void init(onMessage, {OnNotify onLaunch, OnNotify onResume}) { + messagingFCM = + MessagingFCM(onMessage, onLaunch: onLaunch, onResume: onResume); + } + + @override + Future subscribe(String topic) { + return messagingFCM.unsubscribeToTopic(topic); + } + + @override + Future unsubscribe(String topic) { + return messagingFCM.unsubscribeToTopic(topic); + } +} diff --git a/lib/fcs/common/services/messaging_service.dart b/lib/fcs/common/services/messaging_service.dart new file mode 100644 index 0000000..f22ecd4 --- /dev/null +++ b/lib/fcs/common/services/messaging_service.dart @@ -0,0 +1,7 @@ +typedef OnNotify(Map message); + +abstract class MessagingService { + void init(OnNotify onMessage, {OnNotify onLaunch, OnNotify onResume}); + Future subscribe(String topic); + Future unsubscribe(String topic); +} diff --git a/lib/fcs/common/services/services.dart b/lib/fcs/common/services/services.dart index 912d376..560525d 100644 --- a/lib/fcs/common/services/services.dart +++ b/lib/fcs/common/services/services.dart @@ -1,5 +1,7 @@ import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; import 'package:fcs/fcs/common/services/auth_imp.dart'; +import 'package:fcs/fcs/common/services/messaging_imp.dart'; +import 'package:fcs/fcs/common/services/messaging_service.dart'; import 'auth_service.dart'; @@ -7,13 +9,16 @@ class Services { static final Services instance = Services._(); AuthService _authService; + MessagingService _messagingService; Services._() { _authService = AuthServiceImp( authFb: AuthFb.instance, connectivity: null, userFBDataProvider: null, userLocalDataProvider: null); + _messagingService = MessagingServiceImp(); } AuthService get authService => _authService; + MessagingService get messagingService => _messagingService; } diff --git a/lib/main-dev.dart b/lib/main-dev.dart index 9ebdbaf..cd69cbe 100644 --- a/lib/main-dev.dart +++ b/lib/main-dev.dart @@ -5,6 +5,7 @@ import 'package:logging/logging.dart'; import 'app.dart'; void main() { + WidgetsFlutterBinding.ensureInitialized(); Config( flavor: Flavor.DEV, color: Colors.blue, diff --git a/lib/main-local.dart b/lib/main-local.dart index eb80cc2..5d60521 100644 --- a/lib/main-local.dart +++ b/lib/main-local.dart @@ -1,14 +1,15 @@ +import 'package:fcs/config.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; -import 'package:fcs/config.dart'; import 'app.dart'; void main() { + WidgetsFlutterBinding.ensureInitialized(); Config( flavor: Flavor.DEV, color: Colors.blue, - apiURL: "http://192.168.1.155:7777", + apiURL: "http://192.168.100.11:7777", level: Level.ALL); runApp(App()); } diff --git a/lib/main-prod.dart b/lib/main-prod.dart index 7314fac..34ef854 100644 --- a/lib/main-prod.dart +++ b/lib/main-prod.dart @@ -6,6 +6,7 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'app.dart'; void main() { + WidgetsFlutterBinding.ensureInitialized(); Config( flavor: Flavor.PRODUCTION, color: Colors.blue, diff --git a/pubspec.yaml b/pubspec.yaml index 1ce2236..c377aaf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -73,6 +73,7 @@ dependencies: timeline_list: ^0.0.5 barcode_scan: ^3.0.1 flutter_pdfview: ^1.0.3 + flutter_local_notifications: ^1.4.4+4 From a35d22269609d22e719ad7e417106311874af3c1 Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Mon, 7 Sep 2020 00:47:02 +0630 Subject: [PATCH 07/22] add contact page --- assets/local/localization_en.json | 11 +- assets/local/localization_mu.json | 12 +- lib/app.dart | 46 ++- lib/fcs/common/pages/contact.dart | 222 +++++++------ lib/fcs/common/pages/contact_editor.dart | 297 ++++++++++++++++++ .../common/pages/widgets/bottom_widgets.dart | 10 +- 6 files changed, 488 insertions(+), 110 deletions(-) create mode 100644 lib/fcs/common/pages/contact_editor.dart diff --git a/assets/local/localization_en.json b/assets/local/localization_en.json index 0385fa4..309d9df 100644 --- a/assets/local/localization_en.json +++ b/assets/local/localization_en.json @@ -279,7 +279,7 @@ "document.by":"By", "document.desc":"Description", - "contact.title":"Contacts", + "contact.title":"Contact Us", "contact.phone.title":"Input Phone Number", "contact.phone":"Phone Number", "contact.phone.confim":"Call {0}?", @@ -295,7 +295,16 @@ "contact.open.confrim":"Open '{0}'?", "contact.bank.accounts":"Bank Accounts Info", "contact.address":"Address", + "contact.usa.address":"USA Address", + "contact.mm.address":"Myanmar Address", "contact.delivery.phone":"Delivery Phone", + "contact.fcs.email":"FCS Email", + "contact.callus":"Call Us", + "contact.findus":"Find Us", + "contact.emailus":"Email Us", + "contact.visitus":"Visit Us", + + "contact.edit.title":"Edit Contact Us", "term.title":"Terms", "manual.title":"Manual", diff --git a/assets/local/localization_mu.json b/assets/local/localization_mu.json index 5a76f64..8546cf0 100644 --- a/assets/local/localization_mu.json +++ b/assets/local/localization_mu.json @@ -277,6 +277,8 @@ "contact.title":"ဆက်သွယ်ရန်", "contact.phone.title":"ဖုန်းနံပါတ်ထည့်သွင်းရန်", "contact.phone":"ဖုန်းနံပါတ်", + "contact.usa.phone": "အမေရိကား ဖုန်းနံပါတ်", + "contact.mm.phone": "မြန်မာ ဖုန်းနံပါတ်", "contact.phone.confim":"ဖုန်းနံပါတ် '{0}' ကို ခေါ်မလား?", "contact.phone.empty":"ကျေးဇူးပြု၍ ဖုန်းနံပါတ်ထည့်ပါ", "contact.email":"အီးမေးလ်", @@ -291,7 +293,15 @@ "contact.bank.accounts":"ဘဏ်အကောင့်အချက်အလက်", "contact.address":"လိပ်စာ", "contact.delivery.phone":"သီလဝါ ဆီထုတ် ဖုန်းနံပါတ်", + "contact.usa.address":"အမေရိကား လိပ်စာ", + "contact.mm.address":"မြန်မာ လိပ်စာ", + "contact.fcs.email":"FCS အီးမေးလ်", + "contact.callus":"ခေါ်ပါ", + "contact.findus":"တည်နေရာ", + "contact.emailus":"အီးမေးလ်", + "contact.visitus":"ကြည့်ပါ", + "contact.edit.title":"ဆက်သွယ်ရန် ပြုပြင်ခြင်း", "term.title":"စည်းကမ်းချက်များ", "manual.title":"လက်စွဲစာအုပ်", @@ -594,8 +604,6 @@ "fcs.profile": "ပရိုဖိုင်", - "contact.usa.phone": "ယူအက်စ်အေ ဖုန်းနံပါတ်", - "contact.mm.phone": "မြန်မာ ဖုန်းနံပါတ်", "payment.title": "ငွေပေးချေခြင်း", "payment.date": "ရက်စွဲ", diff --git a/lib/app.dart b/lib/app.dart index 9f597ac..7ab63a3 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/fcs/common/localization/app_translations_delegate.dart'; import 'package:fcs/fcs/common/localization/transalation.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; @@ -19,6 +20,7 @@ import 'package:fcs/model_fcs/message_model.dart'; import 'package:fcs/model_fcs/package_model.dart'; import 'package:fcs/pages/email_page.dart'; import 'package:fcs/pages/login_page.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; @@ -242,18 +244,36 @@ class _AppState extends State { ChangeNotifierProvider.value(value: testModel), ChangeNotifierProvider.value(value: mainModel2), ], - child: MaterialApp( - debugShowCheckedModeBanner: false, - title: 'FCS', - routes: route(context), - theme: ThemeData(accentColor: Colors.black), - localizationsDelegates: [ - _newLocaleDelegate, - //provides localised strings - GlobalMaterialLocalizations.delegate, - //provides RTL support - GlobalWidgetsLocalizations.delegate, - ], - supportedLocales: Translation().supportedLocales())); + child: Consumer( + builder: (context, value, child) { + return CupertinoApp( + debugShowCheckedModeBanner: false, + title: 'FCS', + theme: CupertinoThemeData( + textTheme: CupertinoTextThemeData( + navActionTextStyle: TextStyle(color: Colors.white), + navTitleTextStyle: TextStyle( + color: Colors.white, + fontSize: value.isEng ? 20 : 18, + fontWeight: FontWeight.bold), + navLargeTitleTextStyle: TextStyle( + color: Colors.white, + fontSize: value.isEng ? 40 : 24, + fontWeight: FontWeight.bold), + primaryColor: primaryColor, + textStyle: TextStyle(color: Colors.white), + actionTextStyle: TextStyle(color: Colors.white), + )), + routes: route(context), + localizationsDelegates: [ + _newLocaleDelegate, + //provides localised strings + GlobalMaterialLocalizations.delegate, + //provides RTL support + GlobalWidgetsLocalizations.delegate, + ], + supportedLocales: Translation().supportedLocales()); + }, + )); } } diff --git a/lib/fcs/common/pages/contact.dart b/lib/fcs/common/pages/contact.dart index 0a8e28c..5da0215 100644 --- a/lib/fcs/common/pages/contact.dart +++ b/lib/fcs/common/pages/contact.dart @@ -1,9 +1,12 @@ import 'package:fcs/fcs/common/domain/entities/setting.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/contact_editor.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/fcs/common/pages/widgets/progress.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:package_info/package_info.dart'; @@ -21,53 +24,69 @@ class _ContactState extends State { @override Widget build(BuildContext context) { Setting setting = Provider.of(context).setting; - + bool isEng = Provider.of(context).isEng; return LocalProgress( inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - elevation: 0, - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), + child: CupertinoPageScaffold( + child: NestedScrollView( + headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { + return [ + CupertinoSliverNavigationBar( + backgroundColor: primaryColor, + actionsForegroundColor: Colors.white, + largeTitle: Text( + AppTranslations.of(context).text('contact.title'), + ), + trailing: GestureDetector( + onTap: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => ContactEditor( + setting: setting, + ), + )), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + CupertinoIcons.pen, + size: 23, + color: Colors.white, + ), + )), + ), + ]; + }, + body: ListView( + children: [ + itemTitle("contact.callus"), + link(setting.usaContactNumber, Icons.phone_forwarded, + onTap: () => _call(setting.usaContactNumber), + label: LocalText(context, "contact.usa.phone", + color: primaryColor, fontWeight: FontWeight.bold)), + link(setting.mmContactNumber, Icons.phone_forwarded, + onTap: () => _call( + setting.mmContactNumber, + ), + label: LocalText(context, "contact.mm.phone", + color: primaryColor, fontWeight: FontWeight.bold)), + itemTitle("contact.findus"), + link(setting.usaAddress, Icons.location_on, + label: LocalText(context, "contact.usa.address", + color: primaryColor, fontWeight: FontWeight.bold)), + link(setting.mmAddress, Icons.location_on, + label: LocalText(context, "contact.mm.address", + color: primaryColor, fontWeight: FontWeight.bold)), + itemTitle("contact.emailus"), + link(setting.emailAddress, Icons.email, + onTap: () => _email(setting.emailAddress), + label: LocalText(context, "contact.fcs.email", + color: primaryColor, fontWeight: FontWeight.bold)), + itemTitle("contact.visitus"), + link(setting.facebookLink, FontAwesomeIcons.facebook, + onTap: () => _openLink(setting.facebookLink), + label: LocalText(context, "contact.facebook", + color: primaryColor, fontWeight: FontWeight.bold)), + ], ), - title: LocalText( - context, - "contact", - fontSize: 25, - color: Colors.white, - ), - ), - body: ListView( - children: [ - link(setting.usaContactNumber, Icons.phone_forwarded, - onTap: () => _call(setting.usaContactNumber), - label: LocalText( - context, - "contact.usa.phone", - color: primaryColor, - )), - link(setting.mmContactNumber, Icons.phone_forwarded, - onTap: () => _call( - setting.mmContactNumber, - ), - label: LocalText( - context, - "contact.mm.phone", - color: primaryColor, - )), - link( - setting.usaAddress, - Icons.location_on, - ), - link(setting.mmAddress, Icons.location_on), - link(setting.emailAddress, Icons.email, - onTap: () => _email(setting.emailAddress)), - link(setting.facebookLink, FontAwesomeIcons.facebook, - onTap: () => _openLink(setting.facebookLink)), - ], ), ), ); @@ -75,53 +94,77 @@ class _ContactState extends State { Widget link(String text, IconData iconData, {Function() onTap, Widget label}) { - return Padding( - padding: const EdgeInsets.only(left: 18.0, bottom: 5), - child: InkWell( - onTap: () => onTap != null ? onTap() : null, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - iconData, - ), + return Material( + child: Padding( + padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), + child: Container( + decoration: BoxDecoration( + border: Border.all(color: Colors.grey, width: 0.8), + borderRadius: BorderRadius.all( + Radius.circular(5.0) // <--- border radius here ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, + ), + child: InkWell( + onTap: () => onTap != null ? onTap() : null, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( children: [ - label == null - ? Container() - : Padding( - padding: EdgeInsets.fromLTRB(10, 10, 10, 0), - child: label, - ), Padding( padding: const EdgeInsets.all(8.0), - child: Text( - text == null ? "" : text, - overflow: TextOverflow.ellipsis, - maxLines: 5, - style: TextStyle(fontSize: 14.0), + child: Icon( + iconData, + color: primaryColor, ), ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + label == null + ? Container() + : Padding( + padding: EdgeInsets.fromLTRB(10, 10, 10, 0), + child: label, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + text == null ? "" : text, + overflow: TextOverflow.ellipsis, + maxLines: 5, + style: TextStyle( + fontSize: 14.0, + ), + ), + ), + ], + ), + SizedBox( + width: 5, + ), + onTap == null + ? Container() + : Icon( + Icons.open_in_new, + color: Colors.grey, + size: 15, + ) ], ), - SizedBox( - width: 5, - ), - onTap == null - ? Container() - : Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ) - ], - ), - )), + )), + ), + ), + ); + } + + Widget itemTitle(String textKey) { + return Padding( + padding: const EdgeInsets.only(left: 18.0, top: 15, bottom: 5), + child: Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black54), + ), ); } @@ -132,19 +175,14 @@ class _ContactState extends State { } _call(String phone) { - showConfirmDialog( - context, "contact.phone.confim", () => launch("tel:$phone"), - translationVariables: ["$phone"]); + launch("tel:$phone"); } _email(String email) { - showConfirmDialog( - context, "contact.email.configm", () => launch("mailto:$email"), - translationVariables: ["$email"]); + launch("mailto:$email"); } _openLink(String link) { - showConfirmDialog(context, "contact.open.confrim", () => launch("$link"), - translationVariables: ["$link"]); + launch("$link"); } } diff --git a/lib/fcs/common/pages/contact_editor.dart b/lib/fcs/common/pages/contact_editor.dart new file mode 100644 index 0000000..ab56dae --- /dev/null +++ b/lib/fcs/common/pages/contact_editor.dart @@ -0,0 +1,297 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/pages/phone_input.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:provider/provider.dart'; + +class ContactEditor extends StatefulWidget { + final Setting setting; + const ContactEditor({this.setting}); + @override + _ContactEditorState createState() => _ContactEditorState(); +} + +class _ContactEditorState extends State { + TextEditingController _email = new TextEditingController(); + TextEditingController _facebook = new TextEditingController(); + TextEditingController _website = new TextEditingController(); + TextEditingController _address = new TextEditingController(); + TextEditingController _deliveryPhone = new TextEditingController(); + + final _formKey = GlobalKey(); + bool _isLoading = false; + + List phones = new List(); + List _initPhones = new List(); + + @override + void initState() { + super.initState(); + if (widget.setting != null) { + this._initPhones = widget.setting.phones; + _email.text = widget.setting.emailAddress; + _facebook.text = widget.setting.facebookLink; + _website.text = widget.setting.website; + _deliveryPhone.text = widget.setting.deliveryPhone; + _address.text = widget.setting.address; + + phones.clear(); + // _initPhones.forEach((p) { + // phones.add(p); + // }); + } + } + + @override + Widget build(BuildContext context) { + var languageModel = Provider.of(context); + + final emailBox = TextFormField( + controller: _email, + autofocus: false, + cursorColor: primaryColor, + style: textStyle, + decoration: new InputDecoration( + labelText: AppTranslations.of(context).text('contact.email'), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + icon: Icon( + Icons.email, + color: primaryColor, + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + validator: (value) { + if (value.isEmpty) { + return AppTranslations.of(context).text('contact.email.empty'); + } + return null; + }, + ); + + final faceBookBox = TextFormField( + controller: _facebook, + autofocus: false, + cursorColor: primaryColor, + style: textStyle, + decoration: new InputDecoration( + labelText: AppTranslations.of(context).text('contact.facebook'), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + icon: Icon( + FontAwesomeIcons.facebook, + color: primaryColor, + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + validator: (value) { + if (value.isEmpty) { + return AppTranslations.of(context).text('contact.facebook.empty'); + } + return null; + }, + ); + + final googleBox = TextFormField( + controller: _website, + autofocus: false, + cursorColor: primaryColor, + style: textStyle, + decoration: new InputDecoration( + labelText: AppTranslations.of(context).text('contact.google'), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + icon: Icon( + FontAwesomeIcons.chrome, + color: primaryColor, + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + validator: (value) { + if (value.isEmpty) { + return AppTranslations.of(context).text('contact.google.empty'); + } + return null; + }, + ); + + final addPhoneNumber = ListTile( + contentPadding: EdgeInsets.only(top: 15), + title: ButtonTheme( + height: 45, + child: RaisedButton( + color: Colors.white, + onPressed: () async { + var phone = await showDialog( + context: context, builder: (_) => PhoneEditor()); + _save(phone); + }, + child: Text("Add Phone", + style: TextStyle( + fontSize: 18, + )), + ), + )); + + return LocalProgress( + inAsyncCall: _isLoading, + child: CupertinoPageScaffold( + navigationBar: CupertinoNavigationBar( + middle: Text( + AppTranslations.of(context).text('contact.edit.title'), + style: TextStyle(color: CupertinoColors.activeBlue), + ), + ), + // child: NestedScrollView( + // headerSliverBuilder: + // (BuildContext context, bool innerBoxIsScrolled) { + // return [ + // // CupertinoNavigationBar(), + // CupertinoSliverNavigationBar( + // largeTitle: Text( + // AppTranslations.of(context).text('contact.edit.title'), + // ), + // trailing: CupertinoButton( + // onPressed: () => {}, + // child: Icon( + // CupertinoIcons.pen, + // )), + // ) + // ]; + // }, + // body: Text("text"), + // appBar: AppBar( + // backgroundColor: primaryColor, + // title: LocalText( + // context, + // "contact.title", + // fontSize: 20, + // color: Colors.white, + // ), + // actions: [ + // IconButton( + // icon: Icon(Icons.send), + // onPressed: () { + // if (!_formKey.currentState.validate()) return; + // showConfirmDialog(context, "contact.confrim", () { + // _submit(); + // }); + // }) + // ], + // ), + child: Form( + key: _formKey, + child: ListView( + shrinkWrap: true, + padding: EdgeInsets.only(left: 24.0, right: 24.0), + children: [ + // this.phones.isNotEmpty + // ? ConstrainedBox( + // constraints: BoxConstraints(maxHeight: 1000), + // child: ListView.builder( + // shrinkWrap: true, + // itemBuilder: (context, index) { + // return Stack( + // alignment: const Alignment(1.0, 1.0), + // children: [ + // new TextField( + // controller: new TextEditingController( + // text: this.phones[index]), + // cursorColor: primaryColor, + // readOnly: true, + // decoration: new InputDecoration( + // border: InputBorder.none, + // focusedBorder: InputBorder.none, + // icon: Icon( + // Icons.phone, + // color: primaryColor, + // ), + // ), + // ), + // new FlatButton( + // onPressed: () { + // setState(() { + // this.phones.remove(this.phones[index]); + // }); + // }, + // child: new Icon( + // Icons.cancel, + // size: 25, + // )) + // ], + // ); + // }, + // itemCount: this.phones.length, + // ), + // ) + // : Container(), + // addPhoneNumber, + // LocalTextField( + // textEditingController: _deliveryPhone, + // icon: Icon( + // Icons.phone_forwarded, + // color: primaryColor, + // ), + // labelKey: "contact.delivery.phone", + // ), + // emailBox, + // faceBookBox, + // googleBox, + // LocalTextField( + // textEditingController: _address, + // icon: Icon( + // Icons.location_on, + // color: primaryColor, + // ), + // labelKey: "contact.address", + // maxLines: 3, + // ), + ], + ), + ))); + } + + _save(String phone) { + if (phone == null) return; + setState(() { + this.phones.add(phone); + }); + } + + _submit() async { + setState(() { + _isLoading = true; + }); + try { + widget.setting.emailAddress = _email.text; + widget.setting.facebookLink = _facebook.text; + widget.setting.website = _website.text; + widget.setting.phones = this.phones; + widget.setting.address = _address.text; + widget.setting.deliveryPhone = _deliveryPhone.text; + var mainModel = Provider.of(context); + // await mainModel.updateContact(widget.setting); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } +} diff --git a/lib/fcs/common/pages/widgets/bottom_widgets.dart b/lib/fcs/common/pages/widgets/bottom_widgets.dart index 81b91b0..486e0ef 100644 --- a/lib/fcs/common/pages/widgets/bottom_widgets.dart +++ b/lib/fcs/common/pages/widgets/bottom_widgets.dart @@ -2,6 +2,7 @@ import 'package:fcs/fcs/common/pages/contact.dart'; import 'package:fcs/fcs/common/pages/term.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_icons/flutter_icons.dart'; @@ -14,13 +15,18 @@ class BottomWidgets extends StatelessWidget { children: [ InkWell( onTap: () { - Navigator.of(context).push(BottomUpPageRoute(Contact())); + Navigator.of(context).push(CupertinoPageRoute( + fullscreenDialog: true, + builder: (context) => Contact(), + )); }, child: _buildSmallButton("Contact Us", SimpleLineIcons.support), ), InkWell( onTap: () { - Navigator.of(context).push(BottomUpPageRoute(Term())); + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => Term(), + )); }, child: _buildSmallButton("Terms of service", Icons.info_outline), ), From cdefe7c06dc78cbac9862bfc4a1e9d30924e4b12 Mon Sep 17 00:00:00 2001 From: sainw Date: Mon, 7 Sep 2020 16:05:28 +0630 Subject: [PATCH 08/22] add contact --- assets/local/localization_en.json | 81 ++--- assets/local/localization_mu.json | 80 ++--- lib/app.dart | 38 ++- lib/fcs/common/data/providers/auth_fb.dart | 15 +- lib/fcs/common/domain/entities/faq.dart | 29 ++ lib/fcs/common/domain/vo/contact.dart | 45 +++ lib/fcs/common/domain/vo/term.dart | 25 ++ lib/fcs/common/helpers/firebase_helper.dart | 12 + lib/fcs/common/helpers/theme.dart | 19 +- lib/fcs/common/pages/contact.dart | 188 ----------- .../common/pages/contact/contact_editor.dart | 164 ++++++++++ .../common/pages/contact/contact_page.dart | 132 ++++++++ .../pages/contact/model/contact_model.dart | 17 + lib/fcs/common/pages/contact/widgets.dart | 92 ++++++ lib/fcs/common/pages/contact_editor.dart | 297 ------------------ lib/fcs/common/pages/faq/faq_detail_page.dart | 105 +++++++ lib/fcs/common/pages/faq/faq_edit_page.dart | 149 +++++++++ lib/fcs/common/pages/faq/faq_page.dart | 124 ++++++++ lib/fcs/common/pages/faq/model/faq_model.dart | 17 + lib/fcs/common/pages/home_page.dart | 15 +- lib/fcs/common/pages/model/base_model.dart | 4 +- lib/fcs/common/pages/model/main_model.dart | 5 +- lib/fcs/common/pages/term.dart | 173 ---------- .../common/pages/term/model/term_model.dart | 17 + .../common/pages/{ => term}/term_edit.dart | 53 ++-- lib/fcs/common/pages/term/term_page.dart | 107 +++++++ lib/fcs/common/pages/util.dart | 7 +- .../common/pages/widgets/bottom_widgets.dart | 25 +- lib/fcs/common/pages/widgets/input_text.dart | 64 ++++ lib/fcs/common/pages/widgets/local_text.dart | 28 +- lib/fcs/common/services/auth_imp.dart | 9 +- lib/fcs/common/services/auth_service.dart | 3 +- lib/main-local.dart | 2 +- 33 files changed, 1330 insertions(+), 811 deletions(-) create mode 100644 lib/fcs/common/domain/entities/faq.dart create mode 100644 lib/fcs/common/domain/vo/contact.dart create mode 100644 lib/fcs/common/domain/vo/term.dart create mode 100644 lib/fcs/common/helpers/firebase_helper.dart delete mode 100644 lib/fcs/common/pages/contact.dart create mode 100644 lib/fcs/common/pages/contact/contact_editor.dart create mode 100644 lib/fcs/common/pages/contact/contact_page.dart create mode 100644 lib/fcs/common/pages/contact/model/contact_model.dart create mode 100644 lib/fcs/common/pages/contact/widgets.dart delete mode 100644 lib/fcs/common/pages/contact_editor.dart create mode 100644 lib/fcs/common/pages/faq/faq_detail_page.dart create mode 100644 lib/fcs/common/pages/faq/faq_edit_page.dart create mode 100644 lib/fcs/common/pages/faq/faq_page.dart create mode 100644 lib/fcs/common/pages/faq/model/faq_model.dart delete mode 100644 lib/fcs/common/pages/term.dart create mode 100644 lib/fcs/common/pages/term/model/term_model.dart rename lib/fcs/common/pages/{ => term}/term_edit.dart (69%) create mode 100644 lib/fcs/common/pages/term/term_page.dart create mode 100644 lib/fcs/common/pages/widgets/input_text.dart diff --git a/assets/local/localization_en.json b/assets/local/localization_en.json index 309d9df..59c7247 100644 --- a/assets/local/localization_en.json +++ b/assets/local/localization_en.json @@ -1,4 +1,49 @@ { + "contact.btn":"Contact Us", + "contact.title":"Contact Us", + "contact.phone.title":"Input Phone Number", + "contact.phone":"Phone Number", + "contact.phone.confim":"Call {0}?", + "contact.phone.empty":"Please enter phone number", + "contact.email":"Email", + "contact.email.configm":"Email to '{0}'?", + "contact.email.empty":"Please enter email", + "contact.facebook":"Facebook", + "contact.facebook.empty":"Please enter facebook url", + "contact.google":"Website", + "contact.google.empty":"Please enter website url", + "contact.confrim":"Confirm update contact?", + "contact.open.confrim":"Open '{0}'?", + "contact.bank.accounts":"Bank Accounts Info", + "contact.address":"Address", + "contact.usa.address":"USA Address", + "contact.mm.address":"Myanmar Address", + "contact.delivery.phone":"Delivery Phone", + "contact.fcs.email":"FCS Email", + "contact.callus":"Call Us", + "contact.findus":"Find Us", + "contact.emailus":"Email Us", + "contact.visitus":"Visit Us", + "contact.usa.phone": "USA Phone", + "contact.mm.phone": "Myanmar Phone", + + "contact.edit.title":"Edit Contact Us", + + "term":"Terms of service", + "term.btn":"Terms of service", + + "faq.btn":"FAQs", + "faq.title":"Frequently Asked Questions", + + "faq.add.title":"New FAQ", + "faq.edit.title":"Edit FAQ", + "faq.edit.eng":"English", + "faq.edit.mm":"Myanmar", + "faq.edit.question":"Question", + "faq.edit.answer":"Answer", + + + "btn.save": "Save", "btn.approve":"Approve", @@ -267,8 +312,6 @@ "buyer.delete.confirm":"Delete buyer request?", "buyer.allocate.quota.confirm":"Allocate Quota?", - "term.agree_btn":"Agree", - "term.iagree":"I agree on terms and condition.", "noti.title":"Notifications", "noti.list.title":"NOTIFICATIONS", @@ -279,34 +322,8 @@ "document.by":"By", "document.desc":"Description", - "contact.title":"Contact Us", - "contact.phone.title":"Input Phone Number", - "contact.phone":"Phone Number", - "contact.phone.confim":"Call {0}?", - "contact.phone.empty":"Please enter phone number", - "contact.email":"Email", - "contact.email.configm":"Email to '{0}'?", - "contact.email.empty":"Please enter email", - "contact.facebook":"Facebook", - "contact.facebook.empty":"Please enter facebook url", - "contact.google":"Website", - "contact.google.empty":"Please enter website url", - "contact.confrim":"Confirm update contact?", - "contact.open.confrim":"Open '{0}'?", - "contact.bank.accounts":"Bank Accounts Info", - "contact.address":"Address", - "contact.usa.address":"USA Address", - "contact.mm.address":"Myanmar Address", - "contact.delivery.phone":"Delivery Phone", - "contact.fcs.email":"FCS Email", - "contact.callus":"Call Us", - "contact.findus":"Find Us", - "contact.emailus":"Email Us", - "contact.visitus":"Visit Us", - "contact.edit.title":"Edit Contact Us", - - "term.title":"Terms", + "manual.title":"Manual", "myreg.title":"My\nRegistration", "storage.title":"Storages", @@ -574,20 +591,14 @@ "invoice.add_box":"Add Box", "invoice.add_package":"Add Package", - "term":"TERMS", - "term.btn":"Terms of service", "customer.list.title":"CUSTOMERS", "customer.form.title":"CUSTOMER", "customer.invite":"Invite", - "contact": "CONTACT US", - "fcs.btn": "FCS Profile", "fcs.profile": "FCS PROFILE", - "contact.usa.phone": "USA Phone", - "contact.mm.phone": "Myanmar Phone", "payment.title": "PAYMENT", "payment.date": "Date", diff --git a/assets/local/localization_mu.json b/assets/local/localization_mu.json index 8546cf0..20e09f0 100644 --- a/assets/local/localization_mu.json +++ b/assets/local/localization_mu.json @@ -1,4 +1,48 @@ { + "contact.btn":"ဆက်သွယ်ရန်", + "contact.title":"ဆက်သွယ်ရန်", + "contact.phone.title":"ဖုန်းနံပါတ်ထည့်သွင်းရန်", + "contact.phone":"ဖုန်းနံပါတ်", + "contact.usa.phone": "အမေရိကား ဖုန်းနံပါတ်", + "contact.mm.phone": "မြန်မာ ဖုန်းနံပါတ်", + "contact.phone.confim":"ဖုန်းနံပါတ် '{0}' ကို ခေါ်မလား?", + "contact.phone.empty":"ကျေးဇူးပြု၍ ဖုန်းနံပါတ်ထည့်ပါ", + "contact.email":"အီးမေးလ်", + "contact.email.configm":"အီးမေးလ် '{0}' ကိုပို့ မလား?", + "contact.email.empty":"ကျေးဇူးပြု၍ အီးမေးလ်ထည့်ပါ", + "contact.facebook":"ဖေ့စ်ဘွတ်ခ်", + "contact.facebook.empty":"ကျေးဇူးပြုပြီး ဖေ့စ်ဘွတ်ခ် လင့်ခ် ကိုရိုက်ထည့်ပါ", + "contact.google":"ဝဘ်ဆိုက်", + "contact.google.empty":"ကျေးဇူးပြုပြီး ဝဘ်ဆိုက် လင့်ခ် ကိုရိုက်ထည့်ပါ", + "contact.confrim":"ဆက်သွယ်ခြင်း ကိုပြင်မည်လား?", + "contact.open.confrim":"'{0}' ကိုဖွင့် မလား?", + "contact.bank.accounts":"ဘဏ်အကောင့်အချက်အလက်", + "contact.address":"လိပ်စာ", + "contact.delivery.phone":"သီလဝါ ဆီထုတ် ဖုန်းနံပါတ်", + "contact.usa.address":"အမေရိကား လိပ်စာ", + "contact.mm.address":"မြန်မာ လိပ်စာ", + "contact.fcs.email":"FCS အီးမေးလ်", + "contact.callus":"ခေါ်ရန်", + "contact.findus":"တည်နေရာ", + "contact.emailus":"အီးမေးလ်", + "contact.visitus":"ကြည့်ပါ", + + "contact.edit.title":"ဆက်သွယ်ရန် ပြုပြင်ခြင်း", + + "term":"စည်းကမ်းချက်များ", + "term.btn":"စည်းကမ်းချက်များ", + + "faq.btn":"မေးလေ့ရှိသောမေးခွန်းများ", + "faq.title":"မေးလေ့ရှိသောမေးခွန်းများ", + + "faq.add.title":"မေးလေ့ရှိသောမေးခွန်း အသစ်", + "faq.edit.title":"မေးလေ့ရှိသောမေးခွန်း ပြုပြင်ခြင်း", + "faq.edit.eng":"အင်္ဂလိပ်", + "faq.edit.mm":"မြန်မာ", + "faq.edit.question":"မေးခွန်း", + "faq.edit.answer":"အဖြေ", + + "btn.save":"သိမ်းဆည်းရန်", "btn.approve":"အတည်ပြုရန်", @@ -262,9 +306,6 @@ "buyer.delete.confirm":"ဝယ်ယူသူပယ်ဖျက်မည်လား?", "buyer.allocate.quota.confirm":"ခွဲတမ်းသတ်မှတ်မည်လား?", - "term.agree_btn":"သဘောတူပါသည်", - "term.iagree":"ကျွန်တော် သဘောတူပါသည်", - "noti.title":"အသိပေးချက်များ", "noti.list.title":"NOTIFICATIONS", "log.title":"မှတ်တမ်းများ", @@ -274,36 +315,7 @@ "document.by":"အားဖြင့်", "document.desc":"ဖော်ပြချက်", - "contact.title":"ဆက်သွယ်ရန်", - "contact.phone.title":"ဖုန်းနံပါတ်ထည့်သွင်းရန်", - "contact.phone":"ဖုန်းနံပါတ်", - "contact.usa.phone": "အမေရိကား ဖုန်းနံပါတ်", - "contact.mm.phone": "မြန်မာ ဖုန်းနံပါတ်", - "contact.phone.confim":"ဖုန်းနံပါတ် '{0}' ကို ခေါ်မလား?", - "contact.phone.empty":"ကျေးဇူးပြု၍ ဖုန်းနံပါတ်ထည့်ပါ", - "contact.email":"အီးမေးလ်", - "contact.email.configm":"အီးမေးလ် '{0}' ကိုပို့ မလား?", - "contact.email.empty":"ကျေးဇူးပြု၍ အီးမေးလ်ထည့်ပါ", - "contact.facebook":"ဖေ့စ်ဘွတ်ခ်", - "contact.facebook.empty":"ကျေးဇူးပြုပြီး ဖေ့စ်ဘွတ်ခ် လင့်ခ် ကိုရိုက်ထည့်ပါ", - "contact.google":"ဝဘ်ဆိုက်", - "contact.google.empty":"ကျေးဇူးပြုပြီး ဝဘ်ဆိုက် လင့်ခ် ကိုရိုက်ထည့်ပါ", - "contact.confrim":"ဆက်သွယ်ခြင်း ကိုပြင်မည်လား?", - "contact.open.confrim":"'{0}' ကိုဖွင့် မလား?", - "contact.bank.accounts":"ဘဏ်အကောင့်အချက်အလက်", - "contact.address":"လိပ်စာ", - "contact.delivery.phone":"သီလဝါ ဆီထုတ် ဖုန်းနံပါတ်", - "contact.usa.address":"အမေရိကား လိပ်စာ", - "contact.mm.address":"မြန်မာ လိပ်စာ", - "contact.fcs.email":"FCS အီးမေးလ်", - "contact.callus":"ခေါ်ပါ", - "contact.findus":"တည်နေရာ", - "contact.emailus":"အီးမေးလ်", - "contact.visitus":"ကြည့်ပါ", - "contact.edit.title":"ဆက်သွယ်ရန် ပြုပြင်ခြင်း", - - "term.title":"စည်းကမ်းချက်များ", "manual.title":"လက်စွဲစာအုပ်", "myreg.title":"ကိုယ်ရေး\nအချက်အလက်", "storage.title":"သိုလှောင်ကန်များ", @@ -594,14 +606,10 @@ "invoice.add_package":"Add Package", "invoice.add_box":"Add Box", - "term":"စည်းကမ်းချက်များ", - "term.btn":"စည်းကမ်းချက်များ", "customer.list.title":"ဝယ်ယူသူများ", "customer.form.title":"ဝယ်ယူသူ", - "contact": "ဆက်သွယ်ရန်", - "fcs.profile": "ပရိုဖိုင်", diff --git a/lib/app.dart b/lib/app.dart index 7ab63a3..6c454a2 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -3,7 +3,9 @@ import 'dart:io'; import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/fcs/common/localization/app_translations_delegate.dart'; import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/pages/contact/model/contact_model.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/term/model/term_model.dart'; import 'package:fcs/fcs/common/services/services.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/delivery_model.dart'; @@ -55,8 +57,10 @@ class App extends StatefulWidget { class _AppState extends State { final fcs.MainModel mainModel2 = new fcs.MainModel(); - + final ContactModel contactModel =new ContactModel(); + final TermModel termModel=new TermModel(); final MainModel mainModel = new MainModel(); + final UserModel userModel = new UserModel(); final ProductModel productModel = new ProductModel(); final EmployeeModel employeeModel = new EmployeeModel(); @@ -243,27 +247,29 @@ class _AppState extends State { ChangeNotifierProvider.value(value: discountModel), ChangeNotifierProvider.value(value: testModel), ChangeNotifierProvider.value(value: mainModel2), + ChangeNotifierProvider.value(value: contactModel), + ChangeNotifierProvider.value(value: termModel), ], child: Consumer( builder: (context, value, child) { return CupertinoApp( debugShowCheckedModeBanner: false, title: 'FCS', - theme: CupertinoThemeData( - textTheme: CupertinoTextThemeData( - navActionTextStyle: TextStyle(color: Colors.white), - navTitleTextStyle: TextStyle( - color: Colors.white, - fontSize: value.isEng ? 20 : 18, - fontWeight: FontWeight.bold), - navLargeTitleTextStyle: TextStyle( - color: Colors.white, - fontSize: value.isEng ? 40 : 24, - fontWeight: FontWeight.bold), - primaryColor: primaryColor, - textStyle: TextStyle(color: Colors.white), - actionTextStyle: TextStyle(color: Colors.white), - )), + // theme: CupertinoThemeData( + // textTheme: CupertinoTextThemeData( + // navActionTextStyle: TextStyle(color: Colors.white), + // navTitleTextStyle: TextStyle( + // color: Colors.white, + // fontSize: value.isEng ? 20 : 18, + // fontWeight: FontWeight.w600), + // navLargeTitleTextStyle: TextStyle( + // color: Colors.white, + // fontSize: value.isEng ? 40 : 24, + // fontWeight: FontWeight.w600), + // primaryColor: primaryColor, + // textStyle: TextStyle(color: Colors.white), + // actionTextStyle: TextStyle(color: Colors.white), + // )), routes: route(context), localizationsDelegates: [ _newLocaleDelegate, diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/fcs/common/data/providers/auth_fb.dart index 2129b10..281ad5a 100644 --- a/lib/fcs/common/data/providers/auth_fb.dart +++ b/lib/fcs/common/data/providers/auth_fb.dart @@ -5,6 +5,7 @@ import 'package:fcs/fcs/common/domain/constants.dart'; import 'package:fcs/fcs/common/domain/entities/auth_result.dart' as fcs; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart'; import 'package:firebase_auth/firebase_auth.dart'; @@ -126,7 +127,7 @@ class AuthFb { return getUser(refreshIdToken: true); } - static Future getToken() async { + Future getToken() async { FirebaseUser firebaseUser = await _fb.currentUser(); IdTokenResult token = await firebaseUser.getIdToken(); return token.token; @@ -143,4 +144,16 @@ class AuthFb { // _listSetting(); return Setting.fromMap(snap.data); } + + Stream settings() async* { + Stream snapshot = Firestore.instance + .collection(config_collection) + .document(setting_doc_id) + .snapshots(); + + await for (var snap in snapshot) { + Setting setting = Setting.fromMap(snap.data); + yield setting; + } + } } diff --git a/lib/fcs/common/domain/entities/faq.dart b/lib/fcs/common/domain/entities/faq.dart new file mode 100644 index 0000000..4c694d7 --- /dev/null +++ b/lib/fcs/common/domain/entities/faq.dart @@ -0,0 +1,29 @@ +class FAQ { + String id; + String questionEng; + String questionMm; + String answerEng; + String answerMm; + + String question(bool isEng) => isEng?questionEng:questionMm; + String answer(bool isEng) => isEng?answerEng:answerMm; + + Map images; + FAQ({this.id,this.questionEng,this.questionMm,this.answerEng,this.answerMm,this.images}); + + + Map toMap() { + return { + 'question_eng': questionEng, + 'answer_eng': answerEng, + 'question_mm': questionMm, + 'answer_mm': answerMm, + 'images': images, + }; + } + + @override + String toString() { + return 'FAQ{id: $id, questionEng: $questionEng,questionMm:$questionMm}'; + } +} diff --git a/lib/fcs/common/domain/vo/contact.dart b/lib/fcs/common/domain/vo/contact.dart new file mode 100644 index 0000000..1135dcc --- /dev/null +++ b/lib/fcs/common/domain/vo/contact.dart @@ -0,0 +1,45 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; + +class Contact { + String usaAddress; + String mmAddress; + String usaContactNumber; + String mmContactNumber; + String emailAddress; + String facebookLink; + + Contact({ + this.usaAddress, + this.mmAddress, + this.usaContactNumber, + this.mmContactNumber, + this.emailAddress, + this.facebookLink, + }); + + factory Contact.fromSetting(Setting setting) { + return Contact( + usaContactNumber: setting.usaContactNumber, + mmContactNumber: setting.mmContactNumber, + usaAddress: setting.usaAddress, + mmAddress: setting.mmAddress, + emailAddress: setting.emailAddress, + facebookLink: setting.facebookLink); + } + + Map toMap() { + return { + 'usa_address': usaAddress, + 'mm_address': mmAddress, + 'usa_contact_number': usaContactNumber, + 'mm_contact_number': mmContactNumber, + 'email_address': emailAddress, + 'facebook_link': facebookLink, + }; + } + + @override + String toString() { + return 'Contact{usa_address:$usaAddress,mm_address:$mmAddress}'; + } +} diff --git a/lib/fcs/common/domain/vo/term.dart b/lib/fcs/common/domain/vo/term.dart new file mode 100644 index 0000000..30a5830 --- /dev/null +++ b/lib/fcs/common/domain/vo/term.dart @@ -0,0 +1,25 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; + +class Term { + String term; + + Term({ + this.term, + }); + + factory Term.fromSetting(Setting setting) { + return Term( + term: setting.terms,); + } + + Map toMap() { + return { + 'terms': term, + }; + } + + @override + String toString() { + return 'Contact{terms:$term}'; + } +} diff --git a/lib/fcs/common/helpers/firebase_helper.dart b/lib/fcs/common/helpers/firebase_helper.dart new file mode 100644 index 0000000..883cbf3 --- /dev/null +++ b/lib/fcs/common/helpers/firebase_helper.dart @@ -0,0 +1,12 @@ +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:logging/logging.dart'; + +final log = Logger('firebaseHelper'); + +final FirebaseAuth auth = FirebaseAuth.instance; + +Future getToken() async { + FirebaseUser firebaseUser = await auth.currentUser(); + IdTokenResult token = await firebaseUser.getIdToken(); + return token.token; +} diff --git a/lib/fcs/common/helpers/theme.dart b/lib/fcs/common/helpers/theme.dart index 1c84937..996cca8 100644 --- a/lib/fcs/common/helpers/theme.dart +++ b/lib/fcs/common/helpers/theme.dart @@ -11,22 +11,25 @@ const buttonBkColor = const Color(0xFF268944); const labelColor = const Color(0xFF757575); const TextStyle labelStyle = - TextStyle(fontSize: 13, color: Colors.grey, fontWeight: FontWeight.w500); + TextStyle(fontSize: 23, color: primaryColor, fontWeight: FontWeight.w500); +const TextStyle labelStyleMM = TextStyle( + fontSize: 23, + color: primaryColor, + fontWeight: FontWeight.w500, + fontFamily: "MyanmarUnicode"); +const TextStyle subMenuStyle = + TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500); +const TextStyle subMenuStyleMM = + TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500, + fontFamily: "MyanmarUnicode"); const TextStyle welcomeLabelStyle = TextStyle(fontSize: 23, color: primaryColor, fontWeight: FontWeight.w500); const TextStyle welcomeSubLabelStyle = TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500); -const TextStyle subMenuStyle = - TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500); const TextStyle siginButtonStyle = TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500); -const TextStyle labelStyleMM = TextStyle( - fontSize: 13, - color: Colors.grey, - fontWeight: FontWeight.w500, - fontFamily: "MyanmarUnicode"); TextStyle newLabelStyle( {Color color, diff --git a/lib/fcs/common/pages/contact.dart b/lib/fcs/common/pages/contact.dart deleted file mode 100644 index 5da0215..0000000 --- a/lib/fcs/common/pages/contact.dart +++ /dev/null @@ -1,188 +0,0 @@ -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/contact_editor.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:package_info/package_info.dart'; -import 'package:provider/provider.dart'; -import 'package:url_launcher/url_launcher.dart'; - -class Contact extends StatefulWidget { - @override - _ContactState createState() => _ContactState(); -} - -class _ContactState extends State { - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - Setting setting = Provider.of(context).setting; - bool isEng = Provider.of(context).isEng; - return LocalProgress( - inAsyncCall: _isLoading, - child: CupertinoPageScaffold( - child: NestedScrollView( - headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { - return [ - CupertinoSliverNavigationBar( - backgroundColor: primaryColor, - actionsForegroundColor: Colors.white, - largeTitle: Text( - AppTranslations.of(context).text('contact.title'), - ), - trailing: GestureDetector( - onTap: () => - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => ContactEditor( - setting: setting, - ), - )), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - CupertinoIcons.pen, - size: 23, - color: Colors.white, - ), - )), - ), - ]; - }, - body: ListView( - children: [ - itemTitle("contact.callus"), - link(setting.usaContactNumber, Icons.phone_forwarded, - onTap: () => _call(setting.usaContactNumber), - label: LocalText(context, "contact.usa.phone", - color: primaryColor, fontWeight: FontWeight.bold)), - link(setting.mmContactNumber, Icons.phone_forwarded, - onTap: () => _call( - setting.mmContactNumber, - ), - label: LocalText(context, "contact.mm.phone", - color: primaryColor, fontWeight: FontWeight.bold)), - itemTitle("contact.findus"), - link(setting.usaAddress, Icons.location_on, - label: LocalText(context, "contact.usa.address", - color: primaryColor, fontWeight: FontWeight.bold)), - link(setting.mmAddress, Icons.location_on, - label: LocalText(context, "contact.mm.address", - color: primaryColor, fontWeight: FontWeight.bold)), - itemTitle("contact.emailus"), - link(setting.emailAddress, Icons.email, - onTap: () => _email(setting.emailAddress), - label: LocalText(context, "contact.fcs.email", - color: primaryColor, fontWeight: FontWeight.bold)), - itemTitle("contact.visitus"), - link(setting.facebookLink, FontAwesomeIcons.facebook, - onTap: () => _openLink(setting.facebookLink), - label: LocalText(context, "contact.facebook", - color: primaryColor, fontWeight: FontWeight.bold)), - ], - ), - ), - ), - ); - } - - Widget link(String text, IconData iconData, - {Function() onTap, Widget label}) { - return Material( - child: Padding( - padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), - child: Container( - decoration: BoxDecoration( - border: Border.all(color: Colors.grey, width: 0.8), - borderRadius: BorderRadius.all( - Radius.circular(5.0) // <--- border radius here - ), - ), - child: InkWell( - onTap: () => onTap != null ? onTap() : null, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - iconData, - color: primaryColor, - ), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - label == null - ? Container() - : Padding( - padding: EdgeInsets.fromLTRB(10, 10, 10, 0), - child: label, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - text == null ? "" : text, - overflow: TextOverflow.ellipsis, - maxLines: 5, - style: TextStyle( - fontSize: 14.0, - ), - ), - ), - ], - ), - SizedBox( - width: 5, - ), - onTap == null - ? Container() - : Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ) - ], - ), - )), - ), - ), - ); - } - - Widget itemTitle(String textKey) { - return Padding( - padding: const EdgeInsets.only(left: 18.0, top: 15, bottom: 5), - child: Text( - AppTranslations.of(context).text(textKey), - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black54), - ), - ); - } - - Future getVersionNumber() async { - PackageInfo packageInfo = await PackageInfo.fromPlatform(); - String version = packageInfo.version + "+" + packageInfo.buildNumber; - return version; - } - - _call(String phone) { - launch("tel:$phone"); - } - - _email(String email) { - launch("mailto:$email"); - } - - _openLink(String link) { - launch("$link"); - } -} diff --git a/lib/fcs/common/pages/contact/contact_editor.dart b/lib/fcs/common/pages/contact/contact_editor.dart new file mode 100644 index 0000000..0404bf8 --- /dev/null +++ b/lib/fcs/common/pages/contact/contact_editor.dart @@ -0,0 +1,164 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/vo/contact.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/contact/model/contact_model.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:provider/provider.dart'; + +import 'widgets.dart'; + +class ContactEditor extends StatefulWidget { + final Contact contact; + const ContactEditor({this.contact}); + @override + _ContactEditorState createState() => _ContactEditorState(); +} + +class _ContactEditorState extends State { + TextEditingController _usaPhone = new TextEditingController(); + TextEditingController _mmPhone = new TextEditingController(); + TextEditingController _usaAddress = new TextEditingController(); + TextEditingController _mmAddress = new TextEditingController(); + TextEditingController _email = new TextEditingController(); + TextEditingController _facebook = new TextEditingController(); + + final _formKey = GlobalKey(); + bool _isLoading = false; + + @override + void initState() { + super.initState(); + if (widget.contact != null) { + _usaPhone.text = widget.contact.usaContactNumber; + _mmPhone.text = widget.contact.mmContactNumber; + _usaAddress.text = widget.contact.usaAddress; + _mmAddress.text = widget.contact.mmAddress; + _email.text = widget.contact.emailAddress; + _facebook.text = widget.contact.facebookLink; + } + } + + @override + Widget build(BuildContext context) { + final usaPhoneBox = InputText( + labelTextKey: 'contact.usa.phone', + iconData: CupertinoIcons.phone, + controller: _usaPhone); + final mmPhoneBox = InputText( + labelTextKey: 'contact.mm.phone', + iconData: CupertinoIcons.phone, + controller: _mmPhone); + final usaAddreesBox = InputText( + labelTextKey: 'contact.usa.address', + iconData: CupertinoIcons.location, + controller: _usaAddress); + final mmAddressBox = InputText( + labelTextKey: 'contact.mm.address', + iconData: CupertinoIcons.location, + controller: _mmAddress); + final emailBox = InputText( + labelTextKey: 'contact.email', + iconData: CupertinoIcons.mail, + controller: _email); + final faceBookBox = InputText( + labelTextKey: 'contact.facebook', + iconData: FontAwesomeIcons.facebook, + controller: _facebook); + + return LocalProgress( + inAsyncCall: _isLoading, + child: CupertinoPageScaffold( + child: NestedScrollView( + headerSliverBuilder: + (BuildContext context, bool innerBoxIsScrolled) { + return [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text( + AppTranslations.of(context) + .text('contact.edit.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => _submit(), + icon: Icon( + Icons.save, + color: Colors.white, + )) + ], + ), + ]; + }, + body: Material( + child: Form( + key: _formKey, + child: ListView( + shrinkWrap: true, + padding: EdgeInsets.only(left: 24.0, right: 24.0), + children: [ + itemTitle(context, "contact.callus"), + usaPhoneBox, + mmPhoneBox, + Divider(), + itemTitle(context, "contact.findus"), + usaAddreesBox, + mmAddressBox, + Divider(), + itemTitle(context, "contact.emailus"), + emailBox, + Divider(), + itemTitle(context, "contact.visitus"), + faceBookBox + ], + ), + ), + )))); + } + + _submit() async { + setState(() { + _isLoading = true; + }); + try { + widget.contact.usaContactNumber = _usaPhone.text; + widget.contact.mmContactNumber = _mmPhone.text; + widget.contact.usaAddress = _usaAddress.text; + widget.contact.mmAddress = _mmAddress.text; + widget.contact.emailAddress = _email.text; + widget.contact.facebookLink = _facebook.text; + var contactModel = Provider.of(context, listen: false); + await contactModel.saveContact(widget.contact); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } +} diff --git a/lib/fcs/common/pages/contact/contact_page.dart b/lib/fcs/common/pages/contact/contact_page.dart new file mode 100644 index 0000000..ab131c1 --- /dev/null +++ b/lib/fcs/common/pages/contact/contact_page.dart @@ -0,0 +1,132 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/vo/contact.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/contact/contact_editor.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:package_info/package_info.dart'; +import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import 'widgets.dart'; + +class ContactPage extends StatefulWidget { + @override + _ContactPageState createState() => _ContactPageState(); +} + +class _ContactPageState extends State { + @override + Widget build(BuildContext context) { + Setting setting = Provider.of(context).setting; + return Scaffold( + body: NestedScrollView( + headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { + return [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text(AppTranslations.of(context).text('contact.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => ContactEditor( + contact: Contact.fromSetting(setting), + ), + )), + icon: Icon( + CupertinoIcons.pen, + color: Colors.white, + )) + ], + ), + ]; + }, + body: ListView( + children: [ + itemTitle(context, "contact.callus"), + contactItem(context, setting.usaContactNumber, CupertinoIcons.phone, + onTap: () => _call(setting.usaContactNumber), + labelKey: "contact.usa.phone"), + contactItem( + context, + setting.mmContactNumber, + CupertinoIcons.phone, + onTap: () => _call( + setting.mmContactNumber, + ), + labelKey: "contact.mm.phone", + ), + itemTitle(context, "contact.findus"), + contactItem( + context, + setting.usaAddress, + CupertinoIcons.location, + labelKey: "contact.usa.address", + ), + contactItem( + context, + setting.mmAddress, + CupertinoIcons.location, + labelKey: "contact.mm.address", + ), + itemTitle(context, "contact.emailus"), + contactItem( + context, + setting.emailAddress, + CupertinoIcons.mail, + onTap: () => _email(setting.emailAddress), + labelKey: "contact.fcs.email", + ), + itemTitle(context, "contact.visitus"), + contactItem( + context, + setting.facebookLink, + FontAwesomeIcons.facebook, + onTap: () => _opencontactItem(setting.facebookLink), + labelKey: "contact.facebook", + ), + ], + ), + ), + ); + } + + Future getVersionNumber() async { + PackageInfo packageInfo = await PackageInfo.fromPlatform(); + String version = packageInfo.version + "+" + packageInfo.buildNumber; + return version; + } + + _call(String phone) { + launch("tel:$phone"); + } + + _email(String email) { + launch("mailto:$email"); + } + + _opencontactItem(String contactItem) { + launch("$contactItem"); + } +} diff --git a/lib/fcs/common/pages/contact/model/contact_model.dart b/lib/fcs/common/pages/contact/model/contact_model.dart new file mode 100644 index 0000000..70fbc48 --- /dev/null +++ b/lib/fcs/common/pages/contact/model/contact_model.dart @@ -0,0 +1,17 @@ +import 'dart:async'; + +import 'package:fcs/fcs/common/domain/vo/contact.dart'; +import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:fcs/fcs/common/services/services.dart'; +import 'package:logging/logging.dart'; + +class ContactModel extends BaseModel { + final log = Logger('ContactModel'); + + Future saveContact(Contact contact) async { + await request("/contact", "PUT", + payload: contact.toMap(), token: await Services.instance.authService.getToken()); + notifyListeners(); + } + +} diff --git a/lib/fcs/common/pages/contact/widgets.dart b/lib/fcs/common/pages/contact/widgets.dart new file mode 100644 index 0000000..d9ebc32 --- /dev/null +++ b/lib/fcs/common/pages/contact/widgets.dart @@ -0,0 +1,92 @@ + import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:flutter/material.dart'; + +Widget itemTitle(BuildContext context, String textKey) { + return Padding( + padding: const EdgeInsets.only(left: 18.0, top: 25, bottom: 5), + child: Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + ), + ); + } + +Widget subItemTitle(BuildContext context, String textKey) { + return Padding( + padding: const EdgeInsets.only(left: 38.0, top: 5, bottom: 0), + child: Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.w700, fontSize: 15, color: Colors.grey), + ), + ); + } + + Widget contactItem(BuildContext context, String text, IconData iconData, + {Function() onTap, String labelKey}) { + return Material( + child: Padding( + padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), + child: Container( + decoration: BoxDecoration( + border: Border.all(color: Colors.grey, width: 0.8), + borderRadius: BorderRadius.all( + Radius.circular(5.0) // <--- border radius here + ), + ), + child: InkWell( + onTap: () => onTap != null ? onTap() : null, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + iconData, + color: primaryColor, + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + labelKey == null + ? Container() + : Padding( + padding: EdgeInsets.fromLTRB(10, 10, 10, 0), + child: LocalText(context, labelKey, + color: primaryColor, fontWeight: FontWeight.w500,fontSize: 18), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + text == null ? "" : text, + overflow: TextOverflow.ellipsis, + maxLines: 5, + style: TextStyle( + fontSize: 14.0, + ), + ), + ), + ], + ), + SizedBox( + width: 5, + ), + onTap == null + ? Container() + : Icon( + Icons.open_in_new, + color: Colors.grey, + size: 15, + ) + ], + ), + )), + ), + ), + ); + } \ No newline at end of file diff --git a/lib/fcs/common/pages/contact_editor.dart b/lib/fcs/common/pages/contact_editor.dart deleted file mode 100644 index ab56dae..0000000 --- a/lib/fcs/common/pages/contact_editor.dart +++ /dev/null @@ -1,297 +0,0 @@ -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; -import 'package:fcs/pages/phone_input.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; - -class ContactEditor extends StatefulWidget { - final Setting setting; - const ContactEditor({this.setting}); - @override - _ContactEditorState createState() => _ContactEditorState(); -} - -class _ContactEditorState extends State { - TextEditingController _email = new TextEditingController(); - TextEditingController _facebook = new TextEditingController(); - TextEditingController _website = new TextEditingController(); - TextEditingController _address = new TextEditingController(); - TextEditingController _deliveryPhone = new TextEditingController(); - - final _formKey = GlobalKey(); - bool _isLoading = false; - - List phones = new List(); - List _initPhones = new List(); - - @override - void initState() { - super.initState(); - if (widget.setting != null) { - this._initPhones = widget.setting.phones; - _email.text = widget.setting.emailAddress; - _facebook.text = widget.setting.facebookLink; - _website.text = widget.setting.website; - _deliveryPhone.text = widget.setting.deliveryPhone; - _address.text = widget.setting.address; - - phones.clear(); - // _initPhones.forEach((p) { - // phones.add(p); - // }); - } - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - final emailBox = TextFormField( - controller: _email, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('contact.email'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.email, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text('contact.email.empty'); - } - return null; - }, - ); - - final faceBookBox = TextFormField( - controller: _facebook, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('contact.facebook'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.facebook, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text('contact.facebook.empty'); - } - return null; - }, - ); - - final googleBox = TextFormField( - controller: _website, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('contact.google'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.chrome, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text('contact.google.empty'); - } - return null; - }, - ); - - final addPhoneNumber = ListTile( - contentPadding: EdgeInsets.only(top: 15), - title: ButtonTheme( - height: 45, - child: RaisedButton( - color: Colors.white, - onPressed: () async { - var phone = await showDialog( - context: context, builder: (_) => PhoneEditor()); - _save(phone); - }, - child: Text("Add Phone", - style: TextStyle( - fontSize: 18, - )), - ), - )); - - return LocalProgress( - inAsyncCall: _isLoading, - child: CupertinoPageScaffold( - navigationBar: CupertinoNavigationBar( - middle: Text( - AppTranslations.of(context).text('contact.edit.title'), - style: TextStyle(color: CupertinoColors.activeBlue), - ), - ), - // child: NestedScrollView( - // headerSliverBuilder: - // (BuildContext context, bool innerBoxIsScrolled) { - // return [ - // // CupertinoNavigationBar(), - // CupertinoSliverNavigationBar( - // largeTitle: Text( - // AppTranslations.of(context).text('contact.edit.title'), - // ), - // trailing: CupertinoButton( - // onPressed: () => {}, - // child: Icon( - // CupertinoIcons.pen, - // )), - // ) - // ]; - // }, - // body: Text("text"), - // appBar: AppBar( - // backgroundColor: primaryColor, - // title: LocalText( - // context, - // "contact.title", - // fontSize: 20, - // color: Colors.white, - // ), - // actions: [ - // IconButton( - // icon: Icon(Icons.send), - // onPressed: () { - // if (!_formKey.currentState.validate()) return; - // showConfirmDialog(context, "contact.confrim", () { - // _submit(); - // }); - // }) - // ], - // ), - child: Form( - key: _formKey, - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - // this.phones.isNotEmpty - // ? ConstrainedBox( - // constraints: BoxConstraints(maxHeight: 1000), - // child: ListView.builder( - // shrinkWrap: true, - // itemBuilder: (context, index) { - // return Stack( - // alignment: const Alignment(1.0, 1.0), - // children: [ - // new TextField( - // controller: new TextEditingController( - // text: this.phones[index]), - // cursorColor: primaryColor, - // readOnly: true, - // decoration: new InputDecoration( - // border: InputBorder.none, - // focusedBorder: InputBorder.none, - // icon: Icon( - // Icons.phone, - // color: primaryColor, - // ), - // ), - // ), - // new FlatButton( - // onPressed: () { - // setState(() { - // this.phones.remove(this.phones[index]); - // }); - // }, - // child: new Icon( - // Icons.cancel, - // size: 25, - // )) - // ], - // ); - // }, - // itemCount: this.phones.length, - // ), - // ) - // : Container(), - // addPhoneNumber, - // LocalTextField( - // textEditingController: _deliveryPhone, - // icon: Icon( - // Icons.phone_forwarded, - // color: primaryColor, - // ), - // labelKey: "contact.delivery.phone", - // ), - // emailBox, - // faceBookBox, - // googleBox, - // LocalTextField( - // textEditingController: _address, - // icon: Icon( - // Icons.location_on, - // color: primaryColor, - // ), - // labelKey: "contact.address", - // maxLines: 3, - // ), - ], - ), - ))); - } - - _save(String phone) { - if (phone == null) return; - setState(() { - this.phones.add(phone); - }); - } - - _submit() async { - setState(() { - _isLoading = true; - }); - try { - widget.setting.emailAddress = _email.text; - widget.setting.facebookLink = _facebook.text; - widget.setting.website = _website.text; - widget.setting.phones = this.phones; - widget.setting.address = _address.text; - widget.setting.deliveryPhone = _deliveryPhone.text; - var mainModel = Provider.of(context); - // await mainModel.updateContact(widget.setting); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/fcs/common/pages/faq/faq_detail_page.dart b/lib/fcs/common/pages/faq/faq_detail_page.dart new file mode 100644 index 0000000..1a4ea58 --- /dev/null +++ b/lib/fcs/common/pages/faq/faq_detail_page.dart @@ -0,0 +1,105 @@ +import 'package:fcs/fcs/common/domain/entities/faq.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/vo/contact.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/contact/contact_editor.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class FAQDetailPage extends StatelessWidget { + final FAQ faq; + + const FAQDetailPage({Key key, this.faq}) : super(key: key); + + @override + Widget build(BuildContext context) { + Setting setting = Provider.of(context).setting; + return Scaffold( + body: NestedScrollView( + headerSliverBuilder: + (BuildContext context, bool innerBoxIsScrolled) { + return [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text(AppTranslations.of(context).text('faq.btn'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => ContactEditor( + contact: Contact.fromSetting(setting), + ), + )), + icon: Icon( + CupertinoIcons.delete, + color: Colors.white, + )), + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => ContactEditor( + contact: Contact.fromSetting(setting), + ), + )), + icon: Icon( + CupertinoIcons.pen, + color: Colors.white, + )) + ], + ), + ]; + }, + body: Padding( + padding: const EdgeInsets.only(left:20.0,right:20), + child: ListView( + children: [getQuestion(context, faq), + SizedBox(height: 30,), + getAnwser(context, faq)], + ), + ))); + } + + Widget getQuestion(BuildContext context, FAQ faq) { + bool isEng = Provider.of(context).isEng; + return TextLocalStyle( + context, + faq.question(isEng), + fontSize: 22, + fontWeight: FontWeight.bold, + ); + } + + + Widget getAnwser(BuildContext context, FAQ faq) { + bool isEng = Provider.of(context).isEng; + return TextLocalStyle( + context, + faq.answer(isEng), + fontSize: 16, + fontWeight: FontWeight.w200, + ); + } + +} diff --git a/lib/fcs/common/pages/faq/faq_edit_page.dart b/lib/fcs/common/pages/faq/faq_edit_page.dart new file mode 100644 index 0000000..4a21887 --- /dev/null +++ b/lib/fcs/common/pages/faq/faq_edit_page.dart @@ -0,0 +1,149 @@ +import 'package:fcs/fcs/common/domain/entities/faq.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/contact/widgets.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_icons/flutter_icons.dart'; + +class FAQEditor extends StatefulWidget { + final FAQ faq; + const FAQEditor({this.faq}); + @override + _FAQEditorState createState() => _FAQEditorState(); +} + +class _FAQEditorState extends State { + TextEditingController _engQ = new TextEditingController(); + TextEditingController _mmQ = new TextEditingController(); + TextEditingController _engA = new TextEditingController(); + TextEditingController _mmA = new TextEditingController(); + + final _formKey = GlobalKey(); + bool _isLoading = false; + bool _isNew = false; + + @override + void initState() { + super.initState(); + _isNew = widget.faq == null; + if (widget.faq != null) { + _engQ.text = widget.faq.questionEng; + _mmQ.text = widget.faq.questionMm; + _engA.text = widget.faq.answerEng; + _mmA.text = widget.faq.answerMm; + } + } + + @override + Widget build(BuildContext context) { + final usaPhoneBox = InputText( + iconData: SimpleLineIcons.question, + controller: _engQ, + maxLines: 2, + withBorder: true, + ); + final mmPhoneBox = InputText( + iconData: MaterialCommunityIcons.message_reply_text, + controller: _mmQ, + maxLines: 5, + withBorder: true, + ); + final usaAddreesBox = InputText( + iconData: SimpleLineIcons.question, + controller: _engA, + maxLines: 2, + withBorder: true, + ); + final mmAddressBox = InputText( + iconData: MaterialCommunityIcons.message_reply_text, + controller: _mmA, + maxLines: 5, + withBorder: true, + ); + + return LocalProgress( + inAsyncCall: _isLoading, + child: CupertinoPageScaffold( + child: NestedScrollView( + headerSliverBuilder: + (BuildContext context, bool innerBoxIsScrolled) { + return [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text( + AppTranslations.of(context) + .text(_isNew?'faq.add.title':'faq.edit.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => _submit(), + icon: Icon( + Icons.save, + color: Colors.white, + )) + ], + ), + ]; + }, + body: Material( + child: Form( + key: _formKey, + child: ListView( + shrinkWrap: true, + padding: EdgeInsets.only(left: 24.0, right: 24.0), + children: [ + itemTitle(context, "faq.edit.eng"), + subItemTitle(context, "faq.edit.question"), + usaPhoneBox, + subItemTitle(context, "faq.edit.answer"), + mmPhoneBox, + Divider(), + itemTitle(context, "faq.edit.mm"), + subItemTitle(context, "faq.edit.question"), + usaAddreesBox, + subItemTitle(context, "faq.edit.answer"), + mmAddressBox, + ], + ), + ), + )))); + } + + _submit() async { + setState(() { + _isLoading = true; + }); + try { + widget.faq.questionEng = _engQ.text; + // var contactModel = Provider.of(context, listen: false); + // await contactModel.saveContact(widget.contact); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } +} diff --git a/lib/fcs/common/pages/faq/faq_page.dart b/lib/fcs/common/pages/faq/faq_page.dart new file mode 100644 index 0000000..7c898dd --- /dev/null +++ b/lib/fcs/common/pages/faq/faq_page.dart @@ -0,0 +1,124 @@ +import 'package:fcs/fcs/common/domain/entities/faq.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/vo/contact.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/contact/contact_editor.dart'; +import 'package:fcs/fcs/common/pages/contact/widgets.dart'; +import 'package:fcs/fcs/common/pages/faq/faq_detail_page.dart'; +import 'package:fcs/fcs/common/pages/faq/faq_edit_page.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/widget/local_text.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:package_info/package_info.dart'; +import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class FAQPage extends StatefulWidget { + @override + _FAQPageState createState() => _FAQPageState(); +} + +class _FAQPageState extends State { + List faqs = []; + @override + void initState() { + super.initState(); + faqs = [ + FAQ(questionEng: "Question 1?", answerEng: "Answer 1."), + FAQ(questionEng: "Question 2?", answerEng: "Answer 2."), + FAQ(questionEng: "Question 3?", answerEng: "Answer 3."), + FAQ(questionEng: "Question 4?", answerEng: "Answer 4."), + FAQ(questionEng: "Question 5?", answerEng: "Answer 5.") + ]; + } + + @override + Widget build(BuildContext context) { + Setting setting = Provider.of(context).setting; + return Scaffold( + body: NestedScrollView( + headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { + return [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text(AppTranslations.of(context).text('faq.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => FAQEditor(), + )), + icon: Icon( + CupertinoIcons.add, + color: Colors.white, + size: 35, + )) + ], + ), + ]; + }, + body: Padding( + padding: const EdgeInsets.only(left: 18.0, right: 18), + child: ListView.separated( + separatorBuilder: (_, i) => Divider(), + itemCount: faqs.length, + itemBuilder: (BuildContext ctxt, int index) { + return _faqItem(context, faqs[index]); + }), + )), + ); + } + + Widget _faqItem(BuildContext context, FAQ faq) { + bool isEng = Provider.of(context).isEng; + return InkWell( + onTap: () { + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => FAQDetailPage( + faq: faq, + ), + )); + }, + child: Container( + padding: EdgeInsets.all(15), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + TextLocalStyle( + context, + faq.question(isEng), + fontSize: 16, + ), + Spacer(), + Icon( + CupertinoIcons.right_chevron, + color: primaryColor, + size: 22, + ) + ], + )), + ); + } +} diff --git a/lib/fcs/common/pages/faq/model/faq_model.dart b/lib/fcs/common/pages/faq/model/faq_model.dart new file mode 100644 index 0000000..d7082be --- /dev/null +++ b/lib/fcs/common/pages/faq/model/faq_model.dart @@ -0,0 +1,17 @@ +import 'dart:async'; + +import 'package:fcs/fcs/common/domain/entities/faq.dart'; +import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:fcs/fcs/common/services/services.dart'; +import 'package:logging/logging.dart'; + +class FAQModel extends BaseModel { + final log = Logger('FAQModel'); + + Future addFAQ(FAQ faq) async { + await request("/faq", "POST", + payload: faq.toMap(), token: await Services.instance.authService.getToken()); + notifyListeners(); + } + +} diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index 27aca90..70db5b4 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -1,4 +1,5 @@ import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/pages/faq/faq_page.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/pages/widgets/action_button.dart'; @@ -74,6 +75,12 @@ class _HomePageState extends State { var customer = Provider.of(context).isCustomer(); LanguageModel languageModel = Provider.of(context); + final faqBtn = _buildBtn("faq.btn", + icon: MaterialCommunityIcons.frequently_asked_questions, + btnCallback: () => Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => FAQPage(), + ))); + final packagesBtn = _buildBtn("package.name", icon: Octicons.package, btnCallback: () => @@ -161,6 +168,7 @@ class _HomePageState extends State { Navigator.of(context).push(BottomUpPageRoute(DeliverList()))); List widgets = []; + widgets.add(faqBtn); customer ? widgets.add(buyingBtn) : ""; customer || owner ? widgets.add(pickUpBtn) : ""; owner ? widgets.add(shipmentBtn) : ""; @@ -294,7 +302,7 @@ class _HomePageState extends State { ), ]), ), - BottomWidgets(), + BottomWidgets(), ], ))), ), @@ -302,7 +310,7 @@ class _HomePageState extends State { } _langChange(index) { - var languageModel = Provider.of(context,listen: false); + var languageModel = Provider.of(context, listen: false); languageModel.saveLanguage(Translation().supportedLanguages[index]); setState(() { isSelected.asMap().forEach((i, e) { @@ -314,6 +322,7 @@ class _HomePageState extends State { Widget _buildBtn(String title, {Image imgIcon, IconData icon, BtnCallback btnCallback}) { - return ActionButton(title: title,imgIcon: imgIcon,icon:icon,btnCallback: btnCallback); + return ActionButton( + title: title, imgIcon: imgIcon, icon: icon, btnCallback: btnCallback); } } diff --git a/lib/fcs/common/pages/model/base_model.dart b/lib/fcs/common/pages/model/base_model.dart index 916cd00..911f5cd 100644 --- a/lib/fcs/common/pages/model/base_model.dart +++ b/lib/fcs/common/pages/model/base_model.dart @@ -18,7 +18,9 @@ abstract class BaseModel extends ChangeNotifier { this.setting = setting; } - void logout(); + void logout(){ + + } // request makes http request // if token is null diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart index 7fa9523..fc16bc5 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/fcs/common/pages/model/main_model.dart @@ -113,7 +113,10 @@ class MainModel extends ChangeNotifier { Future _loadSetting() async { try { - this.setting = await Services.instance.authService.getSetting(); + Services.instance.authService.getSetting().listen((event) { + this.setting = event; + notifyListeners(); + }); } finally {} // _initSetting(setting); } diff --git a/lib/fcs/common/pages/term.dart b/lib/fcs/common/pages/term.dart deleted file mode 100644 index 34ee27a..0000000 --- a/lib/fcs/common/pages/term.dart +++ /dev/null @@ -1,173 +0,0 @@ -import 'dart:convert'; - -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/term_edit.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:zefyr/zefyr.dart'; - - -typedef void ProfileCallback(); - -class Term extends StatefulWidget { - final bool agreePage; - - const Term({Key key, this.agreePage = false}) : super(key: key); - @override - _TermState createState() => _TermState(); -} - -class _TermState extends State { - ZefyrController _controller; - FocusNode _focusNode; - NotusDocument document = new NotusDocument(); - bool isLoading = false; - - @override - void initState() { - super.initState(); - _controller = ZefyrController(_loadDocument()); - print("controller terms => ${_controller.document}"); - _focusNode = FocusNode(); - } - - NotusDocument _loadDocument() { - MainModel mainModel = Provider.of(context, listen: false); - String term = mainModel.setting.terms; - print("terms => $term"); - NotusDocument doc; - try { - doc = NotusDocument.fromJson(jsonDecode(term)); - print('doc=> $doc'); - } catch (e) {} - if (doc == null) { - doc = NotusDocument(); - } - return doc; - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - - bool isOwnerAndAbove = - mainModel.user != null && mainModel.user.isOwnerAndAbove(); - bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin(); - - // bool aggreed = mainModel.user.agreeTerms; - bool aggreed = true; - - final agreeBtn = Padding( - padding: EdgeInsets.symmetric(vertical: 10.0), - child: Card( - elevation: 10, - child: Container( - height: 45.0, - child: ButtonTheme( - minWidth: 900.0, - height: 100.0, - child: FlatButton.icon( - onPressed: () { - showConfirmDialog(context, "term.iagree", () async { - _agree(); - }); - }, - label: LocalText(context, "term.agree_btn"), - icon: Icon( - Icons.check, - ), - ), - ), - ), - )); - - return LocalProgress( - inAsyncCall: isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - // automaticallyImplyLeading: !widget.agreePage, - title: LocalText(context, 'term', color: Colors.white, fontSize: 20), - backgroundColor: primaryColor, - actions: [ - // isOwnerAndAbove || hasAdmin - // ? - IconButton( - icon: Icon(Icons.edit), - onPressed: () async { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => TermEdit((data) { - setState(() { - _controller = ZefyrController(data); - }); - })), - ); - // print('doc=> $doc'); - - // setState(() { - // document = doc; - // }); - // var document = await - // Navigator.push( - // context, - // MaterialPageRoute(builder: (context) => TermEdit()), - // ); - }, - ) - // : Container() - ], - ), - body: Column( - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Card( - child: ZefyrTheme( - data: ZefyrThemeData().copyWith(), - child: ZefyrScaffold( - child: ZefyrEditor( - mode: ZefyrMode.view, - padding: EdgeInsets.all(16), - controller: _controller, - focusNode: _focusNode, - ), - ))), - )), - !aggreed ? agreeBtn : Container(), - ], - ), - ), - ); - } - - _agree() async { - setState(() { - isLoading = true; - }); - try { - // MainModel mainModel = Provider.of(context); - // await mainModel.agreeTerms(); - // if (widget.agreePage) { - // Future.delayed(const Duration(milliseconds: 3000), () { - // Navigator.pop(context); - // }); - // } - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - setState(() { - isLoading = false; - }); - } - } -} diff --git a/lib/fcs/common/pages/term/model/term_model.dart b/lib/fcs/common/pages/term/model/term_model.dart new file mode 100644 index 0000000..52c6afd --- /dev/null +++ b/lib/fcs/common/pages/term/model/term_model.dart @@ -0,0 +1,17 @@ +import 'dart:async'; + +import 'package:fcs/fcs/common/domain/vo/term.dart'; +import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:fcs/fcs/common/services/services.dart'; +import 'package:logging/logging.dart'; + +class TermModel extends BaseModel { + final log = Logger('TermModel'); + + Future saveTerm(Term term) async { + await request("/terms", "PUT", + payload: term.toMap(), token: await Services.instance.authService.getToken()); + notifyListeners(); + } + +} diff --git a/lib/fcs/common/pages/term_edit.dart b/lib/fcs/common/pages/term/term_edit.dart similarity index 69% rename from lib/fcs/common/pages/term_edit.dart rename to lib/fcs/common/pages/term/term_edit.dart index b00c5be..1811f35 100644 --- a/lib/fcs/common/pages/term_edit.dart +++ b/lib/fcs/common/pages/term/term_edit.dart @@ -1,20 +1,23 @@ import 'dart:convert'; +import 'package:fcs/fcs/common/domain/vo/term.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/pages/term/model/term_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/model/main_model.dart'; import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/widget/progress.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:provider/provider.dart'; import 'package:zefyr/zefyr.dart'; - typedef void ProfileCallback(); class TermEdit extends StatefulWidget { - final ValueChanged onChangedData; - TermEdit(this.onChangedData); + final Term term; + TermEdit({this.term}); @override _TermEditState createState() => _TermEditState(); } @@ -40,12 +43,9 @@ class _TermEditState extends State { /// Loads the document to be edited in Zefyr. NotusDocument _loadDocument() { - MainModel mainModel = Provider.of(context, listen: false); - String term = mainModel.setting.terms; - NotusDocument doc; try { - doc = NotusDocument.fromJson(jsonDecode(term)); + doc = NotusDocument.fromJson(jsonDecode(widget.term.term)); } catch (e) {} if (doc == null) { doc = NotusDocument(); @@ -55,31 +55,21 @@ class _TermEditState extends State { @override Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - - var singleChildScrollView = SingleChildScrollView( - padding: EdgeInsets.only( - left: 25.0, - right: 25.0, - ), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - width: 300, - height: 300, - child: Card(child: Markdown(data: mainModel.setting.terms))), - ], - ), - ); - return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( - title: Text( - "Terms", + title: LocalLargeTitle( + context, + "term", + color: Colors.white, + ), + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), ), backgroundColor: primaryColor, actions: [ @@ -105,16 +95,15 @@ class _TermEditState extends State { ); } - _save() { + _save() async { setState(() { _isLoading = true; }); try { final contents = jsonEncode(_controller.document); print('contents => $contents'); - widget.onChangedData(_controller.document); - // MainModel mainModel = Provider.of(context, listen: false); - // mainModel.updateTerms(contents); + TermModel termModel = Provider.of(context, listen: false); + await termModel.saveTerm(Term(term: contents)); } catch (e) { showMsgDialog(context, "Error", e.toString()); } finally { diff --git a/lib/fcs/common/pages/term/term_page.dart b/lib/fcs/common/pages/term/term_page.dart new file mode 100644 index 0000000..af8e3e8 --- /dev/null +++ b/lib/fcs/common/pages/term/term_page.dart @@ -0,0 +1,107 @@ +import 'dart:convert'; + +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/vo/term.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/term/term_edit.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:zefyr/zefyr.dart'; + +typedef void ProfileCallback(); + +class TermPage extends StatefulWidget { + const TermPage({ + Key key, + }) : super(key: key); + @override + _TermPageState createState() => _TermPageState(); +} + +class _TermPageState extends State { + ZefyrController _controller; + FocusNode _focusNode; + NotusDocument document = new NotusDocument(); + bool isLoading = false; + + @override + void initState() { + super.initState(); + _focusNode = FocusNode(); + } + + NotusDocument _loadDocument(Setting setting) { + String term = setting.terms; + NotusDocument doc; + try { + doc = NotusDocument.fromJson(jsonDecode(term)); + } catch (e) {} + if (doc == null) { + doc = NotusDocument(); + } + return doc; + } + + @override + Widget build(BuildContext context) { + Setting setting = Provider.of(context).setting; + return CupertinoPageScaffold( + child: NestedScrollView( + headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { + return [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: LocalLargeTitle( + context, + "term", + color: Colors.white, + ), + ), + actions: [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => + TermEdit(term: Term.fromSetting(setting)), + )), + icon: Icon( + CupertinoIcons.pen, + color: Colors.white, + )) + ], + ), + ]; + }, + body: ZefyrTheme( + data: ZefyrThemeData().copyWith( + defaultLineTheme: LineTheme( + textStyle: TextStyle(color: Colors.black), + padding: EdgeInsets.all(0))), + child: ZefyrScaffold( + child: ZefyrEditor( + mode: ZefyrMode.view, + padding: EdgeInsets.all(16), + controller: ZefyrController(_loadDocument(setting)), + focusNode: _focusNode, + ), + ))), + ); + } +} diff --git a/lib/fcs/common/pages/util.dart b/lib/fcs/common/pages/util.dart index e64ea2b..edf5c67 100644 --- a/lib/fcs/common/pages/util.dart +++ b/lib/fcs/common/pages/util.dart @@ -1,3 +1,4 @@ +import 'package:fcs/fcs/common/localization/app_translations.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:flutter/material.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; @@ -14,7 +15,6 @@ import 'package:fcs/model/user_model.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/vo/notification.dart' as Noti; import '../../../pages/announcement.dart'; @@ -578,3 +578,8 @@ Widget fcsButton(BuildContext context, String text, {Function callack}) { ), ); } + + +String getLocalString(BuildContext context,String key){ + return AppTranslations.of(context).text(key); +} \ No newline at end of file diff --git a/lib/fcs/common/pages/widgets/bottom_widgets.dart b/lib/fcs/common/pages/widgets/bottom_widgets.dart index 486e0ef..e16cae0 100644 --- a/lib/fcs/common/pages/widgets/bottom_widgets.dart +++ b/lib/fcs/common/pages/widgets/bottom_widgets.dart @@ -1,7 +1,6 @@ -import 'package:fcs/fcs/common/pages/contact.dart'; -import 'package:fcs/fcs/common/pages/term.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:fcs/fcs/common/pages/contact/contact_page.dart'; +import 'package:fcs/fcs/common/pages/term/term_page.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; @@ -16,25 +15,26 @@ class BottomWidgets extends StatelessWidget { InkWell( onTap: () { Navigator.of(context).push(CupertinoPageRoute( - fullscreenDialog: true, - builder: (context) => Contact(), + builder: (context) => ContactPage(), )); }, - child: _buildSmallButton("Contact Us", SimpleLineIcons.support), + child: _buildSmallButton( + context, "contact.btn", SimpleLineIcons.support), ), InkWell( onTap: () { Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => Term(), + builder: (context) => TermPage(), )); }, - child: _buildSmallButton("Terms of service", Icons.info_outline), + child: _buildSmallButton(context, "term.btn", Icons.info_outline), ), ], ); } - Widget _buildSmallButton(String text, IconData iconData) { + Widget _buildSmallButton( + BuildContext context, String textKey, IconData iconData) { return Padding( padding: const EdgeInsets.all(18.0), child: Row( @@ -44,10 +44,7 @@ class BottomWidgets extends StatelessWidget { padding: const EdgeInsets.only(right: 5), child: Icon(iconData, color: Colors.white70, size: 20), ), - Text( - text, - style: subMenuStyle, - ) + LocalText(context, textKey, color: Colors.white70) ], ), ); diff --git a/lib/fcs/common/pages/widgets/input_text.dart b/lib/fcs/common/pages/widgets/input_text.dart new file mode 100644 index 0000000..0b306cb --- /dev/null +++ b/lib/fcs/common/pages/widgets/input_text.dart @@ -0,0 +1,64 @@ +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class InputText extends StatelessWidget { + final String labelTextKey; + final IconData iconData; + final TextEditingController controller; + final FormFieldValidator validator; + final int maxLines; + final bool withBorder; + final Color borderColor; + + const InputText( + {Key key, + this.labelTextKey, + this.iconData, + this.controller, + this.validator, + this.maxLines = 1, + this.withBorder = false, + this.borderColor}) + : super(key: key); + @override + Widget build(BuildContext context) { + var languageModel = Provider.of(context); + + return Padding( + padding: const EdgeInsets.only(top: 15.0, bottom: 5), + child: TextFormField( + controller: controller, + autofocus: false, + cursorColor: primaryColor, + style: textStyle, + maxLines: maxLines, + decoration: new InputDecoration( + labelText:labelTextKey==null?null: AppTranslations.of(context).text(labelTextKey), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + icon: iconData == null + ? null + : Icon( + iconData, + color: primaryColor, + ), + enabledBorder: withBorder + ? OutlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0), + ) + : UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: withBorder + ? OutlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0), + ) + : UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + validator: validator), + ); + } +} diff --git a/lib/fcs/common/pages/widgets/local_text.dart b/lib/fcs/common/pages/widgets/local_text.dart index c26c488..a185ac7 100644 --- a/lib/fcs/common/pages/widgets/local_text.dart +++ b/lib/fcs/common/pages/widgets/local_text.dart @@ -4,7 +4,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; - class LocalText extends Text { final BuildContext context; LocalText(this.context, String translationKey, @@ -28,3 +27,30 @@ class LocalText extends Text { fontWeight: fontWeight, underline: underline)); } + +class LocalLargeTitle extends Text { + final BuildContext context; + LocalLargeTitle( + this.context, + String translationKey, { + Color color, + List translationVariables, + }) : super( + AppTranslations.of(context).text(translationKey, + translationVariables: translationVariables), + style: Provider.of(context).isEng + ? TextStyle(color: color) + : TextStyle(color: color, fontFamily: "MyanmarUnicode")); +} + +class TextLocalStyle extends Text { + final BuildContext context; + TextLocalStyle(this.context, String text, {Color color, double fontSize,FontWeight fontWeight}) + : super(text, + style: Provider.of(context).isEng + ? TextStyle(color: color, fontSize: fontSize,fontWeight: fontWeight) + : TextStyle( + color: color, + fontFamily: "MyanmarUnicode", + fontSize: fontSize,fontWeight: fontWeight)); +} diff --git a/lib/fcs/common/services/auth_imp.dart b/lib/fcs/common/services/auth_imp.dart index 3fdda0f..8a078bd 100644 --- a/lib/fcs/common/services/auth_imp.dart +++ b/lib/fcs/common/services/auth_imp.dart @@ -43,8 +43,8 @@ class AuthServiceImp implements AuthService { } @override - Future getSetting() { - return authFb.getSetting(); + Stream getSetting() { + return authFb.settings(); } @override @@ -56,4 +56,9 @@ class AuthServiceImp implements AuthService { Stream onAuthStatus() { return authFb.onAuthStatus; } + + @override + Future getToken() { + return authFb.getToken(); + } } diff --git a/lib/fcs/common/services/auth_service.dart b/lib/fcs/common/services/auth_service.dart index bb9fb83..5344e28 100644 --- a/lib/fcs/common/services/auth_service.dart +++ b/lib/fcs/common/services/auth_service.dart @@ -8,6 +8,7 @@ abstract class AuthService { Future signout(); Future getUser({bool refreshIdToken = false}); Future signup(String userName); - Future getSetting(); + Stream getSetting(); Stream onAuthStatus(); + Future getToken(); } diff --git a/lib/main-local.dart b/lib/main-local.dart index 5d60521..2cf297f 100644 --- a/lib/main-local.dart +++ b/lib/main-local.dart @@ -9,7 +9,7 @@ void main() { Config( flavor: Flavor.DEV, color: Colors.blue, - apiURL: "http://192.168.100.11:7777", + apiURL: "http://192.168.1.155:7777", level: Level.ALL); runApp(App()); } From 7a2053e858fccaf9b32836d2819108f47f9ab983 Mon Sep 17 00:00:00 2001 From: sainw Date: Thu, 10 Sep 2020 02:13:22 +0630 Subject: [PATCH 09/22] add ios --- .vscode/launch.json | 11 + ios/Flutter/.last_build_id | 1 + ios/GoogleService-Info.plist | 36 +++ ios/Podfile | 77 +---- ios/Podfile.lock | 301 ++++++++---------- ios/Runner.xcodeproj/project.pbxproj | 60 ++-- ios/Runner/AppDelegate.m | 10 + ios/Runner/GoogleService-Info.plist | 18 +- ios/Runner/Info.plist | 18 ++ ios/Runner/Runner.entitlements | 8 + .../common/data/providers/messaging_fcm.dart | 9 +- lib/fcs/common/helpers/api_helper.dart | 13 +- lib/fcs/common/helpers/dev_info.dart | 32 ++ lib/fcs/common/pages/home_page.dart | 2 +- lib/fcs/common/pages/model/main_model.dart | 5 +- lib/fcs/common/pages/splash_page.dart | 2 +- lib/fcs/common/pages/util.dart | 7 +- lib/model/firebase_helper.dart | 5 +- lib/model/main_model.dart | 17 +- lib/vo/user.dart | 12 +- lib/widget/local_text.dart | 5 +- lib/widget/offline_redirect.dart | 4 +- ...te copy.dart => right_left_page_rout.dart} | 0 pubspec.yaml | 3 +- 24 files changed, 336 insertions(+), 320 deletions(-) create mode 100644 ios/Flutter/.last_build_id create mode 100644 ios/GoogleService-Info.plist create mode 100644 ios/Runner/Runner.entitlements create mode 100644 lib/fcs/common/helpers/dev_info.dart rename lib/widget/{right_left_page_route copy.dart => right_left_page_rout.dart} (100%) diff --git a/.vscode/launch.json b/.vscode/launch.json index e7b950e..71fb7ca 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -25,6 +25,17 @@ "dev" ], }, + { + "name": "Dev iOS", + "request": "launch", + "type": "dart", + "program": "lib/main-dev.dart", + "args": [ + "-t", + "lib/main-dev.dart", + ], + }, + { "name": "Pro", "request": "launch", diff --git a/ios/Flutter/.last_build_id b/ios/Flutter/.last_build_id new file mode 100644 index 0000000..586a1eb --- /dev/null +++ b/ios/Flutter/.last_build_id @@ -0,0 +1 @@ +771d17f946c2bdb9cccb6f6067d288ab \ No newline at end of file diff --git a/ios/GoogleService-Info.plist b/ios/GoogleService-Info.plist new file mode 100644 index 0000000..9bda7c7 --- /dev/null +++ b/ios/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21 + API_KEY + AIzaSyBZICfIDWbWqjxHwY_jFnWv34EtCpiiE78 + GCM_SENDER_ID + 944560757353 + PLIST_VERSION + 1 + BUNDLE_ID + com.mokkon.fcs.dev + PROJECT_ID + fcs-dev1 + STORAGE_BUCKET + fcs-dev1.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:944560757353:ios:de037244faea4173fa60f8 + DATABASE_URL + https://fcs-dev1.firebaseio.com + + \ No newline at end of file diff --git a/ios/Podfile b/ios/Podfile index 5a69b89..0e8ecd1 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -10,75 +10,30 @@ project 'Runner', { 'Release' => :release, } -def parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exists? file_abs_path - return []; +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" end - generated_key_values = {} - skip_line_start_symbols = ["#", "/"] - File.foreach(file_abs_path) do |line| - next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } - plugin = line.split(pattern=separator) - if plugin.length == 2 - podname = plugin[0].strip() - path = plugin[1].strip() - podpath = File.expand_path("#{path}", file_abs_path) - generated_key_values[podname] = podpath - else - puts "Invalid plugin specification: #{line}" - end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches end - generated_key_values + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" end +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + target 'Runner' do - # Flutter Pod - - copied_flutter_dir = File.join(__dir__, 'Flutter') - copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework') - copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec') - unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path) - # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet. - # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration. - # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist. - - generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig') - unless File.exist?(generated_xcode_build_settings_path) - raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path) - cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR']; - - unless File.exist?(copied_framework_path) - FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir) - end - unless File.exist?(copied_podspec_path) - FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir) - end - end - - # Keep pod path relative so it can be checked into Podfile.lock. - pod 'Flutter', :path => 'Flutter' - - # Plugin Pods - - # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock - # referring to absolute paths on developers' machines. - system('rm -rf .symlinks') - system('mkdir -p .symlinks/plugins') - plugin_pods = parse_KV_file('../.flutter-plugins') - plugin_pods.each do |name, path| - symlink = File.join('.symlinks', 'plugins', name) - File.symlink(path, symlink) - pod name, :path => File.join(symlink, 'ios') - end + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) end post_install do |installer| installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['ENABLE_BITCODE'] = 'NO' - end + flutter_additional_ios_build_settings(target) end end +use_frameworks! \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 1db0755..de35ff5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -212,6 +212,10 @@ PODS: - abseil/base/base_internal - abseil/base/config - abseil/meta/type_traits + - barcode_scan (0.0.1): + - Flutter + - MTBBarcodeScanner + - SwiftProtobuf - BoringSSL-GRPC (0.0.7): - BoringSSL-GRPC/Implementation (= 0.0.7) - BoringSSL-GRPC/Interface (= 0.0.7) @@ -224,43 +228,37 @@ PODS: - Firebase/Core - Firebase/Firestore (~> 6.0) - Flutter - - cloud_firestore_web (0.1.0): - - Flutter - connectivity (0.0.1): - Flutter - Reachability - - connectivity_macos (0.0.1): - - Flutter - device_info (0.0.1): - Flutter - downloads_path_provider (0.0.1): - Flutter - - Firebase/Auth (6.25.0): + - Firebase/Auth (6.31.1): - Firebase/CoreOnly - - FirebaseAuth (~> 6.5.3) - - Firebase/Core (6.25.0): + - FirebaseAuth (~> 6.9.0) + - Firebase/Core (6.31.1): - Firebase/CoreOnly - - FirebaseAnalytics (= 6.5.1) - - Firebase/CoreOnly (6.25.0): - - FirebaseCore (= 6.7.1) - - Firebase/Firestore (6.25.0): + - FirebaseAnalytics (= 6.8.0) + - Firebase/CoreOnly (6.31.1): + - FirebaseCore (= 6.10.1) + - Firebase/Firestore (6.31.1): - Firebase/CoreOnly - - FirebaseFirestore (~> 1.14.0) - - Firebase/Messaging (6.25.0): + - FirebaseFirestore (~> 1.17.0) + - Firebase/Messaging (6.31.1): - Firebase/CoreOnly - - FirebaseMessaging (~> 4.4.1) - - Firebase/Storage (6.25.0): + - FirebaseMessaging (~> 4.6.2) + - Firebase/Storage (6.31.1): - Firebase/CoreOnly - - FirebaseStorage (~> 3.6.1) + - FirebaseStorage (~> 3.9.0) - firebase_auth (0.0.1): - - Firebase/Auth (~> 6.0) + - Firebase/Auth (~> 6.3) - Firebase/Core - Flutter - firebase_core (0.0.1): - Firebase/Core - Flutter - - firebase_core_web (0.1.0): - - Flutter - firebase_messaging (0.0.1): - Firebase/Core - Firebase/Messaging @@ -268,36 +266,30 @@ PODS: - firebase_storage (0.0.1): - Firebase/Storage - Flutter - - FirebaseAnalytics (6.5.1): - - FirebaseCore (~> 6.7) - - FirebaseInstallations (~> 1.2) - - GoogleAppMeasurement (= 6.5.1) - - GoogleUtilities/AppDelegateSwizzler (~> 6.0) - - GoogleUtilities/MethodSwizzler (~> 6.0) - - GoogleUtilities/Network (~> 6.0) - - "GoogleUtilities/NSData+zlib (~> 6.0)" - - nanopb (~> 1.30905.0) - - FirebaseAnalyticsInterop (1.5.0) - - FirebaseAuth (6.5.3): - - FirebaseAuthInterop (~> 1.0) - - FirebaseCore (~> 6.6) - - GoogleUtilities/AppDelegateSwizzler (~> 6.5) - - GoogleUtilities/Environment (~> 6.5) + - FirebaseAnalytics (6.8.0): + - FirebaseCore (~> 6.10) + - FirebaseInstallations (~> 1.6) + - GoogleAppMeasurement (= 6.8.0) + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/MethodSwizzler (~> 6.7) + - GoogleUtilities/Network (~> 6.7) + - "GoogleUtilities/NSData+zlib (~> 6.7)" + - nanopb (~> 1.30906.0) + - FirebaseAuth (6.9.0): + - FirebaseCore (~> 6.10) + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/Environment (~> 6.7) - GTMSessionFetcher/Core (~> 1.1) - - FirebaseAuthInterop (1.1.0) - - FirebaseCore (6.7.1): - - FirebaseCoreDiagnostics (~> 1.3) - - FirebaseCoreDiagnosticsInterop (~> 1.2) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/Logger (~> 6.5) - - FirebaseCoreDiagnostics (1.3.0): - - FirebaseCoreDiagnosticsInterop (~> 1.2) - - GoogleDataTransportCCTSupport (~> 3.1) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/Logger (~> 6.5) - - nanopb (~> 1.30905.0) - - FirebaseCoreDiagnosticsInterop (1.2.0) - - FirebaseFirestore (1.14.0): + - FirebaseCore (6.10.1): + - FirebaseCoreDiagnostics (~> 1.6) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Logger (~> 6.7) + - FirebaseCoreDiagnostics (1.6.0): + - GoogleDataTransport (~> 7.2) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Logger (~> 6.7) + - nanopb (~> 1.30906.0) + - FirebaseFirestore (1.17.0): - abseil/algorithm (= 0.20200225.0) - abseil/base (= 0.20200225.0) - abseil/memory (= 0.20200225.0) @@ -305,71 +297,66 @@ PODS: - abseil/strings/strings (= 0.20200225.0) - abseil/time (= 0.20200225.0) - abseil/types (= 0.20200225.0) - - FirebaseAuthInterop (~> 1.0) - - FirebaseCore (~> 6.2) + - FirebaseCore (~> 6.10) - "gRPC-C++ (~> 1.28.0)" - leveldb-library (~> 1.22) - - nanopb (~> 1.30905.0) - - FirebaseInstallations (1.2.0): - - FirebaseCore (~> 6.6) - - GoogleUtilities/Environment (~> 6.6) - - GoogleUtilities/UserDefaults (~> 6.6) + - nanopb (~> 1.30906.0) + - FirebaseInstallations (1.7.0): + - FirebaseCore (~> 6.10) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) - PromisesObjC (~> 1.2) - - FirebaseInstanceID (4.3.4): - - FirebaseCore (~> 6.6) - - FirebaseInstallations (~> 1.0) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/UserDefaults (~> 6.5) - - FirebaseMessaging (4.4.1): - - FirebaseAnalyticsInterop (~> 1.5) - - FirebaseCore (~> 6.6) - - FirebaseInstanceID (~> 4.3) - - GoogleUtilities/AppDelegateSwizzler (~> 6.5) - - GoogleUtilities/Environment (~> 6.5) - - GoogleUtilities/Reachability (~> 6.5) - - GoogleUtilities/UserDefaults (~> 6.5) + - FirebaseInstanceID (4.6.0): + - FirebaseCore (~> 6.10) + - FirebaseInstallations (~> 1.6) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) + - FirebaseMessaging (4.6.2): + - FirebaseCore (~> 6.10) + - FirebaseInstanceID (~> 4.6) + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Reachability (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) - Protobuf (>= 3.9.2, ~> 3.9) - - FirebaseStorage (3.6.1): - - FirebaseAuthInterop (~> 1.1) - - FirebaseCore (~> 6.6) + - FirebaseStorage (3.9.0): + - FirebaseCore (~> 6.10) - GTMSessionFetcher/Core (~> 1.1) - Flutter (1.0.0) - flutter_downloader (0.0.1): - Flutter - - flutter_plugin_android_lifecycle (0.0.1): + - flutter_local_notifications (0.0.1): + - Flutter + - flutter_pdfview (1.0.2): - Flutter - flutter_ringtone_player (0.0.1): - Flutter - - google_api_availability (2.0.4): - - Flutter - - GoogleAppMeasurement (6.5.1): - - GoogleUtilities/AppDelegateSwizzler (~> 6.0) - - GoogleUtilities/MethodSwizzler (~> 6.0) - - GoogleUtilities/Network (~> 6.0) - - "GoogleUtilities/NSData+zlib (~> 6.0)" - - nanopb (~> 1.30905.0) - - GoogleDataTransport (6.1.1) - - GoogleDataTransportCCTSupport (3.1.0): - - GoogleDataTransport (~> 6.1) - - nanopb (~> 1.30905.0) - - GoogleUtilities/AppDelegateSwizzler (6.6.0): + - GoogleAppMeasurement (6.8.0): + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/MethodSwizzler (~> 6.7) + - GoogleUtilities/Network (~> 6.7) + - "GoogleUtilities/NSData+zlib (~> 6.7)" + - nanopb (~> 1.30906.0) + - GoogleDataTransport (7.3.0): + - nanopb (~> 1.30906.0) + - GoogleUtilities/AppDelegateSwizzler (6.7.2): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - - GoogleUtilities/Environment (6.6.0): + - GoogleUtilities/Environment (6.7.2): - PromisesObjC (~> 1.2) - - GoogleUtilities/Logger (6.6.0): + - GoogleUtilities/Logger (6.7.2): - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (6.6.0): + - GoogleUtilities/MethodSwizzler (6.7.2): - GoogleUtilities/Logger - - GoogleUtilities/Network (6.6.0): + - GoogleUtilities/Network (6.7.2): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (6.6.0)" - - GoogleUtilities/Reachability (6.6.0): + - "GoogleUtilities/NSData+zlib (6.7.2)" + - GoogleUtilities/Reachability (6.7.2): - GoogleUtilities/Logger - - GoogleUtilities/UserDefaults (6.6.0): + - GoogleUtilities/UserDefaults (6.7.2): - GoogleUtilities/Logger - "gRPC-C++ (1.28.2)": - "gRPC-C++/Implementation (= 1.28.2)" @@ -399,67 +386,52 @@ PODS: - image_picker (0.0.1): - Flutter - leveldb-library (1.22) - - nanopb (1.30905.0): - - nanopb/decode (= 1.30905.0) - - nanopb/encode (= 1.30905.0) - - nanopb/decode (1.30905.0) - - nanopb/encode (1.30905.0) + - MTBBarcodeScanner (5.0.11) + - nanopb (1.30906.0): + - nanopb/decode (= 1.30906.0) + - nanopb/encode (= 1.30906.0) + - nanopb/decode (1.30906.0) + - nanopb/encode (1.30906.0) - open_file (0.0.1): - Flutter - package_info (0.0.1): - Flutter - path_provider (0.0.1): - Flutter - - path_provider_macos (0.0.1): - - Flutter - "permission_handler (4.4.0+hotfix.4)": - Flutter - - PromisesObjC (1.2.8) - - Protobuf (3.12.0) + - PromisesObjC (1.2.10) + - Protobuf (3.13.0) - Reachability (3.2) - shared_preferences (0.0.1): - Flutter - - shared_preferences_macos (0.0.1): - - Flutter - - shared_preferences_web (0.0.1): - - Flutter + - SwiftProtobuf (1.12.0) - url_launcher (0.0.1): - Flutter - - url_launcher_macos (0.0.1): - - Flutter - - url_launcher_web (0.0.1): - - Flutter DEPENDENCIES: + - barcode_scan (from `.symlinks/plugins/barcode_scan/ios`) - camera (from `.symlinks/plugins/camera/ios`) - cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) - - cloud_firestore_web (from `.symlinks/plugins/cloud_firestore_web/ios`) - connectivity (from `.symlinks/plugins/connectivity/ios`) - - connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`) - device_info (from `.symlinks/plugins/device_info/ios`) - downloads_path_provider (from `.symlinks/plugins/downloads_path_provider/ios`) - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - - firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - firebase_storage (from `.symlinks/plugins/firebase_storage/ios`) - Flutter (from `Flutter`) - flutter_downloader (from `.symlinks/plugins/flutter_downloader/ios`) - - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) + - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) + - flutter_pdfview (from `.symlinks/plugins/flutter_pdfview/ios`) - flutter_ringtone_player (from `.symlinks/plugins/flutter_ringtone_player/ios`) - - google_api_availability (from `.symlinks/plugins/google_api_availability/ios`) - image_picker (from `.symlinks/plugins/image_picker/ios`) - open_file (from `.symlinks/plugins/open_file/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) - - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) - - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`) - - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`) - url_launcher (from `.symlinks/plugins/url_launcher/ios`) - - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`) - - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) SPEC REPOS: trunk: @@ -467,12 +439,9 @@ SPEC REPOS: - BoringSSL-GRPC - Firebase - FirebaseAnalytics - - FirebaseAnalyticsInterop - FirebaseAuth - - FirebaseAuthInterop - FirebaseCore - FirebaseCoreDiagnostics - - FirebaseCoreDiagnosticsInterop - FirebaseFirestore - FirebaseInstallations - FirebaseInstanceID @@ -480,28 +449,27 @@ SPEC REPOS: - FirebaseStorage - GoogleAppMeasurement - GoogleDataTransport - - GoogleDataTransportCCTSupport - GoogleUtilities - "gRPC-C++" - gRPC-Core - GTMSessionFetcher - leveldb-library + - MTBBarcodeScanner - nanopb - PromisesObjC - Protobuf - Reachability + - SwiftProtobuf EXTERNAL SOURCES: + barcode_scan: + :path: ".symlinks/plugins/barcode_scan/ios" camera: :path: ".symlinks/plugins/camera/ios" cloud_firestore: :path: ".symlinks/plugins/cloud_firestore/ios" - cloud_firestore_web: - :path: ".symlinks/plugins/cloud_firestore_web/ios" connectivity: :path: ".symlinks/plugins/connectivity/ios" - connectivity_macos: - :path: ".symlinks/plugins/connectivity_macos/ios" device_info: :path: ".symlinks/plugins/device_info/ios" downloads_path_provider: @@ -510,8 +478,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_auth/ios" firebase_core: :path: ".symlinks/plugins/firebase_core/ios" - firebase_core_web: - :path: ".symlinks/plugins/firebase_core_web/ios" firebase_messaging: :path: ".symlinks/plugins/firebase_messaging/ios" firebase_storage: @@ -520,12 +486,12 @@ EXTERNAL SOURCES: :path: Flutter flutter_downloader: :path: ".symlinks/plugins/flutter_downloader/ios" - flutter_plugin_android_lifecycle: - :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios" + flutter_local_notifications: + :path: ".symlinks/plugins/flutter_local_notifications/ios" + flutter_pdfview: + :path: ".symlinks/plugins/flutter_pdfview/ios" flutter_ringtone_player: :path: ".symlinks/plugins/flutter_ringtone_player/ios" - google_api_availability: - :path: ".symlinks/plugins/google_api_availability/ios" image_picker: :path: ".symlinks/plugins/image_picker/ios" open_file: @@ -534,81 +500,62 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info/ios" path_provider: :path: ".symlinks/plugins/path_provider/ios" - path_provider_macos: - :path: ".symlinks/plugins/path_provider_macos/ios" permission_handler: :path: ".symlinks/plugins/permission_handler/ios" shared_preferences: :path: ".symlinks/plugins/shared_preferences/ios" - shared_preferences_macos: - :path: ".symlinks/plugins/shared_preferences_macos/ios" - shared_preferences_web: - :path: ".symlinks/plugins/shared_preferences_web/ios" url_launcher: :path: ".symlinks/plugins/url_launcher/ios" - url_launcher_macos: - :path: ".symlinks/plugins/url_launcher_macos/ios" - url_launcher_web: - :path: ".symlinks/plugins/url_launcher_web/ios" SPEC CHECKSUMS: abseil: 6c8eb7892aefa08d929b39f9bb108e5367e3228f + barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479 BoringSSL-GRPC: 8edf627ee524575e2f8d19d56f068b448eea3879 camera: d56ad165545ae5a0ffb892376033760a969c68c8 - cloud_firestore: 4cc700e236ebfe2d5d980e49cb066d202cfee0e9 - cloud_firestore_web: 9ec3dc7f5f98de5129339802d491c1204462bfec + cloud_firestore: 2a4f8f802fb0b701cf809b283b6bec7477ebaa6f connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467 - connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191 device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 downloads_path_provider: fe0d06888d4b8c055a59edbc2f51f03e63cb0e28 - Firebase: 5719b4f965f76643241a1bb8244483ff6117db39 - firebase_auth: d99b993c1405096e66c58211b1cd956c23eed1c5 + Firebase: 658370fa0181826a74b7cfca8d68c5856ca749ae + firebase_auth: af8784c4d8d87c36f730a305f97bfbcb24db024b firebase_core: 335c02abd48672b7c83c683df833d0488a72e73e - firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1 firebase_messaging: 21344b3b3a7d9d325d63a70e3750c0c798fe1e03 firebase_storage: 22966fce4aa6e8848cbaa017df62107cee29f327 - FirebaseAnalytics: 93565f3f0f0f50a5d8770850bfe6a82eaba5db27 - FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae - FirebaseAuth: 7047aec89c0b17ecd924a550c853f0c27ac6015e - FirebaseAuthInterop: a0f37ae05833af156e72028f648d313f7e7592e9 - FirebaseCore: 6023faeada5afa95a349fccafb40900e32e9ac42 - FirebaseCoreDiagnostics: 4a773a47bd83bbd5a9b1ccf1ce7caa8b2d535e67 - FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850 - FirebaseFirestore: deb7242803734c97376278698de097499cf5194f - FirebaseInstallations: 2119fb3e46b0a88bfdbf12562f855ee3252462fa - FirebaseInstanceID: cef67c4967c7cecb56ea65d8acbb4834825c587b - FirebaseMessaging: 29543feb343b09546ab3aa04d008ee8595b43c44 - FirebaseStorage: f4f39ae834a7145963b913f54e2f24a9db1d8fac + FirebaseAnalytics: 0ca9aa2af7cc4dc92392b7a78bfc49feaa2eb60f + FirebaseAuth: 09f086fae98643f1ef235674cf3ae171ce26f5ba + FirebaseCore: 6fb954e350af0885803d5aa49865d15d9a6b264c + FirebaseCoreDiagnostics: 7415bfb3883b3500c5a95c42b6ba66baae78f600 + FirebaseFirestore: ef0ad529a72c8e6542050dc7742fbd4cf009f297 + FirebaseInstallations: 466c7b4d1f58fe16707693091da253726a731ed2 + FirebaseInstanceID: 84f5f5762f1bee94ca2254f693bbf5aec6666504 + FirebaseMessaging: 82d75b3770a78bbce470769a6980429608b4c407 + FirebaseStorage: 33b92875a9b556824886cc7a65120c7d2cb3a8d8 Flutter: 0e3d915762c693b495b44d77113d4970485de6ec flutter_downloader: 058b9c41564a90500f67f3e432e3524613a7fd83 - flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 + flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186 + flutter_pdfview: 25f53dd6097661e6395b17de506e6060585946bd flutter_ringtone_player: 15eba85187230b87b2512f0e1b92225618bc03e7 - google_api_availability: 15fa42a8cd83c0a6738507ffe6e87096f12abcb8 - GoogleAppMeasurement: 137afe68bfa406c3f4221b9395253d9e5d4654cf - GoogleDataTransport: ad884314b81cdb808fb1d23787b367ff8da4e28a - GoogleDataTransportCCTSupport: d70a561f7d236af529fee598835caad5e25f6d3d - GoogleUtilities: 39530bc0ad980530298e9c4af8549e991fd033b1 + GoogleAppMeasurement: ecc30d0ab5b66d7d18e85ce1b8e2b345db60626d + GoogleDataTransport: e85fb700c9b027079ce182c3d08e12e0f9618bb4 + GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3 "gRPC-C++": 13d8ccef97d5c3c441b7e3c529ef28ebee86fad2 gRPC-Core: 4afa11bfbedf7cdecd04de535a9e046893404ed5 GTMSessionFetcher: 6f5c8abbab8a9bce4bb3f057e317728ec6182b10 - image_picker: 66aa71bc96850a90590a35d4c4a2907b0d823109 + image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09 leveldb-library: 55d93ee664b4007aac644a782d11da33fba316f7 - nanopb: c43f40fadfe79e8b8db116583945847910cbabc9 + MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb + nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c - path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 permission_handler: 8278954f2382902f63f00dd8828769c0bd6d511b - PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6 - Protobuf: 2793fcd0622a00b546c60e7cbbcc493e043e9bb9 + PromisesObjC: b14b1c6b68e306650688599de8a45e49fae81151 + Protobuf: 3dac39b34a08151c6d949560efe3f86134a3f748 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d - shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 - shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 + SwiftProtobuf: 4ef85479c18ca85b5482b343df9c319c62bda699 url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef - url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 - url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c -PODFILE CHECKSUM: f32fb4e7c14f8b3ca19a369d7be425dd9241af27 +PODFILE CHECKSUM: a7be649ff08e382c76abdb82aa94dd2686e03de2 COCOAPODS: 1.9.3 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index dfb78d7..aa18b31 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -8,9 +8,9 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 2BCB1E06702BEB21CC67037C /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 846AC7DA24839A57005EDC47 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 846AC7D924839A57005EDC47 /* GoogleService-Info.plist */; }; + 84CCB9CC250686A6007CA635 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 84CCB9CB250686A6007CA635 /* GoogleService-Info.plist */; }; + 8FF2990E87F63E94C0E96E91 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31321200669E6437325AD4E8 /* Pods_Runner.framework */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -34,13 +34,14 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 31321200669E6437325AD4E8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 4EC225A1B805CDBD5F102E79 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 846AC7D924839A57005EDC47 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; + 843570B12507BCA20027CE07 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + 84CCB9CB250686A6007CA635 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -58,7 +59,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2BCB1E06702BEB21CC67037C /* libPods-Runner.a in Frameworks */, + 8FF2990E87F63E94C0E96E91 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -89,7 +90,7 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( - 846AC7D924839A57005EDC47 /* GoogleService-Info.plist */, + 84CCB9CB250686A6007CA635 /* GoogleService-Info.plist */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, @@ -109,6 +110,7 @@ 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( + 843570B12507BCA20027CE07 /* Runner.entitlements */, 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, 97C146FA1CF9000F007C117D /* Main.storyboard */, @@ -133,7 +135,7 @@ DAE0DFCA6468DD1B18DA1D13 /* Frameworks */ = { isa = PBXGroup; children = ( - 32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */, + 31321200669E6437325AD4E8 /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -153,7 +155,6 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 39EACD7450202B9456DD1588 /* [CP] Embed Pods Frameworks */, - 3F40F0B932775B103C077553 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -203,7 +204,7 @@ files = ( 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 846AC7DA24839A57005EDC47 /* GoogleService-Info.plist in Resources */, + 84CCB9CC250686A6007CA635 /* GoogleService-Info.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, ); @@ -243,23 +244,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 3F40F0B932775B103C077553 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 7B5736D5587E0AC72E154BA7 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -333,7 +317,6 @@ /* Begin XCBuildConfiguration section */ 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -387,6 +370,9 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = M7FNQK9WX4; ENABLE_BITCODE = NO; @@ -395,6 +381,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -403,15 +390,15 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev"; + PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcs.dev; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -467,7 +454,6 @@ }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -521,6 +507,9 @@ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = M7FNQK9WX4; ENABLE_BITCODE = NO; @@ -529,6 +518,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -537,8 +527,9 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev"; + PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcs.dev; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -548,6 +539,9 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = M7FNQK9WX4; ENABLE_BITCODE = NO; @@ -556,6 +550,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -564,8 +559,9 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev"; + PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcs.dev; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m index 70e8393..43a8e76 100644 --- a/ios/Runner/AppDelegate.m +++ b/ios/Runner/AppDelegate.m @@ -1,5 +1,6 @@ #import "AppDelegate.h" #import "GeneratedPluginRegistrant.h" +@import Firebase; @implementation AppDelegate @@ -7,7 +8,16 @@ didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [GeneratedPluginRegistrant registerWithRegistry:self]; // Override point for customization after application launch. + if (@available(iOS 10.0, *)) { + [UNUserNotificationCenter currentNotificationCenter].delegate = (id) self; + } return [super application:application didFinishLaunchingWithOptions:launchOptions]; } +//- (void)application:(UIApplication *)application +// didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { +// // Pass device token to auth. +// [[FIRAuth auth] setAPNSToken:deviceToken type:FIRAuthAPNSTokenTypeUnknown]; +// // Further handling of the device token if needed by the app. +//} @end diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist index 8a475d5..9bda7c7 100644 --- a/ios/Runner/GoogleService-Info.plist +++ b/ios/Runner/GoogleService-Info.plist @@ -3,21 +3,21 @@ CLIENT_ID - 865099544652-okjme55c71n8piiphtjaqk543ngl2n3g.apps.googleusercontent.com + 944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21.apps.googleusercontent.com REVERSED_CLIENT_ID - com.googleusercontent.apps.865099544652-okjme55c71n8piiphtjaqk543ngl2n3g + com.googleusercontent.apps.944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21 API_KEY - AIzaSyCdYfjf7aYtMHMHwS4_pZ2H6lHg0kSVOlk + AIzaSyBZICfIDWbWqjxHwY_jFnWv34EtCpiiE78 GCM_SENDER_ID - 865099544652 + 944560757353 PLIST_VERSION 1 BUNDLE_ID - com.mokkon.easycard-dev + com.mokkon.fcs.dev PROJECT_ID - easy-card-dev + fcs-dev1 STORAGE_BUCKET - easy-card-dev.appspot.com + fcs-dev1.appspot.com IS_ADS_ENABLED IS_ANALYTICS_ENABLED @@ -29,8 +29,8 @@ IS_SIGNIN_ENABLED GOOGLE_APP_ID - 1:865099544652:ios:4dfae368fb05f4cc + 1:944560757353:ios:de037244faea4173fa60f8 DATABASE_URL - https://easy-card-dev.firebaseio.com + https://fcs-dev1.firebaseio.com \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 476414f..02afb47 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -18,10 +18,28 @@ $(FLUTTER_BUILD_NAME) CFBundleSignature ???? + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + com.googleusercontent.apps.944560757353-o6emrja7ad8g8ulbcvvpah9a1tul3s21 + + + CFBundleVersion $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + NSCameraUsageDescription + Camera permission is required for barcode scanning. + UIBackgroundModes + + fetch + remote-notification + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements new file mode 100644 index 0000000..903def2 --- /dev/null +++ b/ios/Runner/Runner.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/lib/fcs/common/data/providers/messaging_fcm.dart b/lib/fcs/common/data/providers/messaging_fcm.dart index 2b31272..0bbe054 100644 --- a/lib/fcs/common/data/providers/messaging_fcm.dart +++ b/lib/fcs/common/data/providers/messaging_fcm.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:fcs/fcs/common/services/messaging_service.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:logging/logging.dart'; @@ -29,7 +31,7 @@ class MessagingFCM { log.info("onMessage: $message"); if (onMessage != null) _onNotify(message, onMessage); }, - onBackgroundMessage: backgroundMessageHandler, + onBackgroundMessage: Platform.isIOS ? null : backgroundMessageHandler, onLaunch: (Map message) async { log.info("onLaunch: $message"); if (onLaunch != null) _onNotify(message, onLaunch); @@ -39,9 +41,8 @@ class MessagingFCM { if (onResume != null) _onNotify(message, onResume); }, ); - _firebaseMessaging.requestNotificationPermissions( - const IosNotificationSettings( - sound: true, badge: true, alert: true, provisional: true)); + _firebaseMessaging + .requestNotificationPermissions(const IosNotificationSettings()); _firebaseMessaging.onIosSettingsRegistered .listen((IosNotificationSettings settings) { log.info("Settings registered: $settings"); diff --git a/lib/fcs/common/helpers/api_helper.dart b/lib/fcs/common/helpers/api_helper.dart index 3e166ef..1103179 100644 --- a/lib/fcs/common/helpers/api_helper.dart +++ b/lib/fcs/common/helpers/api_helper.dart @@ -7,6 +7,7 @@ import 'package:logging/logging.dart'; import 'package:fcs/vo/status.dart'; import '../../../config.dart'; +import 'dev_info.dart'; final log = Logger('requestAPI'); @@ -19,18 +20,16 @@ Future requestAPI( String token, String url, }) async { - DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); - AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; - String deviceName = "${androidInfo.model}(${androidInfo.id})"; - log.info("device:${androidInfo.androidId},deviceName:$deviceName"); + DevInfo devInfo = await DevInfo.getDevInfo(); + + String deviceName = "${devInfo.model}(${devInfo.id})"; + log.info("device:${devInfo.deviceID},deviceName:$deviceName"); Map headers = {}; if (token != null) { headers["Token"] = token; } - if (androidInfo.androidId != null) { - headers["Device"] = androidInfo.androidId + ":" + deviceName; - } + headers["Device"] = devInfo.deviceID + ":" + deviceName; headers["Project-ID"] = Config.instance.reportProjectID; BaseOptions options = new BaseOptions( diff --git a/lib/fcs/common/helpers/dev_info.dart b/lib/fcs/common/helpers/dev_info.dart new file mode 100644 index 0000000..255bf92 --- /dev/null +++ b/lib/fcs/common/helpers/dev_info.dart @@ -0,0 +1,32 @@ +import 'package:device_info/device_info.dart'; +import 'dart:io' show Platform; + +class DevInfo { + bool isAndroid; + bool isIOS; + String deviceID; + String id; + String model; + + static DevInfo _instance; + + static Future getDevInfo() async { + if (_instance != null) return Future.value(_instance); + + _instance = DevInfo(); + DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); + + if (Platform.isAndroid) { + AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; + _instance.deviceID = androidInfo.androidId; + _instance.id = androidInfo.id; + _instance.model = androidInfo.model; + } else if (Platform.isIOS) { + IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo; + _instance.deviceID = iosDeviceInfo.identifierForVendor; + _instance.id = iosDeviceInfo.utsname.release; + _instance.model = iosDeviceInfo.model; + } + return Future.value(_instance); + } +} diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index 70db5b4..7baee50 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -15,7 +15,7 @@ import 'package:fcs/pages_fcs/package_list.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/offline_redirect.dart'; -import 'package:fcs/widget/right_left_page_route%20copy.dart'; +import 'package:fcs/widget/right_left_page_rout.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart index fc16bc5..c408e95 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/fcs/common/pages/model/main_model.dart @@ -114,8 +114,8 @@ class MainModel extends ChangeNotifier { Future _loadSetting() async { try { Services.instance.authService.getSetting().listen((event) { - this.setting = event; - notifyListeners(); + this.setting = event; + notifyListeners(); }); } finally {} // _initSetting(setting); @@ -141,6 +141,7 @@ class MainModel extends ChangeNotifier { } bool isSupport() { + return true; if (packageInfo == null || setting == null) return false; return int.parse(packageInfo.buildNumber) >= setting.supportBuildNum; } diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/fcs/common/pages/splash_page.dart index 656fe32..9ce142b 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/util.dart b/lib/fcs/common/pages/util.dart index edf5c67..922510b 100644 --- a/lib/fcs/common/pages/util.dart +++ b/lib/fcs/common/pages/util.dart @@ -1,4 +1,5 @@ import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:flutter/material.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; @@ -8,7 +9,6 @@ import 'package:url_launcher/url_launcher.dart'; import 'package:fcs/model/announcement_model.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/do_model.dart'; -import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/notification_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/user_model.dart'; @@ -579,7 +579,6 @@ Widget fcsButton(BuildContext context, String text, {Function callack}) { ); } - -String getLocalString(BuildContext context,String key){ +String getLocalString(BuildContext context, String key) { return AppTranslations.of(context).text(key); -} \ No newline at end of file +} diff --git a/lib/model/firebase_helper.dart b/lib/model/firebase_helper.dart index a1fc131..d7e59b3 100644 --- a/lib/model/firebase_helper.dart +++ b/lib/model/firebase_helper.dart @@ -13,8 +13,9 @@ final FirebaseAuth auth = FirebaseAuth.instance; Future getToken() async { FirebaseUser firebaseUser = await auth.currentUser(); - IdTokenResult token = await firebaseUser.getIdToken(); - return token.token; + // IdTokenResult token = await firebaseUser.getIdToken(); + // return token.token; + return ""; } Stream getQuerySnapshot(String path) { diff --git a/lib/model/main_model.dart b/lib/model/main_model.dart index 75f4ae2..845a7e9 100644 --- a/lib/model/main_model.dart +++ b/lib/model/main_model.dart @@ -322,32 +322,33 @@ class MainModel extends ChangeNotifier { var token = result["Token"]; // login with custom token - AuthResult r = await this.auth.signInWithCustomToken(token: token); - this.firebaseUser = r.user; + // AuthResult r = await this.auth.signInWithCustomToken(token: token); + // this.firebaseUser = r.user; isLoaded = false; _loadUser(); _logUser(this.firebaseUser); } Future getProfile(FirebaseUser firebaseUser) async { - IdTokenResult idtoken = await firebaseUser.getIdToken(); + // IdTokenResult idtoken = await firebaseUser.getIdToken(); var data = await requestAPI( "/profile", "GET", - token: idtoken.token, + token: "", //idtoken.token, ); var _token = data["Token"]; - AuthResult a = await this.auth.signInWithCustomToken(token: _token); - return a.user; + // AuthResult a = await this.auth.signInWithCustomToken(token: _token); + // return a.user; + return null; } Future _logUser(FirebaseUser firebaseUser) async { - IdTokenResult idtoken = await firebaseUser.getIdToken(); + // IdTokenResult idtoken = await firebaseUser.getIdToken(); await requestAPI( "/log", "GET", - token: idtoken.token, + token: "", //idtoken.token, ); } diff --git a/lib/vo/user.dart b/lib/vo/user.dart index 4fc0e9f..33dd768 100644 --- a/lib/vo/user.dart +++ b/lib/vo/user.dart @@ -67,13 +67,13 @@ class User { } Future setFirebaseUser(FirebaseUser firebaseUser) async { - IdTokenResult idToken = await firebaseUser.getIdToken(refresh: true); - String privileges = idToken.claims["privileges"]; - if (privileges == null || privileges == "") return; - this.claimPrivileges = privileges.split(":").toList(); + // IdTokenResult idToken = await firebaseUser.getIdToken(refresh: true); + // String privileges = idToken.claims["privileges"]; + // if (privileges == null || privileges == "") return; + // this.claimPrivileges = privileges.split(":").toList(); - this.accountID = idToken.claims["account_id"]; - this.bizID = idToken.claims["biz_id"]; + // this.accountID = idToken.claims["account_id"]; + // this.bizID = idToken.claims["biz_id"]; } User( diff --git a/lib/widget/local_text.dart b/lib/widget/local_text.dart index d82d907..c6df87e 100644 --- a/lib/widget/local_text.dart +++ b/lib/widget/local_text.dart @@ -1,10 +1,9 @@ +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'localization/app_translations.dart'; - class LocalText extends Text { final BuildContext context; LocalText(this.context, String translationKey, diff --git a/lib/widget/offline_redirect.dart b/lib/widget/offline_redirect.dart index 98cccf7..5dc1d43 100644 --- a/lib/widget/offline_redirect.dart +++ b/lib/widget/offline_redirect.dart @@ -27,7 +27,7 @@ class _OfflineRedirectState extends State { } _startOfflineTimer() async { - if (offlineTimer!=null && offlineTimer.isActive) return; + if (offlineTimer != null && offlineTimer.isActive) return; var _duration = new Duration(milliseconds: 500); this.offlineTimer = new Timer.periodic(_duration, offlineNav); } @@ -47,6 +47,6 @@ class _OfflineRedirectState extends State { @override Widget build(BuildContext context) { - return widget.child; + return SafeArea(child: widget.child); } } diff --git a/lib/widget/right_left_page_route copy.dart b/lib/widget/right_left_page_rout.dart similarity index 100% rename from lib/widget/right_left_page_route copy.dart rename to lib/widget/right_left_page_rout.dart diff --git a/pubspec.yaml b/pubspec.yaml index c377aaf..92cfb2c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,8 @@ dependencies: firebase_core: ^0.4.3+2 cloud_firestore: ^0.13.0+1 firebase_storage: ^3.1.0 - firebase_auth: ^0.14.0 + firebase_auth: ^0.16.1 + #firebase_auth: ^0.15.5+3 firebase_messaging: ^6.0.15 provider: ^4.3.2+1 flutter_launcher_icons: "^0.7.2" From fe975afedcad45ed643eb9c5194033536db7d512 Mon Sep 17 00:00:00 2001 From: sainw Date: Thu, 10 Sep 2020 16:04:09 +0630 Subject: [PATCH 10/22] update contact us --- lib/fcs/common/helpers/theme.dart | 4 +- lib/fcs/common/pages/contact/widgets.dart | 17 ++- lib/fcs/common/pages/faq/faq_edit_page.dart | 18 ++- lib/fcs/common/pages/faq/faq_page.dart | 114 +++++++++++++++---- lib/fcs/common/pages/faq/widgets.dart | 97 ++++++++++++++++ lib/fcs/common/pages/splash_page.dart | 2 +- lib/fcs/common/pages/term/term_page.dart | 58 ++++++++++ lib/fcs/common/pages/util.dart | 4 +- lib/fcs/common/pages/widgets/input_text.dart | 10 +- 9 files changed, 275 insertions(+), 49 deletions(-) create mode 100644 lib/fcs/common/pages/faq/widgets.dart diff --git a/lib/fcs/common/helpers/theme.dart b/lib/fcs/common/helpers/theme.dart index 996cca8..a14073b 100644 --- a/lib/fcs/common/helpers/theme.dart +++ b/lib/fcs/common/helpers/theme.dart @@ -11,9 +11,9 @@ const buttonBkColor = const Color(0xFF268944); const labelColor = const Color(0xFF757575); const TextStyle labelStyle = - TextStyle(fontSize: 23, color: primaryColor, fontWeight: FontWeight.w500); + TextStyle(fontSize: 20, color: primaryColor, fontWeight: FontWeight.w500); const TextStyle labelStyleMM = TextStyle( - fontSize: 23, + fontSize: 20, color: primaryColor, fontWeight: FontWeight.w500, fontFamily: "MyanmarUnicode"); diff --git a/lib/fcs/common/pages/contact/widgets.dart b/lib/fcs/common/pages/contact/widgets.dart index d9ebc32..1c068ca 100644 --- a/lib/fcs/common/pages/contact/widgets.dart +++ b/lib/fcs/common/pages/contact/widgets.dart @@ -14,13 +14,18 @@ Widget itemTitle(BuildContext context, String textKey) { ); } -Widget subItemTitle(BuildContext context, String textKey) { +Widget subItemTitle(BuildContext context, String textKey,{IconData iconData}) { return Padding( - padding: const EdgeInsets.only(left: 38.0, top: 5, bottom: 0), - child: Text( - AppTranslations.of(context).text(textKey), - style: TextStyle( - fontWeight: FontWeight.w700, fontSize: 15, color: Colors.grey), + padding: const EdgeInsets.only(left: 0, top: 0, bottom: 0), + child: Row( + children: [ + Icon(iconData,color: primaryColor,),SizedBox(width:10), + Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.w700, fontSize: 15, color: primaryColor), + ), + ], ), ); } diff --git a/lib/fcs/common/pages/faq/faq_edit_page.dart b/lib/fcs/common/pages/faq/faq_edit_page.dart index 4a21887..d3bca39 100644 --- a/lib/fcs/common/pages/faq/faq_edit_page.dart +++ b/lib/fcs/common/pages/faq/faq_edit_page.dart @@ -1,7 +1,7 @@ import 'package:fcs/fcs/common/domain/entities/faq.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/contact/widgets.dart'; +import 'package:fcs/fcs/common/pages/faq/widgets.dart'; import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; import 'package:fcs/fcs/common/pages/widgets/progress.dart'; @@ -41,25 +41,21 @@ class _FAQEditorState extends State { @override Widget build(BuildContext context) { final usaPhoneBox = InputText( - iconData: SimpleLineIcons.question, controller: _engQ, maxLines: 2, withBorder: true, ); final mmPhoneBox = InputText( - iconData: MaterialCommunityIcons.message_reply_text, controller: _mmQ, maxLines: 5, withBorder: true, ); final usaAddreesBox = InputText( - iconData: SimpleLineIcons.question, controller: _engA, maxLines: 2, withBorder: true, ); final mmAddressBox = InputText( - iconData: MaterialCommunityIcons.message_reply_text, controller: _mmA, maxLines: 5, withBorder: true, @@ -112,16 +108,16 @@ class _FAQEditorState extends State { shrinkWrap: true, padding: EdgeInsets.only(left: 24.0, right: 24.0), children: [ - itemTitle(context, "faq.edit.eng"), - subItemTitle(context, "faq.edit.question"), + Center(child: itemTitle(context, "faq.edit.eng")), + subItemTitle(context, "faq.edit.question",iconData: SimpleLineIcons.question), usaPhoneBox, - subItemTitle(context, "faq.edit.answer"), + subItemTitle(context, "faq.edit.answer",iconData: MaterialCommunityIcons.message_reply_text), mmPhoneBox, Divider(), - itemTitle(context, "faq.edit.mm"), - subItemTitle(context, "faq.edit.question"), + Center(child: itemTitle(context, "faq.edit.mm")), + subItemTitle(context, "faq.edit.question",iconData: SimpleLineIcons.question), usaAddreesBox, - subItemTitle(context, "faq.edit.answer"), + subItemTitle(context, "faq.edit.answer",iconData: MaterialCommunityIcons.message_reply_text), mmAddressBox, ], ), diff --git a/lib/fcs/common/pages/faq/faq_page.dart b/lib/fcs/common/pages/faq/faq_page.dart index 7c898dd..3233f43 100644 --- a/lib/fcs/common/pages/faq/faq_page.dart +++ b/lib/fcs/common/pages/faq/faq_page.dart @@ -39,6 +39,65 @@ class _FAQPageState extends State { @override Widget build(BuildContext context) { + return Scaffold( + body: CustomScrollView( + slivers: [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: false, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text(AppTranslations.of(context).text('faq.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => FAQEditor(), + )), + icon: Icon( + CupertinoIcons.add, + color: Colors.white, + size: 35, + )) + ], + ), + SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) => _faqItem(context, faqs[index]), + childCount: faqs.length, + ), +) + + // SliverFillRemaining( + // child: Padding( + // padding: const EdgeInsets.only(left: 18.0, right: 18), + // child: ListView.separated ( + // separatorBuilder: (_, i) => Divider(), + // itemCount: faqs.length, + // itemBuilder: (BuildContext ctxt, int index) { + // return _faqItem(context, faqs[index]); + // }), + // )), + ], + )); + } + + @override + Widget build1(BuildContext context) { Setting setting = Provider.of(context).setting; return Scaffold( body: NestedScrollView( @@ -93,32 +152,37 @@ class _FAQPageState extends State { Widget _faqItem(BuildContext context, FAQ faq) { bool isEng = Provider.of(context).isEng; - return InkWell( - onTap: () { - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => FAQDetailPage( - faq: faq, - ), - )); - }, - child: Container( - padding: EdgeInsets.all(15), - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - TextLocalStyle( - context, - faq.question(isEng), - fontSize: 16, + return Column( + children: [ + InkWell( + onTap: () { + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => FAQDetailPage( + faq: faq, ), - Spacer(), - Icon( - CupertinoIcons.right_chevron, - color: primaryColor, - size: 22, - ) - ], - )), + )); + }, + child: Container( + padding: EdgeInsets.all(15), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + TextLocalStyle( + context, + faq.question(isEng), + fontSize: 16, + ), + Spacer(), + Icon( + CupertinoIcons.right_chevron, + color: primaryColor, + size: 22, + ) + ], + )), + ), + Divider(), + ], ); } } diff --git a/lib/fcs/common/pages/faq/widgets.dart b/lib/fcs/common/pages/faq/widgets.dart new file mode 100644 index 0000000..1f7140c --- /dev/null +++ b/lib/fcs/common/pages/faq/widgets.dart @@ -0,0 +1,97 @@ + import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:flutter/material.dart'; + +Widget itemTitle(BuildContext context, String textKey) { + return Padding( + padding: const EdgeInsets.only(left: 18.0, top: 15, bottom: 0), + child: Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + ), + ); + } + +Widget subItemTitle(BuildContext context, String textKey,{IconData iconData}) { + return Padding( + padding: const EdgeInsets.only(left: 0, top: 0, bottom: 0), + child: Row( + children: [ + Icon(iconData,color: primaryColor,),SizedBox(width:10), + Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.w700, fontSize: 15, color: primaryColor), + ), + ], + ), + ); + } + + Widget contactItem(BuildContext context, String text, IconData iconData, + {Function() onTap, String labelKey}) { + return Material( + child: Padding( + padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), + child: Container( + decoration: BoxDecoration( + border: Border.all(color: Colors.grey, width: 0.8), + borderRadius: BorderRadius.all( + Radius.circular(5.0) // <--- border radius here + ), + ), + child: InkWell( + onTap: () => onTap != null ? onTap() : null, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + iconData, + color: primaryColor, + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + labelKey == null + ? Container() + : Padding( + padding: EdgeInsets.fromLTRB(10, 10, 10, 0), + child: LocalText(context, labelKey, + color: primaryColor, fontWeight: FontWeight.w500,fontSize: 18), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + text == null ? "" : text, + overflow: TextOverflow.ellipsis, + maxLines: 5, + style: TextStyle( + fontSize: 14.0, + ), + ), + ), + ], + ), + SizedBox( + width: 5, + ), + onTap == null + ? Container() + : Icon( + Icons.open_in_new, + color: Colors.grey, + size: 15, + ) + ], + ), + )), + ), + ), + ); + } \ No newline at end of file diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/fcs/common/pages/splash_page.dart index 656fe32..23cb7b6 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -81,7 +81,7 @@ class _SplashScreenState extends State { style: welcomeLabelStyle, ), Text( - "by FCS Trading", + "by FCS Logistics", style: welcomeSubLabelStyle, ), ], diff --git a/lib/fcs/common/pages/term/term_page.dart b/lib/fcs/common/pages/term/term_page.dart index af8e3e8..9bb8e7f 100644 --- a/lib/fcs/common/pages/term/term_page.dart +++ b/lib/fcs/common/pages/term/term_page.dart @@ -48,9 +48,67 @@ class _TermPageState extends State { @override Widget build(BuildContext context) { + Setting setting = Provider.of(context).setting; + return CupertinoPageScaffold( + child: CustomScrollView(slivers: [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: LocalLargeTitle( + context, + "term", + color: Colors.white, + ), + ), + actions: [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => + TermEdit(term: Term.fromSetting(setting)), + )), + icon: Icon( + CupertinoIcons.pen, + color: Colors.white, + )) + ], + ), + SliverFillRemaining(child: ZefyrTheme( + data: ZefyrThemeData().copyWith( + defaultLineTheme: LineTheme( + textStyle: TextStyle(color: Colors.black), + padding: EdgeInsets.all(0))), + child: ZefyrScaffold( + child: ZefyrEditor( + mode: ZefyrMode.view, + padding: EdgeInsets.all(16), + controller: ZefyrController(_loadDocument(setting)), + focusNode: _focusNode, + ), + )) + + ), + ])); + } + + @override + Widget build1(BuildContext context) { Setting setting = Provider.of(context).setting; return CupertinoPageScaffold( child: NestedScrollView( + floatHeaderSlivers: false, headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { return [ SliverAppBar( diff --git a/lib/fcs/common/pages/util.dart b/lib/fcs/common/pages/util.dart index edf5c67..4b9d268 100644 --- a/lib/fcs/common/pages/util.dart +++ b/lib/fcs/common/pages/util.dart @@ -1,4 +1,6 @@ import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/widget/label_widgets.dart'; import 'package:flutter/material.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; @@ -8,13 +10,11 @@ import 'package:url_launcher/url_launcher.dart'; import 'package:fcs/model/announcement_model.dart'; import 'package:fcs/model/buyer_model.dart'; import 'package:fcs/model/do_model.dart'; -import 'package:fcs/model/language_model.dart'; import 'package:fcs/model/notification_model.dart'; import 'package:fcs/model/po_model.dart'; import 'package:fcs/model/user_model.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/local_text.dart'; import 'package:fcs/vo/notification.dart' as Noti; import '../../../pages/announcement.dart'; diff --git a/lib/fcs/common/pages/widgets/input_text.dart b/lib/fcs/common/pages/widgets/input_text.dart index 0b306cb..9cb4f8c 100644 --- a/lib/fcs/common/pages/widgets/input_text.dart +++ b/lib/fcs/common/pages/widgets/input_text.dart @@ -37,8 +37,14 @@ class InputText extends StatelessWidget { style: textStyle, maxLines: maxLines, decoration: new InputDecoration( - labelText:labelTextKey==null?null: AppTranslations.of(context).text(labelTextKey), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + hintText: '', + hintStyle: TextStyle( + height: 2.5, + ), + labelText: labelTextKey == null + ? null + : AppTranslations.of(context).text(labelTextKey), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, icon: iconData == null ? null : Icon( From 96a095e2e97730150d0ed434a42392280815a36a Mon Sep 17 00:00:00 2001 From: sainw Date: Fri, 11 Sep 2020 16:14:36 +0630 Subject: [PATCH 11/22] add faq --- assets/fonts/Myanmar3_2018.ttf | Bin 0 -> 107792 bytes assets/local/localization_en.json | 2 + assets/local/localization_mu.json | 3 +- lib/app.dart | 6 +- lib/fcs/common/data/providers/auth_fb.dart | 7 + lib/fcs/common/domain/entities/customer.dart | 36 ++ lib/fcs/common/domain/entities/faq.dart | 33 +- lib/fcs/common/domain/entities/role.dart | 72 ++++ lib/fcs/common/domain/entities/user.dart | 263 ++----------- lib/fcs/common/helpers/theme.dart | 9 +- .../common/pages/contact/contact_editor.dart | 118 +++--- .../common/pages/contact/contact_page.dart | 167 ++++---- .../pages/customers/customer_editor.dart | 363 ++++++++++++++++++ .../common/pages/customers/customer_list.dart | 142 +++++++ .../pages/customers/invitation_page.dart | 67 ++++ .../pages/customers/model/customer_model.dart | 66 ++++ lib/fcs/common/pages/faq/faq_detail_page.dart | 142 ++++--- lib/fcs/common/pages/faq/faq_edit_page.dart | 171 +++++---- lib/fcs/common/pages/faq/faq_page.dart | 183 +++------ lib/fcs/common/pages/faq/model/faq_model.dart | 40 +- lib/fcs/common/pages/home_page.dart | 32 +- lib/fcs/common/pages/model/main_model.dart | 65 ++-- lib/fcs/common/pages/profile_page.dart | 99 +---- lib/fcs/common/pages/signin/code_page.dart | 8 +- lib/fcs/common/pages/signin/signin_page.dart | 9 + lib/fcs/common/pages/term/term_page.dart | 65 ++-- .../pages/widgets/bottom_up_page_route.dart | 23 ++ lib/fcs/common/pages/widgets/input_text.dart | 11 +- pubspec.yaml | 5 + 29 files changed, 1370 insertions(+), 837 deletions(-) create mode 100644 assets/fonts/Myanmar3_2018.ttf create mode 100644 lib/fcs/common/domain/entities/customer.dart create mode 100644 lib/fcs/common/domain/entities/role.dart create mode 100644 lib/fcs/common/pages/customers/customer_editor.dart create mode 100644 lib/fcs/common/pages/customers/customer_list.dart create mode 100644 lib/fcs/common/pages/customers/invitation_page.dart create mode 100644 lib/fcs/common/pages/customers/model/customer_model.dart create mode 100644 lib/fcs/common/pages/widgets/bottom_up_page_route.dart diff --git a/assets/fonts/Myanmar3_2018.ttf b/assets/fonts/Myanmar3_2018.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2a6d3c8e975f63d7ea9cfe6812e473937eff3f9c GIT binary patch literal 107792 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 m>JC?i?r_!Ta8?(vjT { final ContactModel contactModel =new ContactModel(); final TermModel termModel=new TermModel(); final MainModel mainModel = new MainModel(); + final FAQModel faqModel = new FAQModel(); final UserModel userModel = new UserModel(); final ProductModel productModel = new ProductModel(); @@ -130,7 +132,6 @@ class _AppState extends State { ..addModel(messageModel) ..addModel(shipmentRateModel) ..addModel(invoiceModel) - ..addModel(customerModel) ..addModel(discountModel); this.mainModel.init(); @@ -249,6 +250,7 @@ class _AppState extends State { ChangeNotifierProvider.value(value: mainModel2), ChangeNotifierProvider.value(value: contactModel), ChangeNotifierProvider.value(value: termModel), + ChangeNotifierProvider.value(value: faqModel), ], child: Consumer( builder: (context, value, child) { diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/fcs/common/data/providers/auth_fb.dart index 281ad5a..8f1eb87 100644 --- a/lib/fcs/common/data/providers/auth_fb.dart +++ b/lib/fcs/common/data/providers/auth_fb.dart @@ -109,6 +109,13 @@ class AuthFb { user.hasSignup = idToken.claims.containsKey("signup") && idToken.claims["signup"]; user.phoneNumber = firebaseUser.phoneNumber; + + // add privileges + String privileges = idToken.claims["privileges"]; + if (privileges != null && privileges != "") { + user.privileges = privileges.split(":").toList(); + } + return user; } diff --git a/lib/fcs/common/domain/entities/customer.dart b/lib/fcs/common/domain/entities/customer.dart new file mode 100644 index 0000000..0fb51e7 --- /dev/null +++ b/lib/fcs/common/domain/entities/customer.dart @@ -0,0 +1,36 @@ + + +class Customer { + String id; + String name; + String phoneNumber; + String status; + + Customer({ + this.id, + this.name, + this.status, + this.phoneNumber, + }); + + factory Customer.fromMap(Map map, String docID) { + return Customer( + id: docID, + name: map['user_name'], + phoneNumber: map['phone_number'], + status: map['status'], + ); + } + + Map toMap() { + return { + 'user_name': name, + 'phone_number': phoneNumber, + }; + } + + @override + String toString() { + return 'Customer{name: $name, phoneNumber: $phoneNumber,statis:$status}'; + } +} diff --git a/lib/fcs/common/domain/entities/faq.dart b/lib/fcs/common/domain/entities/faq.dart index 4c694d7..8782c55 100644 --- a/lib/fcs/common/domain/entities/faq.dart +++ b/lib/fcs/common/domain/entities/faq.dart @@ -1,27 +1,48 @@ class FAQ { String id; + int sn; String questionEng; String questionMm; String answerEng; String answerMm; - String question(bool isEng) => isEng?questionEng:questionMm; - String answer(bool isEng) => isEng?answerEng:answerMm; - - Map images; - FAQ({this.id,this.questionEng,this.questionMm,this.answerEng,this.answerMm,this.images}); + String question(bool isEng) => isEng ? questionEng : questionMm; + String answer(bool isEng) => isEng ? answerEng : answerMm; + Map imageUrls; + FAQ( + {this.id, + this.sn, + this.questionEng, + this.questionMm, + this.answerEng, + this.answerMm, + this.imageUrls}); Map toMap() { return { + 'id': id, + 'sn':sn, 'question_eng': questionEng, 'answer_eng': answerEng, 'question_mm': questionMm, 'answer_mm': answerMm, - 'images': images, + 'images': imageUrls, }; } + factory FAQ.fromMap(Map map, String id) { + return FAQ( + id: id, + sn: map['sn'], + questionEng: map['question_eng'], + answerEng: map['answer_eng'], + questionMm: map['question_mm'], + answerMm: map['answer_mm'], + imageUrls: Map.from(map['images'] ?? Map()), + ); + } + @override String toString() { return 'FAQ{id: $id, questionEng: $questionEng,questionMm:$questionMm}'; diff --git a/lib/fcs/common/domain/entities/role.dart b/lib/fcs/common/domain/entities/role.dart new file mode 100644 index 0000000..6a2b0df --- /dev/null +++ b/lib/fcs/common/domain/entities/role.dart @@ -0,0 +1,72 @@ +class Role { + String roleID; + String roleName; + String privileges; + Role({this.roleName, this.roleID, this.privileges}); + + Role.fromJson(Map json) { + roleName = json['role_name']; + roleID = json['role_id']; + privileges = json['privileges']; + } + +} + +class Parser { + String status; + String message; + Role data; + Parser({this.status, this.message, this.data}); + + Parser.fromJson(Map json) { + status = json['status']; + message = json['message']; + if (json['status'] == 'Ok') { + data = Role.fromJson(json['data']); + } + } +} + +class StatusParser { + String status; + String message; + StatusParser(this.status, this.message); + + StatusParser.fromJson(Map json) { + status = json['status']; + message = json['message']; + } +} + +class Privilege { + String id; + String name; + String desc; + bool sysAdminOnly = true; + bool isChecked = false; + + Privilege({this.id, this.name, this.desc, this.isChecked, this.sysAdminOnly}); + + factory Privilege.fromMap(Map map, String docID) { + return Privilege( + id: docID, + name: map['name'], + desc: map['desc'], + sysAdminOnly: map['sys_admin_only']); + } +} + +class UserLevel { + String id; + String name; + int level; + UserLevel({this.id, this.name, this.level}); + + factory UserLevel.fromMap(Map map, String docID) { + return UserLevel( + id: docID, + name: map['name'], + level: map['level'] + ); + } +} diff --git a/lib/fcs/common/domain/entities/user.dart b/lib/fcs/common/domain/entities/user.dart index 768d8b1..56309fe 100644 --- a/lib/fcs/common/domain/entities/user.dart +++ b/lib/fcs/common/domain/entities/user.dart @@ -1,283 +1,70 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:firebase_auth/firebase_auth.dart'; - class User { String id; String name; String phoneNumber; bool hasSignup; + List privileges = []; String fcsID; - String shippingAddress; - String deliveryAddress; + String get phone => phoneNumber != null && phoneNumber.startsWith("959") ? "0${phoneNumber.substring(2)}" : phoneNumber; - List claimPrivileges = []; - - final String dateofBirth; - final String gender; - final String status; - final bool disable; - bool registeredBuyer; - List privilegeIds; - String roleName; - String roleID; - bool agreeTerms; - String bizID; - String accountID; - String email; - bool isBlock; - int userLevel; - String userLevelID; - - String frontUrl; - String backUrl; - String selfieUrl; - - DateTime lastActiveTime; - String device; - - String primaryDeviceID; - String primaryDeviceName; - - String pin; - - String get getname => this.name; - String get getphonenumber => this.phoneNumber; - String get getdateofBirth => this.dateofBirth; - bool get getdisable => this.disable; - - Future setFirebaseUser(FirebaseUser firebaseUser) async { - IdTokenResult idToken = await firebaseUser.getIdToken(refresh: true); - String privileges = idToken.claims["privileges"]; - if (privileges == null || privileges == "") return; - this.claimPrivileges = privileges.split(":").toList(); - - this.accountID = idToken.claims["account_id"]; - this.bizID = idToken.claims["biz_id"]; - } - - User( - {this.id, - this.name, - this.gender, - this.phoneNumber, - this.fcsID, - this.shippingAddress, - this.deliveryAddress, - this.dateofBirth, - this.roleName, - this.roleID, - this.privilegeIds, - this.email, - this.disable, - this.status, - this.frontUrl, - this.backUrl, - this.selfieUrl, - this.registeredBuyer, - this.agreeTerms, - this.lastActiveTime, - this.device, - this.primaryDeviceID, - this.primaryDeviceName, - this.isBlock, - this.userLevel, - this.userLevelID, - this.pin}); + User({ + this.id, + this.name, + this.phoneNumber, + this.fcsID, + }); factory User.fromJson(Map json) { return User( - id: json['id'], - name: json['user_name'], - phoneNumber: json['phone_number'], - dateofBirth: json['dob'], - gender: json['gender'], - frontUrl: json['front_url'], - backUrl: json['back_url'], - selfieUrl: json['selfie_url'], - status: json['status'], - agreeTerms: json['agree_terms'], - disable: json['disable'], - registeredBuyer: json['registered_buyer'], - privilegeIds: json['privileges'], - email: json['email'], - isBlock: json['black_list'], - userLevel: json['user_level'], - userLevelID: json['user_level_id'], - pin: json['pin']); - } - - factory User.fromUserJson(Map json) { - DateTime parsedDate = DateTime.parse(json['last_active_time']); - - return User( - id: json['id'], - name: json['user_name'], - phoneNumber: json['phone_number'], - dateofBirth: json['dob'], - roleName: json['role_name'], - roleID: json['role_id'], - disable: json['disable'], - gender: json['gender'], - status: json['status'], - lastActiveTime: parsedDate == null ? null : parsedDate, - device: json['last_active_device'], - email: json['email'], - primaryDeviceID: json['primary_device_id'], - primaryDeviceName: json['primary_device_name'], - userLevel: json['user_level'], - userLevelID: json['user_level_id'], - pin: json['pin']); + id: json['id'], + name: json['user_name'], + phoneNumber: json['phone_number'], + ); } Map toJson() => { 'id': id, 'user_name': name, - 'gender': gender, 'phone_number': phoneNumber, - 'dob': dateofBirth, - 'roleName': roleName, - 'roleId': roleID, - 'disable': disable, - 'status': status, - 'registered_buyer': registeredBuyer, - 'agree_terms': agreeTerms, - 'front_url': frontUrl, - 'back_url': backUrl, - 'selfie_url': selfieUrl, - 'email': email, - 'black_list': isBlock, - 'user_level': userLevel, - 'user_level_id': userLevelID, - 'pin': pin, - 'privileges': privilegeIds, }; Map toMap() { return { 'user_name': name, 'phone_number': phoneNumber, - 'dob': dateofBirth, - 'role_name': roleName, - 'role_id': roleID, - 'disable': disable, - 'gender': gender, - 'status': status, - 'email': email, - 'black_list': isBlock, - 'user_level': userLevel, - 'user_level_id': userLevelID, - 'pin': pin }; } factory User.fromMap(Map map, String docID) { - var activeTime = (map['last_active_time'] as Timestamp); return User( - id: docID, - name: map['user_name'], - phoneNumber: map['phone_number'], - privilegeIds: - map['privileges'] == null ? [] : map['privileges'].cast(), - dateofBirth: map['dob'], - roleName: map['role_name'], - roleID: map['role_id'], - disable: map['disable'], - gender: map['gender'], - status: map['status'], - registeredBuyer: map['registered_buyer'], - agreeTerms: map['agree_terms'] == null ? false : map['agree_terms'], - lastActiveTime: activeTime == null ? null : activeTime.toDate(), - device: map['last_active_device'], - email: map['email'], - primaryDeviceID: map['primary_device_id'], - primaryDeviceName: map['primary_device_name'], - isBlock: map['black_list'], - userLevel: map['user_level'], - userLevelID: map['user_level_id'], - pin: map['pin']); + id: docID, + name: map['user_name'], + phoneNumber: map['phone_number'], + ); } - bool isBlockUser() { - return this.isBlock == true; + bool isCustomer() { + return privileges == null || privileges.length == 0; } - bool isPrimaryDevice() { - return this.primaryDeviceID != null && this.primaryDeviceID != ''; - } - - bool isRegisteredBuyer() { - return this.registeredBuyer != null && this.registeredBuyer; - } - - bool isSysAdmin() { - return claimPrivileges != null - ? claimPrivileges.contains('sys_admin') - : false; - } - - bool isSysSupport() { - return claimPrivileges != null - ? claimPrivileges.contains('sys_support') - : false; - } - - bool isBizAdmin() { - return claimPrivileges != null ? claimPrivileges.contains('ba') : false; - } - - bool isBuyer() { - return claimPrivileges == null || claimPrivileges.length == 0; - } - - bool isEmail() { - return email != null; - } - - bool hasAccount() { - return isOwner() || - (claimPrivileges != null ? claimPrivileges.contains('a') : false); - } - - bool hasDelivery() { - return isOwner() || - (claimPrivileges != null ? claimPrivileges.contains('d') : false); - } - - bool hasBuyer() { - return isOwner() || - (claimPrivileges != null ? claimPrivileges.contains('b') : false); - } - - bool isOwner() { - return claimPrivileges != null ? claimPrivileges.contains('o') : false; - } - - bool isOwnerAndAbove() { - return isOwner() || isBizAdmin() || isSysAdmin(); + bool hasSysAdmin() { + return privileges != null ? privileges.contains('sa') : false; } bool hasAdmin() { - return isOwner() || - (claimPrivileges != null ? claimPrivileges.contains('admin') : false); + return privileges != null ? privileges.contains('admin') : false; } - bool hasDO() { - return isOwner() || - (claimPrivileges != null ? claimPrivileges.contains('do') : false); + bool hasMaintenance() { + return privileges != null ? privileges.contains('mt') : false; } - bool hasPO() { - return isOwner() || - (claimPrivileges != null ? claimPrivileges.contains('po') : false); - } - - bool hasInventory() { - return isOwner() || - (claimPrivileges != null ? claimPrivileges.contains('inv') : false); + bool hasCustomers() { + return privileges != null ? privileges.contains('c') : false; } @override diff --git a/lib/fcs/common/helpers/theme.dart b/lib/fcs/common/helpers/theme.dart index a14073b..c52f8ba 100644 --- a/lib/fcs/common/helpers/theme.dart +++ b/lib/fcs/common/helpers/theme.dart @@ -16,12 +16,13 @@ const TextStyle labelStyleMM = TextStyle( fontSize: 20, color: primaryColor, fontWeight: FontWeight.w500, - fontFamily: "MyanmarUnicode"); + height: 1, + fontFamily: "Myanmar3"); const TextStyle subMenuStyle = TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500); const TextStyle subMenuStyleMM = TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500, - fontFamily: "MyanmarUnicode"); + fontFamily: "Myanmar3"); const TextStyle welcomeLabelStyle = TextStyle(fontSize: 23, color: primaryColor, fontWeight: FontWeight.w500); @@ -53,13 +54,13 @@ TextStyle newLabelStyleMM( color: color == null ? secondaryColor : color, fontWeight: fontWeight == null ? FontWeight.w500 : fontWeight, decoration: underline ? TextDecoration.underline : TextDecoration.none, - fontFamily: "MyanmarUnicode"); + fontFamily: "Myanmar3"); } const TextStyle photoLabelStyle = TextStyle(color: Colors.black, fontSize: 13.0); const TextStyle photoLabelStyleMM = TextStyle( - color: Colors.black, fontSize: 13.0, fontFamily: "MyanmarUnicode"); + color: Colors.black, fontSize: 13.0, fontFamily: "Myanmar3"); const TextStyle textStyle = TextStyle(fontSize: 14, color: Colors.black87, fontWeight: FontWeight.w500); const TextStyle textStyleOdd = TextStyle( diff --git a/lib/fcs/common/pages/contact/contact_editor.dart b/lib/fcs/common/pages/contact/contact_editor.dart index 0404bf8..d43ac31 100644 --- a/lib/fcs/common/pages/contact/contact_editor.dart +++ b/lib/fcs/common/pages/contact/contact_editor.dart @@ -75,68 +75,64 @@ class _ContactEditorState extends State { return LocalProgress( inAsyncCall: _isLoading, - child: CupertinoPageScaffold( - child: NestedScrollView( - headerSliverBuilder: - (BuildContext context, bool innerBoxIsScrolled) { - return [ - SliverAppBar( - leading: IconButton( - icon: Icon( - CupertinoIcons.back, - size: 30, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - expandedHeight: 150.0, - floating: true, - pinned: true, - flexibleSpace: FlexibleSpaceBar( - centerTitle: true, - titlePadding: EdgeInsets.symmetric(vertical: 10), - title: Text( - AppTranslations.of(context) - .text('contact.edit.title'), - style: TextStyle( - color: Colors.white, - )), - ), - actions: [ - IconButton( - onPressed: () => _submit(), - icon: Icon( - Icons.save, - color: Colors.white, - )) - ], - ), - ]; - }, - body: Material( - child: Form( - key: _formKey, - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - itemTitle(context, "contact.callus"), - usaPhoneBox, - mmPhoneBox, - Divider(), - itemTitle(context, "contact.findus"), - usaAddreesBox, - mmAddressBox, - Divider(), - itemTitle(context, "contact.emailus"), - emailBox, - Divider(), - itemTitle(context, "contact.visitus"), - faceBookBox - ], - ), + child: Scaffold( + body: CustomScrollView(slivers: [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: false, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: + Text(AppTranslations.of(context).text('contact.edit.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => _submit(), + icon: Icon( + Icons.save, + color: Colors.white, + )) + ], + ), + SliverList( + delegate: SliverChildListDelegate([ + Padding( + padding: const EdgeInsets.only(left:18.0,right:18), + child: Column( + children: [ + itemTitle(context, "contact.callus"), + usaPhoneBox, + mmPhoneBox, + Divider(), + itemTitle(context, "contact.findus"), + usaAddreesBox, + mmAddressBox, + Divider(), + itemTitle(context, "contact.emailus"), + emailBox, + Divider(), + itemTitle(context, "contact.visitus"), + faceBookBox + ], ), - )))); + ), + ]), + ) + ]), + )); } _submit() async { diff --git a/lib/fcs/common/pages/contact/contact_page.dart b/lib/fcs/common/pages/contact/contact_page.dart index ab131c1..8952084 100644 --- a/lib/fcs/common/pages/contact/contact_page.dart +++ b/lib/fcs/common/pages/contact/contact_page.dart @@ -22,93 +22,92 @@ class _ContactPageState extends State { @override Widget build(BuildContext context) { Setting setting = Provider.of(context).setting; + bool isEditable = context.select((MainModel m) => m.contactEditable()); + return Scaffold( - body: NestedScrollView( - headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { - return [ - SliverAppBar( - leading: IconButton( - icon: Icon( - CupertinoIcons.back, - size: 30, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - expandedHeight: 150.0, - floating: true, - pinned: true, - flexibleSpace: FlexibleSpaceBar( - centerTitle: true, - titlePadding: EdgeInsets.symmetric(vertical: 10), - title: Text(AppTranslations.of(context).text('contact.title'), - style: TextStyle( - color: Colors.white, - )), - ), - actions: [ - IconButton( - onPressed: () => - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => ContactEditor( - contact: Contact.fromSetting(setting), - ), - )), - icon: Icon( - CupertinoIcons.pen, - color: Colors.white, - )) - ], + body: CustomScrollView(slivers: [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, ), - ]; - }, - body: ListView( - children: [ - itemTitle(context, "contact.callus"), - contactItem(context, setting.usaContactNumber, CupertinoIcons.phone, - onTap: () => _call(setting.usaContactNumber), - labelKey: "contact.usa.phone"), - contactItem( - context, - setting.mmContactNumber, - CupertinoIcons.phone, - onTap: () => _call( - setting.mmContactNumber, - ), - labelKey: "contact.mm.phone", - ), - itemTitle(context, "contact.findus"), - contactItem( - context, - setting.usaAddress, - CupertinoIcons.location, - labelKey: "contact.usa.address", - ), - contactItem( - context, - setting.mmAddress, - CupertinoIcons.location, - labelKey: "contact.mm.address", - ), - itemTitle(context, "contact.emailus"), - contactItem( - context, - setting.emailAddress, - CupertinoIcons.mail, - onTap: () => _email(setting.emailAddress), - labelKey: "contact.fcs.email", - ), - itemTitle(context, "contact.visitus"), - contactItem( - context, - setting.facebookLink, - FontAwesomeIcons.facebook, - onTap: () => _opencontactItem(setting.facebookLink), - labelKey: "contact.facebook", - ), - ], + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: false, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text(AppTranslations.of(context).text('contact.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: isEditable + ? [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => ContactEditor( + contact: Contact.fromSetting(setting), + ), + )), + icon: Icon( + CupertinoIcons.pen, + color: Colors.white, + )) + ] + : [], ), - ), + SliverList( + delegate: SliverChildListDelegate([ + itemTitle(context, "contact.callus"), + contactItem(context, setting.usaContactNumber, CupertinoIcons.phone, + onTap: () => _call(setting.usaContactNumber), + labelKey: "contact.usa.phone"), + contactItem( + context, + setting.mmContactNumber, + CupertinoIcons.phone, + onTap: () => _call( + setting.mmContactNumber, + ), + labelKey: "contact.mm.phone", + ), + itemTitle(context, "contact.findus"), + contactItem( + context, + setting.usaAddress, + CupertinoIcons.location, + labelKey: "contact.usa.address", + ), + contactItem( + context, + setting.mmAddress, + CupertinoIcons.location, + labelKey: "contact.mm.address", + ), + itemTitle(context, "contact.emailus"), + contactItem( + context, + setting.emailAddress, + CupertinoIcons.mail, + onTap: () => _email(setting.emailAddress), + labelKey: "contact.fcs.email", + ), + itemTitle(context, "contact.visitus"), + contactItem( + context, + setting.facebookLink, + FontAwesomeIcons.facebook, + onTap: () => _opencontactItem(setting.facebookLink), + labelKey: "contact.facebook", + ), + ])) + ]), ); } diff --git a/lib/fcs/common/pages/customers/customer_editor.dart b/lib/fcs/common/pages/customers/customer_editor.dart new file mode 100644 index 0000000..a740afd --- /dev/null +++ b/lib/fcs/common/pages/customers/customer_editor.dart @@ -0,0 +1,363 @@ +import 'package:fcs/fcs/common/domain/entities/customer.dart'; +import 'package:fcs/fcs/common/domain/entities/role.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; + +typedef void FindCallBack(); + +class CustomerEditor extends StatefulWidget { + final Customer customer; + const CustomerEditor({this.customer}); + @override + _CustomerEditorState createState() => _CustomerEditorState(); +} + +class _CustomerEditorState extends State { + TextEditingController _name = new TextEditingController(); + TextEditingController _phone = new TextEditingController(); + TextEditingController _phoneInput = new TextEditingController(); + TextEditingController _status = new TextEditingController(); + + final _formKey = GlobalKey(); + bool _isLoading = false; + String currentBizId; + bool isSend = false; + User user; + User selectedUser; + List privileges = [ + Privilege(name: 'Manage shipment'), + Privilege(name: 'Manage pickups'), + Privilege(name: 'Manage packages'), + Privilege(name: 'Manage deliveries'), + Privilege(name: 'Admin') + ]; + + @override + void initState() { + super.initState(); + // privileges = Provider.of(context, listen: false).privileges; + if (widget.customer != null) { + _name.text = widget.customer.name; + _phone.text = widget.customer.phoneNumber; + _status.text = widget.customer.status; + // privileges.forEach((p) => widget.employee.privilegeIds.contains(p.id) + // ? p.isChecked = true + // : p.isChecked = false); + } + } + + List showprivilegeList(BuildContext context) { + return privileges.map((p) { + return new ListTile( + title: new Row( + children: [ + new Checkbox( + value: p.isChecked == null ? false : p.isChecked, + activeColor: primaryColor, + onChanged: (bool value) { + setState(() { + p.isChecked = value; + }); + }), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + new Text( + p.name, + style: TextStyle( + fontSize: 15.0, + ), + ), + // Container( + // width: MediaQuery.of(context).size.width * 0.5, + // child: new Text( + // userModel.getPrivileges[index].desc, + // style: + // TextStyle(fontSize: 12.0, color: Colors.grey[600]), + // ), + // ), + ], + ), + ], + )); + }).toList(); + } + + Widget phoneInputbox(BuildContext context, FindCallBack findCallBack) { + var languageModel = Provider.of(context); + return Container( + padding: EdgeInsets.only(top: 10), + child: Stack( + alignment: const Alignment(1.2, 1.0), + children: [ + TextFormField( + controller: _phoneInput, + autofocus: false, + cursorColor: primaryColor, + keyboardType: TextInputType.phone, + style: textStyle, + decoration: new InputDecoration( + labelText: AppTranslations.of(context).text('employee.phone'), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + icon: Icon( + Icons.phone, + color: primaryColor, + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + ), + new FlatButton( + onPressed: () { + this.isSend = true; + findCallBack(); + }, + child: new Icon( + Icons.search, + size: 25, + )) + ], + )); + } + + @override + Widget build(BuildContext context) { + final namebox = TextFormField( + controller: _name, + autofocus: false, + readOnly: true, + cursorColor: primaryColor, + decoration: new InputDecoration( + border: InputBorder.none, + focusedBorder: InputBorder.none, + icon: Icon( + Icons.person, + color: primaryColor, + ), + ), + ); + + final displayPhoneNo = TextFormField( + controller: _phone, + autofocus: false, + readOnly: true, + cursorColor: primaryColor, + decoration: new InputDecoration( + border: InputBorder.none, + focusedBorder: InputBorder.none, + icon: Icon( + Icons.phone, + color: primaryColor, + ), + ), + ); + + var phoneNumberBox = Row( + children: [ + Expanded(child: displayPhoneNo), + Expanded( + child: InkWell( + onTap: () => call(context, _phone.text), + child: Icon( + Icons.open_in_new, + color: Colors.grey, + size: 15, + ), + ), + ), + ], + ); + + final statusbox = TextFormField( + controller: _status, + autofocus: false, + readOnly: true, + cursorColor: primaryColor, + decoration: new InputDecoration( + border: InputBorder.none, + focusedBorder: InputBorder.none, + icon: Icon( + Icons.av_timer, + color: primaryColor, + ), + ), + ); + + final updateButton = Container( + padding: EdgeInsets.only(top: 40), + child: Container( + height: 45.0, + decoration: BoxDecoration( + color: primaryColor, + shape: BoxShape.rectangle, + ), + child: ButtonTheme( + minWidth: 900.0, + height: 100.0, + child: FlatButton( + onPressed: () {}, + child: LocalText( + context, + 'customer.update', + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ); + + final addButton = Container( + padding: EdgeInsets.only(top: 40), + child: Container( + height: 45.0, + decoration: BoxDecoration( + color: primaryColor, + shape: BoxShape.rectangle, + ), + child: ButtonTheme( + minWidth: 900.0, + height: 100.0, + child: FlatButton( + onPressed: () {}, + child: LocalText( + context, + 'customer.add', + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + title: LocalText( + context, + "customer.form.title", + fontSize: 20, + color: Colors.white, + ), + // actions: [ + // widget.customer == null || !mainModel.showHistoryBtn() + // ? Container() + // : IconButton( + // icon: Icon(Icons.history), + // onPressed: () { + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => DocumentLogPage( + // docID: widget.customer.docID)), + // ); + // }, + // ), + // ], + ), + body: ListView( + shrinkWrap: true, + padding: EdgeInsets.only(left: 24.0, right: 24.0), + children: [ + widget.customer == null + ? phoneInputbox(context, () => _findUser(context)) + : phoneNumberBox, + widget.customer == null + ? this.isSend ? namebox : Container() + : namebox, + statusbox, + // widget.customer == null ? addButton : updateButton, + SizedBox( + height: 20, + ) + ], + ), + )); + } + + _add(BuildContext context) async { + if (selectedUser == null) return; + setState(() { + _isLoading = true; + }); + // var employeeModel = Provider.of(context); + // try { + // await employeeModel.updatePrivileges( + // this.selectedUser.docID, privilegesIDs()); + // Navigator.pop(context); + // } catch (e) { + // showMsgDialog(context, "Error", e.toString()); + // } finally { + // setState(() { + // _isLoading = false; + // }); + // } + } + + List privilegesIDs() { + return this.privileges.where((p) => p.isChecked).map((p) => p.id).toList(); + } + + _save() async { + setState(() { + _isLoading = true; + }); + if (widget.customer == null) return; + // var employeeModel = Provider.of(context); + // try { + // await employeeModel.updatePrivileges( + // widget.customer.docID, privilegesIDs()); + // Navigator.pop(context); + // } catch (e) { + // showMsgDialog(context, "Error", e.toString()); + // } finally { + // setState(() { + // _isLoading = false; + // }); + // } + } + + _findUser(BuildContext context) async { + // var userModel = Provider.of(context); + // setState(() { + // _isLoading = true; + // }); + // try { + // selectedUser = await userModel.findUser(_phoneInput.text); + // setState(() { + // isSend = true; + // _name.text = selectedUser.name; + // if (selectedUser.privilegeIds != null) { + // privileges.forEach((p) => selectedUser.privilegeIds.contains(p.id) + // ? p.isChecked = true + // : p.isChecked = false); + // } + // }); + // } catch (e) { + // showMsgDialog(context, "Error", e.toString()); + // } finally { + // setState(() { + // _isLoading = false; + // }); + // } + } +} diff --git a/lib/fcs/common/pages/customers/customer_list.dart b/lib/fcs/common/pages/customers/customer_list.dart new file mode 100644 index 0000000..aae62c8 --- /dev/null +++ b/lib/fcs/common/pages/customers/customer_list.dart @@ -0,0 +1,142 @@ +import 'package:fcs/fcs/common/domain/entities/customer.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/customers/invitation_page.dart'; +import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_icons/flutter_icons.dart'; +import 'package:intl/intl.dart'; + +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/widget/progress.dart'; + +import 'customer_editor.dart'; + +class CustomerList extends StatefulWidget { + @override + _CustomerListState createState() => _CustomerListState(); +} + +class _CustomerListState extends State { + var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm:ss a'); + final double dotSize = 15.0; + bool _isLoading = false; + + @override + Widget build(BuildContext context) { + var customerModel = Provider.of(context); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + actions: [ + IconButton( + icon: Icon( + Icons.search, + color: Colors.white, + ), + iconSize: 30, + onPressed: () => {}, + ), + ], + backgroundColor: primaryColor, + title: LocalText( + context, + 'customer.list.title', + color: Colors.white, + fontSize: 20, + ), + ), + floatingActionButton: FloatingActionButton.extended( + onPressed: () { + Navigator.of(context).push(BottomUpPageRoute(InvitationPage())); + }, + icon: Icon(Icons.add), + label: Text(AppTranslations.of(context).text("customer.invite")), + backgroundColor: primaryColor, + ), + body: new ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(left: 15, right: 15, top: 15), + shrinkWrap: true, + itemCount: customerModel.customers.length, + itemBuilder: (BuildContext context, int index) { + Customer customer = customerModel.customers[index]; + return Stack( + children: [ + InkWell( + onTap: () { + Navigator.of(context).push( + BottomUpPageRoute(CustomerEditor(customer: customer))); + }, + child: Row( + children: [ + Expanded( + child: new Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: new Row( + children: [ + new Padding( + padding: new EdgeInsets.symmetric( + horizontal: 32.0 - dotSize / 2), + child: Icon( + Feather.user, + color: primaryColor, + size: 40, + ), + ), + new Expanded( + child: new Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + new Text( + customer.name, + style: new TextStyle( + fontSize: 15.0, + color: primaryColor), + ), + Padding( + padding: + const EdgeInsets.only(top: 8.0), + child: new Text( + customer.phoneNumber, + style: new TextStyle( + fontSize: 15.0, + color: Colors.grey), + ), + ), + ], + ), + ), + ], + ), + ), + ), + Padding( + padding: const EdgeInsets.only(right: 10), + child: getStatus(customer.status), + ), + ], + ), + ), + ], + ); + }), + ), + ); + } +} diff --git a/lib/fcs/common/pages/customers/invitation_page.dart b/lib/fcs/common/pages/customers/invitation_page.dart new file mode 100644 index 0000000..1b93e4f --- /dev/null +++ b/lib/fcs/common/pages/customers/invitation_page.dart @@ -0,0 +1,67 @@ +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:flutter/material.dart'; +import 'package:fcs/widget/progress.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; + +class InvitationPage extends StatefulWidget { + @override + _InvitationPageState createState() => _InvitationPageState(); +} + +class _InvitationPageState extends State { + TextEditingController _nameController = new TextEditingController(); + TextEditingController _phoneController = new TextEditingController(); + + bool _isLoading = false; + + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon( + Icons.close, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + title: Text(AppTranslations.of(context).text("customer.form.title")), + ), + body: Container( + padding: EdgeInsets.all(18), + child: Column( + children: [ + Expanded( + child: ListView( + children: [ + fcsInput("Name", Icons.person, controller: _nameController), + fcsInput("Phone Number", Icons.phone, + controller: _phoneController), + SizedBox(height: 30), + ], + ), + ), + fcsButton(context, "Invite", callack: () {}), + SizedBox(height: 10) + ], + ), + ), + ), + ); + } +} diff --git a/lib/fcs/common/pages/customers/model/customer_model.dart b/lib/fcs/common/pages/customers/model/customer_model.dart new file mode 100644 index 0000000..57b9771 --- /dev/null +++ b/lib/fcs/common/pages/customers/model/customer_model.dart @@ -0,0 +1,66 @@ +import 'package:fcs/fcs/common/domain/entities/customer.dart'; +import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:logging/logging.dart'; + + +class CustomerModel extends BaseModel { + final log = Logger('CustomerModel'); + + List customers = [ + Customer( + name: 'Ko Nyi', + phoneNumber: '+95 9 717273634', + status: 'Invited' + ), + Customer(name: 'Ko Phyu', phoneNumber: '+1 (939) 382-3844',status: 'Signin'), + Customer(name: 'Ko Ye', phoneNumber: '+95 9 983734783', status: 'Invited'), + ]; + + + + void initUser(user) async { + super.initUser(user); + // _loadCustomer(); + } + + @override + logout() async { + customers = []; + } + + // Future _loadCustomer() async { + // if (!user.isOwnerAndAbove() && !user.hasAccount()) { + // return; + // } + + // try { + // Firestore.instance + // .collection("/$biz_collection/${setting.okEnergyId}/$user_collection") + // .where("is_employee", isEqualTo: true) + // .snapshots() + // .listen((QuerySnapshot snapshot) { + // customers.clear(); + // customers = snapshot.documents.map((documentSnapshot) { + // var user = + // User.fromMap(documentSnapshot.data, documentSnapshot.documentID); + // return user; + // }).toList(); + // notifyListeners(); + // }).onError((e) { + // log.warning("Error! $e"); + // }); + // } catch (e) { + // log.warning("Error!! $e"); + // } + // } + + // Future updatePrivileges(String userID, List privileges) async { + // try { + // await request("/employee/privileges", "PUT", + // payload: {"id": userID, "privileges": privileges}, + // token: await getToken()); + // } catch (e) { + // throw Exception(e); + // } + // } +} diff --git a/lib/fcs/common/pages/faq/faq_detail_page.dart b/lib/fcs/common/pages/faq/faq_detail_page.dart index 1a4ea58..2cf0eee 100644 --- a/lib/fcs/common/pages/faq/faq_detail_page.dart +++ b/lib/fcs/common/pages/faq/faq_detail_page.dart @@ -1,84 +1,95 @@ import 'package:fcs/fcs/common/domain/entities/faq.dart'; -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/vo/contact.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/contact/contact_editor.dart'; +import 'package:fcs/fcs/common/pages/faq/faq_edit_page.dart'; +import 'package:fcs/fcs/common/pages/faq/model/faq_model.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -class FAQDetailPage extends StatelessWidget { +class FAQDetailPage extends StatefulWidget { final FAQ faq; + const FAQDetailPage({this.faq}); + @override + _FAQDetailPageState createState() => _FAQDetailPageState(); +} - const FAQDetailPage({Key key, this.faq}) : super(key: key); +class _FAQDetailPageState extends State { + bool _isLoading = false; @override Widget build(BuildContext context) { - Setting setting = Provider.of(context).setting; - return Scaffold( - body: NestedScrollView( - headerSliverBuilder: - (BuildContext context, bool innerBoxIsScrolled) { - return [ - SliverAppBar( - leading: IconButton( - icon: Icon( - CupertinoIcons.back, - size: 30, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - expandedHeight: 150.0, - floating: true, - pinned: true, - flexibleSpace: FlexibleSpaceBar( - centerTitle: true, - titlePadding: EdgeInsets.symmetric(vertical: 10), - title: Text(AppTranslations.of(context).text('faq.btn'), - style: TextStyle( - color: Colors.white, - )), - ), - actions: [ + bool isEditable = context.select((MainModel m) => m.faqEditable()); + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + body: CustomScrollView(slivers: [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + color: primaryColor, + size: 50, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: Colors.white, + expandedHeight: 100.0, + floating: false, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + ), + actions: isEditable + ? [ IconButton( - onPressed: () => - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => ContactEditor( - contact: Contact.fromSetting(setting), - ), - )), + onPressed: () { + showConfirmDialog(context, "faq.edit.delete.confirm", + () { + _delete(); + }); + }, icon: Icon( CupertinoIcons.delete, - color: Colors.white, + color: primaryColor, + size: 30, )), IconButton( onPressed: () => Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => ContactEditor( - contact: Contact.fromSetting(setting), - ), + builder: (context) => FAQEditor(faq: widget.faq), )), icon: Icon( CupertinoIcons.pen, - color: Colors.white, + color: primaryColor, )) - ], - ), - ]; - }, - body: Padding( - padding: const EdgeInsets.only(left:20.0,right:20), - child: ListView( - children: [getQuestion(context, faq), - SizedBox(height: 30,), - getAnwser(context, faq)], + ] + : [], + ), + SliverList( + delegate: SliverChildListDelegate([ + Padding( + padding: const EdgeInsets.all(28.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + getQuestion(context, widget.faq), + SizedBox( + height: 50, + ), + getAnwser(context, widget.faq) + ], ), - ))); + ), + ])) + ]), + ), + ); } Widget getQuestion(BuildContext context, FAQ faq) { @@ -87,19 +98,34 @@ class FAQDetailPage extends StatelessWidget { context, faq.question(isEng), fontSize: 22, - fontWeight: FontWeight.bold, + fontWeight: FontWeight.bold, ); } - Widget getAnwser(BuildContext context, FAQ faq) { bool isEng = Provider.of(context).isEng; return TextLocalStyle( context, faq.answer(isEng), fontSize: 16, - fontWeight: FontWeight.w200, + fontWeight: FontWeight.w200, ); } + _delete() async { + setState(() { + _isLoading = true; + }); + try { + FAQModel faqModel = Provider.of(context, listen: false); + await faqModel.deleteFAQ(widget.faq); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } } diff --git a/lib/fcs/common/pages/faq/faq_edit_page.dart b/lib/fcs/common/pages/faq/faq_edit_page.dart index d3bca39..6b2d442 100644 --- a/lib/fcs/common/pages/faq/faq_edit_page.dart +++ b/lib/fcs/common/pages/faq/faq_edit_page.dart @@ -1,6 +1,7 @@ import 'package:fcs/fcs/common/domain/entities/faq.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/faq/model/faq_model.dart'; import 'package:fcs/fcs/common/pages/faq/widgets.dart'; import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; @@ -8,6 +9,7 @@ import 'package:fcs/fcs/common/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; +import 'package:provider/provider.dart'; class FAQEditor extends StatefulWidget { final FAQ faq; @@ -17,6 +19,7 @@ class FAQEditor extends StatefulWidget { } class _FAQEditorState extends State { + TextEditingController _sn = new TextEditingController(); TextEditingController _engQ = new TextEditingController(); TextEditingController _mmQ = new TextEditingController(); TextEditingController _engA = new TextEditingController(); @@ -25,12 +28,12 @@ class _FAQEditorState extends State { final _formKey = GlobalKey(); bool _isLoading = false; bool _isNew = false; - @override void initState() { super.initState(); _isNew = widget.faq == null; if (widget.faq != null) { + _sn.text = widget.faq.sn.toString(); _engQ.text = widget.faq.questionEng; _mmQ.text = widget.faq.questionMm; _engA.text = widget.faq.answerEng; @@ -40,22 +43,29 @@ class _FAQEditorState extends State { @override Widget build(BuildContext context) { - final usaPhoneBox = InputText( + final snBox = InputText( + controller: _sn, + maxLines: 1, + withBorder: true, + textInputType: TextInputType.number, + ); + + final questionEngBox = InputText( controller: _engQ, maxLines: 2, withBorder: true, ); - final mmPhoneBox = InputText( - controller: _mmQ, + final answerEngBox = InputText( + controller: _engA, maxLines: 5, withBorder: true, ); - final usaAddreesBox = InputText( - controller: _engA, + final questionMmBox = InputText( + controller: _mmQ, maxLines: 2, withBorder: true, ); - final mmAddressBox = InputText( + final answerMmBox = InputText( controller: _mmA, maxLines: 5, withBorder: true, @@ -63,76 +73,101 @@ class _FAQEditorState extends State { return LocalProgress( inAsyncCall: _isLoading, - child: CupertinoPageScaffold( - child: NestedScrollView( - headerSliverBuilder: - (BuildContext context, bool innerBoxIsScrolled) { - return [ - SliverAppBar( - leading: IconButton( - icon: Icon( - CupertinoIcons.back, - size: 30, + child: Scaffold( + body: CustomScrollView(slivers: [ + SliverAppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: true, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text( + AppTranslations.of(context) + .text(_isNew ? 'faq.add.title' : 'faq.edit.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions: [ + IconButton( + onPressed: () => _save(), + icon: Icon( + Icons.save, + color: Colors.white, + )) + ], + ), + SliverList( + delegate: SliverChildListDelegate([ + Form( + key: _formKey, + child: Padding( + padding: EdgeInsets.only(left: 24.0, right: 24.0), + child: Column( + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(right: 18.0, left: 0), + child: subItemTitle(context, "faq.edit.sn"), ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - expandedHeight: 150.0, - floating: true, - pinned: true, - flexibleSpace: FlexibleSpaceBar( - centerTitle: true, - titlePadding: EdgeInsets.symmetric(vertical: 10), - title: Text( - AppTranslations.of(context) - .text(_isNew?'faq.add.title':'faq.edit.title'), - style: TextStyle( - color: Colors.white, - )), - ), - actions: [ - IconButton( - onPressed: () => _submit(), - icon: Icon( - Icons.save, - color: Colors.white, - )) + Expanded(child: snBox), ], ), - ]; - }, - body: Material( - child: Form( - key: _formKey, - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - Center(child: itemTitle(context, "faq.edit.eng")), - subItemTitle(context, "faq.edit.question",iconData: SimpleLineIcons.question), - usaPhoneBox, - subItemTitle(context, "faq.edit.answer",iconData: MaterialCommunityIcons.message_reply_text), - mmPhoneBox, - Divider(), - Center(child: itemTitle(context, "faq.edit.mm")), - subItemTitle(context, "faq.edit.question",iconData: SimpleLineIcons.question), - usaAddreesBox, - subItemTitle(context, "faq.edit.answer",iconData: MaterialCommunityIcons.message_reply_text), - mmAddressBox, - ], - ), - ), - )))); + Center(child: itemTitle(context, "faq.edit.eng")), + subItemTitle(context, "faq.edit.question", + iconData: SimpleLineIcons.question), + questionEngBox, + subItemTitle(context, "faq.edit.answer", + iconData: MaterialCommunityIcons.message_reply_text), + answerEngBox, + Divider(), + Center(child: itemTitle(context, "faq.edit.mm")), + subItemTitle(context, "faq.edit.question", + iconData: SimpleLineIcons.question), + questionMmBox, + subItemTitle(context, "faq.edit.answer", + iconData: MaterialCommunityIcons.message_reply_text), + answerMmBox, + ], + ), + ), + ), + ])) + ]))); } - _submit() async { + _save() async { setState(() { _isLoading = true; }); try { - widget.faq.questionEng = _engQ.text; - // var contactModel = Provider.of(context, listen: false); - // await contactModel.saveContact(widget.contact); + int sn = int.parse( + _sn.text, + onError: (source) => throw Exception("Invalid number"), + ); + FAQModel faqModel = Provider.of(context, listen: false); + FAQ _faq = FAQ( + sn: sn, + questionEng: _engQ.text, + answerEng: _engA.text, + questionMm: _mmQ.text, + answerMm: _mmA.text); + if (_isNew) { + await faqModel.addFAQ(_faq); + } else { + _faq.id = widget.faq.id; + await faqModel.updateFAQ(_faq); + } Navigator.pop(context); } catch (e) { showMsgDialog(context, "Error", e.toString()); diff --git a/lib/fcs/common/pages/faq/faq_page.dart b/lib/fcs/common/pages/faq/faq_page.dart index 3233f43..0ffbde2 100644 --- a/lib/fcs/common/pages/faq/faq_page.dart +++ b/lib/fcs/common/pages/faq/faq_page.dart @@ -1,22 +1,16 @@ import 'package:fcs/fcs/common/domain/entities/faq.dart'; -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/vo/contact.dart'; import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/contact/contact_editor.dart'; -import 'package:fcs/fcs/common/pages/contact/widgets.dart'; import 'package:fcs/fcs/common/pages/faq/faq_detail_page.dart'; import 'package:fcs/fcs/common/pages/faq/faq_edit_page.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/widget/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:package_info/package_info.dart'; import 'package:provider/provider.dart'; -import 'package:url_launcher/url_launcher.dart'; + +import 'model/faq_model.dart'; class FAQPage extends StatefulWidget { @override @@ -24,132 +18,62 @@ class FAQPage extends StatefulWidget { } class _FAQPageState extends State { - List faqs = []; @override void initState() { super.initState(); - faqs = [ - FAQ(questionEng: "Question 1?", answerEng: "Answer 1."), - FAQ(questionEng: "Question 2?", answerEng: "Answer 2."), - FAQ(questionEng: "Question 3?", answerEng: "Answer 3."), - FAQ(questionEng: "Question 4?", answerEng: "Answer 4."), - FAQ(questionEng: "Question 5?", answerEng: "Answer 5.") - ]; } @override Widget build(BuildContext context) { + FAQModel faqModel = Provider.of(context); + bool isEditable = context.select((MainModel m) => m.faqEditable()); + return Scaffold( body: CustomScrollView( slivers: [ SliverAppBar( - leading: IconButton( - icon: Icon( - CupertinoIcons.back, - size: 30, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - expandedHeight: 150.0, - floating: false, - pinned: true, - flexibleSpace: FlexibleSpaceBar( - centerTitle: true, - titlePadding: EdgeInsets.symmetric(vertical: 10), - title: Text(AppTranslations.of(context).text('faq.title'), - style: TextStyle( - color: Colors.white, - )), - ), - actions: [ - IconButton( - onPressed: () => - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => FAQEditor(), - )), - icon: Icon( - CupertinoIcons.add, - color: Colors.white, - size: 35, - )) - ], - ), + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + expandedHeight: 150.0, + floating: false, + pinned: true, + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.symmetric(vertical: 10), + title: Text(AppTranslations.of(context).text('faq.title'), + style: TextStyle( + color: Colors.white, + )), + ), + actions:isEditable? [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => FAQEditor(), + )), + icon: Icon( + CupertinoIcons.add, + color: Colors.white, + size: 35, + )) + ]:[], + ), SliverList( - delegate: SliverChildBuilderDelegate( - (context, index) => _faqItem(context, faqs[index]), - childCount: faqs.length, - ), -) - - // SliverFillRemaining( - // child: Padding( - // padding: const EdgeInsets.only(left: 18.0, right: 18), - // child: ListView.separated ( - // separatorBuilder: (_, i) => Divider(), - // itemCount: faqs.length, - // itemBuilder: (BuildContext ctxt, int index) { - // return _faqItem(context, faqs[index]); - // }), - // )), + delegate: SliverChildBuilderDelegate( + (context, index) => _faqItem(context, faqModel.faqs[index]), + childCount: faqModel.faqs.length, + ), + ) ], )); } - @override - Widget build1(BuildContext context) { - Setting setting = Provider.of(context).setting; - return Scaffold( - body: NestedScrollView( - headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { - return [ - SliverAppBar( - leading: IconButton( - icon: Icon( - CupertinoIcons.back, - size: 30, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - expandedHeight: 150.0, - floating: true, - pinned: true, - flexibleSpace: FlexibleSpaceBar( - centerTitle: true, - titlePadding: EdgeInsets.symmetric(vertical: 10), - title: Text(AppTranslations.of(context).text('faq.title'), - style: TextStyle( - color: Colors.white, - )), - ), - actions: [ - IconButton( - onPressed: () => - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => FAQEditor(), - )), - icon: Icon( - CupertinoIcons.add, - color: Colors.white, - size: 35, - )) - ], - ), - ]; - }, - body: Padding( - padding: const EdgeInsets.only(left: 18.0, right: 18), - child: ListView.separated( - separatorBuilder: (_, i) => Divider(), - itemCount: faqs.length, - itemBuilder: (BuildContext ctxt, int index) { - return _faqItem(context, faqs[index]); - }), - )), - ); - } - Widget _faqItem(BuildContext context, FAQ faq) { bool isEng = Provider.of(context).isEng; return Column( @@ -167,16 +91,21 @@ class _FAQPageState extends State { child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - TextLocalStyle( - context, - faq.question(isEng), - fontSize: 16, + Flexible( + child: TextLocalStyle( + context, + faq.question(isEng), + fontSize: 18, + ), ), - Spacer(), - Icon( - CupertinoIcons.right_chevron, - color: primaryColor, - size: 22, + // Spacer(), + Padding( + padding: const EdgeInsets.only(left:18.0), + child: Icon( + CupertinoIcons.right_chevron, + color: primaryColor, + size: 22, + ), ) ], )), diff --git a/lib/fcs/common/pages/faq/model/faq_model.dart b/lib/fcs/common/pages/faq/model/faq_model.dart index d7082be..b7ceb08 100644 --- a/lib/fcs/common/pages/faq/model/faq_model.dart +++ b/lib/fcs/common/pages/faq/model/faq_model.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:fcs/fcs/common/domain/entities/faq.dart'; import 'package:fcs/fcs/common/pages/model/base_model.dart'; import 'package:fcs/fcs/common/services/services.dart'; @@ -8,10 +9,45 @@ import 'package:logging/logging.dart'; class FAQModel extends BaseModel { final log = Logger('FAQModel'); + List faqs = []; + + StreamSubscription listener; + + FAQModel() { + Stream query = Firestore.instance + .collection("/faqs") + .orderBy("sn", descending: false) + .snapshots(); + if (listener != null) { + listener.cancel(); + } + listener = query.listen((snaps) { + faqs.clear(); + snaps.documents.forEach((d) { + faqs.add(FAQ.fromMap(d.data, d.documentID)); + }); + notifyListeners(); + }); + } + Future addFAQ(FAQ faq) async { - await request("/faq", "POST", - payload: faq.toMap(), token: await Services.instance.authService.getToken()); + await request("/faqs", "POST", + payload: faq.toMap(), + token: await Services.instance.authService.getToken()); notifyListeners(); } + Future updateFAQ(FAQ faq) async { + await request("/faqs", "PUT", + payload: faq.toMap(), + token: await Services.instance.authService.getToken()); + notifyListeners(); + } + + Future deleteFAQ(FAQ faq) async { + await request("/faqs", "DELETE", + payload: faq.toMap(), + token: await Services.instance.authService.getToken()); + notifyListeners(); + } } diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index 7baee50..f222cb0 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -1,4 +1,5 @@ import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/pages/customers/customer_list.dart'; import 'package:fcs/fcs/common/pages/faq/faq_page.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; @@ -25,7 +26,6 @@ import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; import '../../../pages/buying_online.dart'; -import '../../../pages/customer_list.dart'; import '../../../pages/fcs_profile_page.dart'; import '../../../pages/invoice/invoce_list.dart'; import '../../../pages/pickup_list.dart'; @@ -71,7 +71,7 @@ class _HomePageState extends State { @override Widget build(BuildContext context) { login = Provider.of(context).isLogin(); - var owner = Provider.of(context).isOwner(); + // var owner =true;// Provider.of(context).isOwner(); var customer = Provider.of(context).isCustomer(); LanguageModel languageModel = Provider.of(context); @@ -169,20 +169,20 @@ class _HomePageState extends State { List widgets = []; widgets.add(faqBtn); - customer ? widgets.add(buyingBtn) : ""; - customer || owner ? widgets.add(pickUpBtn) : ""; - owner ? widgets.add(shipmentBtn) : ""; - customer || owner ? widgets.add(notiBtn) : ""; - owner ? widgets.add(staffBtn) : ""; - owner ? widgets.add(fcsProfileBtn) : ""; - widgets.add(shipmentCostBtn); - customer || owner ? widgets.add(packagesBtn) : ""; - owner ? widgets.add(boxesBtn) : ""; - owner ? widgets.add(deliveryBtn) : ""; - owner ? widgets.add(customersBtn) : ""; - customer || owner ? widgets.add(invoicesBtn) : ""; - owner ? widgets.add(paymentMethodBtn) : ""; - owner ? widgets.add(discountBtn) : ""; + // customer ? widgets.add(buyingBtn) : ""; + // customer || owner ? widgets.add(pickUpBtn) : ""; + !customer ? widgets.add(shipmentBtn) : ""; + // customer || owner ? widgets.add(notiBtn) : ""; + // owner ? widgets.add(staffBtn) : ""; + // owner ? widgets.add(fcsProfileBtn) : ""; + // widgets.add(shipmentCostBtn); + // customer || owner ? widgets.add(packagesBtn) : ""; + // owner ? widgets.add(boxesBtn) : ""; + // owner ? widgets.add(deliveryBtn) : ""; + widgets.add(customersBtn) ; + // customer || owner ? widgets.add(invoicesBtn) : ""; + // owner ? widgets.add(paymentMethodBtn) : ""; + // owner ? widgets.add(discountBtn) : ""; // widgets.add(termBtn); return OfflineRedirect( diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart index c408e95..de1a321 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/fcs/common/pages/model/main_model.dart @@ -9,6 +9,7 @@ import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/domain/entities/setting.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/helpers/network_connectivity.dart'; +import 'package:fcs/fcs/common/pages/model/base_model.dart'; import 'package:fcs/fcs/common/services/services.dart'; import 'package:flutter/foundation.dart'; import 'package:logging/logging.dart'; @@ -16,6 +17,7 @@ import 'package:package_info/package_info.dart'; class MainModel extends ChangeNotifier { final log = Logger('MainModel'); + List models = []; User user; PackageInfo packageInfo; @@ -37,67 +39,50 @@ class MainModel extends ChangeNotifier { notifyListeners(); }); Services.instance.authService.onAuthStatus().listen((event) { + this.user=event; + notifyListeners(); print("main event-->$event"); }); } + bool faqEditable(){ + return this.user != null && false; + } + bool termEditable(){ + return this.user != null && false; + } + bool contactEditable(){ + return this.user != null && false; + } + + + bool isLogin() { return this.user != null; } bool isCustomer() { - return user != null && user.name != "Owner"; - } - - bool isOwner() { - return user != null && user.name == "Owner"; - } - - bool hasEmail() { - return this.user != null && this.user.isEmail(); - } - - bool agreedTerm() { - return this.user != null && this.user.agreeTerms; - } - - bool isBuyer() { - return this.user == null || this.user.isBuyer(); + return user != null && user.isCustomer(); } bool isSysAdmin() { - return this.user != null && this.user.isSysAdmin(); + return this.user != null && this.user.hasSysAdmin(); } - bool isSysSupport() { - return this.user != null && this.user.isSysSupport(); - } - - bool isBizAdmin() { - return this.user != null && this.user.isBizAdmin(); - } - - bool isOwnerAndAbove() { - return this.user != null && this.user.isOwnerAndAbove(); - } bool isAdmin() { return this.user != null && this.user.hasAdmin(); } - bool showHistoryBtn() { - return isSysAdmin() || isSysSupport() || isBizAdmin(); - } - init() async { await _loadSetting(); _loadUser(); this.packageInfo = await PackageInfo.fromPlatform(); } - // void addModel(BaseModel model) { - // models.add(model); - // } + void addModel(BaseModel model) { + models.add(model); + } // void _initUser(User user) { // models.forEach((m) => m.initUser(user)); @@ -107,18 +92,18 @@ class MainModel extends ChangeNotifier { // } // } - // void _initSetting(Setting setting) { - // models.forEach((m) => m.initSetting(setting)); - // } + void _initSetting(Setting setting) { + models.forEach((m) => m.initSetting(setting)); + } Future _loadSetting() async { try { Services.instance.authService.getSetting().listen((event) { this.setting = event; + _initSetting(setting); notifyListeners(); }); } finally {} - // _initSetting(setting); } void _loadUser() async { diff --git a/lib/fcs/common/pages/profile_page.dart b/lib/fcs/common/pages/profile_page.dart index e981e73..b6f6ad4 100644 --- a/lib/fcs/common/pages/profile_page.dart +++ b/lib/fcs/common/pages/profile_page.dart @@ -51,16 +51,7 @@ class _ProfileState extends State { var languageModel = Provider.of(context); MainModel mainModel = Provider.of(context); - // buildLanguage(languageModel); - _selectedDropdown(String selected) { - setState(() { - selectedLanguage = selected; - languageModel.saveLanguage(selectedLanguage); - }); - } - final namebox = Container( - // padding: EdgeInsets.only(left: 25.0, right: 25.0), padding: EdgeInsets.only(top: 10, left: 25.0, right: 25.0), child: Container( height: 45.0, @@ -137,80 +128,7 @@ class _ProfileState extends State { ], ), ); - final emailBox = Container( - padding: EdgeInsets.only(top: 10, left: 25.0, right: 25.0), - child: Row( - children: [ - Text( - AppTranslations.of(context).text("profile.email"), - style: languageModel.isEng - ? TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal) - : TextStyle( - fontSize: 15.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal, - fontFamily: "MyanmarUnicode"), - ), - SizedBox( - width: 35, - ), - Text( - mainModel.user == null - ? "" - : mainModel.user.email == null || mainModel.user.email == '' - ? '' - : mainModel.user.email, - style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal), - ), - ], - ), - ); - final languageBox = Container( - padding: EdgeInsets.only(bottom: 0, top: 7, left: 25.0, right: 25.0), - child: Container( - height: 45.0, - child: Row( - children: [ - Text( - AppTranslations.of(context).text("profile.language"), - style: languageModel.isEng - ? TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal) - : TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal, - fontFamily: "MyanmarUnicode"), - ), - Container( - width: 140, - padding: EdgeInsets.only(left: 30), - child: Theme( - data: new ThemeData( - canvasColor: Colors.white, - ), - child: DropdownButton( - hint: Text("English"), - value: selectedLanguage, - isExpanded: true, - iconSize: 40, - items: languagesList - .map>((String value) { - return DropdownMenuItem( - value: value, - child: Text(value), - ); - }).toList(), - onChanged: _selectedDropdown), - )), - ], - ), - )); + final logoutbutton = Container( padding: EdgeInsets.only(left: 20.0, right: 24.0), @@ -283,20 +201,15 @@ class _ProfileState extends State { namebox, Padding( padding: const EdgeInsets.only(left: 18.0), - child: Icon(Icons.edit), + child: Icon(Icons.edit, color: primaryColor), ) ], ), - mainModel.isBuyer() ? Container() : getPrivilegeBox(context), - phonenumberbox, - mainModel.user == null + mainModel.isCustomer() ? Container() - : mainModel.user.email == null || - mainModel.user.email == '' - ? Container() - : emailBox, - languageBox, - getShippingAddressList(context), + : getPrivilegeBox(context), + phonenumberbox, + // getShippingAddressList(context), ], ), ), diff --git a/lib/fcs/common/pages/signin/code_page.dart b/lib/fcs/common/pages/signin/code_page.dart index f534eea..0797353 100644 --- a/lib/fcs/common/pages/signin/code_page.dart +++ b/lib/fcs/common/pages/signin/code_page.dart @@ -193,6 +193,9 @@ class _CodePageState extends State { _resend() async {} _verify() async { + setState(() { + _isLoading = true; + }); try { AuthResult auth = await context.read().signin(this.pin); if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { @@ -202,12 +205,13 @@ class _CodePageState extends State { } else { Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); } - // Provider.of(context, listen: false) - // .saveUser(pin, widget.phoneNumber); } } catch (e) { showMsgDialog(context, "Error", e.toString()); } + setState(() { + _isLoading = false; + }); } _completeResend() { diff --git a/lib/fcs/common/pages/signin/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart index ba1d2b0..12ebcee 100644 --- a/lib/fcs/common/pages/signin/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -1,7 +1,9 @@ import 'package:country_code_picker/country_code_picker.dart'; import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/signin/signup_page.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; @@ -176,6 +178,13 @@ class _SigninPageState extends State { await Navigator.of(context) .push(BottomUpPageRoute(CodePage(phoneNumber: phoneNumber))); Navigator.pop(context); + } else if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { + User user = context.read().user; + if (user != null && !user.hasSignup) { + await Navigator.of(context).push(BottomUpPageRoute(SignupPage())); + } else { + Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); + } } if (auth.authStatus == AuthStatus.ERROR) { showMsgDialog(context, "Error", auth.authErrorMsg); diff --git a/lib/fcs/common/pages/term/term_page.dart b/lib/fcs/common/pages/term/term_page.dart index 9bb8e7f..70777df 100644 --- a/lib/fcs/common/pages/term/term_page.dart +++ b/lib/fcs/common/pages/term/term_page.dart @@ -49,8 +49,10 @@ class _TermPageState extends State { @override Widget build(BuildContext context) { Setting setting = Provider.of(context).setting; - return CupertinoPageScaffold( - child: CustomScrollView(slivers: [ + bool isEditable = context.select((MainModel m) => m.termEditable()); + + return Scaffold( + body: CustomScrollView(slivers: [ SliverAppBar( leading: IconButton( icon: Icon( @@ -60,8 +62,8 @@ class _TermPageState extends State { onPressed: () => Navigator.of(context).pop(), ), backgroundColor: primaryColor, - expandedHeight: 150.0, - floating: true, + expandedHeight: 100.0, + floating: false, pinned: true, flexibleSpace: FlexibleSpaceBar( centerTitle: true, @@ -72,34 +74,35 @@ class _TermPageState extends State { color: Colors.white, ), ), - actions: [ - IconButton( - onPressed: () => - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => - TermEdit(term: Term.fromSetting(setting)), - )), - icon: Icon( - CupertinoIcons.pen, - color: Colors.white, - )) - ], + actions: isEditable + ? [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => + TermEdit(term: Term.fromSetting(setting)), + )), + icon: Icon( + CupertinoIcons.pen, + color: Colors.white, + )) + ] + : [], ), - SliverFillRemaining(child: ZefyrTheme( - data: ZefyrThemeData().copyWith( - defaultLineTheme: LineTheme( - textStyle: TextStyle(color: Colors.black), - padding: EdgeInsets.all(0))), - child: ZefyrScaffold( - child: ZefyrEditor( - mode: ZefyrMode.view, - padding: EdgeInsets.all(16), - controller: ZefyrController(_loadDocument(setting)), - focusNode: _focusNode, - ), - )) - - ), + SliverFillRemaining( + child: ZefyrTheme( + data: ZefyrThemeData().copyWith( + defaultLineTheme: LineTheme( + textStyle: TextStyle(color: Colors.black), + padding: EdgeInsets.all(0))), + child: ZefyrScaffold( + child: ZefyrEditor( + mode: ZefyrMode.view, + padding: EdgeInsets.all(16), + controller: ZefyrController(_loadDocument(setting)), + focusNode: _focusNode, + ), + ))), ])); } diff --git a/lib/fcs/common/pages/widgets/bottom_up_page_route.dart b/lib/fcs/common/pages/widgets/bottom_up_page_route.dart new file mode 100644 index 0000000..cd27cd9 --- /dev/null +++ b/lib/fcs/common/pages/widgets/bottom_up_page_route.dart @@ -0,0 +1,23 @@ +import 'package:flutter/cupertino.dart'; + +class BottomUpPageRoute extends PageRouteBuilder { + final Widget child; + + BottomUpPageRoute(this.child) + : super( + pageBuilder: (context, animation, secondaryAnimation) => child, + transitionsBuilder: (context, animation, secondaryAnimation, child) { + var begin = Offset(0.0, 1.0); + var end = Offset.zero; + var curve = Curves.ease; + + var tween = + Tween(begin: begin, end: end).chain(CurveTween(curve: curve)); + + return SlideTransition( + position: animation.drive(tween), + child: child, + ); + }, + ); +} diff --git a/lib/fcs/common/pages/widgets/input_text.dart b/lib/fcs/common/pages/widgets/input_text.dart index 9cb4f8c..53b00af 100644 --- a/lib/fcs/common/pages/widgets/input_text.dart +++ b/lib/fcs/common/pages/widgets/input_text.dart @@ -13,6 +13,7 @@ class InputText extends StatelessWidget { final int maxLines; final bool withBorder; final Color borderColor; + final TextInputType textInputType; const InputText( {Key key, @@ -22,7 +23,8 @@ class InputText extends StatelessWidget { this.validator, this.maxLines = 1, this.withBorder = false, - this.borderColor}) + this.borderColor, + this.textInputType}) : super(key: key); @override Widget build(BuildContext context) { @@ -36,11 +38,12 @@ class InputText extends StatelessWidget { cursorColor: primaryColor, style: textStyle, maxLines: maxLines, + keyboardType: textInputType, decoration: new InputDecoration( - hintText: '', + // hintText: '', hintStyle: TextStyle( - height: 2.5, - ), + height: 3.5, + ), labelText: labelTextKey == null ? null : AppTranslations.of(context).text(labelTextKey), diff --git a/pubspec.yaml b/pubspec.yaml index 92cfb2c..d4610db 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -115,3 +115,8 @@ flutter: - family: MyanmarUnicode fonts: - asset: assets/fonts/MyMMUnicodeUniversal.ttf + + - family: Myanmar3 + fonts: + - asset: assets/fonts/Myanmar3_2018.ttf + From aa8a6765de35d817853598282ff8ca0cc1f3c409 Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Sat, 12 Sep 2020 03:34:52 +0630 Subject: [PATCH 12/22] add invitation --- assets/local/localization_en.json | 21 +- assets/local/localization_mu.json | 24 ++- lib/app.dart | 15 +- lib/fcs/common/domain/entities/user.dart | 1 + lib/fcs/common/helpers/api_helper.dart | 4 +- lib/fcs/common/helpers/shared_pref.dart | 11 +- lib/fcs/common/pages/home_page.dart | 3 +- .../pages/initial_language_selection.dart | 187 +++++++++++++++++ .../common/pages/model/language_model.dart | 1 - lib/fcs/common/pages/model/main_model.dart | 32 ++- lib/fcs/common/pages/profile_page.dart | 9 +- .../pages/signin/invitation_request_page.dart | 122 +++++++++++ .../pages/signin/model/signin_model.dart | 22 ++ lib/fcs/common/pages/signin/signin_page.dart | 6 +- .../{code_page.dart => sms_code_page.dart} | 29 ++- lib/fcs/common/pages/splash_page.dart | 37 ++-- lib/fcs/common/pages/util.dart | 4 +- lib/fcs/common/pages/welcome_page.dart | 189 +++++++----------- lib/main-local.dart | 2 +- lib/model/main_model.dart | 4 +- 20 files changed, 526 insertions(+), 197 deletions(-) create mode 100644 lib/fcs/common/pages/initial_language_selection.dart create mode 100644 lib/fcs/common/pages/signin/invitation_request_page.dart create mode 100644 lib/fcs/common/pages/signin/model/signin_model.dart rename lib/fcs/common/pages/signin/{code_page.dart => sms_code_page.dart} (87%) diff --git a/assets/local/localization_en.json b/assets/local/localization_en.json index b77a0dc..a3e3f54 100644 --- a/assets/local/localization_en.json +++ b/assets/local/localization_en.json @@ -45,6 +45,22 @@ "faq.edit.delete.confirm":"Delete this FAQ?", + "language.selection.title":"Please select your language", + + "welcome.signin":"Sign In", + "welcome.msg":"Welcome to FCS Logistics!", + + "sms.verify.title":"Verify your number", + "sms.six.digit":"Enter 6 digit sms code sent to", + "sms.resend":"Resend", + "sms.resend.seconds":"Resend again in {0} seconds", + + "invite.title":"You need invitation from FCS", + "invite.name.enter":"Please enter your name", + "invite.request":"Request Invitation", + "invite.request.successful":"Successfully requested!", + + "================================================================":"", "btn.save": "Save", "btn.approve":"Approve", @@ -495,11 +511,6 @@ "login": "SignIn", "login.title":"Sign in to FCS", "login.phone":"Enter phone number", - "login.smscode.retry":"Resend again in {0} seconds", - - "singup.verify.title":"Verify your number", - "singup.code_sent":"Enter 6 digit sms code sent to", - "singup.resend":"Resend", "user_edit.welcome":"Welcome to FCS", "user_edit.name":"Please enter your name", diff --git a/assets/local/localization_mu.json b/assets/local/localization_mu.json index f3a074a..9167a94 100644 --- a/assets/local/localization_mu.json +++ b/assets/local/localization_mu.json @@ -44,6 +44,25 @@ "faq.edit.sn":"S/N", "faq.edit.delete.confirm":"Delete this FAQ?", + + "language.selection.title":"ဘာသာစကား ရွေးချယ်ပါ", + + "welcome.signin":"ဝင်မည်", + "welcome.msg":"FCS Logistics က ကြိုဆိုပါတယ်!", + + "sms.verify.title":"သင့်နံပါတ်ကိုအတည်ပြုပါ", + "sms.six.digit":"SMS ဂဏန်း ခြောက်လုံး ကိုရိုက်ထဲ့ပါ", + "sms.resend":"ပြန်ပို့ရန်", + "sms.resend.seconds":"SMS ပြန်ပို့ရန် {0} စက္ကန့် စောင့်ပါ", + + "invite.title":"FCS ဖိတ်ကြားမှု လိုအပ်သည်", + "invite.name.enter":"နာမည် ရိုက်ထည့်ပါ", + "invite.request":"ဖိတ်ကြားမှု တောင်းဆိုမည်", + "invite.request.successful":"တောင်းဆိုမှု အောင်မြင်သည်!", + + "================================================================":"", + + "btn.save":"သိမ်းဆည်းရန်", "btn.approve":"အတည်ပြုရန်", @@ -523,11 +542,6 @@ "login": "SignIn", "login.title":"FCS သို့အကောင့်ဒ်၀င်ပါ", "login.phone":"ဖုန်းနံပါတ်ထည့်ပါ", - "login.smscode.retry":"Resend again in {0} seconds", - - "singup.verify.title":"သင့်နံပါတ်ကိုအတည်ပြုပါ", - "singup.code_sent":"Enter 6 digit sms code sent to", - "singup.resend":"ပြန်ပို့ရန်", "user_edit.welcome":"FCS မှကြိုဆိုပါသည်", "user_edit.name":"ကျေးဇူးပြု၍ နာမည်ထည့်ပေးပါ", diff --git a/lib/app.dart b/lib/app.dart index f3a0443..96f9809 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -6,7 +6,9 @@ import 'package:fcs/fcs/common/localization/transalation.dart'; import 'package:fcs/fcs/common/pages/contact/model/contact_model.dart'; import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; import 'package:fcs/fcs/common/pages/faq/model/faq_model.dart'; +import 'package:fcs/fcs/common/pages/initial_language_selection.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:fcs/fcs/common/pages/term/model/term_model.dart'; import 'package:fcs/fcs/common/services/services.dart'; import 'package:fcs/model/buyer_model.dart'; @@ -58,8 +60,8 @@ class App extends StatefulWidget { class _AppState extends State { final fcs.MainModel mainModel2 = new fcs.MainModel(); - final ContactModel contactModel =new ContactModel(); - final TermModel termModel=new TermModel(); + final ContactModel contactModel = new ContactModel(); + final TermModel termModel = new TermModel(); final MainModel mainModel = new MainModel(); final FAQModel faqModel = new FAQModel(); @@ -92,6 +94,7 @@ class _AppState extends State { final InvoiceModel invoiceModel = new InvoiceModel(); final CustomerModel customerModel = new CustomerModel(); final DiscountModel discountModel = new DiscountModel(); + final SigninModel signinModel = new SigninModel(); AppTranslationsDelegate _newLocaleDelegate; static FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = @@ -209,7 +212,8 @@ class _AppState extends State { agreePage: true, ), '/login': (context) => LoginPage(), - '/email': (context) => EmailPage() + '/email': (context) => EmailPage(), + '/language_selection': (context) => InitialLanguageSelectionPage(), }; return routes; } @@ -249,8 +253,9 @@ class _AppState extends State { ChangeNotifierProvider.value(value: testModel), ChangeNotifierProvider.value(value: mainModel2), ChangeNotifierProvider.value(value: contactModel), - ChangeNotifierProvider.value(value: termModel), - ChangeNotifierProvider.value(value: faqModel), + ChangeNotifierProvider.value(value: termModel), + ChangeNotifierProvider.value(value: faqModel), + ChangeNotifierProvider.value(value: signinModel), ], child: Consumer( builder: (context, value, child) { diff --git a/lib/fcs/common/domain/entities/user.dart b/lib/fcs/common/domain/entities/user.dart index 56309fe..9f4ff40 100644 --- a/lib/fcs/common/domain/entities/user.dart +++ b/lib/fcs/common/domain/entities/user.dart @@ -3,6 +3,7 @@ class User { String name; String phoneNumber; bool hasSignup; + bool invited; List privileges = []; String fcsID; diff --git a/lib/fcs/common/helpers/api_helper.dart b/lib/fcs/common/helpers/api_helper.dart index 1103179..c0c8321 100644 --- a/lib/fcs/common/helpers/api_helper.dart +++ b/lib/fcs/common/helpers/api_helper.dart @@ -29,7 +29,9 @@ Future requestAPI( if (token != null) { headers["Token"] = token; } - headers["Device"] = devInfo.deviceID + ":" + deviceName; + if (devInfo != null && devInfo.deviceID != null && deviceName != null) { + headers["Device"] = devInfo.deviceID + ":" + deviceName; + } headers["Project-ID"] = Config.instance.reportProjectID; BaseOptions options = new BaseOptions( diff --git a/lib/fcs/common/helpers/shared_pref.dart b/lib/fcs/common/helpers/shared_pref.dart index 52821bd..0dafb56 100644 --- a/lib/fcs/common/helpers/shared_pref.dart +++ b/lib/fcs/common/helpers/shared_pref.dart @@ -3,11 +3,20 @@ import 'dart:convert'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:shared_preferences/shared_preferences.dart'; - class SharedPref { static final SharedPref instance = SharedPref._(); SharedPref._(); + static Future isFirstLaunch() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + return prefs.getBool('first_launch'); + } + + static Future finishFirstLaunch() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + return prefs.setBool('first_launch', false); + } + static Future getLang() async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getString('language'); diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index f222cb0..43183a7 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -179,7 +179,7 @@ class _HomePageState extends State { // customer || owner ? widgets.add(packagesBtn) : ""; // owner ? widgets.add(boxesBtn) : ""; // owner ? widgets.add(deliveryBtn) : ""; - widgets.add(customersBtn) ; + widgets.add(customersBtn); // customer || owner ? widgets.add(invoicesBtn) : ""; // owner ? widgets.add(paymentMethodBtn) : ""; // owner ? widgets.add(discountBtn) : ""; @@ -214,6 +214,7 @@ class _HomePageState extends State { ], onPressed: _langChange, isSelected: languageModel.currentState, + selectedBorderColor: Colors.white24, ), IconButton( onPressed: () { diff --git a/lib/fcs/common/pages/initial_language_selection.dart b/lib/fcs/common/pages/initial_language_selection.dart new file mode 100644 index 0000000..375b8fe --- /dev/null +++ b/lib/fcs/common/pages/initial_language_selection.dart @@ -0,0 +1,187 @@ +import 'package:fcs/fcs/common/helpers/shared_pref.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/transalation.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/signin/signin_page.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:provider/provider.dart'; + +class InitialLanguageSelectionPage extends StatefulWidget { + @override + _InitialLanguageSelectionPageState createState() => + _InitialLanguageSelectionPageState(); +} + +class _InitialLanguageSelectionPageState + extends State { + static final List languagesList = Translation().supportedLanguages; + static final List languageCodesList = + Translation().supportedLanguagesCodes; + + final Map languagesMap = { + languagesList[0]: languageCodesList[0], + languagesList[1]: languageCodesList[1], + }; + + String selectedLanguage; + int selectedIndex; + + @override + void initState() { + super.initState(); + var languageModel = Provider.of(context, listen: false); + this.selectedIndex = languageModel.isEng ? 0 : 1; + loadLaunguage(languageModel); + } + + loadLaunguage(LanguageModel languageModel) async { + var lan = await languageModel.load(); + if (this.selectedLanguage != lan) { + setState(() { + this.selectedLanguage = lan; + }); + } + } + + @override + Widget build(BuildContext context) { + return Material( + type: MaterialType.transparency, + child: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [Color(0xff272282), primaryColor], + begin: const FractionalOffset(0.8, 0.9), + end: const FractionalOffset(0.9, 0.0), + stops: [0.0, 1.0], + ), + ), + child: Align( + alignment: Alignment.center, + child: SingleChildScrollView( + scrollDirection: Axis.vertical, + child: Column( + children: [ + Container( + height: 40, + child: LocalText(context, "language.selection.title", + fontSize: 20, + fontWeight: FontWeight.w200, + color: Colors.white), + ), + Container( + padding: EdgeInsets.only(top: 0), + child: Card( + color: Color(0xfff4edec), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(20)), + ), + child: Container( + padding: EdgeInsets.only(top: 20), + width: 300, + height: 160, + child: Column( + children: languagesList.asMap().entries.map((e) { + var language = e.value; + var key = e.key; + return InkWell( + onTap: () { + _select(key, language); + }, + child: Container( + padding: EdgeInsets.all(2), + decoration: key == languagesList.length - 1 + ? BoxDecoration() + : BoxDecoration( + border: Border( + bottom: + BorderSide(color: Colors.grey[300]), + ), + ), + child: ListTile( + leading: language == 'English' + ? Container( + child: CircleAvatar( + radius: 20, + backgroundImage: AssetImage( + "icons/flags/png/gb.png", + package: 'country_icons', + ), + ), + ) + : Container( + child: CircleAvatar( + radius: 20, + backgroundImage: AssetImage( + "icons/flags/png/mm.png", + package: 'country_icons', + ), + ), + ), + title: Text("$language"), + trailing: Theme( + data: Theme.of(context).copyWith( + unselectedWidgetColor: Colors.grey[400], + ), + child: Radio( + value: key, + groupValue: selectedIndex, + onChanged: (int i) => + _select(key, language), + activeColor: primaryColor, + ), + )), + ), + ); + }).toList()), + ), + ), + ), + SizedBox(height: 20.0), + Container( + padding: EdgeInsets.only(left: 230, top: 20), + child: Container( + width: 50, + height: 50, + child: InkWell( + onTap: () { + _next(); + }, + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: Center( + child: Icon(FontAwesomeIcons.arrowRight, + color: Colors.black87)), + ), + ), + ), + ) + ], + ), + ), + ), + ), + ); + } + + _select(int index, String lang) { + setState(() { + selectedIndex = index; + selectedLanguage = lang; + Translation().onLocaleChanged(Locale(languagesMap[lang])); + Provider.of(context, listen: false) + .saveLanguage(selectedLanguage); + }); + } + + _next() { + SharedPref.finishFirstLaunch(); + bool isLogin = Provider.of(context, listen: false).isLogin(); + String page = isLogin ? "/home" : "/welcome"; + Navigator.of(context).pushReplacementNamed(page); + } +} diff --git a/lib/fcs/common/pages/model/language_model.dart b/lib/fcs/common/pages/model/language_model.dart index b37910e..47c9186 100644 --- a/lib/fcs/common/pages/model/language_model.dart +++ b/lib/fcs/common/pages/model/language_model.dart @@ -31,7 +31,6 @@ class LanguageModel extends BaseModel { } this.language = result; Translation().onLocaleChanged(Locale(languagesMap[this.language])); - print("lang=====$result"); notifyListeners(); return result; } diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart index de1a321..a730d1a 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/fcs/common/pages/model/main_model.dart @@ -1,14 +1,11 @@ import 'dart:async'; -import 'dart:io'; -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:device_info/device_info.dart'; -import 'package:dio/dio.dart'; import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/domain/entities/setting.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/helpers/network_connectivity.dart'; +import 'package:fcs/fcs/common/helpers/shared_pref.dart'; import 'package:fcs/fcs/common/pages/model/base_model.dart'; import 'package:fcs/fcs/common/services/services.dart'; import 'package:flutter/foundation.dart'; @@ -22,12 +19,11 @@ class MainModel extends ChangeNotifier { User user; PackageInfo packageInfo; - Setting setting = Setting( - terms: - '[{"insert":"* Minimum shipping weight is 1lbs.\n* Oversized goods, Light weight/Large volume items, laptops, phones, tablets may incur extra charges based on pecifications.Please contact us for pricing.\n* Goods with lithium battary needs extra packaging and declaration. Please inform us ahead of time so that we can process your package accordingly.\n* Loose Batteries, Drones, and Prescription medicines are not allowed on aircraft.\n* Payment: We accept money orders, any US bank transfers via Zelle, AYA, KBZ and CB. No COD except for pick-ups.\n*Payments made in Myanmar will incur 2% tranfer fee\n"}]'); + Setting setting; bool isLoaded = false; bool isOnline = false; + bool isFirstLaunch = false; MainModel() { NetworkConnectivity.instance.statusStream.listen((data) { @@ -39,23 +35,22 @@ class MainModel extends ChangeNotifier { notifyListeners(); }); Services.instance.authService.onAuthStatus().listen((event) { - this.user=event; + this.user = event; notifyListeners(); - print("main event-->$event"); }); } - bool faqEditable(){ - return this.user != null && false; - } - bool termEditable(){ - return this.user != null && false; - } - bool contactEditable(){ + bool faqEditable() { return this.user != null && false; } + bool termEditable() { + return this.user != null && false; + } + bool contactEditable() { + return this.user != null && false; + } bool isLogin() { return this.user != null; @@ -69,13 +64,15 @@ class MainModel extends ChangeNotifier { return this.user != null && this.user.hasSysAdmin(); } - bool isAdmin() { return this.user != null && this.user.hasAdmin(); } init() async { await _loadSetting(); + this.isFirstLaunch = await SharedPref.isFirstLaunch(); + this.isFirstLaunch = this.isFirstLaunch ?? true; + _loadUser(); this.packageInfo = await PackageInfo.fromPlatform(); } @@ -126,7 +123,6 @@ class MainModel extends ChangeNotifier { } bool isSupport() { - return true; if (packageInfo == null || setting == null) return false; return int.parse(packageInfo.buildNumber) >= setting.supportBuildNum; } diff --git a/lib/fcs/common/pages/profile_page.dart b/lib/fcs/common/pages/profile_page.dart index b6f6ad4..13e45c2 100644 --- a/lib/fcs/common/pages/profile_page.dart +++ b/lib/fcs/common/pages/profile_page.dart @@ -10,6 +10,7 @@ import 'package:fcs/pages_fcs/shipping_address_row.dart'; import 'package:fcs/vo/role.dart'; import 'package:fcs/vo/shipping_address.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -128,7 +129,6 @@ class _ProfileState extends State { ], ), ); - final logoutbutton = Container( padding: EdgeInsets.only(left: 20.0, right: 24.0), @@ -183,6 +183,13 @@ class _ProfileState extends State { inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), title: Text( AppTranslations.of(context).text("profile.title"), ), diff --git a/lib/fcs/common/pages/signin/invitation_request_page.dart b/lib/fcs/common/pages/signin/invitation_request_page.dart new file mode 100644 index 0000000..2a7beb6 --- /dev/null +++ b/lib/fcs/common/pages/signin/invitation_request_page.dart @@ -0,0 +1,122 @@ +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:provider/provider.dart'; + +import '../../../../widget/local_text.dart'; +import '../../../../widget/progress.dart'; +import '../../helpers/theme.dart'; + +class RequestInvitationPage extends StatefulWidget { + @override + _RequestInvitationPageState createState() => _RequestInvitationPageState(); +} + +class _RequestInvitationPageState extends State { + bool _isLoading = false; + TextEditingController nameCtl; + + @override + void initState() { + super.initState(); + nameCtl = new TextEditingController(); + } + + @override + Widget build(BuildContext context) { + return LocalProgress( + inAsyncCall: _isLoading, + child: new Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + ), + body: _buildBody(context), + ), + ); + } + + Widget _buildBody(BuildContext context) { + return ListView( + padding: EdgeInsets.only(top: 5, left: 10, right: 10), + children: [ + Container( + padding: EdgeInsets.only(top: 40), + child: LocalText( + context, + 'invite.title', + fontSize: 21, + color: primaryColor, + fontWeight: FontWeight.bold, + ), + ), + Container( + padding: EdgeInsets.only(top: 25), + child: LocalText( + context, + 'invite.name.enter', + color: labelColor, + fontSize: 16, + ), + ), + Container( + padding: EdgeInsets.only(top: 0, bottom: 10), + child: TextFormField( + controller: nameCtl, + cursorColor: primaryColor, + textAlign: TextAlign.left, + keyboardType: TextInputType.text, + autofocus: true, + style: TextStyle( + fontSize: 18, + ), + decoration: new InputDecoration( + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + )), + SizedBox( + height: 20, + ), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + RaisedButton( + onPressed: _request, + child: Text(getLocalString(context, "invite.request")), + ) + ], + ), + ), + ], + ); + } + + _request() async { + setState(() { + _isLoading = true; + }); + try { + await context.read().requestInvitation(nameCtl.text); + await showMsgDialog(context, "Successful", + getLocalString(context, "invite.request.successful")); + } catch (e) { + await showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + Navigator.pushNamedAndRemoveUntil(context, "/welcome", (r) => false); + } + } +} diff --git a/lib/fcs/common/pages/signin/model/signin_model.dart b/lib/fcs/common/pages/signin/model/signin_model.dart new file mode 100644 index 0000000..e47678e --- /dev/null +++ b/lib/fcs/common/pages/signin/model/signin_model.dart @@ -0,0 +1,22 @@ +import 'dart:async'; + +import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:fcs/fcs/common/services/services.dart'; +import 'package:logging/logging.dart'; + +class SigninModel extends BaseModel { + final log = Logger('SigninModel'); + + Future checkInvatation() async { + var invited = await request("/check_invitation", "GET", + token: await Services.instance.authService.getToken()); + return invited["invited"]; + } + + Future requestInvitation(String name) async { + await request("/request_invitation", "POST", + payload: {"user_name": name}, + token: await Services.instance.authService.getToken()); + await Services.instance.authService.signout(); + } +} diff --git a/lib/fcs/common/pages/signin/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart index 12ebcee..cdf2c2a 100644 --- a/lib/fcs/common/pages/signin/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -13,7 +13,7 @@ import 'package:provider/provider.dart'; import '../../helpers/theme.dart'; import '../../../../widget/progress.dart'; -import 'code_page.dart'; +import 'sms_code_page.dart'; import '../util.dart'; class SigninPage extends StatefulWidget { @@ -87,7 +87,7 @@ class _SigninPageState extends State { child: CountryCodePicker( onChanged: _countryChange, initialSelection: dialCode, - countryFilter: ['+95', '+65', '+66'], + countryFilter: ['+95', '+1'], showCountryOnly: false, showOnlyCountryWhenClosed: false, alignLeft: false, @@ -176,7 +176,7 @@ class _SigninPageState extends State { AuthResult auth = await context.read().sendSms(phoneNumber); if (auth.authStatus == AuthStatus.SMS_SENT) { await Navigator.of(context) - .push(BottomUpPageRoute(CodePage(phoneNumber: phoneNumber))); + .push(BottomUpPageRoute(SmsCodePage(phoneNumber: phoneNumber))); Navigator.pop(context); } else if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { User user = context.read().user; diff --git a/lib/fcs/common/pages/signin/code_page.dart b/lib/fcs/common/pages/signin/sms_code_page.dart similarity index 87% rename from lib/fcs/common/pages/signin/code_page.dart rename to lib/fcs/common/pages/signin/sms_code_page.dart index 0797353..756d02b 100644 --- a/lib/fcs/common/pages/signin/code_page.dart +++ b/lib/fcs/common/pages/signin/sms_code_page.dart @@ -4,6 +4,8 @@ import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; +import 'package:fcs/fcs/common/pages/signin/invitation_request_page.dart'; import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; @@ -15,16 +17,16 @@ import 'signup_page.dart'; import '../../helpers/theme.dart'; import '../../../../widget/progress.dart'; -const resend_count_sec = 5; +const resend_count_sec = 30; -class CodePage extends StatefulWidget { +class SmsCodePage extends StatefulWidget { final String phoneNumber; - const CodePage({Key key, this.phoneNumber}) : super(key: key); + const SmsCodePage({Key key, this.phoneNumber}) : super(key: key); @override - _CodePageState createState() => _CodePageState(); + _SmsCodePageState createState() => _SmsCodePageState(); } -class _CodePageState extends State { +class _SmsCodePageState extends State { bool _isLoading = false; String pin; bool allNumberEntered; @@ -87,7 +89,7 @@ class _CodePageState extends State { padding: EdgeInsets.only(left: 20, right: 20, top: 40), child: LocalText( context, - 'singup.verify.title', + 'sms.verify.title', fontSize: 21, color: primaryColor, fontWeight: FontWeight.bold, @@ -98,7 +100,7 @@ class _CodePageState extends State { left: 20, top: 20, ), - child: LocalText(context, 'singup.code_sent', + child: LocalText(context, 'sms.six.digit', fontSize: 15, color: labelColor), ), Container( @@ -130,7 +132,7 @@ class _CodePageState extends State { RaisedButton( onPressed: canResend ? _resend : null, color: canResend ? Colors.white : Colors.grey, - child: LocalText(context, 'singup.resend', + child: LocalText(context, 'sms.resend', fontSize: 16, color: canResend ? primaryColor : Colors.grey[400]), @@ -165,7 +167,7 @@ class _CodePageState extends State { children: [ LocalText( context, - 'login.smscode.retry', + 'sms.resend.seconds', fontSize: 15, translationVariables: [_start.toString()], color: primaryColor, @@ -198,10 +200,17 @@ class _CodePageState extends State { }); try { AuthResult auth = await context.read().signin(this.pin); + if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { User user = context.read().user; if (user != null && !user.hasSignup) { - await Navigator.of(context).push(BottomUpPageRoute(SignupPage())); + bool invited = await context.read().checkInvatation(); + if (invited) { + await Navigator.of(context).push(BottomUpPageRoute(SignupPage())); + } else { + await Navigator.of(context) + .push(BottomUpPageRoute(RequestInvitationPage())); + } } else { Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); } diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/fcs/common/pages/splash_page.dart index c6207cb..074db9f 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -14,32 +14,21 @@ class SplashScreen extends StatefulWidget { class _SplashScreenState extends State { final log = Logger('_SplashScreenState'); - + String page = "/language_selection"; bool _loaded = false; bool _isSupport = false; - bool _isLogin = false; bool _isOnline = true; Timer timer; startTime() async { - var _duration = new Duration(milliseconds: 1000); + var _duration = new Duration(milliseconds: 3000); this.timer = new Timer.periodic(_duration, navigationPage); } void navigationPage(Timer timer) async { - if (!_isOnline) { - return; - } - - if (_loaded) { + if (_loaded && _isOnline && _isSupport) { timer.cancel(); - if (_isSupport) { - if (this._isLogin) { - Navigator.of(context).pushReplacementNamed('/home'); - } else { - Navigator.of(context).pushReplacementNamed('/welcome'); - } - } + Navigator.of(context).pushReplacementNamed(page); } } @@ -58,10 +47,18 @@ class _SplashScreenState extends State { Widget build(BuildContext context) { MainModel mainModel = Provider.of(context); - this._loaded = mainModel.isLoaded; this._isSupport = mainModel.isSupport(); - this._isLogin = mainModel.isLogin(); this._isOnline = mainModel.isOnline; + if (mainModel.isLoaded) { + if (mainModel.isFirstLaunch) { + page = "/language_selection"; + } else if (mainModel.isLogin() && mainModel.user.hasSignup) { + page = "/home"; + } else { + page = "/welcome"; + } + this._loaded = mainModel.isLoaded; + } return new Scaffold( backgroundColor: Colors.white, @@ -77,11 +74,7 @@ class _SplashScreenState extends State { Column( children: [ Text( - "Cargo Services", - style: welcomeLabelStyle, - ), - Text( - "by FCS Logistics", + "FCS Logistics", style: welcomeSubLabelStyle, ), ], diff --git a/lib/fcs/common/pages/util.dart b/lib/fcs/common/pages/util.dart index c518125..20c4957 100644 --- a/lib/fcs/common/pages/util.dart +++ b/lib/fcs/common/pages/util.dart @@ -28,8 +28,8 @@ import '../../../pages/user_editor.dart'; final log = Logger('Util'); -void showMsgDialog(BuildContext context, String title, String msg) { - showDialog( +Future showMsgDialog(BuildContext context, String title, String msg) { + return showDialog( context: context, builder: (_) { return AlertDialog( diff --git a/lib/fcs/common/pages/welcome_page.dart b/lib/fcs/common/pages/welcome_page.dart index f5bc2b6..027e06b 100644 --- a/lib/fcs/common/pages/welcome_page.dart +++ b/lib/fcs/common/pages/welcome_page.dart @@ -1,5 +1,6 @@ import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart'; import 'package:fcs/widget/banner.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; @@ -14,7 +15,6 @@ import 'package:provider/provider.dart'; import '../helpers/theme.dart'; import 'profile_page.dart'; import 'signin/signin_page.dart'; -import '../../../pages/term.dart'; final msgLog = Logger('backgroundMessageHandler'); @@ -27,103 +27,30 @@ typedef BtnCallback(); class _WelcomePageState extends State { final log = Logger('_HomePageWelcomeState'); - bool login = false; - bool customer = true; - double length = 10; - double width = 10; - double height = 10; + + String pin; + List isSelected = [true, false]; + @override void initState() { super.initState(); + _loadLang(); + } + + void _loadLang() { + isSelected = + Provider.of(context, listen: false).currentState; } void dispose() { super.dispose(); } - int actualChart = 0; - final numberFormatter = new intl.NumberFormat("#,###"); - - String pin; - List isSelected = [true, false]; - @override Widget build(BuildContext context) { - login = Provider.of(context).isLogin(); - return OfflineRedirect( child: FlavorBanner( child: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: primaryColor, - title: ClipRRect( - child: Image.asset("assets/logo.jpg", height: 40), - borderRadius: new BorderRadius.circular(30.0), - ), - actions: login - ? [ - ToggleButtons( - children: [ - Image.asset( - 'icons/flags/png/us.png', - package: 'country_icons', - fit: BoxFit.fitWidth, - width: 25, - ), - Image.asset( - 'icons/flags/png/mm.png', - package: 'country_icons', - fit: BoxFit.fitWidth, - width: 25, - ) - ], - onPressed: _langChange, - isSelected: isSelected, - ), - IconButton( - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => Profile()), - ); - }, - iconSize: 30, - icon: Icon(Icons.account_circle), - ), - ] - : [ - ToggleButtons( - children: [ - Image.asset( - 'icons/flags/png/us.png', - package: 'country_icons', - fit: BoxFit.fitWidth, - width: 25, - ), - Image.asset( - 'icons/flags/png/mm.png', - package: 'country_icons', - fit: BoxFit.fitWidth, - width: 25, - ) - ], - onPressed: _langChange, - isSelected: isSelected, - ), - FlatButton( - onPressed: () { - Navigator.of(context) - .push(BottomUpPageRoute(SigninPage())); - }, - // iconSize: 30, - child: Text( - "Sign In", - style: siginButtonStyle, - ), - ), - ]), body: Container( decoration: BoxDecoration( gradient: LinearGradient( @@ -137,52 +64,78 @@ class _WelcomePageState extends State { )), child: Column( children: [ + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + ToggleButtons( + children: [ + Image.asset( + 'icons/flags/png/us.png', + package: 'country_icons', + fit: BoxFit.fitWidth, + width: 25, + ), + Image.asset( + 'icons/flags/png/mm.png', + package: 'country_icons', + fit: BoxFit.fitWidth, + width: 25, + ) + ], + selectedBorderColor: Colors.white12, + borderColor: Colors.transparent, + onPressed: _langChange, + isSelected: isSelected, + ), + FlatButton( + onPressed: () { + Navigator.of(context) + .push(BottomUpPageRoute(SigninPage())); + }, + child: Text( + getLocalString(context, "welcome.signin"), + style: siginButtonStyle, + ), + ), + ], + ), Expanded( - child: ListView( + child: Column( children: [ - Padding( - padding: const EdgeInsets.all(80.0), - child: Text( - "Welcome!", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 28, - fontFamily: "Roboto"), - ), - ), - Padding( - padding: const EdgeInsets.only(top: 0.0), - child: Text( - "Cargo Services", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 28, - fontFamily: "Roboto"), - ), - ), - Padding( - padding: const EdgeInsets.all(10.0), - child: Text( - "by FCS Trading", - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, - fontSize: 18, - fontFamily: "Roboto"), + Expanded( + child: Center( + child: Text( + getLocalString(context, "welcome.msg"), + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontFamily: "Roboto"), + ), ), ), Container( - padding: EdgeInsets.only(top: 10, bottom: 30), + padding: EdgeInsets.only(top: 0), child: CircleAvatar( - radius: (50), + radius: (25), backgroundColor: Colors.white, child: ClipRRect( borderRadius: BorderRadius.circular(50), child: Image.asset("assets/logo.jpg"), )), ), + Padding( + padding: + const EdgeInsets.only(bottom: 10.0, top: 5), + child: Text( + "by FCS Logistics", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 11, + fontFamily: "Roboto"), + ), + ), ], ), ), diff --git a/lib/main-local.dart b/lib/main-local.dart index 2cf297f..5d60521 100644 --- a/lib/main-local.dart +++ b/lib/main-local.dart @@ -9,7 +9,7 @@ void main() { Config( flavor: Flavor.DEV, color: Colors.blue, - apiURL: "http://192.168.1.155:7777", + apiURL: "http://192.168.100.11:7777", level: Level.ALL); runApp(App()); } diff --git a/lib/model/main_model.dart b/lib/model/main_model.dart index 845a7e9..49ae5a6 100644 --- a/lib/model/main_model.dart +++ b/lib/model/main_model.dart @@ -81,9 +81,7 @@ class MainModel extends ChangeNotifier { // notifyListeners(); // }); _loadFcs(); - Services.instance.authService.onAuthStatus().listen((event) { - print("main event-->$event"); - }); + Services.instance.authService.onAuthStatus().listen((event) {}); } List get paymentMethods { From eccea7ee02061882a2fcc304d349c13ba5d16618 Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Sun, 13 Sep 2020 21:49:39 +0630 Subject: [PATCH 13/22] add customers and staffs --- assets/local/localization_en.json | 60 ++- assets/local/localization_mu.json | 60 +-- lib/app.dart | 21 +- lib/fcs/common/data/providers/auth_fb.dart | 71 ++- .../data/providers/user_data_provider.dart | 38 ++ .../data/providers/user_fb_data_provider.dart | 7 - lib/fcs/common/domain/constants.dart | 12 +- lib/fcs/common/domain/entities/role.dart | 7 +- lib/fcs/common/domain/entities/setting.dart | 6 + lib/fcs/common/domain/entities/user.dart | 50 ++- lib/fcs/common/helpers/const.dart | 3 + .../pages/customers/customer_editor.dart | 407 ++++-------------- .../common/pages/customers/customer_list.dart | 210 +++++---- .../pages/customers/invitation_detail.dart | 159 +++++++ .../pages/customers/invitation_editor.dart | 105 +++++ .../pages/customers/invitation_list.dart | 148 +++++++ .../pages/customers/invitation_page.dart | 67 --- .../pages/customers/model/customer_model.dart | 103 +++-- .../faq/{faq_page.dart => faq_list_page.dart} | 38 +- lib/fcs/common/pages/home_page.dart | 54 ++- .../pages/initial_language_selection.dart | 239 +++++----- lib/fcs/common/pages/model/main_model.dart | 36 +- .../common/pages/profile/profile_edit.dart | 106 +++++ .../pages/{ => profile}/profile_page.dart | 287 ++++++------ .../pages/signin/invitation_request_page.dart | 7 +- .../pages/signin/model/signin_model.dart | 22 - lib/fcs/common/pages/signin/signin_logic.dart | 31 ++ lib/fcs/common/pages/signin/signin_page.dart | 9 +- lib/fcs/common/pages/signin/signup_page.dart | 16 +- .../common/pages/signin/sms_code_page.dart | 21 +- lib/fcs/common/pages/splash_page.dart | 2 +- .../common/pages/staff/model/staff_model.dart | 88 ++++ lib/fcs/common/pages/staff/staff_editor.dart | 276 ++++++++++++ lib/fcs/common/pages/staff/staff_list.dart | 124 ++++++ lib/fcs/common/pages/util.dart | 42 +- lib/fcs/common/pages/welcome_page.dart | 2 +- .../common/pages/widgets/display_text.dart | 69 +++ lib/fcs/common/services/auth_imp.dart | 14 +- lib/fcs/common/services/auth_service.dart | 2 + lib/fcs/common/services/services.dart | 8 +- lib/fcs/common/services/user_imp.dart | 43 +- lib/fcs/common/services/user_interface.dart | 5 - lib/fcs/common/services/user_service.dart | 8 + pubspec.lock | 37 +- pubspec.yaml | 1 + 45 files changed, 2094 insertions(+), 1027 deletions(-) create mode 100644 lib/fcs/common/data/providers/user_data_provider.dart delete mode 100644 lib/fcs/common/data/providers/user_fb_data_provider.dart create mode 100644 lib/fcs/common/helpers/const.dart create mode 100644 lib/fcs/common/pages/customers/invitation_detail.dart create mode 100644 lib/fcs/common/pages/customers/invitation_editor.dart create mode 100644 lib/fcs/common/pages/customers/invitation_list.dart delete mode 100644 lib/fcs/common/pages/customers/invitation_page.dart rename lib/fcs/common/pages/faq/{faq_page.dart => faq_list_page.dart} (78%) create mode 100644 lib/fcs/common/pages/profile/profile_edit.dart rename lib/fcs/common/pages/{ => profile}/profile_page.dart (52%) delete mode 100644 lib/fcs/common/pages/signin/model/signin_model.dart create mode 100644 lib/fcs/common/pages/signin/signin_logic.dart create mode 100644 lib/fcs/common/pages/staff/model/staff_model.dart create mode 100644 lib/fcs/common/pages/staff/staff_editor.dart create mode 100644 lib/fcs/common/pages/staff/staff_list.dart create mode 100644 lib/fcs/common/pages/widgets/display_text.dart delete mode 100644 lib/fcs/common/services/user_interface.dart create mode 100644 lib/fcs/common/services/user_service.dart diff --git a/assets/local/localization_en.json b/assets/local/localization_en.json index a3e3f54..37990f5 100644 --- a/assets/local/localization_en.json +++ b/assets/local/localization_en.json @@ -48,7 +48,9 @@ "language.selection.title":"Please select your language", "welcome.signin":"Sign In", - "welcome.msg":"Welcome to FCS Logistics!", + "welcome.msg":"Welcome to FCS!", + + "home.invitation.request.msg":"We are working on your invitation request!", "sms.verify.title":"Verify your number", "sms.six.digit":"Enter 6 digit sms code sent to", @@ -60,10 +62,44 @@ "invite.request":"Request Invitation", "invite.request.successful":"Successfully requested!", - "================================================================":"", + "customer.list.title":"Customers", + "customer.name":"Name", + "customer.phone":"Phone Number", + "customer.status":"Status", + "customer.fcs.id":"FCS ID", + "customer.invitation.request.confirm":"Accept Customer", + + "invitation.list": "Invitations", + "invitation.edit": "Invitation", + "invitation.new": "New Invitation", + "invitation.confirm.delete": "Delete this invitation?", + + "staff.title":"Staffs", + "staff.list.title":"Staffs", + "staff.new":"New Staff", + "staff.form.title":"Staff", + "staff.add":"Add", + "staff.update":"Update", + + "profile.title": "My Profile", + "profile.edit_title": "Edit My Profile", + "profile.name": "Name", + "profile.phone": "Phone", + "profile.language": "Languages", + "profile.logout": "logout", + "profile.usa.shipping.address": "USA Shipping Address", + "profile.logout.confirm":"Are you sure want to logout?", + "profile.devices":"Devices", + "profile.email":"Email", + "profile.privilege":"Privilege", + "btn.save": "Save", "btn.approve":"Approve", + "btn.delete":"Delete", + + "================================================================":"", + "product": "Product", "price": "Price", @@ -167,16 +203,7 @@ "reg.confirm":"Submit Registration?", "reg.date":"Registeration Date", - "profile.title": "Profile", - "profile.edit_title": "Edit FCS Profile", - "profile.name": "Name", - "profile.phone": "Phone", - "profile.language": "Languages", - "profile.logout": "logout", - "profile.logout.confirm":"Are you sure want to logout?", - "profile.devices":"Devices", - "profile.email":"Email", - "profile.privilege":"Privilege", + "device.confirm":"Confirm this device?", "device.logout":"Logout this device?", @@ -530,12 +557,6 @@ "notifications.title":"Notification", - "staff.title":"Staffs", - "staff.list.title":"STAFFS", - "staff.new":"New Staff", - "staff.form.title":"STAFF", - "staff.add":"Add", - "staff.update":"Update", "shipment.title":"FCS Shipments", "shipment.list.title":"FCS SHIPMENTS", @@ -605,9 +626,6 @@ "invoice.add_package":"Add Package", - "customer.list.title":"CUSTOMERS", - "customer.form.title":"CUSTOMER", - "customer.invite":"Invite", "fcs.btn": "FCS Profile", "fcs.profile": "FCS PROFILE", diff --git a/assets/local/localization_mu.json b/assets/local/localization_mu.json index 9167a94..57ec0f8 100644 --- a/assets/local/localization_mu.json +++ b/assets/local/localization_mu.json @@ -48,7 +48,9 @@ "language.selection.title":"ဘာသာစကား ရွေးချယ်ပါ", "welcome.signin":"ဝင်မည်", - "welcome.msg":"FCS Logistics က ကြိုဆိုပါတယ်!", + "welcome.msg":"FCS က ကြိုဆိုပါတယ်!", + + "home.invitation.request.msg":"ဖိတ်ကြားမှု တောင်းဆိုသည်ကို လုပ်ဆောင်နေပါသည်!", "sms.verify.title":"သင့်နံပါတ်ကိုအတည်ပြုပါ", "sms.six.digit":"SMS ဂဏန်း ခြောက်လုံး ကိုရိုက်ထဲ့ပါ", @@ -60,11 +62,43 @@ "invite.request":"ဖိတ်ကြားမှု တောင်းဆိုမည်", "invite.request.successful":"တောင်းဆိုမှု အောင်မြင်သည်!", - "================================================================":"", + "customer.list.title":"ဝယ်ယူသူများ", + "customer.name":"နာမည်", + "customer.phone":"ဖုန်းနံပါတ်", + "customer.status":"အခြေအနေ", + "customer.fcs.id":"FCS ID", + "customer.invitation.request.confirm":"လက်ခံ လိုက်ပါ", + "invitation.list": "ဖိတ်ကြားမှုများ", + "invitation.edit": "ဖိတ်ကြားမှု", + "invitation.new": "ဖိတ်ကြားမှု အသစ်", + "invitation.confirm.delete": "ဖိတ်ကြားမှု ဖျက်မလား?", + + "staff.title":"ဝန်ထမ်းများ", + "staff.list.title":"ဝန်ထမ်းများ", + "staff.new":"ဝန်ထမ်း အသစ်", + "staff.form.title":"ဝန်ထမ်း", + "staff.add":"အသစ်ထည့်မည်", + "staff.update":"ပြုပြင်မည်", + + "profile.title":"ကျွန်ုပ် ပရိုဖိုင်", + "profile.edit_title":"ကျွန်ုပ် ပရိုဖိုင်ကိုပြုပြင်ရန်", + "profile.name":"နာမည်", + "profile.phone": "ဖုန်းနံပါတ်", + "profile.language": "ဘာသာစကားများ", + "profile.logout": "အကောင့်ထွက်ရန်", + "profile.usa.shipping.address": "အမေရိကား ပစည်းပို့ရန်လိပ်စာ", + "profile.logout.confirm":"အကောင့်ထွက်ရန်သေချာပြီလား?", + "profile.devices":"ဖုန်းမော်ဒယ်အမျိုးအစားများ", + "profile.email":"အီးမေးလ်", + "profile.privilege":"လုပ်ပိုင်ခွင့်", "btn.save":"သိမ်းဆည်းရန်", "btn.approve":"အတည်ပြုရန်", + "btn.delete":"ဖျက်ရန်", + "================================================================":"", + + "product": "ကုန်ပစ္စည်း", "price": "ဈေးနှုန်း", @@ -166,17 +200,6 @@ "reg.confirm":"မှတ်ပုံတင်သွင်းမည်လား?", "reg.date":"မှတ်ပုံတင်သည့် နေ့စွဲ", - "profile.title":"ပရိုဖိုင်", - "profile.edit_title":"ပရိုဖိုင်ကိုပြုပြင်ရန်", - "profile.name":"နာမည်", - "profile.phone": "ဖုန်းနံပါတ်", - "profile.language": "ဘာသာစကားများ", - "profile.logout": "အကောင့်ထွက်ရန်", - "profile.logout.confirm":"အကောင့်ထွက်ရန်သေချာပြီလား?", - "profile.devices":"ဖုန်းမော်ဒယ်အမျိုးအစားများ", - "profile.email":"အီးမေးလ်", - "profile.privilege":"လုပ်ပိုင်ခွင့်", - "device.confirm":"ဒီဖုန်းမော်ဒယ်ကိုအတည်ပြုမည်လား?", "device.logout":"ဒီဖုန်းမော်ဒယ်ကိုထွက်ရန်သေချာပြီလား?", "device.set_primary":"ဒီဖုန်းမော်ဒယ်ကိုမူလမော်ဒယ်ထည့်ရန်သေချာပြီလား?", @@ -561,19 +584,11 @@ "notifications.title":"Notifications", - "staff.title":"FCS ဝန်ထမ်းများ", - "staff.list.title":"FCS ဝန်ထမ်းများ", - "staff.new":"New Staff", - "staff.form.title":"FCS STAFF", - "staff.add":"Add", - "staff.update":"Update", - "shipment.title":"FCS တင်ပို့ခြင်းများ", "shipment.list.title":"FCS တင်ပို့ခြင်းများ", "shipment.add":"New FCS shipment", "shipment.form.title":"FCS SHIPMENT", "shipment.number":"FCS Shipment Number", - "package.name":"Packages", "package.title":"PACKAGES", @@ -611,7 +626,6 @@ "customers.btn": "ဝယ်ယူသူများ", "customers.title": "ဝယ်ယူသူများ", - "customer.invite":"Invite", "invoices.btn": "ငွေတောင်းခံလွှာများ", "invoices.title": "ငွေတောင်းခံလွှာများ", @@ -622,8 +636,6 @@ "invoice.add_box":"Add Box", - "customer.list.title":"ဝယ်ယူသူများ", - "customer.form.title":"ဝယ်ယူသူ", "fcs.profile": "ပရိုဖိုင်", diff --git a/lib/app.dart b/lib/app.dart index 96f9809..d6b028c 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,6 +1,5 @@ import 'dart:io'; -import 'package:fcs/fcs/common/helpers/theme.dart'; import 'package:fcs/fcs/common/localization/app_translations_delegate.dart'; import 'package:fcs/fcs/common/localization/transalation.dart'; import 'package:fcs/fcs/common/pages/contact/model/contact_model.dart'; @@ -8,7 +7,8 @@ import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; import 'package:fcs/fcs/common/pages/faq/model/faq_model.dart'; import 'package:fcs/fcs/common/pages/initial_language_selection.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart' as fcs; +import 'package:fcs/fcs/common/pages/staff/model/staff_model.dart'; import 'package:fcs/fcs/common/pages/term/model/term_model.dart'; import 'package:fcs/fcs/common/services/services.dart'; import 'package:fcs/model/buyer_model.dart'; @@ -31,8 +31,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart' as fcs; +import 'fcs/common/pages/home_page.dart'; +import 'fcs/common/pages/splash_page.dart'; +import 'fcs/common/pages/welcome_page.dart'; import 'model/announcement_model.dart'; import 'model/chart_model.dart'; import 'model/device_model.dart'; @@ -48,9 +50,6 @@ import 'model/report_user_model.dart'; import 'model/shipment_rate_model.dart'; import 'model/user_model.dart'; import 'model_fcs/box_model.dart'; -import 'fcs/common/pages/home_page.dart'; -import 'fcs/common/pages/welcome_page.dart'; -import 'fcs/common/pages/splash_page.dart'; import 'pages/term.dart'; class App extends StatefulWidget { @@ -67,7 +66,6 @@ class _AppState extends State { final UserModel userModel = new UserModel(); final ProductModel productModel = new ProductModel(); - final EmployeeModel employeeModel = new EmployeeModel(); final POSubmissionModel poSubmissionModel = new POSubmissionModel(); final DOModel doModel = new DOModel(); final LanguageModel lanuguageModel = new LanguageModel(); @@ -94,7 +92,7 @@ class _AppState extends State { final InvoiceModel invoiceModel = new InvoiceModel(); final CustomerModel customerModel = new CustomerModel(); final DiscountModel discountModel = new DiscountModel(); - final SigninModel signinModel = new SigninModel(); + final StaffModel staffModel = new StaffModel(); AppTranslationsDelegate _newLocaleDelegate; static FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = @@ -103,12 +101,14 @@ class _AppState extends State { @override void initState() { super.initState(); + mainModel2..addModel(customerModel); + mainModel2..addModel(staffModel); mainModel2.init(); + _newLocaleDelegate = AppTranslationsDelegate(newLocale: null); Translation().onLocaleChanged = onLocaleChange; mainModel ..addModel(userModel) - ..addModel(employeeModel) ..addModel(storageModel) ..addModel(regModel) ..addModel(poSubmissionModel) @@ -225,7 +225,7 @@ class _AppState extends State { ChangeNotifierProvider.value(value: mainModel), ChangeNotifierProvider.value(value: userModel), ChangeNotifierProvider.value(value: productModel), - ChangeNotifierProvider.value(value: employeeModel), + ChangeNotifierProvider.value(value: staffModel), ChangeNotifierProvider.value(value: poSubmissionModel), ChangeNotifierProvider.value(value: doModel), ChangeNotifierProvider.value(value: storageModel), @@ -255,7 +255,6 @@ class _AppState extends State { ChangeNotifierProvider.value(value: contactModel), ChangeNotifierProvider.value(value: termModel), ChangeNotifierProvider.value(value: faqModel), - ChangeNotifierProvider.value(value: signinModel), ], child: Consumer( builder: (context, value, child) { diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/fcs/common/data/providers/auth_fb.dart index 8f1eb87..2f357f3 100644 --- a/lib/fcs/common/data/providers/auth_fb.dart +++ b/lib/fcs/common/data/providers/auth_fb.dart @@ -9,10 +9,13 @@ import 'package:fcs/fcs/common/domain/entities/setting.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart'; import 'package:firebase_auth/firebase_auth.dart'; +import 'package:logging/logging.dart'; import '../../helpers/api_helper.dart'; class AuthFb { + final log = Logger('AuthFb'); + static final AuthFb instance = AuthFb._(); AuthFb._(); @@ -21,12 +24,22 @@ class AuthFb { Future sendSmsCodeToPhoneNumber(String phoneNumber) { Completer completer = Completer(); + bool codeSentCompleted = false; final PhoneVerificationCompleted verificationCompleted = (AuthCredential credential) async { - AuthResult _authResult = await _fb.signInWithCredential(credential); - if (_authResult == null) { - throw SigninException("Sigin error!"); + AuthResult _authResult; + try { + _authResult = await _fb.signInWithCredential(credential); + print("PhoneVerificationCompleted :$_authResult"); + if (_authResult == null) { + throw SigninException("Sigin error!"); + } + } catch (e) { + print("Exception:$e"); + // throw e; + completer.completeError(SigninException(e.toString())); + return; } fcs.AuthResult auth = fcs.AuthResult(authStatus: AuthStatus.AUTH_VERIFIED); @@ -39,25 +52,32 @@ class AuthFb { (AuthException authException) async { print( 'Phone number verification failed. Code: ${authException.code}. Message: ${authException.message}'); - completer - .completeError(SigninException("Phone number verification failed")); + completer.completeError(SigninException( + "Phone number verification failed:${authException.message}")); }; final PhoneCodeSent codeSent = (String verificationId, [int forceResendingToken]) async { _verificationId = verificationId; - print("code sent to " + phoneNumber); - completer.complete(fcs.AuthResult(authStatus: AuthStatus.SMS_SENT)); + print("codeSent " + phoneNumber); + codeSentCompleted = true; }; final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout = (String verificationId) { + print("codeAutoRetrievalTimeout $verificationId "); + _verificationId = verificationId; + if (codeSentCompleted) { + completer.complete(fcs.AuthResult(authStatus: AuthStatus.SMS_SENT)); + } else { + completer.completeError(SigninException("SMS code failed")); + } }; _fb.verifyPhoneNumber( phoneNumber: phoneNumber, - timeout: const Duration(minutes: 2), + timeout: const Duration(seconds: 0), verificationCompleted: verificationCompleted, verificationFailed: verificationFailed, codeSent: codeSent, @@ -102,12 +122,12 @@ class AuthFb { if (firebaseUser == null) return null; IdTokenResult idToken = await firebaseUser.getIdToken(refresh: refreshIdToken); - String name = idToken.claims["name"]; + + log.info("Claims:${idToken.claims}"); + User user = User(); user.id = firebaseUser.uid; - user.name = name; - user.hasSignup = - idToken.claims.containsKey("signup") && idToken.claims["signup"]; + user.status = idToken.claims["status"]; user.phoneNumber = firebaseUser.phoneNumber; // add privileges @@ -115,10 +135,24 @@ class AuthFb { if (privileges != null && privileges != "") { user.privileges = privileges.split(":").toList(); } - + User _user = await getUserFromFirestore(user.id); + user.fcsID = _user.fcsID; + user.name = _user.name; return user; } + Future getUserFromFirestore(String userID) async { + DocumentSnapshot snap = await Firestore.instance + .collection(user_collection) + .document(userID) + .get(); + if (snap.exists) { + User user = User.fromMap(snap.data, snap.documentID); + return user; + } + return null; + } + Future isLogin() async { final FirebaseUser firebaseUser = await _fb.currentUser(); return Future.value(firebaseUser != null); @@ -134,6 +168,17 @@ class AuthFb { return getUser(refreshIdToken: true); } + Future hasInvite() async { + var invited = + await requestAPI("/check_invitation", "GET", token: await getToken()); + return invited["invited"]; + } + + Future updateProfile(String newUserName) async { + return await requestAPI("/profile", "PUT", + payload: {"user_name": newUserName}, token: await getToken()); + } + Future getToken() async { FirebaseUser firebaseUser = await _fb.currentUser(); IdTokenResult token = await firebaseUser.getIdToken(); diff --git a/lib/fcs/common/data/providers/user_data_provider.dart b/lib/fcs/common/data/providers/user_data_provider.dart new file mode 100644 index 0000000..0dbefc7 --- /dev/null +++ b/lib/fcs/common/data/providers/user_data_provider.dart @@ -0,0 +1,38 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:fcs/fcs/common/domain/constants.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/helpers/api_helper.dart'; +import 'package:fcs/fcs/common/helpers/firebase_helper.dart'; + +class UserDataProvider { + Future inviteUser(String userName, String phoneNumber) async { + return await requestAPI("/invites", "POST", + payload: {"user_name": userName, "phone_number": phoneNumber}, + token: await getToken()); + } + + Future deleteInvite(String phoneNumber) async { + return await requestAPI("/invites", "DELETE", + payload: {"phone_number": phoneNumber}, token: await getToken()); + } + + Future acceptRequest(String userID) async { + return await requestAPI("/invites", "PUT", + payload: {"id": userID}, token: await getToken()); + } + + Future findUser(String phoneNumber) async { + QuerySnapshot querySnap = await Firestore.instance + .collection(user_collection) + .where("phone_number", isEqualTo: phoneNumber) + .limit(1) + .getDocuments(); + + if (querySnap.documents.length > 0) { + var snap = querySnap.documents.first; + User user = User.fromMap(snap.data, snap.documentID); + return user; + } + return null; + } +} diff --git a/lib/fcs/common/data/providers/user_fb_data_provider.dart b/lib/fcs/common/data/providers/user_fb_data_provider.dart deleted file mode 100644 index d5e836c..0000000 --- a/lib/fcs/common/data/providers/user_fb_data_provider.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:fcs/fcs/common/domain/entities/user.dart'; - -class UserFBDataProvider { - Future getUser(String id) { - return null; - } -} diff --git a/lib/fcs/common/domain/constants.dart b/lib/fcs/common/domain/constants.dart index c7d22eb..0dd861b 100644 --- a/lib/fcs/common/domain/constants.dart +++ b/lib/fcs/common/domain/constants.dart @@ -1,11 +1,13 @@ -const ok_doc_id = "ok"; -const setting_doc_id = "setting"; - const config_collection = "configs"; +const user_collection = "users"; +const invitations_collection = "invitations"; +const setting_doc_id = "setting"; +const privilege_collection = "privileges"; + +const ok_doc_id = "ok"; + const biz_collection = "bizs"; const product_collection = "products"; -const user_collection = "users"; -const privilege_collection = "privileges"; const user_level_collection = "user_levels"; const storage_collection = "storages"; const buyer_collection = "buyers"; diff --git a/lib/fcs/common/domain/entities/role.dart b/lib/fcs/common/domain/entities/role.dart index 6a2b0df..d0e5aae 100644 --- a/lib/fcs/common/domain/entities/role.dart +++ b/lib/fcs/common/domain/entities/role.dart @@ -9,7 +9,6 @@ class Role { roleID = json['role_id']; privileges = json['privileges']; } - } class Parser { @@ -63,10 +62,6 @@ class UserLevel { UserLevel({this.id, this.name, this.level}); factory UserLevel.fromMap(Map map, String docID) { - return UserLevel( - id: docID, - name: map['name'], - level: map['level'] - ); + return UserLevel(id: docID, name: map['name'], level: map['level']); } } diff --git a/lib/fcs/common/domain/entities/setting.dart b/lib/fcs/common/domain/entities/setting.dart index 22a0e02..0e0b1c4 100644 --- a/lib/fcs/common/domain/entities/setting.dart +++ b/lib/fcs/common/domain/entities/setting.dart @@ -22,6 +22,8 @@ class Setting { String mmContactNumber; String emailAddress; String facebookLink; + bool inviteRequired; + String appUrl; final String okEnergyId; final String about; @@ -84,6 +86,8 @@ class Setting { this.mmContactNumber, this.emailAddress, this.facebookLink, + this.inviteRequired, + this.appUrl, this.about, this.okEnergyId, this.terms, @@ -122,6 +126,8 @@ class Setting { return Setting( supportBuildNum: map['support_build_number'], + inviteRequired: map['invite_required'], + appUrl: map['app_url'], usaAddress: map['usa_address'], mmAddress: map['mm_address'], usaContactNumber: map['usa_contact_number'], diff --git a/lib/fcs/common/domain/entities/user.dart b/lib/fcs/common/domain/entities/user.dart index 9f4ff40..8f8f7b9 100644 --- a/lib/fcs/common/domain/entities/user.dart +++ b/lib/fcs/common/domain/entities/user.dart @@ -1,22 +1,28 @@ +import 'package:fcs/fcs/common/helpers/const.dart'; + class User { String id; String name; String phoneNumber; - bool hasSignup; - bool invited; - List privileges = []; - + String status; String fcsID; + List privileges = []; + String get phone => phoneNumber != null && phoneNumber.startsWith("959") ? "0${phoneNumber.substring(2)}" : phoneNumber; - + bool get joined => status != null && status == userStatusJoined; + bool get invited => status != null && status == userStatusInvited; + bool get requested => status != null && status == userStatusRequested; + String get share => "Your phone number:$phoneNumber"; User({ this.id, this.name, this.phoneNumber, this.fcsID, + this.status, + this.privileges, }); factory User.fromJson(Map json) { @@ -24,6 +30,7 @@ class User { id: json['id'], name: json['user_name'], phoneNumber: json['phone_number'], + status: json['status'], ); } @@ -41,11 +48,16 @@ class User { } factory User.fromMap(Map map, String docID) { + List _privileges = + map['privileges'] == null ? [] : map['privileges'].cast(); + return User( - id: docID, - name: map['user_name'], - phoneNumber: map['phone_number'], - ); + id: docID, + name: map['user_name'], + phoneNumber: map['phone_number'], + status: map['status'], + fcsID: map['fcs_id'], + privileges: _privileges); } bool isCustomer() { @@ -60,16 +72,26 @@ class User { return privileges != null ? privileges.contains('admin') : false; } - bool hasMaintenance() { - return privileges != null ? privileges.contains('mt') : false; + bool hasCustomers() { + return hasSysAdmin() || + hasAdmin() || + (privileges != null ? privileges.contains('c') : false); } - bool hasCustomers() { - return privileges != null ? privileges.contains('c') : false; + bool hasStaffs() { + return hasSysAdmin() || + hasAdmin() || + (privileges != null ? privileges.contains('s') : false); + } + + bool hasSupport() { + return hasSysAdmin() || + hasAdmin() || + (privileges != null ? privileges.contains('sp') : false); } @override String toString() { - return 'User{name: $name, phoneNumber: $phoneNumber,hasSignup:$hasSignup}'; + return 'User{name: $name, phoneNumber: $phoneNumber,status:$status}'; } } diff --git a/lib/fcs/common/helpers/const.dart b/lib/fcs/common/helpers/const.dart new file mode 100644 index 0000000..f558a5e --- /dev/null +++ b/lib/fcs/common/helpers/const.dart @@ -0,0 +1,3 @@ +const userStatusInvited = "invited"; +const userStatusJoined = "joined"; +const userStatusRequested = "requested"; diff --git a/lib/fcs/common/pages/customers/customer_editor.dart b/lib/fcs/common/pages/customers/customer_editor.dart index a740afd..899b07c 100644 --- a/lib/fcs/common/pages/customers/customer_editor.dart +++ b/lib/fcs/common/pages/customers/customer_editor.dart @@ -1,363 +1,128 @@ -import 'package:fcs/fcs/common/domain/entities/customer.dart'; -import 'package:fcs/fcs/common/domain/entities/role.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/fcs/common/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; typedef void FindCallBack(); class CustomerEditor extends StatefulWidget { - final Customer customer; + final User customer; const CustomerEditor({this.customer}); @override _CustomerEditorState createState() => _CustomerEditorState(); } class _CustomerEditorState extends State { - TextEditingController _name = new TextEditingController(); - TextEditingController _phone = new TextEditingController(); - TextEditingController _phoneInput = new TextEditingController(); - TextEditingController _status = new TextEditingController(); - - final _formKey = GlobalKey(); bool _isLoading = false; - String currentBizId; - bool isSend = false; - User user; - User selectedUser; - List privileges = [ - Privilege(name: 'Manage shipment'), - Privilege(name: 'Manage pickups'), - Privilege(name: 'Manage packages'), - Privilege(name: 'Manage deliveries'), - Privilege(name: 'Admin') - ]; @override void initState() { super.initState(); - // privileges = Provider.of(context, listen: false).privileges; - if (widget.customer != null) { - _name.text = widget.customer.name; - _phone.text = widget.customer.phoneNumber; - _status.text = widget.customer.status; - // privileges.forEach((p) => widget.employee.privilegeIds.contains(p.id) - // ? p.isChecked = true - // : p.isChecked = false); - } - } - - List showprivilegeList(BuildContext context) { - return privileges.map((p) { - return new ListTile( - title: new Row( - children: [ - new Checkbox( - value: p.isChecked == null ? false : p.isChecked, - activeColor: primaryColor, - onChanged: (bool value) { - setState(() { - p.isChecked = value; - }); - }), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Text( - p.name, - style: TextStyle( - fontSize: 15.0, - ), - ), - // Container( - // width: MediaQuery.of(context).size.width * 0.5, - // child: new Text( - // userModel.getPrivileges[index].desc, - // style: - // TextStyle(fontSize: 12.0, color: Colors.grey[600]), - // ), - // ), - ], - ), - ], - )); - }).toList(); - } - - Widget phoneInputbox(BuildContext context, FindCallBack findCallBack) { - var languageModel = Provider.of(context); - return Container( - padding: EdgeInsets.only(top: 10), - child: Stack( - alignment: const Alignment(1.2, 1.0), - children: [ - TextFormField( - controller: _phoneInput, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('employee.phone'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.phone, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - ), - new FlatButton( - onPressed: () { - this.isSend = true; - findCallBack(); - }, - child: new Icon( - Icons.search, - size: 25, - )) - ], - )); } @override Widget build(BuildContext context) { - final namebox = TextFormField( - controller: _name, - autofocus: false, - readOnly: true, - cursorColor: primaryColor, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.person, - color: primaryColor, - ), - ), - ); - - final displayPhoneNo = TextFormField( - controller: _phone, - autofocus: false, - readOnly: true, - cursorColor: primaryColor, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.phone, - color: primaryColor, - ), - ), - ); - var phoneNumberBox = Row( children: [ - Expanded(child: displayPhoneNo), Expanded( - child: InkWell( - onTap: () => call(context, _phone.text), - child: Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ), - ), - ), + child: DisplayText( + text: widget.customer.phoneNumber, + labelText: getLocalString(context, "customer.phone"), + iconData: Icons.phone, + )), + IconButton( + icon: Icon(Icons.open_in_new, color: primaryColor), + onPressed: () => call(context, widget.customer.phoneNumber)), ], ); - final statusbox = TextFormField( - controller: _status, - autofocus: false, - readOnly: true, - cursorColor: primaryColor, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.av_timer, - color: primaryColor, - ), - ), - ); - - final updateButton = Container( - padding: EdgeInsets.only(top: 40), - child: Container( - height: 45.0, - decoration: BoxDecoration( - color: primaryColor, - shape: BoxShape.rectangle, - ), - child: ButtonTheme( - minWidth: 900.0, - height: 100.0, - child: FlatButton( - onPressed: () {}, - child: LocalText( - context, - 'customer.update', - color: Colors.white, - fontSize: 16, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ); - - final addButton = Container( - padding: EdgeInsets.only(top: 40), - child: Container( - height: 45.0, - decoration: BoxDecoration( - color: primaryColor, - shape: BoxShape.rectangle, - ), - child: ButtonTheme( - minWidth: 900.0, - height: 100.0, - child: FlatButton( - onPressed: () {}, - child: LocalText( - context, - 'customer.add', - color: Colors.white, - fontSize: 16, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ); - return LocalProgress( inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), + child: SafeArea( + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.white, + shadowColor: Colors.transparent, + centerTitle: true, + leading: new IconButton( + icon: new Icon( + Icons.close, + color: primaryColor, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + title: Text( + widget.customer.name, + style: TextStyle( + fontSize: 20, + color: primaryColor, + ), + ), ), - backgroundColor: primaryColor, - title: LocalText( - context, - "customer.form.title", - fontSize: 20, - color: Colors.white, + body: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.only(left: 18.0, right: 18), + child: ListView( + children: [ + phoneNumberBox, + DisplayText( + text: widget.customer.status, + labelText: + getLocalString(context, "customer.status"), + iconData: Icons.add_alarm, + ), + DisplayText( + text: widget.customer.fcsID, + labelText: + getLocalString(context, "customer.fcs.id"), + iconData: Icons.account_circle, + ), + ], + ), + ), + ), + widget.customer.requested + ? fcsButton( + context, + getLocalString( + context, "customer.invitation.request.confirm"), + callack: _add) + : Container() + ], + ), ), - // actions: [ - // widget.customer == null || !mainModel.showHistoryBtn() - // ? Container() - // : IconButton( - // icon: Icon(Icons.history), - // onPressed: () { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => DocumentLogPage( - // docID: widget.customer.docID)), - // ); - // }, - // ), - // ], - ), - body: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - widget.customer == null - ? phoneInputbox(context, () => _findUser(context)) - : phoneNumberBox, - widget.customer == null - ? this.isSend ? namebox : Container() - : namebox, - statusbox, - // widget.customer == null ? addButton : updateButton, - SizedBox( - height: 20, - ) - ], ), )); } - _add(BuildContext context) async { - if (selectedUser == null) return; - setState(() { - _isLoading = true; + _add() async { + showConfirmDialog(context, "customer.invitation.request.confirm", () async { + setState(() { + _isLoading = true; + }); + if (widget.customer == null) return; + CustomerModel customerModel = + Provider.of(context, listen: false); + try { + await customerModel.acceptRequest(widget.customer.id); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } }); - // var employeeModel = Provider.of(context); - // try { - // await employeeModel.updatePrivileges( - // this.selectedUser.docID, privilegesIDs()); - // Navigator.pop(context); - // } catch (e) { - // showMsgDialog(context, "Error", e.toString()); - // } finally { - // setState(() { - // _isLoading = false; - // }); - // } - } - - List privilegesIDs() { - return this.privileges.where((p) => p.isChecked).map((p) => p.id).toList(); - } - - _save() async { - setState(() { - _isLoading = true; - }); - if (widget.customer == null) return; - // var employeeModel = Provider.of(context); - // try { - // await employeeModel.updatePrivileges( - // widget.customer.docID, privilegesIDs()); - // Navigator.pop(context); - // } catch (e) { - // showMsgDialog(context, "Error", e.toString()); - // } finally { - // setState(() { - // _isLoading = false; - // }); - // } - } - - _findUser(BuildContext context) async { - // var userModel = Provider.of(context); - // setState(() { - // _isLoading = true; - // }); - // try { - // selectedUser = await userModel.findUser(_phoneInput.text); - // setState(() { - // isSend = true; - // _name.text = selectedUser.name; - // if (selectedUser.privilegeIds != null) { - // privileges.forEach((p) => selectedUser.privilegeIds.contains(p.id) - // ? p.isChecked = true - // : p.isChecked = false); - // } - // }); - // } catch (e) { - // showMsgDialog(context, "Error", e.toString()); - // } finally { - // setState(() { - // _isLoading = false; - // }); - // } } } diff --git a/lib/fcs/common/pages/customers/customer_list.dart b/lib/fcs/common/pages/customers/customer_list.dart index aae62c8..c0978f5 100644 --- a/lib/fcs/common/pages/customers/customer_list.dart +++ b/lib/fcs/common/pages/customers/customer_list.dart @@ -1,20 +1,18 @@ -import 'package:fcs/fcs/common/domain/entities/customer.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/customers/invitation_page.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/pages/customers/customer_editor.dart'; +import 'package:fcs/fcs/common/pages/customers/invitation_list.dart'; import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; - import 'package:provider/provider.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/progress.dart'; -import 'customer_editor.dart'; +import 'invitation_editor.dart'; class CustomerList extends StatefulWidget { @override @@ -40,14 +38,14 @@ class _CustomerListState extends State { onPressed: () => Navigator.of(context).pop(), ), actions: [ - IconButton( - icon: Icon( - Icons.search, - color: Colors.white, - ), - iconSize: 30, - onPressed: () => {}, - ), + // IconButton( + // icon: Icon( + // Icons.search, + // color: Colors.white, + // ), + // iconSize: 30, + // onPressed: () => {}, + // ), ], backgroundColor: primaryColor, title: LocalText( @@ -57,86 +55,114 @@ class _CustomerListState extends State { fontSize: 20, ), ), - floatingActionButton: FloatingActionButton.extended( - onPressed: () { - Navigator.of(context).push(BottomUpPageRoute(InvitationPage())); - }, - icon: Icon(Icons.add), - label: Text(AppTranslations.of(context).text("customer.invite")), - backgroundColor: primaryColor, - ), - body: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: customerModel.customers.length, - itemBuilder: (BuildContext context, int index) { - Customer customer = customerModel.customers[index]; - return Stack( - children: [ - InkWell( - onTap: () { - Navigator.of(context).push( - BottomUpPageRoute(CustomerEditor(customer: customer))); - }, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Icon( - Feather.user, - color: primaryColor, - size: 40, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - new Text( - customer.name, - style: new TextStyle( - fontSize: 15.0, - color: primaryColor), - ), - Padding( - padding: - const EdgeInsets.only(top: 8.0), - child: new Text( - customer.phoneNumber, - style: new TextStyle( - fontSize: 15.0, - color: Colors.grey), - ), - ), - ], - ), - ), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.only(right: 10), - child: getStatus(customer.status), - ), - ], + body: Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Padding( + padding: const EdgeInsets.only(top: 3, right: 5), + child: InkWell( + onTap: _invitations, + child: Container( + color: primaryColor, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Text( + "Invitations", + style: TextStyle(color: Colors.white), ), ), - ], - ); - }), + ), + ), + ), + Expanded( + child: ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(left: 15, right: 15), + shrinkWrap: true, + itemCount: customerModel.customers.length, + itemBuilder: (BuildContext context, int index) { + User customer = customerModel.customers[index]; + return _item(customer); + }), + ), + ], + ), ), ); } + + Widget _item(User customer) { + return Stack( + children: [ + InkWell( + onTap: () => _select(customer), + child: Row( + children: [ + Expanded( + child: new Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: new Row( + children: [ + new Padding( + padding: new EdgeInsets.symmetric( + horizontal: 32.0 - dotSize / 2), + child: Icon( + Feather.user, + color: primaryColor, + size: 40, + ), + ), + new Expanded( + child: new Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + new Text( + customer.name, + style: new TextStyle( + fontSize: 15.0, color: primaryColor), + ), + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: new Text( + customer.phoneNumber, + style: new TextStyle( + fontSize: 15.0, color: Colors.grey), + ), + ), + ], + ), + ), + ], + ), + ), + ), + Padding( + padding: const EdgeInsets.only(right: 10), + child: _status(customer.status), + ), + ], + ), + ), + ], + ); + } + + Widget _status(String status) { + return Text( + status == "requested" ? status : "", + style: TextStyle(color: primaryColor, fontSize: 14), + ); + } + + _select(User customer) { + Navigator.of(context) + .push(BottomUpPageRoute(CustomerEditor(customer: customer))); + } + + _invitations() { + Navigator.of(context).push(BottomUpPageRoute(InvitationList())); + } } diff --git a/lib/fcs/common/pages/customers/invitation_detail.dart b/lib/fcs/common/pages/customers/invitation_detail.dart new file mode 100644 index 0000000..3420bb2 --- /dev/null +++ b/lib/fcs/common/pages/customers/invitation_detail.dart @@ -0,0 +1,159 @@ +import 'package:country_code_picker/country_code_picker.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/widget/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class InvitationDetail extends StatefulWidget { + @override + _InvitationDetailState createState() => _InvitationDetailState(); +} + +class _InvitationDetailState extends State { + TextEditingController _nameController = new TextEditingController(); + TextEditingController _phoneController = new TextEditingController(); + + bool _isLoading = false; + String dialCode; + + @override + void initState() { + super.initState(); + dialCode = "+95"; + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon( + Icons.close, + ), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + title: Text(AppTranslations.of(context).text("invitation.new")), + ), + body: Container( + padding: EdgeInsets.all(18), + child: Column( + children: [ + Expanded( + child: ListView( + children: [ + fcsInput("Name", Icons.person, + controller: _nameController, autoFocus: true), + SizedBox(height: 10), + Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + Icons.phone, + color: primaryColor, + ), + ), + Container( + decoration: BoxDecoration( + border: + Border.all(color: Colors.grey[400], width: 1), + borderRadius: + BorderRadius.all(Radius.circular(12.0))), + child: CountryCodePicker( + onChanged: _countryChange, + initialSelection: dialCode, + countryFilter: ['+95', '+1'], + showCountryOnly: false, + showOnlyCountryWhenClosed: false, + alignLeft: false, + textStyle: TextStyle( + fontSize: 16, + ), + ), + ), + SizedBox( + width: 10, + ), + Flexible( + child: Container( + padding: EdgeInsets.only(top: 10, bottom: 10), + child: TextFormField( + controller: _phoneController, + cursorColor: primaryColor, + textAlign: TextAlign.left, + keyboardType: TextInputType.phone, + style: TextStyle( + fontSize: 18, + ), + decoration: InputDecoration( + fillColor: Colors.white, + labelText: "Phone number", + labelStyle: + TextStyle(fontSize: 16, color: Colors.grey), + filled: true, + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: Colors.grey, width: 1.0)), + ), + ), + ), + ), + ], + ), + ], + ), + ), + fcsButton(context, "Invite", callack: _invite), + SizedBox(height: 10) + ], + ), + ), + ), + ); + } + + _countryChange(CountryCode countryCode) { + setState(() { + dialCode = countryCode.dialCode; + }); + } + + _invite() async { + String userName = _nameController.text; + String phoneNumber = dialCode + _phoneController.text; + if (userName == null || + userName == "" || + phoneNumber == null || + phoneNumber == "") { + showMsgDialog(context, "Error", "Invalid name or phone number"); + return; + } + setState(() { + _isLoading = true; + }); + try { + CustomerModel customerModel = + Provider.of(context, listen: false); + await customerModel.inviteUser(userName, phoneNumber); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } +} diff --git a/lib/fcs/common/pages/customers/invitation_editor.dart b/lib/fcs/common/pages/customers/invitation_editor.dart new file mode 100644 index 0000000..02f62b3 --- /dev/null +++ b/lib/fcs/common/pages/customers/invitation_editor.dart @@ -0,0 +1,105 @@ +import 'package:fcs/fcs/common/domain/entities/customer.dart'; +import 'package:fcs/fcs/common/domain/entities/role.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; + +typedef void FindCallBack(); + +class InvitationEditor extends StatefulWidget { + final User customer; + const InvitationEditor({this.customer}); + @override + _InvitationEditorState createState() => _InvitationEditorState(); +} + +class _InvitationEditorState extends State { + bool _isLoading = false; + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + var phoneNumberBox = Row( + children: [ + Expanded( + child: DisplayText( + text: widget.customer.phoneNumber, + labelText: getLocalString(context, "customer.phone"), + iconData: Icons.phone, + )), + IconButton( + icon: Icon(Icons.open_in_new, color: primaryColor), + onPressed: () => call(context, widget.customer.phoneNumber)), + ], + ); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + backgroundColor: Colors.white, + shadowColor: Colors.transparent, + centerTitle: true, + leading: new IconButton( + icon: new Icon( + Icons.close, + color: primaryColor, + size: 30, + ), + onPressed: () => Navigator.of(context).pop(), + ), + title: Text( + widget.customer.name, + style: TextStyle(fontSize: 20, color: primaryColor), + ), + ), + body: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Expanded( + child: ListView( + children: [phoneNumberBox], + ), + ), + fcsButton(context, getLocalString(context, "btn.delete"), + callack: _delete) + ], + ), + ), + )); + } + + _delete() async { + showConfirmDialog(context, "invitation.confirm.delete", () async { + setState(() { + _isLoading = true; + }); + if (widget.customer == null) return; + CustomerModel customerModel = + Provider.of(context, listen: false); + try { + await customerModel.deleteInvite(widget.customer.phoneNumber); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + }); + } +} diff --git a/lib/fcs/common/pages/customers/invitation_list.dart b/lib/fcs/common/pages/customers/invitation_list.dart new file mode 100644 index 0000000..84e71d6 --- /dev/null +++ b/lib/fcs/common/pages/customers/invitation_list.dart @@ -0,0 +1,148 @@ +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:share/share.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/customers/invitation_detail.dart'; +import 'package:fcs/fcs/common/pages/customers/model/customer_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_icons/flutter_icons.dart'; +import 'package:intl/intl.dart'; + +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; + +import 'invitation_editor.dart'; + +class InvitationList extends StatefulWidget { + @override + _InvitationListState createState() => _InvitationListState(); +} + +class _InvitationListState extends State { + var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm:ss a'); + final double dotSize = 15.0; + bool _isLoading = false; + + @override + Widget build(BuildContext context) { + var customerModel = Provider.of(context); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + actions: [], + backgroundColor: primaryColor, + title: LocalText( + context, + 'invitation.list', + color: Colors.white, + fontSize: 20, + ), + ), + floatingActionButton: FloatingActionButton.extended( + onPressed: () { + Navigator.of(context).push(BottomUpPageRoute(InvitationDetail())); + }, + icon: Icon(Icons.add), + label: Text(AppTranslations.of(context).text("invitation.new")), + backgroundColor: primaryColor, + ), + body: new ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(left: 15, right: 15, top: 15), + shrinkWrap: true, + itemCount: customerModel.invitations.length, + itemBuilder: (BuildContext context, int index) { + User customer = customerModel.invitations[index]; + return _item(customer); + }), + ), + ); + } + + Widget _item(User customer) { + return Stack( + children: [ + InkWell( + onTap: () { + Navigator.of(context) + .push(BottomUpPageRoute(InvitationEditor(customer: customer))); + }, + child: Row( + children: [ + Expanded( + child: new Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: new Row( + children: [ + new Padding( + padding: new EdgeInsets.symmetric( + horizontal: 32.0 - dotSize / 2), + child: Icon( + Feather.user, + color: primaryColor, + size: 40, + ), + ), + new Expanded( + child: new Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + new Text( + customer.name, + style: new TextStyle( + fontSize: 15.0, color: primaryColor), + ), + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: new Text( + customer.phoneNumber, + style: new TextStyle( + fontSize: 15.0, color: Colors.grey), + ), + ), + ], + ), + ), + ], + ), + ), + ), + FlatButton( + onPressed: () => _share(customer), + child: Row( + children: [ + Text("Share"), + Icon(Icons.share), + ], + )), + ], + ), + ), + ], + ); + } + + _share(User user) async { + MainModel mainModel = Provider.of(context, listen: false); + String appUrl = mainModel.setting.appUrl; + final RenderBox box = context.findRenderObject(); + await Share.share( + user.share + "\n Please join us from this link:\n $appUrl", + subject: "Invitation to FCS App", + sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size); + } +} diff --git a/lib/fcs/common/pages/customers/invitation_page.dart b/lib/fcs/common/pages/customers/invitation_page.dart deleted file mode 100644 index 1b93e4f..0000000 --- a/lib/fcs/common/pages/customers/invitation_page.dart +++ /dev/null @@ -1,67 +0,0 @@ -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; - -class InvitationPage extends StatefulWidget { - @override - _InvitationPageState createState() => _InvitationPageState(); -} - -class _InvitationPageState extends State { - TextEditingController _nameController = new TextEditingController(); - TextEditingController _phoneController = new TextEditingController(); - - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon( - Icons.close, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("customer.form.title")), - ), - body: Container( - padding: EdgeInsets.all(18), - child: Column( - children: [ - Expanded( - child: ListView( - children: [ - fcsInput("Name", Icons.person, controller: _nameController), - fcsInput("Phone Number", Icons.phone, - controller: _phoneController), - SizedBox(height: 30), - ], - ), - ), - fcsButton(context, "Invite", callack: () {}), - SizedBox(height: 10) - ], - ), - ), - ), - ); - } -} diff --git a/lib/fcs/common/pages/customers/model/customer_model.dart b/lib/fcs/common/pages/customers/model/customer_model.dart index 57b9771..0277621 100644 --- a/lib/fcs/common/pages/customers/model/customer_model.dart +++ b/lib/fcs/common/pages/customers/model/customer_model.dart @@ -1,26 +1,20 @@ -import 'package:fcs/fcs/common/domain/entities/customer.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:fcs/fcs/common/domain/constants.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:fcs/fcs/common/services/services.dart'; import 'package:logging/logging.dart'; - class CustomerModel extends BaseModel { final log = Logger('CustomerModel'); - List customers = [ - Customer( - name: 'Ko Nyi', - phoneNumber: '+95 9 717273634', - status: 'Invited' - ), - Customer(name: 'Ko Phyu', phoneNumber: '+1 (939) 382-3844',status: 'Signin'), - Customer(name: 'Ko Ye', phoneNumber: '+95 9 983734783', status: 'Invited'), - ]; - - + List customers = []; + List invitations = []; void initUser(user) async { super.initUser(user); - // _loadCustomer(); + _loadCustomer(); + _loadInvitations(); } @override @@ -28,31 +22,64 @@ class CustomerModel extends BaseModel { customers = []; } - // Future _loadCustomer() async { - // if (!user.isOwnerAndAbove() && !user.hasAccount()) { - // return; - // } + Future inviteUser(String userName, String phoneNumber) { + return Services.instance.userService.inviteUser(userName, phoneNumber); + } - // try { - // Firestore.instance - // .collection("/$biz_collection/${setting.okEnergyId}/$user_collection") - // .where("is_employee", isEqualTo: true) - // .snapshots() - // .listen((QuerySnapshot snapshot) { - // customers.clear(); - // customers = snapshot.documents.map((documentSnapshot) { - // var user = - // User.fromMap(documentSnapshot.data, documentSnapshot.documentID); - // return user; - // }).toList(); - // notifyListeners(); - // }).onError((e) { - // log.warning("Error! $e"); - // }); - // } catch (e) { - // log.warning("Error!! $e"); - // } - // } + Future deleteInvite(String phoneNumber) { + return Services.instance.userService.deleteInvite(phoneNumber); + } + + Future acceptRequest(String userID) { + return Services.instance.userService.acceptRequest(userID); + } + + Future _loadCustomer() async { + if (user == null || !user.hasCustomers()) return; + + try { + Firestore.instance + .collection("/$user_collection") + .where("is_sys_admin", isEqualTo: false) + .snapshots() + .listen((QuerySnapshot snapshot) { + customers.clear(); + customers = snapshot.documents.map((documentSnapshot) { + var user = + User.fromMap(documentSnapshot.data, documentSnapshot.documentID); + return user; + }).toList(); + notifyListeners(); + }).onError((e) { + log.warning("Error! $e"); + }); + } catch (e) { + log.warning("Error!! $e"); + } + } + + Future _loadInvitations() async { + if (user == null || !user.hasCustomers()) return; + + try { + Firestore.instance + .collection("/$invitations_collection") + .snapshots() + .listen((QuerySnapshot snapshot) { + invitations.clear(); + invitations = snapshot.documents.map((documentSnapshot) { + var user = + User.fromMap(documentSnapshot.data, documentSnapshot.documentID); + return user; + }).toList(); + notifyListeners(); + }).onError((e) { + log.warning("Error! $e"); + }); + } catch (e) { + log.warning("Error!! $e"); + } + } // Future updatePrivileges(String userID, List privileges) async { // try { diff --git a/lib/fcs/common/pages/faq/faq_page.dart b/lib/fcs/common/pages/faq/faq_list_page.dart similarity index 78% rename from lib/fcs/common/pages/faq/faq_page.dart rename to lib/fcs/common/pages/faq/faq_list_page.dart index 0ffbde2..0934b90 100644 --- a/lib/fcs/common/pages/faq/faq_page.dart +++ b/lib/fcs/common/pages/faq/faq_list_page.dart @@ -12,12 +12,12 @@ import 'package:provider/provider.dart'; import 'model/faq_model.dart'; -class FAQPage extends StatefulWidget { +class FAQListPage extends StatefulWidget { @override - _FAQPageState createState() => _FAQPageState(); + _FAQListPageState createState() => _FAQListPageState(); } -class _FAQPageState extends State { +class _FAQListPageState extends State { @override void initState() { super.initState(); @@ -51,18 +51,20 @@ class _FAQPageState extends State { color: Colors.white, )), ), - actions:isEditable? [ - IconButton( - onPressed: () => - Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => FAQEditor(), - )), - icon: Icon( - CupertinoIcons.add, - color: Colors.white, - size: 35, - )) - ]:[], + actions: isEditable + ? [ + IconButton( + onPressed: () => + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => FAQEditor(), + )), + icon: Icon( + CupertinoIcons.add, + color: Colors.white, + size: 35, + )) + ] + : [], ), SliverList( delegate: SliverChildBuilderDelegate( @@ -92,15 +94,15 @@ class _FAQPageState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Flexible( - child: TextLocalStyle( + child: TextLocalStyle( context, faq.question(isEng), - fontSize: 18, + fontSize: 16, ), ), // Spacer(), Padding( - padding: const EdgeInsets.only(left:18.0), + padding: const EdgeInsets.only(left: 18.0), child: Icon( CupertinoIcons.right_chevron, color: primaryColor, diff --git a/lib/fcs/common/pages/home_page.dart b/lib/fcs/common/pages/home_page.dart index 43183a7..3b85b77 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/fcs/common/pages/home_page.dart @@ -1,8 +1,11 @@ +import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/localization/transalation.dart'; import 'package:fcs/fcs/common/pages/customers/customer_list.dart'; -import 'package:fcs/fcs/common/pages/faq/faq_page.dart'; +import 'package:fcs/fcs/common/pages/faq/faq_list_page.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/staff/staff_list.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/action_button.dart'; import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart'; import 'package:fcs/pages/discount_list.dart'; @@ -30,9 +33,8 @@ import '../../../pages/fcs_profile_page.dart'; import '../../../pages/invoice/invoce_list.dart'; import '../../../pages/pickup_list.dart'; import '../../../pages/shipment_rates.dart'; -import '../../../pages/staff_list.dart'; import '../helpers/theme.dart'; -import 'profile_page.dart'; +import 'profile/profile_page.dart'; import 'signin/signin_page.dart'; final msgLog = Logger('backgroundMessageHandler'); @@ -70,6 +72,7 @@ class _HomePageState extends State { @override Widget build(BuildContext context) { + User user = Provider.of(context).user; login = Provider.of(context).isLogin(); // var owner =true;// Provider.of(context).isOwner(); var customer = Provider.of(context).isCustomer(); @@ -78,7 +81,7 @@ class _HomePageState extends State { final faqBtn = _buildBtn("faq.btn", icon: MaterialCommunityIcons.frequently_asked_questions, btnCallback: () => Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => FAQPage(), + builder: (context) => FAQListPage(), ))); final packagesBtn = _buildBtn("package.name", @@ -169,22 +172,23 @@ class _HomePageState extends State { List widgets = []; widgets.add(faqBtn); - // customer ? widgets.add(buyingBtn) : ""; - // customer || owner ? widgets.add(pickUpBtn) : ""; - !customer ? widgets.add(shipmentBtn) : ""; - // customer || owner ? widgets.add(notiBtn) : ""; - // owner ? widgets.add(staffBtn) : ""; - // owner ? widgets.add(fcsProfileBtn) : ""; - // widgets.add(shipmentCostBtn); - // customer || owner ? widgets.add(packagesBtn) : ""; - // owner ? widgets.add(boxesBtn) : ""; - // owner ? widgets.add(deliveryBtn) : ""; - widgets.add(customersBtn); - // customer || owner ? widgets.add(invoicesBtn) : ""; - // owner ? widgets.add(paymentMethodBtn) : ""; - // owner ? widgets.add(discountBtn) : ""; - // widgets.add(termBtn); - + if (user != null) { + // customer ? widgets.add(buyingBtn) : ""; + // customer || owner ? widgets.add(pickUpBtn) : ""; + // !customer ? widgets.add(shipmentBtn) : ""; + // customer || owner ? widgets.add(notiBtn) : ""; + user.hasStaffs() ? widgets.add(staffBtn) : ""; + // owner ? widgets.add(fcsProfileBtn) : ""; + // widgets.add(shipmentCostBtn); + // customer || owner ? widgets.add(packagesBtn) : ""; + // owner ? widgets.add(boxesBtn) : ""; + // owner ? widgets.add(deliveryBtn) : ""; + user.hasCustomers() ? widgets.add(customersBtn) : ""; + // customer || owner ? widgets.add(invoicesBtn) : ""; + // owner ? widgets.add(paymentMethodBtn) : ""; + // owner ? widgets.add(discountBtn) : ""; + // widgets.add(termBtn); + } return OfflineRedirect( child: FlavorBanner( child: Scaffold( @@ -295,6 +299,16 @@ class _HomePageState extends State { ), child: Column( children: [ + user.requested + ? Container( + padding: const EdgeInsets.all(8.0), + child: Text( + getLocalString( + context, "home.invitation.request.msg"), + style: TextStyle(color: Colors.white70), + ), + ) + : Container(), Expanded( child: ListView(children: [ Wrap( diff --git a/lib/fcs/common/pages/initial_language_selection.dart b/lib/fcs/common/pages/initial_language_selection.dart index 375b8fe..9ec4240 100644 --- a/lib/fcs/common/pages/initial_language_selection.dart +++ b/lib/fcs/common/pages/initial_language_selection.dart @@ -5,6 +5,7 @@ import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; import 'package:fcs/fcs/common/pages/signin/signin_page.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; @@ -28,10 +29,12 @@ class _InitialLanguageSelectionPageState String selectedLanguage; int selectedIndex; + bool _isLoading; @override void initState() { super.initState(); + _isLoading = false; var languageModel = Provider.of(context, listen: false); this.selectedIndex = languageModel.isEng ? 0 : 1; loadLaunguage(languageModel); @@ -48,119 +51,122 @@ class _InitialLanguageSelectionPageState @override Widget build(BuildContext context) { - return Material( - type: MaterialType.transparency, - child: Container( - decoration: BoxDecoration( - gradient: LinearGradient( - colors: [Color(0xff272282), primaryColor], - begin: const FractionalOffset(0.8, 0.9), - end: const FractionalOffset(0.9, 0.0), - stops: [0.0, 1.0], + return LocalProgress( + inAsyncCall: _isLoading, + child: Material( + type: MaterialType.transparency, + child: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [Color(0xff272282), primaryColor], + begin: const FractionalOffset(0.8, 0.9), + end: const FractionalOffset(0.9, 0.0), + stops: [0.0, 1.0], + ), ), - ), - child: Align( - alignment: Alignment.center, - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: Column( - children: [ - Container( - height: 40, - child: LocalText(context, "language.selection.title", - fontSize: 20, - fontWeight: FontWeight.w200, - color: Colors.white), - ), - Container( - padding: EdgeInsets.only(top: 0), - child: Card( - color: Color(0xfff4edec), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(20)), - ), - child: Container( - padding: EdgeInsets.only(top: 20), - width: 300, - height: 160, - child: Column( - children: languagesList.asMap().entries.map((e) { - var language = e.value; - var key = e.key; - return InkWell( - onTap: () { - _select(key, language); - }, - child: Container( - padding: EdgeInsets.all(2), - decoration: key == languagesList.length - 1 - ? BoxDecoration() - : BoxDecoration( - border: Border( - bottom: - BorderSide(color: Colors.grey[300]), - ), - ), - child: ListTile( - leading: language == 'English' - ? Container( - child: CircleAvatar( - radius: 20, - backgroundImage: AssetImage( - "icons/flags/png/gb.png", - package: 'country_icons', - ), - ), - ) - : Container( - child: CircleAvatar( - radius: 20, - backgroundImage: AssetImage( - "icons/flags/png/mm.png", - package: 'country_icons', - ), - ), - ), - title: Text("$language"), - trailing: Theme( - data: Theme.of(context).copyWith( - unselectedWidgetColor: Colors.grey[400], - ), - child: Radio( - value: key, - groupValue: selectedIndex, - onChanged: (int i) => - _select(key, language), - activeColor: primaryColor, - ), - )), - ), - ); - }).toList()), - ), + child: Align( + alignment: Alignment.center, + child: SingleChildScrollView( + scrollDirection: Axis.vertical, + child: Column( + children: [ + Container( + height: 40, + child: LocalText(context, "language.selection.title", + fontSize: 20, + fontWeight: FontWeight.w200, + color: Colors.white), ), - ), - SizedBox(height: 20.0), - Container( - padding: EdgeInsets.only(left: 230, top: 20), - child: Container( - width: 50, - height: 50, - child: InkWell( - onTap: () { - _next(); - }, - child: CircleAvatar( - radius: 25, - backgroundColor: Colors.white, - child: Center( - child: Icon(FontAwesomeIcons.arrowRight, - color: Colors.black87)), + Container( + padding: EdgeInsets.only(top: 0), + child: Card( + color: Color(0xfff4edec), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(20)), + ), + child: Container( + padding: EdgeInsets.only(top: 20), + width: 300, + height: 160, + child: Column( + children: languagesList.asMap().entries.map((e) { + var language = e.value; + var key = e.key; + return InkWell( + onTap: () { + _select(key, language); + }, + child: Container( + padding: EdgeInsets.all(2), + decoration: key == languagesList.length - 1 + ? BoxDecoration() + : BoxDecoration( + border: Border( + bottom: + BorderSide(color: Colors.grey[300]), + ), + ), + child: ListTile( + leading: language == 'English' + ? Container( + child: CircleAvatar( + radius: 20, + backgroundImage: AssetImage( + "icons/flags/png/gb.png", + package: 'country_icons', + ), + ), + ) + : Container( + child: CircleAvatar( + radius: 20, + backgroundImage: AssetImage( + "icons/flags/png/mm.png", + package: 'country_icons', + ), + ), + ), + title: Text("$language"), + trailing: Theme( + data: Theme.of(context).copyWith( + unselectedWidgetColor: Colors.grey[400], + ), + child: Radio( + value: key, + groupValue: selectedIndex, + onChanged: (int i) => + _select(key, language), + activeColor: primaryColor, + ), + )), + ), + ); + }).toList()), ), ), ), - ) - ], + SizedBox(height: 20.0), + Container( + padding: EdgeInsets.only(left: 230, top: 20), + child: Container( + width: 50, + height: 50, + child: InkWell( + onTap: () { + _next(); + }, + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: Center( + child: Icon(FontAwesomeIcons.arrowRight, + color: Colors.black87)), + ), + ), + ), + ) + ], + ), ), ), ), @@ -179,9 +185,18 @@ class _InitialLanguageSelectionPageState } _next() { - SharedPref.finishFirstLaunch(); - bool isLogin = Provider.of(context, listen: false).isLogin(); - String page = isLogin ? "/home" : "/welcome"; - Navigator.of(context).pushReplacementNamed(page); + setState(() { + _isLoading = true; + }); + try { + SharedPref.finishFirstLaunch(); + bool isLogin = Provider.of(context, listen: false).isLogin(); + String page = isLogin ? "/home" : "/welcome"; + Navigator.of(context).pushReplacementNamed(page); + } catch (e) {} finally { + setState(() { + _isLoading = false; + }); + } } } diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/fcs/common/pages/model/main_model.dart index a730d1a..85bc6fb 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/fcs/common/pages/model/main_model.dart @@ -36,20 +36,21 @@ class MainModel extends ChangeNotifier { }); Services.instance.authService.onAuthStatus().listen((event) { this.user = event; + _initUser(user); notifyListeners(); }); } bool faqEditable() { - return this.user != null && false; + return this.user != null && this.user.hasSupport(); } bool termEditable() { - return this.user != null && false; + return this.user != null && this.user.hasSupport(); } bool contactEditable() { - return this.user != null && false; + return this.user != null && this.user.hasSupport(); } bool isLogin() { @@ -81,13 +82,13 @@ class MainModel extends ChangeNotifier { models.add(model); } - // void _initUser(User user) { - // models.forEach((m) => m.initUser(user)); + void _initUser(User user) { + models.forEach((m) => m.initUser(user)); - // if (firebaseMessaging != null) { - // firebaseMessaging.subscribeToTopic(user.docID); - // } - // } + // if (firebaseMessaging != null) { + // firebaseMessaging.subscribeToTopic(user.docID); + // } + } void _initSetting(Setting setting) { models.forEach((m) => m.initSetting(setting)); @@ -106,6 +107,7 @@ class MainModel extends ChangeNotifier { void _loadUser() async { try { this.user = await Services.instance.authService.getUser(); + _initUser(user); } finally { this.isLoaded = true; notifyListeners(); @@ -143,13 +145,27 @@ class MainModel extends ChangeNotifier { Future signout() { this.user = null; + // logout models + models.forEach((m) => m.logout()); notifyListeners(); return Services.instance.authService.signout(); } + Future hasInvite() async { + return Services.instance.authService.hasInvite(); + } + Future signup(String userName) async { await Services.instance.authService.signup(userName); - this.user = await Services.instance.authService.getUser(); + this.user = + await Services.instance.authService.getUser(refreshIdToken: true); + notifyListeners(); + } + + Future updateProfile(String newUserName) async { + await Services.instance.authService.updateProfile(newUserName); + this.user = + await Services.instance.authService.getUser(refreshIdToken: true); notifyListeners(); } } diff --git a/lib/fcs/common/pages/profile/profile_edit.dart b/lib/fcs/common/pages/profile/profile_edit.dart new file mode 100644 index 0000000..f6f1fd7 --- /dev/null +++ b/lib/fcs/common/pages/profile/profile_edit.dart @@ -0,0 +1,106 @@ +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; + +typedef void ProfileCallback(); + +class ProfileEdit extends StatefulWidget { + @override + _ProfileEditState createState() => _ProfileEditState(); +} + +class _ProfileEditState extends State { + final TextEditingController nameController = new TextEditingController(); + bool _loading = false; + + @override + void initState() { + super.initState(); + MainModel mainModel = Provider.of(context, listen: false); + nameController.text = mainModel.user.name; + } + + @override + Widget build(BuildContext context) { + var languageModel = Provider.of(context); + + final name = Container( + padding: EdgeInsets.only(top: 0, left: 20, right: 15, bottom: 30), + child: TextFormField( + controller: nameController, + autofocus: true, + cursorColor: primaryColor, + style: textStyle, + decoration: new InputDecoration( + labelText: AppTranslations.of(context).text("profile.name"), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + icon: Icon( + Icons.person, + color: primaryColor, + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + )); + + final saveBtn = + fcsButton(context, getLocalString(context, "btn.save"), callack: _save); + + return LocalProgress( + inAsyncCall: _loading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + title: Text( + AppTranslations.of(context).text("profile.edit_title"), + style: TextStyle(color: primaryColor), + ), + backgroundColor: Colors.white, + shadowColor: Colors.transparent, + leading: IconButton( + icon: Icon( + CupertinoIcons.back, + size: 35, + color: primaryColor, + ), + onPressed: () => Navigator.of(context).pop(), + ), + ), + body: Column( + children: [ + Expanded(child: name), + Padding( + padding: const EdgeInsets.all(18.0), + child: saveBtn, + ), + ], + ), + ), + ); + } + + _save() async { + setState(() { + _loading = true; + }); + try { + await Provider.of(context, listen: false) + .updateProfile(nameController.text); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _loading = false; + }); + } + } +} diff --git a/lib/fcs/common/pages/profile_page.dart b/lib/fcs/common/pages/profile/profile_page.dart similarity index 52% rename from lib/fcs/common/pages/profile_page.dart rename to lib/fcs/common/pages/profile/profile_page.dart index 13e45c2..b056cb9 100644 --- a/lib/fcs/common/pages/profile_page.dart +++ b/lib/fcs/common/pages/profile/profile_page.dart @@ -2,6 +2,8 @@ import 'package:fcs/fcs/common/localization/app_translations.dart'; import 'package:fcs/fcs/common/localization/transalation.dart'; import 'package:fcs/fcs/common/pages/model/language_model.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/profile/profile_edit.dart'; +import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; import 'package:fcs/fcs/common/pages/widgets/progress.dart'; import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/model/user_model.dart'; @@ -12,10 +14,11 @@ import 'package:fcs/vo/shipping_address.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; -import '../../../pages/shipping_address_editor.dart'; -import '../helpers/theme.dart'; +import '../../../../pages/shipping_address_editor.dart'; +import '../../helpers/theme.dart'; typedef void ProfileCallback(); @@ -25,6 +28,7 @@ class Profile extends StatefulWidget { } class _ProfileState extends State { + GlobalKey key = GlobalKey(); bool _isLoading = false; String selectedLanguage; TextEditingController bizNameController = new TextEditingController(); @@ -49,180 +53,112 @@ class _ProfileState extends State { @override Widget build(BuildContext context) { - var languageModel = Provider.of(context); MainModel mainModel = Provider.of(context); - final namebox = Container( - padding: EdgeInsets.only(top: 10, left: 25.0, right: 25.0), - child: Container( - height: 45.0, - child: Row( - children: [ - Padding( - padding: EdgeInsets.only(left: 0.0), - child: Text( - AppTranslations.of(context).text("profile.name"), - style: languageModel.isEng - ? TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal) - : TextStyle( - fontSize: 15.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal, - fontFamily: "MyanmarUnicode"), - ), - ), - SizedBox( - width: 30, - ), - Container( - child: Center( - child: Text( - mainModel.user == null || mainModel.user.name == null - ? "" - : mainModel.user.name, - style: - TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal), - ), - ), - ) - ], - ), - )); - - final phonenumberbox = Container( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - height: 45.0, - child: Row( - children: [ - Padding( - padding: EdgeInsets.only(left: 0.0), - child: Text( - AppTranslations.of(context).text("profile.phone"), - style: languageModel.isEng - ? TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal) - : TextStyle( - fontSize: 15.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal, - fontFamily: "MyanmarUnicode"), - ), - ), - SizedBox( - width: 27, - ), - Container( - child: Center( - child: Text( - mainModel.user == null - ? "" - : mainModel.user.phone == null ? '' : mainModel.user.phone, - style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal), - ), - ), - ) - ], - ), + final namebox = DisplayText( + text: mainModel.user.name, + labelText: getLocalString(context, "profile.name"), + iconData: Icons.person, ); - final logoutbutton = Container( - padding: EdgeInsets.only(left: 20.0, right: 24.0), - child: Padding( - padding: EdgeInsets.symmetric(vertical: 10.0), - child: Card( - elevation: 23, - child: Container( - height: 45.0, - child: ButtonTheme( - minWidth: 900.0, - height: 100.0, - child: FlatButton.icon( - onPressed: () { - showConfirmDialog(context, "profile.logout.confirm", - () async { - setState(() { - _isLoading = true; - }); - await context.read().signout(); - Navigator.of(context).pushNamedAndRemoveUntil( - "/welcome", ModalRoute.withName('/welcome')); - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - }); - }, - label: Text( - AppTranslations.of(context).text("profile.logout"), - style: languageModel.isEng - ? TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal) - : TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal, - fontFamily: "MyanmarUnicode")), - icon: Icon( - Icons.exit_to_app, - ), - ), - ), - ), - ))); + final phonenumberbox = DisplayText( + text: mainModel.user.phone, + labelText: getLocalString(context, "profile.phone"), + iconData: Icons.phone, + ); + final fcsIDBox = Row( + children: [ + Expanded( + child: DisplayText( + text: mainModel.user.fcsID, + labelText: getLocalString(context, "customer.fcs.id"), + iconData: Icons.account_circle, + ), + ), + IconButton( + icon: Icon(Icons.content_copy, color: Colors.grey), + onPressed: () => _copy( + getLocalString(context, "customer.fcs.id"), mainModel.user.fcsID), + ) + ], + ); + final usaShippingAddressBox = Row( + children: [ + Expanded( + child: DisplayText( + text: mainModel.setting.usaAddress, + labelText: getLocalString(context, "profile.usa.shipping.address"), + iconData: Icons.location_on, + ), + ), + IconButton( + icon: Icon(Icons.content_copy, color: Colors.grey), + onPressed: () => _copy( + getLocalString(context, "profile.usa.shipping.address"), + mainModel.setting.usaAddress), + ) + ], + ); + + final logoutbutton = fcsButton( + context, getLocalString(context, "profile.logout"), + callack: _logout, iconData: Icons.exit_to_app); + return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( + key: key, appBar: AppBar( + centerTitle: true, leading: IconButton( icon: Icon( CupertinoIcons.back, - size: 30, + size: 35, + color: primaryColor, ), onPressed: () => Navigator.of(context).pop(), ), title: Text( AppTranslations.of(context).text("profile.title"), + style: TextStyle(color: primaryColor), ), - backgroundColor: primaryColor, + shadowColor: Colors.transparent, + backgroundColor: Colors.white, actions: [], ), - body: Column( - children: [ - Expanded( - child: ListView( - // padding: EdgeInsets.only(left: 25.0, right: 25.0), - shrinkWrap: true, - children: [ - Row( - children: [ - namebox, - Padding( - padding: const EdgeInsets.only(left: 18.0), - child: Icon(Icons.edit, color: primaryColor), - ) - ], - ), - mainModel.isCustomer() - ? Container() - : getPrivilegeBox(context), - phonenumberbox, - // getShippingAddressList(context), - ], + body: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Expanded( + child: ListView( + shrinkWrap: true, + children: [ + Row( + children: [ + Expanded(child: namebox), + Padding( + padding: const EdgeInsets.only(right: 0), + child: IconButton( + icon: Icon(Icons.edit, color: Colors.grey), + onPressed: _editName), + ) + ], + ), + // mainModel.isCustomer() + // ? Container() + // : getPrivilegeBox(context), + phonenumberbox, + fcsIDBox, + usaShippingAddressBox, + // getShippingAddressList(context), + ], + ), ), - ), - logoutbutton, - SizedBox(height: 25) - ], + logoutbutton, + SizedBox(height: 25) + ], + ), ), ), ); @@ -347,4 +283,43 @@ class _ProfileState extends State { ); }).toList(); } + + _copy(String title, String data) { + Clipboard.setData(ClipboardData(text: data)); + _showToast(title); + } + + void _showToast(String title) { + final ScaffoldState scaffold = key.currentState; + scaffold.showSnackBar( + SnackBar( + content: Text('copied "$title" data to clipboard'), + backgroundColor: secondaryColor, + duration: Duration(seconds: 1), + ), + ); + } + + _editName() { + Navigator.of(context) + .push(CupertinoPageRoute(builder: (context) => ProfileEdit())); + } + + _logout() { + showConfirmDialog(context, "profile.logout.confirm", () async { + setState(() { + _isLoading = true; + }); + await context.read().signout(); + Navigator.of(context) + .pushNamedAndRemoveUntil("/welcome", ModalRoute.withName('/welcome')); + Future.delayed(Duration(seconds: 1), () { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + }); + }); + } } diff --git a/lib/fcs/common/pages/signin/invitation_request_page.dart b/lib/fcs/common/pages/signin/invitation_request_page.dart index 2a7beb6..e9228d8 100644 --- a/lib/fcs/common/pages/signin/invitation_request_page.dart +++ b/lib/fcs/common/pages/signin/invitation_request_page.dart @@ -1,9 +1,7 @@ import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; import 'package:fcs/fcs/common/pages/util.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import '../../../../widget/local_text.dart'; @@ -107,16 +105,17 @@ class _RequestInvitationPageState extends State { _isLoading = true; }); try { - await context.read().requestInvitation(nameCtl.text); + // just signup to request for invitation + await context.read().signup(nameCtl.text); await showMsgDialog(context, "Successful", getLocalString(context, "invite.request.successful")); + Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); } catch (e) { await showMsgDialog(context, "Error", e.toString()); } finally { setState(() { _isLoading = false; }); - Navigator.pushNamedAndRemoveUntil(context, "/welcome", (r) => false); } } } diff --git a/lib/fcs/common/pages/signin/model/signin_model.dart b/lib/fcs/common/pages/signin/model/signin_model.dart deleted file mode 100644 index e47678e..0000000 --- a/lib/fcs/common/pages/signin/model/signin_model.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'dart:async'; - -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; -import 'package:logging/logging.dart'; - -class SigninModel extends BaseModel { - final log = Logger('SigninModel'); - - Future checkInvatation() async { - var invited = await request("/check_invitation", "GET", - token: await Services.instance.authService.getToken()); - return invited["invited"]; - } - - Future requestInvitation(String name) async { - await request("/request_invitation", "POST", - payload: {"user_name": name}, - token: await Services.instance.authService.getToken()); - await Services.instance.authService.signout(); - } -} diff --git a/lib/fcs/common/pages/signin/signin_logic.dart b/lib/fcs/common/pages/signin/signin_logic.dart new file mode 100644 index 0000000..6e48b85 --- /dev/null +++ b/lib/fcs/common/pages/signin/signin_logic.dart @@ -0,0 +1,31 @@ +import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/signin/invitation_request_page.dart'; +import 'package:fcs/fcs/common/pages/signin/signup_page.dart'; +import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; +import 'package:flutter/widgets.dart'; +import 'package:provider/provider.dart'; + +navigateAfterAuthVerified(BuildContext context) async { + User user = Provider.of(context, listen: false).user; + Setting setting = Provider.of(context, listen: false).setting; + + if (user == null || setting == null) return; + + if (user.joined || user.requested) { + Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); + } else { + if (setting.inviteRequired) { + bool invited = + await Provider.of(context, listen: false).hasInvite(); + if (!invited) { + await Navigator.of(context).pushAndRemoveUntil( + BottomUpPageRoute(RequestInvitationPage()), (r) => false); + return; + } + } + await Navigator.of(context) + .pushAndRemoveUntil(BottomUpPageRoute(SignupPage()), (r) => false); + } +} diff --git a/lib/fcs/common/pages/signin/signin_page.dart b/lib/fcs/common/pages/signin/signin_page.dart index cdf2c2a..28b2d2d 100644 --- a/lib/fcs/common/pages/signin/signin_page.dart +++ b/lib/fcs/common/pages/signin/signin_page.dart @@ -1,8 +1,10 @@ import 'package:country_code_picker/country_code_picker.dart'; import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; +import 'package:fcs/fcs/common/domain/entities/setting.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/signin/signin_logic.dart'; import 'package:fcs/fcs/common/pages/signin/signup_page.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; @@ -179,12 +181,7 @@ class _SigninPageState extends State { .push(BottomUpPageRoute(SmsCodePage(phoneNumber: phoneNumber))); Navigator.pop(context); } else if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { - User user = context.read().user; - if (user != null && !user.hasSignup) { - await Navigator.of(context).push(BottomUpPageRoute(SignupPage())); - } else { - Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); - } + await navigateAfterAuthVerified(context); } if (auth.authStatus == AuthStatus.ERROR) { showMsgDialog(context, "Error", auth.authErrorMsg); diff --git a/lib/fcs/common/pages/signin/signup_page.dart b/lib/fcs/common/pages/signin/signup_page.dart index 4f5b611..4686f80 100644 --- a/lib/fcs/common/pages/signin/signup_page.dart +++ b/lib/fcs/common/pages/signin/signup_page.dart @@ -1,4 +1,5 @@ import 'package:fcs/fcs/common/pages/model/main_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -108,7 +109,18 @@ class _SignupPageState extends State { } _submit() async { - await context.read().signup(nameCtl.text); - Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); + setState(() { + _isLoading = true; + }); + try { + await context.read().signup(nameCtl.text); + Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } } } diff --git a/lib/fcs/common/pages/signin/sms_code_page.dart b/lib/fcs/common/pages/signin/sms_code_page.dart index 756d02b..47e884f 100644 --- a/lib/fcs/common/pages/signin/sms_code_page.dart +++ b/lib/fcs/common/pages/signin/sms_code_page.dart @@ -2,20 +2,16 @@ import 'dart:async'; import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/signin/model/signin_model.dart'; -import 'package:fcs/fcs/common/pages/signin/invitation_request_page.dart'; +import 'package:fcs/fcs/common/pages/signin/signin_logic.dart'; import 'package:fcs/fcs/common/pages/util.dart'; import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:pin_input_text_field/pin_input_text_field.dart'; import 'package:provider/provider.dart'; -import 'signup_page.dart'; -import '../../helpers/theme.dart'; import '../../../../widget/progress.dart'; +import '../../helpers/theme.dart'; const resend_count_sec = 30; @@ -202,18 +198,7 @@ class _SmsCodePageState extends State { AuthResult auth = await context.read().signin(this.pin); if (auth.authStatus == AuthStatus.AUTH_VERIFIED) { - User user = context.read().user; - if (user != null && !user.hasSignup) { - bool invited = await context.read().checkInvatation(); - if (invited) { - await Navigator.of(context).push(BottomUpPageRoute(SignupPage())); - } else { - await Navigator.of(context) - .push(BottomUpPageRoute(RequestInvitationPage())); - } - } else { - Navigator.pushNamedAndRemoveUntil(context, "/home", (r) => false); - } + await navigateAfterAuthVerified(context); } } catch (e) { showMsgDialog(context, "Error", e.toString()); diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/fcs/common/pages/splash_page.dart index 074db9f..6658f11 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/fcs/common/pages/splash_page.dart @@ -52,7 +52,7 @@ class _SplashScreenState extends State { if (mainModel.isLoaded) { if (mainModel.isFirstLaunch) { page = "/language_selection"; - } else if (mainModel.isLogin() && mainModel.user.hasSignup) { + } else if (mainModel.isLogin()) { page = "/home"; } else { page = "/welcome"; diff --git a/lib/fcs/common/pages/staff/model/staff_model.dart b/lib/fcs/common/pages/staff/model/staff_model.dart new file mode 100644 index 0000000..9cdefdd --- /dev/null +++ b/lib/fcs/common/pages/staff/model/staff_model.dart @@ -0,0 +1,88 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:fcs/fcs/common/domain/constants.dart'; +import 'package:fcs/fcs/common/domain/entities/role.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/helpers/firebase_helper.dart'; +import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:fcs/fcs/common/services/services.dart'; +import 'package:logging/logging.dart'; + +class StaffModel extends BaseModel { + final log = Logger('StaffModel'); + + List employees = []; + List privileges = []; + + void initUser(user) async { + super.initUser(user); + _loadPrivileges(); + _loadEmployees(); + } + + @override + logout() async { + employees = []; + } + + Future _loadEmployees() async { + if (user == null || !user.hasStaffs()) return; + + try { + Firestore.instance + .collection("/$user_collection") + .where("is_employee", isEqualTo: true) + .where("is_sys_admin", isEqualTo: false) + .snapshots() + .listen((QuerySnapshot snapshot) { + employees.clear(); + employees = snapshot.documents.map((documentSnapshot) { + var user = + User.fromMap(documentSnapshot.data, documentSnapshot.documentID); + return user; + }).toList(); + notifyListeners(); + }).onError((e) { + log.warning("Error! $e"); + }); + } catch (e) { + log.warning("Error!! $e"); + } + } + + Future _loadPrivileges() async { + if (user == null || !user.hasStaffs()) return; + + try { + Firestore.instance + .collection("/$privilege_collection") + .snapshots() + .listen((QuerySnapshot snapshot) { + privileges.clear(); + privileges = snapshot.documents.map((documentSnapshot) { + var privilege = Privilege.fromMap( + documentSnapshot.data, documentSnapshot.documentID); + return privilege; + }).toList(); + notifyListeners(); + }).onError((e) { + log.warning("Error! $e"); + }); + } catch (e) { + log.warning("Error!! $e"); + } + } + + Future updatePrivileges(String userID, List privileges) async { + try { + await request("/employee/privileges", "PUT", + payload: {"id": userID, "privileges": privileges}, + token: await getToken()); + } catch (e) { + throw Exception(e); + } + } + + Future findUser(String phoneNumber) { + return Services.instance.userService.findUser(phoneNumber); + } +} diff --git a/lib/fcs/common/pages/staff/staff_editor.dart b/lib/fcs/common/pages/staff/staff_editor.dart new file mode 100644 index 0000000..cf388ac --- /dev/null +++ b/lib/fcs/common/pages/staff/staff_editor.dart @@ -0,0 +1,276 @@ +import 'package:fcs/fcs/common/domain/entities/role.dart'; +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:fcs/fcs/common/pages/staff/model/staff_model.dart'; +import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +typedef void FindCallBack(); + +class StaffEditor extends StatefulWidget { + final User staff; + const StaffEditor({this.staff}); + @override + _StaffEditorState createState() => _StaffEditorState(); +} + +class _StaffEditorState extends State { + TextEditingController _phoneInput = new TextEditingController(); + + bool _isLoading = false; + User user; + User selectedUser; + List privileges = []; + bool isNew = true; + + @override + void initState() { + super.initState(); + privileges = Provider.of(context, listen: false).privileges; + isNew = widget.staff == null; + user = User(); + if (!isNew) { + user = + User(name: widget.staff.name, phoneNumber: widget.staff.phoneNumber); + user.privileges = widget.staff.privileges; + privileges.forEach((p) => user.privileges.contains(p.id) + ? p.isChecked = true + : p.isChecked = false); + } else { + user.name = ""; + user.phoneNumber = ""; + privileges.forEach((p) => p.isChecked = false); + } + } + + List showprivilegeList(BuildContext context) { + return privileges.map((p) { + return new ListTile( + title: InkWell( + onTap: () { + setState(() { + p.isChecked = p.isChecked == null ? true : !p.isChecked; + }); + }, + child: new Row( + children: [ + new Checkbox( + value: p.isChecked == null ? false : p.isChecked, + activeColor: primaryColor, + onChanged: (bool value) { + setState(() { + p.isChecked = value; + }); + }), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + new Text( + p.name, + style: TextStyle( + fontSize: 15.0, + ), + ), + ], + ), + ], + ), + )); + }).toList(); + } + + Widget phoneSearchbox(BuildContext context, FindCallBack findCallBack) { + var languageModel = Provider.of(context); + return Container( + padding: EdgeInsets.only(bottom: 15, left: 8), + child: Stack( + alignment: const Alignment(1.2, 1.0), + children: [ + TextFormField( + controller: _phoneInput, + autofocus: false, + cursorColor: primaryColor, + keyboardType: TextInputType.phone, + style: textStyle, + decoration: new InputDecoration( + labelText: AppTranslations.of(context).text('employee.phone'), + labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, + icon: Icon( + Icons.phone, + color: primaryColor, + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor, width: 1.0)), + ), + ), + new FlatButton( + onPressed: () { + findCallBack(); + }, + child: new Icon( + Icons.search, + size: 25, + )) + ], + )); + } + + @override + Widget build(BuildContext context) { + final namebox = DisplayText( + text: user.name, + labelText: getLocalString(context, "customer.name"), + iconData: Icons.person, + ); + var phoneNumberBox = Row( + children: [ + Expanded( + child: DisplayText( + text: user.phoneNumber, + labelText: getLocalString(context, "customer.phone"), + iconData: Icons.phone, + )), + IconButton( + icon: Icon(Icons.open_in_new, color: primaryColor), + onPressed: () => call(context, user.phoneNumber)), + ], + ); + + final updateButton = fcsButton( + context, + getLocalString(context, 'staff.update'), + callack: _save, + ); + final addButton = fcsButton( + context, + getLocalString(context, 'staff.add'), + callack: _add, + ); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close, color: primaryColor, size: 30), + onPressed: () => Navigator.of(context).pop(), + ), + shadowColor: Colors.transparent, + backgroundColor: Colors.white, + title: LocalText( + context, + "staff.form.title", + fontSize: 20, + color: primaryColor, + ), + ), + body: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + isNew + ? phoneSearchbox(context, () => _findUser(context)) + : Container(), + phoneNumberBox, + namebox, + Expanded( + child: ListView( + shrinkWrap: true, + padding: EdgeInsets.only(left: 24.0, right: 24.0), + children: showprivilegeList(context), + ), + ), + Container( + child: isNew ? addButton : updateButton, + ), + SizedBox( + height: 10, + ) + ], + ), + ), + )); + } + + _add() async { + if (isNew && selectedUser == null) { + showMsgDialog(context, "Error", "Invalid user!"); + return; + } + setState(() { + _isLoading = true; + }); + StaffModel staffModel = Provider.of(context, listen: false); + try { + await staffModel.updatePrivileges(this.selectedUser.id, privilegesIDs()); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + List privilegesIDs() { + return this.privileges.where((p) => p.isChecked).map((p) => p.id).toList(); + } + + _save() async { + setState(() { + _isLoading = true; + }); + if (widget.staff == null) return; + StaffModel staffModel = Provider.of(context, listen: false); + try { + await staffModel.updatePrivileges(widget.staff.id, privilegesIDs()); + Navigator.pop(context); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + _findUser(BuildContext context) async { + StaffModel staffModel = Provider.of(context, listen: false); + + setState(() { + _isLoading = true; + }); + try { + User _user = await staffModel.findUser(_phoneInput.text); + if (_user == null) { + showMsgDialog(context, "Error", _phoneInput.text + " not found!"); + return; + } + this.selectedUser = _user; + this.user = _user; + setState(() { + if (user.privileges != null) { + privileges.forEach((p) => user.privileges.contains(p.id) + ? p.isChecked = true + : p.isChecked = false); + } + }); + } catch (e) { + showMsgDialog(context, "Error", e.toString()); + } finally { + setState(() { + _isLoading = false; + }); + } + } +} diff --git a/lib/fcs/common/pages/staff/staff_list.dart b/lib/fcs/common/pages/staff/staff_list.dart new file mode 100644 index 0000000..3be1d78 --- /dev/null +++ b/lib/fcs/common/pages/staff/staff_list.dart @@ -0,0 +1,124 @@ +import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/fcs/common/localization/app_translations.dart'; +import 'package:fcs/fcs/common/pages/staff/model/staff_model.dart'; +import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/pages/widgets/progress.dart'; + +import 'package:flutter/material.dart'; +import 'package:flutter_icons/flutter_icons.dart'; +import 'package:intl/intl.dart'; + +import 'package:provider/provider.dart'; +import 'staff_editor.dart'; + +class StaffList extends StatefulWidget { + @override + _StaffListState createState() => _StaffListState(); +} + +class _StaffListState extends State { + var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm:ss a'); + final double dotSize = 15.0; + bool _isLoading = false; + + @override + Widget build(BuildContext context) { + StaffModel staffModel = Provider.of(context); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + title: LocalText( + context, + 'staff.list.title', + color: Colors.white, + fontSize: 20, + ), + ), + floatingActionButton: FloatingActionButton.extended( + onPressed: () { + Navigator.of(context).push(BottomUpPageRoute(StaffEditor())); + }, + icon: Icon(Icons.add), + label: Text(AppTranslations.of(context).text("staff.new")), + backgroundColor: primaryColor, + ), + body: new ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(left: 5, right: 5, top: 5), + shrinkWrap: true, + itemCount: staffModel.employees.length, + itemBuilder: (BuildContext context, int index) { + User user = staffModel.employees[index]; + return _item(user); + }), + ), + ); + } + + Widget _item(User user) { + return Stack( + children: [ + InkWell( + onTap: () { + Navigator.of(context) + .push(BottomUpPageRoute(StaffEditor(staff: user))); + }, + child: Row( + children: [ + Expanded( + child: new Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: new Row( + children: [ + new Padding( + padding: new EdgeInsets.symmetric( + horizontal: 32.0 - dotSize / 2), + child: Icon( + MaterialCommunityIcons.worker, + color: primaryColor, + size: 40, + ), + ), + new Expanded( + child: new Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + new Text( + user.name, + style: new TextStyle(fontSize: 15.0), + ), + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: new Text( + user.phoneNumber, + style: new TextStyle( + fontSize: 15.0, color: Colors.grey), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ], + ), + ), + ], + ); + } +} diff --git a/lib/fcs/common/pages/util.dart b/lib/fcs/common/pages/util.dart index 20c4957..1736bfc 100644 --- a/lib/fcs/common/pages/util.dart +++ b/lib/fcs/common/pages/util.dart @@ -410,13 +410,18 @@ Widget phoneWidget(BuildContext context, String phone) { } Widget fcsInput(String label, IconData iconData, - {TextEditingController controller, String value}) { + {TextEditingController controller, + String value, + bool autoFocus = false, + TextInputType textInputType}) { return TextFormField( initialValue: value, controller: controller, cursorColor: primaryColor, maxLines: null, minLines: 1, + autofocus: autoFocus, + keyboardType: textInputType, decoration: InputDecoration( fillColor: Colors.white, labelText: label, @@ -553,7 +558,19 @@ Widget _dropDown() { ); } -Widget fcsButton(BuildContext context, String text, {Function callack}) { +Widget fcsButton(BuildContext context, String text, + {Function callack, IconData iconData}) { + var languageModel = Provider.of(context); + + var style = languageModel.isEng + ? TextStyle( + fontSize: 16.0, color: Colors.white, fontWeight: FontWeight.bold) + : TextStyle( + fontSize: 16.0, + color: Colors.white, + fontWeight: FontWeight.bold, + fontFamily: "Myanmar3"); + return Container( padding: EdgeInsets.only(left: 10, right: 10, top: 10), child: Container( @@ -567,12 +584,21 @@ Widget fcsButton(BuildContext context, String text, {Function callack}) { height: 100.0, child: FlatButton( onPressed: callack, - child: Text(text, - style: TextStyle( - color: Colors.white, - fontSize: 16, - fontWeight: FontWeight.bold, - )), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + iconData == null + ? Container() + : Icon( + iconData, + color: Colors.white, + ), + SizedBox( + width: 15, + ), + Text(text, style: style), + ], + ), ), ), ), diff --git a/lib/fcs/common/pages/welcome_page.dart b/lib/fcs/common/pages/welcome_page.dart index 027e06b..ff8d79c 100644 --- a/lib/fcs/common/pages/welcome_page.dart +++ b/lib/fcs/common/pages/welcome_page.dart @@ -13,7 +13,7 @@ import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; import '../helpers/theme.dart'; -import 'profile_page.dart'; +import 'profile/profile_page.dart'; import 'signin/signin_page.dart'; final msgLog = Logger('backgroundMessageHandler'); diff --git a/lib/fcs/common/pages/widgets/display_text.dart b/lib/fcs/common/pages/widgets/display_text.dart new file mode 100644 index 0000000..fc66dd8 --- /dev/null +++ b/lib/fcs/common/pages/widgets/display_text.dart @@ -0,0 +1,69 @@ +import 'package:fcs/fcs/common/helpers/theme.dart'; +import 'package:fcs/fcs/common/pages/model/language_model.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class DisplayText extends StatelessWidget { + final String text; + final String labelText; + final IconData iconData; + final int maxLines; + final bool withBorder; + final Color borderColor; + + const DisplayText({ + Key key, + this.text, + this.labelText, + this.iconData, + this.maxLines = 1, + this.withBorder = false, + this.borderColor, + }) : super(key: key); + @override + Widget build(BuildContext context) { + var languageModel = Provider.of(context); + + var labelStyle = languageModel.isEng + ? TextStyle( + color: Colors.black54, + ) + : TextStyle(color: Colors.black54, fontFamily: "Myanmar3"); + var textStyle = languageModel.isEng + ? TextStyle( + color: primaryColor, + ) + : TextStyle(color: primaryColor, fontFamily: "Myanmar3"); + + return Padding( + padding: const EdgeInsets.only(top: 8.0, bottom: 8), + child: Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + iconData, + color: primaryColor, + ), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + labelText, + style: labelStyle, + ), + Text( + text, + style: textStyle, + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/fcs/common/services/auth_imp.dart b/lib/fcs/common/services/auth_imp.dart index 8a078bd..bfbe7cb 100644 --- a/lib/fcs/common/services/auth_imp.dart +++ b/lib/fcs/common/services/auth_imp.dart @@ -1,5 +1,5 @@ import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; -import 'package:fcs/fcs/common/data/providers/user_fb_data_provider.dart'; +import 'package:fcs/fcs/common/data/providers/user_data_provider.dart'; import 'package:fcs/fcs/common/data/providers/user_local_data_provider.dart'; import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; @@ -13,12 +13,10 @@ class AuthServiceImp implements AuthService { AuthServiceImp({ @required this.authFb, @required this.connectivity, - @required this.userFBDataProvider, @required this.userLocalDataProvider, }); final Connectivity connectivity; - final UserFBDataProvider userFBDataProvider; final UserLocalDataProvider userLocalDataProvider; final AuthFb authFb; @@ -61,4 +59,14 @@ class AuthServiceImp implements AuthService { Future getToken() { return authFb.getToken(); } + + @override + Future hasInvite() { + return authFb.hasInvite(); + } + + @override + Future updateProfile(String newUserName) { + return authFb.updateProfile(newUserName); + } } diff --git a/lib/fcs/common/services/auth_service.dart b/lib/fcs/common/services/auth_service.dart index 5344e28..216db36 100644 --- a/lib/fcs/common/services/auth_service.dart +++ b/lib/fcs/common/services/auth_service.dart @@ -8,6 +8,8 @@ abstract class AuthService { Future signout(); Future getUser({bool refreshIdToken = false}); Future signup(String userName); + Future updateProfile(String newUserName); + Future hasInvite(); Stream getSetting(); Stream onAuthStatus(); Future getToken(); diff --git a/lib/fcs/common/services/services.dart b/lib/fcs/common/services/services.dart index 560525d..059404c 100644 --- a/lib/fcs/common/services/services.dart +++ b/lib/fcs/common/services/services.dart @@ -1,7 +1,10 @@ import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; +import 'package:fcs/fcs/common/data/providers/user_data_provider.dart'; import 'package:fcs/fcs/common/services/auth_imp.dart'; import 'package:fcs/fcs/common/services/messaging_imp.dart'; import 'package:fcs/fcs/common/services/messaging_service.dart'; +import 'package:fcs/fcs/common/services/user_imp.dart'; +import 'package:fcs/fcs/common/services/user_service.dart'; import 'auth_service.dart'; @@ -9,16 +12,19 @@ class Services { static final Services instance = Services._(); AuthService _authService; + UserService _userService; MessagingService _messagingService; Services._() { _authService = AuthServiceImp( authFb: AuthFb.instance, connectivity: null, - userFBDataProvider: null, userLocalDataProvider: null); + _userService = UserServiceImp( + connectivity: null, userDataProvider: UserDataProvider()); _messagingService = MessagingServiceImp(); } AuthService get authService => _authService; + UserService get userService => _userService; MessagingService get messagingService => _messagingService; } diff --git a/lib/fcs/common/services/user_imp.dart b/lib/fcs/common/services/user_imp.dart index c863333..42a7763 100644 --- a/lib/fcs/common/services/user_imp.dart +++ b/lib/fcs/common/services/user_imp.dart @@ -1,33 +1,36 @@ +import 'package:fcs/fcs/common/data/providers/user_data_provider.dart'; import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/domain/exceiptions/server_exceptions.dart'; import 'package:flutter/material.dart'; -import 'user_interface.dart'; +import 'user_service.dart'; -class UserImp implements UserInterface { - UserImp({ +class UserServiceImp implements UserService { + UserServiceImp({ @required this.connectivity, + @required this.userDataProvider, }); final Connectivity connectivity; + final UserDataProvider userDataProvider; @override - Future getUser(String id) async { - if (connectivity.isConnected) { - try { - final User user = User(); - // await userFBDataProvider.getUser(id); - // cache product - // productLocalDataProvider.cacheProduct(product); - return user; - } catch (e) { - print(e); - return ServerException()(); - } - } else { - return Future.value(User()); - // return userLocalDataProvider.getUser(id); - } + Future inviteUser(String userName, String phoneNumber) { + return userDataProvider.inviteUser(userName, phoneNumber); + } + + @override + Future deleteInvite(String phoneNumber) { + return userDataProvider.deleteInvite(phoneNumber); + } + + @override + Future acceptRequest(String userID) { + return userDataProvider.acceptRequest(userID); + } + + @override + Future findUser(String phoneNumber) { + return userDataProvider.findUser(phoneNumber); } } diff --git a/lib/fcs/common/services/user_interface.dart b/lib/fcs/common/services/user_interface.dart deleted file mode 100644 index 31d48f4..0000000 --- a/lib/fcs/common/services/user_interface.dart +++ /dev/null @@ -1,5 +0,0 @@ -import 'package:fcs/fcs/common/domain/entities/user.dart'; - -abstract class UserInterface { - Future getUser(String id); -} diff --git a/lib/fcs/common/services/user_service.dart b/lib/fcs/common/services/user_service.dart new file mode 100644 index 0000000..69abe7a --- /dev/null +++ b/lib/fcs/common/services/user_service.dart @@ -0,0 +1,8 @@ +import 'package:fcs/fcs/common/domain/entities/user.dart'; + +abstract class UserService { + Future inviteUser(String userName, String phoneNumber); + Future deleteInvite(String phoneNumber); + Future acceptRequest(String userID); + Future findUser(String phoneNumber); +} diff --git a/pubspec.lock b/pubspec.lock index 8c81efa..753e084 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -245,7 +245,21 @@ packages: name: firebase_auth url: "https://pub.dartlang.org" source: hosted - version: "0.14.0+9" + version: "0.16.1" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.8" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3+1" firebase_core: dependency: "direct main" description: @@ -328,6 +342,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.7.5" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.4+4" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" flutter_localizations: dependency: "direct main" description: flutter @@ -709,6 +737,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" + share: + dependency: "direct main" + description: + name: share + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.5" shared_preferences: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index d4610db..316c27a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -75,6 +75,7 @@ dependencies: barcode_scan: ^3.0.1 flutter_pdfview: ^1.0.3 flutter_local_notifications: ^1.4.4+4 + share: ^0.6.5 From ad527409ec288d5b3c203c68a658f816f31f3eaa Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Tue, 15 Sep 2020 07:13:41 +0630 Subject: [PATCH 14/22] add barcode scan --- android/app/build.gradle | 3 + android/app/src/main/AndroidManifest.xml | 1 + android/build.gradle | 3 + assets/local/localization_en.json | 29 +- assets/local/localization_mu.json | 39 +- lib/app.dart | 17 +- .../data/providers/package_data_provider.dart | 16 + .../data/providers/user_data_provider.dart | 35 + .../providers/user_local_data_provider.dart | 7 - lib/fcs/common/domain/entities/package.dart | 61 ++ lib/fcs/common/domain/entities/shipment.dart | 25 + lib/fcs/common/domain/entities/user.dart | 7 + lib/fcs/common/domain/vo/shipment_status.dart | 6 + .../common/domain/vo/shipping_address.dart | 15 + .../common/pages/contact/contact_editor.dart | 25 +- .../common/pages/contact/contact_page.dart | 2 +- .../pages/customers/customer_editor.dart | 36 +- .../pages/customers/invitation_create.dart | 152 +++ .../pages/customers/invitation_detail.dart | 159 --- .../pages/customers/invitation_list.dart | 6 +- .../pages/customers/model/customer_model.dart | 30 +- lib/fcs/common/pages/faq/faq_detail_page.dart | 16 +- lib/fcs/common/pages/faq/faq_edit_page.dart | 26 +- lib/fcs/common/pages/faq/faq_list_page.dart | 176 ++-- lib/fcs/common/pages/faq/model/faq_model.dart | 36 +- lib/fcs/common/pages/home_page.dart | 39 +- .../pages/package/barcode_screen_page.dart | 69 ++ lib/fcs/common/pages/package/buyer_info.dart | 279 ++++++ .../common/pages/package/buyer_list_row.dart | 105 ++ .../pages/package/model/package_model.dart | 196 ++++ .../pages/package/model/shipment_model.dart | 102 ++ .../pages/package/package_creation.dart | 549 +++++++++++ .../common/pages/package/package_info.dart | 140 +++ .../common/pages/package/package_list.dart | 223 +++++ .../pages/package/package_list_row.dart | 132 +++ lib/fcs/common/pages/package/package_new.dart | 221 +++++ lib/fcs/common/pages/package/search_page.dart | 111 +++ .../package/shipping_address_editor.dart | 139 +++ .../pages/package/shipping_address_list.dart | 105 ++ .../pages/package/shipping_address_row.dart | 121 +++ .../common/pages/package/user_list_row.dart | 86 ++ lib/fcs/common/pages/package/user_serach.dart | 119 +++ .../common/pages/staff/model/staff_model.dart | 10 +- lib/fcs/common/pages/staff/staff_editor.dart | 46 +- lib/fcs/common/pages/staff/staff_list.dart | 2 +- .../common/pages/term/model/term_model.dart | 5 +- lib/fcs/common/pages/term/term_edit.dart | 41 +- lib/fcs/common/pages/util.dart | 6 +- .../common/pages/widgets/display_text.dart | 10 +- .../pages/widgets/fcs_expansion_tile.dart | 68 ++ lib/fcs/common/pages/widgets/input_text.dart | 4 +- .../common/pages/widgets/label_widgets.dart | 55 ++ .../common/pages/widgets/my_data_table.dart | 926 ++++++++++++++++++ lib/fcs/common/services/auth_imp.dart | 3 - lib/fcs/common/services/services.dart | 6 +- lib/fcs/common/services/user_imp.dart | 5 + lib/fcs/common/services/user_service.dart | 1 + lib/main-local.dart | 2 + lib/pages/barcode_screen_page.dart | 3 +- pubspec.lock | 16 +- pubspec.yaml | 2 +- 61 files changed, 4387 insertions(+), 488 deletions(-) create mode 100644 lib/fcs/common/data/providers/package_data_provider.dart delete mode 100644 lib/fcs/common/data/providers/user_local_data_provider.dart create mode 100644 lib/fcs/common/domain/entities/package.dart create mode 100644 lib/fcs/common/domain/entities/shipment.dart create mode 100644 lib/fcs/common/domain/vo/shipment_status.dart create mode 100644 lib/fcs/common/domain/vo/shipping_address.dart create mode 100644 lib/fcs/common/pages/customers/invitation_create.dart delete mode 100644 lib/fcs/common/pages/customers/invitation_detail.dart create mode 100644 lib/fcs/common/pages/package/barcode_screen_page.dart create mode 100644 lib/fcs/common/pages/package/buyer_info.dart create mode 100644 lib/fcs/common/pages/package/buyer_list_row.dart create mode 100644 lib/fcs/common/pages/package/model/package_model.dart create mode 100644 lib/fcs/common/pages/package/model/shipment_model.dart create mode 100644 lib/fcs/common/pages/package/package_creation.dart create mode 100644 lib/fcs/common/pages/package/package_info.dart create mode 100644 lib/fcs/common/pages/package/package_list.dart create mode 100644 lib/fcs/common/pages/package/package_list_row.dart create mode 100644 lib/fcs/common/pages/package/package_new.dart create mode 100644 lib/fcs/common/pages/package/search_page.dart create mode 100644 lib/fcs/common/pages/package/shipping_address_editor.dart create mode 100644 lib/fcs/common/pages/package/shipping_address_list.dart create mode 100644 lib/fcs/common/pages/package/shipping_address_row.dart create mode 100644 lib/fcs/common/pages/package/user_list_row.dart create mode 100644 lib/fcs/common/pages/package/user_serach.dart create mode 100644 lib/fcs/common/pages/widgets/fcs_expansion_tile.dart create mode 100644 lib/fcs/common/pages/widgets/label_widgets.dart create mode 100644 lib/fcs/common/pages/widgets/my_data_table.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 6002305..5492e81 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -92,6 +92,8 @@ flutter { source '../..' } +apply plugin: 'kotlin-android' + dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' @@ -100,6 +102,7 @@ dependencies { implementation 'com.google.firebase:firebase-analytics:17.5.0' implementation 'com.google.firebase:firebase-auth:19.0.0' implementation 'com.google.firebase:firebase-messaging:20.1.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } apply plugin: 'com.google.gms.google-services' diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b7eb249..f617e89 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + vN4un2)t(~ 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 W&&6MpM2> zkfP8CLr--VmGOeB5C2$at){n^qI?A@ zD)1~tjpL)h&lKe)K~eoy6tz8;qBvaR3w3wk5AzObswz`6=T<)RlJ{9Dnz<-P_ZkX}sdc2>*HpUWUX4^BY+9&M~;Ug|=yzvQFRexjU6N ziQKlB`*>WReW8eX_D%Mb+cEE1)L7>v2CEI8UZ!^HY-HTj#O|kyH?I$~Is99=qu%s{ z*ty6Hb#-w+yW2e~bTn9~vVew$hQ?QSRBdObr-mj5OKU$oy&xbcxaZKJL)}l#Ep(rr z^eJ%taQfoKIn2zKKMQW%x~2EvsIIW-gL{!ey1Rl`Y!oaHUJ;RMn5JQ4lW34;wD-xA zCyUx=_E1!(=sXoR%5Q_1*j}fOk^@_v+l1C^bB??&=UqeIAuZh`-XSg{V_Xv>F5Z;3 zKW2RRi)QZO=iN6>4A6>we(G&vpaMH|_!-u5v^nRGkM$TKId}mu-+28fDD7-J)QNOTODH;t=X!zV5O+qtvM9ctb%b% zo!;iCEXJqU;CphxMpz~puUc_tY@e{sP3jyQMIFDT#^_pni9`0Ldwv%>vqopwQOFzXVSC9;L z@uFJT07c#0?dX`^-_Cl=<43w*cU^vBPTN5cvwk@)XYy4Y&NB8>^gHaI5 zjWM<5F1&b1h&;4jSXg~A&ko~~u}^E-bsg`RP`BX#h?YXjAmv@REqHdb+ESBIm z#8MhHhbr3{tHzjhU(77;9`jm1ofkLc)8vBr7GXEY7F0)USV~^y7=l+tW5sFPJwLCD z5x0E9U9M}I=P0Z=`TdNtvNCy9mSiwL)oPOOd>tF~*u2nF-J4xCb${j!(F27B!7Ify z;_$X)9Jb>*HoGM>8ZGBg`2yhsg=T!b7=1l<#PMKjo>QvIrIq1fVK?O#ND1jDU!EN83e_v|^AUu4X_=4X?BU+-sV42* z7MqrP)c|+Zw!P5Hz11mSm&}ocY{vtS-WMsyzP;1s-TU?Bt=$dDd)MH~GnN)$f`XW! z=tczvi-*qbrc1bF@ET{Uk%9Jx6#WhAT3U%(jFc4|QF}?e-?~3ZW5wG%r)zEQ zwPN&%2Hw9TxieCYxurCql-y|VMHJ;40nwAV4_%gG@z}R7

#P)+5<-@cs1^ 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%0D{Kf&ZW&n7aKWBTgW? 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

&e_H$k!Y&y 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

}i~Hdu@|Q560DSW^8$uK%$pT}%hQ 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 diff --git a/assets/buyer.png b/assets/buyer.png deleted file mode 100644 index 881b91db4a6984f9859678b793b2ce2f4d698d41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5526 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 diff --git a/assets/FirstName&LastName.png b/assets/buying_online_with_first_last_name.png similarity index 100% rename from assets/FirstName&LastName.png rename to assets/buying_online_with_first_last_name.png diff --git a/assets/Fullname.png b/assets/buying_online_with_full_name.png similarity index 100% rename from assets/Fullname.png rename to assets/buying_online_with_full_name.png diff --git a/assets/date_filter.png b/assets/date_filter.png deleted file mode 100644 index 537c2e3c8def8b0857f9bfa019ef6f8d61f9bd5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19485 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 diff --git a/assets/demo.pdf b/assets/demo.pdf deleted file mode 100644 index 7d40327..0000000 --- a/assets/demo.pdf +++ /dev/null @@ -1,51897 +0,0 @@ -%PDF-1.3 -% -6 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 4 0 R -/Resources 5 0 R ->> -endobj -5 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F2 7 0 R -/F3 9 0 R ->> ->> -endobj -4 0 obj -<< -/Length 186 -/Filter /FlateDecode ->> -stream -x10 E_IH( lHC[ց/m@K,1Y\UuS$g+8rȃZ-Aic! -,8 A:2ƮX*&3A:~ffm=vh)6a5gD*A~vf֗ζ|"e5] ' q]eQMq0X -endstream -endobj -14 0 obj -<< -/S /URI -/URI (false) ->> -endobj -15 0 obj -<< -/Subtype /Link -/A 14 0 R -/Type /Annot -/Rect [72 685.975 366.225 720] -/Border [0 0 0] ->> -endobj -17 0 obj -<< -/S /URI -/URI (false) ->> -endobj -18 0 obj -<< -/Subtype /Link -/A 17 0 R -/Type /Annot -/Rect [72 646.477 159.516 670.975] -/Border [0 0 0] ->> -endobj -19 0 obj -<< -/S /URI -/URI (false) ->> -endobj -20 0 obj -<< -/Subtype /Link -/A 19 0 R -/Type /Annot -/Rect [72 623.977 176.6875 636.477] -/Border [0 0 0] ->> -endobj -21 0 obj -<< -/S /URI -/URI (http://npmjs.org/) ->> -endobj -22 0 obj -<< -/Subtype /Link -/A 21 0 R -/Type /Annot -/Rect [176.6875 623.977 200.076172 636.477] -/Border [0 0 0] ->> -endobj -23 0 obj -<< -/S /URI -/URI (false) ->> -endobj -24 0 obj -<< -/Subtype /Link -/A 23 0 R -/Type /Annot -/Rect [200.076172 623.977 489.832031 636.477] -/Border [0 0 0] ->> -endobj -25 0 obj -<< -/S /URI -/URI (false) ->> -endobj -26 0 obj -<< -/Subtype /Link -/A 25 0 R -/Type /Annot -/Rect [72 611.477 149.299805 623.977] -/Border [0 0 0] ->> -endobj -27 0 obj -<< -/S /URI -/URI (false) ->> -endobj -28 0 obj -<< -/Subtype /Link -/A 27 0 R -/Type /Annot -/Rect [72 590.164 88.2 601.477] -/Border [0 0 0] ->> -endobj -30 0 obj -<< -/S /URI -/URI (false) ->> -endobj -31 0 obj -<< -/Subtype /Link -/A 30 0 R -/Type /Annot -/Rect [88.2 590.164 93.6 601.477] -/Border [0 0 0] ->> -endobj -32 0 obj -<< -/S /URI -/URI (false) ->> -endobj -33 0 obj -<< -/Subtype /Link -/A 32 0 R -/Type /Annot -/Rect [93.6 590.164 131.4 601.477] -/Border [0 0 0] ->> -endobj -34 0 obj -<< -/S /URI -/URI (false) ->> -endobj -35 0 obj -<< -/Subtype /Link -/A 34 0 R -/Type /Annot -/Rect [131.4 590.164 136.8 601.477] -/Border [0 0 0] ->> -endobj -36 0 obj -<< -/S /URI -/URI (false) ->> -endobj -37 0 obj -<< -/Subtype /Link -/A 36 0 R -/Type /Annot -/Rect [136.8 590.164 169.2 601.477] -/Border [0 0 0] ->> -endobj -38 0 obj -<< -/S /URI -/URI (false) ->> -endobj -39 0 obj -<< -/Subtype /Link -/A 38 0 R -/Type /Annot -/Rect [72 555.666 229.122 580.164] -/Border [0 0 0] ->> -endobj -40 0 obj -<< -/S /URI -/URI (false) ->> -endobj -41 0 obj -<< -/Subtype /Link -/A 40 0 R -/Type /Annot -/Rect [72 533.166 374.041016 545.666] -/Border [0 0 0] ->> -endobj -42 0 obj -<< -/S /URI -/URI (false) ->> -endobj -43 0 obj -<< -/Subtype /Link -/A 42 0 R -/Type /Annot -/Rect [374.041016 533.096 410.041016 545.666] -/Border [0 0 0] ->> -endobj -45 0 obj -<< -/S /URI -/URI (false) ->> -endobj -46 0 obj -<< -/Subtype /Link -/A 45 0 R -/Type /Annot -/Rect [410.041016 533.166 490.412109 545.666] -/Border [0 0 0] ->> -endobj -47 0 obj -<< -/S /URI -/URI (false) ->> -endobj -48 0 obj -<< -/Subtype /Link -/A 47 0 R -/Type /Annot -/Rect [72 520.666 324.905273 533.166] -/Border [0 0 0] ->> -endobj -49 0 obj -<< -/S /URI -/URI (false) ->> -endobj -50 0 obj -<< -/Subtype /Link -/A 49 0 R -/Type /Annot -/Rect [324.905273 520.596 390.905273 533.166] -/Border [0 0 0] ->> -endobj -51 0 obj -<< -/S /URI -/URI (false) ->> -endobj -52 0 obj -<< -/Subtype /Link -/A 51 0 R -/Type /Annot -/Rect [390.905273 520.666 421.242188 533.166] -/Border [0 0 0] ->> -endobj -53 0 obj -<< -/S /URI -/URI (false) ->> -endobj -54 0 obj -<< -/Subtype /Link -/A 53 0 R -/Type /Annot -/Rect [72 499.353 99 510.666] -/Border [0 0 0] ->> -endobj -55 0 obj -<< -/S /URI -/URI (false) ->> -endobj -56 0 obj -<< -/Subtype /Link -/A 55 0 R -/Type /Annot -/Rect [99 499.353 104.4 510.666] -/Border [0 0 0] ->> -endobj -57 0 obj -<< -/S /URI -/URI (false) ->> -endobj -58 0 obj -<< -/Subtype /Link -/A 57 0 R -/Type /Annot -/Rect [104.4 499.353 163.8 510.666] -/Border [0 0 0] ->> -endobj -59 0 obj -<< -/S /URI -/URI (false) ->> -endobj -60 0 obj -<< -/Subtype /Link -/A 59 0 R -/Type /Annot -/Rect [163.8 499.353 169.2 510.666] -/Border [0 0 0] ->> -endobj -61 0 obj -<< -/S /URI -/URI (false) ->> -endobj -62 0 obj -<< -/Subtype /Link -/A 61 0 R -/Type /Annot -/Rect [169.2 499.353 174.6 510.666] -/Border [0 0 0] ->> -endobj -63 0 obj -<< -/S /URI -/URI (false) ->> -endobj -64 0 obj -<< -/Subtype /Link -/A 63 0 R -/Type /Annot -/Rect [174.6 499.353 180 510.666] -/Border [0 0 0] ->> -endobj -65 0 obj -<< -/S /URI -/URI (false) ->> -endobj -66 0 obj -<< -/Subtype /Link -/A 65 0 R -/Type /Annot -/Rect [180 499.353 217.8 510.666] -/Border [0 0 0] ->> -endobj -67 0 obj -<< -/S /URI -/URI (false) ->> -endobj -68 0 obj -<< -/Subtype /Link -/A 67 0 R -/Type /Annot -/Rect [217.8 499.353 223.2 510.666] -/Border [0 0 0] ->> -endobj -69 0 obj -<< -/S /URI -/URI (false) ->> -endobj -70 0 obj -<< -/Subtype /Link -/A 69 0 R -/Type /Annot -/Rect [223.2 499.353 266.4 510.666] -/Border [0 0 0] ->> -endobj -71 0 obj -<< -/S /URI -/URI (false) ->> -endobj -72 0 obj -<< -/Subtype /Link -/A 71 0 R -/Type /Annot -/Rect [266.4 499.353 271.8 510.666] -/Border [0 0 0] ->> -endobj -73 0 obj -<< -/S /URI -/URI (false) ->> -endobj -74 0 obj -<< -/Subtype /Link -/A 73 0 R -/Type /Annot -/Rect [271.8 499.353 277.2 510.666] -/Border [0 0 0] ->> -endobj -75 0 obj -<< -/S /URI -/URI (false) ->> -endobj -76 0 obj -<< -/Subtype /Link -/A 75 0 R -/Type /Annot -/Rect [72 488.04 99 499.353] -/Border [0 0 0] ->> -endobj -77 0 obj -<< -/S /URI -/URI (false) ->> -endobj -78 0 obj -<< -/Subtype /Link -/A 77 0 R -/Type /Annot -/Rect [99 488.04 104.4 499.353] -/Border [0 0 0] ->> -endobj -79 0 obj -<< -/S /URI -/URI (false) ->> -endobj -80 0 obj -<< -/Subtype /Link -/A 79 0 R -/Type /Annot -/Rect [104.4 488.04 120.6 499.353] -/Border [0 0 0] ->> -endobj -81 0 obj -<< -/S /URI -/URI (false) ->> -endobj -82 0 obj -<< -/Subtype /Link -/A 81 0 R -/Type /Annot -/Rect [120.6 488.04 126 499.353] -/Border [0 0 0] ->> -endobj -83 0 obj -<< -/S /URI -/URI (false) ->> -endobj -84 0 obj -<< -/Subtype /Link -/A 83 0 R -/Type /Annot -/Rect [126 488.04 131.4 499.353] -/Border [0 0 0] ->> -endobj -85 0 obj -<< -/S /URI -/URI (false) ->> -endobj -86 0 obj -<< -/Subtype /Link -/A 85 0 R -/Type /Annot -/Rect [131.4 488.04 136.8 499.353] -/Border [0 0 0] ->> -endobj -87 0 obj -<< -/S /URI -/URI (false) ->> -endobj -88 0 obj -<< -/Subtype /Link -/A 87 0 R -/Type /Annot -/Rect [136.8 488.04 153 499.353] -/Border [0 0 0] ->> -endobj -89 0 obj -<< -/S /URI -/URI (false) ->> -endobj -90 0 obj -<< -/Subtype /Link -/A 89 0 R -/Type /Annot -/Rect [153 488.04 158.4 499.353] -/Border [0 0 0] ->> -endobj -91 0 obj -<< -/S /URI -/URI (false) ->> -endobj -92 0 obj -<< -/Subtype /Link -/A 91 0 R -/Type /Annot -/Rect [158.4 488.04 217.8 499.353] -/Border [0 0 0] ->> -endobj -93 0 obj -<< -/S /URI -/URI (false) ->> -endobj -94 0 obj -<< -/Subtype /Link -/A 93 0 R -/Type /Annot -/Rect [217.8 488.04 223.2 499.353] -/Border [0 0 0] ->> -endobj -95 0 obj -<< -/S /URI -/URI (false) ->> -endobj -96 0 obj -<< -/Subtype /Link -/A 95 0 R -/Type /Annot -/Rect [72 465.47 138 478.04] -/Border [0 0 0] ->> -endobj -97 0 obj -<< -/S /URI -/URI (false) ->> -endobj -98 0 obj -<< -/Subtype /Link -/A 97 0 R -/Type /Annot -/Rect [138 465.54 485.890625 478.04] -/Border [0 0 0] ->> -endobj -99 0 obj -<< -/S /URI -/URI (false) ->> -endobj -100 0 obj -<< -/Subtype /Link -/A 99 0 R -/Type /Annot -/Rect [72 453.04 245.452148 465.54] -/Border [0 0 0] ->> -endobj -101 0 obj -<< -/S /URI -/URI (false) ->> -endobj -102 0 obj -<< -/Subtype /Link -/A 101 0 R -/Type /Annot -/Rect [245.452148 452.97 269.452148 465.54] -/Border [0 0 0] ->> -endobj -103 0 obj -<< -/S /URI -/URI (false) ->> -endobj -104 0 obj -<< -/Subtype /Link -/A 103 0 R -/Type /Annot -/Rect [269.452148 453.04 528.084961 465.54] -/Border [0 0 0] ->> -endobj -105 0 obj -<< -/S /URI -/URI (false) ->> -endobj -106 0 obj -<< -/Subtype /Link -/A 105 0 R -/Type /Annot -/Rect [72 440.54 531.765625 453.04] -/Border [0 0 0] ->> -endobj -107 0 obj -<< -/S /URI -/URI (false) ->> -endobj -108 0 obj -<< -/Subtype /Link -/A 107 0 R -/Type /Annot -/Rect [72 428.04 111.272461 440.54] -/Border [0 0 0] ->> -endobj -109 0 obj -<< -/S /URI -/URI (false) ->> -endobj -110 0 obj -<< -/Subtype /Link -/A 109 0 R -/Type /Annot -/Rect [111.272461 427.97 129.272461 440.54] -/Border [0 0 0] ->> -endobj -111 0 obj -<< -/S /URI -/URI (false) ->> -endobj -112 0 obj -<< -/Subtype /Link -/A 111 0 R -/Type /Annot -/Rect [129.272461 428.04 510.810547 440.54] -/Border [0 0 0] ->> -endobj -113 0 obj -<< -/S /URI -/URI (false) ->> -endobj -114 0 obj -<< -/Subtype /Link -/A 113 0 R -/Type /Annot -/Rect [72 415.54 150.276367 428.04] -/Border [0 0 0] ->> -endobj -115 0 obj -<< -/S /URI -/URI (false) ->> -endobj -116 0 obj -<< -/Subtype /Link -/A 115 0 R -/Type /Annot -/Rect [72 394.227 88.2 405.54] -/Border [0 0 0] ->> -endobj -117 0 obj -<< -/S /URI -/URI (false) ->> -endobj -118 0 obj -<< -/Subtype /Link -/A 117 0 R -/Type /Annot -/Rect [88.2 394.227 93.6 405.54] -/Border [0 0 0] ->> -endobj -119 0 obj -<< -/S /URI -/URI (false) ->> -endobj -120 0 obj -<< -/Subtype /Link -/A 119 0 R -/Type /Annot -/Rect [93.6 394.227 115.2 405.54] -/Border [0 0 0] ->> -endobj -121 0 obj -<< -/S /URI -/URI (false) ->> -endobj -122 0 obj -<< -/Subtype /Link -/A 121 0 R -/Type /Annot -/Rect [115.2 394.227 120.6 405.54] -/Border [0 0 0] ->> -endobj -123 0 obj -<< -/S /URI -/URI (false) ->> -endobj -124 0 obj -<< -/Subtype /Link -/A 123 0 R -/Type /Annot -/Rect [120.6 394.227 131.4 405.54] -/Border [0 0 0] ->> -endobj -125 0 obj -<< -/S /URI -/URI (false) ->> -endobj -126 0 obj -<< -/Subtype /Link -/A 125 0 R -/Type /Annot -/Rect [131.4 394.227 136.8 405.54] -/Border [0 0 0] ->> -endobj -127 0 obj -<< -/S /URI -/URI (false) ->> -endobj -128 0 obj -<< -/Subtype /Link -/A 127 0 R -/Type /Annot -/Rect [136.8 394.227 228.6 405.54] -/Border [0 0 0] ->> -endobj -129 0 obj -<< -/S /URI -/URI (false) ->> -endobj -130 0 obj -<< -/Subtype /Link -/A 129 0 R -/Type /Annot -/Rect [228.6 394.227 234 405.54] -/Border [0 0 0] ->> -endobj -131 0 obj -<< -/S /URI -/URI (false) ->> -endobj -132 0 obj -<< -/Subtype /Link -/A 131 0 R -/Type /Annot -/Rect [234 394.227 336.6 405.54] -/Border [0 0 0] ->> -endobj -133 0 obj -<< -/S /URI -/URI (false) ->> -endobj -134 0 obj -<< -/Subtype /Link -/A 133 0 R -/Type /Annot -/Rect [336.6 394.227 342 405.54] -/Border [0 0 0] ->> -endobj -135 0 obj -<< -/S /URI -/URI (false) ->> -endobj -136 0 obj -<< -/Subtype /Link -/A 135 0 R -/Type /Annot -/Rect [342 394.227 347.4 405.54] -/Border [0 0 0] ->> -endobj -137 0 obj -<< -/S /URI -/URI (false) ->> -endobj -138 0 obj -<< -/Subtype /Link -/A 137 0 R -/Type /Annot -/Rect [347.4 394.227 352.8 405.54] -/Border [0 0 0] ->> -endobj -139 0 obj -<< -/S /URI -/URI (false) ->> -endobj -140 0 obj -<< -/Subtype /Link -/A 139 0 R -/Type /Annot -/Rect [352.8 394.227 358.2 405.54] -/Border [0 0 0] ->> -endobj -141 0 obj -<< -/S /URI -/URI (false) ->> -endobj -142 0 obj -<< -/Subtype /Link -/A 141 0 R -/Type /Annot -/Rect [358.2 394.227 439.2 405.54] -/Border [0 0 0] ->> -endobj -143 0 obj -<< -/S /URI -/URI (false) ->> -endobj -144 0 obj -<< -/Subtype /Link -/A 143 0 R -/Type /Annot -/Rect [72 382.914 88.2 394.227] -/Border [0 0 0] ->> -endobj -145 0 obj -<< -/S /URI -/URI (false) ->> -endobj -146 0 obj -<< -/Subtype /Link -/A 145 0 R -/Type /Annot -/Rect [88.2 382.914 93.6 394.227] -/Border [0 0 0] ->> -endobj -147 0 obj -<< -/S /URI -/URI (false) ->> -endobj -148 0 obj -<< -/Subtype /Link -/A 147 0 R -/Type /Annot -/Rect [93.6 382.914 115.2 394.227] -/Border [0 0 0] ->> -endobj -149 0 obj -<< -/S /URI -/URI (false) ->> -endobj -150 0 obj -<< -/Subtype /Link -/A 149 0 R -/Type /Annot -/Rect [115.2 382.914 120.6 394.227] -/Border [0 0 0] ->> -endobj -151 0 obj -<< -/S /URI -/URI (false) ->> -endobj -152 0 obj -<< -/Subtype /Link -/A 151 0 R -/Type /Annot -/Rect [120.6 382.914 136.8 394.227] -/Border [0 0 0] ->> -endobj -153 0 obj -<< -/S /URI -/URI (false) ->> -endobj -154 0 obj -<< -/Subtype /Link -/A 153 0 R -/Type /Annot -/Rect [136.8 382.914 142.2 394.227] -/Border [0 0 0] ->> -endobj -155 0 obj -<< -/S /URI -/URI (false) ->> -endobj -156 0 obj -<< -/Subtype /Link -/A 155 0 R -/Type /Annot -/Rect [142.2 382.914 147.6 394.227] -/Border [0 0 0] ->> -endobj -157 0 obj -<< -/S /URI -/URI (false) ->> -endobj -158 0 obj -<< -/Subtype /Link -/A 157 0 R -/Type /Annot -/Rect [147.6 382.914 358.2 394.227] -/Border [0 0 0] ->> -endobj -159 0 obj -<< -/S /URI -/URI (false) ->> -endobj -160 0 obj -<< -/Subtype /Link -/A 159 0 R -/Type /Annot -/Rect [358.2 382.914 444.6 394.227] -/Border [0 0 0] ->> -endobj -161 0 obj -<< -/S /URI -/URI (false) ->> -endobj -162 0 obj -<< -/Subtype /Link -/A 161 0 R -/Type /Annot -/Rect [72 360.288 379.8 371.601] -/Border [0 0 0] ->> -endobj -163 0 obj -<< -/S /URI -/URI (false) ->> -endobj -164 0 obj -<< -/Subtype /Link -/A 163 0 R -/Type /Annot -/Rect [72 337.662 277.2 348.975] -/Border [0 0 0] ->> -endobj -165 0 obj -<< -/S /URI -/URI (false) ->> -endobj -166 0 obj -<< -/Subtype /Link -/A 165 0 R -/Type /Annot -/Rect [72 326.349 88.2 337.662] -/Border [0 0 0] ->> -endobj -167 0 obj -<< -/S /URI -/URI (false) ->> -endobj -168 0 obj -<< -/Subtype /Link -/A 167 0 R -/Type /Annot -/Rect [88.2 326.349 93.6 337.662] -/Border [0 0 0] ->> -endobj -169 0 obj -<< -/S /URI -/URI (false) ->> -endobj -170 0 obj -<< -/Subtype /Link -/A 169 0 R -/Type /Annot -/Rect [93.6 326.349 109.8 337.662] -/Border [0 0 0] ->> -endobj -171 0 obj -<< -/S /URI -/URI (false) ->> -endobj -172 0 obj -<< -/Subtype /Link -/A 171 0 R -/Type /Annot -/Rect [109.8 326.349 115.2 337.662] -/Border [0 0 0] ->> -endobj -173 0 obj -<< -/S /URI -/URI (false) ->> -endobj -174 0 obj -<< -/Subtype /Link -/A 173 0 R -/Type /Annot -/Rect [115.2 326.349 120.6 337.662] -/Border [0 0 0] ->> -endobj -175 0 obj -<< -/S /URI -/URI (false) ->> -endobj -176 0 obj -<< -/Subtype /Link -/A 175 0 R -/Type /Annot -/Rect [120.6 326.349 126 337.662] -/Border [0 0 0] ->> -endobj -177 0 obj -<< -/S /URI -/URI (false) ->> -endobj -178 0 obj -<< -/Subtype /Link -/A 177 0 R -/Type /Annot -/Rect [72 303.849 93.201172 316.349] -/Border [0 0 0] ->> -endobj -179 0 obj -<< -/S /URI -/URI (false) ->> -endobj -180 0 obj -<< -/Subtype /Link -/A 179 0 R -/Type /Annot -/Rect [93.201172 303.779 123.201172 316.349] -/Border [0 0 0] ->> -endobj -181 0 obj -<< -/S /URI -/URI (false) ->> -endobj -182 0 obj -<< -/Subtype /Link -/A 181 0 R -/Type /Annot -/Rect [123.201172 303.849 146.912109 316.349] -/Border [0 0 0] ->> -endobj -183 0 obj -<< -/S /URI -/URI (false) ->> -endobj -184 0 obj -<< -/Subtype /Link -/A 183 0 R -/Type /Annot -/Rect [146.912109 303.779 182.912109 316.349] -/Border [0 0 0] ->> -endobj -185 0 obj -<< -/S /URI -/URI (false) ->> -endobj -186 0 obj -<< -/Subtype /Link -/A 185 0 R -/Type /Annot -/Rect [182.912109 303.849 506.325195 316.349] -/Border [0 0 0] ->> -endobj -12 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 10 0 R -/Resources 11 0 R -/Annots [15 0 R 18 0 R 20 0 R 22 0 R 24 0 R 26 0 R 28 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 46 0 R 48 0 R 50 0 R 52 0 R 54 0 R 56 0 R 58 0 R 60 0 R 62 0 R 64 0 R 66 0 R 68 0 R 70 0 R 72 0 R 74 0 R 76 0 R 78 0 R 80 0 R 82 0 R 84 0 R 86 0 R 88 0 R 90 0 R 92 0 R 94 0 R 96 0 R 98 0 R 100 0 R 102 0 R 104 0 R 106 0 R 108 0 R 110 0 R 112 0 R 114 0 R 116 0 R 118 0 R 120 0 R 122 0 R 124 0 R 126 0 R 128 0 R 130 0 R 132 0 R 134 0 R 136 0 R 138 0 R 140 0 R 142 0 R 144 0 R 146 0 R 148 0 R 150 0 R 152 0 R 154 0 R 156 0 R 158 0 R 160 0 R 162 0 R 164 0 R 166 0 R 168 0 R 170 0 R 172 0 R 174 0 R 176 0 R 178 0 R 180 0 R 182 0 R 184 0 R 186 0 R] ->> -endobj -11 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F5 29 0 R -/F6 44 0 R ->> ->> -endobj -10 0 obj -<< -/Length 1881 -/Filter /FlateDecode ->> -stream -x[Ko6WT b>ZV8C  f"NVf"oSw_8_׃*׿>s7~yy\4#~2'ih& Kç|LHg~/thStO~|:-ػy%x%r#b0(iuWgB݁ C'e܌LUwQA e -v? ,=W*[w&Y:vry԰zMf{`E0%Vq$I1IB -Kn"3=LzئRB EN͐2ɱWI,ƪNVON]ClLaX[ód=09+j\&~GQ'܄e)iŽX y@@>q!g2e{ld>x͊S31~?f,6A6s6ޚ8 W.ݑ4!g2zXf:^#Z # h~dbV$2lvkLF~ F72J> 逓FZTU[̞&goȵ:J7Ȧ*8a+]Z:>,/jZqן;H5Z :Ovɧj? -6<0jl3\>wB~:_obh,z](Ջ*&A:lv:*hQȕcn G|0I)5ڠˆQƆJT2_ޮvx];ƺKI_TYY3"%^D,gݦҀ"XQy9STl1%,vB$$Tneo2MJJ]˙=.uVl;[jB=Y.~]B{'\f~!J[^(IfA(i28Gyłe K!ϢﳋGABw1cM8X{vpފm?zvtqs4@[ks\uuRڍz9}A# e[]RVbGNgXRyt[pLfq> 7YsmI+0z%YLț\o>p4M^:m}DS@dCTr1\"@1%rmz%MTGvz_W'uYy¯6+fG~mOoW&^"n1ڮWR_3|sQ (QJ7+8t ~vХΡK{.-p1|)qB ~ \n&_e֮% -Kzzj|3[ʾa]eosy͉ۊbF;:ݚSEs#K*%qֿ̈́)M&.-CMVC,%itgMRsxrÄW 8wZ"U!C ~/ -!^ ~ҵplգћJhnqH -4ibmˡ/&C̋}&34&\щ |u7[.BKn*;+_hpcR(r3b8­J~sCZΆ" -endstream -endobj -191 0 obj -<< -/S /URI -/URI (false) ->> -endobj -192 0 obj -<< -/Subtype /Link -/A 191 0 R -/Type /Annot -/Rect [72 695.502 285.624 720] -/Border [0 0 0] ->> -endobj -193 0 obj -<< -/S /URI -/URI (false) ->> -endobj -194 0 obj -<< -/Subtype /Link -/A 193 0 R -/Type /Annot -/Rect [72 673.002 538.088867 685.502] -/Border [0 0 0] ->> -endobj -195 0 obj -<< -/S /URI -/URI (false) ->> -endobj -196 0 obj -<< -/Subtype /Link -/A 195 0 R -/Type /Annot -/Rect [72 660.502 297.742188 673.002] -/Border [0 0 0] ->> -endobj -197 0 obj -<< -/S /URI -/URI (http://browserify.org/) ->> -endobj -198 0 obj -<< -/Subtype /Link -/A 197 0 R -/Type /Annot -/Rect [297.742188 660.502 351.702148 673.002] -/Border [0 0 0] ->> -endobj -199 0 obj -<< -/S /URI -/URI (false) ->> -endobj -200 0 obj -<< -/Subtype /Link -/A 199 0 R -/Type /Annot -/Rect [351.702148 660.502 525.852539 673.002] -/Border [0 0 0] ->> -endobj -201 0 obj -<< -/S /URI -/URI (false) ->> -endobj -202 0 obj -<< -/Subtype /Link -/A 201 0 R -/Type /Annot -/Rect [72 648.002 238.025391 660.502] -/Border [0 0 0] ->> -endobj -203 0 obj -<< -/S /URI -/URI (false) ->> -endobj -204 0 obj -<< -/Subtype /Link -/A 203 0 R -/Type /Annot -/Rect [238.025391 647.932 280.025391 660.502] -/Border [0 0 0] ->> -endobj -205 0 obj -<< -/S /URI -/URI (false) ->> -endobj -206 0 obj -<< -/Subtype /Link -/A 205 0 R -/Type /Annot -/Rect [280.025391 648.002 529.200195 660.502] -/Border [0 0 0] ->> -endobj -207 0 obj -<< -/S /URI -/URI (false) ->> -endobj -208 0 obj -<< -/Subtype /Link -/A 207 0 R -/Type /Annot -/Rect [72 635.502 186.038086 648.002] -/Border [0 0 0] ->> -endobj -209 0 obj -<< -/S /URI -/URI (https://github.com/devongovett/pdfkit/releases) ->> -endobj -210 0 obj -<< -/Subtype /Link -/A 209 0 R -/Type /Annot -/Rect [186.038086 635.502 298.728516 648.002] -/Border [0 0 0] ->> -endobj -211 0 obj -<< -/S /URI -/URI (false) ->> -endobj -212 0 obj -<< -/Subtype /Link -/A 211 0 R -/Type /Annot -/Rect [298.728516 635.502 302.175781 648.002] -/Border [0 0 0] ->> -endobj -213 0 obj -<< -/S /URI -/URI (false) ->> -endobj -214 0 obj -<< -/Subtype /Link -/A 213 0 R -/Type /Annot -/Rect [72 613.002 516.760742 625.502] -/Border [0 0 0] ->> -endobj -215 0 obj -<< -/S /URI -/URI (false) ->> -endobj -216 0 obj -<< -/Subtype /Link -/A 215 0 R -/Type /Annot -/Rect [72 600.502 411.125977 613.002] -/Border [0 0 0] ->> -endobj -217 0 obj -<< -/S /URI -/URI (https://developer.mozilla.org/en-US/docs/Web/API/Blob) ->> -endobj -218 0 obj -<< -/Subtype /Link -/A 217 0 R -/Type /Annot -/Rect [411.125977 600.502 433.645508 613.002] -/Border [0 0 0] ->> -endobj -219 0 obj -<< -/S /URI -/URI (false) ->> -endobj -220 0 obj -<< -/Subtype /Link -/A 219 0 R -/Type /Annot -/Rect [433.645508 600.502 529.983398 613.002] -/Border [0 0 0] ->> -endobj -221 0 obj -<< -/S /URI -/URI (false) ->> -endobj -222 0 obj -<< -/Subtype /Link -/A 221 0 R -/Type /Annot -/Rect [72 588.002 483.166992 600.502] -/Border [0 0 0] ->> -endobj -223 0 obj -<< -/S /URI -/URI (false) ->> -endobj -224 0 obj -<< -/Subtype /Link -/A 223 0 R -/Type /Annot -/Rect [483.166992 587.932 519.166992 600.502] -/Border [0 0 0] ->> -endobj -225 0 obj -<< -/S /URI -/URI (false) ->> -endobj -226 0 obj -<< -/Subtype /Link -/A 225 0 R -/Type /Annot -/Rect [519.166992 588.002 538.136719 600.502] -/Border [0 0 0] ->> -endobj -227 0 obj -<< -/S /URI -/URI (false) ->> -endobj -228 0 obj -<< -/Subtype /Link -/A 227 0 R -/Type /Annot -/Rect [72 575.502 523.557617 588.002] -/Border [0 0 0] ->> -endobj -229 0 obj -<< -/S /URI -/URI (false) ->> -endobj -230 0 obj -<< -/Subtype /Link -/A 229 0 R -/Type /Annot -/Rect [72 553.002 173.152344 565.502] -/Border [0 0 0] ->> -endobj -231 0 obj -<< -/S /URI -/URI (false) ->> -endobj -232 0 obj -<< -/Subtype /Link -/A 231 0 R -/Type /Annot -/Rect [173.152344 552.932 239.152344 565.502] -/Border [0 0 0] ->> -endobj -233 0 obj -<< -/S /URI -/URI (false) ->> -endobj -234 0 obj -<< -/Subtype /Link -/A 233 0 R -/Type /Annot -/Rect [239.152344 553.002 357.414063 565.502] -/Border [0 0 0] ->> -endobj -235 0 obj -<< -/S /URI -/URI (https://github.com/devongovett/blob-stream) ->> -endobj -236 0 obj -<< -/Subtype /Link -/A 235 0 R -/Type /Annot -/Rect [357.414063 553.002 420.358398 565.502] -/Border [0 0 0] ->> -endobj -237 0 obj -<< -/S /URI -/URI (false) ->> -endobj -238 0 obj -<< -/Subtype /Link -/A 237 0 R -/Type /Annot -/Rect [420.358398 553.002 518.546875 565.502] -/Border [0 0 0] ->> -endobj -239 0 obj -<< -/S /URI -/URI (false) ->> -endobj -240 0 obj -<< -/Subtype /Link -/A 239 0 R -/Type /Annot -/Rect [72 540.502 527.239258 553.002] -/Border [0 0 0] ->> -endobj -241 0 obj -<< -/S /URI -/URI (false) ->> -endobj -242 0 obj -<< -/Subtype /Link -/A 241 0 R -/Type /Annot -/Rect [72 528.002 108.533203 540.502] -/Border [0 0 0] ->> -endobj -243 0 obj -<< -/S /URI -/URI (false) ->> -endobj -244 0 obj -<< -/Subtype /Link -/A 243 0 R -/Type /Annot -/Rect [108.533203 527.932 144.533203 540.502] -/Border [0 0 0] ->> -endobj -245 0 obj -<< -/S /URI -/URI (false) ->> -endobj -246 0 obj -<< -/Subtype /Link -/A 245 0 R -/Type /Annot -/Rect [144.533203 528.002 168.244141 540.502] -/Border [0 0 0] ->> -endobj -247 0 obj -<< -/S /URI -/URI (false) ->> -endobj -248 0 obj -<< -/Subtype /Link -/A 247 0 R -/Type /Annot -/Rect [168.244141 527.932 234.244141 540.502] -/Border [0 0 0] ->> -endobj -249 0 obj -<< -/S /URI -/URI (false) ->> -endobj -250 0 obj -<< -/Subtype /Link -/A 249 0 R -/Type /Annot -/Rect [234.244141 528.002 519.737305 540.502] -/Border [0 0 0] ->> -endobj -251 0 obj -<< -/S /URI -/URI (false) ->> -endobj -252 0 obj -<< -/Subtype /Link -/A 251 0 R -/Type /Annot -/Rect [72 515.502 279.158203 528.002] -/Border [0 0 0] ->> -endobj -253 0 obj -<< -/S /URI -/URI (false) ->> -endobj -254 0 obj -<< -/Subtype /Link -/A 253 0 R -/Type /Annot -/Rect [72 494.189 196.2 505.502] -/Border [0 0 0] ->> -endobj -255 0 obj -<< -/S /URI -/URI (false) ->> -endobj -256 0 obj -<< -/Subtype /Link -/A 255 0 R -/Type /Annot -/Rect [72 482.876 99 494.189] -/Border [0 0 0] ->> -endobj -257 0 obj -<< -/S /URI -/URI (false) ->> -endobj -258 0 obj -<< -/Subtype /Link -/A 257 0 R -/Type /Annot -/Rect [99 482.876 104.4 494.189] -/Border [0 0 0] ->> -endobj -259 0 obj -<< -/S /URI -/URI (false) ->> -endobj -260 0 obj -<< -/Subtype /Link -/A 259 0 R -/Type /Annot -/Rect [104.4 482.876 163.8 494.189] -/Border [0 0 0] ->> -endobj -261 0 obj -<< -/S /URI -/URI (false) ->> -endobj -262 0 obj -<< -/Subtype /Link -/A 261 0 R -/Type /Annot -/Rect [163.8 482.876 169.2 494.189] -/Border [0 0 0] ->> -endobj -263 0 obj -<< -/S /URI -/URI (false) ->> -endobj -264 0 obj -<< -/Subtype /Link -/A 263 0 R -/Type /Annot -/Rect [169.2 482.876 174.6 494.189] -/Border [0 0 0] ->> -endobj -265 0 obj -<< -/S /URI -/URI (false) ->> -endobj -266 0 obj -<< -/Subtype /Link -/A 265 0 R -/Type /Annot -/Rect [174.6 482.876 180 494.189] -/Border [0 0 0] ->> -endobj -267 0 obj -<< -/S /URI -/URI (false) ->> -endobj -268 0 obj -<< -/Subtype /Link -/A 267 0 R -/Type /Annot -/Rect [180 482.876 217.8 494.189] -/Border [0 0 0] ->> -endobj -269 0 obj -<< -/S /URI -/URI (false) ->> -endobj -270 0 obj -<< -/Subtype /Link -/A 269 0 R -/Type /Annot -/Rect [217.8 482.876 223.2 494.189] -/Border [0 0 0] ->> -endobj -271 0 obj -<< -/S /URI -/URI (false) ->> -endobj -272 0 obj -<< -/Subtype /Link -/A 271 0 R -/Type /Annot -/Rect [223.2 482.876 266.4 494.189] -/Border [0 0 0] ->> -endobj -273 0 obj -<< -/S /URI -/URI (false) ->> -endobj -274 0 obj -<< -/Subtype /Link -/A 273 0 R -/Type /Annot -/Rect [266.4 482.876 271.8 494.189] -/Border [0 0 0] ->> -endobj -275 0 obj -<< -/S /URI -/URI (false) ->> -endobj -276 0 obj -<< -/Subtype /Link -/A 275 0 R -/Type /Annot -/Rect [271.8 482.876 277.2 494.189] -/Border [0 0 0] ->> -endobj -277 0 obj -<< -/S /URI -/URI (false) ->> -endobj -278 0 obj -<< -/Subtype /Link -/A 277 0 R -/Type /Annot -/Rect [72 471.563 99 482.876] -/Border [0 0 0] ->> -endobj -279 0 obj -<< -/S /URI -/URI (false) ->> -endobj -280 0 obj -<< -/Subtype /Link -/A 279 0 R -/Type /Annot -/Rect [99 471.563 104.4 482.876] -/Border [0 0 0] ->> -endobj -281 0 obj -<< -/S /URI -/URI (false) ->> -endobj -282 0 obj -<< -/Subtype /Link -/A 281 0 R -/Type /Annot -/Rect [104.4 471.563 158.4 482.876] -/Border [0 0 0] ->> -endobj -283 0 obj -<< -/S /URI -/URI (false) ->> -endobj -284 0 obj -<< -/Subtype /Link -/A 283 0 R -/Type /Annot -/Rect [158.4 471.563 169.2 482.876] -/Border [0 0 0] ->> -endobj -285 0 obj -<< -/S /URI -/URI (false) ->> -endobj -286 0 obj -<< -/Subtype /Link -/A 285 0 R -/Type /Annot -/Rect [169.2 471.563 174.6 482.876] -/Border [0 0 0] ->> -endobj -287 0 obj -<< -/S /URI -/URI (false) ->> -endobj -288 0 obj -<< -/Subtype /Link -/A 287 0 R -/Type /Annot -/Rect [174.6 471.563 180 482.876] -/Border [0 0 0] ->> -endobj -289 0 obj -<< -/S /URI -/URI (false) ->> -endobj -290 0 obj -<< -/Subtype /Link -/A 289 0 R -/Type /Annot -/Rect [180 471.563 217.8 482.876] -/Border [0 0 0] ->> -endobj -291 0 obj -<< -/S /URI -/URI (false) ->> -endobj -292 0 obj -<< -/Subtype /Link -/A 291 0 R -/Type /Annot -/Rect [217.8 471.563 223.2 482.876] -/Border [0 0 0] ->> -endobj -293 0 obj -<< -/S /URI -/URI (false) ->> -endobj -294 0 obj -<< -/Subtype /Link -/A 293 0 R -/Type /Annot -/Rect [223.2 471.563 293.4 482.876] -/Border [0 0 0] ->> -endobj -295 0 obj -<< -/S /URI -/URI (false) ->> -endobj -296 0 obj -<< -/Subtype /Link -/A 295 0 R -/Type /Annot -/Rect [293.4 471.563 298.8 482.876] -/Border [0 0 0] ->> -endobj -297 0 obj -<< -/S /URI -/URI (false) ->> -endobj -298 0 obj -<< -/Subtype /Link -/A 297 0 R -/Type /Annot -/Rect [298.8 471.563 304.2 482.876] -/Border [0 0 0] ->> -endobj -299 0 obj -<< -/S /URI -/URI (false) ->> -endobj -300 0 obj -<< -/Subtype /Link -/A 299 0 R -/Type /Annot -/Rect [72 448.937 298.8 460.25] -/Border [0 0 0] ->> -endobj -301 0 obj -<< -/S /URI -/URI (false) ->> -endobj -302 0 obj -<< -/Subtype /Link -/A 301 0 R -/Type /Annot -/Rect [72 437.624 99 448.937] -/Border [0 0 0] ->> -endobj -303 0 obj -<< -/S /URI -/URI (false) ->> -endobj -304 0 obj -<< -/Subtype /Link -/A 303 0 R -/Type /Annot -/Rect [99 437.624 104.4 448.937] -/Border [0 0 0] ->> -endobj -305 0 obj -<< -/S /URI -/URI (false) ->> -endobj -306 0 obj -<< -/Subtype /Link -/A 305 0 R -/Type /Annot -/Rect [104.4 437.624 120.6 448.937] -/Border [0 0 0] ->> -endobj -307 0 obj -<< -/S /URI -/URI (false) ->> -endobj -308 0 obj -<< -/Subtype /Link -/A 307 0 R -/Type /Annot -/Rect [120.6 437.624 126 448.937] -/Border [0 0 0] ->> -endobj -309 0 obj -<< -/S /URI -/URI (false) ->> -endobj -310 0 obj -<< -/Subtype /Link -/A 309 0 R -/Type /Annot -/Rect [126 437.624 131.4 448.937] -/Border [0 0 0] ->> -endobj -311 0 obj -<< -/S /URI -/URI (false) ->> -endobj -312 0 obj -<< -/Subtype /Link -/A 311 0 R -/Type /Annot -/Rect [131.4 437.624 136.8 448.937] -/Border [0 0 0] ->> -endobj -313 0 obj -<< -/S /URI -/URI (false) ->> -endobj -314 0 obj -<< -/Subtype /Link -/A 313 0 R -/Type /Annot -/Rect [136.8 437.624 153 448.937] -/Border [0 0 0] ->> -endobj -315 0 obj -<< -/S /URI -/URI (false) ->> -endobj -316 0 obj -<< -/Subtype /Link -/A 315 0 R -/Type /Annot -/Rect [153 437.624 158.4 448.937] -/Border [0 0 0] ->> -endobj -317 0 obj -<< -/S /URI -/URI (false) ->> -endobj -318 0 obj -<< -/Subtype /Link -/A 317 0 R -/Type /Annot -/Rect [158.4 437.624 217.8 448.937] -/Border [0 0 0] ->> -endobj -319 0 obj -<< -/S /URI -/URI (false) ->> -endobj -320 0 obj -<< -/Subtype /Link -/A 319 0 R -/Type /Annot -/Rect [217.8 437.624 223.2 448.937] -/Border [0 0 0] ->> -endobj -321 0 obj -<< -/S /URI -/URI (false) ->> -endobj -322 0 obj -<< -/Subtype /Link -/A 321 0 R -/Type /Annot -/Rect [72 414.998 234 426.311] -/Border [0 0 0] ->> -endobj -323 0 obj -<< -/S /URI -/URI (false) ->> -endobj -324 0 obj -<< -/Subtype /Link -/A 323 0 R -/Type /Annot -/Rect [72 403.685 99 414.998] -/Border [0 0 0] ->> -endobj -325 0 obj -<< -/S /URI -/URI (false) ->> -endobj -326 0 obj -<< -/Subtype /Link -/A 325 0 R -/Type /Annot -/Rect [99 403.685 104.4 414.998] -/Border [0 0 0] ->> -endobj -327 0 obj -<< -/S /URI -/URI (false) ->> -endobj -328 0 obj -<< -/Subtype /Link -/A 327 0 R -/Type /Annot -/Rect [104.4 403.685 136.8 414.998] -/Border [0 0 0] ->> -endobj -329 0 obj -<< -/S /URI -/URI (false) ->> -endobj -330 0 obj -<< -/Subtype /Link -/A 329 0 R -/Type /Annot -/Rect [136.8 403.685 142.2 414.998] -/Border [0 0 0] ->> -endobj -331 0 obj -<< -/S /URI -/URI (false) ->> -endobj -332 0 obj -<< -/Subtype /Link -/A 331 0 R -/Type /Annot -/Rect [142.2 403.685 147.6 414.998] -/Border [0 0 0] ->> -endobj -333 0 obj -<< -/S /URI -/URI (false) ->> -endobj -334 0 obj -<< -/Subtype /Link -/A 333 0 R -/Type /Annot -/Rect [147.6 403.685 153 414.998] -/Border [0 0 0] ->> -endobj -335 0 obj -<< -/S /URI -/URI (false) ->> -endobj -336 0 obj -<< -/Subtype /Link -/A 335 0 R -/Type /Annot -/Rect [153 403.685 169.2 414.998] -/Border [0 0 0] ->> -endobj -337 0 obj -<< -/S /URI -/URI (false) ->> -endobj -338 0 obj -<< -/Subtype /Link -/A 337 0 R -/Type /Annot -/Rect [169.2 403.685 174.6 414.998] -/Border [0 0 0] ->> -endobj -339 0 obj -<< -/S /URI -/URI (false) ->> -endobj -340 0 obj -<< -/Subtype /Link -/A 339 0 R -/Type /Annot -/Rect [174.6 403.685 196.2 414.998] -/Border [0 0 0] ->> -endobj -341 0 obj -<< -/S /URI -/URI (false) ->> -endobj -342 0 obj -<< -/Subtype /Link -/A 341 0 R -/Type /Annot -/Rect [196.2 403.685 201.6 414.998] -/Border [0 0 0] ->> -endobj -343 0 obj -<< -/S /URI -/URI (false) ->> -endobj -344 0 obj -<< -/Subtype /Link -/A 343 0 R -/Type /Annot -/Rect [201.6 403.685 255.6 414.998] -/Border [0 0 0] ->> -endobj -345 0 obj -<< -/S /URI -/URI (false) ->> -endobj -346 0 obj -<< -/Subtype /Link -/A 345 0 R -/Type /Annot -/Rect [255.6 403.685 261 414.998] -/Border [0 0 0] ->> -endobj -347 0 obj -<< -/S /URI -/URI (false) ->> -endobj -348 0 obj -<< -/Subtype /Link -/A 347 0 R -/Type /Annot -/Rect [261 403.685 266.4 414.998] -/Border [0 0 0] ->> -endobj -349 0 obj -<< -/S /URI -/URI (false) ->> -endobj -350 0 obj -<< -/Subtype /Link -/A 349 0 R -/Type /Annot -/Rect [266.4 403.685 271.8 414.998] -/Border [0 0 0] ->> -endobj -351 0 obj -<< -/S /URI -/URI (false) ->> -endobj -352 0 obj -<< -/Subtype /Link -/A 351 0 R -/Type /Annot -/Rect [271.8 403.685 277.2 414.998] -/Border [0 0 0] ->> -endobj -353 0 obj -<< -/S /URI -/URI (false) ->> -endobj -354 0 obj -<< -/Subtype /Link -/A 353 0 R -/Type /Annot -/Rect [72 381.059 342 392.372] -/Border [0 0 0] ->> -endobj -355 0 obj -<< -/S /URI -/URI (false) ->> -endobj -356 0 obj -<< -/Subtype /Link -/A 355 0 R -/Type /Annot -/Rect [72 358.433 234 369.746] -/Border [0 0 0] ->> -endobj -357 0 obj -<< -/S /URI -/URI (false) ->> -endobj -358 0 obj -<< -/Subtype /Link -/A 357 0 R -/Type /Annot -/Rect [72 347.12 88.2 358.433] -/Border [0 0 0] ->> -endobj -359 0 obj -<< -/S /URI -/URI (false) ->> -endobj -360 0 obj -<< -/Subtype /Link -/A 359 0 R -/Type /Annot -/Rect [88.2 347.12 93.6 358.433] -/Border [0 0 0] ->> -endobj -361 0 obj -<< -/S /URI -/URI (false) ->> -endobj -362 0 obj -<< -/Subtype /Link -/A 361 0 R -/Type /Annot -/Rect [93.6 347.12 109.8 358.433] -/Border [0 0 0] ->> -endobj -363 0 obj -<< -/S /URI -/URI (false) ->> -endobj -364 0 obj -<< -/Subtype /Link -/A 363 0 R -/Type /Annot -/Rect [109.8 347.12 115.2 358.433] -/Border [0 0 0] ->> -endobj -365 0 obj -<< -/S /URI -/URI (false) ->> -endobj -366 0 obj -<< -/Subtype /Link -/A 365 0 R -/Type /Annot -/Rect [115.2 347.12 120.6 358.433] -/Border [0 0 0] ->> -endobj -367 0 obj -<< -/S /URI -/URI (false) ->> -endobj -368 0 obj -<< -/Subtype /Link -/A 367 0 R -/Type /Annot -/Rect [120.6 347.12 126 358.433] -/Border [0 0 0] ->> -endobj -369 0 obj -<< -/S /URI -/URI (false) ->> -endobj -370 0 obj -<< -/Subtype /Link -/A 369 0 R -/Type /Annot -/Rect [72 335.807 104.4 347.12] -/Border [0 0 0] ->> -endobj -371 0 obj -<< -/S /URI -/URI (false) ->> -endobj -372 0 obj -<< -/Subtype /Link -/A 371 0 R -/Type /Annot -/Rect [104.4 335.807 109.8 347.12] -/Border [0 0 0] ->> -endobj -373 0 obj -<< -/S /URI -/URI (false) ->> -endobj -374 0 obj -<< -/Subtype /Link -/A 373 0 R -/Type /Annot -/Rect [109.8 335.807 120.6 347.12] -/Border [0 0 0] ->> -endobj -375 0 obj -<< -/S /URI -/URI (false) ->> -endobj -376 0 obj -<< -/Subtype /Link -/A 375 0 R -/Type /Annot -/Rect [120.6 335.807 126 347.12] -/Border [0 0 0] ->> -endobj -377 0 obj -<< -/S /URI -/URI (false) ->> -endobj -378 0 obj -<< -/Subtype /Link -/A 377 0 R -/Type /Annot -/Rect [126 335.807 169.2 347.12] -/Border [0 0 0] ->> -endobj -379 0 obj -<< -/S /URI -/URI (false) ->> -endobj -380 0 obj -<< -/Subtype /Link -/A 379 0 R -/Type /Annot -/Rect [169.2 335.807 174.6 347.12] -/Border [0 0 0] ->> -endobj -381 0 obj -<< -/S /URI -/URI (false) ->> -endobj -382 0 obj -<< -/Subtype /Link -/A 381 0 R -/Type /Annot -/Rect [174.6 335.807 180 347.12] -/Border [0 0 0] ->> -endobj -383 0 obj -<< -/S /URI -/URI (false) ->> -endobj -384 0 obj -<< -/Subtype /Link -/A 383 0 R -/Type /Annot -/Rect [180 335.807 223.2 347.12] -/Border [0 0 0] ->> -endobj -385 0 obj -<< -/S /URI -/URI (false) ->> -endobj -386 0 obj -<< -/Subtype /Link -/A 385 0 R -/Type /Annot -/Rect [223.2 335.807 228.6 347.12] -/Border [0 0 0] ->> -endobj -387 0 obj -<< -/S /URI -/URI (false) ->> -endobj -388 0 obj -<< -/Subtype /Link -/A 387 0 R -/Type /Annot -/Rect [228.6 335.807 234 347.12] -/Border [0 0 0] ->> -endobj -389 0 obj -<< -/S /URI -/URI (false) ->> -endobj -390 0 obj -<< -/Subtype /Link -/A 389 0 R -/Type /Annot -/Rect [234 335.807 239.4 347.12] -/Border [0 0 0] ->> -endobj -391 0 obj -<< -/S /URI -/URI (false) ->> -endobj -392 0 obj -<< -/Subtype /Link -/A 391 0 R -/Type /Annot -/Rect [239.4 335.807 244.8 347.12] -/Border [0 0 0] ->> -endobj -393 0 obj -<< -/S /URI -/URI (false) ->> -endobj -394 0 obj -<< -/Subtype /Link -/A 393 0 R -/Type /Annot -/Rect [72 324.494 82.8 335.807] -/Border [0 0 0] ->> -endobj -395 0 obj -<< -/S /URI -/URI (false) ->> -endobj -396 0 obj -<< -/Subtype /Link -/A 395 0 R -/Type /Annot -/Rect [82.8 324.494 336.6 335.807] -/Border [0 0 0] ->> -endobj -397 0 obj -<< -/S /URI -/URI (false) ->> -endobj -398 0 obj -<< -/Subtype /Link -/A 397 0 R -/Type /Annot -/Rect [72 313.181 82.8 324.494] -/Border [0 0 0] ->> -endobj -399 0 obj -<< -/S /URI -/URI (false) ->> -endobj -400 0 obj -<< -/Subtype /Link -/A 399 0 R -/Type /Annot -/Rect [82.8 313.181 109.8 324.494] -/Border [0 0 0] ->> -endobj -401 0 obj -<< -/S /URI -/URI (false) ->> -endobj -402 0 obj -<< -/Subtype /Link -/A 401 0 R -/Type /Annot -/Rect [109.8 313.181 115.2 324.494] -/Border [0 0 0] ->> -endobj -403 0 obj -<< -/S /URI -/URI (false) ->> -endobj -404 0 obj -<< -/Subtype /Link -/A 403 0 R -/Type /Annot -/Rect [115.2 313.181 136.8 324.494] -/Border [0 0 0] ->> -endobj -405 0 obj -<< -/S /URI -/URI (false) ->> -endobj -406 0 obj -<< -/Subtype /Link -/A 405 0 R -/Type /Annot -/Rect [136.8 313.181 142.2 324.494] -/Border [0 0 0] ->> -endobj -407 0 obj -<< -/S /URI -/URI (false) ->> -endobj -408 0 obj -<< -/Subtype /Link -/A 407 0 R -/Type /Annot -/Rect [142.2 313.181 147.6 324.494] -/Border [0 0 0] ->> -endobj -409 0 obj -<< -/S /URI -/URI (false) ->> -endobj -410 0 obj -<< -/Subtype /Link -/A 409 0 R -/Type /Annot -/Rect [147.6 313.181 153 324.494] -/Border [0 0 0] ->> -endobj -411 0 obj -<< -/S /URI -/URI (false) ->> -endobj -412 0 obj -<< -/Subtype /Link -/A 411 0 R -/Type /Annot -/Rect [153 313.181 185.4 324.494] -/Border [0 0 0] ->> -endobj -413 0 obj -<< -/S /URI -/URI (false) ->> -endobj -414 0 obj -<< -/Subtype /Link -/A 413 0 R -/Type /Annot -/Rect [185.4 313.181 190.8 324.494] -/Border [0 0 0] ->> -endobj -415 0 obj -<< -/S /URI -/URI (false) ->> -endobj -416 0 obj -<< -/Subtype /Link -/A 415 0 R -/Type /Annot -/Rect [190.8 313.181 223.2 324.494] -/Border [0 0 0] ->> -endobj -417 0 obj -<< -/S /URI -/URI (false) ->> -endobj -418 0 obj -<< -/Subtype /Link -/A 417 0 R -/Type /Annot -/Rect [223.2 313.181 228.6 324.494] -/Border [0 0 0] ->> -endobj -419 0 obj -<< -/S /URI -/URI (false) ->> -endobj -420 0 obj -<< -/Subtype /Link -/A 419 0 R -/Type /Annot -/Rect [228.6 313.181 320.4 324.494] -/Border [0 0 0] ->> -endobj -421 0 obj -<< -/S /URI -/URI (false) ->> -endobj -422 0 obj -<< -/Subtype /Link -/A 421 0 R -/Type /Annot -/Rect [320.4 313.181 325.8 324.494] -/Border [0 0 0] ->> -endobj -423 0 obj -<< -/S /URI -/URI (false) ->> -endobj -424 0 obj -<< -/Subtype /Link -/A 423 0 R -/Type /Annot -/Rect [325.8 313.181 331.2 324.494] -/Border [0 0 0] ->> -endobj -425 0 obj -<< -/S /URI -/URI (false) ->> -endobj -426 0 obj -<< -/Subtype /Link -/A 425 0 R -/Type /Annot -/Rect [72 290.555 82.8 301.868] -/Border [0 0 0] ->> -endobj -427 0 obj -<< -/S /URI -/URI (false) ->> -endobj -428 0 obj -<< -/Subtype /Link -/A 427 0 R -/Type /Annot -/Rect [82.8 290.555 336.6 301.868] -/Border [0 0 0] ->> -endobj -429 0 obj -<< -/S /URI -/URI (false) ->> -endobj -430 0 obj -<< -/Subtype /Link -/A 429 0 R -/Type /Annot -/Rect [72 279.242 82.8 290.555] -/Border [0 0 0] ->> -endobj -431 0 obj -<< -/S /URI -/URI (false) ->> -endobj -432 0 obj -<< -/Subtype /Link -/A 431 0 R -/Type /Annot -/Rect [82.8 279.242 109.8 290.555] -/Border [0 0 0] ->> -endobj -433 0 obj -<< -/S /URI -/URI (false) ->> -endobj -434 0 obj -<< -/Subtype /Link -/A 433 0 R -/Type /Annot -/Rect [109.8 279.242 115.2 290.555] -/Border [0 0 0] ->> -endobj -435 0 obj -<< -/S /URI -/URI (false) ->> -endobj -436 0 obj -<< -/Subtype /Link -/A 435 0 R -/Type /Annot -/Rect [115.2 279.242 131.4 290.555] -/Border [0 0 0] ->> -endobj -437 0 obj -<< -/S /URI -/URI (false) ->> -endobj -438 0 obj -<< -/Subtype /Link -/A 437 0 R -/Type /Annot -/Rect [131.4 279.242 136.8 290.555] -/Border [0 0 0] ->> -endobj -439 0 obj -<< -/S /URI -/URI (false) ->> -endobj -440 0 obj -<< -/Subtype /Link -/A 439 0 R -/Type /Annot -/Rect [136.8 279.242 142.2 290.555] -/Border [0 0 0] ->> -endobj -441 0 obj -<< -/S /URI -/URI (false) ->> -endobj -442 0 obj -<< -/Subtype /Link -/A 441 0 R -/Type /Annot -/Rect [142.2 279.242 147.6 290.555] -/Border [0 0 0] ->> -endobj -443 0 obj -<< -/S /URI -/URI (false) ->> -endobj -444 0 obj -<< -/Subtype /Link -/A 443 0 R -/Type /Annot -/Rect [147.6 279.242 180 290.555] -/Border [0 0 0] ->> -endobj -445 0 obj -<< -/S /URI -/URI (false) ->> -endobj -446 0 obj -<< -/Subtype /Link -/A 445 0 R -/Type /Annot -/Rect [180 279.242 185.4 290.555] -/Border [0 0 0] ->> -endobj -447 0 obj -<< -/S /URI -/URI (false) ->> -endobj -448 0 obj -<< -/Subtype /Link -/A 447 0 R -/Type /Annot -/Rect [185.4 279.242 234 290.555] -/Border [0 0 0] ->> -endobj -449 0 obj -<< -/S /URI -/URI (false) ->> -endobj -450 0 obj -<< -/Subtype /Link -/A 449 0 R -/Type /Annot -/Rect [234 279.242 239.4 290.555] -/Border [0 0 0] ->> -endobj -451 0 obj -<< -/S /URI -/URI (false) ->> -endobj -452 0 obj -<< -/Subtype /Link -/A 451 0 R -/Type /Annot -/Rect [239.4 279.242 331.2 290.555] -/Border [0 0 0] ->> -endobj -453 0 obj -<< -/S /URI -/URI (false) ->> -endobj -454 0 obj -<< -/Subtype /Link -/A 453 0 R -/Type /Annot -/Rect [331.2 279.242 336.6 290.555] -/Border [0 0 0] ->> -endobj -455 0 obj -<< -/S /URI -/URI (false) ->> -endobj -456 0 obj -<< -/Subtype /Link -/A 455 0 R -/Type /Annot -/Rect [336.6 279.242 342 290.555] -/Border [0 0 0] ->> -endobj -457 0 obj -<< -/S /URI -/URI (false) ->> -endobj -458 0 obj -<< -/Subtype /Link -/A 457 0 R -/Type /Annot -/Rect [72 267.929 82.8 279.242] -/Border [0 0 0] ->> -endobj -459 0 obj -<< -/S /URI -/URI (false) ->> -endobj -460 0 obj -<< -/Subtype /Link -/A 459 0 R -/Type /Annot -/Rect [82.8 267.929 115.2 279.242] -/Border [0 0 0] ->> -endobj -461 0 obj -<< -/S /URI -/URI (false) ->> -endobj -462 0 obj -<< -/Subtype /Link -/A 461 0 R -/Type /Annot -/Rect [115.2 267.929 120.6 279.242] -/Border [0 0 0] ->> -endobj -463 0 obj -<< -/S /URI -/URI (false) ->> -endobj -464 0 obj -<< -/Subtype /Link -/A 463 0 R -/Type /Annot -/Rect [120.6 267.929 136.8 279.242] -/Border [0 0 0] ->> -endobj -465 0 obj -<< -/S /URI -/URI (false) ->> -endobj -466 0 obj -<< -/Subtype /Link -/A 465 0 R -/Type /Annot -/Rect [136.8 267.929 142.2 279.242] -/Border [0 0 0] ->> -endobj -467 0 obj -<< -/S /URI -/URI (false) ->> -endobj -468 0 obj -<< -/Subtype /Link -/A 467 0 R -/Type /Annot -/Rect [142.2 267.929 147.6 279.242] -/Border [0 0 0] ->> -endobj -469 0 obj -<< -/S /URI -/URI (false) ->> -endobj -470 0 obj -<< -/Subtype /Link -/A 469 0 R -/Type /Annot -/Rect [147.6 267.929 153 279.242] -/Border [0 0 0] ->> -endobj -471 0 obj -<< -/S /URI -/URI (false) ->> -endobj -472 0 obj -<< -/Subtype /Link -/A 471 0 R -/Type /Annot -/Rect [153 267.929 169.2 279.242] -/Border [0 0 0] ->> -endobj -473 0 obj -<< -/S /URI -/URI (false) ->> -endobj -474 0 obj -<< -/Subtype /Link -/A 473 0 R -/Type /Annot -/Rect [169.2 267.929 174.6 279.242] -/Border [0 0 0] ->> -endobj -475 0 obj -<< -/S /URI -/URI (false) ->> -endobj -476 0 obj -<< -/Subtype /Link -/A 475 0 R -/Type /Annot -/Rect [72 256.616 77.4 267.929] -/Border [0 0 0] ->> -endobj -477 0 obj -<< -/S /URI -/URI (false) ->> -endobj -478 0 obj -<< -/Subtype /Link -/A 477 0 R -/Type /Annot -/Rect [77.4 256.616 82.8 267.929] -/Border [0 0 0] ->> -endobj -479 0 obj -<< -/S /URI -/URI (false) ->> -endobj -480 0 obj -<< -/Subtype /Link -/A 479 0 R -/Type /Annot -/Rect [82.8 256.616 88.2 267.929] -/Border [0 0 0] ->> -endobj -481 0 obj -<< -/S /URI -/URI (false) ->> -endobj -482 0 obj -<< -/Subtype /Link -/A 481 0 R -/Type /Annot -/Rect [72 234.116 343.210938 246.616] -/Border [0 0 0] ->> -endobj -483 0 obj -<< -/S /URI -/URI (http://pdfkit.org/demo/browser.html) ->> -endobj -484 0 obj -<< -/Subtype /Link -/A 483 0 R -/Type /Annot -/Rect [343.210938 234.116 365.754883 246.616] -/Border [0 0 0] ->> -endobj -485 0 obj -<< -/S /URI -/URI (false) ->> -endobj -486 0 obj -<< -/Subtype /Link -/A 485 0 R -/Type /Annot -/Rect [365.754883 234.116 369.202148 246.616] -/Border [0 0 0] ->> -endobj -487 0 obj -<< -/S /URI -/URI (false) ->> -endobj -488 0 obj -<< -/Subtype /Link -/A 487 0 R -/Type /Annot -/Rect [72 211.616 463.196289 224.116] -/Border [0 0 0] ->> -endobj -489 0 obj -<< -/S /URI -/URI (false) ->> -endobj -490 0 obj -<< -/Subtype /Link -/A 489 0 R -/Type /Annot -/Rect [463.196289 211.546 487.196289 224.116] -/Border [0 0 0] ->> -endobj -491 0 obj -<< -/S /URI -/URI (false) ->> -endobj -492 0 obj -<< -/Subtype /Link -/A 491 0 R -/Type /Annot -/Rect [487.196289 211.616 529.925781 224.116] -/Border [0 0 0] ->> -endobj -493 0 obj -<< -/S /URI -/URI (false) ->> -endobj -494 0 obj -<< -/Subtype /Link -/A 493 0 R -/Type /Annot -/Rect [72 199.116 484.666016 211.616] -/Border [0 0 0] ->> -endobj -495 0 obj -<< -/S /URI -/URI (false) ->> -endobj -496 0 obj -<< -/Subtype /Link -/A 495 0 R -/Type /Annot -/Rect [72 186.476 150 199.046] -/Border [0 0 0] ->> -endobj -497 0 obj -<< -/S /URI -/URI (false) ->> -endobj -498 0 obj -<< -/Subtype /Link -/A 497 0 R -/Type /Annot -/Rect [150 186.546 211.557617 199.046] -/Border [0 0 0] ->> -endobj -499 0 obj -<< -/S /URI -/URI (false) ->> -endobj -500 0 obj -<< -/Subtype /Link -/A 499 0 R -/Type /Annot -/Rect [211.557617 186.476 283.557617 199.046] -/Border [0 0 0] ->> -endobj -501 0 obj -<< -/S /URI -/URI (false) ->> -endobj -502 0 obj -<< -/Subtype /Link -/A 501 0 R -/Type /Annot -/Rect [283.557617 186.546 526.414063 199.046] -/Border [0 0 0] ->> -endobj -503 0 obj -<< -/S /URI -/URI (false) ->> -endobj -504 0 obj -<< -/Subtype /Link -/A 503 0 R -/Type /Annot -/Rect [72 174.046 380.413086 186.546] -/Border [0 0 0] ->> -endobj -189 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 187 0 R -/Resources 188 0 R -/Annots [192 0 R 194 0 R 196 0 R 198 0 R 200 0 R 202 0 R 204 0 R 206 0 R 208 0 R 210 0 R 212 0 R 214 0 R 216 0 R 218 0 R 220 0 R 222 0 R 224 0 R 226 0 R 228 0 R 230 0 R 232 0 R 234 0 R 236 0 R 238 0 R 240 0 R 242 0 R 244 0 R 246 0 R 248 0 R 250 0 R 252 0 R 254 0 R 256 0 R 258 0 R 260 0 R 262 0 R 264 0 R 266 0 R 268 0 R 270 0 R 272 0 R 274 0 R 276 0 R 278 0 R 280 0 R 282 0 R 284 0 R 286 0 R 288 0 R 290 0 R 292 0 R 294 0 R 296 0 R 298 0 R 300 0 R 302 0 R 304 0 R 306 0 R 308 0 R 310 0 R 312 0 R 314 0 R 316 0 R 318 0 R 320 0 R 322 0 R 324 0 R 326 0 R 328 0 R 330 0 R 332 0 R 334 0 R 336 0 R 338 0 R 340 0 R 342 0 R 344 0 R 346 0 R 348 0 R 350 0 R 352 0 R 354 0 R 356 0 R 358 0 R 360 0 R 362 0 R 364 0 R 366 0 R 368 0 R 370 0 R 372 0 R 374 0 R 376 0 R 378 0 R 380 0 R 382 0 R 384 0 R 386 0 R 388 0 R 390 0 R 392 0 R 394 0 R 396 0 R 398 0 R 400 0 R 402 0 R 404 0 R 406 0 R 408 0 R 410 0 R 412 0 R 414 0 R 416 0 R 418 0 R 420 0 R 422 0 R 424 0 R 426 0 R 428 0 R 430 0 R 432 0 R 434 0 R 436 0 R 438 0 R 440 0 R 442 0 R 444 0 R 446 0 R 448 0 R 450 0 R 452 0 R 454 0 R 456 0 R 458 0 R 460 0 R 462 0 R 464 0 R 466 0 R 468 0 R 470 0 R 472 0 R 474 0 R 476 0 R 478 0 R 480 0 R 482 0 R 484 0 R 486 0 R 488 0 R 490 0 R 492 0 R 494 0 R 496 0 R 498 0 R 500 0 R 502 0 R 504 0 R] ->> -endobj -188 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -187 0 obj -<< -/Length 3008 -/Filter /FlateDecode ->> -stream -x]ˎ Wb0I.Ȣ -"#ɢM?h.AMwei y폿rM]L{9'/N@@^M//I%cƏ[W~וc_#ۿ3u-#oo~7cm@v>*V#o>BE^8gc~po/|s\/uoy&ߙ˷n#߇UƳdOnU ޚvs\3/cб&ӻ߰Eep繤`avQڔCH tQxiZ ɿyw|e9YO~R8Y5{^1CGVflL Cd'o"U8[X["BIZdB= E'ٯb]"y]j]^$_@Os=j ͣ4 ߷fo1Qm#.PIl^ڢmЖ(9,r}68 ,P}F(?xgE-bWœߋ[h⧨ A{ͅ}Q.@T%ѽNqݘDph$W=}:q\w)^ ; -.$Mmٝ>DC -&8s>7Zš1bN!I8b9ؖ)h㽟%|,~0@?ʭh|=o'q_f}7|Xr#W XBpv9 ~tFg$.l'$PRg#di%L3$ƿ|AnS1sB } -YT% |&1؟.6ޙTx!&~Arb&EK3Ri`K3q1IVT["h#<.0;sXqklPʊ >X*EWougz@R[#*0{I͏(TTe'֫cVL1 5jMkD5-bFJq- -u?Ry[H= -mQmo?-b:_랢UHۡq6J3cWt|d[5c:oaG-χ:9ff#iͮ@supTu0Z2Xҡ^O4JsJ۲\Bǝ{d W_~ġl1-Q\ڈ -\<&N22<1'\y@9itH=Rcbx{2ʛ&ųP$a\!*zC#,aNh..=B=awS`UwX:B+ԣN^PZ\.h,js_"B19:f7&ՒZ>Du&0u ]p`I+ \Ѣ|tvؚ'+ge;k9$3kx jyRǬө޼Jb;=`1t12Ob`UcXPQV a/Hi[ F[/%9ŠHD\MGw\ k-ѵr KtDX1\,ͽ2Zx1Pu64ZX:x**KY֚'(8GWYzSm0 -MpqZqژ،\$8166{1VQc WK9Ύ]BH=.J P#v HQUNZE.`8TXP1#M+qi亶W[86 y5VĪrJ -Xkeڜ.OEJJ(q>G6*"l]e,/?c{(Br+q0-lӜW@Z` fPPO=1P$^xx䜆;Rm;9D0KҪ"KVϟl*./PdԠ eCWGEp7KV"|<ыm(빔it^ ςp߫S|Ք]Eߧᗌ^xoY鐯m6̭w /SlaޛiЬb2G!&Y A }[\pGzV=B'nu#XT!IeFK#;UK#,UBޤI\(%.qB~atr,;s_>k@@oA|.d5ܫYP\=8>Z,dz|FD)SC5\K ݗ%Yʵr_Ba6CctA*Khg٩h#[WEx2bީ6DAtU/Ӑj,f*?5x,NĬ`m=o/Y7@'姛X6@':psmQU{c^GdYf -m?]?'}h\odꌎ<>T ,=? 5nڊAk1ҹ2ksdaS*H NYtc{xion{`-א[ -.t -ľlWCNj)<*9BNʚG=ݸWgLAGҵN;>]nSר K\'7;b?7 p7WfQ>V51LILcުǡJuͽĕK%o鱺yO6rR]Q>OZ11b=2]*ևe;{w[CČVv=[}ǽ?<*EecTv 8=tCZ{48,lَ W!JqhFO,K.p|lܤ0z|4kf_D \z Dsܙ=%NZ?DFAꑀٹKH( Bcˊ 8~ -endstream -endobj -509 0 obj -<< -/S /URI -/URI (false) ->> -endobj -510 0 obj -<< -/Subtype /Link -/A 509 0 R -/Type /Annot -/Rect [72 695.502 173.682 720] -/Border [0 0 0] ->> -endobj -511 0 obj -<< -/S /URI -/URI (false) ->> -endobj -512 0 obj -<< -/Subtype /Link -/A 511 0 R -/Type /Annot -/Rect [72 673.002 508.889648 685.502] -/Border [0 0 0] ->> -endobj -513 0 obj -<< -/S /URI -/URI (false) ->> -endobj -514 0 obj -<< -/Subtype /Link -/A 513 0 R -/Type /Annot -/Rect [72 660.502 220.754883 673.002] -/Border [0 0 0] ->> -endobj -515 0 obj -<< -/S /URI -/URI (false) ->> -endobj -516 0 obj -<< -/Subtype /Link -/A 515 0 R -/Type /Annot -/Rect [220.754883 660.432 340.754883 673.002] -/Border [0 0 0] ->> -endobj -517 0 obj -<< -/S /URI -/URI (false) ->> -endobj -518 0 obj -<< -/Subtype /Link -/A 517 0 R -/Type /Annot -/Rect [340.754883 660.502 527.957031 673.002] -/Border [0 0 0] ->> -endobj -519 0 obj -<< -/S /URI -/URI (false) ->> -endobj -520 0 obj -<< -/Subtype /Link -/A 519 0 R -/Type /Annot -/Rect [72 648.002 224.53418 660.502] -/Border [0 0 0] ->> -endobj -521 0 obj -<< -/S /URI -/URI (false) ->> -endobj -522 0 obj -<< -/Subtype /Link -/A 521 0 R -/Type /Annot -/Rect [72 626.689 88.2 638.002] -/Border [0 0 0] ->> -endobj -523 0 obj -<< -/S /URI -/URI (false) ->> -endobj -524 0 obj -<< -/Subtype /Link -/A 523 0 R -/Type /Annot -/Rect [88.2 626.689 93.6 638.002] -/Border [0 0 0] ->> -endobj -525 0 obj -<< -/S /URI -/URI (false) ->> -endobj -526 0 obj -<< -/Subtype /Link -/A 525 0 R -/Type /Annot -/Rect [93.6 626.689 131.4 638.002] -/Border [0 0 0] ->> -endobj -527 0 obj -<< -/S /URI -/URI (false) ->> -endobj -528 0 obj -<< -/Subtype /Link -/A 527 0 R -/Type /Annot -/Rect [131.4 626.689 136.8 638.002] -/Border [0 0 0] ->> -endobj -529 0 obj -<< -/S /URI -/URI (false) ->> -endobj -530 0 obj -<< -/Subtype /Link -/A 529 0 R -/Type /Annot -/Rect [136.8 626.689 142.2 638.002] -/Border [0 0 0] ->> -endobj -531 0 obj -<< -/S /URI -/URI (false) ->> -endobj -532 0 obj -<< -/Subtype /Link -/A 531 0 R -/Type /Annot -/Rect [72 604.189 403.958008 616.689] -/Border [0 0 0] ->> -endobj -533 0 obj -<< -/S /URI -/URI (false) ->> -endobj -534 0 obj -<< -/Subtype /Link -/A 533 0 R -/Type /Annot -/Rect [403.958008 604.119 457.958008 616.689] -/Border [0 0 0] ->> -endobj -535 0 obj -<< -/S /URI -/URI (false) ->> -endobj -536 0 obj -<< -/Subtype /Link -/A 535 0 R -/Type /Annot -/Rect [457.958008 604.189 473.583008 616.689] -/Border [0 0 0] ->> -endobj -537 0 obj -<< -/S /URI -/URI (false) ->> -endobj -538 0 obj -<< -/Subtype /Link -/A 537 0 R -/Type /Annot -/Rect [72 591.689 225.71582 604.189] -/Border [0 0 0] ->> -endobj -539 0 obj -<< -/S /URI -/URI (false) ->> -endobj -540 0 obj -<< -/Subtype /Link -/A 539 0 R -/Type /Annot -/Rect [225.71582 591.619 279.71582 604.189] -/Border [0 0 0] ->> -endobj -541 0 obj -<< -/S /URI -/URI (false) ->> -endobj -542 0 obj -<< -/Subtype /Link -/A 541 0 R -/Type /Annot -/Rect [279.71582 591.689 313.724609 604.189] -/Border [0 0 0] ->> -endobj -543 0 obj -<< -/S /URI -/URI (false) ->> -endobj -544 0 obj -<< -/Subtype /Link -/A 543 0 R -/Type /Annot -/Rect [72 570.376 88.2 581.689] -/Border [0 0 0] ->> -endobj -545 0 obj -<< -/S /URI -/URI (false) ->> -endobj -546 0 obj -<< -/Subtype /Link -/A 545 0 R -/Type /Annot -/Rect [88.2 570.376 93.6 581.689] -/Border [0 0 0] ->> -endobj -547 0 obj -<< -/S /URI -/URI (false) ->> -endobj -548 0 obj -<< -/Subtype /Link -/A 547 0 R -/Type /Annot -/Rect [93.6 570.376 104.4 581.689] -/Border [0 0 0] ->> -endobj -549 0 obj -<< -/S /URI -/URI (false) ->> -endobj -550 0 obj -<< -/Subtype /Link -/A 549 0 R -/Type /Annot -/Rect [104.4 570.376 109.8 581.689] -/Border [0 0 0] ->> -endobj -551 0 obj -<< -/S /URI -/URI (false) ->> -endobj -552 0 obj -<< -/Subtype /Link -/A 551 0 R -/Type /Annot -/Rect [109.8 570.376 169.2 581.689] -/Border [0 0 0] ->> -endobj -553 0 obj -<< -/S /URI -/URI (false) ->> -endobj -554 0 obj -<< -/Subtype /Link -/A 553 0 R -/Type /Annot -/Rect [169.2 570.376 174.6 581.689] -/Border [0 0 0] ->> -endobj -555 0 obj -<< -/S /URI -/URI (false) ->> -endobj -556 0 obj -<< -/Subtype /Link -/A 555 0 R -/Type /Annot -/Rect [174.6 570.376 180 581.689] -/Border [0 0 0] ->> -endobj -557 0 obj -<< -/S /URI -/URI (false) ->> -endobj -558 0 obj -<< -/Subtype /Link -/A 557 0 R -/Type /Annot -/Rect [180 570.376 185.4 581.689] -/Border [0 0 0] ->> -endobj -559 0 obj -<< -/S /URI -/URI (false) ->> -endobj -560 0 obj -<< -/Subtype /Link -/A 559 0 R -/Type /Annot -/Rect [185.4 570.376 190.8 581.689] -/Border [0 0 0] ->> -endobj -561 0 obj -<< -/S /URI -/URI (false) ->> -endobj -562 0 obj -<< -/Subtype /Link -/A 561 0 R -/Type /Annot -/Rect [190.8 570.376 196.2 581.689] -/Border [0 0 0] ->> -endobj -563 0 obj -<< -/S /URI -/URI (false) ->> -endobj -564 0 obj -<< -/Subtype /Link -/A 563 0 R -/Type /Annot -/Rect [196.2 570.376 207 581.689] -/Border [0 0 0] ->> -endobj -565 0 obj -<< -/S /URI -/URI (false) ->> -endobj -566 0 obj -<< -/Subtype /Link -/A 565 0 R -/Type /Annot -/Rect [207 570.376 212.4 581.689] -/Border [0 0 0] ->> -endobj -567 0 obj -<< -/S /URI -/URI (false) ->> -endobj -568 0 obj -<< -/Subtype /Link -/A 567 0 R -/Type /Annot -/Rect [212.4 570.376 228.6 581.689] -/Border [0 0 0] ->> -endobj -569 0 obj -<< -/S /URI -/URI (false) ->> -endobj -570 0 obj -<< -/Subtype /Link -/A 569 0 R -/Type /Annot -/Rect [228.6 570.376 234 581.689] -/Border [0 0 0] ->> -endobj -571 0 obj -<< -/S /URI -/URI (false) ->> -endobj -572 0 obj -<< -/Subtype /Link -/A 571 0 R -/Type /Annot -/Rect [234 570.376 255.6 581.689] -/Border [0 0 0] ->> -endobj -573 0 obj -<< -/S /URI -/URI (false) ->> -endobj -574 0 obj -<< -/Subtype /Link -/A 573 0 R -/Type /Annot -/Rect [255.6 570.376 261 581.689] -/Border [0 0 0] ->> -endobj -575 0 obj -<< -/S /URI -/URI (false) ->> -endobj -576 0 obj -<< -/Subtype /Link -/A 575 0 R -/Type /Annot -/Rect [261 570.376 325.8 581.689] -/Border [0 0 0] ->> -endobj -577 0 obj -<< -/S /URI -/URI (false) ->> -endobj -578 0 obj -<< -/Subtype /Link -/A 577 0 R -/Type /Annot -/Rect [325.8 570.376 331.2 581.689] -/Border [0 0 0] ->> -endobj -579 0 obj -<< -/S /URI -/URI (false) ->> -endobj -580 0 obj -<< -/Subtype /Link -/A 579 0 R -/Type /Annot -/Rect [331.2 570.376 336.6 581.689] -/Border [0 0 0] ->> -endobj -581 0 obj -<< -/S /URI -/URI (false) ->> -endobj -582 0 obj -<< -/Subtype /Link -/A 581 0 R -/Type /Annot -/Rect [336.6 570.376 342 581.689] -/Border [0 0 0] ->> -endobj -583 0 obj -<< -/S /URI -/URI (false) ->> -endobj -584 0 obj -<< -/Subtype /Link -/A 583 0 R -/Type /Annot -/Rect [72 547.876 446.682617 560.376] -/Border [0 0 0] ->> -endobj -585 0 obj -<< -/S /URI -/URI (false) ->> -endobj -586 0 obj -<< -/Subtype /Link -/A 585 0 R -/Type /Annot -/Rect [72 525.376 93.201172 537.876] -/Border [0 0 0] ->> -endobj -587 0 obj -<< -/S /URI -/URI (false) ->> -endobj -588 0 obj -<< -/Subtype /Link -/A 587 0 R -/Type /Annot -/Rect [93.201172 525.306 129.201172 537.876] -/Border [0 0 0] ->> -endobj -589 0 obj -<< -/S /URI -/URI (false) ->> -endobj -590 0 obj -<< -/Subtype /Link -/A 589 0 R -/Type /Annot -/Rect [129.201172 525.376 244.699219 537.876] -/Border [0 0 0] ->> -endobj -591 0 obj -<< -/S /URI -/URI (false) ->> -endobj -592 0 obj -<< -/Subtype /Link -/A 591 0 R -/Type /Annot -/Rect [244.699219 525.306 292.699219 537.876] -/Border [0 0 0] ->> -endobj -593 0 obj -<< -/S /URI -/URI (false) ->> -endobj -594 0 obj -<< -/Subtype /Link -/A 593 0 R -/Type /Annot -/Rect [292.699219 525.376 373.416992 537.876] -/Border [0 0 0] ->> -endobj -595 0 obj -<< -/S /URI -/URI (false) ->> -endobj -596 0 obj -<< -/Subtype /Link -/A 595 0 R -/Type /Annot -/Rect [373.416992 525.306 427.416992 537.876] -/Border [0 0 0] ->> -endobj -597 0 obj -<< -/S /URI -/URI (false) ->> -endobj -598 0 obj -<< -/Subtype /Link -/A 597 0 R -/Type /Annot -/Rect [427.416992 525.376 454.619141 537.876] -/Border [0 0 0] ->> -endobj -599 0 obj -<< -/S /URI -/URI (false) ->> -endobj -600 0 obj -<< -/Subtype /Link -/A 599 0 R -/Type /Annot -/Rect [454.619141 525.306 478.619141 537.876] -/Border [0 0 0] ->> -endobj -601 0 obj -<< -/S /URI -/URI (false) ->> -endobj -602 0 obj -<< -/Subtype /Link -/A 601 0 R -/Type /Annot -/Rect [478.619141 525.376 527.095703 537.876] -/Border [0 0 0] ->> -endobj -603 0 obj -<< -/S /URI -/URI (false) ->> -endobj -604 0 obj -<< -/Subtype /Link -/A 603 0 R -/Type /Annot -/Rect [72 512.876 236.238281 525.376] -/Border [0 0 0] ->> -endobj -605 0 obj -<< -/S /URI -/URI (false) ->> -endobj -606 0 obj -<< -/Subtype /Link -/A 605 0 R -/Type /Annot -/Rect [236.238281 512.806 326.238281 525.376] -/Border [0 0 0] ->> -endobj -607 0 obj -<< -/S /URI -/URI (false) ->> -endobj -608 0 obj -<< -/Subtype /Link -/A 607 0 R -/Type /Annot -/Rect [326.238281 512.876 521.951172 525.376] -/Border [0 0 0] ->> -endobj -609 0 obj -<< -/S /URI -/URI (false) ->> -endobj -610 0 obj -<< -/Subtype /Link -/A 609 0 R -/Type /Annot -/Rect [72 500.376 451.726563 512.876] -/Border [0 0 0] ->> -endobj -611 0 obj -<< -/S /URI -/URI (https://github.com/devongovett/pdfkit/blob/b13423bf0a391ed1c33a2e277bc06c00cabd6bf9/lib/page.coffee#L72-L122) ->> -endobj -612 0 obj -<< -/Subtype /Link -/A 611 0 R -/Type /Annot -/Rect [451.726563 500.376 474.270508 512.876] -/Border [0 0 0] ->> -endobj -613 0 obj -<< -/S /URI -/URI (false) ->> -endobj -614 0 obj -<< -/Subtype /Link -/A 613 0 R -/Type /Annot -/Rect [474.270508 500.376 539.416992 512.876] -/Border [0 0 0] ->> -endobj -615 0 obj -<< -/S /URI -/URI (false) ->> -endobj -616 0 obj -<< -/Subtype /Link -/A 615 0 R -/Type /Annot -/Rect [72 487.876 83.005859 500.376] -/Border [0 0 0] ->> -endobj -617 0 obj -<< -/S /URI -/URI (false) ->> -endobj -618 0 obj -<< -/Subtype /Link -/A 617 0 R -/Type /Annot -/Rect [83.005859 487.806 119.005859 500.376] -/Border [0 0 0] ->> -endobj -619 0 obj -<< -/S /URI -/URI (false) ->> -endobj -620 0 obj -<< -/Subtype /Link -/A 619 0 R -/Type /Annot -/Rect [119.005859 487.876 122.453125 500.376] -/Border [0 0 0] ->> -endobj -621 0 obj -<< -/S /URI -/URI (false) ->> -endobj -622 0 obj -<< -/Subtype /Link -/A 621 0 R -/Type /Annot -/Rect [72 465.376 252.263672 477.876] -/Border [0 0 0] ->> -endobj -623 0 obj -<< -/S /URI -/URI (false) ->> -endobj -624 0 obj -<< -/Subtype /Link -/A 623 0 R -/Type /Annot -/Rect [252.263672 465.306 318.263672 477.876] -/Border [0 0 0] ->> -endobj -625 0 obj -<< -/S /URI -/URI (false) ->> -endobj -626 0 obj -<< -/Subtype /Link -/A 625 0 R -/Type /Annot -/Rect [318.263672 465.376 529.894531 477.876] -/Border [0 0 0] ->> -endobj -627 0 obj -<< -/S /URI -/URI (false) ->> -endobj -628 0 obj -<< -/Subtype /Link -/A 627 0 R -/Type /Annot -/Rect [72 452.876 522.732422 465.376] -/Border [0 0 0] ->> -endobj -629 0 obj -<< -/S /URI -/URI (false) ->> -endobj -630 0 obj -<< -/Subtype /Link -/A 629 0 R -/Type /Annot -/Rect [72 440.376 140.613281 452.876] -/Border [0 0 0] ->> -endobj -631 0 obj -<< -/S /URI -/URI (false) ->> -endobj -632 0 obj -<< -/Subtype /Link -/A 631 0 R -/Type /Annot -/Rect [140.613281 440.306 182.613281 452.876] -/Border [0 0 0] ->> -endobj -633 0 obj -<< -/S /URI -/URI (false) ->> -endobj -634 0 obj -<< -/Subtype /Link -/A 633 0 R -/Type /Annot -/Rect [182.613281 440.376 227.583984 452.876] -/Border [0 0 0] ->> -endobj -635 0 obj -<< -/S /URI -/URI (false) ->> -endobj -636 0 obj -<< -/Subtype /Link -/A 635 0 R -/Type /Annot -/Rect [72 417.876 411.790039 430.376] -/Border [0 0 0] ->> -endobj -637 0 obj -<< -/S /URI -/URI (false) ->> -endobj -638 0 obj -<< -/Subtype /Link -/A 637 0 R -/Type /Annot -/Rect [411.790039 417.806 447.790039 430.376] -/Border [0 0 0] ->> -endobj -639 0 obj -<< -/S /URI -/URI (false) ->> -endobj -640 0 obj -<< -/Subtype /Link -/A 639 0 R -/Type /Annot -/Rect [447.790039 417.876 496.266602 430.376] -/Border [0 0 0] ->> -endobj -641 0 obj -<< -/S /URI -/URI (false) ->> -endobj -642 0 obj -<< -/Subtype /Link -/A 641 0 R -/Type /Annot -/Rect [72 405.376 518.972656 417.876] -/Border [0 0 0] ->> -endobj -643 0 obj -<< -/S /URI -/URI (false) ->> -endobj -644 0 obj -<< -/Subtype /Link -/A 643 0 R -/Type /Annot -/Rect [72 392.736 114 405.306] -/Border [0 0 0] ->> -endobj -645 0 obj -<< -/S /URI -/URI (false) ->> -endobj -646 0 obj -<< -/Subtype /Link -/A 645 0 R -/Type /Annot -/Rect [114 392.806 288.360352 405.306] -/Border [0 0 0] ->> -endobj -647 0 obj -<< -/S /URI -/URI (false) ->> -endobj -648 0 obj -<< -/Subtype /Link -/A 647 0 R -/Type /Annot -/Rect [288.360352 392.736 306.360352 405.306] -/Border [0 0 0] ->> -endobj -649 0 obj -<< -/S /URI -/URI (false) ->> -endobj -650 0 obj -<< -/Subtype /Link -/A 649 0 R -/Type /Annot -/Rect [306.360352 392.806 312.258789 405.306] -/Border [0 0 0] ->> -endobj -651 0 obj -<< -/S /URI -/URI (false) ->> -endobj -652 0 obj -<< -/Subtype /Link -/A 651 0 R -/Type /Annot -/Rect [312.258789 392.736 348.258789 405.306] -/Border [0 0 0] ->> -endobj -653 0 obj -<< -/S /URI -/URI (false) ->> -endobj -654 0 obj -<< -/Subtype /Link -/A 653 0 R -/Type /Annot -/Rect [348.258789 392.806 354.157227 405.306] -/Border [0 0 0] ->> -endobj -655 0 obj -<< -/S /URI -/URI (false) ->> -endobj -656 0 obj -<< -/Subtype /Link -/A 655 0 R -/Type /Annot -/Rect [354.157227 392.736 378.157227 405.306] -/Border [0 0 0] ->> -endobj -657 0 obj -<< -/S /URI -/URI (false) ->> -endobj -658 0 obj -<< -/Subtype /Link -/A 657 0 R -/Type /Annot -/Rect [378.157227 392.806 405.212891 405.306] -/Border [0 0 0] ->> -endobj -659 0 obj -<< -/S /URI -/URI (false) ->> -endobj -660 0 obj -<< -/Subtype /Link -/A 659 0 R -/Type /Annot -/Rect [405.212891 392.736 435.212891 405.306] -/Border [0 0 0] ->> -endobj -661 0 obj -<< -/S /URI -/URI (false) ->> -endobj -662 0 obj -<< -/Subtype /Link -/A 661 0 R -/Type /Annot -/Rect [435.212891 392.806 537.283203 405.306] -/Border [0 0 0] ->> -endobj -663 0 obj -<< -/S /URI -/URI (false) ->> -endobj -664 0 obj -<< -/Subtype /Link -/A 663 0 R -/Type /Annot -/Rect [72 380.306 272.732422 392.806] -/Border [0 0 0] ->> -endobj -665 0 obj -<< -/S /URI -/URI (false) ->> -endobj -666 0 obj -<< -/Subtype /Link -/A 665 0 R -/Type /Annot -/Rect [72 357.806 137.019531 370.306] -/Border [0 0 0] ->> -endobj -667 0 obj -<< -/S /URI -/URI (false) ->> -endobj -668 0 obj -<< -/Subtype /Link -/A 667 0 R -/Type /Annot -/Rect [72 336.493 271.8 347.806] -/Border [0 0 0] ->> -endobj -669 0 obj -<< -/S /URI -/URI (false) ->> -endobj -670 0 obj -<< -/Subtype /Link -/A 669 0 R -/Type /Annot -/Rect [72 325.18 88.2 336.493] -/Border [0 0 0] ->> -endobj -671 0 obj -<< -/S /URI -/URI (false) ->> -endobj -672 0 obj -<< -/Subtype /Link -/A 671 0 R -/Type /Annot -/Rect [88.2 325.18 93.6 336.493] -/Border [0 0 0] ->> -endobj -673 0 obj -<< -/S /URI -/URI (false) ->> -endobj -674 0 obj -<< -/Subtype /Link -/A 673 0 R -/Type /Annot -/Rect [93.6 325.18 131.4 336.493] -/Border [0 0 0] ->> -endobj -675 0 obj -<< -/S /URI -/URI (false) ->> -endobj -676 0 obj -<< -/Subtype /Link -/A 675 0 R -/Type /Annot -/Rect [131.4 325.18 136.8 336.493] -/Border [0 0 0] ->> -endobj -677 0 obj -<< -/S /URI -/URI (false) ->> -endobj -678 0 obj -<< -/Subtype /Link -/A 677 0 R -/Type /Annot -/Rect [136.8 325.18 142.2 336.493] -/Border [0 0 0] ->> -endobj -679 0 obj -<< -/S /URI -/URI (false) ->> -endobj -680 0 obj -<< -/Subtype /Link -/A 679 0 R -/Type /Annot -/Rect [72 313.867 82.8 325.18] -/Border [0 0 0] ->> -endobj -681 0 obj -<< -/S /URI -/URI (false) ->> -endobj -682 0 obj -<< -/Subtype /Link -/A 681 0 R -/Type /Annot -/Rect [82.8 313.867 115.2 325.18] -/Border [0 0 0] ->> -endobj -683 0 obj -<< -/S /URI -/URI (false) ->> -endobj -684 0 obj -<< -/Subtype /Link -/A 683 0 R -/Type /Annot -/Rect [115.2 313.867 120.6 325.18] -/Border [0 0 0] ->> -endobj -685 0 obj -<< -/S /URI -/URI (false) ->> -endobj -686 0 obj -<< -/Subtype /Link -/A 685 0 R -/Type /Annot -/Rect [120.6 313.867 126 325.18] -/Border [0 0 0] ->> -endobj -687 0 obj -<< -/S /URI -/URI (false) ->> -endobj -688 0 obj -<< -/Subtype /Link -/A 687 0 R -/Type /Annot -/Rect [126 313.867 136.8 325.18] -/Border [0 0 0] ->> -endobj -689 0 obj -<< -/S /URI -/URI (false) ->> -endobj -690 0 obj -<< -/Subtype /Link -/A 689 0 R -/Type /Annot -/Rect [136.8 313.867 142.2 325.18] -/Border [0 0 0] ->> -endobj -691 0 obj -<< -/S /URI -/URI (false) ->> -endobj -692 0 obj -<< -/Subtype /Link -/A 691 0 R -/Type /Annot -/Rect [142.2 313.867 147.6 325.18] -/Border [0 0 0] ->> -endobj -693 0 obj -<< -/S /URI -/URI (false) ->> -endobj -694 0 obj -<< -/Subtype /Link -/A 693 0 R -/Type /Annot -/Rect [147.6 313.867 153 325.18] -/Border [0 0 0] ->> -endobj -695 0 obj -<< -/S /URI -/URI (false) ->> -endobj -696 0 obj -<< -/Subtype /Link -/A 695 0 R -/Type /Annot -/Rect [72 279.928 271.8 291.241] -/Border [0 0 0] ->> -endobj -697 0 obj -<< -/S /URI -/URI (false) ->> -endobj -698 0 obj -<< -/Subtype /Link -/A 697 0 R -/Type /Annot -/Rect [72 268.615 88.2 279.928] -/Border [0 0 0] ->> -endobj -699 0 obj -<< -/S /URI -/URI (false) ->> -endobj -700 0 obj -<< -/Subtype /Link -/A 699 0 R -/Type /Annot -/Rect [88.2 268.615 93.6 279.928] -/Border [0 0 0] ->> -endobj -701 0 obj -<< -/S /URI -/URI (false) ->> -endobj -702 0 obj -<< -/Subtype /Link -/A 701 0 R -/Type /Annot -/Rect [93.6 268.615 131.4 279.928] -/Border [0 0 0] ->> -endobj -703 0 obj -<< -/S /URI -/URI (false) ->> -endobj -704 0 obj -<< -/Subtype /Link -/A 703 0 R -/Type /Annot -/Rect [131.4 268.615 136.8 279.928] -/Border [0 0 0] ->> -endobj -705 0 obj -<< -/S /URI -/URI (false) ->> -endobj -706 0 obj -<< -/Subtype /Link -/A 705 0 R -/Type /Annot -/Rect [136.8 268.615 142.2 279.928] -/Border [0 0 0] ->> -endobj -707 0 obj -<< -/S /URI -/URI (false) ->> -endobj -708 0 obj -<< -/Subtype /Link -/A 707 0 R -/Type /Annot -/Rect [72 257.302 82.8 268.615] -/Border [0 0 0] ->> -endobj -709 0 obj -<< -/S /URI -/URI (false) ->> -endobj -710 0 obj -<< -/Subtype /Link -/A 709 0 R -/Type /Annot -/Rect [82.8 257.302 120.6 268.615] -/Border [0 0 0] ->> -endobj -711 0 obj -<< -/S /URI -/URI (false) ->> -endobj -712 0 obj -<< -/Subtype /Link -/A 711 0 R -/Type /Annot -/Rect [120.6 257.302 126 268.615] -/Border [0 0 0] ->> -endobj -713 0 obj -<< -/S /URI -/URI (false) ->> -endobj -714 0 obj -<< -/Subtype /Link -/A 713 0 R -/Type /Annot -/Rect [126 257.302 131.4 268.615] -/Border [0 0 0] ->> -endobj -715 0 obj -<< -/S /URI -/URI (false) ->> -endobj -716 0 obj -<< -/Subtype /Link -/A 715 0 R -/Type /Annot -/Rect [131.4 257.302 136.8 268.615] -/Border [0 0 0] ->> -endobj -717 0 obj -<< -/S /URI -/URI (false) ->> -endobj -718 0 obj -<< -/Subtype /Link -/A 717 0 R -/Type /Annot -/Rect [72 245.989 93.6 257.302] -/Border [0 0 0] ->> -endobj -719 0 obj -<< -/S /URI -/URI (false) ->> -endobj -720 0 obj -<< -/Subtype /Link -/A 719 0 R -/Type /Annot -/Rect [93.6 245.989 109.8 257.302] -/Border [0 0 0] ->> -endobj -721 0 obj -<< -/S /URI -/URI (false) ->> -endobj -722 0 obj -<< -/Subtype /Link -/A 721 0 R -/Type /Annot -/Rect [109.8 245.989 115.2 257.302] -/Border [0 0 0] ->> -endobj -723 0 obj -<< -/S /URI -/URI (false) ->> -endobj -724 0 obj -<< -/Subtype /Link -/A 723 0 R -/Type /Annot -/Rect [115.2 245.989 120.6 257.302] -/Border [0 0 0] ->> -endobj -725 0 obj -<< -/S /URI -/URI (false) ->> -endobj -726 0 obj -<< -/Subtype /Link -/A 725 0 R -/Type /Annot -/Rect [120.6 245.989 131.4 257.302] -/Border [0 0 0] ->> -endobj -727 0 obj -<< -/S /URI -/URI (false) ->> -endobj -728 0 obj -<< -/Subtype /Link -/A 727 0 R -/Type /Annot -/Rect [131.4 245.989 136.8 257.302] -/Border [0 0 0] ->> -endobj -729 0 obj -<< -/S /URI -/URI (false) ->> -endobj -730 0 obj -<< -/Subtype /Link -/A 729 0 R -/Type /Annot -/Rect [72 234.676 93.6 245.989] -/Border [0 0 0] ->> -endobj -731 0 obj -<< -/S /URI -/URI (false) ->> -endobj -732 0 obj -<< -/Subtype /Link -/A 731 0 R -/Type /Annot -/Rect [93.6 234.676 126 245.989] -/Border [0 0 0] ->> -endobj -733 0 obj -<< -/S /URI -/URI (false) ->> -endobj -734 0 obj -<< -/Subtype /Link -/A 733 0 R -/Type /Annot -/Rect [126 234.676 131.4 245.989] -/Border [0 0 0] ->> -endobj -735 0 obj -<< -/S /URI -/URI (false) ->> -endobj -736 0 obj -<< -/Subtype /Link -/A 735 0 R -/Type /Annot -/Rect [131.4 234.676 136.8 245.989] -/Border [0 0 0] ->> -endobj -737 0 obj -<< -/S /URI -/URI (false) ->> -endobj -738 0 obj -<< -/Subtype /Link -/A 737 0 R -/Type /Annot -/Rect [136.8 234.676 147.6 245.989] -/Border [0 0 0] ->> -endobj -739 0 obj -<< -/S /URI -/URI (false) ->> -endobj -740 0 obj -<< -/Subtype /Link -/A 739 0 R -/Type /Annot -/Rect [147.6 234.676 153 245.989] -/Border [0 0 0] ->> -endobj -741 0 obj -<< -/S /URI -/URI (false) ->> -endobj -742 0 obj -<< -/Subtype /Link -/A 741 0 R -/Type /Annot -/Rect [72 223.363 93.6 234.676] -/Border [0 0 0] ->> -endobj -743 0 obj -<< -/S /URI -/URI (false) ->> -endobj -744 0 obj -<< -/Subtype /Link -/A 743 0 R -/Type /Annot -/Rect [93.6 223.363 115.2 234.676] -/Border [0 0 0] ->> -endobj -745 0 obj -<< -/S /URI -/URI (false) ->> -endobj -746 0 obj -<< -/Subtype /Link -/A 745 0 R -/Type /Annot -/Rect [115.2 223.363 120.6 234.676] -/Border [0 0 0] ->> -endobj -747 0 obj -<< -/S /URI -/URI (false) ->> -endobj -748 0 obj -<< -/Subtype /Link -/A 747 0 R -/Type /Annot -/Rect [120.6 223.363 126 234.676] -/Border [0 0 0] ->> -endobj -749 0 obj -<< -/S /URI -/URI (false) ->> -endobj -750 0 obj -<< -/Subtype /Link -/A 749 0 R -/Type /Annot -/Rect [126 223.363 136.8 234.676] -/Border [0 0 0] ->> -endobj -751 0 obj -<< -/S /URI -/URI (false) ->> -endobj -752 0 obj -<< -/Subtype /Link -/A 751 0 R -/Type /Annot -/Rect [136.8 223.363 142.2 234.676] -/Border [0 0 0] ->> -endobj -753 0 obj -<< -/S /URI -/URI (false) ->> -endobj -754 0 obj -<< -/Subtype /Link -/A 753 0 R -/Type /Annot -/Rect [72 212.05 93.6 223.363] -/Border [0 0 0] ->> -endobj -755 0 obj -<< -/S /URI -/URI (false) ->> -endobj -756 0 obj -<< -/Subtype /Link -/A 755 0 R -/Type /Annot -/Rect [93.6 212.05 120.6 223.363] -/Border [0 0 0] ->> -endobj -757 0 obj -<< -/S /URI -/URI (false) ->> -endobj -758 0 obj -<< -/Subtype /Link -/A 757 0 R -/Type /Annot -/Rect [120.6 212.05 126 223.363] -/Border [0 0 0] ->> -endobj -759 0 obj -<< -/S /URI -/URI (false) ->> -endobj -760 0 obj -<< -/Subtype /Link -/A 759 0 R -/Type /Annot -/Rect [126 212.05 131.4 223.363] -/Border [0 0 0] ->> -endobj -761 0 obj -<< -/S /URI -/URI (false) ->> -endobj -762 0 obj -<< -/Subtype /Link -/A 761 0 R -/Type /Annot -/Rect [131.4 212.05 142.2 223.363] -/Border [0 0 0] ->> -endobj -763 0 obj -<< -/S /URI -/URI (false) ->> -endobj -764 0 obj -<< -/Subtype /Link -/A 763 0 R -/Type /Annot -/Rect [72 200.737 82.8 212.05] -/Border [0 0 0] ->> -endobj -765 0 obj -<< -/S /URI -/URI (false) ->> -endobj -766 0 obj -<< -/Subtype /Link -/A 765 0 R -/Type /Annot -/Rect [82.8 200.737 88.2 212.05] -/Border [0 0 0] ->> -endobj -767 0 obj -<< -/S /URI -/URI (false) ->> -endobj -768 0 obj -<< -/Subtype /Link -/A 767 0 R -/Type /Annot -/Rect [72 189.424 77.4 200.737] -/Border [0 0 0] ->> -endobj -769 0 obj -<< -/S /URI -/URI (false) ->> -endobj -770 0 obj -<< -/Subtype /Link -/A 769 0 R -/Type /Annot -/Rect [77.4 189.424 82.8 200.737] -/Border [0 0 0] ->> -endobj -771 0 obj -<< -/S /URI -/URI (false) ->> -endobj -772 0 obj -<< -/Subtype /Link -/A 771 0 R -/Type /Annot -/Rect [82.8 189.424 88.2 200.737] -/Border [0 0 0] ->> -endobj -507 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 505 0 R -/Resources 506 0 R -/Annots [510 0 R 512 0 R 514 0 R 516 0 R 518 0 R 520 0 R 522 0 R 524 0 R 526 0 R 528 0 R 530 0 R 532 0 R 534 0 R 536 0 R 538 0 R 540 0 R 542 0 R 544 0 R 546 0 R 548 0 R 550 0 R 552 0 R 554 0 R 556 0 R 558 0 R 560 0 R 562 0 R 564 0 R 566 0 R 568 0 R 570 0 R 572 0 R 574 0 R 576 0 R 578 0 R 580 0 R 582 0 R 584 0 R 586 0 R 588 0 R 590 0 R 592 0 R 594 0 R 596 0 R 598 0 R 600 0 R 602 0 R 604 0 R 606 0 R 608 0 R 610 0 R 612 0 R 614 0 R 616 0 R 618 0 R 620 0 R 622 0 R 624 0 R 626 0 R 628 0 R 630 0 R 632 0 R 634 0 R 636 0 R 638 0 R 640 0 R 642 0 R 644 0 R 646 0 R 648 0 R 650 0 R 652 0 R 654 0 R 656 0 R 658 0 R 660 0 R 662 0 R 664 0 R 666 0 R 668 0 R 670 0 R 672 0 R 674 0 R 676 0 R 678 0 R 680 0 R 682 0 R 684 0 R 686 0 R 688 0 R 690 0 R 692 0 R 694 0 R 696 0 R 698 0 R 700 0 R 702 0 R 704 0 R 706 0 R 708 0 R 710 0 R 712 0 R 714 0 R 716 0 R 718 0 R 720 0 R 722 0 R 724 0 R 726 0 R 728 0 R 730 0 R 732 0 R 734 0 R 736 0 R 738 0 R 740 0 R 742 0 R 744 0 R 746 0 R 748 0 R 750 0 R 752 0 R 754 0 R 756 0 R 758 0 R 760 0 R 762 0 R 764 0 R 766 0 R 768 0 R 770 0 R 772 0 R] ->> -endobj -506 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -505 0 obj -<< -/Length 2518 -/Filter /FlateDecode ->> -stream -x\K,ymз   X%(C3[ɏHxo?ΗOyo_E1X, - Wp?s.ΜR˄ }?}3ooc `G4r@Iq6{Ɍ{?f7Lt__mi,#'2e{j3~'}Oh2;bxy.w=Ο~8ΩqLR А4Gj +,AE -5,*-ʬVɴ*arU9^C#dFw*OMT U]$aF<d"x^*xhZBt+ -_$ W]Z9*yKU(ͽ҃iS32gBQ*z U'oW0oh5evqpĹ)#M$F -iA+E7 -?؃W䲠NYyЄLR08|<-BAV?蹎!聘19NZfdy" ̖S6-ƚX@-ʢ]` SVxwlK>S\2TA<88N=Vy+]]h;#!,(;sp*dC]̱0 nd\qb4T&(tb}.ϡ/>1Kj ̅_$KRp>7KBI 53"sf'}|H$07?)ğ ol8j: U_ei5oZ1UyXn3hX 5y#=SN!Lie"$IJ떤>/$,)׵nזUox!dH1ȀZ{Ksv]/$l}A&5)Co\!n ۬ 5s,Tn{P(@,m$wr+B].q/J =oFXazXJ&~Nߋ.{BByvjس2DJDD˵k5K -ϱu*rޏzҾF:%F|s5 •hzVrAkInxħ3ؽ7wǻZSu]a^LWFtJ&Q54kMXUU]+'P`&_JrA;{ă[)IsO @ei]4 w pP"Q LF-ãP@>7QE*4[8quqBrmn}JR棄 feve)Uq"_IBS.2JʸΑvrG͹i:%:b?e5le.ͱmq -4F _x@%S})f\q4?όJ۠Y`2C_FWbN -߇:ǤRGrƪ6T[b%crݒ/J -- -|.""ĊĊehϬ/HHdd;P$W4uA9j1Bht{>hgʡ5ׯ ]_$w#t|6&-Շ^P@;@a7Ic/U|NjU0?8jXaꐎnEԎFC:&Ӽ;:F ,WsÍN:"/> -endobj -778 0 obj -<< -/Subtype /Link -/A 777 0 R -/Type /Annot -/Rect [72 695.502 281.484 720] -/Border [0 0 0] ->> -endobj -779 0 obj -<< -/S /URI -/URI (false) ->> -endobj -780 0 obj -<< -/Subtype /Link -/A 779 0 R -/Type /Annot -/Rect [72 673.002 521.296875 685.502] -/Border [0 0 0] ->> -endobj -781 0 obj -<< -/S /URI -/URI (false) ->> -endobj -782 0 obj -<< -/Subtype /Link -/A 781 0 R -/Type /Annot -/Rect [72 660.502 528.162109 673.002] -/Border [0 0 0] ->> -endobj -783 0 obj -<< -/S /URI -/URI (false) ->> -endobj -784 0 obj -<< -/Subtype /Link -/A 783 0 R -/Type /Annot -/Rect [72 648.002 529.080078 660.502] -/Border [0 0 0] ->> -endobj -785 0 obj -<< -/S /URI -/URI (false) ->> -endobj -786 0 obj -<< -/Subtype /Link -/A 785 0 R -/Type /Annot -/Rect [72 635.502 518.967773 648.002] -/Border [0 0 0] ->> -endobj -787 0 obj -<< -/S /URI -/URI (false) ->> -endobj -788 0 obj -<< -/Subtype /Link -/A 787 0 R -/Type /Annot -/Rect [72 623.002 517.605469 635.502] -/Border [0 0 0] ->> -endobj -789 0 obj -<< -/S /URI -/URI (false) ->> -endobj -790 0 obj -<< -/Subtype /Link -/A 789 0 R -/Type /Annot -/Rect [72 610.502 211.970703 623.002] -/Border [0 0 0] ->> -endobj -791 0 obj -<< -/S /URI -/URI (false) ->> -endobj -792 0 obj -<< -/Subtype /Link -/A 791 0 R -/Type /Annot -/Rect [72 588.002 137.439453 600.502] -/Border [0 0 0] ->> -endobj -793 0 obj -<< -/S /URI -/URI (false) ->> -endobj -794 0 obj -<< -/Subtype /Link -/A 793 0 R -/Type /Annot -/Rect [137.439453 587.932 203.439453 600.502] -/Border [0 0 0] ->> -endobj -795 0 obj -<< -/S /URI -/URI (false) ->> -endobj -796 0 obj -<< -/Subtype /Link -/A 795 0 R -/Type /Annot -/Rect [203.439453 588.002 539.933594 600.502] -/Border [0 0 0] ->> -endobj -797 0 obj -<< -/S /URI -/URI (false) ->> -endobj -798 0 obj -<< -/Subtype /Link -/A 797 0 R -/Type /Annot -/Rect [72 575.502 526.248047 588.002] -/Border [0 0 0] ->> -endobj -799 0 obj -<< -/S /URI -/URI (false) ->> -endobj -800 0 obj -<< -/Subtype /Link -/A 799 0 R -/Type /Annot -/Rect [72 563.002 165.515625 575.502] -/Border [0 0 0] ->> -endobj -801 0 obj -<< -/S /URI -/URI (false) ->> -endobj -802 0 obj -<< -/Subtype /Link -/A 801 0 R -/Type /Annot -/Rect [165.515625 562.932 267.515625 575.502] -/Border [0 0 0] ->> -endobj -803 0 obj -<< -/S /URI -/URI (false) ->> -endobj -804 0 obj -<< -/Subtype /Link -/A 803 0 R -/Type /Annot -/Rect [267.515625 563.002 365.674805 575.502] -/Border [0 0 0] ->> -endobj -805 0 obj -<< -/S /URI -/URI (false) ->> -endobj -806 0 obj -<< -/Subtype /Link -/A 805 0 R -/Type /Annot -/Rect [365.674805 562.932 431.674805 575.502] -/Border [0 0 0] ->> -endobj -807 0 obj -<< -/S /URI -/URI (false) ->> -endobj -808 0 obj -<< -/Subtype /Link -/A 807 0 R -/Type /Annot -/Rect [431.674805 563.002 532.045898 575.502] -/Border [0 0 0] ->> -endobj -809 0 obj -<< -/S /URI -/URI (false) ->> -endobj -810 0 obj -<< -/Subtype /Link -/A 809 0 R -/Type /Annot -/Rect [72 550.502 132.615234 563.002] -/Border [0 0 0] ->> -endobj -811 0 obj -<< -/S /URI -/URI (false) ->> -endobj -812 0 obj -<< -/Subtype /Link -/A 811 0 R -/Type /Annot -/Rect [132.615234 550.432 300.615234 563.002] -/Border [0 0 0] ->> -endobj -813 0 obj -<< -/S /URI -/URI (false) ->> -endobj -814 0 obj -<< -/Subtype /Link -/A 813 0 R -/Type /Annot -/Rect [300.615234 550.502 521.274414 563.002] -/Border [0 0 0] ->> -endobj -815 0 obj -<< -/S /URI -/URI (false) ->> -endobj -816 0 obj -<< -/Subtype /Link -/A 815 0 R -/Type /Annot -/Rect [72 538.002 124.436523 550.502] -/Border [0 0 0] ->> -endobj -817 0 obj -<< -/S /URI -/URI (false) ->> -endobj -818 0 obj -<< -/Subtype /Link -/A 817 0 R -/Type /Annot -/Rect [72 515.502 415.745117 528.002] -/Border [0 0 0] ->> -endobj -819 0 obj -<< -/S /URI -/URI (false) ->> -endobj -820 0 obj -<< -/Subtype /Link -/A 819 0 R -/Type /Annot -/Rect [415.745117 515.432 475.745117 528.002] -/Border [0 0 0] ->> -endobj -821 0 obj -<< -/S /URI -/URI (false) ->> -endobj -822 0 obj -<< -/Subtype /Link -/A 821 0 R -/Type /Annot -/Rect [475.745117 515.502 505.808594 528.002] -/Border [0 0 0] ->> -endobj -823 0 obj -<< -/S /URI -/URI (false) ->> -endobj -824 0 obj -<< -/Subtype /Link -/A 823 0 R -/Type /Annot -/Rect [72 503.002 241.760742 515.502] -/Border [0 0 0] ->> -endobj -825 0 obj -<< -/S /URI -/URI (false) ->> -endobj -826 0 obj -<< -/Subtype /Link -/A 825 0 R -/Type /Annot -/Rect [241.760742 502.932 295.760742 515.502] -/Border [0 0 0] ->> -endobj -827 0 obj -<< -/S /URI -/URI (false) ->> -endobj -828 0 obj -<< -/Subtype /Link -/A 827 0 R -/Type /Annot -/Rect [295.760742 503.002 518.744141 515.502] -/Border [0 0 0] ->> -endobj -829 0 obj -<< -/S /URI -/URI (false) ->> -endobj -830 0 obj -<< -/Subtype /Link -/A 829 0 R -/Type /Annot -/Rect [72 490.502 343.845703 503.002] -/Border [0 0 0] ->> -endobj -831 0 obj -<< -/S /URI -/URI (false) ->> -endobj -832 0 obj -<< -/Subtype /Link -/A 831 0 R -/Type /Annot -/Rect [343.845703 490.432 445.845703 503.002] -/Border [0 0 0] ->> -endobj -833 0 obj -<< -/S /URI -/URI (false) ->> -endobj -834 0 obj -<< -/Subtype /Link -/A 833 0 R -/Type /Annot -/Rect [445.845703 490.502 526.231445 503.002] -/Border [0 0 0] ->> -endobj -835 0 obj -<< -/S /URI -/URI (false) ->> -endobj -836 0 obj -<< -/Subtype /Link -/A 835 0 R -/Type /Annot -/Rect [72 478.002 525.100586 490.502] -/Border [0 0 0] ->> -endobj -837 0 obj -<< -/S /URI -/URI (false) ->> -endobj -838 0 obj -<< -/Subtype /Link -/A 837 0 R -/Type /Annot -/Rect [72 465.502 317.595703 478.002] -/Border [0 0 0] ->> -endobj -839 0 obj -<< -/S /URI -/URI (false) ->> -endobj -840 0 obj -<< -/Subtype /Link -/A 839 0 R -/Type /Annot -/Rect [72 444.189 336.6 455.502] -/Border [0 0 0] ->> -endobj -841 0 obj -<< -/S /URI -/URI (false) ->> -endobj -842 0 obj -<< -/Subtype /Link -/A 841 0 R -/Type /Annot -/Rect [72 432.876 88.2 444.189] -/Border [0 0 0] ->> -endobj -843 0 obj -<< -/S /URI -/URI (false) ->> -endobj -844 0 obj -<< -/Subtype /Link -/A 843 0 R -/Type /Annot -/Rect [88.2 432.876 93.6 444.189] -/Border [0 0 0] ->> -endobj -845 0 obj -<< -/S /URI -/URI (false) ->> -endobj -846 0 obj -<< -/Subtype /Link -/A 845 0 R -/Type /Annot -/Rect [93.6 432.876 99 444.189] -/Border [0 0 0] ->> -endobj -847 0 obj -<< -/S /URI -/URI (false) ->> -endobj -848 0 obj -<< -/Subtype /Link -/A 847 0 R -/Type /Annot -/Rect [99 432.876 104.4 444.189] -/Border [0 0 0] ->> -endobj -849 0 obj -<< -/S /URI -/URI (false) ->> -endobj -850 0 obj -<< -/Subtype /Link -/A 849 0 R -/Type /Annot -/Rect [72 421.563 88.2 432.876] -/Border [0 0 0] ->> -endobj -851 0 obj -<< -/S /URI -/URI (false) ->> -endobj -852 0 obj -<< -/Subtype /Link -/A 851 0 R -/Type /Annot -/Rect [88.2 421.563 93.6 432.876] -/Border [0 0 0] ->> -endobj -853 0 obj -<< -/S /URI -/URI (false) ->> -endobj -854 0 obj -<< -/Subtype /Link -/A 853 0 R -/Type /Annot -/Rect [93.6 421.563 109.8 432.876] -/Border [0 0 0] ->> -endobj -855 0 obj -<< -/S /URI -/URI (false) ->> -endobj -856 0 obj -<< -/Subtype /Link -/A 855 0 R -/Type /Annot -/Rect [109.8 421.563 115.2 432.876] -/Border [0 0 0] ->> -endobj -857 0 obj -<< -/S /URI -/URI (false) ->> -endobj -858 0 obj -<< -/Subtype /Link -/A 857 0 R -/Type /Annot -/Rect [72 410.25 99 421.563] -/Border [0 0 0] ->> -endobj -859 0 obj -<< -/S /URI -/URI (false) ->> -endobj -860 0 obj -<< -/Subtype /Link -/A 859 0 R -/Type /Annot -/Rect [99 410.25 104.4 421.563] -/Border [0 0 0] ->> -endobj -861 0 obj -<< -/S /URI -/URI (false) ->> -endobj -862 0 obj -<< -/Subtype /Link -/A 861 0 R -/Type /Annot -/Rect [104.4 410.25 120.6 421.563] -/Border [0 0 0] ->> -endobj -863 0 obj -<< -/S /URI -/URI (false) ->> -endobj -864 0 obj -<< -/Subtype /Link -/A 863 0 R -/Type /Annot -/Rect [120.6 410.25 126 421.563] -/Border [0 0 0] ->> -endobj -865 0 obj -<< -/S /URI -/URI (false) ->> -endobj -866 0 obj -<< -/Subtype /Link -/A 865 0 R -/Type /Annot -/Rect [126 410.25 131.4 421.563] -/Border [0 0 0] ->> -endobj -867 0 obj -<< -/S /URI -/URI (false) ->> -endobj -868 0 obj -<< -/Subtype /Link -/A 867 0 R -/Type /Annot -/Rect [131.4 410.25 136.8 421.563] -/Border [0 0 0] ->> -endobj -869 0 obj -<< -/S /URI -/URI (false) ->> -endobj -870 0 obj -<< -/Subtype /Link -/A 869 0 R -/Type /Annot -/Rect [136.8 410.25 153 421.563] -/Border [0 0 0] ->> -endobj -871 0 obj -<< -/S /URI -/URI (false) ->> -endobj -872 0 obj -<< -/Subtype /Link -/A 871 0 R -/Type /Annot -/Rect [153 410.25 158.4 421.563] -/Border [0 0 0] ->> -endobj -873 0 obj -<< -/S /URI -/URI (false) ->> -endobj -874 0 obj -<< -/Subtype /Link -/A 873 0 R -/Type /Annot -/Rect [158.4 410.25 217.8 421.563] -/Border [0 0 0] ->> -endobj -875 0 obj -<< -/S /URI -/URI (false) ->> -endobj -876 0 obj -<< -/Subtype /Link -/A 875 0 R -/Type /Annot -/Rect [217.8 410.25 223.2 421.563] -/Border [0 0 0] ->> -endobj -877 0 obj -<< -/S /URI -/URI (false) ->> -endobj -878 0 obj -<< -/Subtype /Link -/A 877 0 R -/Type /Annot -/Rect [223.2 410.25 228.6 421.563] -/Border [0 0 0] ->> -endobj -879 0 obj -<< -/S /URI -/URI (false) ->> -endobj -880 0 obj -<< -/Subtype /Link -/A 879 0 R -/Type /Annot -/Rect [72 398.937 82.8 410.25] -/Border [0 0 0] ->> -endobj -881 0 obj -<< -/S /URI -/URI (false) ->> -endobj -882 0 obj -<< -/Subtype /Link -/A 881 0 R -/Type /Annot -/Rect [82.8 398.937 142.2 410.25] -/Border [0 0 0] ->> -endobj -883 0 obj -<< -/S /URI -/URI (false) ->> -endobj -884 0 obj -<< -/Subtype /Link -/A 883 0 R -/Type /Annot -/Rect [142.2 398.937 147.6 410.25] -/Border [0 0 0] ->> -endobj -885 0 obj -<< -/S /URI -/URI (false) ->> -endobj -886 0 obj -<< -/Subtype /Link -/A 885 0 R -/Type /Annot -/Rect [147.6 398.937 153 410.25] -/Border [0 0 0] ->> -endobj -887 0 obj -<< -/S /URI -/URI (false) ->> -endobj -888 0 obj -<< -/Subtype /Link -/A 887 0 R -/Type /Annot -/Rect [153 398.937 174.6 410.25] -/Border [0 0 0] ->> -endobj -889 0 obj -<< -/S /URI -/URI (false) ->> -endobj -890 0 obj -<< -/Subtype /Link -/A 889 0 R -/Type /Annot -/Rect [174.6 398.937 180 410.25] -/Border [0 0 0] ->> -endobj -891 0 obj -<< -/S /URI -/URI (false) ->> -endobj -892 0 obj -<< -/Subtype /Link -/A 891 0 R -/Type /Annot -/Rect [180 398.937 185.4 410.25] -/Border [0 0 0] ->> -endobj -893 0 obj -<< -/S /URI -/URI (false) ->> -endobj -894 0 obj -<< -/Subtype /Link -/A 893 0 R -/Type /Annot -/Rect [185.4 398.937 190.8 410.25] -/Border [0 0 0] ->> -endobj -895 0 obj -<< -/S /URI -/URI (false) ->> -endobj -896 0 obj -<< -/Subtype /Link -/A 895 0 R -/Type /Annot -/Rect [72 376.311 190.8 387.624] -/Border [0 0 0] ->> -endobj -897 0 obj -<< -/S /URI -/URI (false) ->> -endobj -898 0 obj -<< -/Subtype /Link -/A 897 0 R -/Type /Annot -/Rect [72 364.998 88.2 376.311] -/Border [0 0 0] ->> -endobj -899 0 obj -<< -/S /URI -/URI (false) ->> -endobj -900 0 obj -<< -/Subtype /Link -/A 899 0 R -/Type /Annot -/Rect [88.2 364.998 93.6 376.311] -/Border [0 0 0] ->> -endobj -901 0 obj -<< -/S /URI -/URI (false) ->> -endobj -902 0 obj -<< -/Subtype /Link -/A 901 0 R -/Type /Annot -/Rect [93.6 364.998 131.4 376.311] -/Border [0 0 0] ->> -endobj -903 0 obj -<< -/S /URI -/URI (false) ->> -endobj -904 0 obj -<< -/Subtype /Link -/A 903 0 R -/Type /Annot -/Rect [131.4 364.998 136.8 376.311] -/Border [0 0 0] ->> -endobj -905 0 obj -<< -/S /URI -/URI (false) ->> -endobj -906 0 obj -<< -/Subtype /Link -/A 905 0 R -/Type /Annot -/Rect [136.8 364.998 142.2 376.311] -/Border [0 0 0] ->> -endobj -907 0 obj -<< -/S /URI -/URI (false) ->> -endobj -908 0 obj -<< -/Subtype /Link -/A 907 0 R -/Type /Annot -/Rect [142.2 364.998 147.6 376.311] -/Border [0 0 0] ->> -endobj -909 0 obj -<< -/S /URI -/URI (false) ->> -endobj -910 0 obj -<< -/Subtype /Link -/A 909 0 R -/Type /Annot -/Rect [72 353.685 104.4 364.998] -/Border [0 0 0] ->> -endobj -911 0 obj -<< -/S /URI -/URI (false) ->> -endobj -912 0 obj -<< -/Subtype /Link -/A 911 0 R -/Type /Annot -/Rect [72 342.372 88.2 353.685] -/Border [0 0 0] ->> -endobj -913 0 obj -<< -/S /URI -/URI (false) ->> -endobj -914 0 obj -<< -/Subtype /Link -/A 913 0 R -/Type /Annot -/Rect [88.2 342.372 93.6 353.685] -/Border [0 0 0] ->> -endobj -915 0 obj -<< -/S /URI -/URI (false) ->> -endobj -916 0 obj -<< -/Subtype /Link -/A 915 0 R -/Type /Annot -/Rect [93.6 342.372 131.4 353.685] -/Border [0 0 0] ->> -endobj -917 0 obj -<< -/S /URI -/URI (false) ->> -endobj -918 0 obj -<< -/Subtype /Link -/A 917 0 R -/Type /Annot -/Rect [131.4 342.372 136.8 353.685] -/Border [0 0 0] ->> -endobj -919 0 obj -<< -/S /URI -/URI (false) ->> -endobj -920 0 obj -<< -/Subtype /Link -/A 919 0 R -/Type /Annot -/Rect [136.8 342.372 142.2 353.685] -/Border [0 0 0] ->> -endobj -921 0 obj -<< -/S /URI -/URI (false) ->> -endobj -922 0 obj -<< -/Subtype /Link -/A 921 0 R -/Type /Annot -/Rect [142.2 342.372 147.6 353.685] -/Border [0 0 0] ->> -endobj -923 0 obj -<< -/S /URI -/URI (false) ->> -endobj -924 0 obj -<< -/Subtype /Link -/A 923 0 R -/Type /Annot -/Rect [72 319.746 255.6 331.059] -/Border [0 0 0] ->> -endobj -925 0 obj -<< -/S /URI -/URI (false) ->> -endobj -926 0 obj -<< -/Subtype /Link -/A 925 0 R -/Type /Annot -/Rect [72 308.433 99 319.746] -/Border [0 0 0] ->> -endobj -927 0 obj -<< -/S /URI -/URI (false) ->> -endobj -928 0 obj -<< -/Subtype /Link -/A 927 0 R -/Type /Annot -/Rect [99 308.433 104.4 319.746] -/Border [0 0 0] ->> -endobj -929 0 obj -<< -/S /URI -/URI (false) ->> -endobj -930 0 obj -<< -/Subtype /Link -/A 929 0 R -/Type /Annot -/Rect [104.4 308.433 131.4 319.746] -/Border [0 0 0] ->> -endobj -931 0 obj -<< -/S /URI -/URI (false) ->> -endobj -932 0 obj -<< -/Subtype /Link -/A 931 0 R -/Type /Annot -/Rect [131.4 308.433 136.8 319.746] -/Border [0 0 0] ->> -endobj -933 0 obj -<< -/S /URI -/URI (false) ->> -endobj -934 0 obj -<< -/Subtype /Link -/A 933 0 R -/Type /Annot -/Rect [136.8 308.433 142.2 319.746] -/Border [0 0 0] ->> -endobj -935 0 obj -<< -/S /URI -/URI (false) ->> -endobj -936 0 obj -<< -/Subtype /Link -/A 935 0 R -/Type /Annot -/Rect [142.2 308.433 147.6 319.746] -/Border [0 0 0] ->> -endobj -937 0 obj -<< -/S /URI -/URI (false) ->> -endobj -938 0 obj -<< -/Subtype /Link -/A 937 0 R -/Type /Annot -/Rect [147.6 308.433 163.8 319.746] -/Border [0 0 0] ->> -endobj -939 0 obj -<< -/S /URI -/URI (false) ->> -endobj -940 0 obj -<< -/Subtype /Link -/A 939 0 R -/Type /Annot -/Rect [163.8 308.433 169.2 319.746] -/Border [0 0 0] ->> -endobj -941 0 obj -<< -/S /URI -/URI (false) ->> -endobj -942 0 obj -<< -/Subtype /Link -/A 941 0 R -/Type /Annot -/Rect [169.2 308.433 261 319.746] -/Border [0 0 0] ->> -endobj -943 0 obj -<< -/S /URI -/URI (false) ->> -endobj -944 0 obj -<< -/Subtype /Link -/A 943 0 R -/Type /Annot -/Rect [261 308.433 266.4 319.746] -/Border [0 0 0] ->> -endobj -945 0 obj -<< -/S /URI -/URI (false) ->> -endobj -946 0 obj -<< -/Subtype /Link -/A 945 0 R -/Type /Annot -/Rect [266.4 308.433 271.8 319.746] -/Border [0 0 0] ->> -endobj -947 0 obj -<< -/S /URI -/URI (false) ->> -endobj -948 0 obj -<< -/Subtype /Link -/A 947 0 R -/Type /Annot -/Rect [271.8 308.433 277.2 319.746] -/Border [0 0 0] ->> -endobj -949 0 obj -<< -/S /URI -/URI (false) ->> -endobj -950 0 obj -<< -/Subtype /Link -/A 949 0 R -/Type /Annot -/Rect [277.2 308.433 282.6 319.746] -/Border [0 0 0] ->> -endobj -951 0 obj -<< -/S /URI -/URI (false) ->> -endobj -952 0 obj -<< -/Subtype /Link -/A 951 0 R -/Type /Annot -/Rect [282.6 308.433 433.8 319.746] -/Border [0 0 0] ->> -endobj -953 0 obj -<< -/S /URI -/URI (false) ->> -endobj -954 0 obj -<< -/Subtype /Link -/A 953 0 R -/Type /Annot -/Rect [72 285.807 88.2 297.12] -/Border [0 0 0] ->> -endobj -955 0 obj -<< -/S /URI -/URI (false) ->> -endobj -956 0 obj -<< -/Subtype /Link -/A 955 0 R -/Type /Annot -/Rect [88.2 285.807 93.6 297.12] -/Border [0 0 0] ->> -endobj -957 0 obj -<< -/S /URI -/URI (false) ->> -endobj -958 0 obj -<< -/Subtype /Link -/A 957 0 R -/Type /Annot -/Rect [93.6 285.807 99 297.12] -/Border [0 0 0] ->> -endobj -959 0 obj -<< -/S /URI -/URI (false) ->> -endobj -960 0 obj -<< -/Subtype /Link -/A 959 0 R -/Type /Annot -/Rect [99 285.807 104.4 297.12] -/Border [0 0 0] ->> -endobj -961 0 obj -<< -/S /URI -/URI (false) ->> -endobj -962 0 obj -<< -/Subtype /Link -/A 961 0 R -/Type /Annot -/Rect [104.4 285.807 109.8 297.12] -/Border [0 0 0] ->> -endobj -963 0 obj -<< -/S /URI -/URI (false) ->> -endobj -964 0 obj -<< -/Subtype /Link -/A 963 0 R -/Type /Annot -/Rect [109.8 285.807 115.2 297.12] -/Border [0 0 0] ->> -endobj -965 0 obj -<< -/S /URI -/URI (false) ->> -endobj -966 0 obj -<< -/Subtype /Link -/A 965 0 R -/Type /Annot -/Rect [115.2 285.807 120.6 297.12] -/Border [0 0 0] ->> -endobj -967 0 obj -<< -/S /URI -/URI (false) ->> -endobj -968 0 obj -<< -/Subtype /Link -/A 967 0 R -/Type /Annot -/Rect [120.6 285.807 147.6 297.12] -/Border [0 0 0] ->> -endobj -969 0 obj -<< -/S /URI -/URI (false) ->> -endobj -970 0 obj -<< -/Subtype /Link -/A 969 0 R -/Type /Annot -/Rect [147.6 285.807 153 297.12] -/Border [0 0 0] ->> -endobj -971 0 obj -<< -/S /URI -/URI (false) ->> -endobj -972 0 obj -<< -/Subtype /Link -/A 971 0 R -/Type /Annot -/Rect [153 285.807 180 297.12] -/Border [0 0 0] ->> -endobj -973 0 obj -<< -/S /URI -/URI (false) ->> -endobj -974 0 obj -<< -/Subtype /Link -/A 973 0 R -/Type /Annot -/Rect [180 285.807 185.4 297.12] -/Border [0 0 0] ->> -endobj -975 0 obj -<< -/S /URI -/URI (false) ->> -endobj -976 0 obj -<< -/Subtype /Link -/A 975 0 R -/Type /Annot -/Rect [185.4 285.807 190.8 297.12] -/Border [0 0 0] ->> -endobj -977 0 obj -<< -/S /URI -/URI (false) ->> -endobj -978 0 obj -<< -/Subtype /Link -/A 977 0 R -/Type /Annot -/Rect [190.8 285.807 207 297.12] -/Border [0 0 0] ->> -endobj -979 0 obj -<< -/S /URI -/URI (false) ->> -endobj -980 0 obj -<< -/Subtype /Link -/A 979 0 R -/Type /Annot -/Rect [207 285.807 212.4 297.12] -/Border [0 0 0] ->> -endobj -981 0 obj -<< -/S /URI -/URI (false) ->> -endobj -982 0 obj -<< -/Subtype /Link -/A 981 0 R -/Type /Annot -/Rect [212.4 285.807 217.8 297.12] -/Border [0 0 0] ->> -endobj -983 0 obj -<< -/S /URI -/URI (false) ->> -endobj -984 0 obj -<< -/Subtype /Link -/A 983 0 R -/Type /Annot -/Rect [217.8 285.807 223.2 297.12] -/Border [0 0 0] ->> -endobj -985 0 obj -<< -/S /URI -/URI (false) ->> -endobj -986 0 obj -<< -/Subtype /Link -/A 985 0 R -/Type /Annot -/Rect [223.2 285.807 250.2 297.12] -/Border [0 0 0] ->> -endobj -987 0 obj -<< -/S /URI -/URI (false) ->> -endobj -988 0 obj -<< -/Subtype /Link -/A 987 0 R -/Type /Annot -/Rect [250.2 285.807 255.6 297.12] -/Border [0 0 0] ->> -endobj -989 0 obj -<< -/S /URI -/URI (false) ->> -endobj -990 0 obj -<< -/Subtype /Link -/A 989 0 R -/Type /Annot -/Rect [255.6 285.807 282.6 297.12] -/Border [0 0 0] ->> -endobj -991 0 obj -<< -/S /URI -/URI (false) ->> -endobj -992 0 obj -<< -/Subtype /Link -/A 991 0 R -/Type /Annot -/Rect [282.6 285.807 288 297.12] -/Border [0 0 0] ->> -endobj -993 0 obj -<< -/S /URI -/URI (false) ->> -endobj -994 0 obj -<< -/Subtype /Link -/A 993 0 R -/Type /Annot -/Rect [288 285.807 293.4 297.12] -/Border [0 0 0] ->> -endobj -995 0 obj -<< -/S /URI -/URI (false) ->> -endobj -996 0 obj -<< -/Subtype /Link -/A 995 0 R -/Type /Annot -/Rect [293.4 285.807 298.8 297.12] -/Border [0 0 0] ->> -endobj -997 0 obj -<< -/S /URI -/URI (false) ->> -endobj -998 0 obj -<< -/Subtype /Link -/A 997 0 R -/Type /Annot -/Rect [298.8 285.807 325.8 297.12] -/Border [0 0 0] ->> -endobj -999 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1000 0 obj -<< -/Subtype /Link -/A 999 0 R -/Type /Annot -/Rect [325.8 285.807 331.2 297.12] -/Border [0 0 0] ->> -endobj -1001 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1002 0 obj -<< -/Subtype /Link -/A 1001 0 R -/Type /Annot -/Rect [331.2 285.807 358.2 297.12] -/Border [0 0 0] ->> -endobj -1003 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1004 0 obj -<< -/Subtype /Link -/A 1003 0 R -/Type /Annot -/Rect [358.2 285.807 363.6 297.12] -/Border [0 0 0] ->> -endobj -1005 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1006 0 obj -<< -/Subtype /Link -/A 1005 0 R -/Type /Annot -/Rect [363.6 285.807 369 297.12] -/Border [0 0 0] ->> -endobj -1007 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1008 0 obj -<< -/Subtype /Link -/A 1007 0 R -/Type /Annot -/Rect [369 285.807 396 297.12] -/Border [0 0 0] ->> -endobj -1009 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1010 0 obj -<< -/Subtype /Link -/A 1009 0 R -/Type /Annot -/Rect [396 285.807 401.4 297.12] -/Border [0 0 0] ->> -endobj -1011 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1012 0 obj -<< -/Subtype /Link -/A 1011 0 R -/Type /Annot -/Rect [401.4 285.807 428.4 297.12] -/Border [0 0 0] ->> -endobj -1013 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1014 0 obj -<< -/Subtype /Link -/A 1013 0 R -/Type /Annot -/Rect [428.4 285.807 433.8 297.12] -/Border [0 0 0] ->> -endobj -1015 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1016 0 obj -<< -/Subtype /Link -/A 1015 0 R -/Type /Annot -/Rect [433.8 285.807 444.6 297.12] -/Border [0 0 0] ->> -endobj -1017 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1018 0 obj -<< -/Subtype /Link -/A 1017 0 R -/Type /Annot -/Rect [444.6 285.807 450 297.12] -/Border [0 0 0] ->> -endobj -1019 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1020 0 obj -<< -/Subtype /Link -/A 1019 0 R -/Type /Annot -/Rect [450 285.807 466.2 297.12] -/Border [0 0 0] ->> -endobj -1021 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1022 0 obj -<< -/Subtype /Link -/A 1021 0 R -/Type /Annot -/Rect [466.2 285.807 471.6 297.12] -/Border [0 0 0] ->> -endobj -1023 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1024 0 obj -<< -/Subtype /Link -/A 1023 0 R -/Type /Annot -/Rect [471.6 285.807 477 297.12] -/Border [0 0 0] ->> -endobj -1025 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1026 0 obj -<< -/Subtype /Link -/A 1025 0 R -/Type /Annot -/Rect [477 285.807 482.4 297.12] -/Border [0 0 0] ->> -endobj -1027 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1028 0 obj -<< -/Subtype /Link -/A 1027 0 R -/Type /Annot -/Rect [482.4 285.807 487.8 297.12] -/Border [0 0 0] ->> -endobj -1029 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1030 0 obj -<< -/Subtype /Link -/A 1029 0 R -/Type /Annot -/Rect [487.8 285.807 493.2 297.12] -/Border [0 0 0] ->> -endobj -1031 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1032 0 obj -<< -/Subtype /Link -/A 1031 0 R -/Type /Annot -/Rect [493.2 285.807 498.6 297.12] -/Border [0 0 0] ->> -endobj -1033 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1034 0 obj -<< -/Subtype /Link -/A 1033 0 R -/Type /Annot -/Rect [498.6 285.807 514.8 297.12] -/Border [0 0 0] ->> -endobj -1035 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1036 0 obj -<< -/Subtype /Link -/A 1035 0 R -/Type /Annot -/Rect [514.8 285.807 520.2 297.12] -/Border [0 0 0] ->> -endobj -1037 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1038 0 obj -<< -/Subtype /Link -/A 1037 0 R -/Type /Annot -/Rect [520.2 285.807 525.6 297.12] -/Border [0 0 0] ->> -endobj -1039 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1040 0 obj -<< -/Subtype /Link -/A 1039 0 R -/Type /Annot -/Rect [525.6 285.807 531 297.12] -/Border [0 0 0] ->> -endobj -1041 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1042 0 obj -<< -/Subtype /Link -/A 1041 0 R -/Type /Annot -/Rect [531 285.807 536.4 297.12] -/Border [0 0 0] ->> -endobj -1043 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1044 0 obj -<< -/Subtype /Link -/A 1043 0 R -/Type /Annot -/Rect [72 274.494 77.4 285.807] -/Border [0 0 0] ->> -endobj -1045 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1046 0 obj -<< -/Subtype /Link -/A 1045 0 R -/Type /Annot -/Rect [77.4 274.494 82.8 285.807] -/Border [0 0 0] ->> -endobj -1047 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1048 0 obj -<< -/Subtype /Link -/A 1047 0 R -/Type /Annot -/Rect [82.8 274.494 88.2 285.807] -/Border [0 0 0] ->> -endobj -1049 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1050 0 obj -<< -/Subtype /Link -/A 1049 0 R -/Type /Annot -/Rect [88.2 274.494 93.6 285.807] -/Border [0 0 0] ->> -endobj -1051 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1052 0 obj -<< -/Subtype /Link -/A 1051 0 R -/Type /Annot -/Rect [93.6 274.494 99 285.807] -/Border [0 0 0] ->> -endobj -1053 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1054 0 obj -<< -/Subtype /Link -/A 1053 0 R -/Type /Annot -/Rect [72 263.181 82.8 274.494] -/Border [0 0 0] ->> -endobj -1055 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1056 0 obj -<< -/Subtype /Link -/A 1055 0 R -/Type /Annot -/Rect [82.8 263.181 99 274.494] -/Border [0 0 0] ->> -endobj -1057 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1058 0 obj -<< -/Subtype /Link -/A 1057 0 R -/Type /Annot -/Rect [99 263.181 104.4 274.494] -/Border [0 0 0] ->> -endobj -1059 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1060 0 obj -<< -/Subtype /Link -/A 1059 0 R -/Type /Annot -/Rect [104.4 263.181 169.2 274.494] -/Border [0 0 0] ->> -endobj -1061 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1062 0 obj -<< -/Subtype /Link -/A 1061 0 R -/Type /Annot -/Rect [169.2 263.181 174.6 274.494] -/Border [0 0 0] ->> -endobj -1063 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1064 0 obj -<< -/Subtype /Link -/A 1063 0 R -/Type /Annot -/Rect [174.6 263.181 180 274.494] -/Border [0 0 0] ->> -endobj -1065 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1066 0 obj -<< -/Subtype /Link -/A 1065 0 R -/Type /Annot -/Rect [180 263.181 185.4 274.494] -/Border [0 0 0] ->> -endobj -1067 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1068 0 obj -<< -/Subtype /Link -/A 1067 0 R -/Type /Annot -/Rect [185.4 263.181 190.8 274.494] -/Border [0 0 0] ->> -endobj -1069 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1070 0 obj -<< -/Subtype /Link -/A 1069 0 R -/Type /Annot -/Rect [72 251.868 82.8 263.181] -/Border [0 0 0] ->> -endobj -1071 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1072 0 obj -<< -/Subtype /Link -/A 1071 0 R -/Type /Annot -/Rect [82.8 251.868 99 263.181] -/Border [0 0 0] ->> -endobj -1073 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1074 0 obj -<< -/Subtype /Link -/A 1073 0 R -/Type /Annot -/Rect [99 251.868 104.4 263.181] -/Border [0 0 0] ->> -endobj -1075 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1076 0 obj -<< -/Subtype /Link -/A 1075 0 R -/Type /Annot -/Rect [104.4 251.868 126 263.181] -/Border [0 0 0] ->> -endobj -1077 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1078 0 obj -<< -/Subtype /Link -/A 1077 0 R -/Type /Annot -/Rect [126 251.868 131.4 263.181] -/Border [0 0 0] ->> -endobj -1079 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1080 0 obj -<< -/Subtype /Link -/A 1079 0 R -/Type /Annot -/Rect [131.4 251.868 174.6 263.181] -/Border [0 0 0] ->> -endobj -1081 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1082 0 obj -<< -/Subtype /Link -/A 1081 0 R -/Type /Annot -/Rect [174.6 251.868 180 263.181] -/Border [0 0 0] ->> -endobj -1083 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1084 0 obj -<< -/Subtype /Link -/A 1083 0 R -/Type /Annot -/Rect [180 251.868 185.4 263.181] -/Border [0 0 0] ->> -endobj -1085 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1086 0 obj -<< -/Subtype /Link -/A 1085 0 R -/Type /Annot -/Rect [185.4 251.868 190.8 263.181] -/Border [0 0 0] ->> -endobj -1087 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1088 0 obj -<< -/Subtype /Link -/A 1087 0 R -/Type /Annot -/Rect [190.8 251.868 196.2 263.181] -/Border [0 0 0] ->> -endobj -1089 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1090 0 obj -<< -/Subtype /Link -/A 1089 0 R -/Type /Annot -/Rect [196.2 251.868 201.6 263.181] -/Border [0 0 0] ->> -endobj -1091 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1092 0 obj -<< -/Subtype /Link -/A 1091 0 R -/Type /Annot -/Rect [201.6 251.868 207 263.181] -/Border [0 0 0] ->> -endobj -1093 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1094 0 obj -<< -/Subtype /Link -/A 1093 0 R -/Type /Annot -/Rect [207 251.868 212.4 263.181] -/Border [0 0 0] ->> -endobj -1095 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1096 0 obj -<< -/Subtype /Link -/A 1095 0 R -/Type /Annot -/Rect [212.4 251.868 223.2 263.181] -/Border [0 0 0] ->> -endobj -1097 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1098 0 obj -<< -/Subtype /Link -/A 1097 0 R -/Type /Annot -/Rect [223.2 251.868 228.6 263.181] -/Border [0 0 0] ->> -endobj -1099 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1100 0 obj -<< -/Subtype /Link -/A 1099 0 R -/Type /Annot -/Rect [228.6 251.868 234 263.181] -/Border [0 0 0] ->> -endobj -1101 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1102 0 obj -<< -/Subtype /Link -/A 1101 0 R -/Type /Annot -/Rect [234 251.868 239.4 263.181] -/Border [0 0 0] ->> -endobj -1103 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1104 0 obj -<< -/Subtype /Link -/A 1103 0 R -/Type /Annot -/Rect [239.4 251.868 266.4 263.181] -/Border [0 0 0] ->> -endobj -1105 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1106 0 obj -<< -/Subtype /Link -/A 1105 0 R -/Type /Annot -/Rect [266.4 251.868 271.8 263.181] -/Border [0 0 0] ->> -endobj -1107 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1108 0 obj -<< -/Subtype /Link -/A 1107 0 R -/Type /Annot -/Rect [271.8 251.868 298.8 263.181] -/Border [0 0 0] ->> -endobj -1109 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1110 0 obj -<< -/Subtype /Link -/A 1109 0 R -/Type /Annot -/Rect [298.8 251.868 304.2 263.181] -/Border [0 0 0] ->> -endobj -1111 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1112 0 obj -<< -/Subtype /Link -/A 1111 0 R -/Type /Annot -/Rect [304.2 251.868 320.4 263.181] -/Border [0 0 0] ->> -endobj -1113 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1114 0 obj -<< -/Subtype /Link -/A 1113 0 R -/Type /Annot -/Rect [72 240.555 77.4 251.868] -/Border [0 0 0] ->> -endobj -1115 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1116 0 obj -<< -/Subtype /Link -/A 1115 0 R -/Type /Annot -/Rect [72 217.929 325.8 229.242] -/Border [0 0 0] ->> -endobj -1117 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1118 0 obj -<< -/Subtype /Link -/A 1117 0 R -/Type /Annot -/Rect [72 206.616 163.8 217.929] -/Border [0 0 0] ->> -endobj -1119 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1120 0 obj -<< -/Subtype /Link -/A 1119 0 R -/Type /Annot -/Rect [72 183.99 352.8 195.303] -/Border [0 0 0] ->> -endobj -1121 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1122 0 obj -<< -/Subtype /Link -/A 1121 0 R -/Type /Annot -/Rect [72 172.677 331.2 183.99] -/Border [0 0 0] ->> -endobj -1123 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1124 0 obj -<< -/Subtype /Link -/A 1123 0 R -/Type /Annot -/Rect [72 161.364 126 172.677] -/Border [0 0 0] ->> -endobj -775 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 773 0 R -/Resources 774 0 R -/Annots [778 0 R 780 0 R 782 0 R 784 0 R 786 0 R 788 0 R 790 0 R 792 0 R 794 0 R 796 0 R 798 0 R 800 0 R 802 0 R 804 0 R 806 0 R 808 0 R 810 0 R 812 0 R 814 0 R 816 0 R 818 0 R 820 0 R 822 0 R 824 0 R 826 0 R 828 0 R 830 0 R 832 0 R 834 0 R 836 0 R 838 0 R 840 0 R 842 0 R 844 0 R 846 0 R 848 0 R 850 0 R 852 0 R 854 0 R 856 0 R 858 0 R 860 0 R 862 0 R 864 0 R 866 0 R 868 0 R 870 0 R 872 0 R 874 0 R 876 0 R 878 0 R 880 0 R 882 0 R 884 0 R 886 0 R 888 0 R 890 0 R 892 0 R 894 0 R 896 0 R 898 0 R 900 0 R 902 0 R 904 0 R 906 0 R 908 0 R 910 0 R 912 0 R 914 0 R 916 0 R 918 0 R 920 0 R 922 0 R 924 0 R 926 0 R 928 0 R 930 0 R 932 0 R 934 0 R 936 0 R 938 0 R 940 0 R 942 0 R 944 0 R 946 0 R 948 0 R 950 0 R 952 0 R 954 0 R 956 0 R 958 0 R 960 0 R 962 0 R 964 0 R 966 0 R 968 0 R 970 0 R 972 0 R 974 0 R 976 0 R 978 0 R 980 0 R 982 0 R 984 0 R 986 0 R 988 0 R 990 0 R 992 0 R 994 0 R 996 0 R 998 0 R 1000 0 R 1002 0 R 1004 0 R 1006 0 R 1008 0 R 1010 0 R 1012 0 R 1014 0 R 1016 0 R 1018 0 R 1020 0 R 1022 0 R 1024 0 R 1026 0 R 1028 0 R 1030 0 R 1032 0 R 1034 0 R 1036 0 R 1038 0 R 1040 0 R 1042 0 R 1044 0 R 1046 0 R 1048 0 R 1050 0 R 1052 0 R 1054 0 R 1056 0 R 1058 0 R 1060 0 R 1062 0 R 1064 0 R 1066 0 R 1068 0 R 1070 0 R 1072 0 R 1074 0 R 1076 0 R 1078 0 R 1080 0 R 1082 0 R 1084 0 R 1086 0 R 1088 0 R 1090 0 R 1092 0 R 1094 0 R 1096 0 R 1098 0 R 1100 0 R 1102 0 R 1104 0 R 1106 0 R 1108 0 R 1110 0 R 1112 0 R 1114 0 R 1116 0 R 1118 0 R 1120 0 R 1122 0 R 1124 0 R] ->> -endobj -774 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -773 0 obj -<< -/Length 2976 -/Filter /FlateDecode ->> -stream -x]ˎWŗ\"  " CR,$h[ԙglqY;qz?z:&7jtPp/'}!z:/%tKlW8~83ݿg錄T͐~?Xg; n -Ry7pIt J -C9"Hȣ<0'xxe<ۛ_6t,0t+3mr/`xДU-j*i ڔ%.b. H֓u^HhAue/J%)=~A/@;3'I` &ւv"FI2{6g4fdٷPR3D:>F)SGIhY&HOZm/DCZ}Xs|Q0[|[k˚/58s)GdԢ?93NKzC =/SثROW<:I*kX2ۼM` -G>@)SkB+K :f|Y-J&)f %(imOnKbv=RZĚ.b;I#ȄJ@|j -k@g -)Y3;rȳ&fYJ.1M }$ ג%&@$QM骥s &2J 6ABMveçmI`ir[*w*o tϥs2*1bI_2 Z*hYJ擤~LכA9*kSs%δւk"g,EP^Y3L`m'Ya_I0aO<&,ak:#`<1؄2>B|X? -ug$= -?rVrBTUMr!.X&T(F(FLP:"E-¤9yN\e`<yM. H3yMlSګWS M%1ʧ 2e7 ,nTVyd2`ˁ. A,\7졐)F@I\:ķ4FJ5Pmz0?W2 x E\U'ϊ7m 5ϮD>ɲ : -q)q7Y90z zv=eB`f -]J1Jц823 ,y;4;[^UtoJ ]&(s­c/4-G@fRNr0nf-lBɚvVBpfr2ꈾepEL%?U'pxYDڲ! )zmwR'# K(HBA f%p!,j3L_Iʥj6b!r")5 ڡ0!p8Ae)w[yu$gqTΊ<"ZLքg|e="E(z7gS`jr6d-\ejYLDZe+˗f;pD;l0nDCV+UaǺnJĭ'-W)[V5Vv2ʠgܻԵL@>lFGfD#w, lhguq 4y!Fy!Ʒej]F/8hW~6~s'#|,>蒞1g)j\Šrq+vөaNǷa6;`6.ƀٛ8\ -νuEX%P,_W},y<-_:?p)\R@c.4؎g1.{>qo3^!+Vnq\_:7 -p mp@A_ f{8XPMO4W\ZnsiJY|:Q>ǫĉUaxq4P[h {_,Nwͩ&?1봂|w -7d=}~wAc7ժ Wx$}dY5p%{)j,#p.܃Zj+lx]@Z0Z ?%nӵ4 ߙN j20q21C7T.'UBQ/{>WBa/\ϡ -endstream -endobj -1129 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1130 0 obj -<< -/Subtype /Link -/A 1129 0 R -/Type /Annot -/Rect [72 695.502 279.954 720] -/Border [0 0 0] ->> -endobj -1131 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1132 0 obj -<< -/Subtype /Link -/A 1131 0 R -/Type /Annot -/Rect [72 673.002 534.363281 685.502] -/Border [0 0 0] ->> -endobj -1133 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1134 0 obj -<< -/Subtype /Link -/A 1133 0 R -/Type /Annot -/Rect [72 660.502 402.058594 673.002] -/Border [0 0 0] ->> -endobj -1135 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1136 0 obj -<< -/Subtype /Link -/A 1135 0 R -/Type /Annot -/Rect [402.058594 660.432 450.058594 673.002] -/Border [0 0 0] ->> -endobj -1137 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1138 0 obj -<< -/Subtype /Link -/A 1137 0 R -/Type /Annot -/Rect [450.058594 660.502 516.181641 673.002] -/Border [0 0 0] ->> -endobj -1139 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1140 0 obj -<< -/Subtype /Link -/A 1139 0 R -/Type /Annot -/Rect [72 648.002 361.233398 660.502] -/Border [0 0 0] ->> -endobj -1141 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1142 0 obj -<< -/Subtype /Link -/A 1141 0 R -/Type /Annot -/Rect [72 625.502 533.992188 638.002] -/Border [0 0 0] ->> -endobj -1143 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1144 0 obj -<< -/Subtype /Link -/A 1143 0 R -/Type /Annot -/Rect [72 613.002 375.681641 625.502] -/Border [0 0 0] ->> -endobj -1145 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1146 0 obj -<< -/Subtype /Link -/A 1145 0 R -/Type /Annot -/Rect [72 590.432 102 603.002] -/Border [0 0 0] ->> -endobj -1147 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1148 0 obj -<< -/Subtype /Link -/A 1147 0 R -/Type /Annot -/Rect [102 590.502 237.883789 603.002] -/Border [0 0 0] ->> -endobj -1149 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1150 0 obj -<< -/Subtype /Link -/A 1149 0 R -/Type /Annot -/Rect [72 571.932 108 584.502] -/Border [0 0 0] ->> -endobj -1151 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1152 0 obj -<< -/Subtype /Link -/A 1151 0 R -/Type /Annot -/Rect [108 572.002 234.376953 584.502] -/Border [0 0 0] ->> -endobj -1153 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1154 0 obj -<< -/Subtype /Link -/A 1153 0 R -/Type /Annot -/Rect [72 553.432 114 566.002] -/Border [0 0 0] ->> -endobj -1155 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1156 0 obj -<< -/Subtype /Link -/A 1155 0 R -/Type /Annot -/Rect [114 553.502 264.805664 566.002] -/Border [0 0 0] ->> -endobj -1157 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1158 0 obj -<< -/Subtype /Link -/A 1157 0 R -/Type /Annot -/Rect [72 534.932 120 547.502] -/Border [0 0 0] ->> -endobj -1159 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1160 0 obj -<< -/Subtype /Link -/A 1159 0 R -/Type /Annot -/Rect [120 535.002 330.419922 547.502] -/Border [0 0 0] ->> -endobj -1161 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1162 0 obj -<< -/Subtype /Link -/A 1161 0 R -/Type /Annot -/Rect [72 516.432 144 529.002] -/Border [0 0 0] ->> -endobj -1163 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1164 0 obj -<< -/Subtype /Link -/A 1163 0 R -/Type /Annot -/Rect [144 516.502 491.753906 529.002] -/Border [0 0 0] ->> -endobj -1165 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1166 0 obj -<< -/Subtype /Link -/A 1165 0 R -/Type /Annot -/Rect [72 497.932 114 510.502] -/Border [0 0 0] ->> -endobj -1167 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1168 0 obj -<< -/Subtype /Link -/A 1167 0 R -/Type /Annot -/Rect [114 498.002 327.881836 510.502] -/Border [0 0 0] ->> -endobj -1127 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1125 0 R -/Resources 1126 0 R -/Annots [1130 0 R 1132 0 R 1134 0 R 1136 0 R 1138 0 R 1140 0 R 1142 0 R 1144 0 R 1146 0 R 1148 0 R 1150 0 R 1152 0 R 1154 0 R 1156 0 R 1158 0 R 1160 0 R 1162 0 R 1164 0 R 1166 0 R 1168 0 R] ->> -endobj -1126 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R ->> ->> -endobj -1125 0 obj -<< -/Length 817 -/Filter /FlateDecode ->> -stream -xWɎ0 +uIYmà [܊/@-P f2rtXP{_k5޾TA|4~WlQZuZFast~h?~^iX >}Awu\}8T_^k]M4 -=яɏ9yd=zO?bCoFKa0vmQ^qGEohL!:PO߬FFYOwAޑލd\'uҧ;Zgg;xβaN,G>#; vE7CyL^D#Z#a;BL^F}G&E`I L>qB_K$]lo"(ݝD[jځ)"VXVcN, 6GbIXb}/,n e˨I\2rvw0my#ymU$EO~,֪Uo̙wȱ>G<,ej1ќ~)"nrٓbe5,AQf9YC0 ~>FW6Сu5e>,.'3ӱ -endstream -endobj -1173 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1174 0 obj -<< -/Subtype /Link -/A 1173 0 R -/Type /Annot -/Rect [72 695.502 319.086 720] -/Border [0 0 0] ->> -endobj -1175 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1176 0 obj -<< -/Subtype /Link -/A 1175 0 R -/Type /Annot -/Rect [72 673.002 535.925781 685.502] -/Border [0 0 0] ->> -endobj -1177 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1178 0 obj -<< -/Subtype /Link -/A 1177 0 R -/Type /Annot -/Rect [72 660.502 505.691406 673.002] -/Border [0 0 0] ->> -endobj -1179 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1180 0 obj -<< -/Subtype /Link -/A 1179 0 R -/Type /Annot -/Rect [72 648.002 514.001953 660.502] -/Border [0 0 0] ->> -endobj -1181 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1182 0 obj -<< -/Subtype /Link -/A 1181 0 R -/Type /Annot -/Rect [72 635.502 458.625977 648.002] -/Border [0 0 0] ->> -endobj -1183 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1184 0 obj -<< -/Subtype /Link -/A 1183 0 R -/Type /Annot -/Rect [72 613.002 397.751953 625.502] -/Border [0 0 0] ->> -endobj -1185 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1186 0 obj -<< -/Subtype /Link -/A 1185 0 R -/Type /Annot -/Rect [397.751953 612.932 463.751953 625.502] -/Border [0 0 0] ->> -endobj -1187 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1188 0 obj -<< -/Subtype /Link -/A 1187 0 R -/Type /Annot -/Rect [463.751953 613.002 479.010742 625.502] -/Border [0 0 0] ->> -endobj -1189 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1190 0 obj -<< -/Subtype /Link -/A 1189 0 R -/Type /Annot -/Rect [479.010742 612.932 521.010742 625.502] -/Border [0 0 0] ->> -endobj -1191 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1192 0 obj -<< -/Subtype /Link -/A 1191 0 R -/Type /Annot -/Rect [72 600.502 520.383789 613.002] -/Border [0 0 0] ->> -endobj -1193 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1194 0 obj -<< -/Subtype /Link -/A 1193 0 R -/Type /Annot -/Rect [72 588.002 410.901367 600.502] -/Border [0 0 0] ->> -endobj -1195 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1196 0 obj -<< -/Subtype /Link -/A 1195 0 R -/Type /Annot -/Rect [72 565.432 144 578.002] -/Border [0 0 0] ->> -endobj -1197 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1198 0 obj -<< -/Subtype /Link -/A 1197 0 R -/Type /Annot -/Rect [144 565.502 315.323242 578.002] -/Border [0 0 0] ->> -endobj -1199 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1200 0 obj -<< -/Subtype /Link -/A 1199 0 R -/Type /Annot -/Rect [72 537.002 491.057617 549.502] -/Border [0 0 0] ->> -endobj -1201 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1202 0 obj -<< -/Subtype /Link -/A 1201 0 R -/Type /Annot -/Rect [72 524.502 205.691406 537.002] -/Border [0 0 0] ->> -endobj -1203 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1204 0 obj -<< -/Subtype /Link -/A 1203 0 R -/Type /Annot -/Rect [205.691406 524.432 241.691406 537.002] -/Border [0 0 0] ->> -endobj -1205 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1206 0 obj -<< -/Subtype /Link -/A 1205 0 R -/Type /Annot -/Rect [241.691406 524.502 350.714844 537.002] -/Border [0 0 0] ->> -endobj -1207 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1208 0 obj -<< -/Subtype /Link -/A 1207 0 R -/Type /Annot -/Rect [350.714844 524.432 416.714844 537.002] -/Border [0 0 0] ->> -endobj -1209 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1210 0 obj -<< -/Subtype /Link -/A 1209 0 R -/Type /Annot -/Rect [416.714844 524.502 494.063477 537.002] -/Border [0 0 0] ->> -endobj -1211 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1212 0 obj -<< -/Subtype /Link -/A 1211 0 R -/Type /Annot -/Rect [72 512.002 439.324219 524.502] -/Border [0 0 0] ->> -endobj -1213 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1214 0 obj -<< -/Subtype /Link -/A 1213 0 R -/Type /Annot -/Rect [72 489.432 150 502.002] -/Border [0 0 0] ->> -endobj -1215 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1216 0 obj -<< -/Subtype /Link -/A 1215 0 R -/Type /Annot -/Rect [150 489.502 330.986328 502.002] -/Border [0 0 0] ->> -endobj -1217 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1218 0 obj -<< -/Subtype /Link -/A 1217 0 R -/Type /Annot -/Rect [72 470.932 138 483.502] -/Border [0 0 0] ->> -endobj -1219 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1220 0 obj -<< -/Subtype /Link -/A 1219 0 R -/Type /Annot -/Rect [138 471.002 358.27832 483.502] -/Border [0 0 0] ->> -endobj -1221 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1222 0 obj -<< -/Subtype /Link -/A 1221 0 R -/Type /Annot -/Rect [72 442.502 238.513672 455.002] -/Border [0 0 0] ->> -endobj -1223 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1224 0 obj -<< -/Subtype /Link -/A 1223 0 R -/Type /Annot -/Rect [238.513672 442.432 304.513672 455.002] -/Border [0 0 0] ->> -endobj -1225 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1226 0 obj -<< -/Subtype /Link -/A 1225 0 R -/Type /Annot -/Rect [304.513672 442.502 340.773438 455.002] -/Border [0 0 0] ->> -endobj -1227 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1228 0 obj -<< -/Subtype /Link -/A 1227 0 R -/Type /Annot -/Rect [72 419.932 120 432.502] -/Border [0 0 0] ->> -endobj -1229 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1230 0 obj -<< -/Subtype /Link -/A 1229 0 R -/Type /Annot -/Rect [120 420.002 313.725586 432.502] -/Border [0 0 0] ->> -endobj -1231 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1232 0 obj -<< -/Subtype /Link -/A 1231 0 R -/Type /Annot -/Rect [313.725586 419.932 403.725586 432.502] -/Border [0 0 0] ->> -endobj -1233 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1234 0 obj -<< -/Subtype /Link -/A 1233 0 R -/Type /Annot -/Rect [403.725586 420.002 496.582031 432.502] -/Border [0 0 0] ->> -endobj -1235 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1236 0 obj -<< -/Subtype /Link -/A 1235 0 R -/Type /Annot -/Rect [72 407.502 132.327148 420.002] -/Border [0 0 0] ->> -endobj -1237 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1238 0 obj -<< -/Subtype /Link -/A 1237 0 R -/Type /Annot -/Rect [132.327148 407.432 228.327148 420.002] -/Border [0 0 0] ->> -endobj -1239 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1240 0 obj -<< -/Subtype /Link -/A 1239 0 R -/Type /Annot -/Rect [228.327148 407.502 418.800781 420.002] -/Border [0 0 0] ->> -endobj -1241 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1242 0 obj -<< -/Subtype /Link -/A 1241 0 R -/Type /Annot -/Rect [72 388.932 126 401.502] -/Border [0 0 0] ->> -endobj -1243 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1244 0 obj -<< -/Subtype /Link -/A 1243 0 R -/Type /Annot -/Rect [126 389.002 367.928711 401.502] -/Border [0 0 0] ->> -endobj -1245 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1246 0 obj -<< -/Subtype /Link -/A 1245 0 R -/Type /Annot -/Rect [367.928711 388.932 391.928711 401.502] -/Border [0 0 0] ->> -endobj -1247 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1248 0 obj -<< -/Subtype /Link -/A 1247 0 R -/Type /Annot -/Rect [391.928711 389.002 490.419922 401.502] -/Border [0 0 0] ->> -endobj -1249 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1250 0 obj -<< -/Subtype /Link -/A 1249 0 R -/Type /Annot -/Rect [72 376.502 163.650391 389.002] -/Border [0 0 0] ->> -endobj -1251 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1252 0 obj -<< -/Subtype /Link -/A 1251 0 R -/Type /Annot -/Rect [72 357.932 114 370.502] -/Border [0 0 0] ->> -endobj -1253 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1254 0 obj -<< -/Subtype /Link -/A 1253 0 R -/Type /Annot -/Rect [114 358.002 386.324219 370.502] -/Border [0 0 0] ->> -endobj -1255 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1256 0 obj -<< -/Subtype /Link -/A 1255 0 R -/Type /Annot -/Rect [386.324219 357.932 410.324219 370.502] -/Border [0 0 0] ->> -endobj -1257 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1258 0 obj -<< -/Subtype /Link -/A 1257 0 R -/Type /Annot -/Rect [410.324219 358.002 494.103516 370.502] -/Border [0 0 0] ->> -endobj -1259 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1260 0 obj -<< -/Subtype /Link -/A 1259 0 R -/Type /Annot -/Rect [72 339.432 132 352.002] -/Border [0 0 0] ->> -endobj -1261 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1262 0 obj -<< -/Subtype /Link -/A 1261 0 R -/Type /Annot -/Rect [132 339.502 403.064453 352.002] -/Border [0 0 0] ->> -endobj -1263 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1264 0 obj -<< -/Subtype /Link -/A 1263 0 R -/Type /Annot -/Rect [403.064453 339.432 427.064453 352.002] -/Border [0 0 0] ->> -endobj -1265 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1266 0 obj -<< -/Subtype /Link -/A 1265 0 R -/Type /Annot -/Rect [427.064453 339.502 529.447266 352.002] -/Border [0 0 0] ->> -endobj -1267 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1268 0 obj -<< -/Subtype /Link -/A 1267 0 R -/Type /Annot -/Rect [72 327.002 150.686523 339.502] -/Border [0 0 0] ->> -endobj -1269 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1270 0 obj -<< -/Subtype /Link -/A 1269 0 R -/Type /Annot -/Rect [72 308.432 144 321.002] -/Border [0 0 0] ->> -endobj -1271 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1272 0 obj -<< -/Subtype /Link -/A 1271 0 R -/Type /Annot -/Rect [144 308.502 414.776367 321.002] -/Border [0 0 0] ->> -endobj -1273 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1274 0 obj -<< -/Subtype /Link -/A 1273 0 R -/Type /Annot -/Rect [414.776367 308.432 438.776367 321.002] -/Border [0 0 0] ->> -endobj -1275 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1276 0 obj -<< -/Subtype /Link -/A 1275 0 R -/Type /Annot -/Rect [438.776367 308.502 528.859375 321.002] -/Border [0 0 0] ->> -endobj -1277 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1278 0 obj -<< -/Subtype /Link -/A 1277 0 R -/Type /Annot -/Rect [72 296.002 187.878906 308.502] -/Border [0 0 0] ->> -endobj -1279 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1280 0 obj -<< -/Subtype /Link -/A 1279 0 R -/Type /Annot -/Rect [72 277.432 192 290.002] -/Border [0 0 0] ->> -endobj -1281 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1282 0 obj -<< -/Subtype /Link -/A 1281 0 R -/Type /Annot -/Rect [192 277.502 486.594727 290.002] -/Border [0 0 0] ->> -endobj -1283 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1284 0 obj -<< -/Subtype /Link -/A 1283 0 R -/Type /Annot -/Rect [486.594727 277.432 510.594727 290.002] -/Border [0 0 0] ->> -endobj -1285 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1286 0 obj -<< -/Subtype /Link -/A 1285 0 R -/Type /Annot -/Rect [510.594727 277.502 525.921875 290.002] -/Border [0 0 0] ->> -endobj -1287 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1288 0 obj -<< -/Subtype /Link -/A 1287 0 R -/Type /Annot -/Rect [72 265.002 221.194336 277.502] -/Border [0 0 0] ->> -endobj -1289 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1290 0 obj -<< -/Subtype /Link -/A 1289 0 R -/Type /Annot -/Rect [72 246.432 168 259.002] -/Border [0 0 0] ->> -endobj -1291 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1292 0 obj -<< -/Subtype /Link -/A 1291 0 R -/Type /Annot -/Rect [168 246.502 430.392578 259.002] -/Border [0 0 0] ->> -endobj -1293 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1294 0 obj -<< -/Subtype /Link -/A 1293 0 R -/Type /Annot -/Rect [430.392578 246.432 454.392578 259.002] -/Border [0 0 0] ->> -endobj -1295 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1296 0 obj -<< -/Subtype /Link -/A 1295 0 R -/Type /Annot -/Rect [454.392578 246.502 498.953125 259.002] -/Border [0 0 0] ->> -endobj -1297 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1298 0 obj -<< -/Subtype /Link -/A 1297 0 R -/Type /Annot -/Rect [72 234.002 171.614258 246.502] -/Border [0 0 0] ->> -endobj -1299 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1300 0 obj -<< -/Subtype /Link -/A 1299 0 R -/Type /Annot -/Rect [72 205.502 524.62207 218.002] -/Border [0 0 0] ->> -endobj -1301 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1302 0 obj -<< -/Subtype /Link -/A 1301 0 R -/Type /Annot -/Rect [72 193.002 257.756836 205.502] -/Border [0 0 0] ->> -endobj -1303 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1304 0 obj -<< -/Subtype /Link -/A 1303 0 R -/Type /Annot -/Rect [72 170.502 524.441406 183.002] -/Border [0 0 0] ->> -endobj -1305 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1306 0 obj -<< -/Subtype /Link -/A 1305 0 R -/Type /Annot -/Rect [72 158.002 259.133789 170.502] -/Border [0 0 0] ->> -endobj -1307 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1308 0 obj -<< -/Subtype /Link -/A 1307 0 R -/Type /Annot -/Rect [72 139.502 517.507813 152.002] -/Border [0 0 0] ->> -endobj -1309 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1310 0 obj -<< -/Subtype /Link -/A 1309 0 R -/Type /Annot -/Rect [72 127.002 508.787109 139.502] -/Border [0 0 0] ->> -endobj -1311 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1312 0 obj -<< -/Subtype /Link -/A 1311 0 R -/Type /Annot -/Rect [72 114.502 433.542969 127.002] -/Border [0 0 0] ->> -endobj -1313 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1314 0 obj -<< -/Subtype /Link -/A 1313 0 R -/Type /Annot -/Rect [72 96.002 533.357422 108.502] -/Border [0 0 0] ->> -endobj -1315 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1316 0 obj -<< -/Subtype /Link -/A 1315 0 R -/Type /Annot -/Rect [72 83.502 505.15918 96.002] -/Border [0 0 0] ->> -endobj -1171 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1169 0 R -/Resources 1170 0 R -/Annots [1174 0 R 1176 0 R 1178 0 R 1180 0 R 1182 0 R 1184 0 R 1186 0 R 1188 0 R 1190 0 R 1192 0 R 1194 0 R 1196 0 R 1198 0 R 1200 0 R 1202 0 R 1204 0 R 1206 0 R 1208 0 R 1210 0 R 1212 0 R 1214 0 R 1216 0 R 1218 0 R 1220 0 R 1222 0 R 1224 0 R 1226 0 R 1228 0 R 1230 0 R 1232 0 R 1234 0 R 1236 0 R 1238 0 R 1240 0 R 1242 0 R 1244 0 R 1246 0 R 1248 0 R 1250 0 R 1252 0 R 1254 0 R 1256 0 R 1258 0 R 1260 0 R 1262 0 R 1264 0 R 1266 0 R 1268 0 R 1270 0 R 1272 0 R 1274 0 R 1276 0 R 1278 0 R 1280 0 R 1282 0 R 1284 0 R 1286 0 R 1288 0 R 1290 0 R 1292 0 R 1294 0 R 1296 0 R 1298 0 R 1300 0 R 1302 0 R 1304 0 R 1306 0 R 1308 0 R 1310 0 R 1312 0 R 1314 0 R 1316 0 R] ->> -endobj -1170 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R ->> ->> -endobj -1169 0 obj -<< -/Length 2082 -/Filter /FlateDecode ->> -stream -x[Ɏ6+QS> %[ CCRUTeR4 zlk}s?;oqӧ/>ս^",{u:>to1/g{Ǵd1^'ݟr=ߏm/sY _6ָEzϧ^Og]at&{|/p߰ -4ï." |y--rY_G2,Y`5#{iDr1hYFFԳ *"hFc^ 4:j kj@SG,6joKBmy q~У:D9KQj@RF-'Z+ uҤ+Hw]O(ШTSab:bIrrV\Ḕ/R4ZZӸ]9@Z"^&;Sj{c24~a~ ir.rekBՎ3UbG^ndzLǜZ\M}s.Vk`7A5$Fb 5CSڸޮܕCOG8Fl6P_=nTimzDMd^24]G(A nR,\f>D׸P RbU8i/Ybc;˹rCGǤmLe{{ڈBcfQ9@Aq&kքE Cf.\Z`GZ`.SLh u)d|kRi[{bUpm}B#9io1e=puM}LhqEviir) ][C0/(XB yt8LY!=hoR[%u5<ʣ/kXNܕ~Ń ?\oŹv(a*2ҙ^a<-K2zvcW[ȡ\v;+J(GUyh]J5pqPp\;49"~Iaz0y#g8BYL5)pN"W`Ս-+lX6Mn moMaۢB |)hv0p3_ArB( <9LY' $[Z=X nQ2|~|`B0MIE;6*H}*Þc&Fؙr-~ -Ze,ÿrs{5yA [q" 8Bm0.+(6O@튠[+VBr}7ˉcGNgMP3q.:7̸fK\XJn9Ef^VU -zgg($pcqpmյ-9<~,r[k\ec\ScN.1ÿ)8yV*bTt~  dJth 2NKr(Zry$#?c0ϔlo*J]bjms=9mwG]k3;K,|+}7wprSEVwxnlROENNYddIuhQ v[M=Vd0:ҳCprsDeZKûDRԒgp eV$;\SmDwMcA%nirjGn0uoi, cbb -endstream -endobj -1320 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1321 0 obj -<< -/Subtype /Link -/A 1320 0 R -/Type /Annot -/Rect [72 707.5 287.795898 720] -/Border [0 0 0] ->> -endobj -1322 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1323 0 obj -<< -/Subtype /Link -/A 1322 0 R -/Type /Annot -/Rect [72 679 534.207031 691.5] -/Border [0 0 0] ->> -endobj -1324 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1325 0 obj -<< -/Subtype /Link -/A 1324 0 R -/Type /Annot -/Rect [72 666.5 533.723633 679] -/Border [0 0 0] ->> -endobj -1326 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1327 0 obj -<< -/Subtype /Link -/A 1326 0 R -/Type /Annot -/Rect [72 654 174.670898 666.5] -/Border [0 0 0] ->> -endobj -1328 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1329 0 obj -<< -/Subtype /Link -/A 1328 0 R -/Type /Annot -/Rect [72 631.5 508.21582 644] -/Border [0 0 0] ->> -endobj -1330 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1331 0 obj -<< -/Subtype /Link -/A 1330 0 R -/Type /Annot -/Rect [72 619 380.564453 631.5] -/Border [0 0 0] ->> -endobj -1332 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1333 0 obj -<< -/Subtype /Link -/A 1332 0 R -/Type /Annot -/Rect [72 596.43 132 609] -/Border [0 0 0] ->> -endobj -1334 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1335 0 obj -<< -/Subtype /Link -/A 1334 0 R -/Type /Annot -/Rect [132 596.5 345.725586 609] -/Border [0 0 0] ->> -endobj -1336 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1337 0 obj -<< -/Subtype /Link -/A 1336 0 R -/Type /Annot -/Rect [72 568 206.580078 580.5] -/Border [0 0 0] ->> -endobj -1338 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1339 0 obj -<< -/Subtype /Link -/A 1338 0 R -/Type /Annot -/Rect [72 545.43 90 558] -/Border [0 0 0] ->> -endobj -1340 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1341 0 obj -<< -/Subtype /Link -/A 1340 0 R -/Type /Annot -/Rect [90 545.5 320.263672 558] -/Border [0 0 0] ->> -endobj -1342 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1343 0 obj -<< -/Subtype /Link -/A 1342 0 R -/Type /Annot -/Rect [72 526.93 90 539.5] -/Border [0 0 0] ->> -endobj -1344 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1345 0 obj -<< -/Subtype /Link -/A 1344 0 R -/Type /Annot -/Rect [90 527 279.233398 539.5] -/Border [0 0 0] ->> -endobj -1346 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1347 0 obj -<< -/Subtype /Link -/A 1346 0 R -/Type /Annot -/Rect [72 508.43 90 521] -/Border [0 0 0] ->> -endobj -1348 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1349 0 obj -<< -/Subtype /Link -/A 1348 0 R -/Type /Annot -/Rect [90 508.5 278.383789 521] -/Border [0 0 0] ->> -endobj -1350 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1351 0 obj -<< -/Subtype /Link -/A 1350 0 R -/Type /Annot -/Rect [72 489.93 90 502.5] -/Border [0 0 0] ->> -endobj -1352 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1353 0 obj -<< -/Subtype /Link -/A 1352 0 R -/Type /Annot -/Rect [90 490 279.023438 502.5] -/Border [0 0 0] ->> -endobj -1354 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1355 0 obj -<< -/Subtype /Link -/A 1354 0 R -/Type /Annot -/Rect [72 471.43 90 484] -/Border [0 0 0] ->> -endobj -1356 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1357 0 obj -<< -/Subtype /Link -/A 1356 0 R -/Type /Annot -/Rect [90 471.5 278.950195 484] -/Border [0 0 0] ->> -endobj -1358 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1359 0 obj -<< -/Subtype /Link -/A 1358 0 R -/Type /Annot -/Rect [72 452.93 114 465.5] -/Border [0 0 0] ->> -endobj -1360 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1361 0 obj -<< -/Subtype /Link -/A 1360 0 R -/Type /Annot -/Rect [114 453 390.567383 465.5] -/Border [0 0 0] ->> -endobj -1362 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1363 0 obj -<< -/Subtype /Link -/A 1362 0 R -/Type /Annot -/Rect [72 424.5 538.835938 437] -/Border [0 0 0] ->> -endobj -1364 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1365 0 obj -<< -/Subtype /Link -/A 1364 0 R -/Type /Annot -/Rect [72 412 497.712891 424.5] -/Border [0 0 0] ->> -endobj -1366 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1367 0 obj -<< -/Subtype /Link -/A 1366 0 R -/Type /Annot -/Rect [72 399.5 186.882813 412] -/Border [0 0 0] ->> -endobj -1368 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1369 0 obj -<< -/Subtype /Link -/A 1368 0 R -/Type /Annot -/Rect [72 365.002 187.866 389.5] -/Border [0 0 0] ->> -endobj -1370 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1371 0 obj -<< -/Subtype /Link -/A 1370 0 R -/Type /Annot -/Rect [72 342.502 183.020508 355.002] -/Border [0 0 0] ->> -endobj -1372 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1373 0 obj -<< -/Subtype /Link -/A 1372 0 R -/Type /Annot -/Rect [183.020508 342.432 249.020508 355.002] -/Border [0 0 0] ->> -endobj -1374 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1375 0 obj -<< -/Subtype /Link -/A 1374 0 R -/Type /Annot -/Rect [249.020508 342.502 523.981445 355.002] -/Border [0 0 0] ->> -endobj -1376 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1377 0 obj -<< -/Subtype /Link -/A 1376 0 R -/Type /Annot -/Rect [72 330.002 538.625977 342.502] -/Border [0 0 0] ->> -endobj -1378 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1379 0 obj -<< -/Subtype /Link -/A 1378 0 R -/Type /Annot -/Rect [72 317.502 93.430664 330.002] -/Border [0 0 0] ->> -endobj -1380 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1381 0 obj -<< -/Subtype /Link -/A 1380 0 R -/Type /Annot -/Rect [72 295.002 486.423828 307.502] -/Border [0 0 0] ->> -endobj -1319 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1317 0 R -/Resources 1318 0 R -/Annots [1321 0 R 1323 0 R 1325 0 R 1327 0 R 1329 0 R 1331 0 R 1333 0 R 1335 0 R 1337 0 R 1339 0 R 1341 0 R 1343 0 R 1345 0 R 1347 0 R 1349 0 R 1351 0 R 1353 0 R 1355 0 R 1357 0 R 1359 0 R 1361 0 R 1363 0 R 1365 0 R 1367 0 R 1369 0 R 1371 0 R 1373 0 R 1375 0 R 1377 0 R 1379 0 R 1381 0 R] ->> -endobj -1318 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F3 9 0 R -/F6 44 0 R -/F4 16 0 R ->> ->> -endobj -1317 0 obj -<< -/Length 1242 -/Filter /FlateDecode ->> -stream -xYɎ6 WR2a-A݂9dH2).S]QwOmY"{$ -}ῶæ?|j'? =ŦuvhKg݀j.TJ2¥- Kxvՠ!t -jϝԎHm~ ]K]_gsy^N -D0ĦcJN(1^ĭ9Vq}d=V'M :S$ #u²W;M7[Oh(ag,c`yHQ"K/Ŏ#m _};Kl[#@܌WTydvVeB{e/LwXF6HT@ddݪ;-NSNj7WFBwjFՋ6+NY-[5-7 lyF׆wŹް龖m&4ޣj .D!M% K8vz'a:9J(s^d] tҢ"Vj|C2rwWP~.Oİq\BV1 -x/EV]*̹-mG"9=4mglg~YM+Ѷc/k%7gR7rIfNMx l͜mM\u[JP4K˳(*v|tE@^7%6l ^ -endstream -endobj -1386 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1387 0 obj -<< -/Subtype /Link -/A 1386 0 R -/Type /Annot -/Rect [72 685.975 346.525 720] -/Border [0 0 0] ->> -endobj -1389 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1390 0 obj -<< -/Subtype /Link -/A 1389 0 R -/Type /Annot -/Rect [72 646.477 328.356 670.975] -/Border [0 0 0] ->> -endobj -1391 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1392 0 obj -<< -/Subtype /Link -/A 1391 0 R -/Type /Annot -/Rect [72 623.977 520.78418 636.477] -/Border [0 0 0] ->> -endobj -1393 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1394 0 obj -<< -/Subtype /Link -/A 1393 0 R -/Type /Annot -/Rect [72 611.477 525.569336 623.977] -/Border [0 0 0] ->> -endobj -1395 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1396 0 obj -<< -/Subtype /Link -/A 1395 0 R -/Type /Annot -/Rect [72 598.977 538.5625 611.477] -/Border [0 0 0] ->> -endobj -1397 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1398 0 obj -<< -/Subtype /Link -/A 1397 0 R -/Type /Annot -/Rect [72 586.477 527.898438 598.977] -/Border [0 0 0] ->> -endobj -1399 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1400 0 obj -<< -/Subtype /Link -/A 1399 0 R -/Type /Annot -/Rect [72 573.977 536.819336 586.477] -/Border [0 0 0] ->> -endobj -1401 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1402 0 obj -<< -/Subtype /Link -/A 1401 0 R -/Type /Annot -/Rect [72 561.477 111.897461 573.977] -/Border [0 0 0] ->> -endobj -1403 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1404 0 obj -<< -/Subtype /Link -/A 1403 0 R -/Type /Annot -/Rect [72 526.979 233.928 551.477] -/Border [0 0 0] ->> -endobj -1405 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1406 0 obj -<< -/Subtype /Link -/A 1405 0 R -/Type /Annot -/Rect [72 504.479 322.078125 516.979] -/Border [0 0 0] ->> -endobj -1407 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1408 0 obj -<< -/Subtype /Link -/A 1407 0 R -/Type /Annot -/Rect [322.078125 504.409 358.078125 516.979] -/Border [0 0 0] ->> -endobj -1409 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1410 0 obj -<< -/Subtype /Link -/A 1409 0 R -/Type /Annot -/Rect [358.078125 504.479 363.976563 516.979] -/Border [0 0 0] ->> -endobj -1411 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1412 0 obj -<< -/Subtype /Link -/A 1411 0 R -/Type /Annot -/Rect [363.976563 504.409 441.976563 516.979] -/Border [0 0 0] ->> -endobj -1413 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1414 0 obj -<< -/Subtype /Link -/A 1413 0 R -/Type /Annot -/Rect [441.976563 504.479 465.6875 516.979] -/Border [0 0 0] ->> -endobj -1415 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1416 0 obj -<< -/Subtype /Link -/A 1415 0 R -/Type /Annot -/Rect [72 491.839 168 504.409] -/Border [0 0 0] ->> -endobj -1417 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1418 0 obj -<< -/Subtype /Link -/A 1417 0 R -/Type /Annot -/Rect [168 491.909 448.195313 504.409] -/Border [0 0 0] ->> -endobj -1419 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1420 0 obj -<< -/Subtype /Link -/A 1419 0 R -/Type /Annot -/Rect [448.195313 491.839 484.195313 504.409] -/Border [0 0 0] ->> -endobj -1421 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1422 0 obj -<< -/Subtype /Link -/A 1421 0 R -/Type /Annot -/Rect [484.195313 491.909 522.701172 504.409] -/Border [0 0 0] ->> -endobj -1423 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1424 0 obj -<< -/Subtype /Link -/A 1423 0 R -/Type /Annot -/Rect [72 479.409 517.664063 491.909] -/Border [0 0 0] ->> -endobj -1425 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1426 0 obj -<< -/Subtype /Link -/A 1425 0 R -/Type /Annot -/Rect [72 466.909 475.369141 479.409] -/Border [0 0 0] ->> -endobj -1427 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1428 0 obj -<< -/Subtype /Link -/A 1427 0 R -/Type /Annot -/Rect [72 445.596 88.2 456.909] -/Border [0 0 0] ->> -endobj -1429 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1430 0 obj -<< -/Subtype /Link -/A 1429 0 R -/Type /Annot -/Rect [88.2 445.596 93.6 456.909] -/Border [0 0 0] ->> -endobj -1431 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1432 0 obj -<< -/Subtype /Link -/A 1431 0 R -/Type /Annot -/Rect [93.6 445.596 126 456.909] -/Border [0 0 0] ->> -endobj -1433 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1434 0 obj -<< -/Subtype /Link -/A 1433 0 R -/Type /Annot -/Rect [126 445.596 131.4 456.909] -/Border [0 0 0] ->> -endobj -1435 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1436 0 obj -<< -/Subtype /Link -/A 1435 0 R -/Type /Annot -/Rect [131.4 445.596 136.8 456.909] -/Border [0 0 0] ->> -endobj -1437 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1438 0 obj -<< -/Subtype /Link -/A 1437 0 R -/Type /Annot -/Rect [136.8 445.596 142.2 456.909] -/Border [0 0 0] ->> -endobj -1439 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1440 0 obj -<< -/Subtype /Link -/A 1439 0 R -/Type /Annot -/Rect [142.2 445.596 147.6 456.909] -/Border [0 0 0] ->> -endobj -1441 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1442 0 obj -<< -/Subtype /Link -/A 1441 0 R -/Type /Annot -/Rect [147.6 445.596 158.4 456.909] -/Border [0 0 0] ->> -endobj -1443 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1444 0 obj -<< -/Subtype /Link -/A 1443 0 R -/Type /Annot -/Rect [158.4 445.596 163.8 456.909] -/Border [0 0 0] ->> -endobj -1445 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1446 0 obj -<< -/Subtype /Link -/A 1445 0 R -/Type /Annot -/Rect [163.8 445.596 331.2 456.909] -/Border [0 0 0] ->> -endobj -1447 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1448 0 obj -<< -/Subtype /Link -/A 1447 0 R -/Type /Annot -/Rect [331.2 445.596 460.8 456.909] -/Border [0 0 0] ->> -endobj -1449 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1450 0 obj -<< -/Subtype /Link -/A 1449 0 R -/Type /Annot -/Rect [72 434.283 88.2 445.596] -/Border [0 0 0] ->> -endobj -1451 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1452 0 obj -<< -/Subtype /Link -/A 1451 0 R -/Type /Annot -/Rect [88.2 434.283 93.6 445.596] -/Border [0 0 0] ->> -endobj -1453 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1454 0 obj -<< -/Subtype /Link -/A 1453 0 R -/Type /Annot -/Rect [93.6 434.283 126 445.596] -/Border [0 0 0] ->> -endobj -1455 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1456 0 obj -<< -/Subtype /Link -/A 1455 0 R -/Type /Annot -/Rect [126 434.283 131.4 445.596] -/Border [0 0 0] ->> -endobj -1457 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1458 0 obj -<< -/Subtype /Link -/A 1457 0 R -/Type /Annot -/Rect [131.4 434.283 147.6 445.596] -/Border [0 0 0] ->> -endobj -1459 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1460 0 obj -<< -/Subtype /Link -/A 1459 0 R -/Type /Annot -/Rect [147.6 434.283 153 445.596] -/Border [0 0 0] ->> -endobj -1461 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1462 0 obj -<< -/Subtype /Link -/A 1461 0 R -/Type /Annot -/Rect [153 434.283 158.4 445.596] -/Border [0 0 0] ->> -endobj -1463 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1464 0 obj -<< -/Subtype /Link -/A 1463 0 R -/Type /Annot -/Rect [158.4 434.283 174.6 445.596] -/Border [0 0 0] ->> -endobj -1465 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1466 0 obj -<< -/Subtype /Link -/A 1465 0 R -/Type /Annot -/Rect [174.6 434.283 180 445.596] -/Border [0 0 0] ->> -endobj -1467 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1468 0 obj -<< -/Subtype /Link -/A 1467 0 R -/Type /Annot -/Rect [180 434.283 331.2 445.596] -/Border [0 0 0] ->> -endobj -1469 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1470 0 obj -<< -/Subtype /Link -/A 1469 0 R -/Type /Annot -/Rect [331.2 434.283 406.8 445.596] -/Border [0 0 0] ->> -endobj -1471 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1472 0 obj -<< -/Subtype /Link -/A 1471 0 R -/Type /Annot -/Rect [72 422.97 88.2 434.283] -/Border [0 0 0] ->> -endobj -1473 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1474 0 obj -<< -/Subtype /Link -/A 1473 0 R -/Type /Annot -/Rect [88.2 422.97 93.6 434.283] -/Border [0 0 0] ->> -endobj -1475 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1476 0 obj -<< -/Subtype /Link -/A 1475 0 R -/Type /Annot -/Rect [93.6 422.97 180 434.283] -/Border [0 0 0] ->> -endobj -1477 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1478 0 obj -<< -/Subtype /Link -/A 1477 0 R -/Type /Annot -/Rect [180 422.97 185.4 434.283] -/Border [0 0 0] ->> -endobj -1479 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1480 0 obj -<< -/Subtype /Link -/A 1479 0 R -/Type /Annot -/Rect [185.4 422.97 201.6 434.283] -/Border [0 0 0] ->> -endobj -1481 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1482 0 obj -<< -/Subtype /Link -/A 1481 0 R -/Type /Annot -/Rect [201.6 422.97 207 434.283] -/Border [0 0 0] ->> -endobj -1483 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1484 0 obj -<< -/Subtype /Link -/A 1483 0 R -/Type /Annot -/Rect [207 422.97 212.4 434.283] -/Border [0 0 0] ->> -endobj -1485 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1486 0 obj -<< -/Subtype /Link -/A 1485 0 R -/Type /Annot -/Rect [212.4 422.97 228.6 434.283] -/Border [0 0 0] ->> -endobj -1487 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1488 0 obj -<< -/Subtype /Link -/A 1487 0 R -/Type /Annot -/Rect [228.6 422.97 234 434.283] -/Border [0 0 0] ->> -endobj -1489 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1490 0 obj -<< -/Subtype /Link -/A 1489 0 R -/Type /Annot -/Rect [234 422.97 239.4 434.283] -/Border [0 0 0] ->> -endobj -1491 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1492 0 obj -<< -/Subtype /Link -/A 1491 0 R -/Type /Annot -/Rect [239.4 422.97 255.6 434.283] -/Border [0 0 0] ->> -endobj -1493 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1494 0 obj -<< -/Subtype /Link -/A 1493 0 R -/Type /Annot -/Rect [255.6 422.97 261 434.283] -/Border [0 0 0] ->> -endobj -1495 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1496 0 obj -<< -/Subtype /Link -/A 1495 0 R -/Type /Annot -/Rect [261 422.97 266.4 434.283] -/Border [0 0 0] ->> -endobj -1497 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1498 0 obj -<< -/Subtype /Link -/A 1497 0 R -/Type /Annot -/Rect [266.4 422.97 282.6 434.283] -/Border [0 0 0] ->> -endobj -1499 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1500 0 obj -<< -/Subtype /Link -/A 1499 0 R -/Type /Annot -/Rect [282.6 422.97 288 434.283] -/Border [0 0 0] ->> -endobj -1501 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1502 0 obj -<< -/Subtype /Link -/A 1501 0 R -/Type /Annot -/Rect [288 422.97 331.2 434.283] -/Border [0 0 0] ->> -endobj -1503 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1504 0 obj -<< -/Subtype /Link -/A 1503 0 R -/Type /Annot -/Rect [331.2 422.97 466.2 434.283] -/Border [0 0 0] ->> -endobj -1505 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1506 0 obj -<< -/Subtype /Link -/A 1505 0 R -/Type /Annot -/Rect [72 411.657 88.2 422.97] -/Border [0 0 0] ->> -endobj -1507 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1508 0 obj -<< -/Subtype /Link -/A 1507 0 R -/Type /Annot -/Rect [88.2 411.657 93.6 422.97] -/Border [0 0 0] ->> -endobj -1509 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1510 0 obj -<< -/Subtype /Link -/A 1509 0 R -/Type /Annot -/Rect [93.6 411.657 163.8 422.97] -/Border [0 0 0] ->> -endobj -1511 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1512 0 obj -<< -/Subtype /Link -/A 1511 0 R -/Type /Annot -/Rect [163.8 411.657 169.2 422.97] -/Border [0 0 0] ->> -endobj -1513 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1514 0 obj -<< -/Subtype /Link -/A 1513 0 R -/Type /Annot -/Rect [169.2 411.657 185.4 422.97] -/Border [0 0 0] ->> -endobj -1515 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1516 0 obj -<< -/Subtype /Link -/A 1515 0 R -/Type /Annot -/Rect [185.4 411.657 190.8 422.97] -/Border [0 0 0] ->> -endobj -1517 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1518 0 obj -<< -/Subtype /Link -/A 1517 0 R -/Type /Annot -/Rect [190.8 411.657 196.2 422.97] -/Border [0 0 0] ->> -endobj -1519 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1520 0 obj -<< -/Subtype /Link -/A 1519 0 R -/Type /Annot -/Rect [196.2 411.657 201.6 422.97] -/Border [0 0 0] ->> -endobj -1521 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1522 0 obj -<< -/Subtype /Link -/A 1521 0 R -/Type /Annot -/Rect [201.6 411.657 212.4 422.97] -/Border [0 0 0] ->> -endobj -1523 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1524 0 obj -<< -/Subtype /Link -/A 1523 0 R -/Type /Annot -/Rect [212.4 411.657 217.8 422.97] -/Border [0 0 0] ->> -endobj -1525 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1526 0 obj -<< -/Subtype /Link -/A 1525 0 R -/Type /Annot -/Rect [217.8 411.657 223.2 422.97] -/Border [0 0 0] ->> -endobj -1527 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1528 0 obj -<< -/Subtype /Link -/A 1527 0 R -/Type /Annot -/Rect [223.2 411.657 239.4 422.97] -/Border [0 0 0] ->> -endobj -1529 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1530 0 obj -<< -/Subtype /Link -/A 1529 0 R -/Type /Annot -/Rect [239.4 411.657 244.8 422.97] -/Border [0 0 0] ->> -endobj -1531 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1532 0 obj -<< -/Subtype /Link -/A 1531 0 R -/Type /Annot -/Rect [244.8 411.657 250.2 422.97] -/Border [0 0 0] ->> -endobj -1533 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1534 0 obj -<< -/Subtype /Link -/A 1533 0 R -/Type /Annot -/Rect [250.2 411.657 266.4 422.97] -/Border [0 0 0] ->> -endobj -1535 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1536 0 obj -<< -/Subtype /Link -/A 1535 0 R -/Type /Annot -/Rect [266.4 411.657 271.8 422.97] -/Border [0 0 0] ->> -endobj -1537 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1538 0 obj -<< -/Subtype /Link -/A 1537 0 R -/Type /Annot -/Rect [271.8 411.657 277.2 422.97] -/Border [0 0 0] ->> -endobj -1539 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1540 0 obj -<< -/Subtype /Link -/A 1539 0 R -/Type /Annot -/Rect [277.2 411.657 293.4 422.97] -/Border [0 0 0] ->> -endobj -1541 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1542 0 obj -<< -/Subtype /Link -/A 1541 0 R -/Type /Annot -/Rect [293.4 411.657 298.8 422.97] -/Border [0 0 0] ->> -endobj -1543 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1544 0 obj -<< -/Subtype /Link -/A 1543 0 R -/Type /Annot -/Rect [298.8 411.657 304.2 422.97] -/Border [0 0 0] ->> -endobj -1545 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1546 0 obj -<< -/Subtype /Link -/A 1545 0 R -/Type /Annot -/Rect [304.2 411.657 320.4 422.97] -/Border [0 0 0] ->> -endobj -1547 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1548 0 obj -<< -/Subtype /Link -/A 1547 0 R -/Type /Annot -/Rect [320.4 411.657 325.8 422.97] -/Border [0 0 0] ->> -endobj -1549 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1550 0 obj -<< -/Subtype /Link -/A 1549 0 R -/Type /Annot -/Rect [325.8 411.657 331.2 422.97] -/Border [0 0 0] ->> -endobj -1551 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1552 0 obj -<< -/Subtype /Link -/A 1551 0 R -/Type /Annot -/Rect [331.2 411.657 450 422.97] -/Border [0 0 0] ->> -endobj -1553 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1554 0 obj -<< -/Subtype /Link -/A 1553 0 R -/Type /Annot -/Rect [72 400.344 88.2 411.657] -/Border [0 0 0] ->> -endobj -1555 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1556 0 obj -<< -/Subtype /Link -/A 1555 0 R -/Type /Annot -/Rect [88.2 400.344 93.6 411.657] -/Border [0 0 0] ->> -endobj -1557 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1558 0 obj -<< -/Subtype /Link -/A 1557 0 R -/Type /Annot -/Rect [93.6 400.344 126 411.657] -/Border [0 0 0] ->> -endobj -1559 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1560 0 obj -<< -/Subtype /Link -/A 1559 0 R -/Type /Annot -/Rect [126 400.344 131.4 411.657] -/Border [0 0 0] ->> -endobj -1561 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1562 0 obj -<< -/Subtype /Link -/A 1561 0 R -/Type /Annot -/Rect [131.4 400.344 147.6 411.657] -/Border [0 0 0] ->> -endobj -1563 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1564 0 obj -<< -/Subtype /Link -/A 1563 0 R -/Type /Annot -/Rect [147.6 400.344 153 411.657] -/Border [0 0 0] ->> -endobj -1565 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1566 0 obj -<< -/Subtype /Link -/A 1565 0 R -/Type /Annot -/Rect [153 400.344 158.4 411.657] -/Border [0 0 0] ->> -endobj -1567 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1568 0 obj -<< -/Subtype /Link -/A 1567 0 R -/Type /Annot -/Rect [158.4 400.344 169.2 411.657] -/Border [0 0 0] ->> -endobj -1569 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1570 0 obj -<< -/Subtype /Link -/A 1569 0 R -/Type /Annot -/Rect [169.2 400.344 174.6 411.657] -/Border [0 0 0] ->> -endobj -1571 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1572 0 obj -<< -/Subtype /Link -/A 1571 0 R -/Type /Annot -/Rect [174.6 400.344 331.2 411.657] -/Border [0 0 0] ->> -endobj -1573 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1574 0 obj -<< -/Subtype /Link -/A 1573 0 R -/Type /Annot -/Rect [331.2 400.344 439.2 411.657] -/Border [0 0 0] ->> -endobj -1575 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1576 0 obj -<< -/Subtype /Link -/A 1575 0 R -/Type /Annot -/Rect [72 389.031 88.2 400.344] -/Border [0 0 0] ->> -endobj -1577 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1578 0 obj -<< -/Subtype /Link -/A 1577 0 R -/Type /Annot -/Rect [88.2 389.031 93.6 400.344] -/Border [0 0 0] ->> -endobj -1579 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1580 0 obj -<< -/Subtype /Link -/A 1579 0 R -/Type /Annot -/Rect [93.6 389.031 126 400.344] -/Border [0 0 0] ->> -endobj -1581 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1582 0 obj -<< -/Subtype /Link -/A 1581 0 R -/Type /Annot -/Rect [126 389.031 131.4 400.344] -/Border [0 0 0] ->> -endobj -1583 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1584 0 obj -<< -/Subtype /Link -/A 1583 0 R -/Type /Annot -/Rect [131.4 389.031 136.8 400.344] -/Border [0 0 0] ->> -endobj -1585 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1586 0 obj -<< -/Subtype /Link -/A 1585 0 R -/Type /Annot -/Rect [136.8 389.031 142.2 400.344] -/Border [0 0 0] ->> -endobj -1587 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1588 0 obj -<< -/Subtype /Link -/A 1587 0 R -/Type /Annot -/Rect [142.2 389.031 331.2 400.344] -/Border [0 0 0] ->> -endobj -1589 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1590 0 obj -<< -/Subtype /Link -/A 1589 0 R -/Type /Annot -/Rect [331.2 389.031 428.4 400.344] -/Border [0 0 0] ->> -endobj -1591 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1592 0 obj -<< -/Subtype /Link -/A 1591 0 R -/Type /Annot -/Rect [72 366.531 282.390625 379.031] -/Border [0 0 0] ->> -endobj -1593 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1594 0 obj -<< -/Subtype /Link -/A 1593 0 R -/Type /Annot -/Rect [72 143.627 535.378906 156.127] -/Border [0 0 0] ->> -endobj -1595 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1596 0 obj -<< -/Subtype /Link -/A 1595 0 R -/Type /Annot -/Rect [72 131.127 482.366211 143.627] -/Border [0 0 0] ->> -endobj -1597 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1598 0 obj -<< -/Subtype /Link -/A 1597 0 R -/Type /Annot -/Rect [72 118.627 151.580078 131.127] -/Border [0 0 0] ->> -endobj -1599 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1600 0 obj -<< -/Subtype /Link -/A 1599 0 R -/Type /Annot -/Rect [151.580078 118.557 169.580078 131.127] -/Border [0 0 0] ->> -endobj -1601 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1602 0 obj -<< -/Subtype /Link -/A 1601 0 R -/Type /Annot -/Rect [169.580078 118.627 525.3125 131.127] -/Border [0 0 0] ->> -endobj -1603 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1604 0 obj -<< -/Subtype /Link -/A 1603 0 R -/Type /Annot -/Rect [72 106.127 376.443359 118.627] -/Border [0 0 0] ->> -endobj -1384 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1382 0 R -/Resources 1383 0 R -/Annots [1387 0 R 1390 0 R 1392 0 R 1394 0 R 1396 0 R 1398 0 R 1400 0 R 1402 0 R 1404 0 R 1406 0 R 1408 0 R 1410 0 R 1412 0 R 1414 0 R 1416 0 R 1418 0 R 1420 0 R 1422 0 R 1424 0 R 1426 0 R 1428 0 R 1430 0 R 1432 0 R 1434 0 R 1436 0 R 1438 0 R 1440 0 R 1442 0 R 1444 0 R 1446 0 R 1448 0 R 1450 0 R 1452 0 R 1454 0 R 1456 0 R 1458 0 R 1460 0 R 1462 0 R 1464 0 R 1466 0 R 1468 0 R 1470 0 R 1472 0 R 1474 0 R 1476 0 R 1478 0 R 1480 0 R 1482 0 R 1484 0 R 1486 0 R 1488 0 R 1490 0 R 1492 0 R 1494 0 R 1496 0 R 1498 0 R 1500 0 R 1502 0 R 1504 0 R 1506 0 R 1508 0 R 1510 0 R 1512 0 R 1514 0 R 1516 0 R 1518 0 R 1520 0 R 1522 0 R 1524 0 R 1526 0 R 1528 0 R 1530 0 R 1532 0 R 1534 0 R 1536 0 R 1538 0 R 1540 0 R 1542 0 R 1544 0 R 1546 0 R 1548 0 R 1550 0 R 1552 0 R 1554 0 R 1556 0 R 1558 0 R 1560 0 R 1562 0 R 1564 0 R 1566 0 R 1568 0 R 1570 0 R 1572 0 R 1574 0 R 1576 0 R 1578 0 R 1580 0 R 1582 0 R 1584 0 R 1586 0 R 1588 0 R 1590 0 R 1592 0 R 1594 0 R 1596 0 R 1598 0 R 1600 0 R 1602 0 R 1604 0 R] ->> -endobj -1383 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -1382 0 obj -<< -/Length 2257 -/Filter /FlateDecode ->> -stream -x\K6WD%OAA@omV`{m@S_F2)˻ZڛZz3߼% e#2q4/~<}xN_ɋs??N8hl[7j{~m"⚨E+(=㻼-rdDIWyRw@Ns%캹-0";/+58$$uNDzO^!g P7@.$q%(N3 5 % cY }A.w"[hKF1ɣ7ʍR]&3hl>#V6A:03tFըntv \9ħƴtʙ+s|e @+ -enY1hц64e<=/?Vƪ^I'"v8h-9eY.ue#ѡ56 ϔ-JNpxk\< -w$8+,OщYJ2폩k7,NOE'm5쌒,HMqLE؜0=&=z R7r<_ps Ihؐqx^LK<n sbG@Bahmaо MT:4 mJΉ;=RW!lK·ME ,ľ]%łz8\2BIde o ՁV5۵2$J6M7P/6 .) :dek-#l2as`tbCch:N j͂TLB2Paf%[]Gj*"UC --h^*bJz؇"Bk[M-8sK`ƒtL)(ڿPP! P7~婹s*@ԍS*uOӭ؊~4<9CX%E 3?U2#= -@gY0^"V{PT αDO5c({qs;\8.jyӻ<NrAr`d[2*+tUy Яz<,Ōz{"#*A2ZvR}/Iԭs@ΝU>XXBsTv RZƦ԰$zul'gTAvR<Ŕ]¥с؃Z yJQu7OIw-nT? ௄-IE*/ҧҧܾrG@|r@Ν˝H Zk'yR"{Gz*?-EK-%Si[Ҹzȧ'WdEo{.x#%\ȹo*D-_ԶwT+U^[Ίtsb"Wz8~;Y{{c'[Kc'IܿQ -iu\bUߋ˼Z,Օxѩ рh€!?@_~cvN{M.LtEJR֙LF-Λ:x›azZab*Kdϝ7Ӊ2Z -ҋ\ 5̛JcjF+P߾=I*BNj=9fk} ]|\NMZkd(YKRa֍JmHJa5-Ur4@mhXccKel6|i #hI%y\<[:_@CqE;`׃_4꩖gMq^rQZƙ16 -]O ƙKph+fВ_*86u^!&B*KafV -endstream -endobj -1609 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1610 0 obj -<< -/Subtype /Link -/A 1609 0 R -/Type /Annot -/Rect [72 695.502 149.31 720] -/Border [0 0 0] ->> -endobj -1611 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1612 0 obj -<< -/Subtype /Link -/A 1611 0 R -/Type /Annot -/Rect [72 673.002 534.954102 685.502] -/Border [0 0 0] ->> -endobj -1613 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1614 0 obj -<< -/Subtype /Link -/A 1613 0 R -/Type /Annot -/Rect [72 660.502 528.899414 673.002] -/Border [0 0 0] ->> -endobj -1615 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1616 0 obj -<< -/Subtype /Link -/A 1615 0 R -/Type /Annot -/Rect [72 648.002 525.964844 660.502] -/Border [0 0 0] ->> -endobj -1617 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1618 0 obj -<< -/Subtype /Link -/A 1617 0 R -/Type /Annot -/Rect [72 635.502 326.057617 648.002] -/Border [0 0 0] ->> -endobj -1619 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1620 0 obj -<< -/Subtype /Link -/A 1619 0 R -/Type /Annot -/Rect [72 614.189 88.2 625.502] -/Border [0 0 0] ->> -endobj -1621 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1622 0 obj -<< -/Subtype /Link -/A 1621 0 R -/Type /Annot -/Rect [88.2 614.189 93.6 625.502] -/Border [0 0 0] ->> -endobj -1623 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1624 0 obj -<< -/Subtype /Link -/A 1623 0 R -/Type /Annot -/Rect [93.6 614.189 115.2 625.502] -/Border [0 0 0] ->> -endobj -1625 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1626 0 obj -<< -/Subtype /Link -/A 1625 0 R -/Type /Annot -/Rect [115.2 614.189 120.6 625.502] -/Border [0 0 0] ->> -endobj -1627 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1628 0 obj -<< -/Subtype /Link -/A 1627 0 R -/Type /Annot -/Rect [120.6 614.189 504 625.502] -/Border [0 0 0] ->> -endobj -1629 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1630 0 obj -<< -/Subtype /Link -/A 1629 0 R -/Type /Annot -/Rect [504 614.189 509.4 625.502] -/Border [0 0 0] ->> -endobj -1631 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1632 0 obj -<< -/Subtype /Link -/A 1631 0 R -/Type /Annot -/Rect [72 602.876 88.2 614.189] -/Border [0 0 0] ->> -endobj -1633 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1634 0 obj -<< -/Subtype /Link -/A 1633 0 R -/Type /Annot -/Rect [88.2 602.876 93.6 614.189] -/Border [0 0 0] ->> -endobj -1635 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1636 0 obj -<< -/Subtype /Link -/A 1635 0 R -/Type /Annot -/Rect [93.6 602.876 126 614.189] -/Border [0 0 0] ->> -endobj -1637 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1638 0 obj -<< -/Subtype /Link -/A 1637 0 R -/Type /Annot -/Rect [126 602.876 131.4 614.189] -/Border [0 0 0] ->> -endobj -1639 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1640 0 obj -<< -/Subtype /Link -/A 1639 0 R -/Type /Annot -/Rect [131.4 602.876 136.8 614.189] -/Border [0 0 0] ->> -endobj -1641 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1642 0 obj -<< -/Subtype /Link -/A 1641 0 R -/Type /Annot -/Rect [72 379.972 518.59668 392.472] -/Border [0 0 0] ->> -endobj -1643 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1644 0 obj -<< -/Subtype /Link -/A 1643 0 R -/Type /Annot -/Rect [72 367.472 321.18457 379.972] -/Border [0 0 0] ->> -endobj -1607 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1605 0 R -/Resources 1606 0 R -/Annots [1610 0 R 1612 0 R 1614 0 R 1616 0 R 1618 0 R 1620 0 R 1622 0 R 1624 0 R 1626 0 R 1628 0 R 1630 0 R 1632 0 R 1634 0 R 1636 0 R 1638 0 R 1640 0 R 1642 0 R 1644 0 R] ->> -endobj -1606 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F5 29 0 R ->> ->> -endobj -1605 0 obj -<< -/Length 907 -/Filter /FlateDecode ->> -stream -xXn@ +9;tzk[у-@@ YHk$KYpɀ /Ptw㏮Ntݯww;ZP8 x-ݩv#R"wz\|;G'A -]>5w ζ P$#H)"L)RJ2NkHPڙ&N. w1]>'Tԩ 5Vt~g‡1KNc_q WC%H K6XBnZ֒lUdXxbedi(zq0iK A8M mK -񳉥Q\3#S~ M("C__N*Zf2o\,|&ᨴšL&yԊRYʥ,\:I)~S> -endobj -1650 0 obj -<< -/Subtype /Link -/A 1649 0 R -/Type /Annot -/Rect [72 695.502 176.994 720] -/Border [0 0 0] ->> -endobj -1651 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1652 0 obj -<< -/Subtype /Link -/A 1651 0 R -/Type /Annot -/Rect [72 673.002 532.078125 685.502] -/Border [0 0 0] ->> -endobj -1653 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1654 0 obj -<< -/Subtype /Link -/A 1653 0 R -/Type /Annot -/Rect [72 660.502 171.609375 673.002] -/Border [0 0 0] ->> -endobj -1655 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1656 0 obj -<< -/Subtype /Link -/A 1655 0 R -/Type /Annot -/Rect [72 637.932 222 650.502] -/Border [0 0 0] ->> -endobj -1657 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1658 0 obj -<< -/Subtype /Link -/A 1657 0 R -/Type /Annot -/Rect [72 619.362 348 631.932] -/Border [0 0 0] ->> -endobj -1659 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1660 0 obj -<< -/Subtype /Link -/A 1659 0 R -/Type /Annot -/Rect [72 600.792 390 613.362] -/Border [0 0 0] ->> -endobj -1661 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1662 0 obj -<< -/Subtype /Link -/A 1661 0 R -/Type /Annot -/Rect [72 582.222 264 594.792] -/Border [0 0 0] ->> -endobj -1663 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1664 0 obj -<< -/Subtype /Link -/A 1663 0 R -/Type /Annot -/Rect [72 563.652 180 576.222] -/Border [0 0 0] ->> -endobj -1665 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1666 0 obj -<< -/Subtype /Link -/A 1665 0 R -/Type /Annot -/Rect [72 535.152 138.396484 547.652] -/Border [0 0 0] ->> -endobj -1667 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1668 0 obj -<< -/Subtype /Link -/A 1667 0 R -/Type /Annot -/Rect [138.396484 535.082 180.396484 547.652] -/Border [0 0 0] ->> -endobj -1669 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1670 0 obj -<< -/Subtype /Link -/A 1669 0 R -/Type /Annot -/Rect [180.396484 535.152 519.805664 547.652] -/Border [0 0 0] ->> -endobj -1671 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1672 0 obj -<< -/Subtype /Link -/A 1671 0 R -/Type /Annot -/Rect [72 522.652 517.03418 535.152] -/Border [0 0 0] ->> -endobj -1673 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1674 0 obj -<< -/Subtype /Link -/A 1673 0 R -/Type /Annot -/Rect [72 510.152 396.96582 522.652] -/Border [0 0 0] ->> -endobj -1675 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1676 0 obj -<< -/Subtype /Link -/A 1675 0 R -/Type /Annot -/Rect [72 488.839 88.2 500.152] -/Border [0 0 0] ->> -endobj -1677 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1678 0 obj -<< -/Subtype /Link -/A 1677 0 R -/Type /Annot -/Rect [88.2 488.839 93.6 500.152] -/Border [0 0 0] ->> -endobj -1679 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1680 0 obj -<< -/Subtype /Link -/A 1679 0 R -/Type /Annot -/Rect [93.6 488.839 131.4 500.152] -/Border [0 0 0] ->> -endobj -1681 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1682 0 obj -<< -/Subtype /Link -/A 1681 0 R -/Type /Annot -/Rect [131.4 488.839 136.8 500.152] -/Border [0 0 0] ->> -endobj -1683 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1684 0 obj -<< -/Subtype /Link -/A 1683 0 R -/Type /Annot -/Rect [136.8 488.839 142.2 500.152] -/Border [0 0 0] ->> -endobj -1685 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1686 0 obj -<< -/Subtype /Link -/A 1685 0 R -/Type /Annot -/Rect [142.2 488.839 158.4 500.152] -/Border [0 0 0] ->> -endobj -1687 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1688 0 obj -<< -/Subtype /Link -/A 1687 0 R -/Type /Annot -/Rect [158.4 488.839 163.8 500.152] -/Border [0 0 0] ->> -endobj -1689 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1690 0 obj -<< -/Subtype /Link -/A 1689 0 R -/Type /Annot -/Rect [163.8 488.839 169.2 500.152] -/Border [0 0 0] ->> -endobj -1691 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1692 0 obj -<< -/Subtype /Link -/A 1691 0 R -/Type /Annot -/Rect [169.2 488.839 174.6 500.152] -/Border [0 0 0] ->> -endobj -1693 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1694 0 obj -<< -/Subtype /Link -/A 1693 0 R -/Type /Annot -/Rect [174.6 488.839 180 500.152] -/Border [0 0 0] ->> -endobj -1695 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1696 0 obj -<< -/Subtype /Link -/A 1695 0 R -/Type /Annot -/Rect [180 488.839 185.4 500.152] -/Border [0 0 0] ->> -endobj -1697 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1698 0 obj -<< -/Subtype /Link -/A 1697 0 R -/Type /Annot -/Rect [185.4 488.839 190.8 500.152] -/Border [0 0 0] ->> -endobj -1699 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1700 0 obj -<< -/Subtype /Link -/A 1699 0 R -/Type /Annot -/Rect [190.8 488.839 196.2 500.152] -/Border [0 0 0] ->> -endobj -1701 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1702 0 obj -<< -/Subtype /Link -/A 1701 0 R -/Type /Annot -/Rect [196.2 488.839 207 500.152] -/Border [0 0 0] ->> -endobj -1703 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1704 0 obj -<< -/Subtype /Link -/A 1703 0 R -/Type /Annot -/Rect [207 488.839 212.4 500.152] -/Border [0 0 0] ->> -endobj -1705 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1706 0 obj -<< -/Subtype /Link -/A 1705 0 R -/Type /Annot -/Rect [212.4 488.839 217.8 500.152] -/Border [0 0 0] ->> -endobj -1707 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1708 0 obj -<< -/Subtype /Link -/A 1707 0 R -/Type /Annot -/Rect [217.8 488.839 234 500.152] -/Border [0 0 0] ->> -endobj -1709 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1710 0 obj -<< -/Subtype /Link -/A 1709 0 R -/Type /Annot -/Rect [234 488.839 239.4 500.152] -/Border [0 0 0] ->> -endobj -1711 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1712 0 obj -<< -/Subtype /Link -/A 1711 0 R -/Type /Annot -/Rect [239.4 488.839 244.8 500.152] -/Border [0 0 0] ->> -endobj -1713 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1714 0 obj -<< -/Subtype /Link -/A 1713 0 R -/Type /Annot -/Rect [244.8 488.839 250.2 500.152] -/Border [0 0 0] ->> -endobj -1715 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1716 0 obj -<< -/Subtype /Link -/A 1715 0 R -/Type /Annot -/Rect [250.2 488.839 255.6 500.152] -/Border [0 0 0] ->> -endobj -1717 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1718 0 obj -<< -/Subtype /Link -/A 1717 0 R -/Type /Annot -/Rect [255.6 488.839 271.8 500.152] -/Border [0 0 0] ->> -endobj -1719 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1720 0 obj -<< -/Subtype /Link -/A 1719 0 R -/Type /Annot -/Rect [271.8 488.839 277.2 500.152] -/Border [0 0 0] ->> -endobj -1721 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1722 0 obj -<< -/Subtype /Link -/A 1721 0 R -/Type /Annot -/Rect [277.2 488.839 282.6 500.152] -/Border [0 0 0] ->> -endobj -1723 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1724 0 obj -<< -/Subtype /Link -/A 1723 0 R -/Type /Annot -/Rect [282.6 488.839 298.8 500.152] -/Border [0 0 0] ->> -endobj -1725 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1726 0 obj -<< -/Subtype /Link -/A 1725 0 R -/Type /Annot -/Rect [298.8 488.839 304.2 500.152] -/Border [0 0 0] ->> -endobj -1727 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1728 0 obj -<< -/Subtype /Link -/A 1727 0 R -/Type /Annot -/Rect [304.2 488.839 309.6 500.152] -/Border [0 0 0] ->> -endobj -1729 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1730 0 obj -<< -/Subtype /Link -/A 1729 0 R -/Type /Annot -/Rect [309.6 488.839 315 500.152] -/Border [0 0 0] ->> -endobj -1731 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1732 0 obj -<< -/Subtype /Link -/A 1731 0 R -/Type /Annot -/Rect [72 477.526 88.2 488.839] -/Border [0 0 0] ->> -endobj -1733 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1734 0 obj -<< -/Subtype /Link -/A 1733 0 R -/Type /Annot -/Rect [88.2 477.526 93.6 488.839] -/Border [0 0 0] ->> -endobj -1735 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1736 0 obj -<< -/Subtype /Link -/A 1735 0 R -/Type /Annot -/Rect [93.6 477.526 126 488.839] -/Border [0 0 0] ->> -endobj -1737 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1738 0 obj -<< -/Subtype /Link -/A 1737 0 R -/Type /Annot -/Rect [126 477.526 131.4 488.839] -/Border [0 0 0] ->> -endobj -1739 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1740 0 obj -<< -/Subtype /Link -/A 1739 0 R -/Type /Annot -/Rect [131.4 477.526 136.8 488.839] -/Border [0 0 0] ->> -endobj -1741 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1742 0 obj -<< -/Subtype /Link -/A 1741 0 R -/Type /Annot -/Rect [136.8 477.526 142.2 488.839] -/Border [0 0 0] ->> -endobj -1743 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1744 0 obj -<< -/Subtype /Link -/A 1743 0 R -/Type /Annot -/Rect [72 455.026 282.390625 467.526] -/Border [0 0 0] ->> -endobj -1647 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1645 0 R -/Resources 1646 0 R -/Annots [1650 0 R 1652 0 R 1654 0 R 1656 0 R 1658 0 R 1660 0 R 1662 0 R 1664 0 R 1666 0 R 1668 0 R 1670 0 R 1672 0 R 1674 0 R 1676 0 R 1678 0 R 1680 0 R 1682 0 R 1684 0 R 1686 0 R 1688 0 R 1690 0 R 1692 0 R 1694 0 R 1696 0 R 1698 0 R 1700 0 R 1702 0 R 1704 0 R 1706 0 R 1708 0 R 1710 0 R 1712 0 R 1714 0 R 1716 0 R 1718 0 R 1720 0 R 1722 0 R 1724 0 R 1726 0 R 1728 0 R 1730 0 R 1732 0 R 1734 0 R 1736 0 R 1738 0 R 1740 0 R 1742 0 R 1744 0 R] ->> -endobj -1646 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -1645 0 obj -<< -/Length 1153 -/Filter /FlateDecode ->> -stream -xYˮ6+efoMxt!6Z)PmKn9_0c=okiko_ws܉ -E._c/Q]hZ=o84^X#HQ\ f4i4a##V<Їq[xyZ?B~2bbXd:#5sy.pw8>*8J2JF -3g5l%l,na˷cM[ٞeZ<߰+i,=??4 4 ᗺ'caznOV@ -M3$-ʱ?c;̄X渂5װ8 oc)cG/m4O;ctsq$8Gwڤa"=ia?=Nɡ"7Xͥi2Iz -p,wA`Bď]?[i LM )w,w#wOI̘Խ0)~J-3J˝_lJαjz.QUh,PE*\O k>cEJl4-`ܔuY{ -]ЏX |Jx%*Xc!3yY>MlY;qLlJ^WkFxU .6m]y`1uB촞*wІ>BFYΑ0.E8دrWaa$JKZ[PpxX&)?x}w?PPˬz8p8~äg:VD:>npC2v5nJ\*S `}WNf UMO$%q/eeUKvphXi $o ,_]luwkO| Aeb|8*YWsf]?YH ̷+DZFVNK8éy ^U8 f7T&.|&A=Ww[,&R[!C6a(4ipl| - -endstream -endobj -1749 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1750 0 obj -<< -/Subtype /Link -/A 1749 0 R -/Type /Annot -/Rect [72 695.502 223.83 720] -/Border [0 0 0] ->> -endobj -1751 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1752 0 obj -<< -/Subtype /Link -/A 1751 0 R -/Type /Annot -/Rect [72 673.002 468.210938 685.502] -/Border [0 0 0] ->> -endobj -1753 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1754 0 obj -<< -/Subtype /Link -/A 1753 0 R -/Type /Annot -/Rect [468.210938 672.932 492.210938 685.502] -/Border [0 0 0] ->> -endobj -1755 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1756 0 obj -<< -/Subtype /Link -/A 1755 0 R -/Type /Annot -/Rect [492.210938 673.002 539.632813 685.502] -/Border [0 0 0] ->> -endobj -1757 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1758 0 obj -<< -/Subtype /Link -/A 1757 0 R -/Type /Annot -/Rect [72 660.502 309.382813 673.002] -/Border [0 0 0] ->> -endobj -1759 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1760 0 obj -<< -/Subtype /Link -/A 1759 0 R -/Type /Annot -/Rect [309.382813 660.432 387.382813 673.002] -/Border [0 0 0] ->> -endobj -1761 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1762 0 obj -<< -/Subtype /Link -/A 1761 0 R -/Type /Annot -/Rect [387.382813 660.502 520.893555 673.002] -/Border [0 0 0] ->> -endobj -1763 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1764 0 obj -<< -/Subtype /Link -/A 1763 0 R -/Type /Annot -/Rect [72 647.862 96 660.432] -/Border [0 0 0] ->> -endobj -1765 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1766 0 obj -<< -/Subtype /Link -/A 1765 0 R -/Type /Annot -/Rect [96 647.932 145.736328 660.432] -/Border [0 0 0] ->> -endobj -1767 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1768 0 obj -<< -/Subtype /Link -/A 1767 0 R -/Type /Annot -/Rect [145.736328 647.862 181.736328 660.432] -/Border [0 0 0] ->> -endobj -1769 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1770 0 obj -<< -/Subtype /Link -/A 1769 0 R -/Type /Annot -/Rect [181.736328 647.932 521.589844 660.432] -/Border [0 0 0] ->> -endobj -1771 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1772 0 obj -<< -/Subtype /Link -/A 1771 0 R -/Type /Annot -/Rect [72 635.432 112.166016 647.932] -/Border [0 0 0] ->> -endobj -1773 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1774 0 obj -<< -/Subtype /Link -/A 1773 0 R -/Type /Annot -/Rect [112.166016 635.362 190.166016 647.932] -/Border [0 0 0] ->> -endobj -1775 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1776 0 obj -<< -/Subtype /Link -/A 1775 0 R -/Type /Annot -/Rect [190.166016 635.432 536.68457 647.932] -/Border [0 0 0] ->> -endobj -1777 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1778 0 obj -<< -/Subtype /Link -/A 1777 0 R -/Type /Annot -/Rect [72 612.932 521.741211 625.432] -/Border [0 0 0] ->> -endobj -1779 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1780 0 obj -<< -/Subtype /Link -/A 1779 0 R -/Type /Annot -/Rect [72 600.432 289.919922 612.932] -/Border [0 0 0] ->> -endobj -1781 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1782 0 obj -<< -/Subtype /Link -/A 1781 0 R -/Type /Annot -/Rect [72 577.862 126 590.432] -/Border [0 0 0] ->> -endobj -1783 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1784 0 obj -<< -/Subtype /Link -/A 1783 0 R -/Type /Annot -/Rect [72 559.292 114 571.862] -/Border [0 0 0] ->> -endobj -1785 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1786 0 obj -<< -/Subtype /Link -/A 1785 0 R -/Type /Annot -/Rect [72 540.722 120 553.292] -/Border [0 0 0] ->> -endobj -1787 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1788 0 obj -<< -/Subtype /Link -/A 1787 0 R -/Type /Annot -/Rect [72 522.152 132 534.722] -/Border [0 0 0] ->> -endobj -1789 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1790 0 obj -<< -/Subtype /Link -/A 1789 0 R -/Type /Annot -/Rect [72 503.582 96 516.152] -/Border [0 0 0] ->> -endobj -1791 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1792 0 obj -<< -/Subtype /Link -/A 1791 0 R -/Type /Annot -/Rect [72 485.012 126 497.582] -/Border [0 0 0] ->> -endobj -1793 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1794 0 obj -<< -/Subtype /Link -/A 1793 0 R -/Type /Annot -/Rect [72 466.442 138 479.012] -/Border [0 0 0] ->> -endobj -1795 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1796 0 obj -<< -/Subtype /Link -/A 1795 0 R -/Type /Annot -/Rect [72 447.872 114 460.442] -/Border [0 0 0] ->> -endobj -1797 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1798 0 obj -<< -/Subtype /Link -/A 1797 0 R -/Type /Annot -/Rect [72 429.302 138 441.872] -/Border [0 0 0] ->> -endobj -1799 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1800 0 obj -<< -/Subtype /Link -/A 1799 0 R -/Type /Annot -/Rect [72 410.732 150 423.302] -/Border [0 0 0] ->> -endobj -1801 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1802 0 obj -<< -/Subtype /Link -/A 1801 0 R -/Type /Annot -/Rect [72 382.232 455.623047 394.732] -/Border [0 0 0] ->> -endobj -1747 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1745 0 R -/Resources 1746 0 R -/Annots [1750 0 R 1752 0 R 1754 0 R 1756 0 R 1758 0 R 1760 0 R 1762 0 R 1764 0 R 1766 0 R 1768 0 R 1770 0 R 1772 0 R 1774 0 R 1776 0 R 1778 0 R 1780 0 R 1782 0 R 1784 0 R 1786 0 R 1788 0 R 1790 0 R 1792 0 R 1794 0 R 1796 0 R 1798 0 R 1800 0 R 1802 0 R] ->> -endobj -1746 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R ->> ->> -endobj -1745 0 obj -<< -/Length 969 -/Filter /FlateDecode ->> -stream -xXn0+e9U@C譅oE,=@_F6(,⼙f ?n{~c~z솧.ϟ_;Z} v;At萎>.L:Ё[)bCwϻݗWan2Ž٪OGL2p˟cŽ΀.#m?qX{'20@e/S&lkD~(2Nvދ-X o$ֱ-$88NVH7W-cyYU~*kU5h(<)T`tLĘ.G WyBG8:wM &sN8EFs3ϫѪX:\*d vqҰVh3Xs-m!X drŗ Ut9GemBoO kۼx0Oq$.esqE|m2^KC&*W15`>eMAϮת`Ad%\%Ym̳(G? y;z6R]Ъ‚A |< -.ߚKyyvQ/xea^)Ee_cQg^ױS <-smM=GNm̔HE};fpĪ:.AThg ~]_8Ҭͬ -GT<(ʲ5ʺ{|ke=d' ^B2PCA9 -!6 1)ⅉ|nŹpTH|u-:֏U[294HXpGdSUsB_CIDtEYTx ;qۣkST4OoԤ iN0W]/9X] -endstream -endobj -1807 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1808 0 obj -<< -/Subtype /Link -/A 1807 0 R -/Type /Annot -/Rect [72 695.502 230.562 720] -/Border [0 0 0] ->> -endobj -1809 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1810 0 obj -<< -/Subtype /Link -/A 1809 0 R -/Type /Annot -/Rect [72 673.002 93.201172 685.502] -/Border [0 0 0] ->> -endobj -1811 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1812 0 obj -<< -/Subtype /Link -/A 1811 0 R -/Type /Annot -/Rect [93.201172 672.932 135.201172 685.502] -/Border [0 0 0] ->> -endobj -1813 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1814 0 obj -<< -/Subtype /Link -/A 1813 0 R -/Type /Annot -/Rect [135.201172 673.002 158.912109 685.502] -/Border [0 0 0] ->> -endobj -1815 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1816 0 obj -<< -/Subtype /Link -/A 1815 0 R -/Type /Annot -/Rect [158.912109 672.932 206.912109 685.502] -/Border [0 0 0] ->> -endobj -1817 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1818 0 obj -<< -/Subtype /Link -/A 1817 0 R -/Type /Annot -/Rect [206.912109 673.002 535.588867 685.502] -/Border [0 0 0] ->> -endobj -1819 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1820 0 obj -<< -/Subtype /Link -/A 1819 0 R -/Type /Annot -/Rect [72 660.502 236.287109 673.002] -/Border [0 0 0] ->> -endobj -1821 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1822 0 obj -<< -/Subtype /Link -/A 1821 0 R -/Type /Annot -/Rect [72 639.189 390.6 650.502] -/Border [0 0 0] ->> -endobj -1823 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1824 0 obj -<< -/Subtype /Link -/A 1823 0 R -/Type /Annot -/Rect [72 627.876 88.2 639.189] -/Border [0 0 0] ->> -endobj -1825 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1826 0 obj -<< -/Subtype /Link -/A 1825 0 R -/Type /Annot -/Rect [88.2 627.876 93.6 639.189] -/Border [0 0 0] ->> -endobj -1827 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1828 0 obj -<< -/Subtype /Link -/A 1827 0 R -/Type /Annot -/Rect [93.6 627.876 142.2 639.189] -/Border [0 0 0] ->> -endobj -1829 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1830 0 obj -<< -/Subtype /Link -/A 1829 0 R -/Type /Annot -/Rect [142.2 627.876 147.6 639.189] -/Border [0 0 0] ->> -endobj -1831 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1832 0 obj -<< -/Subtype /Link -/A 1831 0 R -/Type /Annot -/Rect [147.6 627.876 158.4 639.189] -/Border [0 0 0] ->> -endobj -1833 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1834 0 obj -<< -/Subtype /Link -/A 1833 0 R -/Type /Annot -/Rect [158.4 627.876 163.8 639.189] -/Border [0 0 0] ->> -endobj -1835 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1836 0 obj -<< -/Subtype /Link -/A 1835 0 R -/Type /Annot -/Rect [163.8 627.876 169.2 639.189] -/Border [0 0 0] ->> -endobj -1837 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1838 0 obj -<< -/Subtype /Link -/A 1837 0 R -/Type /Annot -/Rect [72 605.25 180 616.563] -/Border [0 0 0] ->> -endobj -1839 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1840 0 obj -<< -/Subtype /Link -/A 1839 0 R -/Type /Annot -/Rect [72 593.937 88.2 605.25] -/Border [0 0 0] ->> -endobj -1841 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1842 0 obj -<< -/Subtype /Link -/A 1841 0 R -/Type /Annot -/Rect [88.2 593.937 93.6 605.25] -/Border [0 0 0] ->> -endobj -1843 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1844 0 obj -<< -/Subtype /Link -/A 1843 0 R -/Type /Annot -/Rect [93.6 593.937 131.4 605.25] -/Border [0 0 0] ->> -endobj -1845 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1846 0 obj -<< -/Subtype /Link -/A 1845 0 R -/Type /Annot -/Rect [131.4 593.937 136.8 605.25] -/Border [0 0 0] ->> -endobj -1847 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1848 0 obj -<< -/Subtype /Link -/A 1847 0 R -/Type /Annot -/Rect [136.8 593.937 169.2 605.25] -/Border [0 0 0] ->> -endobj -1849 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1850 0 obj -<< -/Subtype /Link -/A 1849 0 R -/Type /Annot -/Rect [169.2 593.937 174.6 605.25] -/Border [0 0 0] ->> -endobj -1851 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1852 0 obj -<< -/Subtype /Link -/A 1851 0 R -/Type /Annot -/Rect [72 582.624 88.2 593.937] -/Border [0 0 0] ->> -endobj -1853 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1854 0 obj -<< -/Subtype /Link -/A 1853 0 R -/Type /Annot -/Rect [88.2 582.624 93.6 593.937] -/Border [0 0 0] ->> -endobj -1855 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1856 0 obj -<< -/Subtype /Link -/A 1855 0 R -/Type /Annot -/Rect [93.6 582.624 126 593.937] -/Border [0 0 0] ->> -endobj -1857 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1858 0 obj -<< -/Subtype /Link -/A 1857 0 R -/Type /Annot -/Rect [126 582.624 131.4 593.937] -/Border [0 0 0] ->> -endobj -1859 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1860 0 obj -<< -/Subtype /Link -/A 1859 0 R -/Type /Annot -/Rect [131.4 582.624 142.2 593.937] -/Border [0 0 0] ->> -endobj -1861 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1862 0 obj -<< -/Subtype /Link -/A 1861 0 R -/Type /Annot -/Rect [142.2 582.624 147.6 593.937] -/Border [0 0 0] ->> -endobj -1863 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1864 0 obj -<< -/Subtype /Link -/A 1863 0 R -/Type /Annot -/Rect [147.6 582.624 153 593.937] -/Border [0 0 0] ->> -endobj -1865 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1866 0 obj -<< -/Subtype /Link -/A 1865 0 R -/Type /Annot -/Rect [153 582.624 163.8 593.937] -/Border [0 0 0] ->> -endobj -1867 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1868 0 obj -<< -/Subtype /Link -/A 1867 0 R -/Type /Annot -/Rect [163.8 582.624 169.2 593.937] -/Border [0 0 0] ->> -endobj -1869 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1870 0 obj -<< -/Subtype /Link -/A 1869 0 R -/Type /Annot -/Rect [72 571.311 88.2 582.624] -/Border [0 0 0] ->> -endobj -1871 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1872 0 obj -<< -/Subtype /Link -/A 1871 0 R -/Type /Annot -/Rect [88.2 571.311 93.6 582.624] -/Border [0 0 0] ->> -endobj -1873 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1874 0 obj -<< -/Subtype /Link -/A 1873 0 R -/Type /Annot -/Rect [93.6 571.311 126 582.624] -/Border [0 0 0] ->> -endobj -1875 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1876 0 obj -<< -/Subtype /Link -/A 1875 0 R -/Type /Annot -/Rect [126 571.311 131.4 582.624] -/Border [0 0 0] ->> -endobj -1877 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1878 0 obj -<< -/Subtype /Link -/A 1877 0 R -/Type /Annot -/Rect [131.4 571.311 147.6 582.624] -/Border [0 0 0] ->> -endobj -1879 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1880 0 obj -<< -/Subtype /Link -/A 1879 0 R -/Type /Annot -/Rect [147.6 571.311 153 582.624] -/Border [0 0 0] ->> -endobj -1881 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1882 0 obj -<< -/Subtype /Link -/A 1881 0 R -/Type /Annot -/Rect [153 571.311 158.4 582.624] -/Border [0 0 0] ->> -endobj -1883 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1884 0 obj -<< -/Subtype /Link -/A 1883 0 R -/Type /Annot -/Rect [158.4 571.311 169.2 582.624] -/Border [0 0 0] ->> -endobj -1885 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1886 0 obj -<< -/Subtype /Link -/A 1885 0 R -/Type /Annot -/Rect [169.2 571.311 174.6 582.624] -/Border [0 0 0] ->> -endobj -1887 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1888 0 obj -<< -/Subtype /Link -/A 1887 0 R -/Type /Annot -/Rect [72 559.998 88.2 571.311] -/Border [0 0 0] ->> -endobj -1889 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1890 0 obj -<< -/Subtype /Link -/A 1889 0 R -/Type /Annot -/Rect [88.2 559.998 93.6 571.311] -/Border [0 0 0] ->> -endobj -1891 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1892 0 obj -<< -/Subtype /Link -/A 1891 0 R -/Type /Annot -/Rect [93.6 559.998 126 571.311] -/Border [0 0 0] ->> -endobj -1893 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1894 0 obj -<< -/Subtype /Link -/A 1893 0 R -/Type /Annot -/Rect [126 559.998 131.4 571.311] -/Border [0 0 0] ->> -endobj -1895 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1896 0 obj -<< -/Subtype /Link -/A 1895 0 R -/Type /Annot -/Rect [131.4 559.998 136.8 571.311] -/Border [0 0 0] ->> -endobj -1897 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1898 0 obj -<< -/Subtype /Link -/A 1897 0 R -/Type /Annot -/Rect [136.8 559.998 142.2 571.311] -/Border [0 0 0] ->> -endobj -1899 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1900 0 obj -<< -/Subtype /Link -/A 1899 0 R -/Type /Annot -/Rect [72 537.372 88.2 548.685] -/Border [0 0 0] ->> -endobj -1901 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1902 0 obj -<< -/Subtype /Link -/A 1901 0 R -/Type /Annot -/Rect [88.2 537.372 93.6 548.685] -/Border [0 0 0] ->> -endobj -1903 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1904 0 obj -<< -/Subtype /Link -/A 1903 0 R -/Type /Annot -/Rect [93.6 537.372 131.4 548.685] -/Border [0 0 0] ->> -endobj -1905 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1906 0 obj -<< -/Subtype /Link -/A 1905 0 R -/Type /Annot -/Rect [131.4 537.372 136.8 548.685] -/Border [0 0 0] ->> -endobj -1907 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1908 0 obj -<< -/Subtype /Link -/A 1907 0 R -/Type /Annot -/Rect [136.8 537.372 174.6 548.685] -/Border [0 0 0] ->> -endobj -1909 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1910 0 obj -<< -/Subtype /Link -/A 1909 0 R -/Type /Annot -/Rect [174.6 537.372 180 548.685] -/Border [0 0 0] ->> -endobj -1911 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1912 0 obj -<< -/Subtype /Link -/A 1911 0 R -/Type /Annot -/Rect [72 526.059 88.2 537.372] -/Border [0 0 0] ->> -endobj -1913 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1914 0 obj -<< -/Subtype /Link -/A 1913 0 R -/Type /Annot -/Rect [88.2 526.059 93.6 537.372] -/Border [0 0 0] ->> -endobj -1915 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1916 0 obj -<< -/Subtype /Link -/A 1915 0 R -/Type /Annot -/Rect [93.6 526.059 126 537.372] -/Border [0 0 0] ->> -endobj -1917 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1918 0 obj -<< -/Subtype /Link -/A 1917 0 R -/Type /Annot -/Rect [126 526.059 131.4 537.372] -/Border [0 0 0] ->> -endobj -1919 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1920 0 obj -<< -/Subtype /Link -/A 1919 0 R -/Type /Annot -/Rect [131.4 526.059 147.6 537.372] -/Border [0 0 0] ->> -endobj -1921 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1922 0 obj -<< -/Subtype /Link -/A 1921 0 R -/Type /Annot -/Rect [147.6 526.059 153 537.372] -/Border [0 0 0] ->> -endobj -1923 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1924 0 obj -<< -/Subtype /Link -/A 1923 0 R -/Type /Annot -/Rect [153 526.059 158.4 537.372] -/Border [0 0 0] ->> -endobj -1925 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1926 0 obj -<< -/Subtype /Link -/A 1925 0 R -/Type /Annot -/Rect [158.4 526.059 169.2 537.372] -/Border [0 0 0] ->> -endobj -1927 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1928 0 obj -<< -/Subtype /Link -/A 1927 0 R -/Type /Annot -/Rect [169.2 526.059 174.6 537.372] -/Border [0 0 0] ->> -endobj -1929 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1930 0 obj -<< -/Subtype /Link -/A 1929 0 R -/Type /Annot -/Rect [72 514.746 88.2 526.059] -/Border [0 0 0] ->> -endobj -1931 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1932 0 obj -<< -/Subtype /Link -/A 1931 0 R -/Type /Annot -/Rect [88.2 514.746 93.6 526.059] -/Border [0 0 0] ->> -endobj -1933 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1934 0 obj -<< -/Subtype /Link -/A 1933 0 R -/Type /Annot -/Rect [93.6 514.746 126 526.059] -/Border [0 0 0] ->> -endobj -1935 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1936 0 obj -<< -/Subtype /Link -/A 1935 0 R -/Type /Annot -/Rect [126 514.746 131.4 526.059] -/Border [0 0 0] ->> -endobj -1937 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1938 0 obj -<< -/Subtype /Link -/A 1937 0 R -/Type /Annot -/Rect [131.4 514.746 147.6 526.059] -/Border [0 0 0] ->> -endobj -1939 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1940 0 obj -<< -/Subtype /Link -/A 1939 0 R -/Type /Annot -/Rect [147.6 514.746 153 526.059] -/Border [0 0 0] ->> -endobj -1941 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1942 0 obj -<< -/Subtype /Link -/A 1941 0 R -/Type /Annot -/Rect [153 514.746 158.4 526.059] -/Border [0 0 0] ->> -endobj -1943 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1944 0 obj -<< -/Subtype /Link -/A 1943 0 R -/Type /Annot -/Rect [158.4 514.746 169.2 526.059] -/Border [0 0 0] ->> -endobj -1945 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1946 0 obj -<< -/Subtype /Link -/A 1945 0 R -/Type /Annot -/Rect [169.2 514.746 174.6 526.059] -/Border [0 0 0] ->> -endobj -1947 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1948 0 obj -<< -/Subtype /Link -/A 1947 0 R -/Type /Annot -/Rect [72 503.433 88.2 514.746] -/Border [0 0 0] ->> -endobj -1949 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1950 0 obj -<< -/Subtype /Link -/A 1949 0 R -/Type /Annot -/Rect [88.2 503.433 93.6 514.746] -/Border [0 0 0] ->> -endobj -1951 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1952 0 obj -<< -/Subtype /Link -/A 1951 0 R -/Type /Annot -/Rect [93.6 503.433 126 514.746] -/Border [0 0 0] ->> -endobj -1953 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1954 0 obj -<< -/Subtype /Link -/A 1953 0 R -/Type /Annot -/Rect [126 503.433 131.4 514.746] -/Border [0 0 0] ->> -endobj -1955 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1956 0 obj -<< -/Subtype /Link -/A 1955 0 R -/Type /Annot -/Rect [131.4 503.433 136.8 514.746] -/Border [0 0 0] ->> -endobj -1957 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1958 0 obj -<< -/Subtype /Link -/A 1957 0 R -/Type /Annot -/Rect [136.8 503.433 142.2 514.746] -/Border [0 0 0] ->> -endobj -1959 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1960 0 obj -<< -/Subtype /Link -/A 1959 0 R -/Type /Annot -/Rect [72 480.807 471.6 492.12] -/Border [0 0 0] ->> -endobj -1961 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1962 0 obj -<< -/Subtype /Link -/A 1961 0 R -/Type /Annot -/Rect [72 469.494 88.2 480.807] -/Border [0 0 0] ->> -endobj -1963 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1964 0 obj -<< -/Subtype /Link -/A 1963 0 R -/Type /Annot -/Rect [88.2 469.494 93.6 480.807] -/Border [0 0 0] ->> -endobj -1965 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1966 0 obj -<< -/Subtype /Link -/A 1965 0 R -/Type /Annot -/Rect [93.6 469.494 131.4 480.807] -/Border [0 0 0] ->> -endobj -1967 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1968 0 obj -<< -/Subtype /Link -/A 1967 0 R -/Type /Annot -/Rect [131.4 469.494 136.8 480.807] -/Border [0 0 0] ->> -endobj -1969 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1970 0 obj -<< -/Subtype /Link -/A 1969 0 R -/Type /Annot -/Rect [136.8 469.494 180 480.807] -/Border [0 0 0] ->> -endobj -1971 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1972 0 obj -<< -/Subtype /Link -/A 1971 0 R -/Type /Annot -/Rect [180 469.494 185.4 480.807] -/Border [0 0 0] ->> -endobj -1973 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1974 0 obj -<< -/Subtype /Link -/A 1973 0 R -/Type /Annot -/Rect [72 458.181 88.2 469.494] -/Border [0 0 0] ->> -endobj -1975 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1976 0 obj -<< -/Subtype /Link -/A 1975 0 R -/Type /Annot -/Rect [88.2 458.181 93.6 469.494] -/Border [0 0 0] ->> -endobj -1977 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1978 0 obj -<< -/Subtype /Link -/A 1977 0 R -/Type /Annot -/Rect [93.6 458.181 126 469.494] -/Border [0 0 0] ->> -endobj -1979 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1980 0 obj -<< -/Subtype /Link -/A 1979 0 R -/Type /Annot -/Rect [126 458.181 131.4 469.494] -/Border [0 0 0] ->> -endobj -1981 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1982 0 obj -<< -/Subtype /Link -/A 1981 0 R -/Type /Annot -/Rect [131.4 458.181 147.6 469.494] -/Border [0 0 0] ->> -endobj -1983 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1984 0 obj -<< -/Subtype /Link -/A 1983 0 R -/Type /Annot -/Rect [147.6 458.181 153 469.494] -/Border [0 0 0] ->> -endobj -1985 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1986 0 obj -<< -/Subtype /Link -/A 1985 0 R -/Type /Annot -/Rect [153 458.181 158.4 469.494] -/Border [0 0 0] ->> -endobj -1987 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1988 0 obj -<< -/Subtype /Link -/A 1987 0 R -/Type /Annot -/Rect [158.4 458.181 169.2 469.494] -/Border [0 0 0] ->> -endobj -1989 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1990 0 obj -<< -/Subtype /Link -/A 1989 0 R -/Type /Annot -/Rect [169.2 458.181 174.6 469.494] -/Border [0 0 0] ->> -endobj -1991 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1992 0 obj -<< -/Subtype /Link -/A 1991 0 R -/Type /Annot -/Rect [72 446.868 88.2 458.181] -/Border [0 0 0] ->> -endobj -1993 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1994 0 obj -<< -/Subtype /Link -/A 1993 0 R -/Type /Annot -/Rect [88.2 446.868 93.6 458.181] -/Border [0 0 0] ->> -endobj -1995 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1996 0 obj -<< -/Subtype /Link -/A 1995 0 R -/Type /Annot -/Rect [93.6 446.868 126 458.181] -/Border [0 0 0] ->> -endobj -1997 0 obj -<< -/S /URI -/URI (false) ->> -endobj -1998 0 obj -<< -/Subtype /Link -/A 1997 0 R -/Type /Annot -/Rect [126 446.868 131.4 458.181] -/Border [0 0 0] ->> -endobj -1999 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2000 0 obj -<< -/Subtype /Link -/A 1999 0 R -/Type /Annot -/Rect [131.4 446.868 147.6 458.181] -/Border [0 0 0] ->> -endobj -2001 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2002 0 obj -<< -/Subtype /Link -/A 2001 0 R -/Type /Annot -/Rect [147.6 446.868 153 458.181] -/Border [0 0 0] ->> -endobj -2003 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2004 0 obj -<< -/Subtype /Link -/A 2003 0 R -/Type /Annot -/Rect [153 446.868 158.4 458.181] -/Border [0 0 0] ->> -endobj -2005 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2006 0 obj -<< -/Subtype /Link -/A 2005 0 R -/Type /Annot -/Rect [158.4 446.868 169.2 458.181] -/Border [0 0 0] ->> -endobj -2007 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2008 0 obj -<< -/Subtype /Link -/A 2007 0 R -/Type /Annot -/Rect [169.2 446.868 174.6 458.181] -/Border [0 0 0] ->> -endobj -2009 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2010 0 obj -<< -/Subtype /Link -/A 2009 0 R -/Type /Annot -/Rect [174.6 446.868 180 458.181] -/Border [0 0 0] ->> -endobj -2011 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2012 0 obj -<< -/Subtype /Link -/A 2011 0 R -/Type /Annot -/Rect [180 446.868 190.8 458.181] -/Border [0 0 0] ->> -endobj -2013 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2014 0 obj -<< -/Subtype /Link -/A 2013 0 R -/Type /Annot -/Rect [190.8 446.868 196.2 458.181] -/Border [0 0 0] ->> -endobj -2015 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2016 0 obj -<< -/Subtype /Link -/A 2015 0 R -/Type /Annot -/Rect [72 435.555 88.2 446.868] -/Border [0 0 0] ->> -endobj -2017 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2018 0 obj -<< -/Subtype /Link -/A 2017 0 R -/Type /Annot -/Rect [88.2 435.555 93.6 446.868] -/Border [0 0 0] ->> -endobj -2019 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2020 0 obj -<< -/Subtype /Link -/A 2019 0 R -/Type /Annot -/Rect [93.6 435.555 126 446.868] -/Border [0 0 0] ->> -endobj -2021 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2022 0 obj -<< -/Subtype /Link -/A 2021 0 R -/Type /Annot -/Rect [126 435.555 131.4 446.868] -/Border [0 0 0] ->> -endobj -2023 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2024 0 obj -<< -/Subtype /Link -/A 2023 0 R -/Type /Annot -/Rect [131.4 435.555 136.8 446.868] -/Border [0 0 0] ->> -endobj -2025 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2026 0 obj -<< -/Subtype /Link -/A 2025 0 R -/Type /Annot -/Rect [136.8 435.555 142.2 446.868] -/Border [0 0 0] ->> -endobj -2027 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2028 0 obj -<< -/Subtype /Link -/A 2027 0 R -/Type /Annot -/Rect [72 412.929 185.4 424.242] -/Border [0 0 0] ->> -endobj -2029 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2030 0 obj -<< -/Subtype /Link -/A 2029 0 R -/Type /Annot -/Rect [72 401.616 88.2 412.929] -/Border [0 0 0] ->> -endobj -2031 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2032 0 obj -<< -/Subtype /Link -/A 2031 0 R -/Type /Annot -/Rect [88.2 401.616 93.6 412.929] -/Border [0 0 0] ->> -endobj -2033 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2034 0 obj -<< -/Subtype /Link -/A 2033 0 R -/Type /Annot -/Rect [93.6 401.616 136.8 412.929] -/Border [0 0 0] ->> -endobj -2035 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2036 0 obj -<< -/Subtype /Link -/A 2035 0 R -/Type /Annot -/Rect [136.8 401.616 142.2 412.929] -/Border [0 0 0] ->> -endobj -2037 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2038 0 obj -<< -/Subtype /Link -/A 2037 0 R -/Type /Annot -/Rect [142.2 401.616 180 412.929] -/Border [0 0 0] ->> -endobj -2039 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2040 0 obj -<< -/Subtype /Link -/A 2039 0 R -/Type /Annot -/Rect [180 401.616 185.4 412.929] -/Border [0 0 0] ->> -endobj -2041 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2042 0 obj -<< -/Subtype /Link -/A 2041 0 R -/Type /Annot -/Rect [72 390.303 88.2 401.616] -/Border [0 0 0] ->> -endobj -2043 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2044 0 obj -<< -/Subtype /Link -/A 2043 0 R -/Type /Annot -/Rect [88.2 390.303 93.6 401.616] -/Border [0 0 0] ->> -endobj -2045 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2046 0 obj -<< -/Subtype /Link -/A 2045 0 R -/Type /Annot -/Rect [93.6 390.303 115.2 401.616] -/Border [0 0 0] ->> -endobj -2047 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2048 0 obj -<< -/Subtype /Link -/A 2047 0 R -/Type /Annot -/Rect [115.2 390.303 120.6 401.616] -/Border [0 0 0] ->> -endobj -2049 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2050 0 obj -<< -/Subtype /Link -/A 2049 0 R -/Type /Annot -/Rect [120.6 390.303 131.4 401.616] -/Border [0 0 0] ->> -endobj -2051 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2052 0 obj -<< -/Subtype /Link -/A 2051 0 R -/Type /Annot -/Rect [131.4 390.303 136.8 401.616] -/Border [0 0 0] ->> -endobj -2053 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2054 0 obj -<< -/Subtype /Link -/A 2053 0 R -/Type /Annot -/Rect [136.8 390.303 142.2 401.616] -/Border [0 0 0] ->> -endobj -2055 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2056 0 obj -<< -/Subtype /Link -/A 2055 0 R -/Type /Annot -/Rect [142.2 390.303 158.4 401.616] -/Border [0 0 0] ->> -endobj -2057 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2058 0 obj -<< -/Subtype /Link -/A 2057 0 R -/Type /Annot -/Rect [158.4 390.303 163.8 401.616] -/Border [0 0 0] ->> -endobj -2059 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2060 0 obj -<< -/Subtype /Link -/A 2059 0 R -/Type /Annot -/Rect [163.8 390.303 169.2 401.616] -/Border [0 0 0] ->> -endobj -2061 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2062 0 obj -<< -/Subtype /Link -/A 2061 0 R -/Type /Annot -/Rect [169.2 390.303 180 401.616] -/Border [0 0 0] ->> -endobj -2063 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2064 0 obj -<< -/Subtype /Link -/A 2063 0 R -/Type /Annot -/Rect [180 390.303 185.4 401.616] -/Border [0 0 0] ->> -endobj -2065 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2066 0 obj -<< -/Subtype /Link -/A 2065 0 R -/Type /Annot -/Rect [185.4 390.303 190.8 401.616] -/Border [0 0 0] ->> -endobj -2067 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2068 0 obj -<< -/Subtype /Link -/A 2067 0 R -/Type /Annot -/Rect [190.8 390.303 201.6 401.616] -/Border [0 0 0] ->> -endobj -2069 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2070 0 obj -<< -/Subtype /Link -/A 2069 0 R -/Type /Annot -/Rect [201.6 390.303 207 401.616] -/Border [0 0 0] ->> -endobj -2071 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2072 0 obj -<< -/Subtype /Link -/A 2071 0 R -/Type /Annot -/Rect [72 378.99 88.2 390.303] -/Border [0 0 0] ->> -endobj -2073 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2074 0 obj -<< -/Subtype /Link -/A 2073 0 R -/Type /Annot -/Rect [88.2 378.99 93.6 390.303] -/Border [0 0 0] ->> -endobj -2075 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2076 0 obj -<< -/Subtype /Link -/A 2075 0 R -/Type /Annot -/Rect [93.6 378.99 126 390.303] -/Border [0 0 0] ->> -endobj -2077 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2078 0 obj -<< -/Subtype /Link -/A 2077 0 R -/Type /Annot -/Rect [126 378.99 131.4 390.303] -/Border [0 0 0] ->> -endobj -2079 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2080 0 obj -<< -/Subtype /Link -/A 2079 0 R -/Type /Annot -/Rect [131.4 378.99 136.8 390.303] -/Border [0 0 0] ->> -endobj -2081 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2082 0 obj -<< -/Subtype /Link -/A 2081 0 R -/Type /Annot -/Rect [136.8 378.99 142.2 390.303] -/Border [0 0 0] ->> -endobj -2083 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2084 0 obj -<< -/Subtype /Link -/A 2083 0 R -/Type /Annot -/Rect [72 356.364 88.2 367.677] -/Border [0 0 0] ->> -endobj -2085 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2086 0 obj -<< -/Subtype /Link -/A 2085 0 R -/Type /Annot -/Rect [88.2 356.364 93.6 367.677] -/Border [0 0 0] ->> -endobj -2087 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2088 0 obj -<< -/Subtype /Link -/A 2087 0 R -/Type /Annot -/Rect [93.6 356.364 136.8 367.677] -/Border [0 0 0] ->> -endobj -2089 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2090 0 obj -<< -/Subtype /Link -/A 2089 0 R -/Type /Annot -/Rect [136.8 356.364 142.2 367.677] -/Border [0 0 0] ->> -endobj -2091 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2092 0 obj -<< -/Subtype /Link -/A 2091 0 R -/Type /Annot -/Rect [142.2 356.364 180 367.677] -/Border [0 0 0] ->> -endobj -2093 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2094 0 obj -<< -/Subtype /Link -/A 2093 0 R -/Type /Annot -/Rect [180 356.364 185.4 367.677] -/Border [0 0 0] ->> -endobj -2095 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2096 0 obj -<< -/Subtype /Link -/A 2095 0 R -/Type /Annot -/Rect [72 345.051 88.2 356.364] -/Border [0 0 0] ->> -endobj -2097 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2098 0 obj -<< -/Subtype /Link -/A 2097 0 R -/Type /Annot -/Rect [88.2 345.051 93.6 356.364] -/Border [0 0 0] ->> -endobj -2099 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2100 0 obj -<< -/Subtype /Link -/A 2099 0 R -/Type /Annot -/Rect [93.6 345.051 115.2 356.364] -/Border [0 0 0] ->> -endobj -2101 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2102 0 obj -<< -/Subtype /Link -/A 2101 0 R -/Type /Annot -/Rect [115.2 345.051 120.6 356.364] -/Border [0 0 0] ->> -endobj -2103 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2104 0 obj -<< -/Subtype /Link -/A 2103 0 R -/Type /Annot -/Rect [120.6 345.051 136.8 356.364] -/Border [0 0 0] ->> -endobj -2105 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2106 0 obj -<< -/Subtype /Link -/A 2105 0 R -/Type /Annot -/Rect [136.8 345.051 142.2 356.364] -/Border [0 0 0] ->> -endobj -2107 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2108 0 obj -<< -/Subtype /Link -/A 2107 0 R -/Type /Annot -/Rect [142.2 345.051 147.6 356.364] -/Border [0 0 0] ->> -endobj -2109 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2110 0 obj -<< -/Subtype /Link -/A 2109 0 R -/Type /Annot -/Rect [147.6 345.051 163.8 356.364] -/Border [0 0 0] ->> -endobj -2111 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2112 0 obj -<< -/Subtype /Link -/A 2111 0 R -/Type /Annot -/Rect [163.8 345.051 169.2 356.364] -/Border [0 0 0] ->> -endobj -2113 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2114 0 obj -<< -/Subtype /Link -/A 2113 0 R -/Type /Annot -/Rect [169.2 345.051 174.6 356.364] -/Border [0 0 0] ->> -endobj -2115 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2116 0 obj -<< -/Subtype /Link -/A 2115 0 R -/Type /Annot -/Rect [174.6 345.051 185.4 356.364] -/Border [0 0 0] ->> -endobj -2117 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2118 0 obj -<< -/Subtype /Link -/A 2117 0 R -/Type /Annot -/Rect [185.4 345.051 190.8 356.364] -/Border [0 0 0] ->> -endobj -2119 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2120 0 obj -<< -/Subtype /Link -/A 2119 0 R -/Type /Annot -/Rect [190.8 345.051 196.2 356.364] -/Border [0 0 0] ->> -endobj -2121 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2122 0 obj -<< -/Subtype /Link -/A 2121 0 R -/Type /Annot -/Rect [196.2 345.051 207 356.364] -/Border [0 0 0] ->> -endobj -2123 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2124 0 obj -<< -/Subtype /Link -/A 2123 0 R -/Type /Annot -/Rect [207 345.051 212.4 356.364] -/Border [0 0 0] ->> -endobj -2125 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2126 0 obj -<< -/Subtype /Link -/A 2125 0 R -/Type /Annot -/Rect [72 333.738 88.2 345.051] -/Border [0 0 0] ->> -endobj -2127 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2128 0 obj -<< -/Subtype /Link -/A 2127 0 R -/Type /Annot -/Rect [88.2 333.738 93.6 345.051] -/Border [0 0 0] ->> -endobj -2129 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2130 0 obj -<< -/Subtype /Link -/A 2129 0 R -/Type /Annot -/Rect [93.6 333.738 126 345.051] -/Border [0 0 0] ->> -endobj -2131 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2132 0 obj -<< -/Subtype /Link -/A 2131 0 R -/Type /Annot -/Rect [126 333.738 131.4 345.051] -/Border [0 0 0] ->> -endobj -2133 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2134 0 obj -<< -/Subtype /Link -/A 2133 0 R -/Type /Annot -/Rect [131.4 333.738 136.8 345.051] -/Border [0 0 0] ->> -endobj -2135 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2136 0 obj -<< -/Subtype /Link -/A 2135 0 R -/Type /Annot -/Rect [136.8 333.738 142.2 345.051] -/Border [0 0 0] ->> -endobj -2137 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2138 0 obj -<< -/Subtype /Link -/A 2137 0 R -/Type /Annot -/Rect [72 311.112 88.2 322.425] -/Border [0 0 0] ->> -endobj -2139 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2140 0 obj -<< -/Subtype /Link -/A 2139 0 R -/Type /Annot -/Rect [88.2 311.112 93.6 322.425] -/Border [0 0 0] ->> -endobj -2141 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2142 0 obj -<< -/Subtype /Link -/A 2141 0 R -/Type /Annot -/Rect [93.6 311.112 136.8 322.425] -/Border [0 0 0] ->> -endobj -2143 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2144 0 obj -<< -/Subtype /Link -/A 2143 0 R -/Type /Annot -/Rect [136.8 311.112 142.2 322.425] -/Border [0 0 0] ->> -endobj -2145 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2146 0 obj -<< -/Subtype /Link -/A 2145 0 R -/Type /Annot -/Rect [142.2 311.112 180 322.425] -/Border [0 0 0] ->> -endobj -2147 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2148 0 obj -<< -/Subtype /Link -/A 2147 0 R -/Type /Annot -/Rect [180 311.112 185.4 322.425] -/Border [0 0 0] ->> -endobj -2149 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2150 0 obj -<< -/Subtype /Link -/A 2149 0 R -/Type /Annot -/Rect [72 299.799 88.2 311.112] -/Border [0 0 0] ->> -endobj -2151 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2152 0 obj -<< -/Subtype /Link -/A 2151 0 R -/Type /Annot -/Rect [88.2 299.799 93.6 311.112] -/Border [0 0 0] ->> -endobj -2153 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2154 0 obj -<< -/Subtype /Link -/A 2153 0 R -/Type /Annot -/Rect [93.6 299.799 115.2 311.112] -/Border [0 0 0] ->> -endobj -2155 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2156 0 obj -<< -/Subtype /Link -/A 2155 0 R -/Type /Annot -/Rect [115.2 299.799 120.6 311.112] -/Border [0 0 0] ->> -endobj -2157 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2158 0 obj -<< -/Subtype /Link -/A 2157 0 R -/Type /Annot -/Rect [120.6 299.799 136.8 311.112] -/Border [0 0 0] ->> -endobj -2159 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2160 0 obj -<< -/Subtype /Link -/A 2159 0 R -/Type /Annot -/Rect [136.8 299.799 142.2 311.112] -/Border [0 0 0] ->> -endobj -2161 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2162 0 obj -<< -/Subtype /Link -/A 2161 0 R -/Type /Annot -/Rect [142.2 299.799 147.6 311.112] -/Border [0 0 0] ->> -endobj -2163 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2164 0 obj -<< -/Subtype /Link -/A 2163 0 R -/Type /Annot -/Rect [147.6 299.799 163.8 311.112] -/Border [0 0 0] ->> -endobj -2165 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2166 0 obj -<< -/Subtype /Link -/A 2165 0 R -/Type /Annot -/Rect [163.8 299.799 169.2 311.112] -/Border [0 0 0] ->> -endobj -2167 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2168 0 obj -<< -/Subtype /Link -/A 2167 0 R -/Type /Annot -/Rect [169.2 299.799 174.6 311.112] -/Border [0 0 0] ->> -endobj -2169 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2170 0 obj -<< -/Subtype /Link -/A 2169 0 R -/Type /Annot -/Rect [174.6 299.799 185.4 311.112] -/Border [0 0 0] ->> -endobj -2171 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2172 0 obj -<< -/Subtype /Link -/A 2171 0 R -/Type /Annot -/Rect [185.4 299.799 190.8 311.112] -/Border [0 0 0] ->> -endobj -2173 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2174 0 obj -<< -/Subtype /Link -/A 2173 0 R -/Type /Annot -/Rect [190.8 299.799 196.2 311.112] -/Border [0 0 0] ->> -endobj -2175 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2176 0 obj -<< -/Subtype /Link -/A 2175 0 R -/Type /Annot -/Rect [196.2 299.799 207 311.112] -/Border [0 0 0] ->> -endobj -2177 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2178 0 obj -<< -/Subtype /Link -/A 2177 0 R -/Type /Annot -/Rect [207 299.799 212.4 311.112] -/Border [0 0 0] ->> -endobj -2179 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2180 0 obj -<< -/Subtype /Link -/A 2179 0 R -/Type /Annot -/Rect [72 288.486 88.2 299.799] -/Border [0 0 0] ->> -endobj -2181 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2182 0 obj -<< -/Subtype /Link -/A 2181 0 R -/Type /Annot -/Rect [88.2 288.486 93.6 299.799] -/Border [0 0 0] ->> -endobj -2183 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2184 0 obj -<< -/Subtype /Link -/A 2183 0 R -/Type /Annot -/Rect [93.6 288.486 126 299.799] -/Border [0 0 0] ->> -endobj -2185 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2186 0 obj -<< -/Subtype /Link -/A 2185 0 R -/Type /Annot -/Rect [126 288.486 131.4 299.799] -/Border [0 0 0] ->> -endobj -2187 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2188 0 obj -<< -/Subtype /Link -/A 2187 0 R -/Type /Annot -/Rect [131.4 288.486 136.8 299.799] -/Border [0 0 0] ->> -endobj -2189 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2190 0 obj -<< -/Subtype /Link -/A 2189 0 R -/Type /Annot -/Rect [136.8 288.486 142.2 299.799] -/Border [0 0 0] ->> -endobj -2191 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2192 0 obj -<< -/Subtype /Link -/A 2191 0 R -/Type /Annot -/Rect [72 265.986 282.390625 278.486] -/Border [0 0 0] ->> -endobj -1805 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 1803 0 R -/Resources 1804 0 R -/Annots [1808 0 R 1810 0 R 1812 0 R 1814 0 R 1816 0 R 1818 0 R 1820 0 R 1822 0 R 1824 0 R 1826 0 R 1828 0 R 1830 0 R 1832 0 R 1834 0 R 1836 0 R 1838 0 R 1840 0 R 1842 0 R 1844 0 R 1846 0 R 1848 0 R 1850 0 R 1852 0 R 1854 0 R 1856 0 R 1858 0 R 1860 0 R 1862 0 R 1864 0 R 1866 0 R 1868 0 R 1870 0 R 1872 0 R 1874 0 R 1876 0 R 1878 0 R 1880 0 R 1882 0 R 1884 0 R 1886 0 R 1888 0 R 1890 0 R 1892 0 R 1894 0 R 1896 0 R 1898 0 R 1900 0 R 1902 0 R 1904 0 R 1906 0 R 1908 0 R 1910 0 R 1912 0 R 1914 0 R 1916 0 R 1918 0 R 1920 0 R 1922 0 R 1924 0 R 1926 0 R 1928 0 R 1930 0 R 1932 0 R 1934 0 R 1936 0 R 1938 0 R 1940 0 R 1942 0 R 1944 0 R 1946 0 R 1948 0 R 1950 0 R 1952 0 R 1954 0 R 1956 0 R 1958 0 R 1960 0 R 1962 0 R 1964 0 R 1966 0 R 1968 0 R 1970 0 R 1972 0 R 1974 0 R 1976 0 R 1978 0 R 1980 0 R 1982 0 R 1984 0 R 1986 0 R 1988 0 R 1990 0 R 1992 0 R 1994 0 R 1996 0 R 1998 0 R 2000 0 R 2002 0 R 2004 0 R 2006 0 R 2008 0 R 2010 0 R 2012 0 R 2014 0 R 2016 0 R 2018 0 R 2020 0 R 2022 0 R 2024 0 R 2026 0 R 2028 0 R 2030 0 R 2032 0 R 2034 0 R 2036 0 R 2038 0 R 2040 0 R 2042 0 R 2044 0 R 2046 0 R 2048 0 R 2050 0 R 2052 0 R 2054 0 R 2056 0 R 2058 0 R 2060 0 R 2062 0 R 2064 0 R 2066 0 R 2068 0 R 2070 0 R 2072 0 R 2074 0 R 2076 0 R 2078 0 R 2080 0 R 2082 0 R 2084 0 R 2086 0 R 2088 0 R 2090 0 R 2092 0 R 2094 0 R 2096 0 R 2098 0 R 2100 0 R 2102 0 R 2104 0 R 2106 0 R 2108 0 R 2110 0 R 2112 0 R 2114 0 R 2116 0 R 2118 0 R 2120 0 R 2122 0 R 2124 0 R 2126 0 R 2128 0 R 2130 0 R 2132 0 R 2134 0 R 2136 0 R 2138 0 R 2140 0 R 2142 0 R 2144 0 R 2146 0 R 2148 0 R 2150 0 R 2152 0 R 2154 0 R 2156 0 R 2158 0 R 2160 0 R 2162 0 R 2164 0 R 2166 0 R 2168 0 R 2170 0 R 2172 0 R 2174 0 R 2176 0 R 2178 0 R 2180 0 R 2182 0 R 2184 0 R 2186 0 R 2188 0 R 2190 0 R 2192 0 R] ->> -endobj -1804 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -1803 0 obj -<< -/Length 2045 -/Filter /FlateDecode ->> -stream -x]ˎ6+e&Y}٥]Ō=6h -/_Gv:4Nⱆ{u(Y OҸz*{#e[Zf 6=l޿u 2vU6&JEkb2T5B=hTzmoCY$Q ns[NԪx6 -)x{Ul@!P_!۲]ƚ VwHKy6m:ϥt},f<߫ -_t)}<vW:*f/i^J}\E^ yʤD_I(l!:U?`Vu3{k~ɯ#jSE㻒aIoI5S;=?i%ɧ8#ًPck3>6|\RP&Y^*#G>~tQ8{\X2f{DaPN=r1Z|(m$X*,ZαS;nGn}}1Y}2JU^1ݼ_Wg:*SfRM 2Thy!j*$jKnDڬ2o~"nImlɝĕsN؇0ŹU@]!v]DR WϮ+%>w@5<QDԕL>E;J'uqofwe>Ak[9ŜQ;XI''*jjv>ẄtTDy靟csųicx!J?%Zc.tU<5k"(ǂ2NwNy9.&6"i)iy ԋ1gjq~ jjpDzA|F@;)~q3#98AS#Vx1/\V&R<XIWkd#P6|+Ҋ粺RܰbKNӪQ=wb|餾K8-߯& ?8^tMi'h.\ϥI!8j IZH: FN<)51µliM}1WbF$' _KN^?Dxyچw/ŭFȔ\}XIO*⫵vϹdx:+tƊIw|VeX}\i~CS%3IO]iDs|u9@']c9F*^.f CۈEܐ9-!tc/f CeЍ0A;wexz>8H2v}簗ߟt9O/=98?Qjy> !IA8wpe.u.%p} 1G#`j #ty ,7Ce0A;wdxq ߟ#)pzs~sSv- 7<: !IA8sqt!+Ap;0Qw|In|ٶ^tiC2-|dC៰ۻAPu}S8Fr9P.6DGuC/4NW[73m)^K'RxtȘj -; _;8Dtij ۣCl׀bbLsۇԷbyͿ5z -endstream -endobj -2197 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2198 0 obj -<< -/Subtype /Link -/A 2197 0 R -/Type /Annot -/Rect [72 695.502 167.292 720] -/Border [0 0 0] ->> -endobj -2199 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2200 0 obj -<< -/Subtype /Link -/A 2199 0 R -/Type /Annot -/Rect [72 673.002 93.201172 685.502] -/Border [0 0 0] ->> -endobj -2201 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2202 0 obj -<< -/Subtype /Link -/A 2201 0 R -/Type /Annot -/Rect [93.201172 672.932 117.201172 685.502] -/Border [0 0 0] ->> -endobj -2203 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2204 0 obj -<< -/Subtype /Link -/A 2203 0 R -/Type /Annot -/Rect [117.201172 673.002 497.918945 685.502] -/Border [0 0 0] ->> -endobj -2205 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2206 0 obj -<< -/Subtype /Link -/A 2205 0 R -/Type /Annot -/Rect [72 660.502 490.242188 673.002] -/Border [0 0 0] ->> -endobj -2207 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2208 0 obj -<< -/Subtype /Link -/A 2207 0 R -/Type /Annot -/Rect [72 648.002 179.592773 660.502] -/Border [0 0 0] ->> -endobj -2209 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2210 0 obj -<< -/Subtype /Link -/A 2209 0 R -/Type /Annot -/Rect [179.592773 647.932 209.592773 660.502] -/Border [0 0 0] ->> -endobj -2211 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2212 0 obj -<< -/Subtype /Link -/A 2211 0 R -/Type /Annot -/Rect [209.592773 648.002 233.303711 660.502] -/Border [0 0 0] ->> -endobj -2213 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2214 0 obj -<< -/Subtype /Link -/A 2213 0 R -/Type /Annot -/Rect [233.303711 647.932 263.303711 660.502] -/Border [0 0 0] ->> -endobj -2215 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2216 0 obj -<< -/Subtype /Link -/A 2215 0 R -/Type /Annot -/Rect [263.303711 648.002 266.750977 660.502] -/Border [0 0 0] ->> -endobj -2217 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2218 0 obj -<< -/Subtype /Link -/A 2217 0 R -/Type /Annot -/Rect [72 625.502 93.201172 638.002] -/Border [0 0 0] ->> -endobj -2219 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2220 0 obj -<< -/Subtype /Link -/A 2219 0 R -/Type /Annot -/Rect [93.201172 625.432 123.201172 638.002] -/Border [0 0 0] ->> -endobj -2221 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2222 0 obj -<< -/Subtype /Link -/A 2221 0 R -/Type /Annot -/Rect [123.201172 625.502 457.742188 638.002] -/Border [0 0 0] ->> -endobj -2223 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2224 0 obj -<< -/Subtype /Link -/A 2223 0 R -/Type /Annot -/Rect [457.742188 625.432 487.742188 638.002] -/Border [0 0 0] ->> -endobj -2225 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2226 0 obj -<< -/Subtype /Link -/A 2225 0 R -/Type /Annot -/Rect [487.742188 625.502 525.696289 638.002] -/Border [0 0 0] ->> -endobj -2227 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2228 0 obj -<< -/Subtype /Link -/A 2227 0 R -/Type /Annot -/Rect [72 613.002 408.064453 625.502] -/Border [0 0 0] ->> -endobj -2229 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2230 0 obj -<< -/Subtype /Link -/A 2229 0 R -/Type /Annot -/Rect [408.064453 612.932 438.064453 625.502] -/Border [0 0 0] ->> -endobj -2231 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2232 0 obj -<< -/Subtype /Link -/A 2231 0 R -/Type /Annot -/Rect [438.064453 613.002 527.825195 625.502] -/Border [0 0 0] ->> -endobj -2233 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2234 0 obj -<< -/Subtype /Link -/A 2233 0 R -/Type /Annot -/Rect [72 600.502 103.982422 613.002] -/Border [0 0 0] ->> -endobj -2235 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2236 0 obj -<< -/Subtype /Link -/A 2235 0 R -/Type /Annot -/Rect [103.982422 600.432 139.982422 613.002] -/Border [0 0 0] ->> -endobj -2237 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2238 0 obj -<< -/Subtype /Link -/A 2237 0 R -/Type /Annot -/Rect [139.982422 600.502 182.902344 613.002] -/Border [0 0 0] ->> -endobj -2239 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2240 0 obj -<< -/Subtype /Link -/A 2239 0 R -/Type /Annot -/Rect [182.902344 600.432 212.902344 613.002] -/Border [0 0 0] ->> -endobj -2241 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2242 0 obj -<< -/Subtype /Link -/A 2241 0 R -/Type /Annot -/Rect [212.902344 600.502 303.390625 613.002] -/Border [0 0 0] ->> -endobj -2243 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2244 0 obj -<< -/Subtype /Link -/A 2243 0 R -/Type /Annot -/Rect [303.390625 600.432 309.390625 613.002] -/Border [0 0 0] ->> -endobj -2245 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2246 0 obj -<< -/Subtype /Link -/A 2245 0 R -/Type /Annot -/Rect [309.390625 600.502 395.708984 613.002] -/Border [0 0 0] ->> -endobj -2247 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2248 0 obj -<< -/Subtype /Link -/A 2247 0 R -/Type /Annot -/Rect [395.708984 600.432 431.708984 613.002] -/Border [0 0 0] ->> -endobj -2249 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2250 0 obj -<< -/Subtype /Link -/A 2249 0 R -/Type /Annot -/Rect [431.708984 600.502 537.832031 613.002] -/Border [0 0 0] ->> -endobj -2251 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2252 0 obj -<< -/Subtype /Link -/A 2251 0 R -/Type /Annot -/Rect [72 588.002 150.979492 600.502] -/Border [0 0 0] ->> -endobj -2253 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2254 0 obj -<< -/Subtype /Link -/A 2253 0 R -/Type /Annot -/Rect [72 565.502 535.115234 578.002] -/Border [0 0 0] ->> -endobj -2255 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2256 0 obj -<< -/Subtype /Link -/A 2255 0 R -/Type /Annot -/Rect [72 553.002 239.314453 565.502] -/Border [0 0 0] ->> -endobj -2257 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2258 0 obj -<< -/Subtype /Link -/A 2257 0 R -/Type /Annot -/Rect [72 531.689 88.2 543.002] -/Border [0 0 0] ->> -endobj -2259 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2260 0 obj -<< -/Subtype /Link -/A 2259 0 R -/Type /Annot -/Rect [88.2 531.689 93.6 543.002] -/Border [0 0 0] ->> -endobj -2261 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2262 0 obj -<< -/Subtype /Link -/A 2261 0 R -/Type /Annot -/Rect [93.6 531.689 126 543.002] -/Border [0 0 0] ->> -endobj -2263 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2264 0 obj -<< -/Subtype /Link -/A 2263 0 R -/Type /Annot -/Rect [126 531.689 131.4 543.002] -/Border [0 0 0] ->> -endobj -2265 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2266 0 obj -<< -/Subtype /Link -/A 2265 0 R -/Type /Annot -/Rect [131.4 531.689 147.6 543.002] -/Border [0 0 0] ->> -endobj -2267 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2268 0 obj -<< -/Subtype /Link -/A 2267 0 R -/Type /Annot -/Rect [147.6 531.689 153 543.002] -/Border [0 0 0] ->> -endobj -2269 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2270 0 obj -<< -/Subtype /Link -/A 2269 0 R -/Type /Annot -/Rect [153 531.689 158.4 543.002] -/Border [0 0 0] ->> -endobj -2271 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2272 0 obj -<< -/Subtype /Link -/A 2271 0 R -/Type /Annot -/Rect [158.4 531.689 169.2 543.002] -/Border [0 0 0] ->> -endobj -2273 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2274 0 obj -<< -/Subtype /Link -/A 2273 0 R -/Type /Annot -/Rect [169.2 531.689 174.6 543.002] -/Border [0 0 0] ->> -endobj -2275 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2276 0 obj -<< -/Subtype /Link -/A 2275 0 R -/Type /Annot -/Rect [174.6 531.689 180 543.002] -/Border [0 0 0] ->> -endobj -2277 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2278 0 obj -<< -/Subtype /Link -/A 2277 0 R -/Type /Annot -/Rect [180 531.689 190.8 543.002] -/Border [0 0 0] ->> -endobj -2279 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2280 0 obj -<< -/Subtype /Link -/A 2279 0 R -/Type /Annot -/Rect [190.8 531.689 196.2 543.002] -/Border [0 0 0] ->> -endobj -2281 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2282 0 obj -<< -/Subtype /Link -/A 2281 0 R -/Type /Annot -/Rect [72 520.376 88.2 531.689] -/Border [0 0 0] ->> -endobj -2283 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2284 0 obj -<< -/Subtype /Link -/A 2283 0 R -/Type /Annot -/Rect [88.2 520.376 93.6 531.689] -/Border [0 0 0] ->> -endobj -2285 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2286 0 obj -<< -/Subtype /Link -/A 2285 0 R -/Type /Annot -/Rect [93.6 520.376 115.2 531.689] -/Border [0 0 0] ->> -endobj -2287 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2288 0 obj -<< -/Subtype /Link -/A 2287 0 R -/Type /Annot -/Rect [115.2 520.376 120.6 531.689] -/Border [0 0 0] ->> -endobj -2289 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2290 0 obj -<< -/Subtype /Link -/A 2289 0 R -/Type /Annot -/Rect [120.6 520.376 126 531.689] -/Border [0 0 0] ->> -endobj -2291 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2292 0 obj -<< -/Subtype /Link -/A 2291 0 R -/Type /Annot -/Rect [126 520.376 131.4 531.689] -/Border [0 0 0] ->> -endobj -2293 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2294 0 obj -<< -/Subtype /Link -/A 2293 0 R -/Type /Annot -/Rect [131.4 520.376 136.8 531.689] -/Border [0 0 0] ->> -endobj -2295 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2296 0 obj -<< -/Subtype /Link -/A 2295 0 R -/Type /Annot -/Rect [136.8 520.376 142.2 531.689] -/Border [0 0 0] ->> -endobj -2297 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2298 0 obj -<< -/Subtype /Link -/A 2297 0 R -/Type /Annot -/Rect [142.2 520.376 169.2 531.689] -/Border [0 0 0] ->> -endobj -2299 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2300 0 obj -<< -/Subtype /Link -/A 2299 0 R -/Type /Annot -/Rect [169.2 520.376 174.6 531.689] -/Border [0 0 0] ->> -endobj -2301 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2302 0 obj -<< -/Subtype /Link -/A 2301 0 R -/Type /Annot -/Rect [174.6 520.376 180 531.689] -/Border [0 0 0] ->> -endobj -2303 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2304 0 obj -<< -/Subtype /Link -/A 2303 0 R -/Type /Annot -/Rect [180 520.376 190.8 531.689] -/Border [0 0 0] ->> -endobj -2305 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2306 0 obj -<< -/Subtype /Link -/A 2305 0 R -/Type /Annot -/Rect [190.8 520.376 196.2 531.689] -/Border [0 0 0] ->> -endobj -2307 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2308 0 obj -<< -/Subtype /Link -/A 2307 0 R -/Type /Annot -/Rect [196.2 520.376 201.6 531.689] -/Border [0 0 0] ->> -endobj -2309 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2310 0 obj -<< -/Subtype /Link -/A 2309 0 R -/Type /Annot -/Rect [72 509.063 88.2 520.376] -/Border [0 0 0] ->> -endobj -2311 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2312 0 obj -<< -/Subtype /Link -/A 2311 0 R -/Type /Annot -/Rect [88.2 509.063 93.6 520.376] -/Border [0 0 0] ->> -endobj -2313 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2314 0 obj -<< -/Subtype /Link -/A 2313 0 R -/Type /Annot -/Rect [93.6 509.063 126 520.376] -/Border [0 0 0] ->> -endobj -2315 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2316 0 obj -<< -/Subtype /Link -/A 2315 0 R -/Type /Annot -/Rect [126 509.063 131.4 520.376] -/Border [0 0 0] ->> -endobj -2317 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2318 0 obj -<< -/Subtype /Link -/A 2317 0 R -/Type /Annot -/Rect [131.4 509.063 136.8 520.376] -/Border [0 0 0] ->> -endobj -2319 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2320 0 obj -<< -/Subtype /Link -/A 2319 0 R -/Type /Annot -/Rect [136.8 509.063 142.2 520.376] -/Border [0 0 0] ->> -endobj -2321 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2322 0 obj -<< -/Subtype /Link -/A 2321 0 R -/Type /Annot -/Rect [72 486.563 282.390625 499.063] -/Border [0 0 0] ->> -endobj -2195 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 2193 0 R -/Resources 2194 0 R -/Annots [2198 0 R 2200 0 R 2202 0 R 2204 0 R 2206 0 R 2208 0 R 2210 0 R 2212 0 R 2214 0 R 2216 0 R 2218 0 R 2220 0 R 2222 0 R 2224 0 R 2226 0 R 2228 0 R 2230 0 R 2232 0 R 2234 0 R 2236 0 R 2238 0 R 2240 0 R 2242 0 R 2244 0 R 2246 0 R 2248 0 R 2250 0 R 2252 0 R 2254 0 R 2256 0 R 2258 0 R 2260 0 R 2262 0 R 2264 0 R 2266 0 R 2268 0 R 2270 0 R 2272 0 R 2274 0 R 2276 0 R 2278 0 R 2280 0 R 2282 0 R 2284 0 R 2286 0 R 2288 0 R 2290 0 R 2292 0 R 2294 0 R 2296 0 R 2298 0 R 2300 0 R 2302 0 R 2304 0 R 2306 0 R 2308 0 R 2310 0 R 2312 0 R 2314 0 R 2316 0 R 2318 0 R 2320 0 R 2322 0 R] ->> -endobj -2194 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -2193 0 obj -<< -/Length 1339 -/Filter /FlateDecode ->> -stream -xZK6W 9xe!RD٢Vvdm@kY"9|3w4?tswmkwO7c?Cl-PXZt||nÍ@ɟ',?S.?GOC7@2$C-BD`Bᶐ ^2 -˜ă)Vo!R+KSO|T;ҿsPc2gƞ]=FuQ8&M8 YKZO&^ƹQVsLﺴvk.e]:0+p0#e=>6Ĩ.$",cfe)WgV/#{uld֏IFަ{t˖̖=s#+lG=:d]apQD$ (!4%Asd'[/'k%}nB2A![7m"YJ!AZĺA_cHgSH|* OMB,s":M KA> -endobj -2328 0 obj -<< -/Subtype /Link -/A 2327 0 R -/Type /Annot -/Rect [72 695.502 113.148 720] -/Border [0 0 0] ->> -endobj -2329 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2330 0 obj -<< -/Subtype /Link -/A 2329 0 R -/Type /Annot -/Rect [72 673.002 527.424805 685.502] -/Border [0 0 0] ->> -endobj -2331 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2332 0 obj -<< -/Subtype /Link -/A 2331 0 R -/Type /Annot -/Rect [72 660.502 538.845703 673.002] -/Border [0 0 0] ->> -endobj -2333 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2334 0 obj -<< -/Subtype /Link -/A 2333 0 R -/Type /Annot -/Rect [72 648.002 195.759766 660.502] -/Border [0 0 0] ->> -endobj -2335 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2336 0 obj -<< -/Subtype /Link -/A 2335 0 R -/Type /Annot -/Rect [72 625.502 93.201172 638.002] -/Border [0 0 0] ->> -endobj -2337 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2338 0 obj -<< -/Subtype /Link -/A 2337 0 R -/Type /Annot -/Rect [93.201172 625.432 147.201172 638.002] -/Border [0 0 0] ->> -endobj -2339 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2340 0 obj -<< -/Subtype /Link -/A 2339 0 R -/Type /Annot -/Rect [147.201172 625.502 170.912109 638.002] -/Border [0 0 0] ->> -endobj -2341 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2342 0 obj -<< -/Subtype /Link -/A 2341 0 R -/Type /Annot -/Rect [170.912109 625.432 236.912109 638.002] -/Border [0 0 0] ->> -endobj -2343 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2344 0 obj -<< -/Subtype /Link -/A 2343 0 R -/Type /Annot -/Rect [236.912109 625.502 535.305664 638.002] -/Border [0 0 0] ->> -endobj -2345 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2346 0 obj -<< -/Subtype /Link -/A 2345 0 R -/Type /Annot -/Rect [72 613.002 146.072266 625.502] -/Border [0 0 0] ->> -endobj -2347 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2348 0 obj -<< -/Subtype /Link -/A 2347 0 R -/Type /Annot -/Rect [146.072266 612.932 212.072266 625.502] -/Border [0 0 0] ->> -endobj -2349 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2350 0 obj -<< -/Subtype /Link -/A 2349 0 R -/Type /Annot -/Rect [212.072266 613.002 235.783203 625.502] -/Border [0 0 0] ->> -endobj -2351 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2352 0 obj -<< -/Subtype /Link -/A 2351 0 R -/Type /Annot -/Rect [235.783203 612.932 313.783203 625.502] -/Border [0 0 0] ->> -endobj -2353 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2354 0 obj -<< -/Subtype /Link -/A 2353 0 R -/Type /Annot -/Rect [313.783203 613.002 379.110352 625.502] -/Border [0 0 0] ->> -endobj -2355 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2356 0 obj -<< -/Subtype /Link -/A 2355 0 R -/Type /Annot -/Rect [379.110352 612.932 421.110352 625.502] -/Border [0 0 0] ->> -endobj -2357 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2358 0 obj -<< -/Subtype /Link -/A 2357 0 R -/Type /Annot -/Rect [421.110352 613.002 484.337891 625.502] -/Border [0 0 0] ->> -endobj -2359 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2360 0 obj -<< -/Subtype /Link -/A 2359 0 R -/Type /Annot -/Rect [72 600.502 471.794922 613.002] -/Border [0 0 0] ->> -endobj -2361 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2362 0 obj -<< -/Subtype /Link -/A 2361 0 R -/Type /Annot -/Rect [72 578.002 93.201172 590.502] -/Border [0 0 0] ->> -endobj -2363 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2364 0 obj -<< -/Subtype /Link -/A 2363 0 R -/Type /Annot -/Rect [93.201172 577.932 117.201172 590.502] -/Border [0 0 0] ->> -endobj -2365 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2366 0 obj -<< -/Subtype /Link -/A 2365 0 R -/Type /Annot -/Rect [117.201172 578.002 140.912109 590.502] -/Border [0 0 0] ->> -endobj -2367 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2368 0 obj -<< -/Subtype /Link -/A 2367 0 R -/Type /Annot -/Rect [140.912109 577.932 176.912109 590.502] -/Border [0 0 0] ->> -endobj -2369 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2370 0 obj -<< -/Subtype /Link -/A 2369 0 R -/Type /Annot -/Rect [176.912109 578.002 525.334961 590.502] -/Border [0 0 0] ->> -endobj -2371 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2372 0 obj -<< -/Subtype /Link -/A 2371 0 R -/Type /Annot -/Rect [72 565.502 92.063477 578.002] -/Border [0 0 0] ->> -endobj -2373 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2374 0 obj -<< -/Subtype /Link -/A 2373 0 R -/Type /Annot -/Rect [92.063477 565.432 146.063477 578.002] -/Border [0 0 0] ->> -endobj -2375 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2376 0 obj -<< -/Subtype /Link -/A 2375 0 R -/Type /Annot -/Rect [146.063477 565.502 161.688477 578.002] -/Border [0 0 0] ->> -endobj -2377 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2378 0 obj -<< -/Subtype /Link -/A 2377 0 R -/Type /Annot -/Rect [161.688477 565.432 227.688477 578.002] -/Border [0 0 0] ->> -endobj -2379 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2380 0 obj -<< -/Subtype /Link -/A 2379 0 R -/Type /Annot -/Rect [227.688477 565.502 314.861328 578.002] -/Border [0 0 0] ->> -endobj -2381 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2382 0 obj -<< -/Subtype /Link -/A 2381 0 R -/Type /Annot -/Rect [314.861328 565.432 392.861328 578.002] -/Border [0 0 0] ->> -endobj -2383 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2384 0 obj -<< -/Subtype /Link -/A 2383 0 R -/Type /Annot -/Rect [392.861328 565.502 519.262695 578.002] -/Border [0 0 0] ->> -endobj -2385 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2386 0 obj -<< -/Subtype /Link -/A 2385 0 R -/Type /Annot -/Rect [72 553.002 230.90625 565.502] -/Border [0 0 0] ->> -endobj -2387 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2388 0 obj -<< -/Subtype /Link -/A 2387 0 R -/Type /Annot -/Rect [72 531.689 88.2 543.002] -/Border [0 0 0] ->> -endobj -2389 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2390 0 obj -<< -/Subtype /Link -/A 2389 0 R -/Type /Annot -/Rect [88.2 531.689 93.6 543.002] -/Border [0 0 0] ->> -endobj -2391 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2392 0 obj -<< -/Subtype /Link -/A 2391 0 R -/Type /Annot -/Rect [93.6 531.689 126 543.002] -/Border [0 0 0] ->> -endobj -2393 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2394 0 obj -<< -/Subtype /Link -/A 2393 0 R -/Type /Annot -/Rect [126 531.689 131.4 543.002] -/Border [0 0 0] ->> -endobj -2395 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2396 0 obj -<< -/Subtype /Link -/A 2395 0 R -/Type /Annot -/Rect [131.4 531.689 147.6 543.002] -/Border [0 0 0] ->> -endobj -2397 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2398 0 obj -<< -/Subtype /Link -/A 2397 0 R -/Type /Annot -/Rect [147.6 531.689 153 543.002] -/Border [0 0 0] ->> -endobj -2399 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2400 0 obj -<< -/Subtype /Link -/A 2399 0 R -/Type /Annot -/Rect [153 531.689 158.4 543.002] -/Border [0 0 0] ->> -endobj -2401 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2402 0 obj -<< -/Subtype /Link -/A 2401 0 R -/Type /Annot -/Rect [158.4 531.689 169.2 543.002] -/Border [0 0 0] ->> -endobj -2403 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2404 0 obj -<< -/Subtype /Link -/A 2403 0 R -/Type /Annot -/Rect [169.2 531.689 174.6 543.002] -/Border [0 0 0] ->> -endobj -2405 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2406 0 obj -<< -/Subtype /Link -/A 2405 0 R -/Type /Annot -/Rect [174.6 531.689 180 543.002] -/Border [0 0 0] ->> -endobj -2407 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2408 0 obj -<< -/Subtype /Link -/A 2407 0 R -/Type /Annot -/Rect [180 531.689 190.8 543.002] -/Border [0 0 0] ->> -endobj -2409 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2410 0 obj -<< -/Subtype /Link -/A 2409 0 R -/Type /Annot -/Rect [190.8 531.689 196.2 543.002] -/Border [0 0 0] ->> -endobj -2411 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2412 0 obj -<< -/Subtype /Link -/A 2411 0 R -/Type /Annot -/Rect [72 520.376 88.2 531.689] -/Border [0 0 0] ->> -endobj -2413 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2414 0 obj -<< -/Subtype /Link -/A 2413 0 R -/Type /Annot -/Rect [88.2 520.376 93.6 531.689] -/Border [0 0 0] ->> -endobj -2415 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2416 0 obj -<< -/Subtype /Link -/A 2415 0 R -/Type /Annot -/Rect [93.6 520.376 142.2 531.689] -/Border [0 0 0] ->> -endobj -2417 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2418 0 obj -<< -/Subtype /Link -/A 2417 0 R -/Type /Annot -/Rect [142.2 520.376 147.6 531.689] -/Border [0 0 0] ->> -endobj -2419 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2420 0 obj -<< -/Subtype /Link -/A 2419 0 R -/Type /Annot -/Rect [147.6 520.376 153 531.689] -/Border [0 0 0] ->> -endobj -2421 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2422 0 obj -<< -/Subtype /Link -/A 2421 0 R -/Type /Annot -/Rect [153 520.376 158.4 531.689] -/Border [0 0 0] ->> -endobj -2423 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2424 0 obj -<< -/Subtype /Link -/A 2423 0 R -/Type /Annot -/Rect [72 509.063 88.2 520.376] -/Border [0 0 0] ->> -endobj -2425 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2426 0 obj -<< -/Subtype /Link -/A 2425 0 R -/Type /Annot -/Rect [88.2 509.063 93.6 520.376] -/Border [0 0 0] ->> -endobj -2427 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2428 0 obj -<< -/Subtype /Link -/A 2427 0 R -/Type /Annot -/Rect [93.6 509.063 153 520.376] -/Border [0 0 0] ->> -endobj -2429 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2430 0 obj -<< -/Subtype /Link -/A 2429 0 R -/Type /Annot -/Rect [153 509.063 158.4 520.376] -/Border [0 0 0] ->> -endobj -2431 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2432 0 obj -<< -/Subtype /Link -/A 2431 0 R -/Type /Annot -/Rect [158.4 509.063 174.6 520.376] -/Border [0 0 0] ->> -endobj -2433 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2434 0 obj -<< -/Subtype /Link -/A 2433 0 R -/Type /Annot -/Rect [174.6 509.063 180 520.376] -/Border [0 0 0] ->> -endobj -2435 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2436 0 obj -<< -/Subtype /Link -/A 2435 0 R -/Type /Annot -/Rect [72 497.75 88.2 509.063] -/Border [0 0 0] ->> -endobj -2437 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2438 0 obj -<< -/Subtype /Link -/A 2437 0 R -/Type /Annot -/Rect [88.2 497.75 93.6 509.063] -/Border [0 0 0] ->> -endobj -2439 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2440 0 obj -<< -/Subtype /Link -/A 2439 0 R -/Type /Annot -/Rect [93.6 497.75 163.8 509.063] -/Border [0 0 0] ->> -endobj -2441 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2442 0 obj -<< -/Subtype /Link -/A 2441 0 R -/Type /Annot -/Rect [163.8 497.75 169.2 509.063] -/Border [0 0 0] ->> -endobj -2443 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2444 0 obj -<< -/Subtype /Link -/A 2443 0 R -/Type /Annot -/Rect [169.2 497.75 196.2 509.063] -/Border [0 0 0] ->> -endobj -2445 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2446 0 obj -<< -/Subtype /Link -/A 2445 0 R -/Type /Annot -/Rect [196.2 497.75 201.6 509.063] -/Border [0 0 0] ->> -endobj -2447 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2448 0 obj -<< -/Subtype /Link -/A 2447 0 R -/Type /Annot -/Rect [201.6 497.75 207 509.063] -/Border [0 0 0] ->> -endobj -2449 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2450 0 obj -<< -/Subtype /Link -/A 2449 0 R -/Type /Annot -/Rect [207 497.75 239.4 509.063] -/Border [0 0 0] ->> -endobj -2451 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2452 0 obj -<< -/Subtype /Link -/A 2451 0 R -/Type /Annot -/Rect [239.4 497.75 244.8 509.063] -/Border [0 0 0] ->> -endobj -2453 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2454 0 obj -<< -/Subtype /Link -/A 2453 0 R -/Type /Annot -/Rect [72 475.25 294.856445 487.75] -/Border [0 0 0] ->> -endobj -2455 0 obj -<< -/Type /ExtGState -/ca 0.8 ->> -endobj -2325 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 2323 0 R -/Resources 2324 0 R -/Annots [2328 0 R 2330 0 R 2332 0 R 2334 0 R 2336 0 R 2338 0 R 2340 0 R 2342 0 R 2344 0 R 2346 0 R 2348 0 R 2350 0 R 2352 0 R 2354 0 R 2356 0 R 2358 0 R 2360 0 R 2362 0 R 2364 0 R 2366 0 R 2368 0 R 2370 0 R 2372 0 R 2374 0 R 2376 0 R 2378 0 R 2380 0 R 2382 0 R 2384 0 R 2386 0 R 2388 0 R 2390 0 R 2392 0 R 2394 0 R 2396 0 R 2398 0 R 2400 0 R 2402 0 R 2404 0 R 2406 0 R 2408 0 R 2410 0 R 2412 0 R 2414 0 R 2416 0 R 2418 0 R 2420 0 R 2422 0 R 2424 0 R 2426 0 R 2428 0 R 2430 0 R 2432 0 R 2434 0 R 2436 0 R 2438 0 R 2440 0 R 2442 0 R 2444 0 R 2446 0 R 2448 0 R 2450 0 R 2452 0 R 2454 0 R] ->> -endobj -2324 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> -/ExtGState << -/Gs1 2455 0 R ->> ->> -endobj -2323 0 obj -<< -/Length 1450 -/Filter /FlateDecode ->> -stream -xZ͎6 )?Pa=hwnE'뗒)[N,u< ۲$DсVj}wˇǶmD|E'nbkt}I~P-[!K4Cf|e}b2 gGa6.}/|$-˟82& 3МY\e3M$xTjx-3ͻ 8'=H,#OR_Ic$ %iZ=9gsd bE 2r^Df-ݧhPòEe[q(J6MԼ쐦d`8L2V^P\T^?{4p-esNݯ؟Jيe 5`uJsT"lx[Acga i5=4,7e-p1ADGWq=\ )IqkGe:a!.ugx <6 48qT>RwѢ$X<Hg%LxSS^ns;w4X=1R)FtVO-OY5diFԖ'y` 0LVSBP0 -Ĥ<'[# -endstream -endobj -2460 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2461 0 obj -<< -/Subtype /Link -/A 2460 0 R -/Type /Annot -/Rect [72 695.502 146.52 720] -/Border [0 0 0] ->> -endobj -2462 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2463 0 obj -<< -/Subtype /Link -/A 2462 0 R -/Type /Annot -/Rect [72 673.002 537.078125 685.502] -/Border [0 0 0] ->> -endobj -2464 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2465 0 obj -<< -/Subtype /Link -/A 2464 0 R -/Type /Annot -/Rect [72 660.502 216.907227 673.002] -/Border [0 0 0] ->> -endobj -2466 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2467 0 obj -<< -/Subtype /Link -/A 2466 0 R -/Type /Annot -/Rect [216.907227 660.432 270.907227 673.002] -/Border [0 0 0] ->> -endobj -2468 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2469 0 obj -<< -/Subtype /Link -/A 2468 0 R -/Type /Annot -/Rect [270.907227 660.502 311.239258 673.002] -/Border [0 0 0] ->> -endobj -2470 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2471 0 obj -<< -/Subtype /Link -/A 2470 0 R -/Type /Annot -/Rect [311.239258 660.432 335.239258 673.002] -/Border [0 0 0] ->> -endobj -2472 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2473 0 obj -<< -/Subtype /Link -/A 2472 0 R -/Type /Annot -/Rect [335.239258 660.502 531.713867 673.002] -/Border [0 0 0] ->> -endobj -2474 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2475 0 obj -<< -/Subtype /Link -/A 2474 0 R -/Type /Annot -/Rect [72 648.002 368.870117 660.502] -/Border [0 0 0] ->> -endobj -2476 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2477 0 obj -<< -/Subtype /Link -/A 2476 0 R -/Type /Annot -/Rect [72 625.502 443.552734 638.002] -/Border [0 0 0] ->> -endobj -2478 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2479 0 obj -<< -/Subtype /Link -/A 2478 0 R -/Type /Annot -/Rect [443.552734 625.432 527.552734 638.002] -/Border [0 0 0] ->> -endobj -2480 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2481 0 obj -<< -/Subtype /Link -/A 2480 0 R -/Type /Annot -/Rect [72 613.002 95.710938 625.502] -/Border [0 0 0] ->> -endobj -2482 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2483 0 obj -<< -/Subtype /Link -/A 2482 0 R -/Type /Annot -/Rect [95.710938 612.932 179.710938 625.502] -/Border [0 0 0] ->> -endobj -2484 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2485 0 obj -<< -/Subtype /Link -/A 2484 0 R -/Type /Annot -/Rect [179.710938 613.002 445.692383 625.502] -/Border [0 0 0] ->> -endobj -2486 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2487 0 obj -<< -/Subtype /Link -/A 2486 0 R -/Type /Annot -/Rect [72 590.432 252 603.002] -/Border [0 0 0] ->> -endobj -2488 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2489 0 obj -<< -/Subtype /Link -/A 2488 0 R -/Type /Annot -/Rect [252 590.502 263.166992 603.002] -/Border [0 0 0] ->> -endobj -2490 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2491 0 obj -<< -/Subtype /Link -/A 2490 0 R -/Type /Annot -/Rect [263.166992 590.432 293.166992 603.002] -/Border [0 0 0] ->> -endobj -2492 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2493 0 obj -<< -/Subtype /Link -/A 2492 0 R -/Type /Annot -/Rect [293.166992 590.502 384.856445 603.002] -/Border [0 0 0] ->> -endobj -2494 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2495 0 obj -<< -/Subtype /Link -/A 2494 0 R -/Type /Annot -/Rect [384.856445 590.432 414.856445 603.002] -/Border [0 0 0] ->> -endobj -2496 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2497 0 obj -<< -/Subtype /Link -/A 2496 0 R -/Type /Annot -/Rect [414.856445 590.502 495.618164 603.002] -/Border [0 0 0] ->> -endobj -2498 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2499 0 obj -<< -/Subtype /Link -/A 2498 0 R -/Type /Annot -/Rect [72 571.932 300 584.502] -/Border [0 0 0] ->> -endobj -2500 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2501 0 obj -<< -/Subtype /Link -/A 2500 0 R -/Type /Annot -/Rect [300 572.002 311.166992 584.502] -/Border [0 0 0] ->> -endobj -2502 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2503 0 obj -<< -/Subtype /Link -/A 2502 0 R -/Type /Annot -/Rect [311.166992 571.932 323.166992 584.502] -/Border [0 0 0] ->> -endobj -2504 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2505 0 obj -<< -/Subtype /Link -/A 2504 0 R -/Type /Annot -/Rect [323.166992 572.002 422.507813 584.502] -/Border [0 0 0] ->> -endobj -2506 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2507 0 obj -<< -/Subtype /Link -/A 2506 0 R -/Type /Annot -/Rect [422.507813 571.932 434.507813 584.502] -/Border [0 0 0] ->> -endobj -2508 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2509 0 obj -<< -/Subtype /Link -/A 2508 0 R -/Type /Annot -/Rect [434.507813 572.002 527.510742 584.502] -/Border [0 0 0] ->> -endobj -2510 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2511 0 obj -<< -/Subtype /Link -/A 2510 0 R -/Type /Annot -/Rect [72 543.502 534.250977 556.002] -/Border [0 0 0] ->> -endobj -2512 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2513 0 obj -<< -/Subtype /Link -/A 2512 0 R -/Type /Annot -/Rect [72 531.002 508.928711 543.502] -/Border [0 0 0] ->> -endobj -2514 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2515 0 obj -<< -/Subtype /Link -/A 2514 0 R -/Type /Annot -/Rect [72 518.502 284.744141 531.002] -/Border [0 0 0] ->> -endobj -2516 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2517 0 obj -<< -/Subtype /Link -/A 2516 0 R -/Type /Annot -/Rect [72 496.002 419.705078 508.502] -/Border [0 0 0] ->> -endobj -2518 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2519 0 obj -<< -/Subtype /Link -/A 2518 0 R -/Type /Annot -/Rect [72 474.689 217.8 486.002] -/Border [0 0 0] ->> -endobj -2520 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2521 0 obj -<< -/Subtype /Link -/A 2520 0 R -/Type /Annot -/Rect [72 463.376 88.2 474.689] -/Border [0 0 0] ->> -endobj -2522 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2523 0 obj -<< -/Subtype /Link -/A 2522 0 R -/Type /Annot -/Rect [88.2 463.376 93.6 474.689] -/Border [0 0 0] ->> -endobj -2524 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2525 0 obj -<< -/Subtype /Link -/A 2524 0 R -/Type /Annot -/Rect [93.6 463.376 115.2 474.689] -/Border [0 0 0] ->> -endobj -2526 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2527 0 obj -<< -/Subtype /Link -/A 2526 0 R -/Type /Annot -/Rect [115.2 463.376 120.6 474.689] -/Border [0 0 0] ->> -endobj -2528 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2529 0 obj -<< -/Subtype /Link -/A 2528 0 R -/Type /Annot -/Rect [120.6 463.376 126 474.689] -/Border [0 0 0] ->> -endobj -2530 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2531 0 obj -<< -/Subtype /Link -/A 2530 0 R -/Type /Annot -/Rect [126 463.376 131.4 474.689] -/Border [0 0 0] ->> -endobj -2532 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2533 0 obj -<< -/Subtype /Link -/A 2532 0 R -/Type /Annot -/Rect [131.4 463.376 147.6 474.689] -/Border [0 0 0] ->> -endobj -2534 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2535 0 obj -<< -/Subtype /Link -/A 2534 0 R -/Type /Annot -/Rect [147.6 463.376 153 474.689] -/Border [0 0 0] ->> -endobj -2536 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2537 0 obj -<< -/Subtype /Link -/A 2536 0 R -/Type /Annot -/Rect [153 463.376 228.6 474.689] -/Border [0 0 0] ->> -endobj -2538 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2539 0 obj -<< -/Subtype /Link -/A 2538 0 R -/Type /Annot -/Rect [228.6 463.376 234 474.689] -/Border [0 0 0] ->> -endobj -2540 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2541 0 obj -<< -/Subtype /Link -/A 2540 0 R -/Type /Annot -/Rect [234 463.376 244.8 474.689] -/Border [0 0 0] ->> -endobj -2542 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2543 0 obj -<< -/Subtype /Link -/A 2542 0 R -/Type /Annot -/Rect [244.8 463.376 250.2 474.689] -/Border [0 0 0] ->> -endobj -2544 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2545 0 obj -<< -/Subtype /Link -/A 2544 0 R -/Type /Annot -/Rect [250.2 463.376 255.6 474.689] -/Border [0 0 0] ->> -endobj -2546 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2547 0 obj -<< -/Subtype /Link -/A 2546 0 R -/Type /Annot -/Rect [255.6 463.376 261 474.689] -/Border [0 0 0] ->> -endobj -2548 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2549 0 obj -<< -/Subtype /Link -/A 2548 0 R -/Type /Annot -/Rect [261 463.376 266.4 474.689] -/Border [0 0 0] ->> -endobj -2550 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2551 0 obj -<< -/Subtype /Link -/A 2550 0 R -/Type /Annot -/Rect [266.4 463.376 271.8 474.689] -/Border [0 0 0] ->> -endobj -2552 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2553 0 obj -<< -/Subtype /Link -/A 2552 0 R -/Type /Annot -/Rect [271.8 463.376 288 474.689] -/Border [0 0 0] ->> -endobj -2554 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2555 0 obj -<< -/Subtype /Link -/A 2554 0 R -/Type /Annot -/Rect [288 463.376 293.4 474.689] -/Border [0 0 0] ->> -endobj -2556 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2557 0 obj -<< -/Subtype /Link -/A 2556 0 R -/Type /Annot -/Rect [293.4 463.376 298.8 474.689] -/Border [0 0 0] ->> -endobj -2558 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2559 0 obj -<< -/Subtype /Link -/A 2558 0 R -/Type /Annot -/Rect [298.8 463.376 315 474.689] -/Border [0 0 0] ->> -endobj -2560 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2561 0 obj -<< -/Subtype /Link -/A 2560 0 R -/Type /Annot -/Rect [315 463.376 320.4 474.689] -/Border [0 0 0] ->> -endobj -2562 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2563 0 obj -<< -/Subtype /Link -/A 2562 0 R -/Type /Annot -/Rect [320.4 463.376 325.8 474.689] -/Border [0 0 0] ->> -endobj -2564 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2565 0 obj -<< -/Subtype /Link -/A 2564 0 R -/Type /Annot -/Rect [72 452.063 93.6 463.376] -/Border [0 0 0] ->> -endobj -2566 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2567 0 obj -<< -/Subtype /Link -/A 2566 0 R -/Type /Annot -/Rect [93.6 452.063 99 463.376] -/Border [0 0 0] ->> -endobj -2568 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2569 0 obj -<< -/Subtype /Link -/A 2568 0 R -/Type /Annot -/Rect [99 452.063 120.6 463.376] -/Border [0 0 0] ->> -endobj -2570 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2571 0 obj -<< -/Subtype /Link -/A 2570 0 R -/Type /Annot -/Rect [120.6 452.063 126 463.376] -/Border [0 0 0] ->> -endobj -2572 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2573 0 obj -<< -/Subtype /Link -/A 2572 0 R -/Type /Annot -/Rect [126 452.063 131.4 463.376] -/Border [0 0 0] ->> -endobj -2574 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2575 0 obj -<< -/Subtype /Link -/A 2574 0 R -/Type /Annot -/Rect [131.4 452.063 136.8 463.376] -/Border [0 0 0] ->> -endobj -2576 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2577 0 obj -<< -/Subtype /Link -/A 2576 0 R -/Type /Annot -/Rect [136.8 452.063 142.2 463.376] -/Border [0 0 0] ->> -endobj -2578 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2579 0 obj -<< -/Subtype /Link -/A 2578 0 R -/Type /Annot -/Rect [142.2 452.063 180 463.376] -/Border [0 0 0] ->> -endobj -2580 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2581 0 obj -<< -/Subtype /Link -/A 2580 0 R -/Type /Annot -/Rect [180 452.063 185.4 463.376] -/Border [0 0 0] ->> -endobj -2582 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2583 0 obj -<< -/Subtype /Link -/A 2582 0 R -/Type /Annot -/Rect [72 440.75 93.6 452.063] -/Border [0 0 0] ->> -endobj -2584 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2585 0 obj -<< -/Subtype /Link -/A 2584 0 R -/Type /Annot -/Rect [93.6 440.75 99 452.063] -/Border [0 0 0] ->> -endobj -2586 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2587 0 obj -<< -/Subtype /Link -/A 2586 0 R -/Type /Annot -/Rect [99 440.75 120.6 452.063] -/Border [0 0 0] ->> -endobj -2588 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2589 0 obj -<< -/Subtype /Link -/A 2588 0 R -/Type /Annot -/Rect [120.6 440.75 126 452.063] -/Border [0 0 0] ->> -endobj -2590 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2591 0 obj -<< -/Subtype /Link -/A 2590 0 R -/Type /Annot -/Rect [126 440.75 131.4 452.063] -/Border [0 0 0] ->> -endobj -2592 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2593 0 obj -<< -/Subtype /Link -/A 2592 0 R -/Type /Annot -/Rect [131.4 440.75 136.8 452.063] -/Border [0 0 0] ->> -endobj -2594 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2595 0 obj -<< -/Subtype /Link -/A 2594 0 R -/Type /Annot -/Rect [136.8 440.75 142.2 452.063] -/Border [0 0 0] ->> -endobj -2596 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2597 0 obj -<< -/Subtype /Link -/A 2596 0 R -/Type /Annot -/Rect [142.2 440.75 169.2 452.063] -/Border [0 0 0] ->> -endobj -2598 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2599 0 obj -<< -/Subtype /Link -/A 2598 0 R -/Type /Annot -/Rect [169.2 440.75 174.6 452.063] -/Border [0 0 0] ->> -endobj -2600 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2601 0 obj -<< -/Subtype /Link -/A 2600 0 R -/Type /Annot -/Rect [174.6 440.75 180 452.063] -/Border [0 0 0] ->> -endobj -2602 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2603 0 obj -<< -/Subtype /Link -/A 2602 0 R -/Type /Annot -/Rect [72 418.124 88.2 429.437] -/Border [0 0 0] ->> -endobj -2604 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2605 0 obj -<< -/Subtype /Link -/A 2604 0 R -/Type /Annot -/Rect [88.2 418.124 93.6 429.437] -/Border [0 0 0] ->> -endobj -2606 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2607 0 obj -<< -/Subtype /Link -/A 2606 0 R -/Type /Annot -/Rect [93.6 418.124 115.2 429.437] -/Border [0 0 0] ->> -endobj -2608 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2609 0 obj -<< -/Subtype /Link -/A 2608 0 R -/Type /Annot -/Rect [115.2 418.124 120.6 429.437] -/Border [0 0 0] ->> -endobj -2610 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2611 0 obj -<< -/Subtype /Link -/A 2610 0 R -/Type /Annot -/Rect [120.6 418.124 131.4 429.437] -/Border [0 0 0] ->> -endobj -2612 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2613 0 obj -<< -/Subtype /Link -/A 2612 0 R -/Type /Annot -/Rect [131.4 418.124 136.8 429.437] -/Border [0 0 0] ->> -endobj -2614 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2615 0 obj -<< -/Subtype /Link -/A 2614 0 R -/Type /Annot -/Rect [136.8 418.124 142.2 429.437] -/Border [0 0 0] ->> -endobj -2616 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2617 0 obj -<< -/Subtype /Link -/A 2616 0 R -/Type /Annot -/Rect [142.2 418.124 147.6 429.437] -/Border [0 0 0] ->> -endobj -2618 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2619 0 obj -<< -/Subtype /Link -/A 2618 0 R -/Type /Annot -/Rect [147.6 418.124 153 429.437] -/Border [0 0 0] ->> -endobj -2620 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2621 0 obj -<< -/Subtype /Link -/A 2620 0 R -/Type /Annot -/Rect [153 418.124 158.4 429.437] -/Border [0 0 0] ->> -endobj -2622 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2623 0 obj -<< -/Subtype /Link -/A 2622 0 R -/Type /Annot -/Rect [158.4 418.124 174.6 429.437] -/Border [0 0 0] ->> -endobj -2624 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2625 0 obj -<< -/Subtype /Link -/A 2624 0 R -/Type /Annot -/Rect [174.6 418.124 180 429.437] -/Border [0 0 0] ->> -endobj -2626 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2627 0 obj -<< -/Subtype /Link -/A 2626 0 R -/Type /Annot -/Rect [180 418.124 185.4 429.437] -/Border [0 0 0] ->> -endobj -2628 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2629 0 obj -<< -/Subtype /Link -/A 2628 0 R -/Type /Annot -/Rect [185.4 418.124 201.6 429.437] -/Border [0 0 0] ->> -endobj -2630 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2631 0 obj -<< -/Subtype /Link -/A 2630 0 R -/Type /Annot -/Rect [201.6 418.124 207 429.437] -/Border [0 0 0] ->> -endobj -2632 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2633 0 obj -<< -/Subtype /Link -/A 2632 0 R -/Type /Annot -/Rect [207 418.124 212.4 429.437] -/Border [0 0 0] ->> -endobj -2634 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2635 0 obj -<< -/Subtype /Link -/A 2634 0 R -/Type /Annot -/Rect [72 406.811 88.2 418.124] -/Border [0 0 0] ->> -endobj -2636 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2637 0 obj -<< -/Subtype /Link -/A 2636 0 R -/Type /Annot -/Rect [88.2 406.811 93.6 418.124] -/Border [0 0 0] ->> -endobj -2638 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2639 0 obj -<< -/Subtype /Link -/A 2638 0 R -/Type /Annot -/Rect [93.6 406.811 115.2 418.124] -/Border [0 0 0] ->> -endobj -2640 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2641 0 obj -<< -/Subtype /Link -/A 2640 0 R -/Type /Annot -/Rect [115.2 406.811 120.6 418.124] -/Border [0 0 0] ->> -endobj -2642 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2643 0 obj -<< -/Subtype /Link -/A 2642 0 R -/Type /Annot -/Rect [120.6 406.811 142.2 418.124] -/Border [0 0 0] ->> -endobj -2644 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2645 0 obj -<< -/Subtype /Link -/A 2644 0 R -/Type /Annot -/Rect [142.2 406.811 147.6 418.124] -/Border [0 0 0] ->> -endobj -2646 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2647 0 obj -<< -/Subtype /Link -/A 2646 0 R -/Type /Annot -/Rect [147.6 406.811 153 418.124] -/Border [0 0 0] ->> -endobj -2648 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2649 0 obj -<< -/Subtype /Link -/A 2648 0 R -/Type /Annot -/Rect [72 384.185 217.8 395.498] -/Border [0 0 0] ->> -endobj -2650 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2651 0 obj -<< -/Subtype /Link -/A 2650 0 R -/Type /Annot -/Rect [72 372.872 93.6 384.185] -/Border [0 0 0] ->> -endobj -2652 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2653 0 obj -<< -/Subtype /Link -/A 2652 0 R -/Type /Annot -/Rect [93.6 372.872 99 384.185] -/Border [0 0 0] ->> -endobj -2654 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2655 0 obj -<< -/Subtype /Link -/A 2654 0 R -/Type /Annot -/Rect [99 372.872 104.4 384.185] -/Border [0 0 0] ->> -endobj -2656 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2657 0 obj -<< -/Subtype /Link -/A 2656 0 R -/Type /Annot -/Rect [104.4 372.872 109.8 384.185] -/Border [0 0 0] ->> -endobj -2658 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2659 0 obj -<< -/Subtype /Link -/A 2658 0 R -/Type /Annot -/Rect [109.8 372.872 126 384.185] -/Border [0 0 0] ->> -endobj -2660 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2661 0 obj -<< -/Subtype /Link -/A 2660 0 R -/Type /Annot -/Rect [126 372.872 131.4 384.185] -/Border [0 0 0] ->> -endobj -2662 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2663 0 obj -<< -/Subtype /Link -/A 2662 0 R -/Type /Annot -/Rect [131.4 372.872 207 384.185] -/Border [0 0 0] ->> -endobj -2664 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2665 0 obj -<< -/Subtype /Link -/A 2664 0 R -/Type /Annot -/Rect [207 372.872 212.4 384.185] -/Border [0 0 0] ->> -endobj -2666 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2667 0 obj -<< -/Subtype /Link -/A 2666 0 R -/Type /Annot -/Rect [212.4 372.872 228.6 384.185] -/Border [0 0 0] ->> -endobj -2668 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2669 0 obj -<< -/Subtype /Link -/A 2668 0 R -/Type /Annot -/Rect [228.6 372.872 234 384.185] -/Border [0 0 0] ->> -endobj -2670 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2671 0 obj -<< -/Subtype /Link -/A 2670 0 R -/Type /Annot -/Rect [234 372.872 239.4 384.185] -/Border [0 0 0] ->> -endobj -2672 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2673 0 obj -<< -/Subtype /Link -/A 2672 0 R -/Type /Annot -/Rect [239.4 372.872 250.2 384.185] -/Border [0 0 0] ->> -endobj -2674 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2675 0 obj -<< -/Subtype /Link -/A 2674 0 R -/Type /Annot -/Rect [250.2 372.872 255.6 384.185] -/Border [0 0 0] ->> -endobj -2676 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2677 0 obj -<< -/Subtype /Link -/A 2676 0 R -/Type /Annot -/Rect [255.6 372.872 261 384.185] -/Border [0 0 0] ->> -endobj -2678 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2679 0 obj -<< -/Subtype /Link -/A 2678 0 R -/Type /Annot -/Rect [261 372.872 266.4 384.185] -/Border [0 0 0] ->> -endobj -2680 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2681 0 obj -<< -/Subtype /Link -/A 2680 0 R -/Type /Annot -/Rect [266.4 372.872 271.8 384.185] -/Border [0 0 0] ->> -endobj -2682 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2683 0 obj -<< -/Subtype /Link -/A 2682 0 R -/Type /Annot -/Rect [271.8 372.872 277.2 384.185] -/Border [0 0 0] ->> -endobj -2684 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2685 0 obj -<< -/Subtype /Link -/A 2684 0 R -/Type /Annot -/Rect [277.2 372.872 293.4 384.185] -/Border [0 0 0] ->> -endobj -2686 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2687 0 obj -<< -/Subtype /Link -/A 2686 0 R -/Type /Annot -/Rect [293.4 372.872 298.8 384.185] -/Border [0 0 0] ->> -endobj -2688 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2689 0 obj -<< -/Subtype /Link -/A 2688 0 R -/Type /Annot -/Rect [298.8 372.872 304.2 384.185] -/Border [0 0 0] ->> -endobj -2690 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2691 0 obj -<< -/Subtype /Link -/A 2690 0 R -/Type /Annot -/Rect [304.2 372.872 315 384.185] -/Border [0 0 0] ->> -endobj -2692 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2693 0 obj -<< -/Subtype /Link -/A 2692 0 R -/Type /Annot -/Rect [315 372.872 320.4 384.185] -/Border [0 0 0] ->> -endobj -2694 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2695 0 obj -<< -/Subtype /Link -/A 2694 0 R -/Type /Annot -/Rect [320.4 372.872 325.8 384.185] -/Border [0 0 0] ->> -endobj -2696 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2697 0 obj -<< -/Subtype /Link -/A 2696 0 R -/Type /Annot -/Rect [325.8 372.872 336.6 384.185] -/Border [0 0 0] ->> -endobj -2698 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2699 0 obj -<< -/Subtype /Link -/A 2698 0 R -/Type /Annot -/Rect [336.6 372.872 342 384.185] -/Border [0 0 0] ->> -endobj -2700 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2701 0 obj -<< -/Subtype /Link -/A 2700 0 R -/Type /Annot -/Rect [342 372.872 347.4 384.185] -/Border [0 0 0] ->> -endobj -2702 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2703 0 obj -<< -/Subtype /Link -/A 2702 0 R -/Type /Annot -/Rect [72 361.559 93.6 372.872] -/Border [0 0 0] ->> -endobj -2704 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2705 0 obj -<< -/Subtype /Link -/A 2704 0 R -/Type /Annot -/Rect [93.6 361.559 99 372.872] -/Border [0 0 0] ->> -endobj -2706 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2707 0 obj -<< -/Subtype /Link -/A 2706 0 R -/Type /Annot -/Rect [99 361.559 120.6 372.872] -/Border [0 0 0] ->> -endobj -2708 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2709 0 obj -<< -/Subtype /Link -/A 2708 0 R -/Type /Annot -/Rect [120.6 361.559 126 372.872] -/Border [0 0 0] ->> -endobj -2710 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2711 0 obj -<< -/Subtype /Link -/A 2710 0 R -/Type /Annot -/Rect [126 361.559 131.4 372.872] -/Border [0 0 0] ->> -endobj -2712 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2713 0 obj -<< -/Subtype /Link -/A 2712 0 R -/Type /Annot -/Rect [131.4 361.559 136.8 372.872] -/Border [0 0 0] ->> -endobj -2714 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2715 0 obj -<< -/Subtype /Link -/A 2714 0 R -/Type /Annot -/Rect [136.8 361.559 142.2 372.872] -/Border [0 0 0] ->> -endobj -2716 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2717 0 obj -<< -/Subtype /Link -/A 2716 0 R -/Type /Annot -/Rect [142.2 361.559 185.4 372.872] -/Border [0 0 0] ->> -endobj -2718 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2719 0 obj -<< -/Subtype /Link -/A 2718 0 R -/Type /Annot -/Rect [185.4 361.559 190.8 372.872] -/Border [0 0 0] ->> -endobj -2720 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2721 0 obj -<< -/Subtype /Link -/A 2720 0 R -/Type /Annot -/Rect [190.8 361.559 196.2 372.872] -/Border [0 0 0] ->> -endobj -2722 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2723 0 obj -<< -/Subtype /Link -/A 2722 0 R -/Type /Annot -/Rect [196.2 361.559 201.6 372.872] -/Border [0 0 0] ->> -endobj -2724 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2725 0 obj -<< -/Subtype /Link -/A 2724 0 R -/Type /Annot -/Rect [201.6 361.559 207 372.872] -/Border [0 0 0] ->> -endobj -2726 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2727 0 obj -<< -/Subtype /Link -/A 2726 0 R -/Type /Annot -/Rect [72 350.246 93.6 361.559] -/Border [0 0 0] ->> -endobj -2728 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2729 0 obj -<< -/Subtype /Link -/A 2728 0 R -/Type /Annot -/Rect [93.6 350.246 99 361.559] -/Border [0 0 0] ->> -endobj -2730 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2731 0 obj -<< -/Subtype /Link -/A 2730 0 R -/Type /Annot -/Rect [99 350.246 120.6 361.559] -/Border [0 0 0] ->> -endobj -2732 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2733 0 obj -<< -/Subtype /Link -/A 2732 0 R -/Type /Annot -/Rect [120.6 350.246 126 361.559] -/Border [0 0 0] ->> -endobj -2734 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2735 0 obj -<< -/Subtype /Link -/A 2734 0 R -/Type /Annot -/Rect [126 350.246 131.4 361.559] -/Border [0 0 0] ->> -endobj -2736 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2737 0 obj -<< -/Subtype /Link -/A 2736 0 R -/Type /Annot -/Rect [131.4 350.246 136.8 361.559] -/Border [0 0 0] ->> -endobj -2738 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2739 0 obj -<< -/Subtype /Link -/A 2738 0 R -/Type /Annot -/Rect [136.8 350.246 142.2 361.559] -/Border [0 0 0] ->> -endobj -2740 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2741 0 obj -<< -/Subtype /Link -/A 2740 0 R -/Type /Annot -/Rect [142.2 350.246 185.4 361.559] -/Border [0 0 0] ->> -endobj -2742 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2743 0 obj -<< -/Subtype /Link -/A 2742 0 R -/Type /Annot -/Rect [185.4 350.246 190.8 361.559] -/Border [0 0 0] ->> -endobj -2744 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2745 0 obj -<< -/Subtype /Link -/A 2744 0 R -/Type /Annot -/Rect [190.8 350.246 196.2 361.559] -/Border [0 0 0] ->> -endobj -2746 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2747 0 obj -<< -/Subtype /Link -/A 2746 0 R -/Type /Annot -/Rect [196.2 350.246 201.6 361.559] -/Border [0 0 0] ->> -endobj -2748 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2749 0 obj -<< -/Subtype /Link -/A 2748 0 R -/Type /Annot -/Rect [201.6 350.246 207 361.559] -/Border [0 0 0] ->> -endobj -2750 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2751 0 obj -<< -/Subtype /Link -/A 2750 0 R -/Type /Annot -/Rect [207 350.246 212.4 361.559] -/Border [0 0 0] ->> -endobj -2752 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2753 0 obj -<< -/Subtype /Link -/A 2752 0 R -/Type /Annot -/Rect [72 327.62 88.2 338.933] -/Border [0 0 0] ->> -endobj -2754 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2755 0 obj -<< -/Subtype /Link -/A 2754 0 R -/Type /Annot -/Rect [88.2 327.62 93.6 338.933] -/Border [0 0 0] ->> -endobj -2756 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2757 0 obj -<< -/Subtype /Link -/A 2756 0 R -/Type /Annot -/Rect [93.6 327.62 126 338.933] -/Border [0 0 0] ->> -endobj -2758 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2759 0 obj -<< -/Subtype /Link -/A 2758 0 R -/Type /Annot -/Rect [126 327.62 131.4 338.933] -/Border [0 0 0] ->> -endobj -2760 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2761 0 obj -<< -/Subtype /Link -/A 2760 0 R -/Type /Annot -/Rect [131.4 327.62 147.6 338.933] -/Border [0 0 0] ->> -endobj -2762 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2763 0 obj -<< -/Subtype /Link -/A 2762 0 R -/Type /Annot -/Rect [147.6 327.62 153 338.933] -/Border [0 0 0] ->> -endobj -2764 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2765 0 obj -<< -/Subtype /Link -/A 2764 0 R -/Type /Annot -/Rect [153 327.62 158.4 338.933] -/Border [0 0 0] ->> -endobj -2766 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2767 0 obj -<< -/Subtype /Link -/A 2766 0 R -/Type /Annot -/Rect [158.4 327.62 169.2 338.933] -/Border [0 0 0] ->> -endobj -2768 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2769 0 obj -<< -/Subtype /Link -/A 2768 0 R -/Type /Annot -/Rect [169.2 327.62 174.6 338.933] -/Border [0 0 0] ->> -endobj -2770 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2771 0 obj -<< -/Subtype /Link -/A 2770 0 R -/Type /Annot -/Rect [174.6 327.62 180 338.933] -/Border [0 0 0] ->> -endobj -2772 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2773 0 obj -<< -/Subtype /Link -/A 2772 0 R -/Type /Annot -/Rect [180 327.62 190.8 338.933] -/Border [0 0 0] ->> -endobj -2774 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2775 0 obj -<< -/Subtype /Link -/A 2774 0 R -/Type /Annot -/Rect [190.8 327.62 196.2 338.933] -/Border [0 0 0] ->> -endobj -2776 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2777 0 obj -<< -/Subtype /Link -/A 2776 0 R -/Type /Annot -/Rect [196.2 327.62 201.6 338.933] -/Border [0 0 0] ->> -endobj -2778 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2779 0 obj -<< -/Subtype /Link -/A 2778 0 R -/Type /Annot -/Rect [72 316.307 88.2 327.62] -/Border [0 0 0] ->> -endobj -2780 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2781 0 obj -<< -/Subtype /Link -/A 2780 0 R -/Type /Annot -/Rect [88.2 316.307 93.6 327.62] -/Border [0 0 0] ->> -endobj -2782 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2783 0 obj -<< -/Subtype /Link -/A 2782 0 R -/Type /Annot -/Rect [93.6 316.307 115.2 327.62] -/Border [0 0 0] ->> -endobj -2784 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2785 0 obj -<< -/Subtype /Link -/A 2784 0 R -/Type /Annot -/Rect [115.2 316.307 120.6 327.62] -/Border [0 0 0] ->> -endobj -2786 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2787 0 obj -<< -/Subtype /Link -/A 2786 0 R -/Type /Annot -/Rect [120.6 316.307 142.2 327.62] -/Border [0 0 0] ->> -endobj -2788 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2789 0 obj -<< -/Subtype /Link -/A 2788 0 R -/Type /Annot -/Rect [142.2 316.307 147.6 327.62] -/Border [0 0 0] ->> -endobj -2790 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2791 0 obj -<< -/Subtype /Link -/A 2790 0 R -/Type /Annot -/Rect [147.6 316.307 153 327.62] -/Border [0 0 0] ->> -endobj -2792 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2793 0 obj -<< -/Subtype /Link -/A 2792 0 R -/Type /Annot -/Rect [72 293.807 279.299805 306.307] -/Border [0 0 0] ->> -endobj -2794 0 obj -<< -/FunctionType 2 -/Domain [0 1] -/C0 [0 0.501961 0] -/C1 [1 0 0] -/N 1 ->> -endobj -2795 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [50 0 150 100] -/Function 2794 0 R -/Extend [true true] ->> -endobj -2796 0 obj -<< -/Type /Pattern -/PatternType 2 -/Shading 2795 0 R -/Matrix [1 0 0 -1 72 273.403] ->> -endobj -2797 0 obj -<< -/FunctionType 2 -/Domain [0 1] -/C0 [1 0.647059 0] -/C1 [1 0.647059 0] -/N 1 ->> -endobj -2798 0 obj -<< -/ShadingType 3 -/ColorSpace /DeviceRGB -/Coords [300 50 0 300 50 50] -/Function 2797 0 R -/Extend [true true] ->> -endobj -2799 0 obj -<< -/Type /Pattern -/PatternType 2 -/Shading 2798 0 R -/Matrix [1 0 0 -1 72 273.403] ->> -endobj -2800 0 obj -<< -/FunctionType 2 -/Domain [0 1] -/C0 [0] -/C1 [1] -/N 1 ->> -endobj -2801 0 obj -<< -/ShadingType 3 -/ColorSpace /DeviceGray -/Coords [300 50 0 300 50 50] -/Function 2800 0 R -/Extend [true true] ->> -endobj -2802 0 obj -<< -/Type /Pattern -/PatternType 2 -/Shading 2801 0 R -/Matrix [1 0 0 -1 72 273.403] ->> -endobj -2803 0 obj -<< -/Type /XObject -/Subtype /Form -/FormType 1 -/BBox [0 0 612 792] -/Group << -/Type /Group -/S /Transparency -/CS /DeviceGray ->> -/Resources << -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Pattern << -/Sh1 2802 0 R ->> ->> -/Length 46 -/Filter /FlateDecode ->> -stream -xH,)I-SH.V0T(N2P0P034R04R(JUH -/ -endstream -endobj -2804 0 obj -<< -/Type /ExtGState -/SMask << -/Type /Mask -/S /Luminosity -/G 2803 0 R ->> ->> -endobj -2805 0 obj -<< -/Type /Pattern -/PatternType 1 -/PaintType 1 -/TilingType 2 -/BBox [0 0 612 792] -/XStep 612 -/YStep 792 -/Resources << -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Pattern << -/Sh1 2799 0 R ->> -/ExtGState << -/Gs1 2804 0 R ->> ->> -/Length 52 -/Filter /FlateDecode ->> -stream -xw/6TH/VH,)I-SH3    -RҸ9 c -endstream -endobj -2458 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 2456 0 R -/Resources 2457 0 R -/Annots [2461 0 R 2463 0 R 2465 0 R 2467 0 R 2469 0 R 2471 0 R 2473 0 R 2475 0 R 2477 0 R 2479 0 R 2481 0 R 2483 0 R 2485 0 R 2487 0 R 2489 0 R 2491 0 R 2493 0 R 2495 0 R 2497 0 R 2499 0 R 2501 0 R 2503 0 R 2505 0 R 2507 0 R 2509 0 R 2511 0 R 2513 0 R 2515 0 R 2517 0 R 2519 0 R 2521 0 R 2523 0 R 2525 0 R 2527 0 R 2529 0 R 2531 0 R 2533 0 R 2535 0 R 2537 0 R 2539 0 R 2541 0 R 2543 0 R 2545 0 R 2547 0 R 2549 0 R 2551 0 R 2553 0 R 2555 0 R 2557 0 R 2559 0 R 2561 0 R 2563 0 R 2565 0 R 2567 0 R 2569 0 R 2571 0 R 2573 0 R 2575 0 R 2577 0 R 2579 0 R 2581 0 R 2583 0 R 2585 0 R 2587 0 R 2589 0 R 2591 0 R 2593 0 R 2595 0 R 2597 0 R 2599 0 R 2601 0 R 2603 0 R 2605 0 R 2607 0 R 2609 0 R 2611 0 R 2613 0 R 2615 0 R 2617 0 R 2619 0 R 2621 0 R 2623 0 R 2625 0 R 2627 0 R 2629 0 R 2631 0 R 2633 0 R 2635 0 R 2637 0 R 2639 0 R 2641 0 R 2643 0 R 2645 0 R 2647 0 R 2649 0 R 2651 0 R 2653 0 R 2655 0 R 2657 0 R 2659 0 R 2661 0 R 2663 0 R 2665 0 R 2667 0 R 2669 0 R 2671 0 R 2673 0 R 2675 0 R 2677 0 R 2679 0 R 2681 0 R 2683 0 R 2685 0 R 2687 0 R 2689 0 R 2691 0 R 2693 0 R 2695 0 R 2697 0 R 2699 0 R 2701 0 R 2703 0 R 2705 0 R 2707 0 R 2709 0 R 2711 0 R 2713 0 R 2715 0 R 2717 0 R 2719 0 R 2721 0 R 2723 0 R 2725 0 R 2727 0 R 2729 0 R 2731 0 R 2733 0 R 2735 0 R 2737 0 R 2739 0 R 2741 0 R 2743 0 R 2745 0 R 2747 0 R 2749 0 R 2751 0 R 2753 0 R 2755 0 R 2757 0 R 2759 0 R 2761 0 R 2763 0 R 2765 0 R 2767 0 R 2769 0 R 2771 0 R 2773 0 R 2775 0 R 2777 0 R 2779 0 R 2781 0 R 2783 0 R 2785 0 R 2787 0 R 2789 0 R 2791 0 R 2793 0 R] ->> -endobj -2457 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> -/Pattern << -/Sh1 2796 0 R -/Sh3 2802 0 R -/Sh2 2805 0 R ->> ->> -endobj -2456 0 obj -<< -/Length 2354 -/Filter /FlateDecode ->> -stream -x]ɮ6+Ux9(:]ux Fh6AeJ֥&Jl=<ݛ|ֈ:K]uL度pL$*(W%zJ Μ>'$5Mӵ2"L3~>ޠ~P?)Ejܪ@F{٪<"z#D*3ժhHBoʬL䳮rZnyH$\y~V,vi[VorkMrrR!cxˮYng,w3%7,4DZV﯑-}Q7cf݊#KM,Ϳ潗ch>_LgsG$pҘᜍBPŸ̪x#C.Is/d%16#Ybt,-e -tg&',Fe@DK.)sQuĨaJ )f4dniꓔE'Ε"oɸ8e8~?&",kտ,k Ɇ4@ ODlftRak)J) -Wɚ4!9ex̏qFZxMǻ0o1zkgGgnÐ̧Dtcej/)XJR2HRJ\`9 J+sUH(Wi𺅫ZK\sl>ؘtF0.IM*%~([dyS3Ҙ*;u>=Nn/ipU(+,Ѽ'ם~ռr&NjП -4I%a's+A*h-͓&C$#aH'#dtgn( uE%N+6 EL҈F!r~92j1NTqcuŪZaJƯ"֨ lFߊhƜjHkXMR!VQ(5Ab0N^k.`yXTsbtA #^Ȕz1NټD[mՃ(\5edFi4JQٝܞ#JgK8G_\XSLF2_4kr -kSU%n!E?#qW%i8xZ-+:5oOM<ڐ{zGx[a1Ds>jf8y! -nȻ=.eɡc]AA]MDo=EK6cTg~  > -6d눺'`fe8FXsz}v3hDG>0<"_6q:& -]Ɍ})&pYEE4AՓ#g#%jEA"zH.㩮DfaI"8{I`zILtV>6Ҕp{،xZjzaEPGs>a5,Ś8'-LD׏`i1VޟwW:>B}A(ƫbWS%߮jsW[#6%z7ysށ[Cv^ SżOCԷ7U; +lZ>vMdȨى yAjX4(m?12zc8?W~m?~BNl"m3v?{?}f -7n@N;`޷C5^|æ+YЀv+Uв7<|Mgpzt՟tՀy* -n<۰ט#%s/@΁a΁T3=TQ?C5w;_GN ѺY7!?t,Ȥ)T7C{ZC R03La< S,1j0{ -SCB| Lu70hCS'At/@Icn0yHC'm'";y0!p^f Y_mhA&"p:@=(S{1\={Q 8jZ'eXl^16qvsyz=0=0LhF9?IOvw/j?P:2-dUG_KӁQ+1>LY^cTepNl|wiK4? 0g -endstream -endobj -2810 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2811 0 obj -<< -/Subtype /Link -/A 2810 0 R -/Type /Annot -/Rect [72 695.502 180.18 720] -/Border [0 0 0] ->> -endobj -2812 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2813 0 obj -<< -/Subtype /Link -/A 2812 0 R -/Type /Annot -/Rect [72 673.002 535.549805 685.502] -/Border [0 0 0] ->> -endobj -2814 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2815 0 obj -<< -/Subtype /Link -/A 2814 0 R -/Type /Annot -/Rect [72 660.502 243.401367 673.002] -/Border [0 0 0] ->> -endobj -2816 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2817 0 obj -<< -/Subtype /Link -/A 2816 0 R -/Type /Annot -/Rect [243.401367 660.432 267.401367 673.002] -/Border [0 0 0] ->> -endobj -2818 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2819 0 obj -<< -/Subtype /Link -/A 2818 0 R -/Type /Annot -/Rect [267.401367 660.502 291.112305 673.002] -/Border [0 0 0] ->> -endobj -2820 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2821 0 obj -<< -/Subtype /Link -/A 2820 0 R -/Type /Annot -/Rect [291.112305 660.432 369.112305 673.002] -/Border [0 0 0] ->> -endobj -2822 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2823 0 obj -<< -/Subtype /Link -/A 2822 0 R -/Type /Annot -/Rect [369.112305 660.502 511.392578 673.002] -/Border [0 0 0] ->> -endobj -2824 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2825 0 obj -<< -/Subtype /Link -/A 2824 0 R -/Type /Annot -/Rect [72 648.002 187.097656 660.502] -/Border [0 0 0] ->> -endobj -2826 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2827 0 obj -<< -/Subtype /Link -/A 2826 0 R -/Type /Annot -/Rect [187.097656 647.932 235.097656 660.502] -/Border [0 0 0] ->> -endobj -2828 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2829 0 obj -<< -/Subtype /Link -/A 2828 0 R -/Type /Annot -/Rect [235.097656 648.002 258.808594 660.502] -/Border [0 0 0] ->> -endobj -2830 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2831 0 obj -<< -/Subtype /Link -/A 2830 0 R -/Type /Annot -/Rect [258.808594 647.932 306.808594 660.502] -/Border [0 0 0] ->> -endobj -2832 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2833 0 obj -<< -/Subtype /Link -/A 2832 0 R -/Type /Annot -/Rect [306.808594 648.002 310.255859 660.502] -/Border [0 0 0] ->> -endobj -2834 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2835 0 obj -<< -/Subtype /Link -/A 2834 0 R -/Type /Annot -/Rect [72 626.689 158.4 638.002] -/Border [0 0 0] ->> -endobj -2836 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2837 0 obj -<< -/Subtype /Link -/A 2836 0 R -/Type /Annot -/Rect [72 615.376 88.2 626.689] -/Border [0 0 0] ->> -endobj -2838 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2839 0 obj -<< -/Subtype /Link -/A 2838 0 R -/Type /Annot -/Rect [88.2 615.376 93.6 626.689] -/Border [0 0 0] ->> -endobj -2840 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2841 0 obj -<< -/Subtype /Link -/A 2840 0 R -/Type /Annot -/Rect [93.6 615.376 142.2 626.689] -/Border [0 0 0] ->> -endobj -2842 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2843 0 obj -<< -/Subtype /Link -/A 2842 0 R -/Type /Annot -/Rect [142.2 615.376 147.6 626.689] -/Border [0 0 0] ->> -endobj -2844 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2845 0 obj -<< -/Subtype /Link -/A 2844 0 R -/Type /Annot -/Rect [147.6 615.376 174.6 626.689] -/Border [0 0 0] ->> -endobj -2846 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2847 0 obj -<< -/Subtype /Link -/A 2846 0 R -/Type /Annot -/Rect [174.6 615.376 180 626.689] -/Border [0 0 0] ->> -endobj -2848 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2849 0 obj -<< -/Subtype /Link -/A 2848 0 R -/Type /Annot -/Rect [72 604.063 88.2 615.376] -/Border [0 0 0] ->> -endobj -2850 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2851 0 obj -<< -/Subtype /Link -/A 2850 0 R -/Type /Annot -/Rect [88.2 604.063 93.6 615.376] -/Border [0 0 0] ->> -endobj -2852 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2853 0 obj -<< -/Subtype /Link -/A 2852 0 R -/Type /Annot -/Rect [93.6 604.063 142.2 615.376] -/Border [0 0 0] ->> -endobj -2854 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2855 0 obj -<< -/Subtype /Link -/A 2854 0 R -/Type /Annot -/Rect [142.2 604.063 147.6 615.376] -/Border [0 0 0] ->> -endobj -2856 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2857 0 obj -<< -/Subtype /Link -/A 2856 0 R -/Type /Annot -/Rect [147.6 604.063 153 615.376] -/Border [0 0 0] ->> -endobj -2858 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2859 0 obj -<< -/Subtype /Link -/A 2858 0 R -/Type /Annot -/Rect [153 604.063 169.2 615.376] -/Border [0 0 0] ->> -endobj -2860 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2861 0 obj -<< -/Subtype /Link -/A 2860 0 R -/Type /Annot -/Rect [169.2 604.063 174.6 615.376] -/Border [0 0 0] ->> -endobj -2862 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2863 0 obj -<< -/Subtype /Link -/A 2862 0 R -/Type /Annot -/Rect [174.6 604.063 180 615.376] -/Border [0 0 0] ->> -endobj -2864 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2865 0 obj -<< -/Subtype /Link -/A 2864 0 R -/Type /Annot -/Rect [180 604.063 185.4 615.376] -/Border [0 0 0] ->> -endobj -2866 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2867 0 obj -<< -/Subtype /Link -/A 2866 0 R -/Type /Annot -/Rect [185.4 604.063 196.2 615.376] -/Border [0 0 0] ->> -endobj -2868 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2869 0 obj -<< -/Subtype /Link -/A 2868 0 R -/Type /Annot -/Rect [196.2 604.063 201.6 615.376] -/Border [0 0 0] ->> -endobj -2870 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2871 0 obj -<< -/Subtype /Link -/A 2870 0 R -/Type /Annot -/Rect [72 592.75 88.2 604.063] -/Border [0 0 0] ->> -endobj -2872 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2873 0 obj -<< -/Subtype /Link -/A 2872 0 R -/Type /Annot -/Rect [88.2 592.75 93.6 604.063] -/Border [0 0 0] ->> -endobj -2874 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2875 0 obj -<< -/Subtype /Link -/A 2874 0 R -/Type /Annot -/Rect [93.6 592.75 120.6 604.063] -/Border [0 0 0] ->> -endobj -2876 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2877 0 obj -<< -/Subtype /Link -/A 2876 0 R -/Type /Annot -/Rect [120.6 592.75 126 604.063] -/Border [0 0 0] ->> -endobj -2878 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2879 0 obj -<< -/Subtype /Link -/A 2878 0 R -/Type /Annot -/Rect [126 592.75 142.2 604.063] -/Border [0 0 0] ->> -endobj -2880 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2881 0 obj -<< -/Subtype /Link -/A 2880 0 R -/Type /Annot -/Rect [142.2 592.75 147.6 604.063] -/Border [0 0 0] ->> -endobj -2882 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2883 0 obj -<< -/Subtype /Link -/A 2882 0 R -/Type /Annot -/Rect [147.6 592.75 153 604.063] -/Border [0 0 0] ->> -endobj -2884 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2885 0 obj -<< -/Subtype /Link -/A 2884 0 R -/Type /Annot -/Rect [72 570.124 325.8 581.437] -/Border [0 0 0] ->> -endobj -2886 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2887 0 obj -<< -/Subtype /Link -/A 2886 0 R -/Type /Annot -/Rect [72 558.811 88.2 570.124] -/Border [0 0 0] ->> -endobj -2888 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2889 0 obj -<< -/Subtype /Link -/A 2888 0 R -/Type /Annot -/Rect [88.2 558.811 93.6 570.124] -/Border [0 0 0] ->> -endobj -2890 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2891 0 obj -<< -/Subtype /Link -/A 2890 0 R -/Type /Annot -/Rect [93.6 558.811 115.2 570.124] -/Border [0 0 0] ->> -endobj -2892 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2893 0 obj -<< -/Subtype /Link -/A 2892 0 R -/Type /Annot -/Rect [115.2 558.811 120.6 570.124] -/Border [0 0 0] ->> -endobj -2894 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2895 0 obj -<< -/Subtype /Link -/A 2894 0 R -/Type /Annot -/Rect [120.6 558.811 369 570.124] -/Border [0 0 0] ->> -endobj -2896 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2897 0 obj -<< -/Subtype /Link -/A 2896 0 R -/Type /Annot -/Rect [369 558.811 374.4 570.124] -/Border [0 0 0] ->> -endobj -2898 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2899 0 obj -<< -/Subtype /Link -/A 2898 0 R -/Type /Annot -/Rect [72 547.498 88.2 558.811] -/Border [0 0 0] ->> -endobj -2900 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2901 0 obj -<< -/Subtype /Link -/A 2900 0 R -/Type /Annot -/Rect [88.2 547.498 93.6 558.811] -/Border [0 0 0] ->> -endobj -2902 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2903 0 obj -<< -/Subtype /Link -/A 2902 0 R -/Type /Annot -/Rect [93.6 547.498 115.2 558.811] -/Border [0 0 0] ->> -endobj -2904 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2905 0 obj -<< -/Subtype /Link -/A 2904 0 R -/Type /Annot -/Rect [115.2 547.498 120.6 558.811] -/Border [0 0 0] ->> -endobj -2906 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2907 0 obj -<< -/Subtype /Link -/A 2906 0 R -/Type /Annot -/Rect [120.6 547.498 174.6 558.811] -/Border [0 0 0] ->> -endobj -2908 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2909 0 obj -<< -/Subtype /Link -/A 2908 0 R -/Type /Annot -/Rect [174.6 547.498 180 558.811] -/Border [0 0 0] ->> -endobj -2910 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2911 0 obj -<< -/Subtype /Link -/A 2910 0 R -/Type /Annot -/Rect [180 547.498 185.4 558.811] -/Border [0 0 0] ->> -endobj -2912 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2913 0 obj -<< -/Subtype /Link -/A 2912 0 R -/Type /Annot -/Rect [72 524.872 325.8 536.185] -/Border [0 0 0] ->> -endobj -2914 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2915 0 obj -<< -/Subtype /Link -/A 2914 0 R -/Type /Annot -/Rect [72 513.559 88.2 524.872] -/Border [0 0 0] ->> -endobj -2916 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2917 0 obj -<< -/Subtype /Link -/A 2916 0 R -/Type /Annot -/Rect [88.2 513.559 93.6 524.872] -/Border [0 0 0] ->> -endobj -2918 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2919 0 obj -<< -/Subtype /Link -/A 2918 0 R -/Type /Annot -/Rect [93.6 513.559 142.2 524.872] -/Border [0 0 0] ->> -endobj -2920 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2921 0 obj -<< -/Subtype /Link -/A 2920 0 R -/Type /Annot -/Rect [142.2 513.559 147.6 524.872] -/Border [0 0 0] ->> -endobj -2922 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2923 0 obj -<< -/Subtype /Link -/A 2922 0 R -/Type /Annot -/Rect [147.6 513.559 163.8 524.872] -/Border [0 0 0] ->> -endobj -2924 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2925 0 obj -<< -/Subtype /Link -/A 2924 0 R -/Type /Annot -/Rect [163.8 513.559 169.2 524.872] -/Border [0 0 0] ->> -endobj -2926 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2927 0 obj -<< -/Subtype /Link -/A 2926 0 R -/Type /Annot -/Rect [169.2 513.559 174.6 524.872] -/Border [0 0 0] ->> -endobj -2928 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2929 0 obj -<< -/Subtype /Link -/A 2928 0 R -/Type /Annot -/Rect [174.6 513.559 180 524.872] -/Border [0 0 0] ->> -endobj -2930 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2931 0 obj -<< -/Subtype /Link -/A 2930 0 R -/Type /Annot -/Rect [180 513.559 185.4 524.872] -/Border [0 0 0] ->> -endobj -2932 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2933 0 obj -<< -/Subtype /Link -/A 2932 0 R -/Type /Annot -/Rect [72 502.246 88.2 513.559] -/Border [0 0 0] ->> -endobj -2934 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2935 0 obj -<< -/Subtype /Link -/A 2934 0 R -/Type /Annot -/Rect [88.2 502.246 93.6 513.559] -/Border [0 0 0] ->> -endobj -2936 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2937 0 obj -<< -/Subtype /Link -/A 2936 0 R -/Type /Annot -/Rect [93.6 502.246 115.2 513.559] -/Border [0 0 0] ->> -endobj -2938 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2939 0 obj -<< -/Subtype /Link -/A 2938 0 R -/Type /Annot -/Rect [115.2 502.246 120.6 513.559] -/Border [0 0 0] ->> -endobj -2940 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2941 0 obj -<< -/Subtype /Link -/A 2940 0 R -/Type /Annot -/Rect [120.6 502.246 369 513.559] -/Border [0 0 0] ->> -endobj -2942 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2943 0 obj -<< -/Subtype /Link -/A 2942 0 R -/Type /Annot -/Rect [369 502.246 374.4 513.559] -/Border [0 0 0] ->> -endobj -2944 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2945 0 obj -<< -/Subtype /Link -/A 2944 0 R -/Type /Annot -/Rect [72 490.933 88.2 502.246] -/Border [0 0 0] ->> -endobj -2946 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2947 0 obj -<< -/Subtype /Link -/A 2946 0 R -/Type /Annot -/Rect [88.2 490.933 93.6 502.246] -/Border [0 0 0] ->> -endobj -2948 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2949 0 obj -<< -/Subtype /Link -/A 2948 0 R -/Type /Annot -/Rect [93.6 490.933 115.2 502.246] -/Border [0 0 0] ->> -endobj -2950 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2951 0 obj -<< -/Subtype /Link -/A 2950 0 R -/Type /Annot -/Rect [115.2 490.933 120.6 502.246] -/Border [0 0 0] ->> -endobj -2952 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2953 0 obj -<< -/Subtype /Link -/A 2952 0 R -/Type /Annot -/Rect [120.6 490.933 174.6 502.246] -/Border [0 0 0] ->> -endobj -2954 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2955 0 obj -<< -/Subtype /Link -/A 2954 0 R -/Type /Annot -/Rect [174.6 490.933 180 502.246] -/Border [0 0 0] ->> -endobj -2956 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2957 0 obj -<< -/Subtype /Link -/A 2956 0 R -/Type /Annot -/Rect [180 490.933 185.4 502.246] -/Border [0 0 0] ->> -endobj -2958 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2959 0 obj -<< -/Subtype /Link -/A 2958 0 R -/Type /Annot -/Rect [72 468.433 212.585938 480.933] -/Border [0 0 0] ->> -endobj -2960 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2961 0 obj -<< -/Subtype /Link -/A 2960 0 R -/Type /Annot -/Rect [212.585938 468.363 242.585938 480.933] -/Border [0 0 0] ->> -endobj -2962 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2963 0 obj -<< -/Subtype /Link -/A 2962 0 R -/Type /Annot -/Rect [242.585938 468.433 266.296875 480.933] -/Border [0 0 0] ->> -endobj -2964 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2965 0 obj -<< -/Subtype /Link -/A 2964 0 R -/Type /Annot -/Rect [266.296875 468.363 320.296875 480.933] -/Border [0 0 0] ->> -endobj -2966 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2967 0 obj -<< -/Subtype /Link -/A 2966 0 R -/Type /Annot -/Rect [320.296875 468.433 519.891602 480.933] -/Border [0 0 0] ->> -endobj -2968 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2969 0 obj -<< -/Subtype /Link -/A 2968 0 R -/Type /Annot -/Rect [72 455.933 501.462891 468.433] -/Border [0 0 0] ->> -endobj -2808 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 2806 0 R -/Resources 2807 0 R -/Annots [2811 0 R 2813 0 R 2815 0 R 2817 0 R 2819 0 R 2821 0 R 2823 0 R 2825 0 R 2827 0 R 2829 0 R 2831 0 R 2833 0 R 2835 0 R 2837 0 R 2839 0 R 2841 0 R 2843 0 R 2845 0 R 2847 0 R 2849 0 R 2851 0 R 2853 0 R 2855 0 R 2857 0 R 2859 0 R 2861 0 R 2863 0 R 2865 0 R 2867 0 R 2869 0 R 2871 0 R 2873 0 R 2875 0 R 2877 0 R 2879 0 R 2881 0 R 2883 0 R 2885 0 R 2887 0 R 2889 0 R 2891 0 R 2893 0 R 2895 0 R 2897 0 R 2899 0 R 2901 0 R 2903 0 R 2905 0 R 2907 0 R 2909 0 R 2911 0 R 2913 0 R 2915 0 R 2917 0 R 2919 0 R 2921 0 R 2923 0 R 2925 0 R 2927 0 R 2929 0 R 2931 0 R 2933 0 R 2935 0 R 2937 0 R 2939 0 R 2941 0 R 2943 0 R 2945 0 R 2947 0 R 2949 0 R 2951 0 R 2953 0 R 2955 0 R 2957 0 R 2959 0 R 2961 0 R 2963 0 R 2965 0 R 2967 0 R 2969 0 R] ->> -endobj -2807 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -2806 0 obj -<< -/Length 1539 -/Filter /FlateDecode ->> -stream -x[Ko6 ϯ@TQoE>ZV0Z[XL=Ʊm'pl˲D~")RG՜>/?~hN2?tFu?2l89vw{9rŘ=vhw% 5h GWl>sn=sDnۃ6 ul/Jeވd Ez=~f·Q).RaswI9$w8*XtWl)P;YXIm27)UJ}ۦz> -endobj -2975 0 obj -<< -/Subtype /Link -/A 2974 0 R -/Type /Annot -/Rect [72 695.502 365.778 720] -/Border [0 0 0] ->> -endobj -2976 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2977 0 obj -<< -/Subtype /Link -/A 2976 0 R -/Type /Annot -/Rect [72 673.002 536.326172 685.502] -/Border [0 0 0] ->> -endobj -2978 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2979 0 obj -<< -/Subtype /Link -/A 2978 0 R -/Type /Annot -/Rect [72 660.502 531.941406 673.002] -/Border [0 0 0] ->> -endobj -2980 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2981 0 obj -<< -/Subtype /Link -/A 2980 0 R -/Type /Annot -/Rect [72 648.002 506.106445 660.502] -/Border [0 0 0] ->> -endobj -2982 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2983 0 obj -<< -/Subtype /Link -/A 2982 0 R -/Type /Annot -/Rect [72 635.502 297.961914 648.002] -/Border [0 0 0] ->> -endobj -2984 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2985 0 obj -<< -/Subtype /Link -/A 2984 0 R -/Type /Annot -/Rect [297.961914 635.432 321.961914 648.002] -/Border [0 0 0] ->> -endobj -2986 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2987 0 obj -<< -/Subtype /Link -/A 2986 0 R -/Type /Annot -/Rect [321.961914 635.502 516.385742 648.002] -/Border [0 0 0] ->> -endobj -2988 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2989 0 obj -<< -/Subtype /Link -/A 2988 0 R -/Type /Annot -/Rect [72 623.002 318.098633 635.502] -/Border [0 0 0] ->> -endobj -2990 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2991 0 obj -<< -/Subtype /Link -/A 2990 0 R -/Type /Annot -/Rect [318.098633 622.932 360.098633 635.502] -/Border [0 0 0] ->> -endobj -2992 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2993 0 obj -<< -/Subtype /Link -/A 2992 0 R -/Type /Annot -/Rect [360.098633 623.002 507.745117 635.502] -/Border [0 0 0] ->> -endobj -2994 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2995 0 obj -<< -/Subtype /Link -/A 2994 0 R -/Type /Annot -/Rect [72 610.502 531.223633 623.002] -/Border [0 0 0] ->> -endobj -2996 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2997 0 obj -<< -/Subtype /Link -/A 2996 0 R -/Type /Annot -/Rect [72 598.002 348.030273 610.502] -/Border [0 0 0] ->> -endobj -2998 0 obj -<< -/S /URI -/URI (false) ->> -endobj -2999 0 obj -<< -/Subtype /Link -/A 2998 0 R -/Type /Annot -/Rect [72 563.504 199.872 588.002] -/Border [0 0 0] ->> -endobj -3000 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3001 0 obj -<< -/Subtype /Link -/A 3000 0 R -/Type /Annot -/Rect [72 541.004 523.987305 553.504] -/Border [0 0 0] ->> -endobj -3002 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3003 0 obj -<< -/Subtype /Link -/A 3002 0 R -/Type /Annot -/Rect [72 528.504 533.12793 541.004] -/Border [0 0 0] ->> -endobj -3004 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3005 0 obj -<< -/Subtype /Link -/A 3004 0 R -/Type /Annot -/Rect [72 516.004 279.119141 528.504] -/Border [0 0 0] ->> -endobj -3006 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3007 0 obj -<< -/Subtype /Link -/A 3006 0 R -/Type /Annot -/Rect [279.119141 515.934 333.119141 528.504] -/Border [0 0 0] ->> -endobj -3008 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3009 0 obj -<< -/Subtype /Link -/A 3008 0 R -/Type /Annot -/Rect [333.119141 516.004 339.017578 528.504] -/Border [0 0 0] ->> -endobj -3010 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3011 0 obj -<< -/Subtype /Link -/A 3010 0 R -/Type /Annot -/Rect [339.017578 515.934 375.017578 528.504] -/Border [0 0 0] ->> -endobj -3012 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3013 0 obj -<< -/Subtype /Link -/A 3012 0 R -/Type /Annot -/Rect [375.017578 516.004 398.728516 528.504] -/Border [0 0 0] ->> -endobj -3014 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3015 0 obj -<< -/Subtype /Link -/A 3014 0 R -/Type /Annot -/Rect [398.728516 515.934 428.728516 528.504] -/Border [0 0 0] ->> -endobj -3016 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3017 0 obj -<< -/Subtype /Link -/A 3016 0 R -/Type /Annot -/Rect [428.728516 516.004 432.175781 528.504] -/Border [0 0 0] ->> -endobj -3018 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3019 0 obj -<< -/Subtype /Link -/A 3018 0 R -/Type /Annot -/Rect [72 493.504 93.201172 506.004] -/Border [0 0 0] ->> -endobj -3020 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3021 0 obj -<< -/Subtype /Link -/A 3020 0 R -/Type /Annot -/Rect [93.201172 493.434 147.201172 506.004] -/Border [0 0 0] ->> -endobj -3022 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3023 0 obj -<< -/Subtype /Link -/A 3022 0 R -/Type /Annot -/Rect [147.201172 493.504 339.55957 506.004] -/Border [0 0 0] ->> -endobj -3024 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3025 0 obj -<< -/Subtype /Link -/A 3024 0 R -/Type /Annot -/Rect [339.55957 493.434 345.55957 506.004] -/Border [0 0 0] ->> -endobj -3026 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3027 0 obj -<< -/Subtype /Link -/A 3026 0 R -/Type /Annot -/Rect [345.55957 493.504 369.270508 506.004] -/Border [0 0 0] ->> -endobj -3028 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3029 0 obj -<< -/Subtype /Link -/A 3028 0 R -/Type /Annot -/Rect [369.270508 493.434 375.270508 506.004] -/Border [0 0 0] ->> -endobj -3030 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3031 0 obj -<< -/Subtype /Link -/A 3030 0 R -/Type /Annot -/Rect [375.270508 493.504 511.686523 506.004] -/Border [0 0 0] ->> -endobj -3032 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3033 0 obj -<< -/Subtype /Link -/A 3032 0 R -/Type /Annot -/Rect [72 481.004 391.638672 493.504] -/Border [0 0 0] ->> -endobj -3034 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3035 0 obj -<< -/Subtype /Link -/A 3034 0 R -/Type /Annot -/Rect [391.638672 480.934 397.638672 493.504] -/Border [0 0 0] ->> -endobj -3036 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3037 0 obj -<< -/Subtype /Link -/A 3036 0 R -/Type /Annot -/Rect [397.638672 481.004 421.349609 493.504] -/Border [0 0 0] ->> -endobj -3038 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3039 0 obj -<< -/Subtype /Link -/A 3038 0 R -/Type /Annot -/Rect [421.349609 480.934 427.349609 493.504] -/Border [0 0 0] ->> -endobj -3040 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3041 0 obj -<< -/Subtype /Link -/A 3040 0 R -/Type /Annot -/Rect [427.349609 481.004 459.136719 493.504] -/Border [0 0 0] ->> -endobj -3042 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3043 0 obj -<< -/Subtype /Link -/A 3042 0 R -/Type /Annot -/Rect [72 458.504 93.201172 471.004] -/Border [0 0 0] ->> -endobj -3044 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3045 0 obj -<< -/Subtype /Link -/A 3044 0 R -/Type /Annot -/Rect [93.201172 458.434 129.201172 471.004] -/Border [0 0 0] ->> -endobj -3046 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3047 0 obj -<< -/Subtype /Link -/A 3046 0 R -/Type /Annot -/Rect [129.201172 458.504 451.173828 471.004] -/Border [0 0 0] ->> -endobj -3048 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3049 0 obj -<< -/Subtype /Link -/A 3048 0 R -/Type /Annot -/Rect [451.173828 458.434 487.173828 471.004] -/Border [0 0 0] ->> -endobj -3050 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3051 0 obj -<< -/Subtype /Link -/A 3050 0 R -/Type /Annot -/Rect [487.173828 458.504 539.097656 471.004] -/Border [0 0 0] ->> -endobj -3052 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3053 0 obj -<< -/Subtype /Link -/A 3052 0 R -/Type /Annot -/Rect [72 446.004 192.380859 458.504] -/Border [0 0 0] ->> -endobj -3054 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3055 0 obj -<< -/Subtype /Link -/A 3054 0 R -/Type /Annot -/Rect [192.380859 445.934 222.380859 458.504] -/Border [0 0 0] ->> -endobj -3056 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3057 0 obj -<< -/Subtype /Link -/A 3056 0 R -/Type /Annot -/Rect [222.380859 446.004 359.77832 458.504] -/Border [0 0 0] ->> -endobj -3058 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3059 0 obj -<< -/Subtype /Link -/A 3058 0 R -/Type /Annot -/Rect [359.77832 445.934 395.77832 458.504] -/Border [0 0 0] ->> -endobj -3060 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3061 0 obj -<< -/Subtype /Link -/A 3060 0 R -/Type /Annot -/Rect [395.77832 446.004 524.225586 458.504] -/Border [0 0 0] ->> -endobj -3062 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3063 0 obj -<< -/Subtype /Link -/A 3062 0 R -/Type /Annot -/Rect [72 433.504 245.374023 446.004] -/Border [0 0 0] ->> -endobj -3064 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3065 0 obj -<< -/Subtype /Link -/A 3064 0 R -/Type /Annot -/Rect [72 411.004 93.201172 423.504] -/Border [0 0 0] ->> -endobj -3066 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3067 0 obj -<< -/Subtype /Link -/A 3066 0 R -/Type /Annot -/Rect [93.201172 410.934 123.201172 423.504] -/Border [0 0 0] ->> -endobj -3068 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3069 0 obj -<< -/Subtype /Link -/A 3068 0 R -/Type /Annot -/Rect [123.201172 411.004 382.59082 423.504] -/Border [0 0 0] ->> -endobj -3070 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3071 0 obj -<< -/Subtype /Link -/A 3070 0 R -/Type /Annot -/Rect [382.59082 410.934 418.59082 423.504] -/Border [0 0 0] ->> -endobj -3072 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3073 0 obj -<< -/Subtype /Link -/A 3072 0 R -/Type /Annot -/Rect [418.59082 411.004 525.958984 423.504] -/Border [0 0 0] ->> -endobj -3074 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3075 0 obj -<< -/Subtype /Link -/A 3074 0 R -/Type /Annot -/Rect [72 398.504 156.658203 411.004] -/Border [0 0 0] ->> -endobj -3076 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3077 0 obj -<< -/Subtype /Link -/A 3076 0 R -/Type /Annot -/Rect [156.658203 398.434 192.658203 411.004] -/Border [0 0 0] ->> -endobj -3078 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3079 0 obj -<< -/Subtype /Link -/A 3078 0 R -/Type /Annot -/Rect [192.658203 398.504 514.206055 411.004] -/Border [0 0 0] ->> -endobj -3080 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3081 0 obj -<< -/Subtype /Link -/A 3080 0 R -/Type /Annot -/Rect [72 386.004 432.463867 398.504] -/Border [0 0 0] ->> -endobj -3082 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3083 0 obj -<< -/Subtype /Link -/A 3082 0 R -/Type /Annot -/Rect [432.463867 385.934 450.463867 398.504] -/Border [0 0 0] ->> -endobj -3084 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3085 0 obj -<< -/Subtype /Link -/A 3084 0 R -/Type /Annot -/Rect [450.463867 386.004 535.029297 398.504] -/Border [0 0 0] ->> -endobj -3086 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3087 0 obj -<< -/Subtype /Link -/A 3086 0 R -/Type /Annot -/Rect [72 373.504 281.267578 386.004] -/Border [0 0 0] ->> -endobj -3088 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3089 0 obj -<< -/Subtype /Link -/A 3088 0 R -/Type /Annot -/Rect [281.267578 373.434 287.267578 386.004] -/Border [0 0 0] ->> -endobj -3090 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3091 0 obj -<< -/Subtype /Link -/A 3090 0 R -/Type /Annot -/Rect [287.267578 373.504 470.216797 386.004] -/Border [0 0 0] ->> -endobj -3092 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3093 0 obj -<< -/Subtype /Link -/A 3092 0 R -/Type /Annot -/Rect [72 351.004 510.662109 363.504] -/Border [0 0 0] ->> -endobj -3094 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3095 0 obj -<< -/Subtype /Link -/A 3094 0 R -/Type /Annot -/Rect [72 338.504 121.213867 351.004] -/Border [0 0 0] ->> -endobj -3096 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3097 0 obj -<< -/Subtype /Link -/A 3096 0 R -/Type /Annot -/Rect [121.213867 338.434 175.213867 351.004] -/Border [0 0 0] ->> -endobj -3098 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3099 0 obj -<< -/Subtype /Link -/A 3098 0 R -/Type /Annot -/Rect [175.213867 338.504 220.18457 351.004] -/Border [0 0 0] ->> -endobj -3100 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3101 0 obj -<< -/Subtype /Link -/A 3100 0 R -/Type /Annot -/Rect [72 316.004 135.378906 328.504] -/Border [0 0 0] ->> -endobj -3102 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3103 0 obj -<< -/Subtype /Link -/A 3102 0 R -/Type /Annot -/Rect [135.378906 315.934 165.378906 328.504] -/Border [0 0 0] ->> -endobj -3104 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3105 0 obj -<< -/Subtype /Link -/A 3104 0 R -/Type /Annot -/Rect [165.378906 316.004 189.089844 328.504] -/Border [0 0 0] ->> -endobj -3106 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3107 0 obj -<< -/Subtype /Link -/A 3106 0 R -/Type /Annot -/Rect [189.089844 315.934 243.089844 328.504] -/Border [0 0 0] ->> -endobj -3108 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3109 0 obj -<< -/Subtype /Link -/A 3108 0 R -/Type /Annot -/Rect [243.089844 316.004 536.913086 328.504] -/Border [0 0 0] ->> -endobj -3110 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3111 0 obj -<< -/Subtype /Link -/A 3110 0 R -/Type /Annot -/Rect [72 303.364 108 315.934] -/Border [0 0 0] ->> -endobj -3112 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3113 0 obj -<< -/Subtype /Link -/A 3112 0 R -/Type /Annot -/Rect [108 303.434 515.255859 315.934] -/Border [0 0 0] ->> -endobj -3114 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3115 0 obj -<< -/Subtype /Link -/A 3114 0 R -/Type /Annot -/Rect [72 282.121 88.2 293.434] -/Border [0 0 0] ->> -endobj -3116 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3117 0 obj -<< -/Subtype /Link -/A 3116 0 R -/Type /Annot -/Rect [88.2 282.121 93.6 293.434] -/Border [0 0 0] ->> -endobj -3118 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3119 0 obj -<< -/Subtype /Link -/A 3118 0 R -/Type /Annot -/Rect [93.6 282.121 126 293.434] -/Border [0 0 0] ->> -endobj -3120 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3121 0 obj -<< -/Subtype /Link -/A 3120 0 R -/Type /Annot -/Rect [126 282.121 131.4 293.434] -/Border [0 0 0] ->> -endobj -3122 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3123 0 obj -<< -/Subtype /Link -/A 3122 0 R -/Type /Annot -/Rect [131.4 282.121 142.2 293.434] -/Border [0 0 0] ->> -endobj -3124 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3125 0 obj -<< -/Subtype /Link -/A 3124 0 R -/Type /Annot -/Rect [142.2 282.121 147.6 293.434] -/Border [0 0 0] ->> -endobj -3126 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3127 0 obj -<< -/Subtype /Link -/A 3126 0 R -/Type /Annot -/Rect [147.6 282.121 153 293.434] -/Border [0 0 0] ->> -endobj -3128 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3129 0 obj -<< -/Subtype /Link -/A 3128 0 R -/Type /Annot -/Rect [153 282.121 158.4 293.434] -/Border [0 0 0] ->> -endobj -3130 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3131 0 obj -<< -/Subtype /Link -/A 3130 0 R -/Type /Annot -/Rect [158.4 282.121 190.8 293.434] -/Border [0 0 0] ->> -endobj -3132 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3133 0 obj -<< -/Subtype /Link -/A 3132 0 R -/Type /Annot -/Rect [190.8 282.121 196.2 293.434] -/Border [0 0 0] ->> -endobj -3134 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3135 0 obj -<< -/Subtype /Link -/A 3134 0 R -/Type /Annot -/Rect [196.2 282.121 201.6 293.434] -/Border [0 0 0] ->> -endobj -3136 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3137 0 obj -<< -/Subtype /Link -/A 3136 0 R -/Type /Annot -/Rect [201.6 282.121 207 293.434] -/Border [0 0 0] ->> -endobj -3138 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3139 0 obj -<< -/Subtype /Link -/A 3138 0 R -/Type /Annot -/Rect [207 282.121 223.2 293.434] -/Border [0 0 0] ->> -endobj -3140 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3141 0 obj -<< -/Subtype /Link -/A 3140 0 R -/Type /Annot -/Rect [223.2 282.121 228.6 293.434] -/Border [0 0 0] ->> -endobj -3142 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3143 0 obj -<< -/Subtype /Link -/A 3142 0 R -/Type /Annot -/Rect [228.6 282.121 234 293.434] -/Border [0 0 0] ->> -endobj -3144 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3145 0 obj -<< -/Subtype /Link -/A 3144 0 R -/Type /Annot -/Rect [234 282.121 244.8 293.434] -/Border [0 0 0] ->> -endobj -3146 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3147 0 obj -<< -/Subtype /Link -/A 3146 0 R -/Type /Annot -/Rect [244.8 282.121 250.2 293.434] -/Border [0 0 0] ->> -endobj -3148 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3149 0 obj -<< -/Subtype /Link -/A 3148 0 R -/Type /Annot -/Rect [250.2 282.121 255.6 293.434] -/Border [0 0 0] ->> -endobj -3150 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3151 0 obj -<< -/Subtype /Link -/A 3150 0 R -/Type /Annot -/Rect [255.6 282.121 261 293.434] -/Border [0 0 0] ->> -endobj -3152 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3153 0 obj -<< -/Subtype /Link -/A 3152 0 R -/Type /Annot -/Rect [72 270.808 88.2 282.121] -/Border [0 0 0] ->> -endobj -3154 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3155 0 obj -<< -/Subtype /Link -/A 3154 0 R -/Type /Annot -/Rect [88.2 270.808 93.6 282.121] -/Border [0 0 0] ->> -endobj -3156 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3157 0 obj -<< -/Subtype /Link -/A 3156 0 R -/Type /Annot -/Rect [93.6 270.808 115.2 282.121] -/Border [0 0 0] ->> -endobj -3158 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3159 0 obj -<< -/Subtype /Link -/A 3158 0 R -/Type /Annot -/Rect [115.2 270.808 120.6 282.121] -/Border [0 0 0] ->> -endobj -3160 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3161 0 obj -<< -/Subtype /Link -/A 3160 0 R -/Type /Annot -/Rect [120.6 270.808 136.8 282.121] -/Border [0 0 0] ->> -endobj -3162 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3163 0 obj -<< -/Subtype /Link -/A 3162 0 R -/Type /Annot -/Rect [136.8 270.808 142.2 282.121] -/Border [0 0 0] ->> -endobj -3164 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3165 0 obj -<< -/Subtype /Link -/A 3164 0 R -/Type /Annot -/Rect [142.2 270.808 147.6 282.121] -/Border [0 0 0] ->> -endobj -3166 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3167 0 obj -<< -/Subtype /Link -/A 3166 0 R -/Type /Annot -/Rect [147.6 270.808 158.4 282.121] -/Border [0 0 0] ->> -endobj -3168 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3169 0 obj -<< -/Subtype /Link -/A 3168 0 R -/Type /Annot -/Rect [158.4 270.808 163.8 282.121] -/Border [0 0 0] ->> -endobj -3170 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3171 0 obj -<< -/Subtype /Link -/A 3170 0 R -/Type /Annot -/Rect [163.8 270.808 169.2 282.121] -/Border [0 0 0] ->> -endobj -3172 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3173 0 obj -<< -/Subtype /Link -/A 3172 0 R -/Type /Annot -/Rect [169.2 270.808 185.4 282.121] -/Border [0 0 0] ->> -endobj -3174 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3175 0 obj -<< -/Subtype /Link -/A 3174 0 R -/Type /Annot -/Rect [185.4 270.808 190.8 282.121] -/Border [0 0 0] ->> -endobj -3176 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3177 0 obj -<< -/Subtype /Link -/A 3176 0 R -/Type /Annot -/Rect [190.8 270.808 196.2 282.121] -/Border [0 0 0] ->> -endobj -3178 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3179 0 obj -<< -/Subtype /Link -/A 3178 0 R -/Type /Annot -/Rect [196.2 270.808 212.4 282.121] -/Border [0 0 0] ->> -endobj -3180 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3181 0 obj -<< -/Subtype /Link -/A 3180 0 R -/Type /Annot -/Rect [212.4 270.808 217.8 282.121] -/Border [0 0 0] ->> -endobj -3182 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3183 0 obj -<< -/Subtype /Link -/A 3182 0 R -/Type /Annot -/Rect [72 259.495 88.2 270.808] -/Border [0 0 0] ->> -endobj -3184 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3185 0 obj -<< -/Subtype /Link -/A 3184 0 R -/Type /Annot -/Rect [88.2 259.495 93.6 270.808] -/Border [0 0 0] ->> -endobj -3186 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3187 0 obj -<< -/Subtype /Link -/A 3186 0 R -/Type /Annot -/Rect [93.6 259.495 115.2 270.808] -/Border [0 0 0] ->> -endobj -3188 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3189 0 obj -<< -/Subtype /Link -/A 3188 0 R -/Type /Annot -/Rect [115.2 259.495 120.6 270.808] -/Border [0 0 0] ->> -endobj -3190 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3191 0 obj -<< -/Subtype /Link -/A 3190 0 R -/Type /Annot -/Rect [120.6 259.495 153 270.808] -/Border [0 0 0] ->> -endobj -3192 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3193 0 obj -<< -/Subtype /Link -/A 3192 0 R -/Type /Annot -/Rect [153 259.495 158.4 270.808] -/Border [0 0 0] ->> -endobj -3194 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3195 0 obj -<< -/Subtype /Link -/A 3194 0 R -/Type /Annot -/Rect [158.4 259.495 163.8 270.808] -/Border [0 0 0] ->> -endobj -3196 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3197 0 obj -<< -/Subtype /Link -/A 3196 0 R -/Type /Annot -/Rect [72 236.995 290.012695 249.495] -/Border [0 0 0] ->> -endobj -2972 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 2970 0 R -/Resources 2971 0 R -/Annots [2975 0 R 2977 0 R 2979 0 R 2981 0 R 2983 0 R 2985 0 R 2987 0 R 2989 0 R 2991 0 R 2993 0 R 2995 0 R 2997 0 R 2999 0 R 3001 0 R 3003 0 R 3005 0 R 3007 0 R 3009 0 R 3011 0 R 3013 0 R 3015 0 R 3017 0 R 3019 0 R 3021 0 R 3023 0 R 3025 0 R 3027 0 R 3029 0 R 3031 0 R 3033 0 R 3035 0 R 3037 0 R 3039 0 R 3041 0 R 3043 0 R 3045 0 R 3047 0 R 3049 0 R 3051 0 R 3053 0 R 3055 0 R 3057 0 R 3059 0 R 3061 0 R 3063 0 R 3065 0 R 3067 0 R 3069 0 R 3071 0 R 3073 0 R 3075 0 R 3077 0 R 3079 0 R 3081 0 R 3083 0 R 3085 0 R 3087 0 R 3089 0 R 3091 0 R 3093 0 R 3095 0 R 3097 0 R 3099 0 R 3101 0 R 3103 0 R 3105 0 R 3107 0 R 3109 0 R 3111 0 R 3113 0 R 3115 0 R 3117 0 R 3119 0 R 3121 0 R 3123 0 R 3125 0 R 3127 0 R 3129 0 R 3131 0 R 3133 0 R 3135 0 R 3137 0 R 3139 0 R 3141 0 R 3143 0 R 3145 0 R 3147 0 R 3149 0 R 3151 0 R 3153 0 R 3155 0 R 3157 0 R 3159 0 R 3161 0 R 3163 0 R 3165 0 R 3167 0 R 3169 0 R 3171 0 R 3173 0 R 3175 0 R 3177 0 R 3179 0 R 3181 0 R 3183 0 R 3185 0 R 3187 0 R 3189 0 R 3191 0 R 3193 0 R 3195 0 R 3197 0 R] ->> -endobj -2971 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -2970 0 obj -<< -/Length 2596 -/Filter /FlateDecode ->> -stream -x\n#+Cy%.B$ H.&l%TR]uEOϗ|\_^X<ǿ^wd ?rvzƘ};ҿi2=}>k-,U:S:/w)iNnso^'/x{t9E"pt!e,ֿ Ϝ-| -\s}g]gt]&^itHϹ.c94iB+SE_-G^%)U>^uCF=]aN .  i0nVbsU=X4l`*V^+kc,q%L:uRQL>fƍ2;jVL0NVV/#ẇ,Qd]A͉#QK9i׬Ԍ|%U}\Ω OGS6CIۂְ|HԄ(j~R OjoW.BڠpXVOjnSE[n] h}\->*sE|c$w) LDN#ao4bgKc7oêiv%lkcYV)XwMB^,S E2hndCYosL JV=ؚ㚱T/{!ӭƚ9p l+dUjϠ%hs%C`Jt=ۜW{}qug8x!T~\,y4&N,QJݻ顽ap^bk<9~tG/SRKD9Z?Nd儎_j;ðX"9>:hju}NQ#ʇʹ/:+%-1]b大/J}LPl)w5s -`umBt1=3wll$ԓZn,U>9m[az/@[t5Ai0;˄ߐJlZs.r0ZYM/,vàǀsaZ -|hvGWG|CG&€G3LFw.8>L+<%hm"+q/!%rSc|#@UI>;3}Y4a J_͡zpc5Ճ<2i|@ip:DdIq]ڃ[m\⪧qXGաR萁~ܟ*c @݇_PoO|v -M'՞RR}p4խ՛cP{Pe u9tu8-Ec:[9ƤnyxP5zB}s1E,߮62f'va!]H`0oFyKY*ꅘ?-\vR:IYDM -^, B -endstream -endobj -3202 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3203 0 obj -<< -/Subtype /Link -/A 3202 0 R -/Type /Annot -/Rect [72 695.502 137.268 720] -/Border [0 0 0] ->> -endobj -3204 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3205 0 obj -<< -/Subtype /Link -/A 3204 0 R -/Type /Annot -/Rect [72 673.002 514.949219 685.502] -/Border [0 0 0] ->> -endobj -3206 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3207 0 obj -<< -/Subtype /Link -/A 3206 0 R -/Type /Annot -/Rect [72 660.502 494.114258 673.002] -/Border [0 0 0] ->> -endobj -3208 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3209 0 obj -<< -/Subtype /Link -/A 3208 0 R -/Type /Annot -/Rect [72 648.002 539.724609 660.502] -/Border [0 0 0] ->> -endobj -3210 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3211 0 obj -<< -/Subtype /Link -/A 3210 0 R -/Type /Annot -/Rect [72 635.502 526.785156 648.002] -/Border [0 0 0] ->> -endobj -3212 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3213 0 obj -<< -/Subtype /Link -/A 3212 0 R -/Type /Annot -/Rect [72 623.002 102.493164 635.502] -/Border [0 0 0] ->> -endobj -3214 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3215 0 obj -<< -/Subtype /Link -/A 3214 0 R -/Type /Annot -/Rect [72 601.689 207 613.002] -/Border [0 0 0] ->> -endobj -3216 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3217 0 obj -<< -/Subtype /Link -/A 3216 0 R -/Type /Annot -/Rect [72 590.376 88.2 601.689] -/Border [0 0 0] ->> -endobj -3218 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3219 0 obj -<< -/Subtype /Link -/A 3218 0 R -/Type /Annot -/Rect [88.2 590.376 93.6 601.689] -/Border [0 0 0] ->> -endobj -3220 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3221 0 obj -<< -/Subtype /Link -/A 3220 0 R -/Type /Annot -/Rect [93.6 590.376 126 601.689] -/Border [0 0 0] ->> -endobj -3222 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3223 0 obj -<< -/Subtype /Link -/A 3222 0 R -/Type /Annot -/Rect [126 590.376 131.4 601.689] -/Border [0 0 0] ->> -endobj -3224 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3225 0 obj -<< -/Subtype /Link -/A 3224 0 R -/Type /Annot -/Rect [131.4 590.376 147.6 601.689] -/Border [0 0 0] ->> -endobj -3226 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3227 0 obj -<< -/Subtype /Link -/A 3226 0 R -/Type /Annot -/Rect [147.6 590.376 153 601.689] -/Border [0 0 0] ->> -endobj -3228 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3229 0 obj -<< -/Subtype /Link -/A 3228 0 R -/Type /Annot -/Rect [153 590.376 158.4 601.689] -/Border [0 0 0] ->> -endobj -3230 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3231 0 obj -<< -/Subtype /Link -/A 3230 0 R -/Type /Annot -/Rect [158.4 590.376 174.6 601.689] -/Border [0 0 0] ->> -endobj -3232 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3233 0 obj -<< -/Subtype /Link -/A 3232 0 R -/Type /Annot -/Rect [174.6 590.376 180 601.689] -/Border [0 0 0] ->> -endobj -3234 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3235 0 obj -<< -/Subtype /Link -/A 3234 0 R -/Type /Annot -/Rect [180 590.376 185.4 601.689] -/Border [0 0 0] ->> -endobj -3236 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3237 0 obj -<< -/Subtype /Link -/A 3236 0 R -/Type /Annot -/Rect [185.4 590.376 201.6 601.689] -/Border [0 0 0] ->> -endobj -3238 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3239 0 obj -<< -/Subtype /Link -/A 3238 0 R -/Type /Annot -/Rect [201.6 590.376 207 601.689] -/Border [0 0 0] ->> -endobj -3240 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3241 0 obj -<< -/Subtype /Link -/A 3240 0 R -/Type /Annot -/Rect [72 579.063 88.2 590.376] -/Border [0 0 0] ->> -endobj -3242 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3243 0 obj -<< -/Subtype /Link -/A 3242 0 R -/Type /Annot -/Rect [88.2 579.063 93.6 590.376] -/Border [0 0 0] ->> -endobj -3244 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3245 0 obj -<< -/Subtype /Link -/A 3244 0 R -/Type /Annot -/Rect [93.6 579.063 115.2 590.376] -/Border [0 0 0] ->> -endobj -3246 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3247 0 obj -<< -/Subtype /Link -/A 3246 0 R -/Type /Annot -/Rect [115.2 579.063 120.6 590.376] -/Border [0 0 0] ->> -endobj -3248 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3249 0 obj -<< -/Subtype /Link -/A 3248 0 R -/Type /Annot -/Rect [120.6 579.063 126 590.376] -/Border [0 0 0] ->> -endobj -3250 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3251 0 obj -<< -/Subtype /Link -/A 3250 0 R -/Type /Annot -/Rect [126 579.063 131.4 590.376] -/Border [0 0 0] ->> -endobj -3252 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3253 0 obj -<< -/Subtype /Link -/A 3252 0 R -/Type /Annot -/Rect [72 556.437 234 567.75] -/Border [0 0 0] ->> -endobj -3254 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3255 0 obj -<< -/Subtype /Link -/A 3254 0 R -/Type /Annot -/Rect [72 545.124 88.2 556.437] -/Border [0 0 0] ->> -endobj -3256 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3257 0 obj -<< -/Subtype /Link -/A 3256 0 R -/Type /Annot -/Rect [88.2 545.124 93.6 556.437] -/Border [0 0 0] ->> -endobj -3258 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3259 0 obj -<< -/Subtype /Link -/A 3258 0 R -/Type /Annot -/Rect [93.6 545.124 99 556.437] -/Border [0 0 0] ->> -endobj -3260 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3261 0 obj -<< -/Subtype /Link -/A 3260 0 R -/Type /Annot -/Rect [99 545.124 115.2 556.437] -/Border [0 0 0] ->> -endobj -3262 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3263 0 obj -<< -/Subtype /Link -/A 3262 0 R -/Type /Annot -/Rect [115.2 545.124 120.6 556.437] -/Border [0 0 0] ->> -endobj -3264 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3265 0 obj -<< -/Subtype /Link -/A 3264 0 R -/Type /Annot -/Rect [120.6 545.124 136.8 556.437] -/Border [0 0 0] ->> -endobj -3266 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3267 0 obj -<< -/Subtype /Link -/A 3266 0 R -/Type /Annot -/Rect [136.8 545.124 142.2 556.437] -/Border [0 0 0] ->> -endobj -3268 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3269 0 obj -<< -/Subtype /Link -/A 3268 0 R -/Type /Annot -/Rect [142.2 545.124 147.6 556.437] -/Border [0 0 0] ->> -endobj -3270 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3271 0 obj -<< -/Subtype /Link -/A 3270 0 R -/Type /Annot -/Rect [147.6 545.124 153 556.437] -/Border [0 0 0] ->> -endobj -3272 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3273 0 obj -<< -/Subtype /Link -/A 3272 0 R -/Type /Annot -/Rect [153 545.124 158.4 556.437] -/Border [0 0 0] ->> -endobj -3274 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3275 0 obj -<< -/Subtype /Link -/A 3274 0 R -/Type /Annot -/Rect [158.4 545.124 163.8 556.437] -/Border [0 0 0] ->> -endobj -3276 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3277 0 obj -<< -/Subtype /Link -/A 3276 0 R -/Type /Annot -/Rect [163.8 545.124 169.2 556.437] -/Border [0 0 0] ->> -endobj -3278 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3279 0 obj -<< -/Subtype /Link -/A 3278 0 R -/Type /Annot -/Rect [169.2 545.124 185.4 556.437] -/Border [0 0 0] ->> -endobj -3280 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3281 0 obj -<< -/Subtype /Link -/A 3280 0 R -/Type /Annot -/Rect [185.4 545.124 190.8 556.437] -/Border [0 0 0] ->> -endobj -3282 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3283 0 obj -<< -/Subtype /Link -/A 3282 0 R -/Type /Annot -/Rect [190.8 545.124 196.2 556.437] -/Border [0 0 0] ->> -endobj -3284 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3285 0 obj -<< -/Subtype /Link -/A 3284 0 R -/Type /Annot -/Rect [196.2 545.124 201.6 556.437] -/Border [0 0 0] ->> -endobj -3286 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3287 0 obj -<< -/Subtype /Link -/A 3286 0 R -/Type /Annot -/Rect [201.6 545.124 212.4 556.437] -/Border [0 0 0] ->> -endobj -3288 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3289 0 obj -<< -/Subtype /Link -/A 3288 0 R -/Type /Annot -/Rect [212.4 545.124 217.8 556.437] -/Border [0 0 0] ->> -endobj -3290 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3291 0 obj -<< -/Subtype /Link -/A 3290 0 R -/Type /Annot -/Rect [217.8 545.124 223.2 556.437] -/Border [0 0 0] ->> -endobj -3292 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3293 0 obj -<< -/Subtype /Link -/A 3292 0 R -/Type /Annot -/Rect [223.2 545.124 239.4 556.437] -/Border [0 0 0] ->> -endobj -3294 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3295 0 obj -<< -/Subtype /Link -/A 3294 0 R -/Type /Annot -/Rect [239.4 545.124 250.2 556.437] -/Border [0 0 0] ->> -endobj -3296 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3297 0 obj -<< -/Subtype /Link -/A 3296 0 R -/Type /Annot -/Rect [250.2 545.124 255.6 556.437] -/Border [0 0 0] ->> -endobj -3298 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3299 0 obj -<< -/Subtype /Link -/A 3298 0 R -/Type /Annot -/Rect [255.6 545.124 261 556.437] -/Border [0 0 0] ->> -endobj -3300 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3301 0 obj -<< -/Subtype /Link -/A 3300 0 R -/Type /Annot -/Rect [261 545.124 266.4 556.437] -/Border [0 0 0] ->> -endobj -3302 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3303 0 obj -<< -/Subtype /Link -/A 3302 0 R -/Type /Annot -/Rect [72 533.811 82.8 545.124] -/Border [0 0 0] ->> -endobj -3304 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3305 0 obj -<< -/Subtype /Link -/A 3304 0 R -/Type /Annot -/Rect [82.8 533.811 99 545.124] -/Border [0 0 0] ->> -endobj -3306 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3307 0 obj -<< -/Subtype /Link -/A 3306 0 R -/Type /Annot -/Rect [99 533.811 104.4 545.124] -/Border [0 0 0] ->> -endobj -3308 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3309 0 obj -<< -/Subtype /Link -/A 3308 0 R -/Type /Annot -/Rect [104.4 533.811 109.8 545.124] -/Border [0 0 0] ->> -endobj -3310 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3311 0 obj -<< -/Subtype /Link -/A 3310 0 R -/Type /Annot -/Rect [109.8 533.811 126 545.124] -/Border [0 0 0] ->> -endobj -3312 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3313 0 obj -<< -/Subtype /Link -/A 3312 0 R -/Type /Annot -/Rect [126 533.811 131.4 545.124] -/Border [0 0 0] ->> -endobj -3314 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3315 0 obj -<< -/Subtype /Link -/A 3314 0 R -/Type /Annot -/Rect [131.4 533.811 147.6 545.124] -/Border [0 0 0] ->> -endobj -3316 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3317 0 obj -<< -/Subtype /Link -/A 3316 0 R -/Type /Annot -/Rect [147.6 533.811 153 545.124] -/Border [0 0 0] ->> -endobj -3318 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3319 0 obj -<< -/Subtype /Link -/A 3318 0 R -/Type /Annot -/Rect [153 533.811 158.4 545.124] -/Border [0 0 0] ->> -endobj -3320 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3321 0 obj -<< -/Subtype /Link -/A 3320 0 R -/Type /Annot -/Rect [158.4 533.811 163.8 545.124] -/Border [0 0 0] ->> -endobj -3322 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3323 0 obj -<< -/Subtype /Link -/A 3322 0 R -/Type /Annot -/Rect [163.8 533.811 169.2 545.124] -/Border [0 0 0] ->> -endobj -3324 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3325 0 obj -<< -/Subtype /Link -/A 3324 0 R -/Type /Annot -/Rect [169.2 533.811 174.6 545.124] -/Border [0 0 0] ->> -endobj -3326 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3327 0 obj -<< -/Subtype /Link -/A 3326 0 R -/Type /Annot -/Rect [174.6 533.811 180 545.124] -/Border [0 0 0] ->> -endobj -3328 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3329 0 obj -<< -/Subtype /Link -/A 3328 0 R -/Type /Annot -/Rect [180 533.811 196.2 545.124] -/Border [0 0 0] ->> -endobj -3330 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3331 0 obj -<< -/Subtype /Link -/A 3330 0 R -/Type /Annot -/Rect [196.2 533.811 201.6 545.124] -/Border [0 0 0] ->> -endobj -3332 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3333 0 obj -<< -/Subtype /Link -/A 3332 0 R -/Type /Annot -/Rect [201.6 533.811 207 545.124] -/Border [0 0 0] ->> -endobj -3334 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3335 0 obj -<< -/Subtype /Link -/A 3334 0 R -/Type /Annot -/Rect [207 533.811 212.4 545.124] -/Border [0 0 0] ->> -endobj -3336 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3337 0 obj -<< -/Subtype /Link -/A 3336 0 R -/Type /Annot -/Rect [212.4 533.811 223.2 545.124] -/Border [0 0 0] ->> -endobj -3338 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3339 0 obj -<< -/Subtype /Link -/A 3338 0 R -/Type /Annot -/Rect [223.2 533.811 228.6 545.124] -/Border [0 0 0] ->> -endobj -3340 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3341 0 obj -<< -/Subtype /Link -/A 3340 0 R -/Type /Annot -/Rect [228.6 533.811 234 545.124] -/Border [0 0 0] ->> -endobj -3342 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3343 0 obj -<< -/Subtype /Link -/A 3342 0 R -/Type /Annot -/Rect [234 533.811 250.2 545.124] -/Border [0 0 0] ->> -endobj -3344 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3345 0 obj -<< -/Subtype /Link -/A 3344 0 R -/Type /Annot -/Rect [250.2 533.811 261 545.124] -/Border [0 0 0] ->> -endobj -3346 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3347 0 obj -<< -/Subtype /Link -/A 3346 0 R -/Type /Annot -/Rect [261 533.811 266.4 545.124] -/Border [0 0 0] ->> -endobj -3348 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3349 0 obj -<< -/Subtype /Link -/A 3348 0 R -/Type /Annot -/Rect [266.4 533.811 271.8 545.124] -/Border [0 0 0] ->> -endobj -3350 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3351 0 obj -<< -/Subtype /Link -/A 3350 0 R -/Type /Annot -/Rect [271.8 533.811 277.2 545.124] -/Border [0 0 0] ->> -endobj -3352 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3353 0 obj -<< -/Subtype /Link -/A 3352 0 R -/Type /Annot -/Rect [72 522.498 93.6 533.811] -/Border [0 0 0] ->> -endobj -3354 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3355 0 obj -<< -/Subtype /Link -/A 3354 0 R -/Type /Annot -/Rect [93.6 522.498 120.6 533.811] -/Border [0 0 0] ->> -endobj -3356 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3357 0 obj -<< -/Subtype /Link -/A 3356 0 R -/Type /Annot -/Rect [120.6 522.498 126 533.811] -/Border [0 0 0] ->> -endobj -3358 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3359 0 obj -<< -/Subtype /Link -/A 3358 0 R -/Type /Annot -/Rect [126 522.498 153 533.811] -/Border [0 0 0] ->> -endobj -3360 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3361 0 obj -<< -/Subtype /Link -/A 3360 0 R -/Type /Annot -/Rect [153 522.498 158.4 533.811] -/Border [0 0 0] ->> -endobj -3362 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3363 0 obj -<< -/Subtype /Link -/A 3362 0 R -/Type /Annot -/Rect [158.4 522.498 163.8 533.811] -/Border [0 0 0] ->> -endobj -3364 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3365 0 obj -<< -/Subtype /Link -/A 3364 0 R -/Type /Annot -/Rect [163.8 522.498 169.2 533.811] -/Border [0 0 0] ->> -endobj -3366 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3367 0 obj -<< -/Subtype /Link -/A 3366 0 R -/Type /Annot -/Rect [169.2 522.498 174.6 533.811] -/Border [0 0 0] ->> -endobj -3368 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3369 0 obj -<< -/Subtype /Link -/A 3368 0 R -/Type /Annot -/Rect [174.6 522.498 190.8 533.811] -/Border [0 0 0] ->> -endobj -3370 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3371 0 obj -<< -/Subtype /Link -/A 3370 0 R -/Type /Annot -/Rect [190.8 522.498 196.2 533.811] -/Border [0 0 0] ->> -endobj -3372 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3373 0 obj -<< -/Subtype /Link -/A 3372 0 R -/Type /Annot -/Rect [196.2 522.498 201.6 533.811] -/Border [0 0 0] ->> -endobj -3374 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3375 0 obj -<< -/Subtype /Link -/A 3374 0 R -/Type /Annot -/Rect [201.6 522.498 207 533.811] -/Border [0 0 0] ->> -endobj -3376 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3377 0 obj -<< -/Subtype /Link -/A 3376 0 R -/Type /Annot -/Rect [207 522.498 212.4 533.811] -/Border [0 0 0] ->> -endobj -3378 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3379 0 obj -<< -/Subtype /Link -/A 3378 0 R -/Type /Annot -/Rect [212.4 522.498 217.8 533.811] -/Border [0 0 0] ->> -endobj -3380 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3381 0 obj -<< -/Subtype /Link -/A 3380 0 R -/Type /Annot -/Rect [217.8 522.498 223.2 533.811] -/Border [0 0 0] ->> -endobj -3382 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3383 0 obj -<< -/Subtype /Link -/A 3382 0 R -/Type /Annot -/Rect [223.2 522.498 228.6 533.811] -/Border [0 0 0] ->> -endobj -3384 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3385 0 obj -<< -/Subtype /Link -/A 3384 0 R -/Type /Annot -/Rect [228.6 522.498 234 533.811] -/Border [0 0 0] ->> -endobj -3386 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3387 0 obj -<< -/Subtype /Link -/A 3386 0 R -/Type /Annot -/Rect [234 522.498 239.4 533.811] -/Border [0 0 0] ->> -endobj -3388 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3389 0 obj -<< -/Subtype /Link -/A 3388 0 R -/Type /Annot -/Rect [239.4 522.498 255.6 533.811] -/Border [0 0 0] ->> -endobj -3390 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3391 0 obj -<< -/Subtype /Link -/A 3390 0 R -/Type /Annot -/Rect [255.6 522.498 261 533.811] -/Border [0 0 0] ->> -endobj -3392 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3393 0 obj -<< -/Subtype /Link -/A 3392 0 R -/Type /Annot -/Rect [261 522.498 266.4 533.811] -/Border [0 0 0] ->> -endobj -3394 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3395 0 obj -<< -/Subtype /Link -/A 3394 0 R -/Type /Annot -/Rect [266.4 522.498 271.8 533.811] -/Border [0 0 0] ->> -endobj -3396 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3397 0 obj -<< -/Subtype /Link -/A 3396 0 R -/Type /Annot -/Rect [271.8 522.498 277.2 533.811] -/Border [0 0 0] ->> -endobj -3398 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3399 0 obj -<< -/Subtype /Link -/A 3398 0 R -/Type /Annot -/Rect [277.2 522.498 282.6 533.811] -/Border [0 0 0] ->> -endobj -3400 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3401 0 obj -<< -/Subtype /Link -/A 3400 0 R -/Type /Annot -/Rect [282.6 522.498 288 533.811] -/Border [0 0 0] ->> -endobj -3402 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3403 0 obj -<< -/Subtype /Link -/A 3402 0 R -/Type /Annot -/Rect [288 522.498 293.4 533.811] -/Border [0 0 0] ->> -endobj -3404 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3405 0 obj -<< -/Subtype /Link -/A 3404 0 R -/Type /Annot -/Rect [293.4 522.498 298.8 533.811] -/Border [0 0 0] ->> -endobj -3406 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3407 0 obj -<< -/Subtype /Link -/A 3406 0 R -/Type /Annot -/Rect [298.8 522.498 331.2 533.811] -/Border [0 0 0] ->> -endobj -3408 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3409 0 obj -<< -/Subtype /Link -/A 3408 0 R -/Type /Annot -/Rect [331.2 522.498 336.6 533.811] -/Border [0 0 0] ->> -endobj -3410 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3411 0 obj -<< -/Subtype /Link -/A 3410 0 R -/Type /Annot -/Rect [336.6 522.498 342 533.811] -/Border [0 0 0] ->> -endobj -3412 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3413 0 obj -<< -/Subtype /Link -/A 3412 0 R -/Type /Annot -/Rect [342 522.498 347.4 533.811] -/Border [0 0 0] ->> -endobj -3414 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3415 0 obj -<< -/Subtype /Link -/A 3414 0 R -/Type /Annot -/Rect [347.4 522.498 396 533.811] -/Border [0 0 0] ->> -endobj -3416 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3417 0 obj -<< -/Subtype /Link -/A 3416 0 R -/Type /Annot -/Rect [396 522.498 401.4 533.811] -/Border [0 0 0] ->> -endobj -3418 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3419 0 obj -<< -/Subtype /Link -/A 3418 0 R -/Type /Annot -/Rect [72 511.185 93.6 522.498] -/Border [0 0 0] ->> -endobj -3420 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3421 0 obj -<< -/Subtype /Link -/A 3420 0 R -/Type /Annot -/Rect [93.6 511.185 109.8 522.498] -/Border [0 0 0] ->> -endobj -3422 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3423 0 obj -<< -/Subtype /Link -/A 3422 0 R -/Type /Annot -/Rect [109.8 511.185 115.2 522.498] -/Border [0 0 0] ->> -endobj -3424 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3425 0 obj -<< -/Subtype /Link -/A 3424 0 R -/Type /Annot -/Rect [115.2 511.185 136.8 522.498] -/Border [0 0 0] ->> -endobj -3426 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3427 0 obj -<< -/Subtype /Link -/A 3426 0 R -/Type /Annot -/Rect [136.8 511.185 142.2 522.498] -/Border [0 0 0] ->> -endobj -3428 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3429 0 obj -<< -/Subtype /Link -/A 3428 0 R -/Type /Annot -/Rect [142.2 511.185 158.4 522.498] -/Border [0 0 0] ->> -endobj -3430 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3431 0 obj -<< -/Subtype /Link -/A 3430 0 R -/Type /Annot -/Rect [158.4 511.185 163.8 522.498] -/Border [0 0 0] ->> -endobj -3432 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3433 0 obj -<< -/Subtype /Link -/A 3432 0 R -/Type /Annot -/Rect [163.8 511.185 169.2 522.498] -/Border [0 0 0] ->> -endobj -3434 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3435 0 obj -<< -/Subtype /Link -/A 3434 0 R -/Type /Annot -/Rect [169.2 511.185 174.6 522.498] -/Border [0 0 0] ->> -endobj -3436 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3437 0 obj -<< -/Subtype /Link -/A 3436 0 R -/Type /Annot -/Rect [174.6 511.185 185.4 522.498] -/Border [0 0 0] ->> -endobj -3438 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3439 0 obj -<< -/Subtype /Link -/A 3438 0 R -/Type /Annot -/Rect [185.4 511.185 190.8 522.498] -/Border [0 0 0] ->> -endobj -3440 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3441 0 obj -<< -/Subtype /Link -/A 3440 0 R -/Type /Annot -/Rect [190.8 511.185 196.2 522.498] -/Border [0 0 0] ->> -endobj -3442 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3443 0 obj -<< -/Subtype /Link -/A 3442 0 R -/Type /Annot -/Rect [196.2 511.185 212.4 522.498] -/Border [0 0 0] ->> -endobj -3444 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3445 0 obj -<< -/Subtype /Link -/A 3444 0 R -/Type /Annot -/Rect [212.4 511.185 217.8 522.498] -/Border [0 0 0] ->> -endobj -3446 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3447 0 obj -<< -/Subtype /Link -/A 3446 0 R -/Type /Annot -/Rect [217.8 511.185 223.2 522.498] -/Border [0 0 0] ->> -endobj -3448 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3449 0 obj -<< -/Subtype /Link -/A 3448 0 R -/Type /Annot -/Rect [223.2 511.185 228.6 522.498] -/Border [0 0 0] ->> -endobj -3450 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3451 0 obj -<< -/Subtype /Link -/A 3450 0 R -/Type /Annot -/Rect [228.6 511.185 239.4 522.498] -/Border [0 0 0] ->> -endobj -3452 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3453 0 obj -<< -/Subtype /Link -/A 3452 0 R -/Type /Annot -/Rect [239.4 511.185 244.8 522.498] -/Border [0 0 0] ->> -endobj -3454 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3455 0 obj -<< -/Subtype /Link -/A 3454 0 R -/Type /Annot -/Rect [244.8 511.185 250.2 522.498] -/Border [0 0 0] ->> -endobj -3456 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3457 0 obj -<< -/Subtype /Link -/A 3456 0 R -/Type /Annot -/Rect [250.2 511.185 261 522.498] -/Border [0 0 0] ->> -endobj -3458 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3459 0 obj -<< -/Subtype /Link -/A 3458 0 R -/Type /Annot -/Rect [261 511.185 266.4 522.498] -/Border [0 0 0] ->> -endobj -3460 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3461 0 obj -<< -/Subtype /Link -/A 3460 0 R -/Type /Annot -/Rect [266.4 511.185 271.8 522.498] -/Border [0 0 0] ->> -endobj -3462 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3463 0 obj -<< -/Subtype /Link -/A 3462 0 R -/Type /Annot -/Rect [271.8 511.185 282.6 522.498] -/Border [0 0 0] ->> -endobj -3464 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3465 0 obj -<< -/Subtype /Link -/A 3464 0 R -/Type /Annot -/Rect [282.6 511.185 288 522.498] -/Border [0 0 0] ->> -endobj -3466 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3467 0 obj -<< -/Subtype /Link -/A 3466 0 R -/Type /Annot -/Rect [72 499.872 109.8 511.185] -/Border [0 0 0] ->> -endobj -3468 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3469 0 obj -<< -/Subtype /Link -/A 3468 0 R -/Type /Annot -/Rect [109.8 499.872 115.2 511.185] -/Border [0 0 0] ->> -endobj -3470 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3471 0 obj -<< -/Subtype /Link -/A 3470 0 R -/Type /Annot -/Rect [115.2 499.872 136.8 511.185] -/Border [0 0 0] ->> -endobj -3472 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3473 0 obj -<< -/Subtype /Link -/A 3472 0 R -/Type /Annot -/Rect [136.8 499.872 142.2 511.185] -/Border [0 0 0] ->> -endobj -3474 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3475 0 obj -<< -/Subtype /Link -/A 3474 0 R -/Type /Annot -/Rect [142.2 499.872 169.2 511.185] -/Border [0 0 0] ->> -endobj -3476 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3477 0 obj -<< -/Subtype /Link -/A 3476 0 R -/Type /Annot -/Rect [169.2 499.872 174.6 511.185] -/Border [0 0 0] ->> -endobj -3478 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3479 0 obj -<< -/Subtype /Link -/A 3478 0 R -/Type /Annot -/Rect [174.6 499.872 180 511.185] -/Border [0 0 0] ->> -endobj -3480 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3481 0 obj -<< -/Subtype /Link -/A 3480 0 R -/Type /Annot -/Rect [72 488.559 82.8 499.872] -/Border [0 0 0] ->> -endobj -3482 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3483 0 obj -<< -/Subtype /Link -/A 3482 0 R -/Type /Annot -/Rect [82.8 488.559 88.2 499.872] -/Border [0 0 0] ->> -endobj -3484 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3485 0 obj -<< -/Subtype /Link -/A 3484 0 R -/Type /Annot -/Rect [72 477.246 77.4 488.559] -/Border [0 0 0] ->> -endobj -3486 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3487 0 obj -<< -/Subtype /Link -/A 3486 0 R -/Type /Annot -/Rect [72 454.746 285.500977 467.246] -/Border [0 0 0] ->> -endobj -3488 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3489 0 obj -<< -/Subtype /Link -/A 3488 0 R -/Type /Annot -/Rect [72 201.842 272.029297 214.342] -/Border [0 0 0] ->> -endobj -3490 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3491 0 obj -<< -/Subtype /Link -/A 3490 0 R -/Type /Annot -/Rect [272.029297 201.772 296.029297 214.342] -/Border [0 0 0] ->> -endobj -3492 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3493 0 obj -<< -/Subtype /Link -/A 3492 0 R -/Type /Annot -/Rect [296.029297 201.842 507.279297 214.342] -/Border [0 0 0] ->> -endobj -3494 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3495 0 obj -<< -/Subtype /Link -/A 3494 0 R -/Type /Annot -/Rect [72 189.202 114 201.772] -/Border [0 0 0] ->> -endobj -3496 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3497 0 obj -<< -/Subtype /Link -/A 3496 0 R -/Type /Annot -/Rect [114 189.272 296.817383 201.772] -/Border [0 0 0] ->> -endobj -3498 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3499 0 obj -<< -/Subtype /Link -/A 3498 0 R -/Type /Annot -/Rect [72 166.772 518.235352 179.272] -/Border [0 0 0] ->> -endobj -3500 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3501 0 obj -<< -/Subtype /Link -/A 3500 0 R -/Type /Annot -/Rect [72 154.272 114.529297 166.772] -/Border [0 0 0] ->> -endobj -3200 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 3198 0 R -/Resources 3199 0 R -/Annots [3203 0 R 3205 0 R 3207 0 R 3209 0 R 3211 0 R 3213 0 R 3215 0 R 3217 0 R 3219 0 R 3221 0 R 3223 0 R 3225 0 R 3227 0 R 3229 0 R 3231 0 R 3233 0 R 3235 0 R 3237 0 R 3239 0 R 3241 0 R 3243 0 R 3245 0 R 3247 0 R 3249 0 R 3251 0 R 3253 0 R 3255 0 R 3257 0 R 3259 0 R 3261 0 R 3263 0 R 3265 0 R 3267 0 R 3269 0 R 3271 0 R 3273 0 R 3275 0 R 3277 0 R 3279 0 R 3281 0 R 3283 0 R 3285 0 R 3287 0 R 3289 0 R 3291 0 R 3293 0 R 3295 0 R 3297 0 R 3299 0 R 3301 0 R 3303 0 R 3305 0 R 3307 0 R 3309 0 R 3311 0 R 3313 0 R 3315 0 R 3317 0 R 3319 0 R 3321 0 R 3323 0 R 3325 0 R 3327 0 R 3329 0 R 3331 0 R 3333 0 R 3335 0 R 3337 0 R 3339 0 R 3341 0 R 3343 0 R 3345 0 R 3347 0 R 3349 0 R 3351 0 R 3353 0 R 3355 0 R 3357 0 R 3359 0 R 3361 0 R 3363 0 R 3365 0 R 3367 0 R 3369 0 R 3371 0 R 3373 0 R 3375 0 R 3377 0 R 3379 0 R 3381 0 R 3383 0 R 3385 0 R 3387 0 R 3389 0 R 3391 0 R 3393 0 R 3395 0 R 3397 0 R 3399 0 R 3401 0 R 3403 0 R 3405 0 R 3407 0 R 3409 0 R 3411 0 R 3413 0 R 3415 0 R 3417 0 R 3419 0 R 3421 0 R 3423 0 R 3425 0 R 3427 0 R 3429 0 R 3431 0 R 3433 0 R 3435 0 R 3437 0 R 3439 0 R 3441 0 R 3443 0 R 3445 0 R 3447 0 R 3449 0 R 3451 0 R 3453 0 R 3455 0 R 3457 0 R 3459 0 R 3461 0 R 3463 0 R 3465 0 R 3467 0 R 3469 0 R 3471 0 R 3473 0 R 3475 0 R 3477 0 R 3479 0 R 3481 0 R 3483 0 R 3485 0 R 3487 0 R 3489 0 R 3491 0 R 3493 0 R 3495 0 R 3497 0 R 3499 0 R 3501 0 R] ->> -endobj -3199 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F5 29 0 R -/F6 44 0 R ->> ->> -endobj -3198 0 obj -<< -/Length 2564 -/Filter /FlateDecode ->> -stream -x]4S q@,7/q@$@q;v d&8Z\2}_Roq7 rugey q'I'%&ݛ{aս=.~`!s?9_wwo*ZRH:0iE*&pGkE5W{0zPI:HmNC;B̗E=OP -9pge oIe|quؾ7pJ^,rV\}Qޫ) P6szP>RiLvs GU۟P^}JG "' \)_ :D -[L,q+cASJWupSzC%e I~ EA*R|l8J`DO(U˺6PzeΜ~ =}rv:ʄ21p<\"R=HL_7u6!Aף69@ 1I{{$cp#4@ɚ?[M,b=f~y8j le#칡!ekHPyc3BT,5L"h:9=Dž^ʔ ECpۭc+`p(5xv Tδp4r',؂J@Ha 1"&ydXz{m^Snff4/l7su.Kv+Ԃĸߏ}6GនţYFsɐh4-ilfivw(Ò(misjnl2UֵqIvcEidn>gˉbO2s r+ʹH\?S̈A/뇹 *Aۍx~}W~csA?щ^@1#~8d?{z'4JCH9gpj%lޫ:^[5*-j,fm c,&Y)uz*%TE=aD8xYLPQހ"vtAkY$Kf -1;dpaKj8K [ǴyWxLNP%yW%NCͻ&9ei]:zGp] LNz9H6*zmnJ:z&uڬ(D}8mJΛ_aA P ׁ:^ ?o?~ޞG9)~*ō痟gp{mf3Eå0xd5ݽA qzr/=ee=GPC9~ 4h7*r)TyG3ƷzU -{%F,$6ժ Fvƣ(S N(Q0eRT(%D{e>a_*3$7D0+ rdHGr!V3x{a%Roޚ~pVbVV 28~oWo lJ >Pi~?nKw:}%ڃp_au6V6:Ά :K{Yg?~))AsParwDzJs ;ȑ#.y#G=[3ϼs8> ӸGxаG䠐hs6+~q3S$3mhgO֭}.-;stekB qj:.1Wf(%'g.XOlŝ XrgGĪ~?h/g<6kvK$qx\bURpjzظZ%N.wUIQ%kc%)+e-n0VZ.e-bV#cɊjV#gdeݬ 4 b2@ m&4 j2H U4vSMh7vS@Mi7TpvSu& -n*@ -n*H >W7?m`VO8jp]`Clu +jp ] U#x-8Tn] c{X"FЕ Q5r@[&7ÍPQup,] U#cJ9-] cyBFrШn81t%pTЖÍkz`co0XR iW'$e I}'HvV/CϔЋoG$DKG n& )}]Z"muir{44Mp6-oZ"Ovڣ56D66~hcf&=&p!;3oq̫c]PהAm1}S.tzr =;5P!38ER{j<$M|ġ$#c\y9;]ș6fc\f4f@m?:~" -endstream -endobj -3506 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3507 0 obj -<< -/Subtype /Link -/A 3506 0 R -/Type /Annot -/Rect [72 685.975 225.95 720] -/Border [0 0 0] ->> -endobj -3509 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3510 0 obj -<< -/Subtype /Link -/A 3509 0 R -/Type /Annot -/Rect [72 646.477 149.22 670.975] -/Border [0 0 0] ->> -endobj -3511 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3512 0 obj -<< -/Subtype /Link -/A 3511 0 R -/Type /Annot -/Rect [72 623.977 491.516602 636.477] -/Border [0 0 0] ->> -endobj -3513 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3514 0 obj -<< -/Subtype /Link -/A 3513 0 R -/Type /Annot -/Rect [72 611.477 518.206055 623.977] -/Border [0 0 0] ->> -endobj -3515 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3516 0 obj -<< -/Subtype /Link -/A 3515 0 R -/Type /Annot -/Rect [72 598.837 96 611.407] -/Border [0 0 0] ->> -endobj -3517 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3518 0 obj -<< -/Subtype /Link -/A 3517 0 R -/Type /Annot -/Rect [96 598.907 140.970703 611.407] -/Border [0 0 0] ->> -endobj -3519 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3520 0 obj -<< -/Subtype /Link -/A 3519 0 R -/Type /Annot -/Rect [72 577.594 88.2 588.907] -/Border [0 0 0] ->> -endobj -3521 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3522 0 obj -<< -/Subtype /Link -/A 3521 0 R -/Type /Annot -/Rect [88.2 577.594 93.6 588.907] -/Border [0 0 0] ->> -endobj -3523 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3524 0 obj -<< -/Subtype /Link -/A 3523 0 R -/Type /Annot -/Rect [93.6 577.594 115.2 588.907] -/Border [0 0 0] ->> -endobj -3525 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3526 0 obj -<< -/Subtype /Link -/A 3525 0 R -/Type /Annot -/Rect [115.2 577.594 120.6 588.907] -/Border [0 0 0] ->> -endobj -3527 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3528 0 obj -<< -/Subtype /Link -/A 3527 0 R -/Type /Annot -/Rect [120.6 577.594 196.2 588.907] -/Border [0 0 0] ->> -endobj -3529 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3530 0 obj -<< -/Subtype /Link -/A 3529 0 R -/Type /Annot -/Rect [196.2 577.594 201.6 588.907] -/Border [0 0 0] ->> -endobj -3531 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3532 0 obj -<< -/Subtype /Link -/A 3531 0 R -/Type /Annot -/Rect [72 555.094 513.123047 567.594] -/Border [0 0 0] ->> -endobj -3533 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3534 0 obj -<< -/Subtype /Link -/A 3533 0 R -/Type /Annot -/Rect [72 542.594 294.783203 555.094] -/Border [0 0 0] ->> -endobj -3535 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3536 0 obj -<< -/Subtype /Link -/A 3535 0 R -/Type /Annot -/Rect [294.783203 542.524 318.783203 555.094] -/Border [0 0 0] ->> -endobj -3537 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3538 0 obj -<< -/Subtype /Link -/A 3537 0 R -/Type /Annot -/Rect [318.783203 542.594 528.114258 555.094] -/Border [0 0 0] ->> -endobj -3539 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3540 0 obj -<< -/Subtype /Link -/A 3539 0 R -/Type /Annot -/Rect [72 530.094 533.147461 542.594] -/Border [0 0 0] ->> -endobj -3541 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3542 0 obj -<< -/Subtype /Link -/A 3541 0 R -/Type /Annot -/Rect [72 517.594 174.177734 530.094] -/Border [0 0 0] ->> -endobj -3543 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3544 0 obj -<< -/Subtype /Link -/A 3543 0 R -/Type /Annot -/Rect [174.177734 517.524 198.177734 530.094] -/Border [0 0 0] ->> -endobj -3545 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3546 0 obj -<< -/Subtype /Link -/A 3545 0 R -/Type /Annot -/Rect [198.177734 517.594 339.461914 530.094] -/Border [0 0 0] ->> -endobj -3547 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3548 0 obj -<< -/Subtype /Link -/A 3547 0 R -/Type /Annot -/Rect [72 496.281 88.2 507.594] -/Border [0 0 0] ->> -endobj -3549 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3550 0 obj -<< -/Subtype /Link -/A 3549 0 R -/Type /Annot -/Rect [88.2 496.281 93.6 507.594] -/Border [0 0 0] ->> -endobj -3551 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3552 0 obj -<< -/Subtype /Link -/A 3551 0 R -/Type /Annot -/Rect [93.6 496.281 115.2 507.594] -/Border [0 0 0] ->> -endobj -3553 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3554 0 obj -<< -/Subtype /Link -/A 3553 0 R -/Type /Annot -/Rect [115.2 496.281 120.6 507.594] -/Border [0 0 0] ->> -endobj -3555 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3556 0 obj -<< -/Subtype /Link -/A 3555 0 R -/Type /Annot -/Rect [120.6 496.281 196.2 507.594] -/Border [0 0 0] ->> -endobj -3557 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3558 0 obj -<< -/Subtype /Link -/A 3557 0 R -/Type /Annot -/Rect [196.2 496.281 201.6 507.594] -/Border [0 0 0] ->> -endobj -3559 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3560 0 obj -<< -/Subtype /Link -/A 3559 0 R -/Type /Annot -/Rect [201.6 496.281 207 507.594] -/Border [0 0 0] ->> -endobj -3561 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3562 0 obj -<< -/Subtype /Link -/A 3561 0 R -/Type /Annot -/Rect [207 496.281 223.2 507.594] -/Border [0 0 0] ->> -endobj -3563 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3564 0 obj -<< -/Subtype /Link -/A 3563 0 R -/Type /Annot -/Rect [223.2 496.281 228.6 507.594] -/Border [0 0 0] ->> -endobj -3565 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3566 0 obj -<< -/Subtype /Link -/A 3565 0 R -/Type /Annot -/Rect [228.6 496.281 234 507.594] -/Border [0 0 0] ->> -endobj -3567 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3568 0 obj -<< -/Subtype /Link -/A 3567 0 R -/Type /Annot -/Rect [234 496.281 250.2 507.594] -/Border [0 0 0] ->> -endobj -3569 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3570 0 obj -<< -/Subtype /Link -/A 3569 0 R -/Type /Annot -/Rect [250.2 496.281 255.6 507.594] -/Border [0 0 0] ->> -endobj -3571 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3572 0 obj -<< -/Subtype /Link -/A 3571 0 R -/Type /Annot -/Rect [72 473.781 336.501953 486.281] -/Border [0 0 0] ->> -endobj -3573 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3574 0 obj -<< -/Subtype /Link -/A 3573 0 R -/Type /Annot -/Rect [336.501953 473.711 384.501953 486.281] -/Border [0 0 0] ->> -endobj -3575 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3576 0 obj -<< -/Subtype /Link -/A 3575 0 R -/Type /Annot -/Rect [384.501953 473.781 400.126953 486.281] -/Border [0 0 0] ->> -endobj -3577 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3578 0 obj -<< -/Subtype /Link -/A 3577 0 R -/Type /Annot -/Rect [400.126953 473.711 436.126953 486.281] -/Border [0 0 0] ->> -endobj -3579 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3580 0 obj -<< -/Subtype /Link -/A 3579 0 R -/Type /Annot -/Rect [436.126953 473.781 524.62793 486.281] -/Border [0 0 0] ->> -endobj -3581 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3582 0 obj -<< -/Subtype /Link -/A 3581 0 R -/Type /Annot -/Rect [72 461.281 316.389648 473.781] -/Border [0 0 0] ->> -endobj -3504 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 3502 0 R -/Resources 3503 0 R -/Annots [3507 0 R 3510 0 R 3512 0 R 3514 0 R 3516 0 R 3518 0 R 3520 0 R 3522 0 R 3524 0 R 3526 0 R 3528 0 R 3530 0 R 3532 0 R 3534 0 R 3536 0 R 3538 0 R 3540 0 R 3542 0 R 3544 0 R 3546 0 R 3548 0 R 3550 0 R 3552 0 R 3554 0 R 3556 0 R 3558 0 R 3560 0 R 3562 0 R 3564 0 R 3566 0 R 3568 0 R 3570 0 R 3572 0 R 3574 0 R 3576 0 R 3578 0 R 3580 0 R 3582 0 R] ->> -endobj -3503 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -3502 0 obj -<< -/Length 1126 -/Filter /FlateDecode ->> -stream -xYn8)r@C{ۅo=8E>GPI6:7T+$lΟ||t}svyfs M'|s% t5}oYj/Ԟk`r| ]6t;|-xkp@۷ -4vXL`B0qjXkH &| $byk~| ;^)Á ^s$',J1kvm6SzC;P:UҾ~4-Ԭ+yH'oB4.J'j24y/[;HdWq&3h-T%>An?"Z{H%۬]B7s_ Xo" +`fÜ<;K hBf„ugR0 -endstream -endobj -3587 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3588 0 obj -<< -/Subtype /Link -/A 3587 0 R -/Type /Annot -/Rect [72 695.502 308.07 720] -/Border [0 0 0] ->> -endobj -3589 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3590 0 obj -<< -/Subtype /Link -/A 3589 0 R -/Type /Annot -/Rect [72 673.002 509.895508 685.502] -/Border [0 0 0] ->> -endobj -3591 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3592 0 obj -<< -/Subtype /Link -/A 3591 0 R -/Type /Annot -/Rect [72 660.502 530.989258 673.002] -/Border [0 0 0] ->> -endobj -3593 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3594 0 obj -<< -/Subtype /Link -/A 3593 0 R -/Type /Annot -/Rect [72 648.002 533.293945 660.502] -/Border [0 0 0] ->> -endobj -3595 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3596 0 obj -<< -/Subtype /Link -/A 3595 0 R -/Type /Annot -/Rect [72 635.502 485.364258 648.002] -/Border [0 0 0] ->> -endobj -3597 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3598 0 obj -<< -/Subtype /Link -/A 3597 0 R -/Type /Annot -/Rect [72 623.002 307.3125 635.502] -/Border [0 0 0] ->> -endobj -3599 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3600 0 obj -<< -/Subtype /Link -/A 3599 0 R -/Type /Annot -/Rect [72 600.502 326.931641 613.002] -/Border [0 0 0] ->> -endobj -3601 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3602 0 obj -<< -/Subtype /Link -/A 3601 0 R -/Type /Annot -/Rect [326.931641 600.432 380.931641 613.002] -/Border [0 0 0] ->> -endobj -3603 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3604 0 obj -<< -/Subtype /Link -/A 3603 0 R -/Type /Annot -/Rect [380.931641 600.502 431.65918 613.002] -/Border [0 0 0] ->> -endobj -3605 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3606 0 obj -<< -/Subtype /Link -/A 3605 0 R -/Type /Annot -/Rect [431.65918 600.432 461.65918 613.002] -/Border [0 0 0] ->> -endobj -3607 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3608 0 obj -<< -/Subtype /Link -/A 3607 0 R -/Type /Annot -/Rect [461.65918 600.502 533.353516 613.002] -/Border [0 0 0] ->> -endobj -3609 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3610 0 obj -<< -/Subtype /Link -/A 3609 0 R -/Type /Annot -/Rect [72 588.002 258.982422 600.502] -/Border [0 0 0] ->> -endobj -3611 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3612 0 obj -<< -/Subtype /Link -/A 3611 0 R -/Type /Annot -/Rect [258.982422 587.932 288.982422 600.502] -/Border [0 0 0] ->> -endobj -3613 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3614 0 obj -<< -/Subtype /Link -/A 3613 0 R -/Type /Annot -/Rect [288.982422 588.002 520.310547 600.502] -/Border [0 0 0] ->> -endobj -3615 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3616 0 obj -<< -/Subtype /Link -/A 3615 0 R -/Type /Annot -/Rect [72 575.502 274.416992 588.002] -/Border [0 0 0] ->> -endobj -3617 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3618 0 obj -<< -/Subtype /Link -/A 3617 0 R -/Type /Annot -/Rect [274.416992 575.432 310.416992 588.002] -/Border [0 0 0] ->> -endobj -3619 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3620 0 obj -<< -/Subtype /Link -/A 3619 0 R -/Type /Annot -/Rect [310.416992 575.502 499.572266 588.002] -/Border [0 0 0] ->> -endobj -3621 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3622 0 obj -<< -/Subtype /Link -/A 3621 0 R -/Type /Annot -/Rect [72 563.002 283.484375 575.502] -/Border [0 0 0] ->> -endobj -3623 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3624 0 obj -<< -/Subtype /Link -/A 3623 0 R -/Type /Annot -/Rect [72 540.502 523.665039 553.002] -/Border [0 0 0] ->> -endobj -3625 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3626 0 obj -<< -/Subtype /Link -/A 3625 0 R -/Type /Annot -/Rect [72 527.862 96 540.432] -/Border [0 0 0] ->> -endobj -3627 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3628 0 obj -<< -/Subtype /Link -/A 3627 0 R -/Type /Annot -/Rect [96 527.932 166.991211 540.432] -/Border [0 0 0] ->> -endobj -3629 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3630 0 obj -<< -/Subtype /Link -/A 3629 0 R -/Type /Annot -/Rect [166.991211 527.862 202.991211 540.432] -/Border [0 0 0] ->> -endobj -3631 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3632 0 obj -<< -/Subtype /Link -/A 3631 0 R -/Type /Annot -/Rect [202.991211 527.932 208.889648 540.432] -/Border [0 0 0] ->> -endobj -3633 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3634 0 obj -<< -/Subtype /Link -/A 3633 0 R -/Type /Annot -/Rect [208.889648 527.862 238.889648 540.432] -/Border [0 0 0] ->> -endobj -3635 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3636 0 obj -<< -/Subtype /Link -/A 3635 0 R -/Type /Annot -/Rect [238.889648 527.932 265.945313 540.432] -/Border [0 0 0] ->> -endobj -3637 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3638 0 obj -<< -/Subtype /Link -/A 3637 0 R -/Type /Annot -/Rect [265.945313 527.862 307.945313 540.432] -/Border [0 0 0] ->> -endobj -3639 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3640 0 obj -<< -/Subtype /Link -/A 3639 0 R -/Type /Annot -/Rect [307.945313 527.932 521.724609 540.432] -/Border [0 0 0] ->> -endobj -3641 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3642 0 obj -<< -/Subtype /Link -/A 3641 0 R -/Type /Annot -/Rect [72 515.432 425.066406 527.932] -/Border [0 0 0] ->> -endobj -3643 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3644 0 obj -<< -/Subtype /Link -/A 3643 0 R -/Type /Annot -/Rect [72 494.119 99 505.432] -/Border [0 0 0] ->> -endobj -3645 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3646 0 obj -<< -/Subtype /Link -/A 3645 0 R -/Type /Annot -/Rect [99 494.119 104.4 505.432] -/Border [0 0 0] ->> -endobj -3647 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3648 0 obj -<< -/Subtype /Link -/A 3647 0 R -/Type /Annot -/Rect [104.4 494.119 131.4 505.432] -/Border [0 0 0] ->> -endobj -3649 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3650 0 obj -<< -/Subtype /Link -/A 3649 0 R -/Type /Annot -/Rect [131.4 494.119 136.8 505.432] -/Border [0 0 0] ->> -endobj -3651 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3652 0 obj -<< -/Subtype /Link -/A 3651 0 R -/Type /Annot -/Rect [136.8 494.119 142.2 505.432] -/Border [0 0 0] ->> -endobj -3653 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3654 0 obj -<< -/Subtype /Link -/A 3653 0 R -/Type /Annot -/Rect [142.2 494.119 147.6 505.432] -/Border [0 0 0] ->> -endobj -3655 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3656 0 obj -<< -/Subtype /Link -/A 3655 0 R -/Type /Annot -/Rect [147.6 494.119 509.4 505.432] -/Border [0 0 0] ->> -endobj -3657 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3658 0 obj -<< -/Subtype /Link -/A 3657 0 R -/Type /Annot -/Rect [72 482.806 514.8 494.119] -/Border [0 0 0] ->> -endobj -3659 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3660 0 obj -<< -/Subtype /Link -/A 3659 0 R -/Type /Annot -/Rect [72 471.493 531 482.806] -/Border [0 0 0] ->> -endobj -3661 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3662 0 obj -<< -/Subtype /Link -/A 3661 0 R -/Type /Annot -/Rect [72 460.18 466.2 471.493] -/Border [0 0 0] ->> -endobj -3663 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3664 0 obj -<< -/Subtype /Link -/A 3663 0 R -/Type /Annot -/Rect [466.2 460.18 471.6 471.493] -/Border [0 0 0] ->> -endobj -3665 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3666 0 obj -<< -/Subtype /Link -/A 3665 0 R -/Type /Annot -/Rect [72 437.554 88.2 448.867] -/Border [0 0 0] ->> -endobj -3667 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3668 0 obj -<< -/Subtype /Link -/A 3667 0 R -/Type /Annot -/Rect [88.2 437.554 93.6 448.867] -/Border [0 0 0] ->> -endobj -3669 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3670 0 obj -<< -/Subtype /Link -/A 3669 0 R -/Type /Annot -/Rect [93.6 437.554 136.8 448.867] -/Border [0 0 0] ->> -endobj -3671 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3672 0 obj -<< -/Subtype /Link -/A 3671 0 R -/Type /Annot -/Rect [136.8 437.554 142.2 448.867] -/Border [0 0 0] ->> -endobj -3673 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3674 0 obj -<< -/Subtype /Link -/A 3673 0 R -/Type /Annot -/Rect [142.2 437.554 147.6 448.867] -/Border [0 0 0] ->> -endobj -3675 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3676 0 obj -<< -/Subtype /Link -/A 3675 0 R -/Type /Annot -/Rect [147.6 437.554 153 448.867] -/Border [0 0 0] ->> -endobj -3677 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3678 0 obj -<< -/Subtype /Link -/A 3677 0 R -/Type /Annot -/Rect [153 437.554 158.4 448.867] -/Border [0 0 0] ->> -endobj -3679 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3680 0 obj -<< -/Subtype /Link -/A 3679 0 R -/Type /Annot -/Rect [72 426.241 88.2 437.554] -/Border [0 0 0] ->> -endobj -3681 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3682 0 obj -<< -/Subtype /Link -/A 3681 0 R -/Type /Annot -/Rect [88.2 426.241 93.6 437.554] -/Border [0 0 0] ->> -endobj -3683 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3684 0 obj -<< -/Subtype /Link -/A 3683 0 R -/Type /Annot -/Rect [93.6 426.241 115.2 437.554] -/Border [0 0 0] ->> -endobj -3685 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3686 0 obj -<< -/Subtype /Link -/A 3685 0 R -/Type /Annot -/Rect [115.2 426.241 120.6 437.554] -/Border [0 0 0] ->> -endobj -3687 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3688 0 obj -<< -/Subtype /Link -/A 3687 0 R -/Type /Annot -/Rect [120.6 426.241 282.6 437.554] -/Border [0 0 0] ->> -endobj -3689 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3690 0 obj -<< -/Subtype /Link -/A 3689 0 R -/Type /Annot -/Rect [282.6 426.241 309.6 437.554] -/Border [0 0 0] ->> -endobj -3691 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3692 0 obj -<< -/Subtype /Link -/A 3691 0 R -/Type /Annot -/Rect [309.6 426.241 315 437.554] -/Border [0 0 0] ->> -endobj -3693 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3694 0 obj -<< -/Subtype /Link -/A 3693 0 R -/Type /Annot -/Rect [315 426.241 336.6 437.554] -/Border [0 0 0] ->> -endobj -3695 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3696 0 obj -<< -/Subtype /Link -/A 3695 0 R -/Type /Annot -/Rect [72 414.928 82.8 426.241] -/Border [0 0 0] ->> -endobj -3697 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3698 0 obj -<< -/Subtype /Link -/A 3697 0 R -/Type /Annot -/Rect [82.8 414.928 142.2 426.241] -/Border [0 0 0] ->> -endobj -3699 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3700 0 obj -<< -/Subtype /Link -/A 3699 0 R -/Type /Annot -/Rect [72 403.615 82.8 414.928] -/Border [0 0 0] ->> -endobj -3701 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3702 0 obj -<< -/Subtype /Link -/A 3701 0 R -/Type /Annot -/Rect [82.8 403.615 153 414.928] -/Border [0 0 0] ->> -endobj -3703 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3704 0 obj -<< -/Subtype /Link -/A 3703 0 R -/Type /Annot -/Rect [72 392.302 77.4 403.615] -/Border [0 0 0] ->> -endobj -3705 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3706 0 obj -<< -/Subtype /Link -/A 3705 0 R -/Type /Annot -/Rect [72 380.989 82.8 392.302] -/Border [0 0 0] ->> -endobj -3707 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3708 0 obj -<< -/Subtype /Link -/A 3707 0 R -/Type /Annot -/Rect [72 358.363 153 369.676] -/Border [0 0 0] ->> -endobj -3709 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3710 0 obj -<< -/Subtype /Link -/A 3709 0 R -/Type /Annot -/Rect [72 347.05 126 358.363] -/Border [0 0 0] ->> -endobj -3711 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3712 0 obj -<< -/Subtype /Link -/A 3711 0 R -/Type /Annot -/Rect [126 347.05 147.6 358.363] -/Border [0 0 0] ->> -endobj -3713 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3714 0 obj -<< -/Subtype /Link -/A 3713 0 R -/Type /Annot -/Rect [147.6 347.05 153 358.363] -/Border [0 0 0] ->> -endobj -3715 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3716 0 obj -<< -/Subtype /Link -/A 3715 0 R -/Type /Annot -/Rect [153 347.05 174.6 358.363] -/Border [0 0 0] ->> -endobj -3717 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3718 0 obj -<< -/Subtype /Link -/A 3717 0 R -/Type /Annot -/Rect [174.6 347.05 180 358.363] -/Border [0 0 0] ->> -endobj -3719 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3720 0 obj -<< -/Subtype /Link -/A 3719 0 R -/Type /Annot -/Rect [180 347.05 190.8 358.363] -/Border [0 0 0] ->> -endobj -3721 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3722 0 obj -<< -/Subtype /Link -/A 3721 0 R -/Type /Annot -/Rect [190.8 347.05 196.2 358.363] -/Border [0 0 0] ->> -endobj -3723 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3724 0 obj -<< -/Subtype /Link -/A 3723 0 R -/Type /Annot -/Rect [196.2 347.05 239.4 358.363] -/Border [0 0 0] ->> -endobj -3725 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3726 0 obj -<< -/Subtype /Link -/A 3725 0 R -/Type /Annot -/Rect [239.4 347.05 244.8 358.363] -/Border [0 0 0] ->> -endobj -3727 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3728 0 obj -<< -/Subtype /Link -/A 3727 0 R -/Type /Annot -/Rect [244.8 347.05 250.2 358.363] -/Border [0 0 0] ->> -endobj -3729 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3730 0 obj -<< -/Subtype /Link -/A 3729 0 R -/Type /Annot -/Rect [250.2 347.05 255.6 358.363] -/Border [0 0 0] ->> -endobj -3731 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3732 0 obj -<< -/Subtype /Link -/A 3731 0 R -/Type /Annot -/Rect [255.6 347.05 261 358.363] -/Border [0 0 0] ->> -endobj -3733 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3734 0 obj -<< -/Subtype /Link -/A 3733 0 R -/Type /Annot -/Rect [261 347.05 288 358.363] -/Border [0 0 0] ->> -endobj -3735 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3736 0 obj -<< -/Subtype /Link -/A 3735 0 R -/Type /Annot -/Rect [288 347.05 293.4 358.363] -/Border [0 0 0] ->> -endobj -3737 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3738 0 obj -<< -/Subtype /Link -/A 3737 0 R -/Type /Annot -/Rect [293.4 347.05 315 358.363] -/Border [0 0 0] ->> -endobj -3739 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3740 0 obj -<< -/Subtype /Link -/A 3739 0 R -/Type /Annot -/Rect [72 335.737 82.8 347.05] -/Border [0 0 0] ->> -endobj -3741 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3742 0 obj -<< -/Subtype /Link -/A 3741 0 R -/Type /Annot -/Rect [82.8 335.737 142.2 347.05] -/Border [0 0 0] ->> -endobj -3743 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3744 0 obj -<< -/Subtype /Link -/A 3743 0 R -/Type /Annot -/Rect [72 324.424 82.8 335.737] -/Border [0 0 0] ->> -endobj -3745 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3746 0 obj -<< -/Subtype /Link -/A 3745 0 R -/Type /Annot -/Rect [82.8 324.424 163.8 335.737] -/Border [0 0 0] ->> -endobj -3747 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3748 0 obj -<< -/Subtype /Link -/A 3747 0 R -/Type /Annot -/Rect [72 313.111 77.4 324.424] -/Border [0 0 0] ->> -endobj -3749 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3750 0 obj -<< -/Subtype /Link -/A 3749 0 R -/Type /Annot -/Rect [72 301.798 82.8 313.111] -/Border [0 0 0] ->> -endobj -3751 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3752 0 obj -<< -/Subtype /Link -/A 3751 0 R -/Type /Annot -/Rect [72 279.172 153 290.485] -/Border [0 0 0] ->> -endobj -3753 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3754 0 obj -<< -/Subtype /Link -/A 3753 0 R -/Type /Annot -/Rect [72 267.859 126 279.172] -/Border [0 0 0] ->> -endobj -3755 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3756 0 obj -<< -/Subtype /Link -/A 3755 0 R -/Type /Annot -/Rect [126 267.859 147.6 279.172] -/Border [0 0 0] ->> -endobj -3757 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3758 0 obj -<< -/Subtype /Link -/A 3757 0 R -/Type /Annot -/Rect [147.6 267.859 153 279.172] -/Border [0 0 0] ->> -endobj -3759 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3760 0 obj -<< -/Subtype /Link -/A 3759 0 R -/Type /Annot -/Rect [153 267.859 174.6 279.172] -/Border [0 0 0] ->> -endobj -3761 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3762 0 obj -<< -/Subtype /Link -/A 3761 0 R -/Type /Annot -/Rect [174.6 267.859 180 279.172] -/Border [0 0 0] ->> -endobj -3763 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3764 0 obj -<< -/Subtype /Link -/A 3763 0 R -/Type /Annot -/Rect [180 267.859 190.8 279.172] -/Border [0 0 0] ->> -endobj -3765 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3766 0 obj -<< -/Subtype /Link -/A 3765 0 R -/Type /Annot -/Rect [190.8 267.859 196.2 279.172] -/Border [0 0 0] ->> -endobj -3767 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3768 0 obj -<< -/Subtype /Link -/A 3767 0 R -/Type /Annot -/Rect [196.2 267.859 223.2 279.172] -/Border [0 0 0] ->> -endobj -3769 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3770 0 obj -<< -/Subtype /Link -/A 3769 0 R -/Type /Annot -/Rect [223.2 267.859 228.6 279.172] -/Border [0 0 0] ->> -endobj -3771 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3772 0 obj -<< -/Subtype /Link -/A 3771 0 R -/Type /Annot -/Rect [228.6 267.859 266.4 279.172] -/Border [0 0 0] ->> -endobj -3773 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3774 0 obj -<< -/Subtype /Link -/A 3773 0 R -/Type /Annot -/Rect [266.4 267.859 271.8 279.172] -/Border [0 0 0] ->> -endobj -3775 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3776 0 obj -<< -/Subtype /Link -/A 3775 0 R -/Type /Annot -/Rect [271.8 267.859 277.2 279.172] -/Border [0 0 0] ->> -endobj -3777 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3778 0 obj -<< -/Subtype /Link -/A 3777 0 R -/Type /Annot -/Rect [277.2 267.859 282.6 279.172] -/Border [0 0 0] ->> -endobj -3779 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3780 0 obj -<< -/Subtype /Link -/A 3779 0 R -/Type /Annot -/Rect [282.6 267.859 288 279.172] -/Border [0 0 0] ->> -endobj -3781 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3782 0 obj -<< -/Subtype /Link -/A 3781 0 R -/Type /Annot -/Rect [288 267.859 315 279.172] -/Border [0 0 0] ->> -endobj -3783 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3784 0 obj -<< -/Subtype /Link -/A 3783 0 R -/Type /Annot -/Rect [315 267.859 320.4 279.172] -/Border [0 0 0] ->> -endobj -3785 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3786 0 obj -<< -/Subtype /Link -/A 3785 0 R -/Type /Annot -/Rect [320.4 267.859 347.4 279.172] -/Border [0 0 0] ->> -endobj -3787 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3788 0 obj -<< -/Subtype /Link -/A 3787 0 R -/Type /Annot -/Rect [72 256.546 82.8 267.859] -/Border [0 0 0] ->> -endobj -3789 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3790 0 obj -<< -/Subtype /Link -/A 3789 0 R -/Type /Annot -/Rect [82.8 256.546 142.2 267.859] -/Border [0 0 0] ->> -endobj -3791 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3792 0 obj -<< -/Subtype /Link -/A 3791 0 R -/Type /Annot -/Rect [72 245.233 82.8 256.546] -/Border [0 0 0] ->> -endobj -3793 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3794 0 obj -<< -/Subtype /Link -/A 3793 0 R -/Type /Annot -/Rect [82.8 245.233 158.4 256.546] -/Border [0 0 0] ->> -endobj -3795 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3796 0 obj -<< -/Subtype /Link -/A 3795 0 R -/Type /Annot -/Rect [72 233.92 77.4 245.233] -/Border [0 0 0] ->> -endobj -3797 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3798 0 obj -<< -/Subtype /Link -/A 3797 0 R -/Type /Annot -/Rect [72 222.607 82.8 233.92] -/Border [0 0 0] ->> -endobj -3799 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3800 0 obj -<< -/Subtype /Link -/A 3799 0 R -/Type /Annot -/Rect [72 199.981 153 211.294] -/Border [0 0 0] ->> -endobj -3801 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3802 0 obj -<< -/Subtype /Link -/A 3801 0 R -/Type /Annot -/Rect [72 188.668 126 199.981] -/Border [0 0 0] ->> -endobj -3803 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3804 0 obj -<< -/Subtype /Link -/A 3803 0 R -/Type /Annot -/Rect [126 188.668 147.6 199.981] -/Border [0 0 0] ->> -endobj -3805 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3806 0 obj -<< -/Subtype /Link -/A 3805 0 R -/Type /Annot -/Rect [147.6 188.668 153 199.981] -/Border [0 0 0] ->> -endobj -3807 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3808 0 obj -<< -/Subtype /Link -/A 3807 0 R -/Type /Annot -/Rect [153 188.668 174.6 199.981] -/Border [0 0 0] ->> -endobj -3809 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3810 0 obj -<< -/Subtype /Link -/A 3809 0 R -/Type /Annot -/Rect [174.6 188.668 180 199.981] -/Border [0 0 0] ->> -endobj -3811 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3812 0 obj -<< -/Subtype /Link -/A 3811 0 R -/Type /Annot -/Rect [180 188.668 190.8 199.981] -/Border [0 0 0] ->> -endobj -3813 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3814 0 obj -<< -/Subtype /Link -/A 3813 0 R -/Type /Annot -/Rect [190.8 188.668 196.2 199.981] -/Border [0 0 0] ->> -endobj -3815 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3816 0 obj -<< -/Subtype /Link -/A 3815 0 R -/Type /Annot -/Rect [196.2 188.668 244.8 199.981] -/Border [0 0 0] ->> -endobj -3817 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3818 0 obj -<< -/Subtype /Link -/A 3817 0 R -/Type /Annot -/Rect [244.8 188.668 250.2 199.981] -/Border [0 0 0] ->> -endobj -3819 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3820 0 obj -<< -/Subtype /Link -/A 3819 0 R -/Type /Annot -/Rect [250.2 188.668 255.6 199.981] -/Border [0 0 0] ->> -endobj -3821 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3822 0 obj -<< -/Subtype /Link -/A 3821 0 R -/Type /Annot -/Rect [255.6 188.668 261 199.981] -/Border [0 0 0] ->> -endobj -3823 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3824 0 obj -<< -/Subtype /Link -/A 3823 0 R -/Type /Annot -/Rect [261 188.668 266.4 199.981] -/Border [0 0 0] ->> -endobj -3825 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3826 0 obj -<< -/Subtype /Link -/A 3825 0 R -/Type /Annot -/Rect [266.4 188.668 293.4 199.981] -/Border [0 0 0] ->> -endobj -3827 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3828 0 obj -<< -/Subtype /Link -/A 3827 0 R -/Type /Annot -/Rect [293.4 188.668 298.8 199.981] -/Border [0 0 0] ->> -endobj -3829 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3830 0 obj -<< -/Subtype /Link -/A 3829 0 R -/Type /Annot -/Rect [298.8 188.668 325.8 199.981] -/Border [0 0 0] ->> -endobj -3831 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3832 0 obj -<< -/Subtype /Link -/A 3831 0 R -/Type /Annot -/Rect [72 177.355 82.8 188.668] -/Border [0 0 0] ->> -endobj -3833 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3834 0 obj -<< -/Subtype /Link -/A 3833 0 R -/Type /Annot -/Rect [82.8 177.355 142.2 188.668] -/Border [0 0 0] ->> -endobj -3835 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3836 0 obj -<< -/Subtype /Link -/A 3835 0 R -/Type /Annot -/Rect [72 166.042 82.8 177.355] -/Border [0 0 0] ->> -endobj -3837 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3838 0 obj -<< -/Subtype /Link -/A 3837 0 R -/Type /Annot -/Rect [82.8 166.042 169.2 177.355] -/Border [0 0 0] ->> -endobj -3839 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3840 0 obj -<< -/Subtype /Link -/A 3839 0 R -/Type /Annot -/Rect [72 154.729 77.4 166.042] -/Border [0 0 0] ->> -endobj -3841 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3842 0 obj -<< -/Subtype /Link -/A 3841 0 R -/Type /Annot -/Rect [72 143.416 82.8 154.729] -/Border [0 0 0] ->> -endobj -3843 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3844 0 obj -<< -/Subtype /Link -/A 3843 0 R -/Type /Annot -/Rect [72 120.79 212.4 132.103] -/Border [0 0 0] ->> -endobj -3845 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3846 0 obj -<< -/Subtype /Link -/A 3845 0 R -/Type /Annot -/Rect [72 109.477 288 120.79] -/Border [0 0 0] ->> -endobj -3847 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3848 0 obj -<< -/Subtype /Link -/A 3847 0 R -/Type /Annot -/Rect [72 86.977 285.735352 99.477] -/Border [0 0 0] ->> -endobj -3585 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 3583 0 R -/Resources 3584 0 R -/Annots [3588 0 R 3590 0 R 3592 0 R 3594 0 R 3596 0 R 3598 0 R 3600 0 R 3602 0 R 3604 0 R 3606 0 R 3608 0 R 3610 0 R 3612 0 R 3614 0 R 3616 0 R 3618 0 R 3620 0 R 3622 0 R 3624 0 R 3626 0 R 3628 0 R 3630 0 R 3632 0 R 3634 0 R 3636 0 R 3638 0 R 3640 0 R 3642 0 R 3644 0 R 3646 0 R 3648 0 R 3650 0 R 3652 0 R 3654 0 R 3656 0 R 3658 0 R 3660 0 R 3662 0 R 3664 0 R 3666 0 R 3668 0 R 3670 0 R 3672 0 R 3674 0 R 3676 0 R 3678 0 R 3680 0 R 3682 0 R 3684 0 R 3686 0 R 3688 0 R 3690 0 R 3692 0 R 3694 0 R 3696 0 R 3698 0 R 3700 0 R 3702 0 R 3704 0 R 3706 0 R 3708 0 R 3710 0 R 3712 0 R 3714 0 R 3716 0 R 3718 0 R 3720 0 R 3722 0 R 3724 0 R 3726 0 R 3728 0 R 3730 0 R 3732 0 R 3734 0 R 3736 0 R 3738 0 R 3740 0 R 3742 0 R 3744 0 R 3746 0 R 3748 0 R 3750 0 R 3752 0 R 3754 0 R 3756 0 R 3758 0 R 3760 0 R 3762 0 R 3764 0 R 3766 0 R 3768 0 R 3770 0 R 3772 0 R 3774 0 R 3776 0 R 3778 0 R 3780 0 R 3782 0 R 3784 0 R 3786 0 R 3788 0 R 3790 0 R 3792 0 R 3794 0 R 3796 0 R 3798 0 R 3800 0 R 3802 0 R 3804 0 R 3806 0 R 3808 0 R 3810 0 R 3812 0 R 3814 0 R 3816 0 R 3818 0 R 3820 0 R 3822 0 R 3824 0 R 3826 0 R 3828 0 R 3830 0 R 3832 0 R 3834 0 R 3836 0 R 3838 0 R 3840 0 R 3842 0 R 3844 0 R 3846 0 R 3848 0 R] ->> -endobj -3584 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R -/F1 3849 0 R ->> ->> -endobj -3583 0 obj -<< -/Length 3366 -/Filter /FlateDecode ->> -stream -x]ݎ T`.zI`/Z]_JmZ<Ɍ'Ξ]x'eH~"ث㿞~?'rEߟFupR 9p~~7)AK) q{(:ӕ|W4jFgT>?O;4[0>q&]BrWG$LcJ;G]c8I}^Csrdse0)5pN8Y_dqmG E6Սf0ˑҼ X K^a1kY,DHMìAP>EEehkzFI"PdfZ&#Υ -l -ﱒUo|ȦL~e<1qaj')`lck CZONqa#\0 pjO45Y3膙8MִHffnҤ\n҆-( -܂\dV3Agڊ -W˥t!Z`#Mi, ^ZegנJ 2 yPpmDM-rFeԔ+MU$sde$&%iZZ-$2Z g#]h2AU=odb'n#AK4Z1+IhfG;,xHH(S bI{)\36KXoR@`3wp3MIc-yg`eGREY|"' ->2cR)ݽ"PxcFG4ثMZI> ͋ ›r>ua9yb]֛J*Vm:]OZڲ$rnʚ^f쾣y/}`QLtQ(2.#b9LsK%54u54$`&.RHMx$:M i;}y [H0cTTmIkGM^<{tDљbZͼ#o2";Eqf})݄KXhpɢ,;y;WFѩ1T̩m^㰵C+lkUA$ n碨.}{EC7khy(eoH9)}imHђGP<,O|/}>:ֳڃ5 DwKhkM\ڍ1HA!-&:aeq'h둃R]b_ľPB.!p +YX$&}haK!Ζr8ra@8' !eTm:p}% MZҔfX:DMՕ+Vngo90y(ǡ8ˡcrM: ]A_= ,. +WIAKfa 47 [#5 䘨ydx0Ș?߲'=rt^h/mQ6 GL@uY#ҭFJ7ubmFQw5:31OZ91 C%e2P_jd+66Iwif8Lo/[\ =fe'x(F;r\+ALW̉2ipNAk蕫{-[־ުZnck?3JNkp/ӽ苣)Z̦Ry,Rj0rkdHAKRSAwN -{ȽUQ|\u1Eu9^Ox79Ki\|A:=JZs}7?Tv k_M0 -u~CY#yv^岶*ihy̙ƿb -\p,ʮ{F-v -^T^ШE!U;5 S/{%t"f1NH`ܛ< -la-FxoZËZ}Ta'EhxxmȲuiMR+Z% -I1۝ p]ɗi}ˠ.+> 7T}Kiî+;S}Qr6+Wl+,cTjye#DKQ ޡM -N;`ܛ±v=l{H ,@ppY -Z5~wdO=+.V]v ) RPA> BE?qI+ty^kj-ݴսw7ܜ -kU^=+~uj;w;ި]~icy7iAҲھzjl(`o/WqCJ F}?p ߱`;M_֖ ^U~Fw/_k$߳kݕjZZ+"k\?#Er[C;=9XC;gNiO;֐NY|ik{]>mX_m|Ac_ıݩߨ#{#(“χizKo(EiGunyy/(T]HDTp97Z)쪹XO[|F۬{˧}0mْ!3d^jGTٴ3e3ZOc2ur79e"d F^Ĝ^t煯|t[]e4E(6ǀ*$:G˺䋦x^( -&́~8&eN'*;ːu9p lV؃7QH_O I9Pvo^,^0 -EsZ"94;n^zj _: QjH 盄'[ld^\_dp~[ɗV@M(QQw.{O.C1IƢu",R&rY6ip0 &YjKJZ-fbp@L/15(_0_PU0JcvѦ8.':6̂ѹ>qsXxnsAPQ-VNP/Uy:LA`^l -endstream -endobj -3854 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3855 0 obj -<< -/Subtype /Link -/A 3854 0 R -/Type /Annot -/Rect [72 695.502 159.858 720] -/Border [0 0 0] ->> -endobj -3856 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3857 0 obj -<< -/Subtype /Link -/A 3856 0 R -/Type /Annot -/Rect [72 673.002 536.223633 685.502] -/Border [0 0 0] ->> -endobj -3858 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3859 0 obj -<< -/Subtype /Link -/A 3858 0 R -/Type /Annot -/Rect [72 660.502 154.929688 673.002] -/Border [0 0 0] ->> -endobj -3860 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3861 0 obj -<< -/Subtype /Link -/A 3860 0 R -/Type /Annot -/Rect [154.929688 660.432 178.929688 673.002] -/Border [0 0 0] ->> -endobj -3862 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3863 0 obj -<< -/Subtype /Link -/A 3862 0 R -/Type /Annot -/Rect [178.929688 660.502 367.464844 673.002] -/Border [0 0 0] ->> -endobj -3864 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3865 0 obj -<< -/Subtype /Link -/A 3864 0 R -/Type /Annot -/Rect [72 637.932 126 650.502] -/Border [0 0 0] ->> -endobj -3866 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3867 0 obj -<< -/Subtype /Link -/A 3866 0 R -/Type /Annot -/Rect [126 638.002 167.411133 650.502] -/Border [0 0 0] ->> -endobj -3868 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3869 0 obj -<< -/Subtype /Link -/A 3868 0 R -/Type /Annot -/Rect [167.411133 637.932 197.411133 650.502] -/Border [0 0 0] ->> -endobj -3870 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3871 0 obj -<< -/Subtype /Link -/A 3870 0 R -/Type /Annot -/Rect [197.411133 638.002 380.082031 650.502] -/Border [0 0 0] ->> -endobj -3872 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3873 0 obj -<< -/Subtype /Link -/A 3872 0 R -/Type /Annot -/Rect [72 619.432 102 632.002] -/Border [0 0 0] ->> -endobj -3874 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3875 0 obj -<< -/Subtype /Link -/A 3874 0 R -/Type /Annot -/Rect [102 619.502 528.230469 632.002] -/Border [0 0 0] ->> -endobj -3876 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3877 0 obj -<< -/Subtype /Link -/A 3876 0 R -/Type /Annot -/Rect [72 607.002 160.691406 619.502] -/Border [0 0 0] ->> -endobj -3878 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3879 0 obj -<< -/Subtype /Link -/A 3878 0 R -/Type /Annot -/Rect [72 588.432 108 601.002] -/Border [0 0 0] ->> -endobj -3880 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3881 0 obj -<< -/Subtype /Link -/A 3880 0 R -/Type /Annot -/Rect [108 588.502 373.249023 601.002] -/Border [0 0 0] ->> -endobj -3882 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3883 0 obj -<< -/Subtype /Link -/A 3882 0 R -/Type /Annot -/Rect [72 569.932 120 582.502] -/Border [0 0 0] ->> -endobj -3884 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3885 0 obj -<< -/Subtype /Link -/A 3884 0 R -/Type /Annot -/Rect [120 570.002 487.089844 582.502] -/Border [0 0 0] ->> -endobj -3886 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3887 0 obj -<< -/Subtype /Link -/A 3886 0 R -/Type /Annot -/Rect [487.089844 569.932 511.089844 582.502] -/Border [0 0 0] ->> -endobj -3888 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3889 0 obj -<< -/Subtype /Link -/A 3888 0 R -/Type /Annot -/Rect [511.089844 570.002 526.416992 582.502] -/Border [0 0 0] ->> -endobj -3890 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3891 0 obj -<< -/Subtype /Link -/A 3890 0 R -/Type /Annot -/Rect [72 557.502 199.226563 570.002] -/Border [0 0 0] ->> -endobj -3892 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3893 0 obj -<< -/Subtype /Link -/A 3892 0 R -/Type /Annot -/Rect [72 538.932 114 551.502] -/Border [0 0 0] ->> -endobj -3894 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3895 0 obj -<< -/Subtype /Link -/A 3894 0 R -/Type /Annot -/Rect [114 539.002 343.448242 551.502] -/Border [0 0 0] ->> -endobj -3896 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3897 0 obj -<< -/Subtype /Link -/A 3896 0 R -/Type /Annot -/Rect [72 520.432 126 533.002] -/Border [0 0 0] ->> -endobj -3898 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3899 0 obj -<< -/Subtype /Link -/A 3898 0 R -/Type /Annot -/Rect [126 520.502 451.375977 533.002] -/Border [0 0 0] ->> -endobj -3900 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3901 0 obj -<< -/Subtype /Link -/A 3900 0 R -/Type /Annot -/Rect [72 501.932 108 514.502] -/Border [0 0 0] ->> -endobj -3902 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3903 0 obj -<< -/Subtype /Link -/A 3902 0 R -/Type /Annot -/Rect [108 502.002 476.505859 514.502] -/Border [0 0 0] ->> -endobj -3904 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3905 0 obj -<< -/Subtype /Link -/A 3904 0 R -/Type /Annot -/Rect [72 483.432 144 496.002] -/Border [0 0 0] ->> -endobj -3906 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3907 0 obj -<< -/Subtype /Link -/A 3906 0 R -/Type /Annot -/Rect [144 483.502 415.884766 496.002] -/Border [0 0 0] ->> -endobj -3908 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3909 0 obj -<< -/Subtype /Link -/A 3908 0 R -/Type /Annot -/Rect [72 464.932 114 477.502] -/Border [0 0 0] ->> -endobj -3910 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3911 0 obj -<< -/Subtype /Link -/A 3910 0 R -/Type /Annot -/Rect [114 465.002 353.589844 477.502] -/Border [0 0 0] ->> -endobj -3912 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3913 0 obj -<< -/Subtype /Link -/A 3912 0 R -/Type /Annot -/Rect [72 446.432 138 459.002] -/Border [0 0 0] ->> -endobj -3914 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3915 0 obj -<< -/Subtype /Link -/A 3914 0 R -/Type /Annot -/Rect [138 446.502 402.677734 459.002] -/Border [0 0 0] ->> -endobj -3916 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3917 0 obj -<< -/Subtype /Link -/A 3916 0 R -/Type /Annot -/Rect [72 427.932 168 440.502] -/Border [0 0 0] ->> -endobj -3918 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3919 0 obj -<< -/Subtype /Link -/A 3918 0 R -/Type /Annot -/Rect [168 428.002 454.757813 440.502] -/Border [0 0 0] ->> -endobj -3920 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3921 0 obj -<< -/Subtype /Link -/A 3920 0 R -/Type /Annot -/Rect [72 409.432 96 422.002] -/Border [0 0 0] ->> -endobj -3922 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3923 0 obj -<< -/Subtype /Link -/A 3922 0 R -/Type /Annot -/Rect [96 409.502 226.600586 422.002] -/Border [0 0 0] ->> -endobj -3924 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3925 0 obj -<< -/Subtype /Link -/A 3924 0 R -/Type /Annot -/Rect [226.600586 409.432 250.600586 422.002] -/Border [0 0 0] ->> -endobj -3926 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3927 0 obj -<< -/Subtype /Link -/A 3926 0 R -/Type /Annot -/Rect [250.600586 409.502 306.855469 422.002] -/Border [0 0 0] ->> -endobj -3928 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3929 0 obj -<< -/Subtype /Link -/A 3928 0 R -/Type /Annot -/Rect [72 390.932 108 403.502] -/Border [0 0 0] ->> -endobj -3930 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3931 0 obj -<< -/Subtype /Link -/A 3930 0 R -/Type /Annot -/Rect [108 391.002 249.494141 403.502] -/Border [0 0 0] ->> -endobj -3932 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3933 0 obj -<< -/Subtype /Link -/A 3932 0 R -/Type /Annot -/Rect [72 372.432 96 385.002] -/Border [0 0 0] ->> -endobj -3934 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3935 0 obj -<< -/Subtype /Link -/A 3934 0 R -/Type /Annot -/Rect [96 372.502 399.876953 385.002] -/Border [0 0 0] ->> -endobj -3936 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3937 0 obj -<< -/Subtype /Link -/A 3936 0 R -/Type /Annot -/Rect [72 353.932 126 366.502] -/Border [0 0 0] ->> -endobj -3938 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3939 0 obj -<< -/Subtype /Link -/A 3938 0 R -/Type /Annot -/Rect [126 354.002 284.408203 366.502] -/Border [0 0 0] ->> -endobj -3940 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3941 0 obj -<< -/Subtype /Link -/A 3940 0 R -/Type /Annot -/Rect [72 335.432 108 348.002] -/Border [0 0 0] ->> -endobj -3942 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3943 0 obj -<< -/Subtype /Link -/A 3942 0 R -/Type /Annot -/Rect [108 335.502 265.900391 348.002] -/Border [0 0 0] ->> -endobj -3944 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3945 0 obj -<< -/Subtype /Link -/A 3944 0 R -/Type /Annot -/Rect [72 316.932 114 329.502] -/Border [0 0 0] ->> -endobj -3946 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3947 0 obj -<< -/Subtype /Link -/A 3946 0 R -/Type /Annot -/Rect [114 317.002 352.134766 329.502] -/Border [0 0 0] ->> -endobj -3948 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3949 0 obj -<< -/Subtype /Link -/A 3948 0 R -/Type /Annot -/Rect [352.134766 316.932 376.134766 329.502] -/Border [0 0 0] ->> -endobj -3950 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3951 0 obj -<< -/Subtype /Link -/A 3950 0 R -/Type /Annot -/Rect [376.134766 317.002 380.104492 329.502] -/Border [0 0 0] ->> -endobj -3952 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3953 0 obj -<< -/Subtype /Link -/A 3952 0 R -/Type /Annot -/Rect [72 298.432 120 311.002] -/Border [0 0 0] ->> -endobj -3954 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3955 0 obj -<< -/Subtype /Link -/A 3954 0 R -/Type /Annot -/Rect [120 298.502 520.522461 311.002] -/Border [0 0 0] ->> -endobj -3956 0 obj -<< -/S /URI -/URI (https://www.w3schools.com/tags/canvas_textbaseline.asp) ->> -endobj -3957 0 obj -<< -/Subtype /Link -/A 3956 0 R -/Type /Annot -/Rect [72 286.002 170.662109 298.502] -/Border [0 0 0] ->> -endobj -3958 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3959 0 obj -<< -/Subtype /Link -/A 3958 0 R -/Type /Annot -/Rect [170.662109 286.002 174.631836 298.502] -/Border [0 0 0] ->> -endobj -3960 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3961 0 obj -<< -/Subtype /Link -/A 3960 0 R -/Type /Annot -/Rect [72 267.432 126 280.002] -/Border [0 0 0] ->> -endobj -3962 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3963 0 obj -<< -/Subtype /Link -/A 3962 0 R -/Type /Annot -/Rect [126 267.502 521.15625 280.002] -/Border [0 0 0] ->> -endobj -3964 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3965 0 obj -<< -/Subtype /Link -/A 3964 0 R -/Type /Annot -/Rect [72 255.002 354.65625 267.502] -/Border [0 0 0] ->> -endobj -3966 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3967 0 obj -<< -/Subtype /Link -/A 3966 0 R -/Type /Annot -/Rect [72 236.432 120 249.002] -/Border [0 0 0] ->> -endobj -3968 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3969 0 obj -<< -/Subtype /Link -/A 3968 0 R -/Type /Annot -/Rect [120 236.502 187.143555 249.002] -/Border [0 0 0] ->> -endobj -3970 0 obj -<< -/S /URI -/URI (https://www.microsoft.com/typography/otspec/featuretags.htm) ->> -endobj -3971 0 obj -<< -/Subtype /Link -/A 3970 0 R -/Type /Annot -/Rect [187.143555 236.502 298.730469 249.002] -/Border [0 0 0] ->> -endobj -3972 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3973 0 obj -<< -/Subtype /Link -/A 3972 0 R -/Type /Annot -/Rect [298.730469 236.502 519.892578 249.002] -/Border [0 0 0] ->> -endobj -3974 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3975 0 obj -<< -/Subtype /Link -/A 3974 0 R -/Type /Annot -/Rect [72 224.002 98.660156 236.502] -/Border [0 0 0] ->> -endobj -3976 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3977 0 obj -<< -/Subtype /Link -/A 3976 0 R -/Type /Annot -/Rect [72 195.502 447.224609 208.002] -/Border [0 0 0] ->> -endobj -3978 0 obj -<< -/S /URI -/URI (vector.html) ->> -endobj -3979 0 obj -<< -/Subtype /Link -/A 3978 0 R -/Type /Annot -/Rect [447.224609 195.502 526.399414 208.002] -/Border [0 0 0] ->> -endobj -3980 0 obj -<< -/S /URI -/URI (vector.html) ->> -endobj -3981 0 obj -<< -/Subtype /Link -/A 3980 0 R -/Type /Annot -/Rect [72 183.002 108.181641 195.502] -/Border [0 0 0] ->> -endobj -3982 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3983 0 obj -<< -/Subtype /Link -/A 3982 0 R -/Type /Annot -/Rect [108.181641 183.002 282.307617 195.502] -/Border [0 0 0] ->> -endobj -3852 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 3850 0 R -/Resources 3851 0 R -/Annots [3855 0 R 3857 0 R 3859 0 R 3861 0 R 3863 0 R 3865 0 R 3867 0 R 3869 0 R 3871 0 R 3873 0 R 3875 0 R 3877 0 R 3879 0 R 3881 0 R 3883 0 R 3885 0 R 3887 0 R 3889 0 R 3891 0 R 3893 0 R 3895 0 R 3897 0 R 3899 0 R 3901 0 R 3903 0 R 3905 0 R 3907 0 R 3909 0 R 3911 0 R 3913 0 R 3915 0 R 3917 0 R 3919 0 R 3921 0 R 3923 0 R 3925 0 R 3927 0 R 3929 0 R 3931 0 R 3933 0 R 3935 0 R 3937 0 R 3939 0 R 3941 0 R 3943 0 R 3945 0 R 3947 0 R 3949 0 R 3951 0 R 3953 0 R 3955 0 R 3957 0 R 3959 0 R 3961 0 R 3963 0 R 3965 0 R 3967 0 R 3969 0 R 3971 0 R 3973 0 R 3975 0 R 3977 0 R 3979 0 R 3981 0 R 3983 0 R] ->> -endobj -3851 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R ->> ->> -endobj -3850 0 obj -<< -/Length 1892 -/Filter /FlateDecode ->> -stream -x[Ɏ#7 +J}drKз  GR*J.{؍̸mF"}8u˧OxQzx^?&F̟a6I/_iPϿ~z>A37fE%ug+r+rc*4|gc[v7|9|_ox}r}yYG^W:Z吿s#|^f|[`<:ZQ^*Tܡ1o~Mc.Ȓ' j)J8{CȜGKL=rg%8UKlr'$yK5+\jYu&P')ߵ}!ȕՋf̵,:|226@6x`L_ I=iI0YW! -N^P5@n !g>-;;w W&ೱJe̅v"V3ɮwNlt(˂3yn/NXjA^3ʔ4H'Cn]Ek~OFTëq9qH^}F."nu)X*d7]F6G(x`׮Rܼ ܖyK)i,G/D+U$ovVY p.B\2k} -m3R@V׮(䧔 = -TgZ;(b|a<0k7 T$;]tֺؽZLmD)k3l'd71w_ )n<_\Jk==Fη_#/NZ뇼b`I~YMQ"'EY6J?# ַ )ř^y -;y%QfOkPB cLIt&=tL: `%VuБ~r/q]y~xl& ᤰW/<>"$G9]'\pF ţdfrQ js,D:ܲ(@g\ZcX |h0ϯ;TqV-V4BIiI-0v3O:oKū}|g[e]+i 6zK vZ -!2X$ ҔQ_9^EiF7`r^Βѱ Mf0ŋTz -(mWђϤ-4ih49l`@a-+؜VQ>0}) <+l0uj*)KYLz )y 1eeԎMM,?֖u6HxQkcLS̔"!t~[Q(!T!^x{_pmDe>?* -endstream -endobj -3987 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3988 0 obj -<< -/Subtype /Link -/A 3987 0 R -/Type /Annot -/Rect [72 697.5 536.291992 710] -/Border [0 0 0] ->> -endobj -3989 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3990 0 obj -<< -/Subtype /Link -/A 3989 0 R -/Type /Annot -/Rect [72 685 277.727539 697.5] -/Border [0 0 0] ->> -endobj -3991 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3992 0 obj -<< -/Subtype /Link -/A 3991 0 R -/Type /Annot -/Rect [72 663.687 99 675] -/Border [0 0 0] ->> -endobj -3993 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3994 0 obj -<< -/Subtype /Link -/A 3993 0 R -/Type /Annot -/Rect [99 663.687 104.4 675] -/Border [0 0 0] ->> -endobj -3995 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3996 0 obj -<< -/Subtype /Link -/A 3995 0 R -/Type /Annot -/Rect [104.4 663.687 131.4 675] -/Border [0 0 0] ->> -endobj -3997 0 obj -<< -/S /URI -/URI (false) ->> -endobj -3998 0 obj -<< -/Subtype /Link -/A 3997 0 R -/Type /Annot -/Rect [131.4 663.687 136.8 675] -/Border [0 0 0] ->> -endobj -3999 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4000 0 obj -<< -/Subtype /Link -/A 3999 0 R -/Type /Annot -/Rect [136.8 663.687 142.2 675] -/Border [0 0 0] ->> -endobj -4001 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4002 0 obj -<< -/Subtype /Link -/A 4001 0 R -/Type /Annot -/Rect [142.2 663.687 147.6 675] -/Border [0 0 0] ->> -endobj -4003 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4004 0 obj -<< -/Subtype /Link -/A 4003 0 R -/Type /Annot -/Rect [147.6 663.687 509.4 675] -/Border [0 0 0] ->> -endobj -4005 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4006 0 obj -<< -/Subtype /Link -/A 4005 0 R -/Type /Annot -/Rect [72 652.374 509.4 663.687] -/Border [0 0 0] ->> -endobj -4007 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4008 0 obj -<< -/Subtype /Link -/A 4007 0 R -/Type /Annot -/Rect [72 641.061 531 652.374] -/Border [0 0 0] ->> -endobj -4009 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4010 0 obj -<< -/Subtype /Link -/A 4009 0 R -/Type /Annot -/Rect [72 629.748 531 641.061] -/Border [0 0 0] ->> -endobj -4011 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4012 0 obj -<< -/Subtype /Link -/A 4011 0 R -/Type /Annot -/Rect [72 618.435 536.4 629.748] -/Border [0 0 0] ->> -endobj -4013 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4014 0 obj -<< -/Subtype /Link -/A 4013 0 R -/Type /Annot -/Rect [72 607.122 514.8 618.435] -/Border [0 0 0] ->> -endobj -4015 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4016 0 obj -<< -/Subtype /Link -/A 4015 0 R -/Type /Annot -/Rect [72 595.809 520.2 607.122] -/Border [0 0 0] ->> -endobj -4017 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4018 0 obj -<< -/Subtype /Link -/A 4017 0 R -/Type /Annot -/Rect [72 584.496 531 595.809] -/Border [0 0 0] ->> -endobj -4019 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4020 0 obj -<< -/Subtype /Link -/A 4019 0 R -/Type /Annot -/Rect [72 573.183 504 584.496] -/Border [0 0 0] ->> -endobj -4021 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4022 0 obj -<< -/Subtype /Link -/A 4021 0 R -/Type /Annot -/Rect [72 561.87 514.8 573.183] -/Border [0 0 0] ->> -endobj -4023 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4024 0 obj -<< -/Subtype /Link -/A 4023 0 R -/Type /Annot -/Rect [72 550.557 504 561.87] -/Border [0 0 0] ->> -endobj -4025 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4026 0 obj -<< -/Subtype /Link -/A 4025 0 R -/Type /Annot -/Rect [72 539.244 153 550.557] -/Border [0 0 0] ->> -endobj -4027 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4028 0 obj -<< -/Subtype /Link -/A 4027 0 R -/Type /Annot -/Rect [153 539.244 158.4 550.557] -/Border [0 0 0] ->> -endobj -4029 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4030 0 obj -<< -/Subtype /Link -/A 4029 0 R -/Type /Annot -/Rect [158.4 539.244 174.6 550.557] -/Border [0 0 0] ->> -endobj -4031 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4032 0 obj -<< -/Subtype /Link -/A 4031 0 R -/Type /Annot -/Rect [72 516.618 88.2 527.931] -/Border [0 0 0] ->> -endobj -4033 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4034 0 obj -<< -/Subtype /Link -/A 4033 0 R -/Type /Annot -/Rect [88.2 516.618 93.6 527.931] -/Border [0 0 0] ->> -endobj -4035 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4036 0 obj -<< -/Subtype /Link -/A 4035 0 R -/Type /Annot -/Rect [93.6 516.618 115.2 527.931] -/Border [0 0 0] ->> -endobj -4037 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4038 0 obj -<< -/Subtype /Link -/A 4037 0 R -/Type /Annot -/Rect [115.2 516.618 120.6 527.931] -/Border [0 0 0] ->> -endobj -4039 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4040 0 obj -<< -/Subtype /Link -/A 4039 0 R -/Type /Annot -/Rect [120.6 516.618 147.6 527.931] -/Border [0 0 0] ->> -endobj -4041 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4042 0 obj -<< -/Subtype /Link -/A 4041 0 R -/Type /Annot -/Rect [147.6 516.618 153 527.931] -/Border [0 0 0] ->> -endobj -4043 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4044 0 obj -<< -/Subtype /Link -/A 4043 0 R -/Type /Annot -/Rect [153 516.618 158.4 527.931] -/Border [0 0 0] ->> -endobj -4045 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4046 0 obj -<< -/Subtype /Link -/A 4045 0 R -/Type /Annot -/Rect [158.4 516.618 163.8 527.931] -/Border [0 0 0] ->> -endobj -4047 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4048 0 obj -<< -/Subtype /Link -/A 4047 0 R -/Type /Annot -/Rect [72 505.305 82.8 516.618] -/Border [0 0 0] ->> -endobj -4049 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4050 0 obj -<< -/Subtype /Link -/A 4049 0 R -/Type /Annot -/Rect [82.8 505.305 120.6 516.618] -/Border [0 0 0] ->> -endobj -4051 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4052 0 obj -<< -/Subtype /Link -/A 4051 0 R -/Type /Annot -/Rect [120.6 505.305 126 516.618] -/Border [0 0 0] ->> -endobj -4053 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4054 0 obj -<< -/Subtype /Link -/A 4053 0 R -/Type /Annot -/Rect [126 505.305 131.4 516.618] -/Border [0 0 0] ->> -endobj -4055 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4056 0 obj -<< -/Subtype /Link -/A 4055 0 R -/Type /Annot -/Rect [131.4 505.305 136.8 516.618] -/Border [0 0 0] ->> -endobj -4057 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4058 0 obj -<< -/Subtype /Link -/A 4057 0 R -/Type /Annot -/Rect [136.8 505.305 142.2 516.618] -/Border [0 0 0] ->> -endobj -4059 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4060 0 obj -<< -/Subtype /Link -/A 4059 0 R -/Type /Annot -/Rect [72 493.992 82.8 505.305] -/Border [0 0 0] ->> -endobj -4061 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4062 0 obj -<< -/Subtype /Link -/A 4061 0 R -/Type /Annot -/Rect [82.8 493.992 131.4 505.305] -/Border [0 0 0] ->> -endobj -4063 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4064 0 obj -<< -/Subtype /Link -/A 4063 0 R -/Type /Annot -/Rect [131.4 493.992 136.8 505.305] -/Border [0 0 0] ->> -endobj -4065 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4066 0 obj -<< -/Subtype /Link -/A 4065 0 R -/Type /Annot -/Rect [136.8 493.992 142.2 505.305] -/Border [0 0 0] ->> -endobj -4067 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4068 0 obj -<< -/Subtype /Link -/A 4067 0 R -/Type /Annot -/Rect [142.2 493.992 153 505.305] -/Border [0 0 0] ->> -endobj -4069 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4070 0 obj -<< -/Subtype /Link -/A 4069 0 R -/Type /Annot -/Rect [153 493.992 158.4 505.305] -/Border [0 0 0] ->> -endobj -4071 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4072 0 obj -<< -/Subtype /Link -/A 4071 0 R -/Type /Annot -/Rect [72 482.679 82.8 493.992] -/Border [0 0 0] ->> -endobj -4073 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4074 0 obj -<< -/Subtype /Link -/A 4073 0 R -/Type /Annot -/Rect [82.8 482.679 115.2 493.992] -/Border [0 0 0] ->> -endobj -4075 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4076 0 obj -<< -/Subtype /Link -/A 4075 0 R -/Type /Annot -/Rect [115.2 482.679 120.6 493.992] -/Border [0 0 0] ->> -endobj -4077 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4078 0 obj -<< -/Subtype /Link -/A 4077 0 R -/Type /Annot -/Rect [120.6 482.679 126 493.992] -/Border [0 0 0] ->> -endobj -4079 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4080 0 obj -<< -/Subtype /Link -/A 4079 0 R -/Type /Annot -/Rect [126 482.679 142.2 493.992] -/Border [0 0 0] ->> -endobj -4081 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4082 0 obj -<< -/Subtype /Link -/A 4081 0 R -/Type /Annot -/Rect [142.2 482.679 147.6 493.992] -/Border [0 0 0] ->> -endobj -4083 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4084 0 obj -<< -/Subtype /Link -/A 4083 0 R -/Type /Annot -/Rect [72 471.366 82.8 482.679] -/Border [0 0 0] ->> -endobj -4085 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4086 0 obj -<< -/Subtype /Link -/A 4085 0 R -/Type /Annot -/Rect [82.8 471.366 109.8 482.679] -/Border [0 0 0] ->> -endobj -4087 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4088 0 obj -<< -/Subtype /Link -/A 4087 0 R -/Type /Annot -/Rect [109.8 471.366 115.2 482.679] -/Border [0 0 0] ->> -endobj -4089 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4090 0 obj -<< -/Subtype /Link -/A 4089 0 R -/Type /Annot -/Rect [115.2 471.366 120.6 482.679] -/Border [0 0 0] ->> -endobj -4091 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4092 0 obj -<< -/Subtype /Link -/A 4091 0 R -/Type /Annot -/Rect [120.6 471.366 136.8 482.679] -/Border [0 0 0] ->> -endobj -4093 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4094 0 obj -<< -/Subtype /Link -/A 4093 0 R -/Type /Annot -/Rect [136.8 471.366 142.2 482.679] -/Border [0 0 0] ->> -endobj -4095 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4096 0 obj -<< -/Subtype /Link -/A 4095 0 R -/Type /Annot -/Rect [72 460.053 82.8 471.366] -/Border [0 0 0] ->> -endobj -4097 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4098 0 obj -<< -/Subtype /Link -/A 4097 0 R -/Type /Annot -/Rect [82.8 460.053 109.8 471.366] -/Border [0 0 0] ->> -endobj -4099 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4100 0 obj -<< -/Subtype /Link -/A 4099 0 R -/Type /Annot -/Rect [109.8 460.053 115.2 471.366] -/Border [0 0 0] ->> -endobj -4101 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4102 0 obj -<< -/Subtype /Link -/A 4101 0 R -/Type /Annot -/Rect [115.2 460.053 120.6 471.366] -/Border [0 0 0] ->> -endobj -4103 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4104 0 obj -<< -/Subtype /Link -/A 4103 0 R -/Type /Annot -/Rect [120.6 460.053 169.2 471.366] -/Border [0 0 0] ->> -endobj -4105 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4106 0 obj -<< -/Subtype /Link -/A 4105 0 R -/Type /Annot -/Rect [72 448.74 77.4 460.053] -/Border [0 0 0] ->> -endobj -4107 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4108 0 obj -<< -/Subtype /Link -/A 4107 0 R -/Type /Annot -/Rect [77.4 448.74 82.8 460.053] -/Border [0 0 0] ->> -endobj -4109 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4110 0 obj -<< -/Subtype /Link -/A 4109 0 R -/Type /Annot -/Rect [82.8 448.74 88.2 460.053] -/Border [0 0 0] ->> -endobj -4111 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4112 0 obj -<< -/Subtype /Link -/A 4111 0 R -/Type /Annot -/Rect [72 426.24 202.65918 438.74] -/Border [0 0 0] ->> -endobj -3986 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 3984 0 R -/Resources 3985 0 R -/Annots [3988 0 R 3990 0 R 3992 0 R 3994 0 R 3996 0 R 3998 0 R 4000 0 R 4002 0 R 4004 0 R 4006 0 R 4008 0 R 4010 0 R 4012 0 R 4014 0 R 4016 0 R 4018 0 R 4020 0 R 4022 0 R 4024 0 R 4026 0 R 4028 0 R 4030 0 R 4032 0 R 4034 0 R 4036 0 R 4038 0 R 4040 0 R 4042 0 R 4044 0 R 4046 0 R 4048 0 R 4050 0 R 4052 0 R 4054 0 R 4056 0 R 4058 0 R 4060 0 R 4062 0 R 4064 0 R 4066 0 R 4068 0 R 4070 0 R 4072 0 R 4074 0 R 4076 0 R 4078 0 R 4080 0 R 4082 0 R 4084 0 R 4086 0 R 4088 0 R 4090 0 R 4092 0 R 4094 0 R 4096 0 R 4098 0 R 4100 0 R 4102 0 R 4104 0 R 4106 0 R 4108 0 R 4110 0 R 4112 0 R] ->> -endobj -3985 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F3 9 0 R -/F5 29 0 R -/F1 3849 0 R ->> ->> -endobj -3984 0 obj -<< -/Length 2791 -/Filter /FlateDecode ->> -stream -x[Ɏ#WLs'am>Tk|cA3$%eC= L5T% V' WX?ϧo=oj"TOAJ;$1'%Oﷷ$*Le+Bye -SimږyW2WLUצe^Q9.8cQt9pϵ6]t`v0{Vr*ΈJ{z).ñR(" CŅ - ̣ 689˝kj'Yzj&K"oJ+`M` x2=A]#ju}ON',Fdy#=0w;T:B(+cdyQԔln, -c: CEtR,mUdQ @`Ga (9GxqhuAϻc,H'eUٻʏDbMrЭh\'[ 'E8qI^uL}ZTK?9AxjݎPqaS \VrEn%Zea=9ꍖS@Оz,0)I>3ӋGثs8=v\ nR;b2GkʆbtA t"/-5Չ]'UT;o3ӦkKaW?5@EQ@*0J:GYQ1=ʜ&_iY#ʺY -3l03Kz_ƽ5C:ƍ -ځlw%'j#[QemÌ䶸Qh^'|: - -@&odor-eA6⥃m -?Lɀc0g>V6Nu1@ P_ed3Odk=8kƮAn :!376`o(:*g?N"7C^۾EvnEKyϼM!tK$x9IS8|Q5)_*|l= x2?7R!-[âY{S<~Vogr(άs™5^ɟC-D˟Ddsda :g1G0<~7[cp~>7ⅵ pSdg:yP{e_́L8o>}*7xxyJ2f%L#I`-&~Q<69rˉ?{3C\-O?%YHMہ\aQMiVuutwq׮”0B 0M#ڣ"Nd "Hʢr~9w
5hyN5ZAI3_{T2U%-`rr敊 k\S+м#ͻ TK׆=Jj#ڐeSD~Ma!W4ӸzѹyMEm=J)-0sՖb?hegyHs5JF7IMHC[czVYV\RaOupI ,Wk*Lو,Pz3*~"ɩا$V-1o BcJ . CJqΛG^Sj{VOa5RPq%1ښ5B6wo9{Z!Q \;4| j G*f#dnխ۬s,MP SܰM$`4m3>%K 9vW̨>uYWE NdՋW*.J!3*ڧԎ͹DLťlTڡbInn b` WJڴOa]3.9y71@ $v"֨mV{ZYge#-Iᄞ U~wM"p.0E}))17_d2m6hT{$ r_66Sڷw%bk}hE3oб5ޭ5'jSn|eHAe=#4κt[;v3>E81XEV ֶ/?>[_rf~jO)Ћ37E;(AEQ?6EMEMS9TV>%v|Ue{ӲrtĮy? -endstream -endobj -4117 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4118 0 obj -<< -/Subtype /Link -/A 4117 0 R -/Type /Annot -/Rect [72 695.502 220.698 720] -/Border [0 0 0] ->> -endobj -4119 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4120 0 obj -<< -/Subtype /Link -/A 4119 0 R -/Type /Annot -/Rect [72 673.002 538.303711 685.502] -/Border [0 0 0] ->> -endobj -4121 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4122 0 obj -<< -/Subtype /Link -/A 4121 0 R -/Type /Annot -/Rect [72 660.502 363.479492 673.002] -/Border [0 0 0] ->> -endobj -4123 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4124 0 obj -<< -/Subtype /Link -/A 4123 0 R -/Type /Annot -/Rect [363.479492 660.432 531.479492 673.002] -/Border [0 0 0] ->> -endobj -4125 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4126 0 obj -<< -/Subtype /Link -/A 4125 0 R -/Type /Annot -/Rect [531.479492 660.502 536.586914 673.002] -/Border [0 0 0] ->> -endobj -4127 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4128 0 obj -<< -/Subtype /Link -/A 4127 0 R -/Type /Annot -/Rect [72 648.002 93.157227 660.502] -/Border [0 0 0] ->> -endobj -4129 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4130 0 obj -<< -/Subtype /Link -/A 4129 0 R -/Type /Annot -/Rect [93.157227 647.932 267.157227 660.502] -/Border [0 0 0] ->> -endobj -4131 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4132 0 obj -<< -/Subtype /Link -/A 4131 0 R -/Type /Annot -/Rect [267.157227 648.002 539.442383 660.502] -/Border [0 0 0] ->> -endobj -4133 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4134 0 obj -<< -/Subtype /Link -/A 4133 0 R -/Type /Annot -/Rect [72 635.502 422.751953 648.002] -/Border [0 0 0] ->> -endobj -4115 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 4113 0 R -/Resources 4114 0 R -/Annots [4118 0 R 4120 0 R 4122 0 R 4124 0 R 4126 0 R 4128 0 R 4130 0 R 4132 0 R 4134 0 R] ->> -endobj -4114 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R ->> ->> -endobj -4113 0 obj -<< -/Length 565 -/Filter /FlateDecode ->> -stream -xUn0 +݈,@C@n-|+zA|Ziž$E )w|j?[5>5:Ƈ污FRtĪI>YEAKtMx+6)(b[}m'A謹o>͗@;(҂P5IDL bo(Ud3vF>[r%NaLe(ʟv9ܹ;027Z1xL1_T*Vmʉ*m c'(;)O -,eT3:uŤ#BUYQA*^bq\a*_3j<&Ji}g*9XWTzRXf\afֹdV5օo5T:k酙1ߪ2]F9nZ}rGI-a7f/ɉhI=Bsr}?,\5:sP12yF1ag2G6 ǭ^2ՄaH!{R.&F܌;GxC\^3Ņ+W]x -+Ҭ -endstream -endobj -4139 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4140 0 obj -<< -/Subtype /Link -/A 4139 0 R -/Type /Annot -/Rect [72 695.502 107.532 720] -/Border [0 0 0] ->> -endobj -4141 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4142 0 obj -<< -/Subtype /Link -/A 4141 0 R -/Type /Annot -/Rect [72 673.002 93.201172 685.502] -/Border [0 0 0] ->> -endobj -4143 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4144 0 obj -<< -/Subtype /Link -/A 4143 0 R -/Type /Annot -/Rect [93.201172 672.932 117.201172 685.502] -/Border [0 0 0] ->> -endobj -4145 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4146 0 obj -<< -/Subtype /Link -/A 4145 0 R -/Type /Annot -/Rect [117.201172 673.002 533.119141 685.502] -/Border [0 0 0] ->> -endobj -4147 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4148 0 obj -<< -/Subtype /Link -/A 4147 0 R -/Type /Annot -/Rect [72 660.502 116.399414 673.002] -/Border [0 0 0] ->> -endobj -4149 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4150 0 obj -<< -/Subtype /Link -/A 4149 0 R -/Type /Annot -/Rect [116.399414 660.432 122.399414 673.002] -/Border [0 0 0] ->> -endobj -4151 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4152 0 obj -<< -/Subtype /Link -/A 4151 0 R -/Type /Annot -/Rect [122.399414 660.502 128.297852 673.002] -/Border [0 0 0] ->> -endobj -4153 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4154 0 obj -<< -/Subtype /Link -/A 4153 0 R -/Type /Annot -/Rect [128.297852 660.432 134.297852 673.002] -/Border [0 0 0] ->> -endobj -4155 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4156 0 obj -<< -/Subtype /Link -/A 4155 0 R -/Type /Annot -/Rect [134.297852 660.502 527.544922 673.002] -/Border [0 0 0] ->> -endobj -4157 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4158 0 obj -<< -/Subtype /Link -/A 4157 0 R -/Type /Annot -/Rect [72 648.002 257.751953 660.502] -/Border [0 0 0] ->> -endobj -4159 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4160 0 obj -<< -/Subtype /Link -/A 4159 0 R -/Type /Annot -/Rect [72 625.432 144 638.002] -/Border [0 0 0] ->> -endobj -4161 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4162 0 obj -<< -/Subtype /Link -/A 4161 0 R -/Type /Annot -/Rect [72 606.862 132 619.432] -/Border [0 0 0] ->> -endobj -4163 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4164 0 obj -<< -/Subtype /Link -/A 4163 0 R -/Type /Annot -/Rect [72 588.292 144 600.862] -/Border [0 0 0] ->> -endobj -4137 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 4135 0 R -/Resources 4136 0 R -/Annots [4140 0 R 4142 0 R 4144 0 R 4146 0 R 4148 0 R 4150 0 R 4152 0 R 4154 0 R 4156 0 R 4158 0 R 4160 0 R 4162 0 R 4164 0 R] ->> -endobj -4136 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R ->> ->> -endobj -4135 0 obj -<< -/Length 498 -/Filter /FlateDecode ->> -stream -xTˎ0 +dl-!فC,.^Hh~i"ܤy>F{t|]֏> -endobj -4170 0 obj -<< -/Subtype /Link -/A 4169 0 R -/Type /Annot -/Rect [72 695.502 143.046 720] -/Border [0 0 0] ->> -endobj -4171 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4172 0 obj -<< -/Subtype /Link -/A 4171 0 R -/Type /Annot -/Rect [72 673.002 428.928711 685.502] -/Border [0 0 0] ->> -endobj -4173 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4174 0 obj -<< -/Subtype /Link -/A 4173 0 R -/Type /Annot -/Rect [428.928711 672.932 482.928711 685.502] -/Border [0 0 0] ->> -endobj -4175 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4176 0 obj -<< -/Subtype /Link -/A 4175 0 R -/Type /Annot -/Rect [482.928711 673.002 524.330078 685.502] -/Border [0 0 0] ->> -endobj -4177 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4178 0 obj -<< -/Subtype /Link -/A 4177 0 R -/Type /Annot -/Rect [72 660.502 414.978516 673.002] -/Border [0 0 0] ->> -endobj -4179 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4180 0 obj -<< -/Subtype /Link -/A 4179 0 R -/Type /Annot -/Rect [414.978516 660.432 438.978516 673.002] -/Border [0 0 0] ->> -endobj -4181 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4182 0 obj -<< -/Subtype /Link -/A 4181 0 R -/Type /Annot -/Rect [438.978516 660.502 519.588867 673.002] -/Border [0 0 0] ->> -endobj -4183 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4184 0 obj -<< -/Subtype /Link -/A 4183 0 R -/Type /Annot -/Rect [72 648.002 510.564453 660.502] -/Border [0 0 0] ->> -endobj -4185 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4186 0 obj -<< -/Subtype /Link -/A 4185 0 R -/Type /Annot -/Rect [72 635.502 152.9375 648.002] -/Border [0 0 0] ->> -endobj -4187 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4188 0 obj -<< -/Subtype /Link -/A 4187 0 R -/Type /Annot -/Rect [72 613.002 219.480469 625.502] -/Border [0 0 0] ->> -endobj -4189 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4190 0 obj -<< -/Subtype /Link -/A 4189 0 R -/Type /Annot -/Rect [219.480469 612.932 243.480469 625.502] -/Border [0 0 0] ->> -endobj -4191 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4192 0 obj -<< -/Subtype /Link -/A 4191 0 R -/Type /Annot -/Rect [243.480469 613.002 490.833984 625.502] -/Border [0 0 0] ->> -endobj -4193 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4194 0 obj -<< -/Subtype /Link -/A 4193 0 R -/Type /Annot -/Rect [72 600.362 126 612.932] -/Border [0 0 0] ->> -endobj -4195 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4196 0 obj -<< -/Subtype /Link -/A 4195 0 R -/Type /Annot -/Rect [126 600.432 489.491211 612.932] -/Border [0 0 0] ->> -endobj -4197 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4198 0 obj -<< -/Subtype /Link -/A 4197 0 R -/Type /Annot -/Rect [489.491211 600.362 519.491211 612.932] -/Border [0 0 0] ->> -endobj -4199 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4200 0 obj -<< -/Subtype /Link -/A 4199 0 R -/Type /Annot -/Rect [72 587.932 180.237305 600.432] -/Border [0 0 0] ->> -endobj -4201 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4202 0 obj -<< -/Subtype /Link -/A 4201 0 R -/Type /Annot -/Rect [180.237305 587.862 204.237305 600.432] -/Border [0 0 0] ->> -endobj -4203 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4204 0 obj -<< -/Subtype /Link -/A 4203 0 R -/Type /Annot -/Rect [204.237305 587.932 374.144531 600.432] -/Border [0 0 0] ->> -endobj -4205 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4206 0 obj -<< -/Subtype /Link -/A 4205 0 R -/Type /Annot -/Rect [72 566.619 88.2 577.932] -/Border [0 0 0] ->> -endobj -4207 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4208 0 obj -<< -/Subtype /Link -/A 4207 0 R -/Type /Annot -/Rect [88.2 566.619 93.6 577.932] -/Border [0 0 0] ->> -endobj -4209 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4210 0 obj -<< -/Subtype /Link -/A 4209 0 R -/Type /Annot -/Rect [93.6 566.619 142.2 577.932] -/Border [0 0 0] ->> -endobj -4211 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4212 0 obj -<< -/Subtype /Link -/A 4211 0 R -/Type /Annot -/Rect [142.2 566.619 147.6 577.932] -/Border [0 0 0] ->> -endobj -4213 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4214 0 obj -<< -/Subtype /Link -/A 4213 0 R -/Type /Annot -/Rect [147.6 566.619 185.4 577.932] -/Border [0 0 0] ->> -endobj -4215 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4216 0 obj -<< -/Subtype /Link -/A 4215 0 R -/Type /Annot -/Rect [185.4 566.619 190.8 577.932] -/Border [0 0 0] ->> -endobj -4217 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4218 0 obj -<< -/Subtype /Link -/A 4217 0 R -/Type /Annot -/Rect [72 555.306 88.2 566.619] -/Border [0 0 0] ->> -endobj -4219 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4220 0 obj -<< -/Subtype /Link -/A 4219 0 R -/Type /Annot -/Rect [88.2 555.306 93.6 566.619] -/Border [0 0 0] ->> -endobj -4221 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4222 0 obj -<< -/Subtype /Link -/A 4221 0 R -/Type /Annot -/Rect [93.6 555.306 115.2 566.619] -/Border [0 0 0] ->> -endobj -4223 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4224 0 obj -<< -/Subtype /Link -/A 4223 0 R -/Type /Annot -/Rect [115.2 555.306 120.6 566.619] -/Border [0 0 0] ->> -endobj -4225 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4226 0 obj -<< -/Subtype /Link -/A 4225 0 R -/Type /Annot -/Rect [120.6 555.306 147.6 566.619] -/Border [0 0 0] ->> -endobj -4227 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4228 0 obj -<< -/Subtype /Link -/A 4227 0 R -/Type /Annot -/Rect [147.6 555.306 153 566.619] -/Border [0 0 0] ->> -endobj -4229 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4230 0 obj -<< -/Subtype /Link -/A 4229 0 R -/Type /Annot -/Rect [153 555.306 180 566.619] -/Border [0 0 0] ->> -endobj -4231 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4232 0 obj -<< -/Subtype /Link -/A 4231 0 R -/Type /Annot -/Rect [180 555.306 185.4 566.619] -/Border [0 0 0] ->> -endobj -4233 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4234 0 obj -<< -/Subtype /Link -/A 4233 0 R -/Type /Annot -/Rect [185.4 555.306 190.8 566.619] -/Border [0 0 0] ->> -endobj -4235 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4236 0 obj -<< -/Subtype /Link -/A 4235 0 R -/Type /Annot -/Rect [190.8 555.306 196.2 566.619] -/Border [0 0 0] ->> -endobj -4237 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4238 0 obj -<< -/Subtype /Link -/A 4237 0 R -/Type /Annot -/Rect [196.2 555.306 201.6 566.619] -/Border [0 0 0] ->> -endobj -4239 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4240 0 obj -<< -/Subtype /Link -/A 4239 0 R -/Type /Annot -/Rect [201.6 555.306 217.8 566.619] -/Border [0 0 0] ->> -endobj -4241 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4242 0 obj -<< -/Subtype /Link -/A 4241 0 R -/Type /Annot -/Rect [217.8 555.306 223.2 566.619] -/Border [0 0 0] ->> -endobj -4243 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4244 0 obj -<< -/Subtype /Link -/A 4243 0 R -/Type /Annot -/Rect [223.2 555.306 228.6 566.619] -/Border [0 0 0] ->> -endobj -4245 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4246 0 obj -<< -/Subtype /Link -/A 4245 0 R -/Type /Annot -/Rect [228.6 555.306 234 566.619] -/Border [0 0 0] ->> -endobj -4247 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4248 0 obj -<< -/Subtype /Link -/A 4247 0 R -/Type /Annot -/Rect [234 555.306 239.4 566.619] -/Border [0 0 0] ->> -endobj -4249 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4250 0 obj -<< -/Subtype /Link -/A 4249 0 R -/Type /Annot -/Rect [72 543.993 99 555.306] -/Border [0 0 0] ->> -endobj -4251 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4252 0 obj -<< -/Subtype /Link -/A 4251 0 R -/Type /Annot -/Rect [99 543.993 126 555.306] -/Border [0 0 0] ->> -endobj -4253 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4254 0 obj -<< -/Subtype /Link -/A 4253 0 R -/Type /Annot -/Rect [126 543.993 131.4 555.306] -/Border [0 0 0] ->> -endobj -4255 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4256 0 obj -<< -/Subtype /Link -/A 4255 0 R -/Type /Annot -/Rect [131.4 543.993 136.8 555.306] -/Border [0 0 0] ->> -endobj -4257 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4258 0 obj -<< -/Subtype /Link -/A 4257 0 R -/Type /Annot -/Rect [136.8 543.993 153 555.306] -/Border [0 0 0] ->> -endobj -4259 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4260 0 obj -<< -/Subtype /Link -/A 4259 0 R -/Type /Annot -/Rect [153 543.993 158.4 555.306] -/Border [0 0 0] ->> -endobj -4261 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4262 0 obj -<< -/Subtype /Link -/A 4261 0 R -/Type /Annot -/Rect [72 532.68 99 543.993] -/Border [0 0 0] ->> -endobj -4263 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4264 0 obj -<< -/Subtype /Link -/A 4263 0 R -/Type /Annot -/Rect [99 532.68 147.6 543.993] -/Border [0 0 0] ->> -endobj -4265 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4266 0 obj -<< -/Subtype /Link -/A 4265 0 R -/Type /Annot -/Rect [147.6 532.68 153 543.993] -/Border [0 0 0] ->> -endobj -4267 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4268 0 obj -<< -/Subtype /Link -/A 4267 0 R -/Type /Annot -/Rect [153 532.68 158.4 543.993] -/Border [0 0 0] ->> -endobj -4269 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4270 0 obj -<< -/Subtype /Link -/A 4269 0 R -/Type /Annot -/Rect [158.4 532.68 180 543.993] -/Border [0 0 0] ->> -endobj -4271 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4272 0 obj -<< -/Subtype /Link -/A 4271 0 R -/Type /Annot -/Rect [72 521.367 88.2 532.68] -/Border [0 0 0] ->> -endobj -4273 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4274 0 obj -<< -/Subtype /Link -/A 4273 0 R -/Type /Annot -/Rect [88.2 521.367 93.6 532.68] -/Border [0 0 0] ->> -endobj -4275 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4276 0 obj -<< -/Subtype /Link -/A 4275 0 R -/Type /Annot -/Rect [93.6 521.367 99 532.68] -/Border [0 0 0] ->> -endobj -4277 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4278 0 obj -<< -/Subtype /Link -/A 4277 0 R -/Type /Annot -/Rect [99 521.367 104.4 532.68] -/Border [0 0 0] ->> -endobj -4279 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4280 0 obj -<< -/Subtype /Link -/A 4279 0 R -/Type /Annot -/Rect [104.4 521.367 153 532.68] -/Border [0 0 0] ->> -endobj -4281 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4282 0 obj -<< -/Subtype /Link -/A 4281 0 R -/Type /Annot -/Rect [153 521.367 158.4 532.68] -/Border [0 0 0] ->> -endobj -4283 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4284 0 obj -<< -/Subtype /Link -/A 4283 0 R -/Type /Annot -/Rect [158.4 521.367 185.4 532.68] -/Border [0 0 0] ->> -endobj -4285 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4286 0 obj -<< -/Subtype /Link -/A 4285 0 R -/Type /Annot -/Rect [185.4 521.367 190.8 532.68] -/Border [0 0 0] ->> -endobj -4287 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4288 0 obj -<< -/Subtype /Link -/A 4287 0 R -/Type /Annot -/Rect [72 510.054 88.2 521.367] -/Border [0 0 0] ->> -endobj -4289 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4290 0 obj -<< -/Subtype /Link -/A 4289 0 R -/Type /Annot -/Rect [88.2 510.054 93.6 521.367] -/Border [0 0 0] ->> -endobj -4291 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4292 0 obj -<< -/Subtype /Link -/A 4291 0 R -/Type /Annot -/Rect [93.6 510.054 115.2 521.367] -/Border [0 0 0] ->> -endobj -4293 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4294 0 obj -<< -/Subtype /Link -/A 4293 0 R -/Type /Annot -/Rect [115.2 510.054 120.6 521.367] -/Border [0 0 0] ->> -endobj -4295 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4296 0 obj -<< -/Subtype /Link -/A 4295 0 R -/Type /Annot -/Rect [120.6 510.054 147.6 521.367] -/Border [0 0 0] ->> -endobj -4297 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4298 0 obj -<< -/Subtype /Link -/A 4297 0 R -/Type /Annot -/Rect [147.6 510.054 153 521.367] -/Border [0 0 0] ->> -endobj -4299 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4300 0 obj -<< -/Subtype /Link -/A 4299 0 R -/Type /Annot -/Rect [153 510.054 180 521.367] -/Border [0 0 0] ->> -endobj -4301 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4302 0 obj -<< -/Subtype /Link -/A 4301 0 R -/Type /Annot -/Rect [180 510.054 185.4 521.367] -/Border [0 0 0] ->> -endobj -4303 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4304 0 obj -<< -/Subtype /Link -/A 4303 0 R -/Type /Annot -/Rect [185.4 510.054 201.6 521.367] -/Border [0 0 0] ->> -endobj -4305 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4306 0 obj -<< -/Subtype /Link -/A 4305 0 R -/Type /Annot -/Rect [201.6 510.054 207 521.367] -/Border [0 0 0] ->> -endobj -4307 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4308 0 obj -<< -/Subtype /Link -/A 4307 0 R -/Type /Annot -/Rect [207 510.054 212.4 521.367] -/Border [0 0 0] ->> -endobj -4309 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4310 0 obj -<< -/Subtype /Link -/A 4309 0 R -/Type /Annot -/Rect [212.4 510.054 217.8 521.367] -/Border [0 0 0] ->> -endobj -4311 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4312 0 obj -<< -/Subtype /Link -/A 4311 0 R -/Type /Annot -/Rect [72 487.554 165.745117 500.054] -/Border [0 0 0] ->> -endobj -4167 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 4165 0 R -/Resources 4166 0 R -/Annots [4170 0 R 4172 0 R 4174 0 R 4176 0 R 4178 0 R 4180 0 R 4182 0 R 4184 0 R 4186 0 R 4188 0 R 4190 0 R 4192 0 R 4194 0 R 4196 0 R 4198 0 R 4200 0 R 4202 0 R 4204 0 R 4206 0 R 4208 0 R 4210 0 R 4212 0 R 4214 0 R 4216 0 R 4218 0 R 4220 0 R 4222 0 R 4224 0 R 4226 0 R 4228 0 R 4230 0 R 4232 0 R 4234 0 R 4236 0 R 4238 0 R 4240 0 R 4242 0 R 4244 0 R 4246 0 R 4248 0 R 4250 0 R 4252 0 R 4254 0 R 4256 0 R 4258 0 R 4260 0 R 4262 0 R 4264 0 R 4266 0 R 4268 0 R 4270 0 R 4272 0 R 4274 0 R 4276 0 R 4278 0 R 4280 0 R 4282 0 R 4284 0 R 4286 0 R 4288 0 R 4290 0 R 4292 0 R 4294 0 R 4296 0 R 4298 0 R 4300 0 R 4302 0 R 4304 0 R 4306 0 R 4308 0 R 4310 0 R 4312 0 R] ->> -endobj -4166 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R -/F1 3849 0 R ->> ->> -endobj -4165 0 obj -<< -/Length 2118 -/Filter /FlateDecode ->> -stream -xZˎ6+Ql -܂ t7IEYȏJ#dEw9?o?ivJ;g~H -ZN~2 M)WJH:jGGMQ4~?8Z>"ԀGVK?uSFxO-A)v%}S;)@Ǐr[$Ϟ6 -!my?$dz$AH*Zx3_pBu[7`ctsY6\ -e1t߫+FvPq2VS]i;,8af"2dT 娳L$dUEroUysSA־(B5ɏpW LBYe;{3ce EU~xLHF9+Kb``X~uj먛ĬY)ԅŰK}a285A kΡ .IOԐLYK5url sm!:c{ZM kLx6&ii6ۡ[!5cCbaaP_ՙ"rh`r]ag/yަ̣D@sWfӨ̔HV-ia3b~VGei )3۬e9ʅ~0؋hh6VuAaxgJuUEl $:QBp8%w+F;Lm9@@8ښD̑|c j:I_2S"Ku#^b/5= [xޓmH\6q9p[z -ylW<9k$wrrԀt5pGg@H{czWgUK}qąS͛VZ]^ȱ NS|ol佱tfK~F P:&Zq wHJ ϧHgsjtd-zk_*̈́YGa %,Yt QVfM ܐ[5?0D+F@vFFhL[O{&{WlAysyi3<aCGApgZ(x4 \; J4Iw 7J ULzq8 0CC2<:? b ripZly RI|#ִ݄SN%JD`&*y`PfJ bKcC6ljzzny$"X;1$zcϧ5vZ_P{!+;L3N,9 ہջTLh8g]"K̞5fQEwhiR1S `D~䙍xc$D.r -™$uP,ًg1נkaG&RɒI♚rvc6YGẇȯ`tr},Mcɳ"ѶYS8xL2meg1ݥ&W[n$oj._LU?;i -endstream -endobj -4317 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4318 0 obj -<< -/Subtype /Link -/A 4317 0 R -/Type /Annot -/Rect [72 695.502 113.418 720] -/Border [0 0 0] ->> -endobj -4319 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4320 0 obj -<< -/Subtype /Link -/A 4319 0 R -/Type /Annot -/Rect [72 673.002 498.669922 685.502] -/Border [0 0 0] ->> -endobj -4321 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4322 0 obj -<< -/Subtype /Link -/A 4321 0 R -/Type /Annot -/Rect [72 660.502 513.166992 673.002] -/Border [0 0 0] ->> -endobj -4323 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4324 0 obj -<< -/Subtype /Link -/A 4323 0 R -/Type /Annot -/Rect [72 648.002 526.360352 660.502] -/Border [0 0 0] ->> -endobj -4325 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4326 0 obj -<< -/Subtype /Link -/A 4325 0 R -/Type /Annot -/Rect [72 635.502 234.973633 648.002] -/Border [0 0 0] ->> -endobj -4327 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4328 0 obj -<< -/Subtype /Link -/A 4327 0 R -/Type /Annot -/Rect [234.973633 635.432 258.973633 648.002] -/Border [0 0 0] ->> -endobj -4329 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4330 0 obj -<< -/Subtype /Link -/A 4329 0 R -/Type /Annot -/Rect [258.973633 635.502 452.660156 648.002] -/Border [0 0 0] ->> -endobj -4331 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4332 0 obj -<< -/Subtype /Link -/A 4331 0 R -/Type /Annot -/Rect [72 612.932 126 625.502] -/Border [0 0 0] ->> -endobj -4333 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4334 0 obj -<< -/Subtype /Link -/A 4333 0 R -/Type /Annot -/Rect [72 594.362 156 606.932] -/Border [0 0 0] ->> -endobj -4335 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4336 0 obj -<< -/Subtype /Link -/A 4335 0 R -/Type /Annot -/Rect [72 575.792 174 588.362] -/Border [0 0 0] ->> -endobj -4337 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4338 0 obj -<< -/Subtype /Link -/A 4337 0 R -/Type /Annot -/Rect [72 557.222 198 569.792] -/Border [0 0 0] ->> -endobj -4339 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4340 0 obj -<< -/Subtype /Link -/A 4339 0 R -/Type /Annot -/Rect [72 538.652 138 551.222] -/Border [0 0 0] ->> -endobj -4341 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4342 0 obj -<< -/Subtype /Link -/A 4341 0 R -/Type /Annot -/Rect [72 520.082 168 532.652] -/Border [0 0 0] ->> -endobj -4343 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4344 0 obj -<< -/Subtype /Link -/A 4343 0 R -/Type /Annot -/Rect [72 501.512 186 514.082] -/Border [0 0 0] ->> -endobj -4345 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4346 0 obj -<< -/Subtype /Link -/A 4345 0 R -/Type /Annot -/Rect [72 482.942 210 495.512] -/Border [0 0 0] ->> -endobj -4347 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4348 0 obj -<< -/Subtype /Link -/A 4347 0 R -/Type /Annot -/Rect [72 464.372 120 476.942] -/Border [0 0 0] ->> -endobj -4349 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4350 0 obj -<< -/Subtype /Link -/A 4349 0 R -/Type /Annot -/Rect [72 445.802 150 458.372] -/Border [0 0 0] ->> -endobj -4351 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4352 0 obj -<< -/Subtype /Link -/A 4351 0 R -/Type /Annot -/Rect [72 427.232 144 439.802] -/Border [0 0 0] ->> -endobj -4353 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4354 0 obj -<< -/Subtype /Link -/A 4353 0 R -/Type /Annot -/Rect [72 408.662 156 421.232] -/Border [0 0 0] ->> -endobj -4355 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4356 0 obj -<< -/Subtype /Link -/A 4355 0 R -/Type /Annot -/Rect [72 390.092 180 402.662] -/Border [0 0 0] ->> -endobj -4357 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4358 0 obj -<< -/Subtype /Link -/A 4357 0 R -/Type /Annot -/Rect [72 371.522 156 384.092] -/Border [0 0 0] ->> -endobj -4359 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4360 0 obj -<< -/Subtype /Link -/A 4359 0 R -/Type /Annot -/Rect [72 343.022 519.602539 355.522] -/Border [0 0 0] ->> -endobj -4361 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4362 0 obj -<< -/Subtype /Link -/A 4361 0 R -/Type /Annot -/Rect [72 330.522 182.615234 343.022] -/Border [0 0 0] ->> -endobj -4363 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4364 0 obj -<< -/Subtype /Link -/A 4363 0 R -/Type /Annot -/Rect [182.615234 330.452 206.615234 343.022] -/Border [0 0 0] ->> -endobj -4365 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4366 0 obj -<< -/Subtype /Link -/A 4365 0 R -/Type /Annot -/Rect [206.615234 330.522 272.870117 343.022] -/Border [0 0 0] ->> -endobj -4367 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4368 0 obj -<< -/Subtype /Link -/A 4367 0 R -/Type /Annot -/Rect [272.870117 330.452 296.870117 343.022] -/Border [0 0 0] ->> -endobj -4369 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4370 0 obj -<< -/Subtype /Link -/A 4369 0 R -/Type /Annot -/Rect [296.870117 330.522 489.882813 343.022] -/Border [0 0 0] ->> -endobj -4371 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4372 0 obj -<< -/Subtype /Link -/A 4371 0 R -/Type /Annot -/Rect [489.882813 330.452 513.882813 343.022] -/Border [0 0 0] ->> -endobj -4373 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4374 0 obj -<< -/Subtype /Link -/A 4373 0 R -/Type /Annot -/Rect [513.882813 330.522 523.750977 343.022] -/Border [0 0 0] ->> -endobj -4375 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4376 0 obj -<< -/Subtype /Link -/A 4375 0 R -/Type /Annot -/Rect [72 318.022 191.887695 330.522] -/Border [0 0 0] ->> -endobj -4377 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4378 0 obj -<< -/Subtype /Link -/A 4377 0 R -/Type /Annot -/Rect [191.887695 317.952 227.887695 330.522] -/Border [0 0 0] ->> -endobj -4379 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4380 0 obj -<< -/Subtype /Link -/A 4379 0 R -/Type /Annot -/Rect [227.887695 318.022 264.098633 330.522] -/Border [0 0 0] ->> -endobj -4381 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4382 0 obj -<< -/Subtype /Link -/A 4381 0 R -/Type /Annot -/Rect [72 295.522 328.113281 308.022] -/Border [0 0 0] ->> -endobj -4383 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4384 0 obj -<< -/Subtype /Link -/A 4383 0 R -/Type /Annot -/Rect [328.113281 295.452 352.113281 308.022] -/Border [0 0 0] ->> -endobj -4385 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4386 0 obj -<< -/Subtype /Link -/A 4385 0 R -/Type /Annot -/Rect [352.113281 295.522 533.661133 308.022] -/Border [0 0 0] ->> -endobj -4387 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4388 0 obj -<< -/Subtype /Link -/A 4387 0 R -/Type /Annot -/Rect [72 283.022 249.783203 295.522] -/Border [0 0 0] ->> -endobj -4389 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4390 0 obj -<< -/Subtype /Link -/A 4389 0 R -/Type /Annot -/Rect [249.783203 282.952 273.783203 295.522] -/Border [0 0 0] ->> -endobj -4391 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4392 0 obj -<< -/Subtype /Link -/A 4391 0 R -/Type /Annot -/Rect [273.783203 283.022 539.037109 295.522] -/Border [0 0 0] ->> -endobj -4393 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4394 0 obj -<< -/Subtype /Link -/A 4393 0 R -/Type /Annot -/Rect [72 270.522 80.144531 283.022] -/Border [0 0 0] ->> -endobj -4395 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4396 0 obj -<< -/Subtype /Link -/A 4395 0 R -/Type /Annot -/Rect [80.144531 270.452 116.144531 283.022] -/Border [0 0 0] ->> -endobj -4397 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4398 0 obj -<< -/Subtype /Link -/A 4397 0 R -/Type /Annot -/Rect [116.144531 270.522 397.228516 283.022] -/Border [0 0 0] ->> -endobj -4399 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4400 0 obj -<< -/Subtype /Link -/A 4399 0 R -/Type /Annot -/Rect [397.228516 270.452 421.228516 283.022] -/Border [0 0 0] ->> -endobj -4401 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4402 0 obj -<< -/Subtype /Link -/A 4401 0 R -/Type /Annot -/Rect [421.228516 270.522 444.939453 283.022] -/Border [0 0 0] ->> -endobj -4403 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4404 0 obj -<< -/Subtype /Link -/A 4403 0 R -/Type /Annot -/Rect [444.939453 270.452 480.939453 283.022] -/Border [0 0 0] ->> -endobj -4405 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4406 0 obj -<< -/Subtype /Link -/A 4405 0 R -/Type /Annot -/Rect [480.939453 270.522 514.899414 283.022] -/Border [0 0 0] ->> -endobj -4407 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4408 0 obj -<< -/Subtype /Link -/A 4407 0 R -/Type /Annot -/Rect [72 258.022 521.453125 270.522] -/Border [0 0 0] ->> -endobj -4409 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4410 0 obj -<< -/Subtype /Link -/A 4409 0 R -/Type /Annot -/Rect [72 245.522 273.75293 258.022] -/Border [0 0 0] ->> -endobj -4411 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4412 0 obj -<< -/Subtype /Link -/A 4411 0 R -/Type /Annot -/Rect [72 223.022 374.431641 235.522] -/Border [0 0 0] ->> -endobj -4413 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4414 0 obj -<< -/Subtype /Link -/A 4413 0 R -/Type /Annot -/Rect [72 201.709 180 213.022] -/Border [0 0 0] ->> -endobj -4415 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4416 0 obj -<< -/Subtype /Link -/A 4415 0 R -/Type /Annot -/Rect [72 190.396 88.2 201.709] -/Border [0 0 0] ->> -endobj -4417 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4418 0 obj -<< -/Subtype /Link -/A 4417 0 R -/Type /Annot -/Rect [88.2 190.396 93.6 201.709] -/Border [0 0 0] ->> -endobj -4419 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4420 0 obj -<< -/Subtype /Link -/A 4419 0 R -/Type /Annot -/Rect [93.6 190.396 136.8 201.709] -/Border [0 0 0] ->> -endobj -4421 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4422 0 obj -<< -/Subtype /Link -/A 4421 0 R -/Type /Annot -/Rect [136.8 190.396 142.2 201.709] -/Border [0 0 0] ->> -endobj -4423 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4424 0 obj -<< -/Subtype /Link -/A 4423 0 R -/Type /Annot -/Rect [142.2 190.396 153 201.709] -/Border [0 0 0] ->> -endobj -4425 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4426 0 obj -<< -/Subtype /Link -/A 4425 0 R -/Type /Annot -/Rect [153 190.396 158.4 201.709] -/Border [0 0 0] ->> -endobj -4427 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4428 0 obj -<< -/Subtype /Link -/A 4427 0 R -/Type /Annot -/Rect [158.4 190.396 163.8 201.709] -/Border [0 0 0] ->> -endobj -4429 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4430 0 obj -<< -/Subtype /Link -/A 4429 0 R -/Type /Annot -/Rect [72 167.77 223.2 179.083] -/Border [0 0 0] ->> -endobj -4431 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4432 0 obj -<< -/Subtype /Link -/A 4431 0 R -/Type /Annot -/Rect [72 156.457 88.2 167.77] -/Border [0 0 0] ->> -endobj -4433 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4434 0 obj -<< -/Subtype /Link -/A 4433 0 R -/Type /Annot -/Rect [88.2 156.457 93.6 167.77] -/Border [0 0 0] ->> -endobj -4435 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4436 0 obj -<< -/Subtype /Link -/A 4435 0 R -/Type /Annot -/Rect [93.6 156.457 115.2 167.77] -/Border [0 0 0] ->> -endobj -4437 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4438 0 obj -<< -/Subtype /Link -/A 4437 0 R -/Type /Annot -/Rect [115.2 156.457 120.6 167.77] -/Border [0 0 0] ->> -endobj -4439 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4440 0 obj -<< -/Subtype /Link -/A 4439 0 R -/Type /Annot -/Rect [120.6 156.457 190.8 167.77] -/Border [0 0 0] ->> -endobj -4441 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4442 0 obj -<< -/Subtype /Link -/A 4441 0 R -/Type /Annot -/Rect [190.8 156.457 196.2 167.77] -/Border [0 0 0] ->> -endobj -4443 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4444 0 obj -<< -/Subtype /Link -/A 4443 0 R -/Type /Annot -/Rect [72 145.144 88.2 156.457] -/Border [0 0 0] ->> -endobj -4445 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4446 0 obj -<< -/Subtype /Link -/A 4445 0 R -/Type /Annot -/Rect [88.2 145.144 93.6 156.457] -/Border [0 0 0] ->> -endobj -4447 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4448 0 obj -<< -/Subtype /Link -/A 4447 0 R -/Type /Annot -/Rect [93.6 145.144 115.2 156.457] -/Border [0 0 0] ->> -endobj -4449 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4450 0 obj -<< -/Subtype /Link -/A 4449 0 R -/Type /Annot -/Rect [115.2 145.144 120.6 156.457] -/Border [0 0 0] ->> -endobj -4451 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4452 0 obj -<< -/Subtype /Link -/A 4451 0 R -/Type /Annot -/Rect [120.6 145.144 255.6 156.457] -/Border [0 0 0] ->> -endobj -4453 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4454 0 obj -<< -/Subtype /Link -/A 4453 0 R -/Type /Annot -/Rect [255.6 145.144 261 156.457] -/Border [0 0 0] ->> -endobj -4455 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4456 0 obj -<< -/Subtype /Link -/A 4455 0 R -/Type /Annot -/Rect [72 133.831 88.2 145.144] -/Border [0 0 0] ->> -endobj -4457 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4458 0 obj -<< -/Subtype /Link -/A 4457 0 R -/Type /Annot -/Rect [88.2 133.831 93.6 145.144] -/Border [0 0 0] ->> -endobj -4459 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4460 0 obj -<< -/Subtype /Link -/A 4459 0 R -/Type /Annot -/Rect [93.6 133.831 136.8 145.144] -/Border [0 0 0] ->> -endobj -4461 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4462 0 obj -<< -/Subtype /Link -/A 4461 0 R -/Type /Annot -/Rect [136.8 133.831 142.2 145.144] -/Border [0 0 0] ->> -endobj -4463 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4464 0 obj -<< -/Subtype /Link -/A 4463 0 R -/Type /Annot -/Rect [142.2 133.831 158.4 145.144] -/Border [0 0 0] ->> -endobj -4465 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4466 0 obj -<< -/Subtype /Link -/A 4465 0 R -/Type /Annot -/Rect [158.4 133.831 163.8 145.144] -/Border [0 0 0] ->> -endobj -4467 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4468 0 obj -<< -/Subtype /Link -/A 4467 0 R -/Type /Annot -/Rect [163.8 133.831 169.2 145.144] -/Border [0 0 0] ->> -endobj -4469 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4470 0 obj -<< -/Subtype /Link -/A 4469 0 R -/Type /Annot -/Rect [72 111.205 255.6 122.518] -/Border [0 0 0] ->> -endobj -4471 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4472 0 obj -<< -/Subtype /Link -/A 4471 0 R -/Type /Annot -/Rect [72 99.892 88.2 111.205] -/Border [0 0 0] ->> -endobj -4473 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4474 0 obj -<< -/Subtype /Link -/A 4473 0 R -/Type /Annot -/Rect [88.2 99.892 93.6 111.205] -/Border [0 0 0] ->> -endobj -4475 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4476 0 obj -<< -/Subtype /Link -/A 4475 0 R -/Type /Annot -/Rect [93.6 99.892 115.2 111.205] -/Border [0 0 0] ->> -endobj -4477 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4478 0 obj -<< -/Subtype /Link -/A 4477 0 R -/Type /Annot -/Rect [115.2 99.892 120.6 111.205] -/Border [0 0 0] ->> -endobj -4479 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4480 0 obj -<< -/Subtype /Link -/A 4479 0 R -/Type /Annot -/Rect [120.6 99.892 223.2 111.205] -/Border [0 0 0] ->> -endobj -4481 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4482 0 obj -<< -/Subtype /Link -/A 4481 0 R -/Type /Annot -/Rect [223.2 99.892 228.6 111.205] -/Border [0 0 0] ->> -endobj -4483 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4484 0 obj -<< -/Subtype /Link -/A 4483 0 R -/Type /Annot -/Rect [72 88.579 88.2 99.892] -/Border [0 0 0] ->> -endobj -4485 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4486 0 obj -<< -/Subtype /Link -/A 4485 0 R -/Type /Annot -/Rect [88.2 88.579 93.6 99.892] -/Border [0 0 0] ->> -endobj -4487 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4488 0 obj -<< -/Subtype /Link -/A 4487 0 R -/Type /Annot -/Rect [93.6 88.579 115.2 99.892] -/Border [0 0 0] ->> -endobj -4489 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4490 0 obj -<< -/Subtype /Link -/A 4489 0 R -/Type /Annot -/Rect [115.2 88.579 120.6 99.892] -/Border [0 0 0] ->> -endobj -4491 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4492 0 obj -<< -/Subtype /Link -/A 4491 0 R -/Type /Annot -/Rect [120.6 88.579 223.2 99.892] -/Border [0 0 0] ->> -endobj -4493 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4494 0 obj -<< -/Subtype /Link -/A 4493 0 R -/Type /Annot -/Rect [223.2 88.579 228.6 99.892] -/Border [0 0 0] ->> -endobj -4495 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4496 0 obj -<< -/Subtype /Link -/A 4495 0 R -/Type /Annot -/Rect [72 77.266 88.2 88.579] -/Border [0 0 0] ->> -endobj -4497 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4498 0 obj -<< -/Subtype /Link -/A 4497 0 R -/Type /Annot -/Rect [88.2 77.266 93.6 88.579] -/Border [0 0 0] ->> -endobj -4499 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4500 0 obj -<< -/Subtype /Link -/A 4499 0 R -/Type /Annot -/Rect [93.6 77.266 136.8 88.579] -/Border [0 0 0] ->> -endobj -4501 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4502 0 obj -<< -/Subtype /Link -/A 4501 0 R -/Type /Annot -/Rect [136.8 77.266 142.2 88.579] -/Border [0 0 0] ->> -endobj -4503 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4504 0 obj -<< -/Subtype /Link -/A 4503 0 R -/Type /Annot -/Rect [142.2 77.266 158.4 88.579] -/Border [0 0 0] ->> -endobj -4505 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4506 0 obj -<< -/Subtype /Link -/A 4505 0 R -/Type /Annot -/Rect [158.4 77.266 163.8 88.579] -/Border [0 0 0] ->> -endobj -4507 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4508 0 obj -<< -/Subtype /Link -/A 4507 0 R -/Type /Annot -/Rect [163.8 77.266 169.2 88.579] -/Border [0 0 0] ->> -endobj -4315 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 4313 0 R -/Resources 4314 0 R -/Annots [4318 0 R 4320 0 R 4322 0 R 4324 0 R 4326 0 R 4328 0 R 4330 0 R 4332 0 R 4334 0 R 4336 0 R 4338 0 R 4340 0 R 4342 0 R 4344 0 R 4346 0 R 4348 0 R 4350 0 R 4352 0 R 4354 0 R 4356 0 R 4358 0 R 4360 0 R 4362 0 R 4364 0 R 4366 0 R 4368 0 R 4370 0 R 4372 0 R 4374 0 R 4376 0 R 4378 0 R 4380 0 R 4382 0 R 4384 0 R 4386 0 R 4388 0 R 4390 0 R 4392 0 R 4394 0 R 4396 0 R 4398 0 R 4400 0 R 4402 0 R 4404 0 R 4406 0 R 4408 0 R 4410 0 R 4412 0 R 4414 0 R 4416 0 R 4418 0 R 4420 0 R 4422 0 R 4424 0 R 4426 0 R 4428 0 R 4430 0 R 4432 0 R 4434 0 R 4436 0 R 4438 0 R 4440 0 R 4442 0 R 4444 0 R 4446 0 R 4448 0 R 4450 0 R 4452 0 R 4454 0 R 4456 0 R 4458 0 R 4460 0 R 4462 0 R 4464 0 R 4466 0 R 4468 0 R 4470 0 R 4472 0 R 4474 0 R 4476 0 R 4478 0 R 4480 0 R 4482 0 R 4484 0 R 4486 0 R 4488 0 R 4490 0 R 4492 0 R 4494 0 R 4496 0 R 4498 0 R 4500 0 R 4502 0 R 4504 0 R 4506 0 R 4508 0 R] ->> -endobj -4314 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -4313 0 obj -<< -/Length 2096 -/Filter /FlateDecode ->> -stream -x[͎6 SJ?â?@o-Vd(WI[v8Q"3l'I{U'ӿT#to?ߞd9?Oگ/8:JxK'өн~"ϝ]>RX?w嗧_~}\P{SKRTkcH7xnW{uexdyEZT6Hƹlrb'؝ߛ/)&+uŊ8-ҊH?Az -"X#h #<Fˊ5<􂼚IsHDy黉hzddi9h`1 -~3zOuZlm{+(SG%p~5;~NM2+oB.8xOc5ځ빳"ب}a+Sgb/_gEU1qZ$ďNUL".ڈӺXBjhg-\6R/TMv -zu>!1e;ҺTRbբ?'ծpK8SqclL# lB7h<2Z ,QUheq54QDhlЁؐG<&"whr_ߓFyvYQ{8>Fs煒\QҮtEsgUVNØ~ŽR#HlFwr- 6d=NfZ%D`k1>/\rpEy-hUʊi\)eV ɡTuN)q+EvnU5 U󫕼:UK+Ģ0SsPP[ uߤ.*#ڷ2@t6iPأդz``2?|rA̮)2RWq}νO а0DU0! (}[HJRWVVIsgn?D.d]5B3R'lq5ک!e/Ym ,ZqW}o7 cYCTWV#+]5 JUq1PK]/u~cS^E6uWuoLf -el޽'/Ym5QHH'2݁2X_E0rb}+VgXfo\|lA50V+H%Z#R.-&rtR 5\PD45]3q)Ҝm > 4)9MܚH6FD+{ʤ(~<#iޑc:.B&GU_6jrP|=[AeY9/=ԸD[!Gg %N G;4Z;T$a#;bP1'J__SK Y6̇a[Fٖ>ZKH]C7JHw>87yr zgc³!Qӻyц 'չR=u(3lHH 2)CYaG]Q*rؗ񅰷 }&S !|g89Cu]>zCuɯ>~`K?+'X9enW]./KZd{sמ\QI:Gu6b-+*0NZ]wz|JZ{\П%݊JH}޾(b696,8oN/ |cTϣHp1U3“mf @[:UY*ScQ - -endstream -endobj -4512 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4513 0 obj -<< -/Subtype /Link -/A 4512 0 R -/Type /Annot -/Rect [72 697.374 320.4 708.687] -/Border [0 0 0] ->> -endobj -4514 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4515 0 obj -<< -/Subtype /Link -/A 4514 0 R -/Type /Annot -/Rect [72 686.061 88.2 697.374] -/Border [0 0 0] ->> -endobj -4516 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4517 0 obj -<< -/Subtype /Link -/A 4516 0 R -/Type /Annot -/Rect [88.2 686.061 93.6 697.374] -/Border [0 0 0] ->> -endobj -4518 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4519 0 obj -<< -/Subtype /Link -/A 4518 0 R -/Type /Annot -/Rect [93.6 686.061 115.2 697.374] -/Border [0 0 0] ->> -endobj -4520 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4521 0 obj -<< -/Subtype /Link -/A 4520 0 R -/Type /Annot -/Rect [115.2 686.061 120.6 697.374] -/Border [0 0 0] ->> -endobj -4522 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4523 0 obj -<< -/Subtype /Link -/A 4522 0 R -/Type /Annot -/Rect [120.6 686.061 239.4 697.374] -/Border [0 0 0] ->> -endobj -4524 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4525 0 obj -<< -/Subtype /Link -/A 4524 0 R -/Type /Annot -/Rect [239.4 686.061 244.8 697.374] -/Border [0 0 0] ->> -endobj -4526 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4527 0 obj -<< -/Subtype /Link -/A 4526 0 R -/Type /Annot -/Rect [244.8 686.061 250.2 697.374] -/Border [0 0 0] ->> -endobj -4528 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4529 0 obj -<< -/Subtype /Link -/A 4528 0 R -/Type /Annot -/Rect [250.2 686.061 342 697.374] -/Border [0 0 0] ->> -endobj -4530 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4531 0 obj -<< -/Subtype /Link -/A 4530 0 R -/Type /Annot -/Rect [342 686.061 347.4 697.374] -/Border [0 0 0] ->> -endobj -4532 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4533 0 obj -<< -/Subtype /Link -/A 4532 0 R -/Type /Annot -/Rect [72 674.748 88.2 686.061] -/Border [0 0 0] ->> -endobj -4534 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4535 0 obj -<< -/Subtype /Link -/A 4534 0 R -/Type /Annot -/Rect [88.2 674.748 93.6 686.061] -/Border [0 0 0] ->> -endobj -4536 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4537 0 obj -<< -/Subtype /Link -/A 4536 0 R -/Type /Annot -/Rect [93.6 674.748 115.2 686.061] -/Border [0 0 0] ->> -endobj -4538 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4539 0 obj -<< -/Subtype /Link -/A 4538 0 R -/Type /Annot -/Rect [115.2 674.748 120.6 686.061] -/Border [0 0 0] ->> -endobj -4540 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4541 0 obj -<< -/Subtype /Link -/A 4540 0 R -/Type /Annot -/Rect [120.6 674.748 320.4 686.061] -/Border [0 0 0] ->> -endobj -4542 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4543 0 obj -<< -/Subtype /Link -/A 4542 0 R -/Type /Annot -/Rect [320.4 674.748 325.8 686.061] -/Border [0 0 0] ->> -endobj -4544 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4545 0 obj -<< -/Subtype /Link -/A 4544 0 R -/Type /Annot -/Rect [325.8 674.748 331.2 686.061] -/Border [0 0 0] ->> -endobj -4546 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4547 0 obj -<< -/Subtype /Link -/A 4546 0 R -/Type /Annot -/Rect [72 652.248 282.390625 664.748] -/Border [0 0 0] ->> -endobj -4551 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4552 0 obj -<< -/Subtype /Link -/A 4551 0 R -/Type /Annot -/Rect [72 518.250855 524.709961 530.750855] -/Border [0 0 0] ->> -endobj -4553 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4554 0 obj -<< -/Subtype /Link -/A 4553 0 R -/Type /Annot -/Rect [72 505.750855 517.629883 518.250855] -/Border [0 0 0] ->> -endobj -4555 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4556 0 obj -<< -/Subtype /Link -/A 4555 0 R -/Type /Annot -/Rect [72 484.437855 169.2 495.750855] -/Border [0 0 0] ->> -endobj -4557 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4558 0 obj -<< -/Subtype /Link -/A 4557 0 R -/Type /Annot -/Rect [72 473.124855 88.2 484.437855] -/Border [0 0 0] ->> -endobj -4559 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4560 0 obj -<< -/Subtype /Link -/A 4559 0 R -/Type /Annot -/Rect [88.2 473.124855 93.6 484.437855] -/Border [0 0 0] ->> -endobj -4561 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4562 0 obj -<< -/Subtype /Link -/A 4561 0 R -/Type /Annot -/Rect [93.6 473.124855 158.4 484.437855] -/Border [0 0 0] ->> -endobj -4563 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4564 0 obj -<< -/Subtype /Link -/A 4563 0 R -/Type /Annot -/Rect [158.4 473.124855 163.8 484.437855] -/Border [0 0 0] ->> -endobj -4565 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4566 0 obj -<< -/Subtype /Link -/A 4565 0 R -/Type /Annot -/Rect [163.8 473.124855 239.4 484.437855] -/Border [0 0 0] ->> -endobj -4567 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4568 0 obj -<< -/Subtype /Link -/A 4567 0 R -/Type /Annot -/Rect [239.4 473.124855 244.8 484.437855] -/Border [0 0 0] ->> -endobj -4569 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4570 0 obj -<< -/Subtype /Link -/A 4569 0 R -/Type /Annot -/Rect [244.8 473.124855 250.2 484.437855] -/Border [0 0 0] ->> -endobj -4571 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4572 0 obj -<< -/Subtype /Link -/A 4571 0 R -/Type /Annot -/Rect [250.2 473.124855 369 484.437855] -/Border [0 0 0] ->> -endobj -4573 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4574 0 obj -<< -/Subtype /Link -/A 4573 0 R -/Type /Annot -/Rect [369 473.124855 374.4 484.437855] -/Border [0 0 0] ->> -endobj -4575 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4576 0 obj -<< -/Subtype /Link -/A 4575 0 R -/Type /Annot -/Rect [374.4 473.124855 379.8 484.437855] -/Border [0 0 0] ->> -endobj -4577 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4578 0 obj -<< -/Subtype /Link -/A 4577 0 R -/Type /Annot -/Rect [379.8 473.124855 471.6 484.437855] -/Border [0 0 0] ->> -endobj -4579 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4580 0 obj -<< -/Subtype /Link -/A 4579 0 R -/Type /Annot -/Rect [471.6 473.124855 477 484.437855] -/Border [0 0 0] ->> -endobj -4581 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4582 0 obj -<< -/Subtype /Link -/A 4581 0 R -/Type /Annot -/Rect [477 473.124855 482.4 484.437855] -/Border [0 0 0] ->> -endobj -4583 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4584 0 obj -<< -/Subtype /Link -/A 4583 0 R -/Type /Annot -/Rect [72 450.498855 185.4 461.811855] -/Border [0 0 0] ->> -endobj -4585 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4586 0 obj -<< -/Subtype /Link -/A 4585 0 R -/Type /Annot -/Rect [72 439.185855 88.2 450.498855] -/Border [0 0 0] ->> -endobj -4587 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4588 0 obj -<< -/Subtype /Link -/A 4587 0 R -/Type /Annot -/Rect [88.2 439.185855 93.6 450.498855] -/Border [0 0 0] ->> -endobj -4589 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4590 0 obj -<< -/Subtype /Link -/A 4589 0 R -/Type /Annot -/Rect [93.6 439.185855 115.2 450.498855] -/Border [0 0 0] ->> -endobj -4591 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4592 0 obj -<< -/Subtype /Link -/A 4591 0 R -/Type /Annot -/Rect [115.2 439.185855 120.6 450.498855] -/Border [0 0 0] ->> -endobj -4593 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4594 0 obj -<< -/Subtype /Link -/A 4593 0 R -/Type /Annot -/Rect [120.6 439.185855 196.2 450.498855] -/Border [0 0 0] ->> -endobj -4595 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4596 0 obj -<< -/Subtype /Link -/A 4595 0 R -/Type /Annot -/Rect [196.2 439.185855 201.6 450.498855] -/Border [0 0 0] ->> -endobj -4597 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4598 0 obj -<< -/Subtype /Link -/A 4597 0 R -/Type /Annot -/Rect [72 427.872855 88.2 439.185855] -/Border [0 0 0] ->> -endobj -4599 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4600 0 obj -<< -/Subtype /Link -/A 4599 0 R -/Type /Annot -/Rect [88.2 427.872855 93.6 439.185855] -/Border [0 0 0] ->> -endobj -4601 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4602 0 obj -<< -/Subtype /Link -/A 4601 0 R -/Type /Annot -/Rect [93.6 427.872855 115.2 439.185855] -/Border [0 0 0] ->> -endobj -4603 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4604 0 obj -<< -/Subtype /Link -/A 4603 0 R -/Type /Annot -/Rect [115.2 427.872855 120.6 439.185855] -/Border [0 0 0] ->> -endobj -4605 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4606 0 obj -<< -/Subtype /Link -/A 4605 0 R -/Type /Annot -/Rect [120.6 427.872855 228.6 439.185855] -/Border [0 0 0] ->> -endobj -4607 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4608 0 obj -<< -/Subtype /Link -/A 4607 0 R -/Type /Annot -/Rect [228.6 427.872855 234 439.185855] -/Border [0 0 0] ->> -endobj -4609 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4610 0 obj -<< -/Subtype /Link -/A 4609 0 R -/Type /Annot -/Rect [234 427.872855 239.4 439.185855] -/Border [0 0 0] ->> -endobj -4611 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4612 0 obj -<< -/Subtype /Link -/A 4611 0 R -/Type /Annot -/Rect [72 405.372855 462.756836 417.872855] -/Border [0 0 0] ->> -endobj -4511 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 4509 0 R -/Resources 4510 0 R -/Annots [4513 0 R 4515 0 R 4517 0 R 4519 0 R 4521 0 R 4523 0 R 4525 0 R 4527 0 R 4529 0 R 4531 0 R 4533 0 R 4535 0 R 4537 0 R 4539 0 R 4541 0 R 4543 0 R 4545 0 R 4547 0 R 4552 0 R 4554 0 R 4556 0 R 4558 0 R 4560 0 R 4562 0 R 4564 0 R 4566 0 R 4568 0 R 4570 0 R 4572 0 R 4574 0 R 4576 0 R 4578 0 R 4580 0 R 4582 0 R 4584 0 R 4586 0 R 4588 0 R 4590 0 R 4592 0 R 4594 0 R 4596 0 R 4598 0 R 4600 0 R 4602 0 R 4604 0 R 4606 0 R 4608 0 R 4610 0 R 4612 0 R] ->> -endobj -4510 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F5 29 0 R -/F3 9 0 R -/F7 4548 0 R -/F8 4549 0 R -/F9 4550 0 R ->> ->> -endobj -4509 0 obj -<< -/Length 1332 -/Filter /FlateDecode ->> -stream -xYK&ϯBP*)Dsr퇴DVOm';ktnx} -4|?|8kP izB@0y_EC)L??p5g!qU00<3s)j'. )t%Fh^JS -ITriϿ>ۛrYO9KBA9WB N=na pЃ ƣEڇģ`k=a_eD#bqC|M4.`;̂`TLpA-f̊M -˵B؊hkøkUXWȮG{Z2R`U(LvVvb+H^{-Ǜ -|Gqjw Q fN6ȸIS: -]fKa Kt))M ؗ8$" */c]s͖e*&s3Y.ӫ8 ĂrqCLQyMA~H#1rt$=ҙRnظE:Q. ak #1>S -BO>1Ҍ%Nݴ̴nā$n(֛8*:ws'P(psjuCgYG-~OuD;o:*ǯ=lke5ZQ^qAwXT_xwS572GbNjvݒ|~9EMN^t+1z2 Y^-M| Ӛc^Ro5l=YdJr̮拾RYΓdZQƝ -?9b -endstream -endobj -4617 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4618 0 obj -<< -/Subtype /Link -/A 4617 0 R -/Type /Annot -/Rect [72 685.975 256.1 720] -/Border [0 0 0] ->> -endobj -4619 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4620 0 obj -<< -/Subtype /Link -/A 4619 0 R -/Type /Annot -/Rect [72 658.475 531.40918 670.975] -/Border [0 0 0] ->> -endobj -4621 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4622 0 obj -<< -/Subtype /Link -/A 4621 0 R -/Type /Annot -/Rect [72 645.975 251.291992 658.475] -/Border [0 0 0] ->> -endobj -4623 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4624 0 obj -<< -/Subtype /Link -/A 4623 0 R -/Type /Annot -/Rect [251.291992 645.905 281.291992 658.475] -/Border [0 0 0] ->> -endobj -4625 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4626 0 obj -<< -/Subtype /Link -/A 4625 0 R -/Type /Annot -/Rect [281.291992 645.975 514.739258 658.475] -/Border [0 0 0] ->> -endobj -4627 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4628 0 obj -<< -/Subtype /Link -/A 4627 0 R -/Type /Annot -/Rect [72 633.475 508.782227 645.975] -/Border [0 0 0] ->> -endobj -4629 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4630 0 obj -<< -/Subtype /Link -/A 4629 0 R -/Type /Annot -/Rect [72 620.975 539.641602 633.475] -/Border [0 0 0] ->> -endobj -4631 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4632 0 obj -<< -/Subtype /Link -/A 4631 0 R -/Type /Annot -/Rect [72 608.475 520.666992 620.975] -/Border [0 0 0] ->> -endobj -4633 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4634 0 obj -<< -/Subtype /Link -/A 4633 0 R -/Type /Annot -/Rect [72 595.975 163.176758 608.475] -/Border [0 0 0] ->> -endobj -4635 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4636 0 obj -<< -/Subtype /Link -/A 4635 0 R -/Type /Annot -/Rect [72 573.475 112.756836 585.975] -/Border [0 0 0] ->> -endobj -4637 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4638 0 obj -<< -/Subtype /Link -/A 4637 0 R -/Type /Annot -/Rect [112.756836 573.405 142.756836 585.975] -/Border [0 0 0] ->> -endobj -4639 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4640 0 obj -<< -/Subtype /Link -/A 4639 0 R -/Type /Annot -/Rect [142.756836 573.475 158.381836 585.975] -/Border [0 0 0] ->> -endobj -4641 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4642 0 obj -<< -/Subtype /Link -/A 4641 0 R -/Type /Annot -/Rect [158.381836 573.405 194.381836 585.975] -/Border [0 0 0] ->> -endobj -4643 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4644 0 obj -<< -/Subtype /Link -/A 4643 0 R -/Type /Annot -/Rect [194.381836 573.475 395.236328 585.975] -/Border [0 0 0] ->> -endobj -4645 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4646 0 obj -<< -/Subtype /Link -/A 4645 0 R -/Type /Annot -/Rect [72 554.905 102 567.475] -/Border [0 0 0] ->> -endobj -4647 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4648 0 obj -<< -/Subtype /Link -/A 4647 0 R -/Type /Annot -/Rect [102 554.975 190.041992 567.475] -/Border [0 0 0] ->> -endobj -4649 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4650 0 obj -<< -/Subtype /Link -/A 4649 0 R -/Type /Annot -/Rect [190.041992 554.905 226.041992 567.475] -/Border [0 0 0] ->> -endobj -4651 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4652 0 obj -<< -/Subtype /Link -/A 4651 0 R -/Type /Annot -/Rect [226.041992 554.975 495.265625 567.475] -/Border [0 0 0] ->> -endobj -4653 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4654 0 obj -<< -/Subtype /Link -/A 4653 0 R -/Type /Annot -/Rect [495.265625 554.905 525.265625 567.475] -/Border [0 0 0] ->> -endobj -4655 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4656 0 obj -<< -/Subtype /Link -/A 4655 0 R -/Type /Annot -/Rect [72 536.335 108 548.905] -/Border [0 0 0] ->> -endobj -4657 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4658 0 obj -<< -/Subtype /Link -/A 4657 0 R -/Type /Annot -/Rect [108 536.405 196.041992 548.905] -/Border [0 0 0] ->> -endobj -4659 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4660 0 obj -<< -/Subtype /Link -/A 4659 0 R -/Type /Annot -/Rect [196.041992 536.335 226.041992 548.905] -/Border [0 0 0] ->> -endobj -4661 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4662 0 obj -<< -/Subtype /Link -/A 4661 0 R -/Type /Annot -/Rect [226.041992 536.405 495.265625 548.905] -/Border [0 0 0] ->> -endobj -4663 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4664 0 obj -<< -/Subtype /Link -/A 4663 0 R -/Type /Annot -/Rect [495.265625 536.335 531.265625 548.905] -/Border [0 0 0] ->> -endobj -4665 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4666 0 obj -<< -/Subtype /Link -/A 4665 0 R -/Type /Annot -/Rect [72 517.835 98.557617 530.335] -/Border [0 0 0] ->> -endobj -4667 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4668 0 obj -<< -/Subtype /Link -/A 4667 0 R -/Type /Annot -/Rect [98.557617 517.765 128.557617 530.335] -/Border [0 0 0] ->> -endobj -4669 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4670 0 obj -<< -/Subtype /Link -/A 4669 0 R -/Type /Annot -/Rect [128.557617 517.835 152.268555 530.335] -/Border [0 0 0] ->> -endobj -4671 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4672 0 obj -<< -/Subtype /Link -/A 4671 0 R -/Type /Annot -/Rect [152.268555 517.765 188.268555 530.335] -/Border [0 0 0] ->> -endobj -4673 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4674 0 obj -<< -/Subtype /Link -/A 4673 0 R -/Type /Annot -/Rect [188.268555 517.835 477.160156 530.335] -/Border [0 0 0] ->> -endobj -4675 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4676 0 obj -<< -/Subtype /Link -/A 4675 0 R -/Type /Annot -/Rect [72 499.265 102 511.835] -/Border [0 0 0] ->> -endobj -4677 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4678 0 obj -<< -/Subtype /Link -/A 4677 0 R -/Type /Annot -/Rect [102 499.335 481.487305 511.835] -/Border [0 0 0] ->> -endobj -4679 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4680 0 obj -<< -/Subtype /Link -/A 4679 0 R -/Type /Annot -/Rect [72 480.765 90 493.335] -/Border [0 0 0] ->> -endobj -4681 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4682 0 obj -<< -/Subtype /Link -/A 4681 0 R -/Type /Annot -/Rect [90 480.835 532.167969 493.335] -/Border [0 0 0] ->> -endobj -4683 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4684 0 obj -<< -/Subtype /Link -/A 4683 0 R -/Type /Annot -/Rect [72 462.265 102 474.835] -/Border [0 0 0] ->> -endobj -4685 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4686 0 obj -<< -/Subtype /Link -/A 4685 0 R -/Type /Annot -/Rect [102 462.335 509.568359 474.835] -/Border [0 0 0] ->> -endobj -4687 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4688 0 obj -<< -/Subtype /Link -/A 4687 0 R -/Type /Annot -/Rect [72 449.835 267.834961 462.335] -/Border [0 0 0] ->> -endobj -4689 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4690 0 obj -<< -/Subtype /Link -/A 4689 0 R -/Type /Annot -/Rect [72 421.335 112.219727 433.835] -/Border [0 0 0] ->> -endobj -4691 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4692 0 obj -<< -/Subtype /Link -/A 4691 0 R -/Type /Annot -/Rect [112.219727 421.265 130.219727 433.835] -/Border [0 0 0] ->> -endobj -4693 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4694 0 obj -<< -/Subtype /Link -/A 4693 0 R -/Type /Annot -/Rect [130.219727 421.335 145.844727 433.835] -/Border [0 0 0] ->> -endobj -4695 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4696 0 obj -<< -/Subtype /Link -/A 4695 0 R -/Type /Annot -/Rect [145.844727 421.265 175.844727 433.835] -/Border [0 0 0] ->> -endobj -4697 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4698 0 obj -<< -/Subtype /Link -/A 4697 0 R -/Type /Annot -/Rect [175.844727 421.335 469.248047 433.835] -/Border [0 0 0] ->> -endobj -4699 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4700 0 obj -<< -/Subtype /Link -/A 4699 0 R -/Type /Annot -/Rect [72 398.765 102 411.335] -/Border [0 0 0] ->> -endobj -4701 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4702 0 obj -<< -/Subtype /Link -/A 4701 0 R -/Type /Annot -/Rect [102 398.835 375.525391 411.335] -/Border [0 0 0] ->> -endobj -4703 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4704 0 obj -<< -/Subtype /Link -/A 4703 0 R -/Type /Annot -/Rect [375.525391 398.765 411.525391 411.335] -/Border [0 0 0] ->> -endobj -4705 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4706 0 obj -<< -/Subtype /Link -/A 4705 0 R -/Type /Annot -/Rect [411.525391 398.835 417.423828 411.335] -/Border [0 0 0] ->> -endobj -4707 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4708 0 obj -<< -/Subtype /Link -/A 4707 0 R -/Type /Annot -/Rect [417.423828 398.765 465.423828 411.335] -/Border [0 0 0] ->> -endobj -4709 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4710 0 obj -<< -/Subtype /Link -/A 4709 0 R -/Type /Annot -/Rect [465.423828 398.835 489.134766 411.335] -/Border [0 0 0] ->> -endobj -4711 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4712 0 obj -<< -/Subtype /Link -/A 4711 0 R -/Type /Annot -/Rect [489.134766 398.765 531.134766 411.335] -/Border [0 0 0] ->> -endobj -4713 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4714 0 obj -<< -/Subtype /Link -/A 4713 0 R -/Type /Annot -/Rect [531.134766 398.835 533.688477 411.335] -/Border [0 0 0] ->> -endobj -4715 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4716 0 obj -<< -/Subtype /Link -/A 4715 0 R -/Type /Annot -/Rect [72 380.265 108 392.835] -/Border [0 0 0] ->> -endobj -4717 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4718 0 obj -<< -/Subtype /Link -/A 4717 0 R -/Type /Annot -/Rect [108 380.335 367.0625 392.835] -/Border [0 0 0] ->> -endobj -4719 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4720 0 obj -<< -/Subtype /Link -/A 4719 0 R -/Type /Annot -/Rect [367.0625 380.265 397.0625 392.835] -/Border [0 0 0] ->> -endobj -4721 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4722 0 obj -<< -/Subtype /Link -/A 4721 0 R -/Type /Annot -/Rect [397.0625 380.335 402.960938 392.835] -/Border [0 0 0] ->> -endobj -4723 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4724 0 obj -<< -/Subtype /Link -/A 4723 0 R -/Type /Annot -/Rect [402.960938 380.265 450.960938 392.835] -/Border [0 0 0] ->> -endobj -4725 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4726 0 obj -<< -/Subtype /Link -/A 4725 0 R -/Type /Annot -/Rect [450.960938 380.335 474.671875 392.835] -/Border [0 0 0] ->> -endobj -4727 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4728 0 obj -<< -/Subtype /Link -/A 4727 0 R -/Type /Annot -/Rect [474.671875 380.265 522.671875 392.835] -/Border [0 0 0] ->> -endobj -4729 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4730 0 obj -<< -/Subtype /Link -/A 4729 0 R -/Type /Annot -/Rect [72 351.765 327.732422 364.265] -/Border [0 0 0] ->> -endobj -4731 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4732 0 obj -<< -/Subtype /Link -/A 4731 0 R -/Type /Annot -/Rect [72 330.452 320.4 341.765] -/Border [0 0 0] ->> -endobj -4733 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4734 0 obj -<< -/Subtype /Link -/A 4733 0 R -/Type /Annot -/Rect [72 319.139 88.2 330.452] -/Border [0 0 0] ->> -endobj -4735 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4736 0 obj -<< -/Subtype /Link -/A 4735 0 R -/Type /Annot -/Rect [88.2 319.139 93.6 330.452] -/Border [0 0 0] ->> -endobj -4737 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4738 0 obj -<< -/Subtype /Link -/A 4737 0 R -/Type /Annot -/Rect [93.6 319.139 120.6 330.452] -/Border [0 0 0] ->> -endobj -4739 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4740 0 obj -<< -/Subtype /Link -/A 4739 0 R -/Type /Annot -/Rect [120.6 319.139 126 330.452] -/Border [0 0 0] ->> -endobj -4741 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4742 0 obj -<< -/Subtype /Link -/A 4741 0 R -/Type /Annot -/Rect [126 319.139 223.2 330.452] -/Border [0 0 0] ->> -endobj -4743 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4744 0 obj -<< -/Subtype /Link -/A 4743 0 R -/Type /Annot -/Rect [223.2 319.139 228.6 330.452] -/Border [0 0 0] ->> -endobj -4745 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4746 0 obj -<< -/Subtype /Link -/A 4745 0 R -/Type /Annot -/Rect [228.6 319.139 234 330.452] -/Border [0 0 0] ->> -endobj -4747 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4748 0 obj -<< -/Subtype /Link -/A 4747 0 R -/Type /Annot -/Rect [234 319.139 239.4 330.452] -/Border [0 0 0] ->> -endobj -4749 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4750 0 obj -<< -/Subtype /Link -/A 4749 0 R -/Type /Annot -/Rect [239.4 319.139 244.8 330.452] -/Border [0 0 0] ->> -endobj -4751 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4752 0 obj -<< -/Subtype /Link -/A 4751 0 R -/Type /Annot -/Rect [244.8 319.139 250.2 330.452] -/Border [0 0 0] ->> -endobj -4753 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4754 0 obj -<< -/Subtype /Link -/A 4753 0 R -/Type /Annot -/Rect [250.2 319.139 261 330.452] -/Border [0 0 0] ->> -endobj -4755 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4756 0 obj -<< -/Subtype /Link -/A 4755 0 R -/Type /Annot -/Rect [261 319.139 266.4 330.452] -/Border [0 0 0] ->> -endobj -4757 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4758 0 obj -<< -/Subtype /Link -/A 4757 0 R -/Type /Annot -/Rect [266.4 319.139 271.8 330.452] -/Border [0 0 0] ->> -endobj -4759 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4760 0 obj -<< -/Subtype /Link -/A 4759 0 R -/Type /Annot -/Rect [271.8 319.139 277.2 330.452] -/Border [0 0 0] ->> -endobj -4761 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4762 0 obj -<< -/Subtype /Link -/A 4761 0 R -/Type /Annot -/Rect [277.2 319.139 304.2 330.452] -/Border [0 0 0] ->> -endobj -4763 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4764 0 obj -<< -/Subtype /Link -/A 4763 0 R -/Type /Annot -/Rect [304.2 319.139 309.6 330.452] -/Border [0 0 0] ->> -endobj -4765 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4766 0 obj -<< -/Subtype /Link -/A 4765 0 R -/Type /Annot -/Rect [309.6 319.139 315 330.452] -/Border [0 0 0] ->> -endobj -4767 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4768 0 obj -<< -/Subtype /Link -/A 4767 0 R -/Type /Annot -/Rect [315 319.139 331.2 330.452] -/Border [0 0 0] ->> -endobj -4769 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4770 0 obj -<< -/Subtype /Link -/A 4769 0 R -/Type /Annot -/Rect [331.2 319.139 336.6 330.452] -/Border [0 0 0] ->> -endobj -4771 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4772 0 obj -<< -/Subtype /Link -/A 4771 0 R -/Type /Annot -/Rect [336.6 319.139 342 330.452] -/Border [0 0 0] ->> -endobj -4773 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4774 0 obj -<< -/Subtype /Link -/A 4773 0 R -/Type /Annot -/Rect [72 307.826 88.2 319.139] -/Border [0 0 0] ->> -endobj -4775 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4776 0 obj -<< -/Subtype /Link -/A 4775 0 R -/Type /Annot -/Rect [88.2 307.826 93.6 319.139] -/Border [0 0 0] ->> -endobj -4777 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4778 0 obj -<< -/Subtype /Link -/A 4777 0 R -/Type /Annot -/Rect [93.6 307.826 115.2 319.139] -/Border [0 0 0] ->> -endobj -4779 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4780 0 obj -<< -/Subtype /Link -/A 4779 0 R -/Type /Annot -/Rect [115.2 307.826 120.6 319.139] -/Border [0 0 0] ->> -endobj -4781 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4782 0 obj -<< -/Subtype /Link -/A 4781 0 R -/Type /Annot -/Rect [120.6 307.826 244.8 319.139] -/Border [0 0 0] ->> -endobj -4783 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4784 0 obj -<< -/Subtype /Link -/A 4783 0 R -/Type /Annot -/Rect [244.8 307.826 250.2 319.139] -/Border [0 0 0] ->> -endobj -4785 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4786 0 obj -<< -/Subtype /Link -/A 4785 0 R -/Type /Annot -/Rect [250.2 307.826 255.6 319.139] -/Border [0 0 0] ->> -endobj -4787 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4788 0 obj -<< -/Subtype /Link -/A 4787 0 R -/Type /Annot -/Rect [255.6 307.826 261 319.139] -/Border [0 0 0] ->> -endobj -4789 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4790 0 obj -<< -/Subtype /Link -/A 4789 0 R -/Type /Annot -/Rect [261 307.826 266.4 319.139] -/Border [0 0 0] ->> -endobj -4791 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4792 0 obj -<< -/Subtype /Link -/A 4791 0 R -/Type /Annot -/Rect [266.4 307.826 271.8 319.139] -/Border [0 0 0] ->> -endobj -4793 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4794 0 obj -<< -/Subtype /Link -/A 4793 0 R -/Type /Annot -/Rect [271.8 307.826 277.2 319.139] -/Border [0 0 0] ->> -endobj -4795 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4796 0 obj -<< -/Subtype /Link -/A 4795 0 R -/Type /Annot -/Rect [277.2 307.826 282.6 319.139] -/Border [0 0 0] ->> -endobj -4797 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4798 0 obj -<< -/Subtype /Link -/A 4797 0 R -/Type /Annot -/Rect [282.6 307.826 288 319.139] -/Border [0 0 0] ->> -endobj -4799 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4800 0 obj -<< -/Subtype /Link -/A 4799 0 R -/Type /Annot -/Rect [72 285.2 277.2 296.513] -/Border [0 0 0] ->> -endobj -4801 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4802 0 obj -<< -/Subtype /Link -/A 4801 0 R -/Type /Annot -/Rect [72 273.887 88.2 285.2] -/Border [0 0 0] ->> -endobj -4803 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4804 0 obj -<< -/Subtype /Link -/A 4803 0 R -/Type /Annot -/Rect [88.2 273.887 93.6 285.2] -/Border [0 0 0] ->> -endobj -4805 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4806 0 obj -<< -/Subtype /Link -/A 4805 0 R -/Type /Annot -/Rect [93.6 273.887 120.6 285.2] -/Border [0 0 0] ->> -endobj -4807 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4808 0 obj -<< -/Subtype /Link -/A 4807 0 R -/Type /Annot -/Rect [120.6 273.887 126 285.2] -/Border [0 0 0] ->> -endobj -4809 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4810 0 obj -<< -/Subtype /Link -/A 4809 0 R -/Type /Annot -/Rect [126 273.887 223.2 285.2] -/Border [0 0 0] ->> -endobj -4811 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4812 0 obj -<< -/Subtype /Link -/A 4811 0 R -/Type /Annot -/Rect [223.2 273.887 228.6 285.2] -/Border [0 0 0] ->> -endobj -4813 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4814 0 obj -<< -/Subtype /Link -/A 4813 0 R -/Type /Annot -/Rect [228.6 273.887 234 285.2] -/Border [0 0 0] ->> -endobj -4815 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4816 0 obj -<< -/Subtype /Link -/A 4815 0 R -/Type /Annot -/Rect [234 273.887 250.2 285.2] -/Border [0 0 0] ->> -endobj -4817 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4818 0 obj -<< -/Subtype /Link -/A 4817 0 R -/Type /Annot -/Rect [250.2 273.887 255.6 285.2] -/Border [0 0 0] ->> -endobj -4819 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4820 0 obj -<< -/Subtype /Link -/A 4819 0 R -/Type /Annot -/Rect [255.6 273.887 261 285.2] -/Border [0 0 0] ->> -endobj -4821 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4822 0 obj -<< -/Subtype /Link -/A 4821 0 R -/Type /Annot -/Rect [261 273.887 271.8 285.2] -/Border [0 0 0] ->> -endobj -4823 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4824 0 obj -<< -/Subtype /Link -/A 4823 0 R -/Type /Annot -/Rect [271.8 273.887 277.2 285.2] -/Border [0 0 0] ->> -endobj -4825 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4826 0 obj -<< -/Subtype /Link -/A 4825 0 R -/Type /Annot -/Rect [277.2 273.887 282.6 285.2] -/Border [0 0 0] ->> -endobj -4827 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4828 0 obj -<< -/Subtype /Link -/A 4827 0 R -/Type /Annot -/Rect [282.6 273.887 288 285.2] -/Border [0 0 0] ->> -endobj -4829 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4830 0 obj -<< -/Subtype /Link -/A 4829 0 R -/Type /Annot -/Rect [288 273.887 304.2 285.2] -/Border [0 0 0] ->> -endobj -4831 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4832 0 obj -<< -/Subtype /Link -/A 4831 0 R -/Type /Annot -/Rect [304.2 273.887 309.6 285.2] -/Border [0 0 0] ->> -endobj -4833 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4834 0 obj -<< -/Subtype /Link -/A 4833 0 R -/Type /Annot -/Rect [309.6 273.887 315 285.2] -/Border [0 0 0] ->> -endobj -4835 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4836 0 obj -<< -/Subtype /Link -/A 4835 0 R -/Type /Annot -/Rect [315 273.887 320.4 285.2] -/Border [0 0 0] ->> -endobj -4837 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4838 0 obj -<< -/Subtype /Link -/A 4837 0 R -/Type /Annot -/Rect [320.4 273.887 336.6 285.2] -/Border [0 0 0] ->> -endobj -4839 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4840 0 obj -<< -/Subtype /Link -/A 4839 0 R -/Type /Annot -/Rect [336.6 273.887 342 285.2] -/Border [0 0 0] ->> -endobj -4841 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4842 0 obj -<< -/Subtype /Link -/A 4841 0 R -/Type /Annot -/Rect [342 273.887 347.4 285.2] -/Border [0 0 0] ->> -endobj -4843 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4844 0 obj -<< -/Subtype /Link -/A 4843 0 R -/Type /Annot -/Rect [347.4 273.887 363.6 285.2] -/Border [0 0 0] ->> -endobj -4845 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4846 0 obj -<< -/Subtype /Link -/A 4845 0 R -/Type /Annot -/Rect [363.6 273.887 369 285.2] -/Border [0 0 0] ->> -endobj -4847 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4848 0 obj -<< -/Subtype /Link -/A 4847 0 R -/Type /Annot -/Rect [369 273.887 374.4 285.2] -/Border [0 0 0] ->> -endobj -4849 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4850 0 obj -<< -/Subtype /Link -/A 4849 0 R -/Type /Annot -/Rect [374.4 273.887 379.8 285.2] -/Border [0 0 0] ->> -endobj -4851 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4852 0 obj -<< -/Subtype /Link -/A 4851 0 R -/Type /Annot -/Rect [72 262.574 88.2 273.887] -/Border [0 0 0] ->> -endobj -4853 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4854 0 obj -<< -/Subtype /Link -/A 4853 0 R -/Type /Annot -/Rect [88.2 262.574 93.6 273.887] -/Border [0 0 0] ->> -endobj -4855 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4856 0 obj -<< -/Subtype /Link -/A 4855 0 R -/Type /Annot -/Rect [93.6 262.574 115.2 273.887] -/Border [0 0 0] ->> -endobj -4857 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4858 0 obj -<< -/Subtype /Link -/A 4857 0 R -/Type /Annot -/Rect [115.2 262.574 120.6 273.887] -/Border [0 0 0] ->> -endobj -4859 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4860 0 obj -<< -/Subtype /Link -/A 4859 0 R -/Type /Annot -/Rect [120.6 262.574 136.8 273.887] -/Border [0 0 0] ->> -endobj -4861 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4862 0 obj -<< -/Subtype /Link -/A 4861 0 R -/Type /Annot -/Rect [136.8 262.574 142.2 273.887] -/Border [0 0 0] ->> -endobj -4863 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4864 0 obj -<< -/Subtype /Link -/A 4863 0 R -/Type /Annot -/Rect [142.2 262.574 147.6 273.887] -/Border [0 0 0] ->> -endobj -4865 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4866 0 obj -<< -/Subtype /Link -/A 4865 0 R -/Type /Annot -/Rect [147.6 262.574 158.4 273.887] -/Border [0 0 0] ->> -endobj -4867 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4868 0 obj -<< -/Subtype /Link -/A 4867 0 R -/Type /Annot -/Rect [158.4 262.574 163.8 273.887] -/Border [0 0 0] ->> -endobj -4869 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4870 0 obj -<< -/Subtype /Link -/A 4869 0 R -/Type /Annot -/Rect [163.8 262.574 169.2 273.887] -/Border [0 0 0] ->> -endobj -4871 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4872 0 obj -<< -/Subtype /Link -/A 4871 0 R -/Type /Annot -/Rect [169.2 262.574 185.4 273.887] -/Border [0 0 0] ->> -endobj -4873 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4874 0 obj -<< -/Subtype /Link -/A 4873 0 R -/Type /Annot -/Rect [185.4 262.574 190.8 273.887] -/Border [0 0 0] ->> -endobj -4875 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4876 0 obj -<< -/Subtype /Link -/A 4875 0 R -/Type /Annot -/Rect [190.8 262.574 196.2 273.887] -/Border [0 0 0] ->> -endobj -4877 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4878 0 obj -<< -/Subtype /Link -/A 4877 0 R -/Type /Annot -/Rect [196.2 262.574 212.4 273.887] -/Border [0 0 0] ->> -endobj -4879 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4880 0 obj -<< -/Subtype /Link -/A 4879 0 R -/Type /Annot -/Rect [212.4 262.574 217.8 273.887] -/Border [0 0 0] ->> -endobj -4881 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4882 0 obj -<< -/Subtype /Link -/A 4881 0 R -/Type /Annot -/Rect [72 251.261 88.2 262.574] -/Border [0 0 0] ->> -endobj -4883 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4884 0 obj -<< -/Subtype /Link -/A 4883 0 R -/Type /Annot -/Rect [88.2 251.261 93.6 262.574] -/Border [0 0 0] ->> -endobj -4885 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4886 0 obj -<< -/Subtype /Link -/A 4885 0 R -/Type /Annot -/Rect [93.6 251.261 126 262.574] -/Border [0 0 0] ->> -endobj -4887 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4888 0 obj -<< -/Subtype /Link -/A 4887 0 R -/Type /Annot -/Rect [126 251.261 131.4 262.574] -/Border [0 0 0] ->> -endobj -4889 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4890 0 obj -<< -/Subtype /Link -/A 4889 0 R -/Type /Annot -/Rect [131.4 251.261 136.8 262.574] -/Border [0 0 0] ->> -endobj -4891 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4892 0 obj -<< -/Subtype /Link -/A 4891 0 R -/Type /Annot -/Rect [72 239.948 88.2 251.261] -/Border [0 0 0] ->> -endobj -4893 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4894 0 obj -<< -/Subtype /Link -/A 4893 0 R -/Type /Annot -/Rect [88.2 239.948 93.6 251.261] -/Border [0 0 0] ->> -endobj -4895 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4896 0 obj -<< -/Subtype /Link -/A 4895 0 R -/Type /Annot -/Rect [93.6 239.948 115.2 251.261] -/Border [0 0 0] ->> -endobj -4897 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4898 0 obj -<< -/Subtype /Link -/A 4897 0 R -/Type /Annot -/Rect [115.2 239.948 120.6 251.261] -/Border [0 0 0] ->> -endobj -4899 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4900 0 obj -<< -/Subtype /Link -/A 4899 0 R -/Type /Annot -/Rect [120.6 239.948 147.6 251.261] -/Border [0 0 0] ->> -endobj -4901 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4902 0 obj -<< -/Subtype /Link -/A 4901 0 R -/Type /Annot -/Rect [147.6 239.948 153 251.261] -/Border [0 0 0] ->> -endobj -4903 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4904 0 obj -<< -/Subtype /Link -/A 4903 0 R -/Type /Annot -/Rect [153 239.948 158.4 251.261] -/Border [0 0 0] ->> -endobj -4905 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4906 0 obj -<< -/Subtype /Link -/A 4905 0 R -/Type /Annot -/Rect [158.4 239.948 174.6 251.261] -/Border [0 0 0] ->> -endobj -4907 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4908 0 obj -<< -/Subtype /Link -/A 4907 0 R -/Type /Annot -/Rect [174.6 239.948 180 251.261] -/Border [0 0 0] ->> -endobj -4909 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4910 0 obj -<< -/Subtype /Link -/A 4909 0 R -/Type /Annot -/Rect [180 239.948 185.4 251.261] -/Border [0 0 0] ->> -endobj -4911 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4912 0 obj -<< -/Subtype /Link -/A 4911 0 R -/Type /Annot -/Rect [185.4 239.948 190.8 251.261] -/Border [0 0 0] ->> -endobj -4913 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4914 0 obj -<< -/Subtype /Link -/A 4913 0 R -/Type /Annot -/Rect [190.8 239.948 196.2 251.261] -/Border [0 0 0] ->> -endobj -4915 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4916 0 obj -<< -/Subtype /Link -/A 4915 0 R -/Type /Annot -/Rect [196.2 239.948 201.6 251.261] -/Border [0 0 0] ->> -endobj -4917 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4918 0 obj -<< -/Subtype /Link -/A 4917 0 R -/Type /Annot -/Rect [72 217.322 180 228.635] -/Border [0 0 0] ->> -endobj -4919 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4920 0 obj -<< -/Subtype /Link -/A 4919 0 R -/Type /Annot -/Rect [72 206.009 88.2 217.322] -/Border [0 0 0] ->> -endobj -4921 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4922 0 obj -<< -/Subtype /Link -/A 4921 0 R -/Type /Annot -/Rect [88.2 206.009 93.6 217.322] -/Border [0 0 0] ->> -endobj -4923 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4924 0 obj -<< -/Subtype /Link -/A 4923 0 R -/Type /Annot -/Rect [93.6 206.009 120.6 217.322] -/Border [0 0 0] ->> -endobj -4925 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4926 0 obj -<< -/Subtype /Link -/A 4925 0 R -/Type /Annot -/Rect [120.6 206.009 126 217.322] -/Border [0 0 0] ->> -endobj -4927 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4928 0 obj -<< -/Subtype /Link -/A 4927 0 R -/Type /Annot -/Rect [126 206.009 223.2 217.322] -/Border [0 0 0] ->> -endobj -4929 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4930 0 obj -<< -/Subtype /Link -/A 4929 0 R -/Type /Annot -/Rect [223.2 206.009 228.6 217.322] -/Border [0 0 0] ->> -endobj -4931 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4932 0 obj -<< -/Subtype /Link -/A 4931 0 R -/Type /Annot -/Rect [228.6 206.009 234 217.322] -/Border [0 0 0] ->> -endobj -4933 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4934 0 obj -<< -/Subtype /Link -/A 4933 0 R -/Type /Annot -/Rect [234 206.009 250.2 217.322] -/Border [0 0 0] ->> -endobj -4935 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4936 0 obj -<< -/Subtype /Link -/A 4935 0 R -/Type /Annot -/Rect [250.2 206.009 255.6 217.322] -/Border [0 0 0] ->> -endobj -4937 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4938 0 obj -<< -/Subtype /Link -/A 4937 0 R -/Type /Annot -/Rect [255.6 206.009 261 217.322] -/Border [0 0 0] ->> -endobj -4939 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4940 0 obj -<< -/Subtype /Link -/A 4939 0 R -/Type /Annot -/Rect [261 206.009 277.2 217.322] -/Border [0 0 0] ->> -endobj -4941 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4942 0 obj -<< -/Subtype /Link -/A 4941 0 R -/Type /Annot -/Rect [277.2 206.009 282.6 217.322] -/Border [0 0 0] ->> -endobj -4943 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4944 0 obj -<< -/Subtype /Link -/A 4943 0 R -/Type /Annot -/Rect [282.6 206.009 288 217.322] -/Border [0 0 0] ->> -endobj -4945 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4946 0 obj -<< -/Subtype /Link -/A 4945 0 R -/Type /Annot -/Rect [288 206.009 293.4 217.322] -/Border [0 0 0] ->> -endobj -4947 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4948 0 obj -<< -/Subtype /Link -/A 4947 0 R -/Type /Annot -/Rect [293.4 206.009 320.4 217.322] -/Border [0 0 0] ->> -endobj -4949 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4950 0 obj -<< -/Subtype /Link -/A 4949 0 R -/Type /Annot -/Rect [320.4 206.009 325.8 217.322] -/Border [0 0 0] ->> -endobj -4951 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4952 0 obj -<< -/Subtype /Link -/A 4951 0 R -/Type /Annot -/Rect [325.8 206.009 331.2 217.322] -/Border [0 0 0] ->> -endobj -4953 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4954 0 obj -<< -/Subtype /Link -/A 4953 0 R -/Type /Annot -/Rect [331.2 206.009 347.4 217.322] -/Border [0 0 0] ->> -endobj -4955 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4956 0 obj -<< -/Subtype /Link -/A 4955 0 R -/Type /Annot -/Rect [347.4 206.009 352.8 217.322] -/Border [0 0 0] ->> -endobj -4957 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4958 0 obj -<< -/Subtype /Link -/A 4957 0 R -/Type /Annot -/Rect [352.8 206.009 358.2 217.322] -/Border [0 0 0] ->> -endobj -4959 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4960 0 obj -<< -/Subtype /Link -/A 4959 0 R -/Type /Annot -/Rect [358.2 206.009 390.6 217.322] -/Border [0 0 0] ->> -endobj -4961 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4962 0 obj -<< -/Subtype /Link -/A 4961 0 R -/Type /Annot -/Rect [390.6 206.009 396 217.322] -/Border [0 0 0] ->> -endobj -4963 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4964 0 obj -<< -/Subtype /Link -/A 4963 0 R -/Type /Annot -/Rect [396 206.009 401.4 217.322] -/Border [0 0 0] ->> -endobj -4965 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4966 0 obj -<< -/Subtype /Link -/A 4965 0 R -/Type /Annot -/Rect [401.4 206.009 417.6 217.322] -/Border [0 0 0] ->> -endobj -4967 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4968 0 obj -<< -/Subtype /Link -/A 4967 0 R -/Type /Annot -/Rect [417.6 206.009 423 217.322] -/Border [0 0 0] ->> -endobj -4969 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4970 0 obj -<< -/Subtype /Link -/A 4969 0 R -/Type /Annot -/Rect [423 206.009 428.4 217.322] -/Border [0 0 0] ->> -endobj -4971 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4972 0 obj -<< -/Subtype /Link -/A 4971 0 R -/Type /Annot -/Rect [72 194.696 88.2 206.009] -/Border [0 0 0] ->> -endobj -4973 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4974 0 obj -<< -/Subtype /Link -/A 4973 0 R -/Type /Annot -/Rect [88.2 194.696 93.6 206.009] -/Border [0 0 0] ->> -endobj -4975 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4976 0 obj -<< -/Subtype /Link -/A 4975 0 R -/Type /Annot -/Rect [93.6 194.696 115.2 206.009] -/Border [0 0 0] ->> -endobj -4977 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4978 0 obj -<< -/Subtype /Link -/A 4977 0 R -/Type /Annot -/Rect [115.2 194.696 120.6 206.009] -/Border [0 0 0] ->> -endobj -4979 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4980 0 obj -<< -/Subtype /Link -/A 4979 0 R -/Type /Annot -/Rect [120.6 194.696 169.2 206.009] -/Border [0 0 0] ->> -endobj -4981 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4982 0 obj -<< -/Subtype /Link -/A 4981 0 R -/Type /Annot -/Rect [169.2 194.696 174.6 206.009] -/Border [0 0 0] ->> -endobj -4983 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4984 0 obj -<< -/Subtype /Link -/A 4983 0 R -/Type /Annot -/Rect [174.6 194.696 180 206.009] -/Border [0 0 0] ->> -endobj -4985 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4986 0 obj -<< -/Subtype /Link -/A 4985 0 R -/Type /Annot -/Rect [180 194.696 196.2 206.009] -/Border [0 0 0] ->> -endobj -4987 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4988 0 obj -<< -/Subtype /Link -/A 4987 0 R -/Type /Annot -/Rect [196.2 194.696 201.6 206.009] -/Border [0 0 0] ->> -endobj -4989 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4990 0 obj -<< -/Subtype /Link -/A 4989 0 R -/Type /Annot -/Rect [201.6 194.696 207 206.009] -/Border [0 0 0] ->> -endobj -4991 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4992 0 obj -<< -/Subtype /Link -/A 4991 0 R -/Type /Annot -/Rect [207 194.696 223.2 206.009] -/Border [0 0 0] ->> -endobj -4993 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4994 0 obj -<< -/Subtype /Link -/A 4993 0 R -/Type /Annot -/Rect [223.2 194.696 228.6 206.009] -/Border [0 0 0] ->> -endobj -4995 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4996 0 obj -<< -/Subtype /Link -/A 4995 0 R -/Type /Annot -/Rect [228.6 194.696 234 206.009] -/Border [0 0 0] ->> -endobj -4997 0 obj -<< -/S /URI -/URI (false) ->> -endobj -4998 0 obj -<< -/Subtype /Link -/A 4997 0 R -/Type /Annot -/Rect [72 172.07 169.2 183.383] -/Border [0 0 0] ->> -endobj -4999 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5000 0 obj -<< -/Subtype /Link -/A 4999 0 R -/Type /Annot -/Rect [72 160.757 88.2 172.07] -/Border [0 0 0] ->> -endobj -5001 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5002 0 obj -<< -/Subtype /Link -/A 5001 0 R -/Type /Annot -/Rect [88.2 160.757 93.6 172.07] -/Border [0 0 0] ->> -endobj -5003 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5004 0 obj -<< -/Subtype /Link -/A 5003 0 R -/Type /Annot -/Rect [93.6 160.757 120.6 172.07] -/Border [0 0 0] ->> -endobj -5005 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5006 0 obj -<< -/Subtype /Link -/A 5005 0 R -/Type /Annot -/Rect [120.6 160.757 126 172.07] -/Border [0 0 0] ->> -endobj -5007 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5008 0 obj -<< -/Subtype /Link -/A 5007 0 R -/Type /Annot -/Rect [126 160.757 223.2 172.07] -/Border [0 0 0] ->> -endobj -5009 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5010 0 obj -<< -/Subtype /Link -/A 5009 0 R -/Type /Annot -/Rect [223.2 160.757 228.6 172.07] -/Border [0 0 0] ->> -endobj -5011 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5012 0 obj -<< -/Subtype /Link -/A 5011 0 R -/Type /Annot -/Rect [228.6 160.757 234 172.07] -/Border [0 0 0] ->> -endobj -5013 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5014 0 obj -<< -/Subtype /Link -/A 5013 0 R -/Type /Annot -/Rect [234 160.757 250.2 172.07] -/Border [0 0 0] ->> -endobj -5015 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5016 0 obj -<< -/Subtype /Link -/A 5015 0 R -/Type /Annot -/Rect [250.2 160.757 255.6 172.07] -/Border [0 0 0] ->> -endobj -5017 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5018 0 obj -<< -/Subtype /Link -/A 5017 0 R -/Type /Annot -/Rect [255.6 160.757 261 172.07] -/Border [0 0 0] ->> -endobj -5019 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5020 0 obj -<< -/Subtype /Link -/A 5019 0 R -/Type /Annot -/Rect [261 160.757 277.2 172.07] -/Border [0 0 0] ->> -endobj -5021 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5022 0 obj -<< -/Subtype /Link -/A 5021 0 R -/Type /Annot -/Rect [277.2 160.757 282.6 172.07] -/Border [0 0 0] ->> -endobj -5023 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5024 0 obj -<< -/Subtype /Link -/A 5023 0 R -/Type /Annot -/Rect [282.6 160.757 288 172.07] -/Border [0 0 0] ->> -endobj -5025 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5026 0 obj -<< -/Subtype /Link -/A 5025 0 R -/Type /Annot -/Rect [288 160.757 293.4 172.07] -/Border [0 0 0] ->> -endobj -5027 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5028 0 obj -<< -/Subtype /Link -/A 5027 0 R -/Type /Annot -/Rect [293.4 160.757 320.4 172.07] -/Border [0 0 0] ->> -endobj -5029 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5030 0 obj -<< -/Subtype /Link -/A 5029 0 R -/Type /Annot -/Rect [320.4 160.757 325.8 172.07] -/Border [0 0 0] ->> -endobj -5031 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5032 0 obj -<< -/Subtype /Link -/A 5031 0 R -/Type /Annot -/Rect [325.8 160.757 331.2 172.07] -/Border [0 0 0] ->> -endobj -5033 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5034 0 obj -<< -/Subtype /Link -/A 5033 0 R -/Type /Annot -/Rect [331.2 160.757 352.8 172.07] -/Border [0 0 0] ->> -endobj -5035 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5036 0 obj -<< -/Subtype /Link -/A 5035 0 R -/Type /Annot -/Rect [352.8 160.757 358.2 172.07] -/Border [0 0 0] ->> -endobj -5037 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5038 0 obj -<< -/Subtype /Link -/A 5037 0 R -/Type /Annot -/Rect [358.2 160.757 363.6 172.07] -/Border [0 0 0] ->> -endobj -5039 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5040 0 obj -<< -/Subtype /Link -/A 5039 0 R -/Type /Annot -/Rect [72 149.444 88.2 160.757] -/Border [0 0 0] ->> -endobj -5041 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5042 0 obj -<< -/Subtype /Link -/A 5041 0 R -/Type /Annot -/Rect [88.2 149.444 93.6 160.757] -/Border [0 0 0] ->> -endobj -5043 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5044 0 obj -<< -/Subtype /Link -/A 5043 0 R -/Type /Annot -/Rect [93.6 149.444 115.2 160.757] -/Border [0 0 0] ->> -endobj -5045 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5046 0 obj -<< -/Subtype /Link -/A 5045 0 R -/Type /Annot -/Rect [115.2 149.444 120.6 160.757] -/Border [0 0 0] ->> -endobj -5047 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5048 0 obj -<< -/Subtype /Link -/A 5047 0 R -/Type /Annot -/Rect [120.6 149.444 158.4 160.757] -/Border [0 0 0] ->> -endobj -5049 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5050 0 obj -<< -/Subtype /Link -/A 5049 0 R -/Type /Annot -/Rect [158.4 149.444 163.8 160.757] -/Border [0 0 0] ->> -endobj -5051 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5052 0 obj -<< -/Subtype /Link -/A 5051 0 R -/Type /Annot -/Rect [163.8 149.444 169.2 160.757] -/Border [0 0 0] ->> -endobj -5053 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5054 0 obj -<< -/Subtype /Link -/A 5053 0 R -/Type /Annot -/Rect [169.2 149.444 185.4 160.757] -/Border [0 0 0] ->> -endobj -5055 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5056 0 obj -<< -/Subtype /Link -/A 5055 0 R -/Type /Annot -/Rect [185.4 149.444 190.8 160.757] -/Border [0 0 0] ->> -endobj -5057 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5058 0 obj -<< -/Subtype /Link -/A 5057 0 R -/Type /Annot -/Rect [190.8 149.444 196.2 160.757] -/Border [0 0 0] ->> -endobj -5059 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5060 0 obj -<< -/Subtype /Link -/A 5059 0 R -/Type /Annot -/Rect [196.2 149.444 212.4 160.757] -/Border [0 0 0] ->> -endobj -5061 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5062 0 obj -<< -/Subtype /Link -/A 5061 0 R -/Type /Annot -/Rect [212.4 149.444 217.8 160.757] -/Border [0 0 0] ->> -endobj -5063 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5064 0 obj -<< -/Subtype /Link -/A 5063 0 R -/Type /Annot -/Rect [217.8 149.444 223.2 160.757] -/Border [0 0 0] ->> -endobj -5065 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5066 0 obj -<< -/Subtype /Link -/A 5065 0 R -/Type /Annot -/Rect [72 126.818 514.8 138.131] -/Border [0 0 0] ->> -endobj -5067 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5068 0 obj -<< -/Subtype /Link -/A 5067 0 R -/Type /Annot -/Rect [72 115.505 88.2 126.818] -/Border [0 0 0] ->> -endobj -5069 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5070 0 obj -<< -/Subtype /Link -/A 5069 0 R -/Type /Annot -/Rect [88.2 115.505 93.6 126.818] -/Border [0 0 0] ->> -endobj -5071 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5072 0 obj -<< -/Subtype /Link -/A 5071 0 R -/Type /Annot -/Rect [93.6 115.505 120.6 126.818] -/Border [0 0 0] ->> -endobj -5073 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5074 0 obj -<< -/Subtype /Link -/A 5073 0 R -/Type /Annot -/Rect [120.6 115.505 126 126.818] -/Border [0 0 0] ->> -endobj -5075 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5076 0 obj -<< -/Subtype /Link -/A 5075 0 R -/Type /Annot -/Rect [126 115.505 223.2 126.818] -/Border [0 0 0] ->> -endobj -5077 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5078 0 obj -<< -/Subtype /Link -/A 5077 0 R -/Type /Annot -/Rect [223.2 115.505 228.6 126.818] -/Border [0 0 0] ->> -endobj -5079 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5080 0 obj -<< -/Subtype /Link -/A 5079 0 R -/Type /Annot -/Rect [228.6 115.505 234 126.818] -/Border [0 0 0] ->> -endobj -5081 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5082 0 obj -<< -/Subtype /Link -/A 5081 0 R -/Type /Annot -/Rect [234 115.505 250.2 126.818] -/Border [0 0 0] ->> -endobj -5083 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5084 0 obj -<< -/Subtype /Link -/A 5083 0 R -/Type /Annot -/Rect [250.2 115.505 255.6 126.818] -/Border [0 0 0] ->> -endobj -5085 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5086 0 obj -<< -/Subtype /Link -/A 5085 0 R -/Type /Annot -/Rect [255.6 115.505 261 126.818] -/Border [0 0 0] ->> -endobj -5087 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5088 0 obj -<< -/Subtype /Link -/A 5087 0 R -/Type /Annot -/Rect [261 115.505 271.8 126.818] -/Border [0 0 0] ->> -endobj -5089 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5090 0 obj -<< -/Subtype /Link -/A 5089 0 R -/Type /Annot -/Rect [271.8 115.505 277.2 126.818] -/Border [0 0 0] ->> -endobj -5091 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5092 0 obj -<< -/Subtype /Link -/A 5091 0 R -/Type /Annot -/Rect [277.2 115.505 282.6 126.818] -/Border [0 0 0] ->> -endobj -5093 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5094 0 obj -<< -/Subtype /Link -/A 5093 0 R -/Type /Annot -/Rect [282.6 115.505 288 126.818] -/Border [0 0 0] ->> -endobj -5095 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5096 0 obj -<< -/Subtype /Link -/A 5095 0 R -/Type /Annot -/Rect [288 115.505 304.2 126.818] -/Border [0 0 0] ->> -endobj -5097 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5098 0 obj -<< -/Subtype /Link -/A 5097 0 R -/Type /Annot -/Rect [304.2 115.505 309.6 126.818] -/Border [0 0 0] ->> -endobj -5099 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5100 0 obj -<< -/Subtype /Link -/A 5099 0 R -/Type /Annot -/Rect [309.6 115.505 315 126.818] -/Border [0 0 0] ->> -endobj -5101 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5102 0 obj -<< -/Subtype /Link -/A 5101 0 R -/Type /Annot -/Rect [315 115.505 320.4 126.818] -/Border [0 0 0] ->> -endobj -5103 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5104 0 obj -<< -/Subtype /Link -/A 5103 0 R -/Type /Annot -/Rect [320.4 115.505 336.6 126.818] -/Border [0 0 0] ->> -endobj -5105 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5106 0 obj -<< -/Subtype /Link -/A 5105 0 R -/Type /Annot -/Rect [336.6 115.505 342 126.818] -/Border [0 0 0] ->> -endobj -5107 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5108 0 obj -<< -/Subtype /Link -/A 5107 0 R -/Type /Annot -/Rect [342 115.505 347.4 126.818] -/Border [0 0 0] ->> -endobj -5109 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5110 0 obj -<< -/Subtype /Link -/A 5109 0 R -/Type /Annot -/Rect [347.4 115.505 363.6 126.818] -/Border [0 0 0] ->> -endobj -5111 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5112 0 obj -<< -/Subtype /Link -/A 5111 0 R -/Type /Annot -/Rect [363.6 115.505 369 126.818] -/Border [0 0 0] ->> -endobj -5113 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5114 0 obj -<< -/Subtype /Link -/A 5113 0 R -/Type /Annot -/Rect [369 115.505 374.4 126.818] -/Border [0 0 0] ->> -endobj -5115 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5116 0 obj -<< -/Subtype /Link -/A 5115 0 R -/Type /Annot -/Rect [374.4 115.505 379.8 126.818] -/Border [0 0 0] ->> -endobj -5117 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5118 0 obj -<< -/Subtype /Link -/A 5117 0 R -/Type /Annot -/Rect [379.8 115.505 406.8 126.818] -/Border [0 0 0] ->> -endobj -5119 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5120 0 obj -<< -/Subtype /Link -/A 5119 0 R -/Type /Annot -/Rect [406.8 115.505 412.2 126.818] -/Border [0 0 0] ->> -endobj -5121 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5122 0 obj -<< -/Subtype /Link -/A 5121 0 R -/Type /Annot -/Rect [412.2 115.505 417.6 126.818] -/Border [0 0 0] ->> -endobj -5123 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5124 0 obj -<< -/Subtype /Link -/A 5123 0 R -/Type /Annot -/Rect [417.6 115.505 460.8 126.818] -/Border [0 0 0] ->> -endobj -5125 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5126 0 obj -<< -/Subtype /Link -/A 5125 0 R -/Type /Annot -/Rect [460.8 115.505 466.2 126.818] -/Border [0 0 0] ->> -endobj -5127 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5128 0 obj -<< -/Subtype /Link -/A 5127 0 R -/Type /Annot -/Rect [466.2 115.505 471.6 126.818] -/Border [0 0 0] ->> -endobj -5129 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5130 0 obj -<< -/Subtype /Link -/A 5129 0 R -/Type /Annot -/Rect [471.6 115.505 504 126.818] -/Border [0 0 0] ->> -endobj -5131 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5132 0 obj -<< -/Subtype /Link -/A 5131 0 R -/Type /Annot -/Rect [504 115.505 509.4 126.818] -/Border [0 0 0] ->> -endobj -5133 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5134 0 obj -<< -/Subtype /Link -/A 5133 0 R -/Type /Annot -/Rect [509.4 115.505 514.8 126.818] -/Border [0 0 0] ->> -endobj -5135 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5136 0 obj -<< -/Subtype /Link -/A 5135 0 R -/Type /Annot -/Rect [72 104.192 115.2 115.505] -/Border [0 0 0] ->> -endobj -5137 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5138 0 obj -<< -/Subtype /Link -/A 5137 0 R -/Type /Annot -/Rect [115.2 104.192 120.6 115.505] -/Border [0 0 0] ->> -endobj -5139 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5140 0 obj -<< -/Subtype /Link -/A 5139 0 R -/Type /Annot -/Rect [120.6 104.192 126 115.505] -/Border [0 0 0] ->> -endobj -5141 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5142 0 obj -<< -/Subtype /Link -/A 5141 0 R -/Type /Annot -/Rect [72 92.879 88.2 104.192] -/Border [0 0 0] ->> -endobj -5143 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5144 0 obj -<< -/Subtype /Link -/A 5143 0 R -/Type /Annot -/Rect [88.2 92.879 93.6 104.192] -/Border [0 0 0] ->> -endobj -5145 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5146 0 obj -<< -/Subtype /Link -/A 5145 0 R -/Type /Annot -/Rect [93.6 92.879 115.2 104.192] -/Border [0 0 0] ->> -endobj -5147 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5148 0 obj -<< -/Subtype /Link -/A 5147 0 R -/Type /Annot -/Rect [115.2 92.879 120.6 104.192] -/Border [0 0 0] ->> -endobj -5149 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5150 0 obj -<< -/Subtype /Link -/A 5149 0 R -/Type /Annot -/Rect [120.6 92.879 136.8 104.192] -/Border [0 0 0] ->> -endobj -5151 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5152 0 obj -<< -/Subtype /Link -/A 5151 0 R -/Type /Annot -/Rect [136.8 92.879 142.2 104.192] -/Border [0 0 0] ->> -endobj -5153 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5154 0 obj -<< -/Subtype /Link -/A 5153 0 R -/Type /Annot -/Rect [142.2 92.879 147.6 104.192] -/Border [0 0 0] ->> -endobj -5155 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5156 0 obj -<< -/Subtype /Link -/A 5155 0 R -/Type /Annot -/Rect [147.6 92.879 158.4 104.192] -/Border [0 0 0] ->> -endobj -5157 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5158 0 obj -<< -/Subtype /Link -/A 5157 0 R -/Type /Annot -/Rect [158.4 92.879 163.8 104.192] -/Border [0 0 0] ->> -endobj -5159 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5160 0 obj -<< -/Subtype /Link -/A 5159 0 R -/Type /Annot -/Rect [163.8 92.879 169.2 104.192] -/Border [0 0 0] ->> -endobj -5161 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5162 0 obj -<< -/Subtype /Link -/A 5161 0 R -/Type /Annot -/Rect [169.2 92.879 185.4 104.192] -/Border [0 0 0] ->> -endobj -5163 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5164 0 obj -<< -/Subtype /Link -/A 5163 0 R -/Type /Annot -/Rect [185.4 92.879 190.8 104.192] -/Border [0 0 0] ->> -endobj -5165 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5166 0 obj -<< -/Subtype /Link -/A 5165 0 R -/Type /Annot -/Rect [190.8 92.879 196.2 104.192] -/Border [0 0 0] ->> -endobj -5167 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5168 0 obj -<< -/Subtype /Link -/A 5167 0 R -/Type /Annot -/Rect [196.2 92.879 212.4 104.192] -/Border [0 0 0] ->> -endobj -5169 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5170 0 obj -<< -/Subtype /Link -/A 5169 0 R -/Type /Annot -/Rect [212.4 92.879 217.8 104.192] -/Border [0 0 0] ->> -endobj -5171 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5172 0 obj -<< -/Subtype /Link -/A 5171 0 R -/Type /Annot -/Rect [217.8 92.879 223.2 104.192] -/Border [0 0 0] ->> -endobj -5173 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5174 0 obj -<< -/Subtype /Link -/A 5173 0 R -/Type /Annot -/Rect [223.2 92.879 255.6 104.192] -/Border [0 0 0] ->> -endobj -5175 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5176 0 obj -<< -/Subtype /Link -/A 5175 0 R -/Type /Annot -/Rect [255.6 92.879 261 104.192] -/Border [0 0 0] ->> -endobj -5177 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5178 0 obj -<< -/Subtype /Link -/A 5177 0 R -/Type /Annot -/Rect [261 92.879 266.4 104.192] -/Border [0 0 0] ->> -endobj -5179 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5180 0 obj -<< -/Subtype /Link -/A 5179 0 R -/Type /Annot -/Rect [72 81.566 88.2 92.879] -/Border [0 0 0] ->> -endobj -5181 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5182 0 obj -<< -/Subtype /Link -/A 5181 0 R -/Type /Annot -/Rect [88.2 81.566 93.6 92.879] -/Border [0 0 0] ->> -endobj -5183 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5184 0 obj -<< -/Subtype /Link -/A 5183 0 R -/Type /Annot -/Rect [93.6 81.566 115.2 92.879] -/Border [0 0 0] ->> -endobj -5185 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5186 0 obj -<< -/Subtype /Link -/A 5185 0 R -/Type /Annot -/Rect [115.2 81.566 120.6 92.879] -/Border [0 0 0] ->> -endobj -5187 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5188 0 obj -<< -/Subtype /Link -/A 5187 0 R -/Type /Annot -/Rect [120.6 81.566 174.6 92.879] -/Border [0 0 0] ->> -endobj -5189 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5190 0 obj -<< -/Subtype /Link -/A 5189 0 R -/Type /Annot -/Rect [174.6 81.566 180 92.879] -/Border [0 0 0] ->> -endobj -5191 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5192 0 obj -<< -/Subtype /Link -/A 5191 0 R -/Type /Annot -/Rect [180 81.566 185.4 92.879] -/Border [0 0 0] ->> -endobj -5193 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5194 0 obj -<< -/Subtype /Link -/A 5193 0 R -/Type /Annot -/Rect [185.4 81.566 201.6 92.879] -/Border [0 0 0] ->> -endobj -5195 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5196 0 obj -<< -/Subtype /Link -/A 5195 0 R -/Type /Annot -/Rect [201.6 81.566 207 92.879] -/Border [0 0 0] ->> -endobj -5197 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5198 0 obj -<< -/Subtype /Link -/A 5197 0 R -/Type /Annot -/Rect [207 81.566 212.4 92.879] -/Border [0 0 0] ->> -endobj -5199 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5200 0 obj -<< -/Subtype /Link -/A 5199 0 R -/Type /Annot -/Rect [212.4 81.566 217.8 92.879] -/Border [0 0 0] ->> -endobj -5201 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5202 0 obj -<< -/Subtype /Link -/A 5201 0 R -/Type /Annot -/Rect [217.8 81.566 223.2 92.879] -/Border [0 0 0] ->> -endobj -5203 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5204 0 obj -<< -/Subtype /Link -/A 5203 0 R -/Type /Annot -/Rect [223.2 81.566 228.6 92.879] -/Border [0 0 0] ->> -endobj -4615 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 4613 0 R -/Resources 4614 0 R -/Annots [4618 0 R 4620 0 R 4622 0 R 4624 0 R 4626 0 R 4628 0 R 4630 0 R 4632 0 R 4634 0 R 4636 0 R 4638 0 R 4640 0 R 4642 0 R 4644 0 R 4646 0 R 4648 0 R 4650 0 R 4652 0 R 4654 0 R 4656 0 R 4658 0 R 4660 0 R 4662 0 R 4664 0 R 4666 0 R 4668 0 R 4670 0 R 4672 0 R 4674 0 R 4676 0 R 4678 0 R 4680 0 R 4682 0 R 4684 0 R 4686 0 R 4688 0 R 4690 0 R 4692 0 R 4694 0 R 4696 0 R 4698 0 R 4700 0 R 4702 0 R 4704 0 R 4706 0 R 4708 0 R 4710 0 R 4712 0 R 4714 0 R 4716 0 R 4718 0 R 4720 0 R 4722 0 R 4724 0 R 4726 0 R 4728 0 R 4730 0 R 4732 0 R 4734 0 R 4736 0 R 4738 0 R 4740 0 R 4742 0 R 4744 0 R 4746 0 R 4748 0 R 4750 0 R 4752 0 R 4754 0 R 4756 0 R 4758 0 R 4760 0 R 4762 0 R 4764 0 R 4766 0 R 4768 0 R 4770 0 R 4772 0 R 4774 0 R 4776 0 R 4778 0 R 4780 0 R 4782 0 R 4784 0 R 4786 0 R 4788 0 R 4790 0 R 4792 0 R 4794 0 R 4796 0 R 4798 0 R 4800 0 R 4802 0 R 4804 0 R 4806 0 R 4808 0 R 4810 0 R 4812 0 R 4814 0 R 4816 0 R 4818 0 R 4820 0 R 4822 0 R 4824 0 R 4826 0 R 4828 0 R 4830 0 R 4832 0 R 4834 0 R 4836 0 R 4838 0 R 4840 0 R 4842 0 R 4844 0 R 4846 0 R 4848 0 R 4850 0 R 4852 0 R 4854 0 R 4856 0 R 4858 0 R 4860 0 R 4862 0 R 4864 0 R 4866 0 R 4868 0 R 4870 0 R 4872 0 R 4874 0 R 4876 0 R 4878 0 R 4880 0 R 4882 0 R 4884 0 R 4886 0 R 4888 0 R 4890 0 R 4892 0 R 4894 0 R 4896 0 R 4898 0 R 4900 0 R 4902 0 R 4904 0 R 4906 0 R 4908 0 R 4910 0 R 4912 0 R 4914 0 R 4916 0 R 4918 0 R 4920 0 R 4922 0 R 4924 0 R 4926 0 R 4928 0 R 4930 0 R 4932 0 R 4934 0 R 4936 0 R 4938 0 R 4940 0 R 4942 0 R 4944 0 R 4946 0 R 4948 0 R 4950 0 R 4952 0 R 4954 0 R 4956 0 R 4958 0 R 4960 0 R 4962 0 R 4964 0 R 4966 0 R 4968 0 R 4970 0 R 4972 0 R 4974 0 R 4976 0 R 4978 0 R 4980 0 R 4982 0 R 4984 0 R 4986 0 R 4988 0 R 4990 0 R 4992 0 R 4994 0 R 4996 0 R 4998 0 R 5000 0 R 5002 0 R 5004 0 R 5006 0 R 5008 0 R 5010 0 R 5012 0 R 5014 0 R 5016 0 R 5018 0 R 5020 0 R 5022 0 R 5024 0 R 5026 0 R 5028 0 R 5030 0 R 5032 0 R 5034 0 R 5036 0 R 5038 0 R 5040 0 R 5042 0 R 5044 0 R 5046 0 R 5048 0 R 5050 0 R 5052 0 R 5054 0 R 5056 0 R 5058 0 R 5060 0 R 5062 0 R 5064 0 R 5066 0 R 5068 0 R 5070 0 R 5072 0 R 5074 0 R 5076 0 R 5078 0 R 5080 0 R 5082 0 R 5084 0 R 5086 0 R 5088 0 R 5090 0 R 5092 0 R 5094 0 R 5096 0 R 5098 0 R 5100 0 R 5102 0 R 5104 0 R 5106 0 R 5108 0 R 5110 0 R 5112 0 R 5114 0 R 5116 0 R 5118 0 R 5120 0 R 5122 0 R 5124 0 R 5126 0 R 5128 0 R 5130 0 R 5132 0 R 5134 0 R 5136 0 R 5138 0 R 5140 0 R 5142 0 R 5144 0 R 5146 0 R 5148 0 R 5150 0 R 5152 0 R 5154 0 R 5156 0 R 5158 0 R 5160 0 R 5162 0 R 5164 0 R 5166 0 R 5168 0 R 5170 0 R 5172 0 R 5174 0 R 5176 0 R 5178 0 R 5180 0 R 5182 0 R 5184 0 R 5186 0 R 5188 0 R 5190 0 R 5192 0 R 5194 0 R 5196 0 R 5198 0 R 5200 0 R 5202 0 R 5204 0 R] ->> -endobj -4614 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -4613 0 obj -<< -/Length 3409 -/Filter /FlateDecode ->> -stream -x]ˎWd,6EçD,ח*=Oے*V%wO[vp??//_H8F[:HO:}s81yv}OP^_ʽgj%{]9t|"8}GtS4OdݘI?+A&~z^1tΩ-=u奔/ 9s:*RxN׈EΛt%'Y:W_kcs d_Ǘ^RkV}@ ;>瓜\OIL2 %g `:O觏dP}?aw{VZ~3).#@`n!vl -U"قsՂVNI^!|d=4;\֑aAzڸEw ,靭악$/uǸgd味չL.]uVLx0uo/0Iec'MlQ zc+=ѻunmSϟ+YǒٗhcS4cy%K;Dzٺ,%č ^u~ՑygE_nM<)2gs@?gInLU>=7cz%s̛E-yl;i#tW hWC\I],j\qHN)T&>z.JrͻVZLfk2"M= -@Ʃc[+!k&kqy`l^z渓/Ҁ)W)F!!@St2@P"~r ,y{ 8 -+'bȽ[q;؈ b%?o- aO~Հ=o޹letHh⇢:uG+Jr> slpwcƔҡfwd_sΈԊiʳrƲ/O!tUDM"]x6 ,g3< }M';xfĻ%AR3Re2*]a\j){/_o8^D=liXi!Ɨb1ENhײD(PyG:f"!l+v%5GpänC>U+d\.utiFݢ X|gd!k %[ZlKť QN+3:nh˱>/6g inct> -WGꋖd[AVic0}^}~AA27kp8%X,].Z7V'f 3Q[}Zh7N FOKےRz;"00ϵ#rp0h`J2{AHx5W}r1<F# >,ZCbRsM*ܫ>.H1[%ػMae(sTfmy֘j PZQJS.y)$_{5$_eL -.s{Zq._,*o|h9.W΍=ڦ4QeU!2O~jDHc̊-d=l ;d)E'5lCǃϦ%ҕ4Prͤcވ|!;AdfKX(ylC/h 9SAB53 ¡ЋC7F~3,ecX -ҏ7V; ut ][5[Y# T6劉 `hi'K=D yOE JPJxNLbMikڠ"zZyI c|VLw O~fŀ:bƅh׌R#3b+d6Pyͳ6}<9fJ@I/cD̔}6zƣ/țp7U6UBh;II& ˢWt -}O8X/%V( i0!5zABj 6!`WBfu Rizz=| c1hN"svKL7Ot+>NJaT-WA \@x}j0 2hxYfV24st:d4pR'\(ń~V -ArtbL#! _P:³BT7s+%=O?@pGe!7o}Dxdt?"2Dosa(J@hBk0E %t2% ŗ~"Er<}OQRFAv#M,iR{ ڃ 4`=߃ k{~Cv,r>Av{=g{~k])e*&?ݱ^x\_N),BCnB;q?'3$i %h|IwttnM1#|XE~~KV~\@-Ÿd-*:³d?5E0}sC#&79;Jnh367 X,4V˗F]Y%4-*{ק Q'mw>&'c"^FZS33 -endstream -endobj -5208 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5209 0 obj -<< -/Subtype /Link -/A 5208 0 R -/Type /Annot -/Rect [72 697.5 294.856445 710] -/Border [0 0 0] ->> -endobj -5210 0 obj -<< -/Type /XObject -/Subtype /Image -/BitsPerComponent 8 -/Width 400 -/Height 533 -/ColorSpace /DeviceRGB -/Filter /DCTDecode -/Length 61494 ->> -stream -JFIFHH AppleMark - XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv -#(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y - -' -= -T -j - - - - - - " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# -#8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G -k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 -uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! -zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmC  -   $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"O !1A"Qaq2#BR$3brCSs%5Dc46Ed1!1A"Qa2q#Bb ?b<7WP !LP1?JJJv)(RP14Jn))]KI@ ]Kh4򍴣3L''4Wb IN%%u-u&+qkQLTwmm8>kNӍVa7 PcDP#jh|\[%$bWR""bؠBbLWbPq]v+@ !&)1@ -RjJv+Lc+ؤ HiؤRP18PqINu6m%: JJu%7ƝLPiTw4dҞ(ɤv(v)(1]ZPkخ)Q͸>ÚeMFclyW'k_.LDAq|t86 qsNI`cڝPI+TE^ydbU~=Gzѡ&80AW1{_U 'Pn[~ϑPXdJ$W![ Gڦfo|tWp;A%MRm29{cњ"`-*(G=uM5H 2*:MZtئ!)qKPWbPq]v+@ 4P &)E-Ju&(RbLR?))RP1RbSIn+Ԙ*\9>ԘWSImu;ؠ )q]jJ@9ڬI˴ c#>p:~4cl QBЈ QA;{r*0HBpW*FGZ' ̇O-Es&1xAugwt|u PWo99-Jŋ*yyKoYq5+cDmVko^;z`h|~KLRÍ,{71#VuI콪iVaRII F h-+o#dp^O֊|j&KXC$HE>w9S)k]/Q 3ӑXN{ruCu6]|42JPd?ڪC(cE e,:Vh5t{Sd7zgJȔ@VMOk2eĠcQFlrO5YuUfF -߄~6fO_s_ң[QͅOpZ,0_I+WuIjLcAU6nkD%*UE6 -\WbDLRؠ5اbWbP"ҝD]ӁN$66))S&)LS(>RS]f+ԘJ7اb E\Y0hԘؙڢ<.+v)1@ LS7"T+;ckg)I3)$E5弊vӥ*:pqJ$=:⁥cUpBҋ[rT9$mxdҍQ|?3u8=1ҨqZ)f} %힚map -*{/ךe:W% |mi;[#+n|FpO\c"'vW=`2>JY1S7 > EG3H #7/FeS ,vRqht6l6oLap3랕D[ׄ]$aA.PB*đ?䞕LJ&fBC3n5ח -'ئ"#'댞{OӢq=WW9>qNJvg}Q O'_ [Z@ 'N<Еd]I-7,I3p#"{vmH($}z+gN5,jNk>OiVb&\;(Q3ztZLrNXۻJ}̲LWb]LWbBb7.(߇X}M; -I>F^D&)ئ!;Wb]v)(;ؠcqIu&(bTJT:Baj,dRLb7اbLRb]@ &)خ$Q͖U#1,ilߙx` >N0ps֟"+v=꜉WܷJv0BoOOjbR4 -2s׷ZumѣV&}8C_J s"I˽uǵtncKG)Ֆ9-6L\"_ Bnlg ciU$hlFv&w)SAx뚳]CCةd1- }p:dPDŧnXA,TrЎr=zTYtMˡ،0g,s.giXV(8ܤ>>Z`v& x'82*Ċr>d&9w=qO&)RbLSRbLP1]v+@bBcMDG -I<94BsM< `b!;ؠbWbLSIn+Nv( -Yv+@b?Nnki\DEy$sRYH2^=WI-'Âcz~{{I4'kJĽisi.!IK9+uZ=1/Yzn=g5_`U%Ν"% *ݞ9TfrJ>;|3 H(cj0$j|^gWW~H蓼ؠO9/`Ef$|>쫱i%Sy;91 ACߑ9Zoj7rB $ X<#㎼J:ۈ]0{7 L{j!h -*Ö dǵK4(.t*jb\ (v s3H9jxp/$(IPQp0$9 TOMGQ77(@MK}Xr[=1+m͢0$@,n;Rx$acev(aZq6v>RȘ{FjN;粁E᳢116)]Xrur1ZhķlHay:dV7ƣ&fߺ),dF!gfl\(q)d 0EWš#S1+lO~1]{KZI&eN·rz,($9B|?>>J_6@'vG[ sQFQ#ϗve9ތ%8T*~OӭQ6^1IOM" fvZ2X=1]P#طA늅, % -Vu>S= -,yS d;.Q(GŇsԆSUWS2d@*x!1]C壊Bŋi Oϵ[qo 9 -Śi^ٍwZ(#@R(\6?1R,^X]]C\rSHsS-hPqޝXOuO|b1aj2{eyNK+R22bp~C$vrD[]# CIJʕ>6#=핚|I>d$PsFsۥS^Hbl߆>3ßj5< :ʱDW*O^Xp{^{`b opd+q8W)[-Qn!;Wǵ]5IEj1Mwt9Cdc|J7Hr7S^zj*PLHdk-㏮>Ž.}9Yf dOߨV~ Yl5x䍏 -?zfgI%nE,ҁĒA,8<QkH810~B/%+?/G @A -s뚧I,TO9 I=InүoLp VeOJNm[eF1Y` 'S$rLBĥd+v8v#pp}s+܇@~~y" -uP b{ի[ȠxI0YAu)ynN88,8=j̍!lor##qI$JG-ͼx2YA>;ZIQ\XƱxp!;} {fJ˶+V'cYq QzZx\32 -9F?jqis,$CvLGkgxx4d#h'zvIq,i b,U<߮Oqrj.U.+ - |I6odpA=1_Z+Oouxs; d1o,h08ȴբ*#[HeKVL+'cO4&nkhUV7o= }yVQ"62Xzr -S"%wGܔAi=vu"5%Ϡrok8uiu,tIKso;~)!e9B=ANxvZ7u,4+;U'T-n}nKS^]o+r;IBfXᶸKF$!?<^:mfܤ/ O sI/YjIÈ08h<v*K:3=>U|3s,|Z4pU\ȨY].oӗC1Z+{y3p7!<|ގDϊ%i&D`@/9ӊka c0=2i[̏᳃f'j =1RCvW2P|zսhIJ=pVH^!(UJyیsu Fi%PpQ Z#%M$˰ q=ƭ>^i…q -ObbF6)_DGLhL1 ~\FDI P]r1A'1ցO=BG\F=~~nS{i#C,H6v($NG{U DKuKne2+fb~^h YB 2pq׃t湽^)ZFjQ-t{9S[;umxL]: t'qa|E[>!28)Y!`@Qߎ繇PNi$#C<{2 R>zڃՖށolULLHIc֏\KnH>V$ -crs45t[[<m HPA*ǂ -ncdfI 7ӯJRբ,!Y`*A>YT@K F$OMmb݆ypy֯}nQ)]CPM mBs#+?E8()@ҝ°NJf\Glة6m5qPG$겳$|e\vwMKmao3\"eqjIU6;nٶ%d`I`8ֲu٧E[$`;32g#ڛ ysq]sp4kH c/%.8F#8j>Y)zr5?똄r -\c݂FrOhEʛu} =sZUE$FI$|30p9P3\X2?mG\ z{{Y] -2;;֖VDټUX#rX53@dh+˰$6⢼EfV]ZEăF߄p:2\~>L$ԓ5ޛ\I\(,x8NN3UuMVy}̗ IcBÌwsӃj -O:Dipʒf9r+]Z8Hp )Q(eėK5̲\I$J&8D -C!iCC:B|?{_*/&. @(ngU%xݐ! J~oОDFǍR?v8\Uƶ?>nwc!WڠJ*Ԝ@v\KjbFpO VИx7;H35 {[xg8ul^|(MF[zU()͕ltPd -xq<9<ֺgnc)Ԉr -*sqשJ%}KCwI09Pch.6PAq"%I'W? e4=%ӖQs6kqm\[,?2PrRPWnI6rxE4jR+u<# (zz.,My2,-NI"6>FA #tælfy<dbBONrKdn>ܞ+6i&+T R 7aFH@䓞;py7Qݵۉvm#yz) e< -8}, qZʹ le  (S͎_*c(OTPXv;zskD;{ !#trGrGKxCH-(l0rA=8K^>&(1qk< +*X=\.sZlv m80Y@?PI', )bRs.y$ryﶠ%MM )&Kg7垕Ĵ{6赪x#Զ5׃d:&`/μ]\n, YB ˜WVLc~J hL".FѤ];DkK3n:4N>jz;IGaY56Aഷf[#ns9^EolQ|opTB.'I-#x8ٞ"^_zQt s8EeNy%6N{3 c 'tZvN^$]U&N=ϵoǚQm&,TOJyeB"X;NNY5b|zt:y{6aν3mv)W da%෺ı̧$+?: V )F>w,rF*rrv,xa#8n'/cӁE?ª,7Cz8惴SM&ۈh =*!cuG1cU=6])^py[ S]*)G"bBn9{WVnIlnc?Lщr= w3}V6QrOP W5ު^-# Ӝj[տ Hϔ2N2Gn7,VZ*' -0I=1gK$T}ƛ*P:>ۆzO /D:dĺ(5'=3Я ~jLH'msŜerq87:LKfc>1 ;2]>a˥%2Hwy cU/X&8˰,qӒ+LF~)X7MnP{d0 X!ASAӊ ,H7_K9;MrYxnd]6VL$t}',ogʺKe&4lLkOeO^(jr[D%ֻ#MnI6k,,wI#e%OL~XDVWz)HeހxayG *0GߥBxkdLjsjQXncF4`k"')F\_ᧈi\0" ѣ3ɐ2à=~64ShCo,)FanM]A -'`mU]rzsaG-QEQλD 0us3r7[!m' &˻ ScPm5Gy;vPNH #z,I 7nLOڛdĥ`3ƓNo˭|5Rp *Wཷ&Ig0|N9Ռncy^)Z(+Nё8N[ ȸX -Xrz^֩n -ɨ˧ot t]HX<#..-tƾQ*8㓃JQ}ݲ_c> ͽvlHo8\@eOkqXŒ̻T:`Ѭt].-*h q8<ϨIo5Λ"A K;#:>XdQ?'tD"8%ڼ?>{)P7d[GeA nϦZu`5$_7QHJ6<1Dp@$L d椔ޖREŸz1fFM̌'ϧn, [`HFv6\`t $r3@%!YAb0NO'5&ʲ71 s}ߔ\HQ L#Zӯ,Rew.,#LF[M%Y O,Ǒt'9V伺6u46ƀ"ߞl$# 68I6#EnI..yovF<\t'/Yo/y+qQ[KlP|HUNA\cAYil+F8L֩풔} e$B9%+9pYʡ$<0H{`9*ʟKM*JH# 9l=zԚlsK REl.rzZ`GRErjI,=L]p3Hϭ%f/PX}==j{$#o)~-\|UJk`H]Qy$Mg{AG]#|`>C=z;i&!HӶ(n‘]4o81uesʶrs(Io6uyaW< -NM-B^k;x q$Dži+f)3 Pӂ{v247UI.;nR^xJtwgy2rc? -ޤFH`^{sVm=-]2`W~\fY E cX\H@Fx.v' +LBj0y+%<5tT !yÐ}֯ifXusᜳnzv8*)]B431XvO|?%X] zbh%K dGAxU5g9UR c޿~)L+7sJm5qKۃPSK|q+H'~v FpM c;᱀ǐ:j<t8rMhtKTtaP22qlOtot -)򇢜y7.ַKlƬa ltRޜW aAV6-Q\|c&ӬnUF 0I!a:YXc #:-Ȉc$d'9ǶߥmKO;[G,}61 w֡Nn<c`ĠxMڔSC`wtH\Y$2!2FU=H-iDž5PL[eNs;9$މZ6Bڃ$Q:0ܕ o/a۵ 6 x3W֢O["6',snASBx& (Rɽx$qډ׃k.Ym[,ÑЌڢrܝgTE,2ycq^/|-uFR[\cO.['IWv8J=VTĖ1[ +aF+:s:Ӵ_[%v$ T^ >_,[o"Im'X110B4RKRFPȻco2 $?Joh,!$; uw.cupPF85i )^~'JjĐ>!$随MfR"7r%A$yC-(#XmEFqFFv L WXH3YK>3z{R#)98Uv,6mNpzSqmc+&X )xsL*ܹNjnL0x`g}pa&OҢfeO=${cҨwkxbcMaR72Ndyzs|F+!>5xc 0 TK;]lX)d I\ႎI5Kigf"xGq.H< J|{j\AO%97WVfkuŔLvhP-'=/w4LGS#a8 㩬h޽ċ7Lmt4x^kHbHwAW;OslTf]k bh` [ Nsׁ5;1 w# ޛ[II2ns!†{v -b̓t=Xd|(ApԂs#:Tڻx7*vC5àePHR@ϦG^mB1lX|A -tl ǧJ_\-i~fXUVbI"p;sɡBYrm4>]xP#uD{ U)XĨ0ܝLMKWeS;p<~8'~^H(*䒛uH,7Һ3(F=:E,D.6q -U<-F$hJ!VQ' ܓOzv4%E*eDA-5;+yVXVKџo 9AVvMSOHw̏N*` sִw:Fngl3;}H>(^dװܩZlAUʃsZ}KNCmFhQ啡*p2[,x9Vrf..*VLaAEa:i%ҕTXC+dsr3LTr=Ł3x',?Ìa}hw+w_ -Z;(#D,0O Ӧ~kOûu e߹E ڢ2 |gў@$ce }jΞq*$@:Pe[trWGd$dKXG2 sz{sBnW%2KܮNI=&NK1bOkcntFBD]tVYA9꭬^Fm0Y1sӱVVKne&S6I<*6Tk֓;PHURHPϷw %[ -X0pѴ Hq3Gi+Hyzg'QӢbi_f7];{:ǖgԸl8[#omD.-RD #!LCRgE0 ex^8?΢:rabC!Q ۃWʓG+픰 +wQǿ^՗}ͪjvlD4K$&#c<{ hgiL͈9 p=%i,WNa987CW%XDQޣB ]8 )8'icwH5@JI+EOym2+#xsDZwTgisLZΘkhc]qb={|Pu V&9Q185T%.E>%MV\E=i]K@A9~@$DX>#[>qdi&e juo69[χxfǝV@XДtSҴ&tirŀ7-[!@-$q֩jsT[f,9'QfC#C!E, ڄ^-Q\4iQб -''ﶪˍ(T,r| vy-ޢlw/m8O&<9s۵h #)L7L?>Ms֗K$mf`PRdp*{߈a&(v1 PO烟JK'/@2~}[e+3F5Z4+%y]و0sZBn.ުXB ͤix#8Ïz*0@ B*%vfBT8\ǐ*|UKfp -sy7* z^p1QǧWC涊.{su4 Aqk4x|IROo+GӵYe1A87)Lg}ϧaɛsM!粃zC8yI)VVw乸 QrZX;BW@aY=6Sn.O #{6BbJ "v3}:U-:eJڰTmݒj;VB"}s/<{oOI/53"m`D(f\n}w>Rs5LhtqD7m-mN왧3qp@QUtƒ/c[VgBp(όu ݡHYe4[A09 W9y5WR&mcTfv,p@{]?7:k$$Vmq5V74[kon#i~RcRљcsN'<߻0i68[B`G.ď+0A''$~+q *)fKA# (dqu"dmb3[i ̨:3\q rx4_V}Gp'~ʃf^Ge_\ռ1}mHq +&Ol1L6z-#.3o`cJ1$a/ ze[rxC9q7֗^:Qxn| 0FG'cVdȧcRM%꼶EeDٵFOԜc}[]NKK[e@1]|s0y"am}wӶ+r(nhڞw%;\If J88UJ87)}iI5 ucB]Pv;I$ҧ_sB0Q6ߚWPfNpL{[K}T4ͥ$Hs ܏J&T1bӜ!>jVbl&Ko b1ˎ(y]0 - q,N9kV6:ޜq N3sa)4 vR0V1 ߙԜ.Oѱiw:ZlhaXCW'c >"HH#+K@g{g4Y_ cq88Jw"]Adϰ\"ePAT@98ŪJwPK[7X#?*qӾ*:|=R,RBn08zezKh&cƥ%s)>UwkWgN0Xʉ0 UL絡Fek8[H@,T2/ -571KJQ190iwźe?.‘G~5,팩i<:Gn0Nֿ5~ cr(+Ϩ^v$[yaWF:~UCO:qs")e:}]~rNp88Ž19$VlnM ʖZ$_|uc랕dMv%Ȏ![$y'kqڲ]&"ͮeLʐ=S ڱ2H6pc#Fy>>QHœ[&Y)ZDl,sNO#y{x;F!pbX.VyF#$(U -1^Fy$/D3sMinfi'NTdX=SViu$U!K6RU*Qn6K]x$Ni ;x;hWUpLl8Hϩ4Jo.2r1`Hh^zl.2Ȳx Œ: ǟj)6R,d"}]0hGw 08qbCؕ\gr9_ .5EeXͶ(FXԮ2zZ Բi[4$|@[qfqUC[%+zFY)G N1(+K%ɿK@ERBqyo#]F([动A ,9wF=΅5"6]P0$ -=x=55LMhnSEnd/!;N1Ӯ #II"T ]Nb{o͕߄NɐJpA=_]\jz kz+0$}]G 7r_x|]u-#ۥkk)ZDO .?5ٞLy&xw2>%#u"VgQ;@ ==l#l,.R'o[˛rm5Hc8l|o<˾A!F >Gz[Mg5YG$r1 A9-Ul"ha#Dd *Wp;O8/tdM!#JXq#i>Ֆ0j%Sit<ZJ]IJ" IG^: -XŷaKv¾@ Qs5uƅ|k$BYE, 85-ntUTx;lzזhk -1}~-d(Ȣ -#%OMNM|iJ*@R1@Q-I+px9'E};Bi/s,%SktmEǸ9ּ-~ .#񢻄m;vr=kqI sUXz`ڼOM7L߫"4,F̑(/ 1ϧzvJ^>6>q-s$qVtm揶I-a3[iSsӭm4ܶEf~,ݴ9d&B@`*u5%ۛÊY2G?nեuy%J= (r63Qxɻ_ÿJ|;7Lpq؏cVK%r$&_Oqg=9I_̓j;;{[,In{vy]"94-D#%|9 ṅZS\vi%x#?΢$-v#,r@YG8k;vuugЙt)⑉VQgӱ#1Ri_LPѺ:xRID%˧|r*Nw }-V+*Où䷿Snoz_k4r-@;9{q-?-7FS0p瑎br-'٧ydu@G>]Fb[Ų5` .s'ܚT ٓOF0!xyo0R11.5[l-ʹ7LpSm?^eup;rr:0yf힥.,Tilo1(q^y3׺u $c&K;tھێvyn4ݖtqN>7i5'fK7=όՃ0qY=?;ey;(3.C6cN=x:[ib QHH5l{~ -܊ST$m_>_BF:w0TwE2׌>%wϵm^k[[bebr,KfEuՙ]an -N7 @5,2¶ _f ԒowM4I=ܖi<[6䡣̵{?6IdL1;:`uۤXn4r8 ugo}erE$w)pHxB:bQD qu# -ѕ8=}TWŶkKHċlAz}Iz 3[xDd"ےB=kb?hCFl.Wppͻ$FqO5sSצW7&yKIqѾp*xc4r-5KFYxBXz-։/M_jI$Hqz9=*kZ}ؿbr2s@5 ocu0]a3Ўzml| N-dG`K/AǠ8 n.B'W;JxdGKi I>6@x=Iϰ*mL¡]CO^ ws_bK{i?{*18 XZ*ç\B e5)Im0Y+`#ӊtܬƥ)P+Hޙ* -fi* hkN-坑$cxB/&hH\@'5T5r}ڭvG"8ܻqzQ? r,mbz8cYkxond"НpIϧֲBeBXw0Iު9=0ژ[,PyOy4/PW[=mUoGTT[ty$a* n`;n;wuT)i"ޯp)%vaVAEl|K/R1Q~h=>GS(*Eapt鶶Ho08?ޥ[Gƙ%1=IJ)}pb'_P{FtυLYnv4(8B28GCϸ :+Eumۢdcw=LW\  ׏_L(VT[xw&uId^#fNH -9j5W>"Fi6zTcKxKQ0+,u=|m.dž;ǨF_,,2#SH tsisAf.QI>=bhߑ r$CYx8=ډ3D[ df )Q~?xzWOD |)ۜ#uE9Knm,&<ep88뺍 @hAy8:cT!CbW!<\ݪAIc{ -q&VtO>$a|N.5 ˛eFp3K}6H&Ukmݸ #KqjeL|&T -XSkj̩Dhm#z܈ndjEki%`S < g#he0drNZ FH!^zsߵ_OtmgΊu﹁,~cڨǮ\Giko4FYrzxE4w6 -G;?+։ѱ,Xӳ<xw^X#@ݞ@+{ ckxCĘAlx8ZUBIuE kXlm!}Dٱ)=8ܷbe’lX-:ǽX:rGڠmfՙm*+.ь(@qI~mwndOINwQ6wzc]o`]E)ZQ!@9jRC}[|T<<BN)Yܱ\qqӎ݈5>y&h%͐OӧJ|:c.% #YbQ?BsSX+lV+[ :ON~z}:74ᙉP9.18^TI)!7= % -p8Yy=CPk7g90Ѹvr}y0jkˍ5v_B|Ee`=䴽BX5"bXoP'9 qy}vD0 [D"Wc"6bOr>=9kW ᢌTQGz?I]EH$7Uo`I 420..#]r#=8޽*\.)%R8NI@>M"k%wǔnWoV;X˦E3Yv1秡WǰO V]?\ -$N4%of>++hL i lwqʎhɪi]˰A6sܞQ~$U-+0VQ׌s2G(}vq>,H.s/sJc~K2.衊&!T #<\)-DK"t^!B.X܋8ⷵ$,.s'$dxsnX X FxH=^AvXob,#yِPr:Jfck&u3qmn-̐YGR:d9gH>4٬˴(ÌKEgO -d$M P `2vt/<jT´g,,M)X2'3Nヒ1֩a5ӱHu12 OiXDRkFg@u5ֵj\9ڠ``3n*W",1AEŒ7Z*K~ոs9捶s3ž xfW {V+RDqpZ&\֔Nm76#l WѬMNi$˧ -GSҁE"ʜjk(gmؙ"ڤ;՜TP>ǩ6qO-rcq< yr_l)/bˌV._g e!;N[ Ӓ'}3CBQGhrj9mavÀX1VR}nxb.((23^:&EvJ9=rH'?fI{yU7KHI -zF jԭU}%^ VE7qB~j7iK|N2F2G棰{u{O6:i.O wW@*8}e|wx1Dd20rNr?M2VS[jF3OO1OYٺ]'wxkڭƫ-ǁ#adᶎ9;o]~=E,1`H M]Šo ЏŲin v$o'qT~/Gՠ 7 G /n8Ӛݶͥ68 8" bK^YfH -Oة3܏o~(ǰ졥5Pi6"oQw|Jߴ&idhYw<`=隍q4 ECQzdu CI 5#d_2bY8)'RR^3ܲqnD|HnvӕmAo @^IA:M5"B81Vj-n 7++@z{Ed c*:{<(8g?AMQޣj#X[11 ^KE+ʠBp'On:i{}VċnTKr\Z;DWY$4 nyZ{J!"}۠0rxԼ [}v\}jPw[{-@Oy;Zj7$ca|?NO﷯#5 -,f|9X -VL 1x846E Ospͻ=}uԗ~'31={}UivW 98mh2ɏz8vUhEm?MC5gk dȧ vatC2@9_sqVn +C#=I.+ :--\[_1lgzw{ hjxQ DE$ zjݭjnFm5ŽWRۆan֣,eJ$>txf%r!@ -їK~|hgTZ5?k[Qη)C~1oMJ#p8"s1ӵP ݉ݐU9dg|T}Ln[DB Fx1'yǯz!UrXGNVJOKYLrneQ=3[->G8'; $jom-lQ4e`C.]Nj=k1[DNpO55I[43(+4Gݸ8;vqGodVݣ|,vFqcڟa㮱o6CBAoQjρΥyeq1m1a8?JZ5\$_p vT!){ZK(#nr 1+S-qed u6rOJiK -(#u^y9=IءN2VDҭ0_i > BF6y7zQ !tTnoE+;PUG#ʒp9g](1[ RGX˶79oRT%Z %* I%GLͯˉ%Cw==*YʊIOaXi7,*O.Rd]4eJ6+G8[Z Y ԓܓv4WViL҂Asaӭ%nhSdW I_1SQ|[JVQt7rN:p=+a:\,Q\‡ŹC&ذ9 'L4\KLhc[$?J9Ssshpy‘?Q@ vG70[chRyykY]Gu> .FHP3GNƛRm|EZFf&23 0~G@ +ep&wcuu!Mpxs.w134QTE' -r~MUYj^mmi%2FAcwѻBDR -nr[ F<~- -^f>^rI<_i4{[:Y|efC”Ǩ=NhI!7HawNֱ\["0Q]} OO œVAkGbUKpMQLqV b>Ra'IVz#<=y3ac?X -?[ | )OM-τBn#,3j3|$ pp}=JQƈ~bKdT2Ld+ z]-@ڱ#4B{ |XszK<3v6>g->-,ծ)8Nx>RH,)&sz=*(5-:)3YGpV{)7^!HUm~WȨF+1zϩ=sH0 -8ւ yذ[G)G5ؙ8;Iݻ8zfXi?4֎Fg`9?J)M@4GHp 9>֥]6}vIYHG^>N7FMv$:6zPKd ͅ׬4z,nO"uM:зV!٘!Uy>\p{u<ת}:<C&v$wM[UBf|Es|L,=G@.S.q24. sqYK6Dfʹc?{ϯ\5IdUyWĺ֋lu. R 4WLȮw 9$yOp k~ -Me>6v#+c=)<13^ qׁSt$~.[:z9Q_].؁HO`]B?{BY"Blj**0_H Ô.I;22͖c>i O -?/Ldmf|]c[ldE`E3;Glw *ih ӈ^ZIQ 0y3|3niEцKUTWcMJш[WS]mث<[pr;±D;gyq(هgi66qԚ|7tzo=t)$;|Z"NLxp9pȫ'Q9wO צhfgĘ{{/?k4E-NbēOOPdxr-ޠ^?4р]n5ZIKrR#[8<o!pX8@ܫ-Z/~MlxK, OްڝX]8$U^ 0vr4ݰ;QuF|7ʀ >c߅EHZMR\H?[g6bȻGiγ -#.4Aac׽R&Eb.mb8ҽ#Uz-^;"eY5.gYjkt%JHR:ԣ1^ZMfҬ€T6>=rZmh|RrPtc]+gpũMyZ?j w=۸x>+ǑQvŧZ$ˁsW[͚=JhԩF<Zĩ)'Þ)=6'q g\qĉW;3zzT1Q q:UğC :tEOm`/qP'.$QXPXv9u#H/Kx`ڣrR{5F~1J(JۃSz~SƑ_»p?|˙M&@Co@o$z@qK29DKCb`qMS$C܃ESVS6HQFpzm/ 9׍Oqs} W,IG]b -I'sɯu/³Ii"Kd=txzGlvLo֝+=gP4č\-|ǭ@iM,n #|c~0_Õ 'su>(EPXsY2?Hfm_SPX'$eҼF>"5-.Bc-y^M1ˎ1dY?+/59ehw j)Bt 3,JFd*2:hg6&ֺ+t 3Fxs Qm9b1Uc#8 V`e!2\2>V7a4Qރ+)#oEu723]-Λ }]*$e_*/NX7G惙?Q??5VeSEZk0i a&C=A+/Y?gPMn?k,Iʹ,ǷWDxmh=F@6){O,[t`pCסKuw\3$X?jх*Oͷvt0Fm,({n瑟J^ġ6Y$sYHI,e>W`F4tWr3ꇢÿM@vRitO!69w,+zTͫLQ xoÎk JIKZVeV`y=8<ӌ?ãZZ=OE76<fGˑg |t3VTҚFaZB=y/;CK"$lLgLN7HOs )5O$}:p9kYa%ΘԔ.ٖT@rqfI0Hε_[ igJ@X~$`Q ަ;iJ$1c_ˁD澱KI|y؁Lsy|_RJ?ggq/+2z亐+‘HfW?Z|6Ė<FҠl"1j/. +}EQW- =iatLq7;4Oa$-\Jp.oA|8龳d| >wfړۓk6?hU6;~Td2φlu"sE~ԍw*gAN\n?4x1+0x۶% c={SXP_Ɠ!f{U9//I|v4* GvߜcIworH==:{}kϓIR%kck֫޵23F#rSڅ^N6ѣG9|3<`7~ZcLڶ@+QFr2jޗZL\eud8t[cL4@ {U]Y6I̬:*` wrAJV ZfZ@^zp:vI7yPsJRPVv X|GDIlR S=(bs2zTZBi)I_XU\ū(TyČ}X3uoE$Z鱈 ,<;(^qAޫ]E4m=E[Ȼ]c;[׶qzCy$2f3nnsZOǗ0B -?h*uDxya^cGlץ|l1F?l)(DZ](eԛVյ7? rng/ƭcjlWjOum8]Q"i>[ǓI@}dDޟ&*0zԖZw2rDbW俸u9ǵr):k]&"c`ȼvVM 5J,~\n>L֯ho+m;ӧlDe> i̜gtUYHj)  O<|+l dK#:2D Z)cYU]=}{TUCoEc ʭA"x՞t.H'qֽ6KZ3fmHێ3C%Kq?8gF=?dyB<=: -h"WXdY1?"g$` }G1D-ȱI8߯F*"[ 9a|b*k H읦hU7 -AqIpo3w?A /_ZHMWf.4*3X~S_ao -N1Q_-dv+r1svL>f ۻ}4)K}W2Ōw?DrFuO(mgdA+^:kk18䙶p:`-2rR?Ʒ<ݨyfx}psʷ|a9LӃEZ2XãLg`},?N.bͩnQK~aٲVIDI,IHǮ*Ö!ҳ Np5[BӒ(NIP_'KE21GHUA==qP:6i$~bI9LiZ 6 OcpA0XFf4J$3ʮxg9(ݢ)&Ǻ=>*\\Ʀ@ [{߅tďI&# `rsߚk^<1\ΙEqQ5E)׎(l-sb ,C\ uw):,P$緭@?y&.ʰ?x3Gt w7H$,pN;ҚAb2rXs۵69cef@6V!=3=_0m (#,9#=qq -? TUX/9O }EV`5SH,c5Ե?ho{v1h"`sprn+?|Es5@e3>q#9t@6nI=M@zҺLq[V9fSx, ?g>wYce"c?5 w!q+`5 RC;kg&|ʃ#ӿ 27r'*ßZ=Zm22i ?9$-dⴖnD1zpl/zu[Ac| #xVWra`r=rj(|r@矾3VbW<`Kz=jKyOp\aW'OS;q1D$|C9n{9$)98 Wj4Z\yllp?ט9iWp$ ]ѻd$c5 dOS[](&('L-ZmήdOڻMZ(Og%ų2忕Y6ݠSc)-5g߯0 Y.EfS([<̜DJkIF~c\7z 5KoBgh@_t~QtYO2D.[39<U -«z}(T1ueiYq3[\ ꮭs/)ܣ1TzNzqt.SnALgsjAp\ȞWG_OLvs._P?< aY#gn #k -m$!wi"3eo9־AТbH?af8d2$w&I>J,'lSVzCh1@'HTGUk""^}gs24RK&Z*Õ=qZ|Ff;kkk -u=Zܵcь[$٥) aTln3^zMR^+s$C;3k9S?҂6f|)ն66 '\N$)DxεBH=]ڍS!\r@}3{{wg'XAl4xJ y3\~ɺKX{oMR0GGօ}>M!=?SǏjrOw$I#2 XX=j[TV?p$ޥե W,ɩ]菕cA9h 7y8M\i/vS$$tQ[_H+/DagzѬo1L*qgv-*s\CI<(u={qE%He lΉ**)98s{{5ψfPBJUϪս@ :H5y>=M+6dxH 9+㷧?k: P}>$|/$i'A&ՒppWGO'_$-(ꮇ8b=~3GrrcpT?I# Ծ =ˈE tϙC3={}\Gs"& -LVXNyU]BI#dP瞸$0q q>Sz+Ȯx8sH#Pqzڴ4q&'ls }D4?dH2;#S5H&mJݧgpNIp89\i_EvaXw$t?Nָt8\u$!"H7p]$~tdMi)#ZعU?٪I[vaNxv7zpu8_~;BDCQ9?t0[@ɧ3Y1z9𮔗 Ԋ1/}*;Aw6ؚ#vRJA둃)]jMfoo,ǭiȑh8ba(ޟ,/s[;GLK=ȫ -.v#T*`\c"6c - -S. rlz=yq5Hdv9[)P}#Bx_2Gq~{槹_{\01` t{ 檎5ݫ4& -<V 㞝yFP798#CI^2Eʗtw4v(r{TWڪK<{hrJ/_Gxbu(η?>_Yc,lc:MhI³;VSn$sMӥ"[EFI1Am.T,u UJsM/]N>juSK$~"#\HPY |K6 O:M(c*HϖX\J> cDS6. (#d7թXJiZr? =q +v j Sp>yĥ-ѢK7 O^-こ(dt{Q Vg9v|ʒv!A]Fy/gY2r@ I(¢Gd~^-r0p;`ΞE]wDBp[weq֡,ԗЍ[LH[DHx)#A85Ȟ&6n4#)A`c#Z:k9,h. ~S]%f8EdT\-3o>WO-V m[ t\ołA?JDz/9 9z3vVWs (<#Z . ggq ŗR r89P'45Su.ۏ --ˏ0`2N;n#{Tz [BFF7iu7le#i+̑ԓT|iew$N0Pc0:z446<.D B'3Um#h 'zLP !b̾Uk$ tRn6si%`qV$Nb*hڱhI I)(=P"' '2rK7XQYeKľ#%Wem3oN)P]$\ɻ=,{[X2rI=8,MAZw6qE2@w-NmB Rs{߁Ҭj)OV'&vWw7eB8'ɢ ELn|O}āVC)608Uhc>h܌`jRii|`2%: E1UJ/muac<~ 8k}f;UsR'I2oFGF1)U|6ѰFJ0Oh!Gs^o]ܭ G`@Nv(G1jFS̄֡f畫n -=FzNMGÂZ0 ÌGTOc T^nv ,KC!ʑч7H[QҤ, D"-n- 9gKbE# xc\qjo;*;dd0:Nh jwB<̾78}(־,@%o.72y6[5v)'l&KnNd䃝#hziWXe>bX`;}*IjrtR ze+8Y¹&6Rgw'lqT\dTچ-E;СȸG9KCKswjعhTx-)s`GOznZ4۱dbhH&d.&+#Oh5׈`qߧZ$߹*E=Sn1Q?"ːA]8s^Ӏ78` K 7_i.T {M`MK_Cɏ|\H$t͖e$r_C&ݬM{Q%oIl&Ǒ mF>g3ȩc`Z91}Ml\gm+VvͭgKb? -xQ2{z׿AS r. -S*>].[ff;d݀TlU r .KEU~#2vuO{'dBHxA] -&|σtTzhnV*C[|+oo/JhPK6<4XH 7|S|qCQm/Ҧ39U<9+IW֫4%[IA#?SPp51q -P1ʭ0NH9W -`!m֨MhUF$}9 =l/{Chj綅B ;qӦ$W|O?\|zފ& 4.K_QwˉM:I2ԶMw8;cҀ_u)Tb gSR3ZoؚջVK-<y?SsI Yͬ& xlem;\Oa.<;pA#wW\jSQBB 'սKo53資+n} o>%ݩ],}=%oc]йXBY򫓟/^{$趍 #gt=G@qKš2: 4lKg4{ČaG_04 5̫=AvGqR*#CPW91j>Y]@T\ ϛ[K>$G<ԠfHTl'g4B[7K,(^alO]_*_4{'>ƭikᥗG]qc8O\oey]|3zH|$NtF#jz J\Kzz,Z674x-NEۓ4q/Ju vʹ(u|FeZ\zr. <$i#}(YYPрw9ڹfX|I$GMzr SW9-.8)O|)J1Aj{֣<hD[wgSzϯϠ4 Ux\۞zEL -x8+G_[0|qn%8#?\qxJQ~rw. OcSIHrzH.<H. gr/ր(4jwF*| nrPQqq'>?h]^tx;)Yf^wE+i?Um.Ăb 8#SjDy:)F$ FB@#'75cTW=14Z$̤߃@"ԋӆƧhGɸrc 2O\tc} [x, hem>4׆ICܩVGPg#3@5?V@, sYKUO(5y-U_`cwrA -8f?S%*6Sz -]Dʞl)x e4$8A -Io7 $c8ֻȬo8pIAp#">nzgz2H8p=<O׵WZC=O:+geAX7AR_4&<,p"Isy$sWttBBUOڇK5Pp~' &&%IqN~$BOD$jO=#xkd!y#œd$ӳހS֚Ы.dZRXS 7 !@ryA> 2oL+wgD -SʒȪO$`(2g?4i=HC^% mNzM8A?@12~Nkyew -۵>GWMPAO&Bq}YV5;rFW*a*HOVvFsឍ"SUPrY;aO=1F:c - 3T06HTOi:y !_!cCj2r}G(HPI/ʁPf,N[/{ -TUgv2@TwL[1i؏i8ӜxǞLAiL8m& -@S(#;~}?KǗG+P3ҡ->2'on1--J{Pn'1}VsslF 1MXaP)GGs@3֛zҕOg"B1 SUdg4 I=2E;rۑ׭;c>Kp°Gs\ KS_*:a|bYe!s=ǵ)V'L`g t1xPz`zkT>GbiSYW9^GZkFG;bsgQ ǞZqظ*\'Rsǘu0F0 v'M92 1?LF$0ڤ&=8Ͻ"a$$X -;ɁMVCKI1o>uCEWY gN $WqNsJdDg<Ԫ0zc5jAtƅ }iNzTʼT')1s^w > -endobj -5212 0 obj -<< -/Subtype /Link -/A 5211 0 R -/Type /Annot -/Rect [72 234.192 521.84375 246.692] -/Border [0 0 0] ->> -endobj -5213 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5214 0 obj -<< -/Subtype /Link -/A 5213 0 R -/Type /Annot -/Rect [72 221.692 152.805664 234.192] -/Border [0 0 0] ->> -endobj -5207 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 5205 0 R -/Resources 5206 0 R -/Annots [5209 0 R 5212 0 R 5214 0 R] ->> -endobj -5206 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F3 9 0 R -/F1 3849 0 R ->> -/XObject << -/I1 5210 0 R ->> ->> -endobj -5205 0 obj -<< -/Length 507 -/Filter /FlateDecode ->> -stream -xTn0 )Hl ȡZlm ; Y>v2?}wnxnml ۟hJij4}D`RiT{}j * c'{V=G]"Ub5P*:'%_o0-W36țF$%6FBۺȺ"5"?MAv#ڶT]$ieAPz53t,r4B-jZ貎m2'?[S:fi#IOWBW) -$݇lNoiJCWgŵ6DQ -WB?ˠtpE'}ou ?hTnyǕ2J\)F޲k ڡZ?b̵<&5NfY2Pgc@q3.3W}dw643j?|XxN -endstream -endobj -5219 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5220 0 obj -<< -/Subtype /Link -/A 5219 0 R -/Type /Annot -/Rect [72 685.975 268.25 720] -/Border [0 0 0] ->> -endobj -5221 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5222 0 obj -<< -/Subtype /Link -/A 5221 0 R -/Type /Annot -/Rect [72 658.475 515.051758 670.975] -/Border [0 0 0] ->> -endobj -5223 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5224 0 obj -<< -/Subtype /Link -/A 5223 0 R -/Type /Annot -/Rect [72 645.975 533.928711 658.475] -/Border [0 0 0] ->> -endobj -5225 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5226 0 obj -<< -/Subtype /Link -/A 5225 0 R -/Type /Annot -/Rect [72 633.475 239.275391 645.975] -/Border [0 0 0] ->> -endobj -5227 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5228 0 obj -<< -/Subtype /Link -/A 5227 0 R -/Type /Annot -/Rect [72 610.905 210 623.475] -/Border [0 0 0] ->> -endobj -5229 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5230 0 obj -<< -/Subtype /Link -/A 5229 0 R -/Type /Annot -/Rect [72 582.405 428.09375 594.905] -/Border [0 0 0] ->> -endobj -5231 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5232 0 obj -<< -/Subtype /Link -/A 5231 0 R -/Type /Annot -/Rect [72 561.092 277.2 572.405] -/Border [0 0 0] ->> -endobj -5233 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5234 0 obj -<< -/Subtype /Link -/A 5233 0 R -/Type /Annot -/Rect [72 549.779 99 561.092] -/Border [0 0 0] ->> -endobj -5235 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5236 0 obj -<< -/Subtype /Link -/A 5235 0 R -/Type /Annot -/Rect [99 549.779 104.4 561.092] -/Border [0 0 0] ->> -endobj -5237 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5238 0 obj -<< -/Subtype /Link -/A 5237 0 R -/Type /Annot -/Rect [104.4 549.779 109.8 561.092] -/Border [0 0 0] ->> -endobj -5239 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5240 0 obj -<< -/Subtype /Link -/A 5239 0 R -/Type /Annot -/Rect [109.8 549.779 115.2 561.092] -/Border [0 0 0] ->> -endobj -5241 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5242 0 obj -<< -/Subtype /Link -/A 5241 0 R -/Type /Annot -/Rect [115.2 549.779 153 561.092] -/Border [0 0 0] ->> -endobj -5243 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5244 0 obj -<< -/Subtype /Link -/A 5243 0 R -/Type /Annot -/Rect [153 549.779 158.4 561.092] -/Border [0 0 0] ->> -endobj -5245 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5246 0 obj -<< -/Subtype /Link -/A 5245 0 R -/Type /Annot -/Rect [158.4 549.779 163.8 561.092] -/Border [0 0 0] ->> -endobj -5247 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5248 0 obj -<< -/Subtype /Link -/A 5247 0 R -/Type /Annot -/Rect [163.8 549.779 169.2 561.092] -/Border [0 0 0] ->> -endobj -5249 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5250 0 obj -<< -/Subtype /Link -/A 5249 0 R -/Type /Annot -/Rect [169.2 549.779 174.6 561.092] -/Border [0 0 0] ->> -endobj -5251 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5252 0 obj -<< -/Subtype /Link -/A 5251 0 R -/Type /Annot -/Rect [174.6 549.779 180 561.092] -/Border [0 0 0] ->> -endobj -5253 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5254 0 obj -<< -/Subtype /Link -/A 5253 0 R -/Type /Annot -/Rect [180 549.779 196.2 561.092] -/Border [0 0 0] ->> -endobj -5255 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5256 0 obj -<< -/Subtype /Link -/A 5255 0 R -/Type /Annot -/Rect [196.2 549.779 201.6 561.092] -/Border [0 0 0] ->> -endobj -5257 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5258 0 obj -<< -/Subtype /Link -/A 5257 0 R -/Type /Annot -/Rect [72 527.153 217.8 538.466] -/Border [0 0 0] ->> -endobj -5259 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5260 0 obj -<< -/Subtype /Link -/A 5259 0 R -/Type /Annot -/Rect [72 515.84 99 527.153] -/Border [0 0 0] ->> -endobj -5261 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5262 0 obj -<< -/Subtype /Link -/A 5261 0 R -/Type /Annot -/Rect [99 515.84 104.4 527.153] -/Border [0 0 0] ->> -endobj -5263 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5264 0 obj -<< -/Subtype /Link -/A 5263 0 R -/Type /Annot -/Rect [104.4 515.84 120.6 527.153] -/Border [0 0 0] ->> -endobj -5265 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5266 0 obj -<< -/Subtype /Link -/A 5265 0 R -/Type /Annot -/Rect [120.6 515.84 126 527.153] -/Border [0 0 0] ->> -endobj -5267 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5268 0 obj -<< -/Subtype /Link -/A 5267 0 R -/Type /Annot -/Rect [126 515.84 131.4 527.153] -/Border [0 0 0] ->> -endobj -5269 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5270 0 obj -<< -/Subtype /Link -/A 5269 0 R -/Type /Annot -/Rect [131.4 515.84 136.8 527.153] -/Border [0 0 0] ->> -endobj -5271 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5272 0 obj -<< -/Subtype /Link -/A 5271 0 R -/Type /Annot -/Rect [136.8 515.84 174.6 527.153] -/Border [0 0 0] ->> -endobj -5273 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5274 0 obj -<< -/Subtype /Link -/A 5273 0 R -/Type /Annot -/Rect [174.6 515.84 180 527.153] -/Border [0 0 0] ->> -endobj -5275 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5276 0 obj -<< -/Subtype /Link -/A 5275 0 R -/Type /Annot -/Rect [180 515.84 217.8 527.153] -/Border [0 0 0] ->> -endobj -5277 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5278 0 obj -<< -/Subtype /Link -/A 5277 0 R -/Type /Annot -/Rect [217.8 515.84 223.2 527.153] -/Border [0 0 0] ->> -endobj -5279 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5280 0 obj -<< -/Subtype /Link -/A 5279 0 R -/Type /Annot -/Rect [223.2 515.84 282.6 527.153] -/Border [0 0 0] ->> -endobj -5281 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5282 0 obj -<< -/Subtype /Link -/A 5281 0 R -/Type /Annot -/Rect [282.6 515.84 288 527.153] -/Border [0 0 0] ->> -endobj -5283 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5284 0 obj -<< -/Subtype /Link -/A 5283 0 R -/Type /Annot -/Rect [288 515.84 293.4 527.153] -/Border [0 0 0] ->> -endobj -5285 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5286 0 obj -<< -/Subtype /Link -/A 5285 0 R -/Type /Annot -/Rect [72 493.214 180 504.527] -/Border [0 0 0] ->> -endobj -5287 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5288 0 obj -<< -/Subtype /Link -/A 5287 0 R -/Type /Annot -/Rect [72 481.901 88.2 493.214] -/Border [0 0 0] ->> -endobj -5289 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5290 0 obj -<< -/Subtype /Link -/A 5289 0 R -/Type /Annot -/Rect [88.2 481.901 93.6 493.214] -/Border [0 0 0] ->> -endobj -5291 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5292 0 obj -<< -/Subtype /Link -/A 5291 0 R -/Type /Annot -/Rect [93.6 481.901 131.4 493.214] -/Border [0 0 0] ->> -endobj -5293 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5294 0 obj -<< -/Subtype /Link -/A 5293 0 R -/Type /Annot -/Rect [131.4 481.901 136.8 493.214] -/Border [0 0 0] ->> -endobj -5295 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5296 0 obj -<< -/Subtype /Link -/A 5295 0 R -/Type /Annot -/Rect [136.8 481.901 207 493.214] -/Border [0 0 0] ->> -endobj -5297 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5298 0 obj -<< -/Subtype /Link -/A 5297 0 R -/Type /Annot -/Rect [207 481.901 212.4 493.214] -/Border [0 0 0] ->> -endobj -5299 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5300 0 obj -<< -/Subtype /Link -/A 5299 0 R -/Type /Annot -/Rect [212.4 481.901 217.8 493.214] -/Border [0 0 0] ->> -endobj -5217 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 5215 0 R -/Resources 5216 0 R -/Annots [5220 0 R 5222 0 R 5224 0 R 5226 0 R 5228 0 R 5230 0 R 5232 0 R 5234 0 R 5236 0 R 5238 0 R 5240 0 R 5242 0 R 5244 0 R 5246 0 R 5248 0 R 5250 0 R 5252 0 R 5254 0 R 5256 0 R 5258 0 R 5260 0 R 5262 0 R 5264 0 R 5266 0 R 5268 0 R 5270 0 R 5272 0 R 5274 0 R 5276 0 R 5278 0 R 5280 0 R 5282 0 R 5284 0 R 5286 0 R 5288 0 R 5290 0 R 5292 0 R 5294 0 R 5296 0 R 5298 0 R 5300 0 R] ->> -endobj -5216 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -5215 0 obj -<< -/Length 997 -/Filter /FlateDecode ->> -stream -xYn0+e9rVd(eTTG:eq7ÑoUc]{|PO;۟ꟻ_;}S%T+$OAVisBݍm}pfit\_Ms,b1uOaEuf8zR'Y+`ZBWfꠝ"Dv"/Bϡca%*5 I"dl'2껫gnpg.B/G2 mNEg`JUV>'G'UF{$=;9pÔ~Brt;еGy1V;˅C0+kQ(t23f8͍@`u|82KIVP 15\ -pd~] `|( ˶'b3iJ;g3|);f8|$TEp3pv2CN6c9o<-_scfSpGg)GJ`VC \ۥ~qC)Njgn,(OiE WͶ8rO(X0Fp|p]?Ji1ͣ蛃B(埐C -ӴD킸|n+ldV>:EPr@Y;LO:iqN}n;3/%lI!̯eCQ,&bXɄ7p["Eg'$]=<\sJ,j4LsSF]s0L^ -endstream -endobj -5305 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5306 0 obj -<< -/Subtype /Link -/A 5305 0 R -/Type /Annot -/Rect [72 695.502 131.742 720] -/Border [0 0 0] ->> -endobj -5307 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5308 0 obj -<< -/Subtype /Link -/A 5307 0 R -/Type /Annot -/Rect [72 673.002 93.201172 685.502] -/Border [0 0 0] ->> -endobj -5309 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5310 0 obj -<< -/Subtype /Link -/A 5309 0 R -/Type /Annot -/Rect [93.201172 672.932 135.201172 685.502] -/Border [0 0 0] ->> -endobj -5311 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5312 0 obj -<< -/Subtype /Link -/A 5311 0 R -/Type /Annot -/Rect [135.201172 673.002 355.889648 685.502] -/Border [0 0 0] ->> -endobj -5313 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5314 0 obj -<< -/Subtype /Link -/A 5313 0 R -/Type /Annot -/Rect [355.889648 672.932 403.889648 685.502] -/Border [0 0 0] ->> -endobj -5315 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5316 0 obj -<< -/Subtype /Link -/A 5315 0 R -/Type /Annot -/Rect [403.889648 673.002 512.830078 685.502] -/Border [0 0 0] ->> -endobj -5317 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5318 0 obj -<< -/Subtype /Link -/A 5317 0 R -/Type /Annot -/Rect [512.830078 672.932 536.830078 685.502] -/Border [0 0 0] ->> -endobj -5319 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5320 0 obj -<< -/Subtype /Link -/A 5319 0 R -/Type /Annot -/Rect [72 660.502 479.30957 673.002] -/Border [0 0 0] ->> -endobj -5321 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5322 0 obj -<< -/Subtype /Link -/A 5321 0 R -/Type /Annot -/Rect [479.30957 660.432 509.30957 673.002] -/Border [0 0 0] ->> -endobj -5323 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5324 0 obj -<< -/Subtype /Link -/A 5323 0 R -/Type /Annot -/Rect [509.30957 660.502 515.310547 673.002] -/Border [0 0 0] ->> -endobj -5325 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5326 0 obj -<< -/Subtype /Link -/A 5325 0 R -/Type /Annot -/Rect [72 638.002 467.644531 650.502] -/Border [0 0 0] ->> -endobj -5327 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5328 0 obj -<< -/Subtype /Link -/A 5327 0 R -/Type /Annot -/Rect [72 616.689 217.8 628.002] -/Border [0 0 0] ->> -endobj -5329 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5330 0 obj -<< -/Subtype /Link -/A 5329 0 R -/Type /Annot -/Rect [72 605.376 99 616.689] -/Border [0 0 0] ->> -endobj -5331 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5332 0 obj -<< -/Subtype /Link -/A 5331 0 R -/Type /Annot -/Rect [99 605.376 104.4 616.689] -/Border [0 0 0] ->> -endobj -5333 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5334 0 obj -<< -/Subtype /Link -/A 5333 0 R -/Type /Annot -/Rect [104.4 605.376 120.6 616.689] -/Border [0 0 0] ->> -endobj -5335 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5336 0 obj -<< -/Subtype /Link -/A 5335 0 R -/Type /Annot -/Rect [120.6 605.376 126 616.689] -/Border [0 0 0] ->> -endobj -5337 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5338 0 obj -<< -/Subtype /Link -/A 5337 0 R -/Type /Annot -/Rect [126 605.376 131.4 616.689] -/Border [0 0 0] ->> -endobj -5339 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5340 0 obj -<< -/Subtype /Link -/A 5339 0 R -/Type /Annot -/Rect [131.4 605.376 136.8 616.689] -/Border [0 0 0] ->> -endobj -5341 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5342 0 obj -<< -/Subtype /Link -/A 5341 0 R -/Type /Annot -/Rect [136.8 605.376 174.6 616.689] -/Border [0 0 0] ->> -endobj -5343 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5344 0 obj -<< -/Subtype /Link -/A 5343 0 R -/Type /Annot -/Rect [174.6 605.376 180 616.689] -/Border [0 0 0] ->> -endobj -5345 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5346 0 obj -<< -/Subtype /Link -/A 5345 0 R -/Type /Annot -/Rect [180 605.376 217.8 616.689] -/Border [0 0 0] ->> -endobj -5347 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5348 0 obj -<< -/Subtype /Link -/A 5347 0 R -/Type /Annot -/Rect [217.8 605.376 223.2 616.689] -/Border [0 0 0] ->> -endobj -5349 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5350 0 obj -<< -/Subtype /Link -/A 5349 0 R -/Type /Annot -/Rect [223.2 605.376 282.6 616.689] -/Border [0 0 0] ->> -endobj -5351 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5352 0 obj -<< -/Subtype /Link -/A 5351 0 R -/Type /Annot -/Rect [282.6 605.376 288 616.689] -/Border [0 0 0] ->> -endobj -5353 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5354 0 obj -<< -/Subtype /Link -/A 5353 0 R -/Type /Annot -/Rect [288 605.376 293.4 616.689] -/Border [0 0 0] ->> -endobj -5355 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5356 0 obj -<< -/Subtype /Link -/A 5355 0 R -/Type /Annot -/Rect [293.4 605.376 298.8 616.689] -/Border [0 0 0] ->> -endobj -5357 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5358 0 obj -<< -/Subtype /Link -/A 5357 0 R -/Type /Annot -/Rect [298.8 605.376 304.2 616.689] -/Border [0 0 0] ->> -endobj -5359 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5360 0 obj -<< -/Subtype /Link -/A 5359 0 R -/Type /Annot -/Rect [304.2 605.376 347.4 616.689] -/Border [0 0 0] ->> -endobj -5361 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5362 0 obj -<< -/Subtype /Link -/A 5361 0 R -/Type /Annot -/Rect [347.4 605.376 352.8 616.689] -/Border [0 0 0] ->> -endobj -5363 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5364 0 obj -<< -/Subtype /Link -/A 5363 0 R -/Type /Annot -/Rect [352.8 605.376 358.2 616.689] -/Border [0 0 0] ->> -endobj -5365 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5366 0 obj -<< -/Subtype /Link -/A 5365 0 R -/Type /Annot -/Rect [358.2 605.376 379.8 616.689] -/Border [0 0 0] ->> -endobj -5367 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5368 0 obj -<< -/Subtype /Link -/A 5367 0 R -/Type /Annot -/Rect [379.8 605.376 385.2 616.689] -/Border [0 0 0] ->> -endobj -5369 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5370 0 obj -<< -/Subtype /Link -/A 5369 0 R -/Type /Annot -/Rect [385.2 605.376 390.6 616.689] -/Border [0 0 0] ->> -endobj -5371 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5372 0 obj -<< -/Subtype /Link -/A 5371 0 R -/Type /Annot -/Rect [390.6 605.376 396 616.689] -/Border [0 0 0] ->> -endobj -5373 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5374 0 obj -<< -/Subtype /Link -/A 5373 0 R -/Type /Annot -/Rect [396 605.376 401.4 616.689] -/Border [0 0 0] ->> -endobj -5375 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5376 0 obj -<< -/Subtype /Link -/A 5375 0 R -/Type /Annot -/Rect [72 582.75 180 594.063] -/Border [0 0 0] ->> -endobj -5377 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5378 0 obj -<< -/Subtype /Link -/A 5377 0 R -/Type /Annot -/Rect [72 571.437 88.2 582.75] -/Border [0 0 0] ->> -endobj -5379 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5380 0 obj -<< -/Subtype /Link -/A 5379 0 R -/Type /Annot -/Rect [88.2 571.437 93.6 582.75] -/Border [0 0 0] ->> -endobj -5381 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5382 0 obj -<< -/Subtype /Link -/A 5381 0 R -/Type /Annot -/Rect [93.6 571.437 131.4 582.75] -/Border [0 0 0] ->> -endobj -5383 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5384 0 obj -<< -/Subtype /Link -/A 5383 0 R -/Type /Annot -/Rect [131.4 571.437 136.8 582.75] -/Border [0 0 0] ->> -endobj -5385 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5386 0 obj -<< -/Subtype /Link -/A 5385 0 R -/Type /Annot -/Rect [136.8 571.437 207 582.75] -/Border [0 0 0] ->> -endobj -5387 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5388 0 obj -<< -/Subtype /Link -/A 5387 0 R -/Type /Annot -/Rect [207 571.437 212.4 582.75] -/Border [0 0 0] ->> -endobj -5389 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5390 0 obj -<< -/Subtype /Link -/A 5389 0 R -/Type /Annot -/Rect [212.4 571.437 217.8 582.75] -/Border [0 0 0] ->> -endobj -5303 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 5301 0 R -/Resources 5302 0 R -/Annots [5306 0 R 5308 0 R 5310 0 R 5312 0 R 5314 0 R 5316 0 R 5318 0 R 5320 0 R 5322 0 R 5324 0 R 5326 0 R 5328 0 R 5330 0 R 5332 0 R 5334 0 R 5336 0 R 5338 0 R 5340 0 R 5342 0 R 5344 0 R 5346 0 R 5348 0 R 5350 0 R 5352 0 R 5354 0 R 5356 0 R 5358 0 R 5360 0 R 5362 0 R 5364 0 R 5366 0 R 5368 0 R 5370 0 R 5372 0 R 5374 0 R 5376 0 R 5378 0 R 5380 0 R 5382 0 R 5384 0 R 5386 0 R 5388 0 R 5390 0 R] ->> -endobj -5302 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R -/F5 29 0 R ->> ->> -endobj -5301 0 obj -<< -/Length 1016 -/Filter /FlateDecode ->> -stream -xXMo0 ẈD}E>66:6 GITl'bjRY)rN/eڽv>?UN}󤨬, -YiO@i(铆 -~T/WX6Bd+Gˆ&i5y%m>F0j1=M@Y G.4y]pg2%1L~\qy_േA7@+VՌFF'~Wi:eШ3ݎty!?d H}Gi+ejǙ:gӐA5k -%H)T=ɞ;P4#Z5%զJCgㄯ2qoO# !4ZfB8|((>,v'O"`:y`R֝tzt>QrXaX=ÕrV9]N@ &b.W- z3Pق lC]覷\8ZP/ ->\+q+.p#pRa)6K (֋5W:(m-,AhQc k8qKͽYet b;/rT> -endobj -5396 0 obj -<< -/Subtype /Link -/A 5395 0 R -/Type /Annot -/Rect [72 685.975 309.075 720] -/Border [0 0 0] ->> -endobj -5397 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5398 0 obj -<< -/Subtype /Link -/A 5397 0 R -/Type /Annot -/Rect [72 658.475 532.126953 670.975] -/Border [0 0 0] ->> -endobj -5399 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5400 0 obj -<< -/Subtype /Link -/A 5399 0 R -/Type /Annot -/Rect [72 645.975 530.007813 658.475] -/Border [0 0 0] ->> -endobj -5401 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5402 0 obj -<< -/Subtype /Link -/A 5401 0 R -/Type /Annot -/Rect [72 633.475 513.635742 645.975] -/Border [0 0 0] ->> -endobj -5403 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5404 0 obj -<< -/Subtype /Link -/A 5403 0 R -/Type /Annot -/Rect [72 620.975 523.235352 633.475] -/Border [0 0 0] ->> -endobj -5405 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5406 0 obj -<< -/Subtype /Link -/A 5405 0 R -/Type /Annot -/Rect [72 608.475 119.53418 620.975] -/Border [0 0 0] ->> -endobj -5407 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5408 0 obj -<< -/Subtype /Link -/A 5407 0 R -/Type /Annot -/Rect [72 585.905 336 598.475] -/Border [0 0 0] ->> -endobj -5409 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5410 0 obj -<< -/Subtype /Link -/A 5409 0 R -/Type /Annot -/Rect [72 567.335 306 579.905] -/Border [0 0 0] ->> -endobj -5411 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5412 0 obj -<< -/Subtype /Link -/A 5411 0 R -/Type /Annot -/Rect [72 548.765 306 561.335] -/Border [0 0 0] ->> -endobj -5413 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5414 0 obj -<< -/Subtype /Link -/A 5413 0 R -/Type /Annot -/Rect [72 530.195 306 542.765] -/Border [0 0 0] ->> -endobj -5415 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5416 0 obj -<< -/Subtype /Link -/A 5415 0 R -/Type /Annot -/Rect [72 511.625 288 524.195] -/Border [0 0 0] ->> -endobj -5417 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5418 0 obj -<< -/Subtype /Link -/A 5417 0 R -/Type /Annot -/Rect [72 493.055 306 505.625] -/Border [0 0 0] ->> -endobj -5419 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5420 0 obj -<< -/Subtype /Link -/A 5419 0 R -/Type /Annot -/Rect [72 474.485 336 487.055] -/Border [0 0 0] ->> -endobj -5421 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5422 0 obj -<< -/Subtype /Link -/A 5421 0 R -/Type /Annot -/Rect [72 455.915 354 468.485] -/Border [0 0 0] ->> -endobj -5423 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5424 0 obj -<< -/Subtype /Link -/A 5423 0 R -/Type /Annot -/Rect [72 437.345 372 449.915] -/Border [0 0 0] ->> -endobj -5425 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5426 0 obj -<< -/Subtype /Link -/A 5425 0 R -/Type /Annot -/Rect [72 408.845 231.575195 421.345] -/Border [0 0 0] ->> -endobj -5427 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5428 0 obj -<< -/Subtype /Link -/A 5427 0 R -/Type /Annot -/Rect [231.575195 408.775 261.575195 421.345] -/Border [0 0 0] ->> -endobj -5429 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5430 0 obj -<< -/Subtype /Link -/A 5429 0 R -/Type /Annot -/Rect [261.575195 408.845 521.897461 421.345] -/Border [0 0 0] ->> -endobj -5431 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5432 0 obj -<< -/Subtype /Link -/A 5431 0 R -/Type /Annot -/Rect [72 396.345 406.638672 408.845] -/Border [0 0 0] ->> -endobj -5433 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5434 0 obj -<< -/Subtype /Link -/A 5433 0 R -/Type /Annot -/Rect [72 373.845 536.589844 386.345] -/Border [0 0 0] ->> -endobj -5435 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5436 0 obj -<< -/Subtype /Link -/A 5435 0 R -/Type /Annot -/Rect [72 361.345 500.500977 373.845] -/Border [0 0 0] ->> -endobj -5437 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5438 0 obj -<< -/Subtype /Link -/A 5437 0 R -/Type /Annot -/Rect [72 348.845 533.572266 361.345] -/Border [0 0 0] ->> -endobj -5439 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5440 0 obj -<< -/Subtype /Link -/A 5439 0 R -/Type /Annot -/Rect [72 336.345 266.023438 348.845] -/Border [0 0 0] ->> -endobj -5441 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5442 0 obj -<< -/Subtype /Link -/A 5441 0 R -/Type /Annot -/Rect [266.023438 336.275 344.023438 348.845] -/Border [0 0 0] ->> -endobj -5443 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5444 0 obj -<< -/Subtype /Link -/A 5443 0 R -/Type /Annot -/Rect [344.023438 336.345 525.629883 348.845] -/Border [0 0 0] ->> -endobj -5445 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5446 0 obj -<< -/Subtype /Link -/A 5445 0 R -/Type /Annot -/Rect [72 323.845 388.572266 336.345] -/Border [0 0 0] ->> -endobj -5447 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5448 0 obj -<< -/Subtype /Link -/A 5447 0 R -/Type /Annot -/Rect [388.572266 323.775 490.572266 336.345] -/Border [0 0 0] ->> -endobj -5449 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5450 0 obj -<< -/Subtype /Link -/A 5449 0 R -/Type /Annot -/Rect [490.572266 323.845 535.542969 336.345] -/Border [0 0 0] ->> -endobj -5451 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5452 0 obj -<< -/Subtype /Link -/A 5451 0 R -/Type /Annot -/Rect [72 301.345 539.666016 313.845] -/Border [0 0 0] ->> -endobj -5453 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5454 0 obj -<< -/Subtype /Link -/A 5453 0 R -/Type /Annot -/Rect [72 288.845 533.083984 301.345] -/Border [0 0 0] ->> -endobj -5455 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5456 0 obj -<< -/Subtype /Link -/A 5455 0 R -/Type /Annot -/Rect [72 276.345 526.926758 288.845] -/Border [0 0 0] ->> -endobj -5457 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5458 0 obj -<< -/Subtype /Link -/A 5457 0 R -/Type /Annot -/Rect [72 263.845 159.119141 276.345] -/Border [0 0 0] ->> -endobj -5393 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 5391 0 R -/Resources 5392 0 R -/Annots [5396 0 R 5398 0 R 5400 0 R 5402 0 R 5404 0 R 5406 0 R 5408 0 R 5410 0 R 5412 0 R 5414 0 R 5416 0 R 5418 0 R 5420 0 R 5422 0 R 5424 0 R 5426 0 R 5428 0 R 5430 0 R 5432 0 R 5434 0 R 5436 0 R 5438 0 R 5440 0 R 5442 0 R 5444 0 R 5446 0 R 5448 0 R 5450 0 R 5452 0 R 5454 0 R 5456 0 R 5458 0 R] ->> -endobj -5392 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R -/F6 44 0 R ->> ->> -endobj -5391 0 obj -<< -/Length 1482 -/Filter /FlateDecode ->> -stream -xZ͎F)xVD-ܢlRZ)(24U_W -3ÿӏ_v~;?'X_BQ"6ϾxO|2Ƙ0]>p5,Ww4 =Oϧ^Co`^"-5>K['[MskX;χǸ"uh\Olm/;5VO{l8n֌VCr<~0|3^hB77%e - B҃viƋpAeQ59{qdn3M_ߋt #'e̶ K+7nˆp"2Ѩd-[304K4m'IilX/= 5u">=9Ϋq( Sf&;%ܡ?DJCr'wEi֚jy"bnjPjy+_~AC> F FkIW`q&,k {?0T֟In{Xf\J5+8X2)K@"55dq1f1G_W%TaCj\Y7][n)d[T,UQlRv;!5ܑ֮ n6 -O;CY~vM9trLZXϔuC'ޏZNeq#D;MbH-;֒ /JTyX<|k[hRioEAq[.z7Ƭeμ<>5<Лqr5YCjE-]23:(Ud}3EkNg[mb9BeUZVp<#(ssTY\Ǥ'<q}>-Zv#wk0d.(0RSKEJ}c8[uȦE<,4z*FZ9rOK|/~”G'iaұva]2 0xʕ ߱+ӘZ9!yJ.2zN^zwLC.1-PVQ۔&/ܿT.lq,LѪ'RS$sJp[UnLUy^vThQwVhޏb0cB}A -endstream -endobj -5462 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5463 0 obj -<< -/Subtype /Link -/A 5462 0 R -/Type /Annot -/Rect [72 697.5 366.555664 710] -/Border [0 0 0] ->> -endobj -5464 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5465 0 obj -<< -/Subtype /Link -/A 5464 0 R -/Type /Annot -/Rect [72 676.187 180 687.5] -/Border [0 0 0] ->> -endobj -5466 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5467 0 obj -<< -/Subtype /Link -/A 5466 0 R -/Type /Annot -/Rect [72 664.874 88.2 676.187] -/Border [0 0 0] ->> -endobj -5468 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5469 0 obj -<< -/Subtype /Link -/A 5468 0 R -/Type /Annot -/Rect [88.2 664.874 93.6 676.187] -/Border [0 0 0] ->> -endobj -5470 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5471 0 obj -<< -/Subtype /Link -/A 5470 0 R -/Type /Annot -/Rect [93.6 664.874 136.8 676.187] -/Border [0 0 0] ->> -endobj -5472 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5473 0 obj -<< -/Subtype /Link -/A 5472 0 R -/Type /Annot -/Rect [136.8 664.874 142.2 676.187] -/Border [0 0 0] ->> -endobj -5474 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5475 0 obj -<< -/Subtype /Link -/A 5474 0 R -/Type /Annot -/Rect [142.2 664.874 153 676.187] -/Border [0 0 0] ->> -endobj -5476 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5477 0 obj -<< -/Subtype /Link -/A 5476 0 R -/Type /Annot -/Rect [153 664.874 158.4 676.187] -/Border [0 0 0] ->> -endobj -5478 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5479 0 obj -<< -/Subtype /Link -/A 5478 0 R -/Type /Annot -/Rect [72 653.561 88.2 664.874] -/Border [0 0 0] ->> -endobj -5480 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5481 0 obj -<< -/Subtype /Link -/A 5480 0 R -/Type /Annot -/Rect [88.2 653.561 93.6 664.874] -/Border [0 0 0] ->> -endobj -5482 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5483 0 obj -<< -/Subtype /Link -/A 5482 0 R -/Type /Annot -/Rect [93.6 653.561 142.2 664.874] -/Border [0 0 0] ->> -endobj -5484 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5485 0 obj -<< -/Subtype /Link -/A 5484 0 R -/Type /Annot -/Rect [142.2 653.561 147.6 664.874] -/Border [0 0 0] ->> -endobj -5486 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5487 0 obj -<< -/Subtype /Link -/A 5486 0 R -/Type /Annot -/Rect [147.6 653.561 180 664.874] -/Border [0 0 0] ->> -endobj -5488 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5489 0 obj -<< -/Subtype /Link -/A 5488 0 R -/Type /Annot -/Rect [180 653.561 185.4 664.874] -/Border [0 0 0] ->> -endobj -5490 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5491 0 obj -<< -/Subtype /Link -/A 5490 0 R -/Type /Annot -/Rect [72 642.248 88.2 653.561] -/Border [0 0 0] ->> -endobj -5492 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5493 0 obj -<< -/Subtype /Link -/A 5492 0 R -/Type /Annot -/Rect [88.2 642.248 93.6 653.561] -/Border [0 0 0] ->> -endobj -5494 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5495 0 obj -<< -/Subtype /Link -/A 5494 0 R -/Type /Annot -/Rect [93.6 642.248 115.2 653.561] -/Border [0 0 0] ->> -endobj -5496 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5497 0 obj -<< -/Subtype /Link -/A 5496 0 R -/Type /Annot -/Rect [115.2 642.248 120.6 653.561] -/Border [0 0 0] ->> -endobj -5498 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5499 0 obj -<< -/Subtype /Link -/A 5498 0 R -/Type /Annot -/Rect [120.6 642.248 212.4 653.561] -/Border [0 0 0] ->> -endobj -5500 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5501 0 obj -<< -/Subtype /Link -/A 5500 0 R -/Type /Annot -/Rect [212.4 642.248 217.8 653.561] -/Border [0 0 0] ->> -endobj -5502 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5503 0 obj -<< -/Subtype /Link -/A 5502 0 R -/Type /Annot -/Rect [217.8 642.248 223.2 653.561] -/Border [0 0 0] ->> -endobj -5504 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5505 0 obj -<< -/Subtype /Link -/A 5504 0 R -/Type /Annot -/Rect [223.2 642.248 234 653.561] -/Border [0 0 0] ->> -endobj -5506 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5507 0 obj -<< -/Subtype /Link -/A 5506 0 R -/Type /Annot -/Rect [234 642.248 239.4 653.561] -/Border [0 0 0] ->> -endobj -5508 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5509 0 obj -<< -/Subtype /Link -/A 5508 0 R -/Type /Annot -/Rect [239.4 642.248 244.8 653.561] -/Border [0 0 0] ->> -endobj -5510 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5511 0 obj -<< -/Subtype /Link -/A 5510 0 R -/Type /Annot -/Rect [244.8 642.248 250.2 653.561] -/Border [0 0 0] ->> -endobj -5512 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5513 0 obj -<< -/Subtype /Link -/A 5512 0 R -/Type /Annot -/Rect [250.2 642.248 255.6 653.561] -/Border [0 0 0] ->> -endobj -5514 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5515 0 obj -<< -/Subtype /Link -/A 5514 0 R -/Type /Annot -/Rect [255.6 642.248 261 653.561] -/Border [0 0 0] ->> -endobj -5516 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5517 0 obj -<< -/Subtype /Link -/A 5516 0 R -/Type /Annot -/Rect [72 619.622 174.6 630.935] -/Border [0 0 0] ->> -endobj -5518 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5519 0 obj -<< -/Subtype /Link -/A 5518 0 R -/Type /Annot -/Rect [72 608.309 99 619.622] -/Border [0 0 0] ->> -endobj -5520 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5521 0 obj -<< -/Subtype /Link -/A 5520 0 R -/Type /Annot -/Rect [99 608.309 104.4 619.622] -/Border [0 0 0] ->> -endobj -5522 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5523 0 obj -<< -/Subtype /Link -/A 5522 0 R -/Type /Annot -/Rect [104.4 608.309 131.4 619.622] -/Border [0 0 0] ->> -endobj -5524 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5525 0 obj -<< -/Subtype /Link -/A 5524 0 R -/Type /Annot -/Rect [131.4 608.309 136.8 619.622] -/Border [0 0 0] ->> -endobj -5526 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5527 0 obj -<< -/Subtype /Link -/A 5526 0 R -/Type /Annot -/Rect [136.8 608.309 142.2 619.622] -/Border [0 0 0] ->> -endobj -5528 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5529 0 obj -<< -/Subtype /Link -/A 5528 0 R -/Type /Annot -/Rect [142.2 608.309 147.6 619.622] -/Border [0 0 0] ->> -endobj -5530 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5531 0 obj -<< -/Subtype /Link -/A 5530 0 R -/Type /Annot -/Rect [147.6 608.309 163.8 619.622] -/Border [0 0 0] ->> -endobj -5532 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5533 0 obj -<< -/Subtype /Link -/A 5532 0 R -/Type /Annot -/Rect [163.8 608.309 169.2 619.622] -/Border [0 0 0] ->> -endobj -5534 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5535 0 obj -<< -/Subtype /Link -/A 5534 0 R -/Type /Annot -/Rect [169.2 608.309 239.4 619.622] -/Border [0 0 0] ->> -endobj -5536 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5537 0 obj -<< -/Subtype /Link -/A 5536 0 R -/Type /Annot -/Rect [239.4 608.309 244.8 619.622] -/Border [0 0 0] ->> -endobj -5538 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5539 0 obj -<< -/Subtype /Link -/A 5538 0 R -/Type /Annot -/Rect [244.8 608.309 336.6 619.622] -/Border [0 0 0] ->> -endobj -5540 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5541 0 obj -<< -/Subtype /Link -/A 5540 0 R -/Type /Annot -/Rect [336.6 608.309 342 619.622] -/Border [0 0 0] ->> -endobj -5542 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5543 0 obj -<< -/Subtype /Link -/A 5542 0 R -/Type /Annot -/Rect [342 608.309 347.4 619.622] -/Border [0 0 0] ->> -endobj -5544 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5545 0 obj -<< -/Subtype /Link -/A 5544 0 R -/Type /Annot -/Rect [72 596.996 99 608.309] -/Border [0 0 0] ->> -endobj -5546 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5547 0 obj -<< -/Subtype /Link -/A 5546 0 R -/Type /Annot -/Rect [99 596.996 104.4 608.309] -/Border [0 0 0] ->> -endobj -5548 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5549 0 obj -<< -/Subtype /Link -/A 5548 0 R -/Type /Annot -/Rect [104.4 596.996 136.8 608.309] -/Border [0 0 0] ->> -endobj -5550 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5551 0 obj -<< -/Subtype /Link -/A 5550 0 R -/Type /Annot -/Rect [136.8 596.996 142.2 608.309] -/Border [0 0 0] ->> -endobj -5552 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5553 0 obj -<< -/Subtype /Link -/A 5552 0 R -/Type /Annot -/Rect [142.2 596.996 147.6 608.309] -/Border [0 0 0] ->> -endobj -5554 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5555 0 obj -<< -/Subtype /Link -/A 5554 0 R -/Type /Annot -/Rect [147.6 596.996 153 608.309] -/Border [0 0 0] ->> -endobj -5556 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5557 0 obj -<< -/Subtype /Link -/A 5556 0 R -/Type /Annot -/Rect [153 596.996 169.2 608.309] -/Border [0 0 0] ->> -endobj -5558 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5559 0 obj -<< -/Subtype /Link -/A 5558 0 R -/Type /Annot -/Rect [169.2 596.996 174.6 608.309] -/Border [0 0 0] ->> -endobj -5560 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5561 0 obj -<< -/Subtype /Link -/A 5560 0 R -/Type /Annot -/Rect [174.6 596.996 266.4 608.309] -/Border [0 0 0] ->> -endobj -5562 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5563 0 obj -<< -/Subtype /Link -/A 5562 0 R -/Type /Annot -/Rect [266.4 596.996 271.8 608.309] -/Border [0 0 0] ->> -endobj -5564 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5565 0 obj -<< -/Subtype /Link -/A 5564 0 R -/Type /Annot -/Rect [271.8 596.996 277.2 608.309] -/Border [0 0 0] ->> -endobj -5566 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5567 0 obj -<< -/Subtype /Link -/A 5566 0 R -/Type /Annot -/Rect [277.2 596.996 282.6 608.309] -/Border [0 0 0] ->> -endobj -5568 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5569 0 obj -<< -/Subtype /Link -/A 5568 0 R -/Type /Annot -/Rect [72 574.37 293.4 585.683] -/Border [0 0 0] ->> -endobj -5570 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5571 0 obj -<< -/Subtype /Link -/A 5570 0 R -/Type /Annot -/Rect [72 563.057 88.2 574.37] -/Border [0 0 0] ->> -endobj -5572 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5573 0 obj -<< -/Subtype /Link -/A 5572 0 R -/Type /Annot -/Rect [88.2 563.057 93.6 574.37] -/Border [0 0 0] ->> -endobj -5574 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5575 0 obj -<< -/Subtype /Link -/A 5574 0 R -/Type /Annot -/Rect [93.6 563.057 142.2 574.37] -/Border [0 0 0] ->> -endobj -5576 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5577 0 obj -<< -/Subtype /Link -/A 5576 0 R -/Type /Annot -/Rect [142.2 563.057 147.6 574.37] -/Border [0 0 0] ->> -endobj -5578 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5579 0 obj -<< -/Subtype /Link -/A 5578 0 R -/Type /Annot -/Rect [147.6 563.057 158.4 574.37] -/Border [0 0 0] ->> -endobj -5580 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5581 0 obj -<< -/Subtype /Link -/A 5580 0 R -/Type /Annot -/Rect [158.4 563.057 163.8 574.37] -/Border [0 0 0] ->> -endobj -5582 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5583 0 obj -<< -/Subtype /Link -/A 5582 0 R -/Type /Annot -/Rect [163.8 563.057 169.2 574.37] -/Border [0 0 0] ->> -endobj -5584 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5585 0 obj -<< -/Subtype /Link -/A 5584 0 R -/Type /Annot -/Rect [169.2 563.057 174.6 574.37] -/Border [0 0 0] ->> -endobj -5586 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5587 0 obj -<< -/Subtype /Link -/A 5586 0 R -/Type /Annot -/Rect [174.6 563.057 180 574.37] -/Border [0 0 0] ->> -endobj -5588 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5589 0 obj -<< -/Subtype /Link -/A 5588 0 R -/Type /Annot -/Rect [180 563.057 185.4 574.37] -/Border [0 0 0] ->> -endobj -5590 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5591 0 obj -<< -/Subtype /Link -/A 5590 0 R -/Type /Annot -/Rect [185.4 563.057 212.4 574.37] -/Border [0 0 0] ->> -endobj -5592 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5593 0 obj -<< -/Subtype /Link -/A 5592 0 R -/Type /Annot -/Rect [212.4 563.057 217.8 574.37] -/Border [0 0 0] ->> -endobj -5594 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5595 0 obj -<< -/Subtype /Link -/A 5594 0 R -/Type /Annot -/Rect [217.8 563.057 223.2 574.37] -/Border [0 0 0] ->> -endobj -5596 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5597 0 obj -<< -/Subtype /Link -/A 5596 0 R -/Type /Annot -/Rect [223.2 563.057 255.6 574.37] -/Border [0 0 0] ->> -endobj -5598 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5599 0 obj -<< -/Subtype /Link -/A 5598 0 R -/Type /Annot -/Rect [255.6 563.057 261 574.37] -/Border [0 0 0] ->> -endobj -5600 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5601 0 obj -<< -/Subtype /Link -/A 5600 0 R -/Type /Annot -/Rect [261 563.057 266.4 574.37] -/Border [0 0 0] ->> -endobj -5602 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5603 0 obj -<< -/Subtype /Link -/A 5602 0 R -/Type /Annot -/Rect [266.4 563.057 271.8 574.37] -/Border [0 0 0] ->> -endobj -5604 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5605 0 obj -<< -/Subtype /Link -/A 5604 0 R -/Type /Annot -/Rect [271.8 563.057 298.8 574.37] -/Border [0 0 0] ->> -endobj -5606 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5607 0 obj -<< -/Subtype /Link -/A 5606 0 R -/Type /Annot -/Rect [298.8 563.057 304.2 574.37] -/Border [0 0 0] ->> -endobj -5608 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5609 0 obj -<< -/Subtype /Link -/A 5608 0 R -/Type /Annot -/Rect [304.2 563.057 309.6 574.37] -/Border [0 0 0] ->> -endobj -5610 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5611 0 obj -<< -/Subtype /Link -/A 5610 0 R -/Type /Annot -/Rect [309.6 563.057 342 574.37] -/Border [0 0 0] ->> -endobj -5612 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5613 0 obj -<< -/Subtype /Link -/A 5612 0 R -/Type /Annot -/Rect [342 563.057 347.4 574.37] -/Border [0 0 0] ->> -endobj -5614 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5615 0 obj -<< -/Subtype /Link -/A 5614 0 R -/Type /Annot -/Rect [347.4 563.057 352.8 574.37] -/Border [0 0 0] ->> -endobj -5616 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5617 0 obj -<< -/Subtype /Link -/A 5616 0 R -/Type /Annot -/Rect [72 551.744 88.2 563.057] -/Border [0 0 0] ->> -endobj -5618 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5619 0 obj -<< -/Subtype /Link -/A 5618 0 R -/Type /Annot -/Rect [88.2 551.744 93.6 563.057] -/Border [0 0 0] ->> -endobj -5620 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5621 0 obj -<< -/Subtype /Link -/A 5620 0 R -/Type /Annot -/Rect [93.6 551.744 115.2 563.057] -/Border [0 0 0] ->> -endobj -5622 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5623 0 obj -<< -/Subtype /Link -/A 5622 0 R -/Type /Annot -/Rect [115.2 551.744 120.6 563.057] -/Border [0 0 0] ->> -endobj -5624 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5625 0 obj -<< -/Subtype /Link -/A 5624 0 R -/Type /Annot -/Rect [120.6 551.744 131.4 563.057] -/Border [0 0 0] ->> -endobj -5626 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5627 0 obj -<< -/Subtype /Link -/A 5626 0 R -/Type /Annot -/Rect [131.4 551.744 136.8 563.057] -/Border [0 0 0] ->> -endobj -5628 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5629 0 obj -<< -/Subtype /Link -/A 5628 0 R -/Type /Annot -/Rect [136.8 551.744 142.2 563.057] -/Border [0 0 0] ->> -endobj -5630 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5631 0 obj -<< -/Subtype /Link -/A 5630 0 R -/Type /Annot -/Rect [142.2 551.744 147.6 563.057] -/Border [0 0 0] ->> -endobj -5632 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5633 0 obj -<< -/Subtype /Link -/A 5632 0 R -/Type /Annot -/Rect [147.6 551.744 153 563.057] -/Border [0 0 0] ->> -endobj -5634 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5635 0 obj -<< -/Subtype /Link -/A 5634 0 R -/Type /Annot -/Rect [153 551.744 158.4 563.057] -/Border [0 0 0] ->> -endobj -5636 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5637 0 obj -<< -/Subtype /Link -/A 5636 0 R -/Type /Annot -/Rect [158.4 551.744 185.4 563.057] -/Border [0 0 0] ->> -endobj -5638 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5639 0 obj -<< -/Subtype /Link -/A 5638 0 R -/Type /Annot -/Rect [185.4 551.744 190.8 563.057] -/Border [0 0 0] ->> -endobj -5640 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5641 0 obj -<< -/Subtype /Link -/A 5640 0 R -/Type /Annot -/Rect [190.8 551.744 196.2 563.057] -/Border [0 0 0] ->> -endobj -5642 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5643 0 obj -<< -/Subtype /Link -/A 5642 0 R -/Type /Annot -/Rect [196.2 551.744 228.6 563.057] -/Border [0 0 0] ->> -endobj -5644 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5645 0 obj -<< -/Subtype /Link -/A 5644 0 R -/Type /Annot -/Rect [228.6 551.744 234 563.057] -/Border [0 0 0] ->> -endobj -5646 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5647 0 obj -<< -/Subtype /Link -/A 5646 0 R -/Type /Annot -/Rect [234 551.744 239.4 563.057] -/Border [0 0 0] ->> -endobj -5648 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5649 0 obj -<< -/Subtype /Link -/A 5648 0 R -/Type /Annot -/Rect [239.4 551.744 347.4 563.057] -/Border [0 0 0] ->> -endobj -5650 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5651 0 obj -<< -/Subtype /Link -/A 5650 0 R -/Type /Annot -/Rect [347.4 551.744 352.8 563.057] -/Border [0 0 0] ->> -endobj -5652 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5653 0 obj -<< -/Subtype /Link -/A 5652 0 R -/Type /Annot -/Rect [352.8 551.744 358.2 563.057] -/Border [0 0 0] ->> -endobj -5654 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5655 0 obj -<< -/Subtype /Link -/A 5654 0 R -/Type /Annot -/Rect [72 529.118 234 540.431] -/Border [0 0 0] ->> -endobj -5656 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5657 0 obj -<< -/Subtype /Link -/A 5656 0 R -/Type /Annot -/Rect [72 517.805 88.2 529.118] -/Border [0 0 0] ->> -endobj -5658 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5659 0 obj -<< -/Subtype /Link -/A 5658 0 R -/Type /Annot -/Rect [88.2 517.805 93.6 529.118] -/Border [0 0 0] ->> -endobj -5660 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5661 0 obj -<< -/Subtype /Link -/A 5660 0 R -/Type /Annot -/Rect [93.6 517.805 136.8 529.118] -/Border [0 0 0] ->> -endobj -5662 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5663 0 obj -<< -/Subtype /Link -/A 5662 0 R -/Type /Annot -/Rect [136.8 517.805 142.2 529.118] -/Border [0 0 0] ->> -endobj -5664 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5665 0 obj -<< -/Subtype /Link -/A 5664 0 R -/Type /Annot -/Rect [142.2 517.805 147.6 529.118] -/Border [0 0 0] ->> -endobj -5666 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5667 0 obj -<< -/Subtype /Link -/A 5666 0 R -/Type /Annot -/Rect [72 506.492 88.2 517.805] -/Border [0 0 0] ->> -endobj -5668 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5669 0 obj -<< -/Subtype /Link -/A 5668 0 R -/Type /Annot -/Rect [88.2 506.492 93.6 517.805] -/Border [0 0 0] ->> -endobj -5670 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5671 0 obj -<< -/Subtype /Link -/A 5670 0 R -/Type /Annot -/Rect [93.6 506.492 142.2 517.805] -/Border [0 0 0] ->> -endobj -5672 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5673 0 obj -<< -/Subtype /Link -/A 5672 0 R -/Type /Annot -/Rect [142.2 506.492 147.6 517.805] -/Border [0 0 0] ->> -endobj -5674 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5675 0 obj -<< -/Subtype /Link -/A 5674 0 R -/Type /Annot -/Rect [147.6 506.492 185.4 517.805] -/Border [0 0 0] ->> -endobj -5676 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5677 0 obj -<< -/Subtype /Link -/A 5676 0 R -/Type /Annot -/Rect [185.4 506.492 190.8 517.805] -/Border [0 0 0] ->> -endobj -5678 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5679 0 obj -<< -/Subtype /Link -/A 5678 0 R -/Type /Annot -/Rect [72 495.179 88.2 506.492] -/Border [0 0 0] ->> -endobj -5680 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5681 0 obj -<< -/Subtype /Link -/A 5680 0 R -/Type /Annot -/Rect [88.2 495.179 93.6 506.492] -/Border [0 0 0] ->> -endobj -5682 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5683 0 obj -<< -/Subtype /Link -/A 5682 0 R -/Type /Annot -/Rect [93.6 495.179 142.2 506.492] -/Border [0 0 0] ->> -endobj -5684 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5685 0 obj -<< -/Subtype /Link -/A 5684 0 R -/Type /Annot -/Rect [142.2 495.179 147.6 506.492] -/Border [0 0 0] ->> -endobj -5686 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5687 0 obj -<< -/Subtype /Link -/A 5686 0 R -/Type /Annot -/Rect [147.6 495.179 158.4 506.492] -/Border [0 0 0] ->> -endobj -5688 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5689 0 obj -<< -/Subtype /Link -/A 5688 0 R -/Type /Annot -/Rect [158.4 495.179 163.8 506.492] -/Border [0 0 0] ->> -endobj -5690 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5691 0 obj -<< -/Subtype /Link -/A 5690 0 R -/Type /Annot -/Rect [163.8 495.179 169.2 506.492] -/Border [0 0 0] ->> -endobj -5692 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5693 0 obj -<< -/Subtype /Link -/A 5692 0 R -/Type /Annot -/Rect [169.2 495.179 185.4 506.492] -/Border [0 0 0] ->> -endobj -5694 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5695 0 obj -<< -/Subtype /Link -/A 5694 0 R -/Type /Annot -/Rect [185.4 495.179 190.8 506.492] -/Border [0 0 0] ->> -endobj -5696 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5697 0 obj -<< -/Subtype /Link -/A 5696 0 R -/Type /Annot -/Rect [190.8 495.179 196.2 506.492] -/Border [0 0 0] ->> -endobj -5698 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5699 0 obj -<< -/Subtype /Link -/A 5698 0 R -/Type /Annot -/Rect [196.2 495.179 201.6 506.492] -/Border [0 0 0] ->> -endobj -5700 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5701 0 obj -<< -/Subtype /Link -/A 5700 0 R -/Type /Annot -/Rect [201.6 495.179 207 506.492] -/Border [0 0 0] ->> -endobj -5702 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5703 0 obj -<< -/Subtype /Link -/A 5702 0 R -/Type /Annot -/Rect [207 495.179 223.2 506.492] -/Border [0 0 0] ->> -endobj -5704 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5705 0 obj -<< -/Subtype /Link -/A 5704 0 R -/Type /Annot -/Rect [223.2 495.179 228.6 506.492] -/Border [0 0 0] ->> -endobj -5706 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5707 0 obj -<< -/Subtype /Link -/A 5706 0 R -/Type /Annot -/Rect [228.6 495.179 298.8 506.492] -/Border [0 0 0] ->> -endobj -5708 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5709 0 obj -<< -/Subtype /Link -/A 5708 0 R -/Type /Annot -/Rect [298.8 495.179 304.2 506.492] -/Border [0 0 0] ->> -endobj -5710 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5711 0 obj -<< -/Subtype /Link -/A 5710 0 R -/Type /Annot -/Rect [304.2 495.179 450 506.492] -/Border [0 0 0] ->> -endobj -5712 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5713 0 obj -<< -/Subtype /Link -/A 5712 0 R -/Type /Annot -/Rect [450 495.179 455.4 506.492] -/Border [0 0 0] ->> -endobj -5714 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5715 0 obj -<< -/Subtype /Link -/A 5714 0 R -/Type /Annot -/Rect [455.4 495.179 460.8 506.492] -/Border [0 0 0] ->> -endobj -5716 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5717 0 obj -<< -/Subtype /Link -/A 5716 0 R -/Type /Annot -/Rect [460.8 495.179 466.2 506.492] -/Border [0 0 0] ->> -endobj -5718 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5719 0 obj -<< -/Subtype /Link -/A 5718 0 R -/Type /Annot -/Rect [466.2 495.179 498.6 506.492] -/Border [0 0 0] ->> -endobj -5720 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5721 0 obj -<< -/Subtype /Link -/A 5720 0 R -/Type /Annot -/Rect [498.6 495.179 504 506.492] -/Border [0 0 0] ->> -endobj -5722 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5723 0 obj -<< -/Subtype /Link -/A 5722 0 R -/Type /Annot -/Rect [72 483.866 88.2 495.179] -/Border [0 0 0] ->> -endobj -5724 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5725 0 obj -<< -/Subtype /Link -/A 5724 0 R -/Type /Annot -/Rect [88.2 483.866 93.6 495.179] -/Border [0 0 0] ->> -endobj -5726 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5727 0 obj -<< -/Subtype /Link -/A 5726 0 R -/Type /Annot -/Rect [93.6 483.866 115.2 495.179] -/Border [0 0 0] ->> -endobj -5728 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5729 0 obj -<< -/Subtype /Link -/A 5728 0 R -/Type /Annot -/Rect [115.2 483.866 120.6 495.179] -/Border [0 0 0] ->> -endobj -5730 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5731 0 obj -<< -/Subtype /Link -/A 5730 0 R -/Type /Annot -/Rect [120.6 483.866 266.4 495.179] -/Border [0 0 0] ->> -endobj -5732 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5733 0 obj -<< -/Subtype /Link -/A 5732 0 R -/Type /Annot -/Rect [266.4 483.866 271.8 495.179] -/Border [0 0 0] ->> -endobj -5734 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5735 0 obj -<< -/Subtype /Link -/A 5734 0 R -/Type /Annot -/Rect [271.8 483.866 277.2 495.179] -/Border [0 0 0] ->> -endobj -5736 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5737 0 obj -<< -/Subtype /Link -/A 5736 0 R -/Type /Annot -/Rect [72 461.24 234 472.553] -/Border [0 0 0] ->> -endobj -5738 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5739 0 obj -<< -/Subtype /Link -/A 5738 0 R -/Type /Annot -/Rect [72 449.927 88.2 461.24] -/Border [0 0 0] ->> -endobj -5740 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5741 0 obj -<< -/Subtype /Link -/A 5740 0 R -/Type /Annot -/Rect [88.2 449.927 93.6 461.24] -/Border [0 0 0] ->> -endobj -5742 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5743 0 obj -<< -/Subtype /Link -/A 5742 0 R -/Type /Annot -/Rect [93.6 449.927 136.8 461.24] -/Border [0 0 0] ->> -endobj -5744 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5745 0 obj -<< -/Subtype /Link -/A 5744 0 R -/Type /Annot -/Rect [136.8 449.927 142.2 461.24] -/Border [0 0 0] ->> -endobj -5746 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5747 0 obj -<< -/Subtype /Link -/A 5746 0 R -/Type /Annot -/Rect [142.2 449.927 147.6 461.24] -/Border [0 0 0] ->> -endobj -5748 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5749 0 obj -<< -/Subtype /Link -/A 5748 0 R -/Type /Annot -/Rect [72 438.614 88.2 449.927] -/Border [0 0 0] ->> -endobj -5750 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5751 0 obj -<< -/Subtype /Link -/A 5750 0 R -/Type /Annot -/Rect [88.2 438.614 93.6 449.927] -/Border [0 0 0] ->> -endobj -5752 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5753 0 obj -<< -/Subtype /Link -/A 5752 0 R -/Type /Annot -/Rect [93.6 438.614 126 449.927] -/Border [0 0 0] ->> -endobj -5754 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5755 0 obj -<< -/Subtype /Link -/A 5754 0 R -/Type /Annot -/Rect [126 438.614 131.4 449.927] -/Border [0 0 0] ->> -endobj -5756 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5757 0 obj -<< -/Subtype /Link -/A 5756 0 R -/Type /Annot -/Rect [131.4 438.614 142.2 449.927] -/Border [0 0 0] ->> -endobj -5758 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5759 0 obj -<< -/Subtype /Link -/A 5758 0 R -/Type /Annot -/Rect [142.2 438.614 147.6 449.927] -/Border [0 0 0] ->> -endobj -5760 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5761 0 obj -<< -/Subtype /Link -/A 5760 0 R -/Type /Annot -/Rect [147.6 438.614 153 449.927] -/Border [0 0 0] ->> -endobj -5762 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5763 0 obj -<< -/Subtype /Link -/A 5762 0 R -/Type /Annot -/Rect [153 438.614 169.2 449.927] -/Border [0 0 0] ->> -endobj -5764 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5765 0 obj -<< -/Subtype /Link -/A 5764 0 R -/Type /Annot -/Rect [169.2 438.614 174.6 449.927] -/Border [0 0 0] ->> -endobj -5766 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5767 0 obj -<< -/Subtype /Link -/A 5766 0 R -/Type /Annot -/Rect [174.6 438.614 180 449.927] -/Border [0 0 0] ->> -endobj -5768 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5769 0 obj -<< -/Subtype /Link -/A 5768 0 R -/Type /Annot -/Rect [180 438.614 185.4 449.927] -/Border [0 0 0] ->> -endobj -5770 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5771 0 obj -<< -/Subtype /Link -/A 5770 0 R -/Type /Annot -/Rect [185.4 438.614 190.8 449.927] -/Border [0 0 0] ->> -endobj -5772 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5773 0 obj -<< -/Subtype /Link -/A 5772 0 R -/Type /Annot -/Rect [190.8 438.614 207 449.927] -/Border [0 0 0] ->> -endobj -5774 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5775 0 obj -<< -/Subtype /Link -/A 5774 0 R -/Type /Annot -/Rect [207 438.614 212.4 449.927] -/Border [0 0 0] ->> -endobj -5776 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5777 0 obj -<< -/Subtype /Link -/A 5776 0 R -/Type /Annot -/Rect [212.4 438.614 282.6 449.927] -/Border [0 0 0] ->> -endobj -5778 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5779 0 obj -<< -/Subtype /Link -/A 5778 0 R -/Type /Annot -/Rect [282.6 438.614 288 449.927] -/Border [0 0 0] ->> -endobj -5780 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5781 0 obj -<< -/Subtype /Link -/A 5780 0 R -/Type /Annot -/Rect [288 438.614 336.6 449.927] -/Border [0 0 0] ->> -endobj -5782 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5783 0 obj -<< -/Subtype /Link -/A 5782 0 R -/Type /Annot -/Rect [336.6 438.614 342 449.927] -/Border [0 0 0] ->> -endobj -5784 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5785 0 obj -<< -/Subtype /Link -/A 5784 0 R -/Type /Annot -/Rect [342 438.614 347.4 449.927] -/Border [0 0 0] ->> -endobj -5786 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5787 0 obj -<< -/Subtype /Link -/A 5786 0 R -/Type /Annot -/Rect [347.4 438.614 352.8 449.927] -/Border [0 0 0] ->> -endobj -5788 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5789 0 obj -<< -/Subtype /Link -/A 5788 0 R -/Type /Annot -/Rect [352.8 438.614 385.2 449.927] -/Border [0 0 0] ->> -endobj -5790 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5791 0 obj -<< -/Subtype /Link -/A 5790 0 R -/Type /Annot -/Rect [385.2 438.614 390.6 449.927] -/Border [0 0 0] ->> -endobj -5792 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5793 0 obj -<< -/Subtype /Link -/A 5792 0 R -/Type /Annot -/Rect [72 427.301 88.2 438.614] -/Border [0 0 0] ->> -endobj -5794 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5795 0 obj -<< -/Subtype /Link -/A 5794 0 R -/Type /Annot -/Rect [88.2 427.301 93.6 438.614] -/Border [0 0 0] ->> -endobj -5796 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5797 0 obj -<< -/Subtype /Link -/A 5796 0 R -/Type /Annot -/Rect [93.6 427.301 115.2 438.614] -/Border [0 0 0] ->> -endobj -5798 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5799 0 obj -<< -/Subtype /Link -/A 5798 0 R -/Type /Annot -/Rect [115.2 427.301 120.6 438.614] -/Border [0 0 0] ->> -endobj -5800 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5801 0 obj -<< -/Subtype /Link -/A 5800 0 R -/Type /Annot -/Rect [120.6 427.301 169.2 438.614] -/Border [0 0 0] ->> -endobj -5802 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5803 0 obj -<< -/Subtype /Link -/A 5802 0 R -/Type /Annot -/Rect [169.2 427.301 174.6 438.614] -/Border [0 0 0] ->> -endobj -5804 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5805 0 obj -<< -/Subtype /Link -/A 5804 0 R -/Type /Annot -/Rect [174.6 427.301 180 438.614] -/Border [0 0 0] ->> -endobj -5806 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5807 0 obj -<< -/Subtype /Link -/A 5806 0 R -/Type /Annot -/Rect [72 404.801 282.390625 417.301] -/Border [0 0 0] ->> -endobj -5808 0 obj -<< -/Subtype /Underline -/QuadPoints [92 384.397 236.475 384.397 92 361.272 236.475 361.272] -/Contents () -/Type /Annot -/Rect [92 361.272 236.475 384.397] -/Border [0 0 0] -/C [0 0 1] ->> -endobj -5809 0 obj -<< -/S /URI -/URI (http://google.com/) ->> -endobj -5810 0 obj -<< -/Subtype /Link -/A 5809 0 R -/Type /Annot -/Rect [92 361.272 236.475 384.397] -/Border [0 0 0] ->> -endobj -5811 0 obj -<< -/Subtype /Highlight -/QuadPoints [92 326.597 345.525 326.597 92 303.472 345.525 303.472] -/Contents () -/Type /Annot -/Rect [92 303.472 345.525 326.597] -/Border [0 0 0] -/C [0.945098 0.933333 0.580392] ->> -endobj -5812 0 obj -<< -/Subtype /StrikeOut -/QuadPoints [92 268.797 189.25 268.797 92 245.672 189.25 245.672] -/Contents () -/Type /Annot -/Rect [92 245.672 189.25 268.797] -/Border [0 0 0] -/C [0 0 0] ->> -endobj -5813 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5814 0 obj -<< -/Subtype /Link -/A 5813 0 R -/Type /Annot -/Rect [72 207.397 517.263672 219.897] -/Border [0 0 0] ->> -endobj -5815 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5816 0 obj -<< -/Subtype /Link -/A 5815 0 R -/Type /Annot -/Rect [72 194.897 526.013672 207.397] -/Border [0 0 0] ->> -endobj -5817 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5818 0 obj -<< -/Subtype /Link -/A 5817 0 R -/Type /Annot -/Rect [72 182.397 499.138672 194.897] -/Border [0 0 0] ->> -endobj -5819 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5820 0 obj -<< -/Subtype /Link -/A 5819 0 R -/Type /Annot -/Rect [72 169.897 319.036133 182.397] -/Border [0 0 0] ->> -endobj -5821 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5822 0 obj -<< -/Subtype /Link -/A 5821 0 R -/Type /Annot -/Rect [72 148.584 88.2 159.897] -/Border [0 0 0] ->> -endobj -5823 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5824 0 obj -<< -/Subtype /Link -/A 5823 0 R -/Type /Annot -/Rect [88.2 148.584 93.6 159.897] -/Border [0 0 0] ->> -endobj -5825 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5826 0 obj -<< -/Subtype /Link -/A 5825 0 R -/Type /Annot -/Rect [93.6 148.584 136.8 159.897] -/Border [0 0 0] ->> -endobj -5827 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5828 0 obj -<< -/Subtype /Link -/A 5827 0 R -/Type /Annot -/Rect [136.8 148.584 142.2 159.897] -/Border [0 0 0] ->> -endobj -5829 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5830 0 obj -<< -/Subtype /Link -/A 5829 0 R -/Type /Annot -/Rect [142.2 148.584 153 159.897] -/Border [0 0 0] ->> -endobj -5831 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5832 0 obj -<< -/Subtype /Link -/A 5831 0 R -/Type /Annot -/Rect [153 148.584 158.4 159.897] -/Border [0 0 0] ->> -endobj -5833 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5834 0 obj -<< -/Subtype /Link -/A 5833 0 R -/Type /Annot -/Rect [72 137.271 88.2 148.584] -/Border [0 0 0] ->> -endobj -5835 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5836 0 obj -<< -/Subtype /Link -/A 5835 0 R -/Type /Annot -/Rect [88.2 137.271 93.6 148.584] -/Border [0 0 0] ->> -endobj -5837 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5838 0 obj -<< -/Subtype /Link -/A 5837 0 R -/Type /Annot -/Rect [93.6 137.271 142.2 148.584] -/Border [0 0 0] ->> -endobj -5839 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5840 0 obj -<< -/Subtype /Link -/A 5839 0 R -/Type /Annot -/Rect [142.2 137.271 147.6 148.584] -/Border [0 0 0] ->> -endobj -5841 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5842 0 obj -<< -/Subtype /Link -/A 5841 0 R -/Type /Annot -/Rect [147.6 137.271 174.6 148.584] -/Border [0 0 0] ->> -endobj -5843 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5844 0 obj -<< -/Subtype /Link -/A 5843 0 R -/Type /Annot -/Rect [174.6 137.271 180 148.584] -/Border [0 0 0] ->> -endobj -5845 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5846 0 obj -<< -/Subtype /Link -/A 5845 0 R -/Type /Annot -/Rect [72 125.958 88.2 137.271] -/Border [0 0 0] ->> -endobj -5847 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5848 0 obj -<< -/Subtype /Link -/A 5847 0 R -/Type /Annot -/Rect [88.2 125.958 93.6 137.271] -/Border [0 0 0] ->> -endobj -5849 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5850 0 obj -<< -/Subtype /Link -/A 5849 0 R -/Type /Annot -/Rect [93.6 125.958 115.2 137.271] -/Border [0 0 0] ->> -endobj -5851 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5852 0 obj -<< -/Subtype /Link -/A 5851 0 R -/Type /Annot -/Rect [115.2 125.958 120.6 137.271] -/Border [0 0 0] ->> -endobj -5853 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5854 0 obj -<< -/Subtype /Link -/A 5853 0 R -/Type /Annot -/Rect [120.6 125.958 201.6 137.271] -/Border [0 0 0] ->> -endobj -5855 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5856 0 obj -<< -/Subtype /Link -/A 5855 0 R -/Type /Annot -/Rect [201.6 125.958 207 137.271] -/Border [0 0 0] ->> -endobj -5857 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5858 0 obj -<< -/Subtype /Link -/A 5857 0 R -/Type /Annot -/Rect [207 125.958 212.4 137.271] -/Border [0 0 0] ->> -endobj -5859 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5860 0 obj -<< -/Subtype /Link -/A 5859 0 R -/Type /Annot -/Rect [212.4 125.958 223.2 137.271] -/Border [0 0 0] ->> -endobj -5861 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5862 0 obj -<< -/Subtype /Link -/A 5861 0 R -/Type /Annot -/Rect [223.2 125.958 228.6 137.271] -/Border [0 0 0] ->> -endobj -5863 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5864 0 obj -<< -/Subtype /Link -/A 5863 0 R -/Type /Annot -/Rect [228.6 125.958 234 137.271] -/Border [0 0 0] ->> -endobj -5865 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5866 0 obj -<< -/Subtype /Link -/A 5865 0 R -/Type /Annot -/Rect [234 125.958 239.4 137.271] -/Border [0 0 0] ->> -endobj -5867 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5868 0 obj -<< -/Subtype /Link -/A 5867 0 R -/Type /Annot -/Rect [239.4 125.958 244.8 137.271] -/Border [0 0 0] ->> -endobj -5869 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5870 0 obj -<< -/Subtype /Link -/A 5869 0 R -/Type /Annot -/Rect [244.8 125.958 250.2 137.271] -/Border [0 0 0] ->> -endobj -5871 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5872 0 obj -<< -/Subtype /Link -/A 5871 0 R -/Type /Annot -/Rect [250.2 125.958 255.6 137.271] -/Border [0 0 0] ->> -endobj -5873 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5874 0 obj -<< -/Subtype /Link -/A 5873 0 R -/Type /Annot -/Rect [72 114.645 99 125.958] -/Border [0 0 0] ->> -endobj -5875 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5876 0 obj -<< -/Subtype /Link -/A 5875 0 R -/Type /Annot -/Rect [99 114.645 120.6 125.958] -/Border [0 0 0] ->> -endobj -5877 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5878 0 obj -<< -/Subtype /Link -/A 5877 0 R -/Type /Annot -/Rect [120.6 114.645 126 125.958] -/Border [0 0 0] ->> -endobj -5879 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5880 0 obj -<< -/Subtype /Link -/A 5879 0 R -/Type /Annot -/Rect [126 114.645 131.4 125.958] -/Border [0 0 0] ->> -endobj -5881 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5882 0 obj -<< -/Subtype /Link -/A 5881 0 R -/Type /Annot -/Rect [131.4 114.645 234 125.958] -/Border [0 0 0] ->> -endobj -5883 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5884 0 obj -<< -/Subtype /Link -/A 5883 0 R -/Type /Annot -/Rect [234 114.645 239.4 125.958] -/Border [0 0 0] ->> -endobj -5885 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5886 0 obj -<< -/Subtype /Link -/A 5885 0 R -/Type /Annot -/Rect [72 103.332 99 114.645] -/Border [0 0 0] ->> -endobj -5887 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5888 0 obj -<< -/Subtype /Link -/A 5887 0 R -/Type /Annot -/Rect [99 103.332 147.6 114.645] -/Border [0 0 0] ->> -endobj -5889 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5890 0 obj -<< -/Subtype /Link -/A 5889 0 R -/Type /Annot -/Rect [147.6 103.332 153 114.645] -/Border [0 0 0] ->> -endobj -5891 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5892 0 obj -<< -/Subtype /Link -/A 5891 0 R -/Type /Annot -/Rect [153 103.332 158.4 114.645] -/Border [0 0 0] ->> -endobj -5893 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5894 0 obj -<< -/Subtype /Link -/A 5893 0 R -/Type /Annot -/Rect [158.4 103.332 180 114.645] -/Border [0 0 0] ->> -endobj -5895 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5896 0 obj -<< -/Subtype /Link -/A 5895 0 R -/Type /Annot -/Rect [72 92.019 88.2 103.332] -/Border [0 0 0] ->> -endobj -5897 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5898 0 obj -<< -/Subtype /Link -/A 5897 0 R -/Type /Annot -/Rect [88.2 92.019 93.6 103.332] -/Border [0 0 0] ->> -endobj -5899 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5900 0 obj -<< -/Subtype /Link -/A 5899 0 R -/Type /Annot -/Rect [72 80.706 77.4 92.019] -/Border [0 0 0] ->> -endobj -5901 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5902 0 obj -<< -/Subtype /Link -/A 5901 0 R -/Type /Annot -/Rect [77.4 80.706 82.8 92.019] -/Border [0 0 0] ->> -endobj -5461 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 5459 0 R -/Resources 5460 0 R -/Annots [5463 0 R 5465 0 R 5467 0 R 5469 0 R 5471 0 R 5473 0 R 5475 0 R 5477 0 R 5479 0 R 5481 0 R 5483 0 R 5485 0 R 5487 0 R 5489 0 R 5491 0 R 5493 0 R 5495 0 R 5497 0 R 5499 0 R 5501 0 R 5503 0 R 5505 0 R 5507 0 R 5509 0 R 5511 0 R 5513 0 R 5515 0 R 5517 0 R 5519 0 R 5521 0 R 5523 0 R 5525 0 R 5527 0 R 5529 0 R 5531 0 R 5533 0 R 5535 0 R 5537 0 R 5539 0 R 5541 0 R 5543 0 R 5545 0 R 5547 0 R 5549 0 R 5551 0 R 5553 0 R 5555 0 R 5557 0 R 5559 0 R 5561 0 R 5563 0 R 5565 0 R 5567 0 R 5569 0 R 5571 0 R 5573 0 R 5575 0 R 5577 0 R 5579 0 R 5581 0 R 5583 0 R 5585 0 R 5587 0 R 5589 0 R 5591 0 R 5593 0 R 5595 0 R 5597 0 R 5599 0 R 5601 0 R 5603 0 R 5605 0 R 5607 0 R 5609 0 R 5611 0 R 5613 0 R 5615 0 R 5617 0 R 5619 0 R 5621 0 R 5623 0 R 5625 0 R 5627 0 R 5629 0 R 5631 0 R 5633 0 R 5635 0 R 5637 0 R 5639 0 R 5641 0 R 5643 0 R 5645 0 R 5647 0 R 5649 0 R 5651 0 R 5653 0 R 5655 0 R 5657 0 R 5659 0 R 5661 0 R 5663 0 R 5665 0 R 5667 0 R 5669 0 R 5671 0 R 5673 0 R 5675 0 R 5677 0 R 5679 0 R 5681 0 R 5683 0 R 5685 0 R 5687 0 R 5689 0 R 5691 0 R 5693 0 R 5695 0 R 5697 0 R 5699 0 R 5701 0 R 5703 0 R 5705 0 R 5707 0 R 5709 0 R 5711 0 R 5713 0 R 5715 0 R 5717 0 R 5719 0 R 5721 0 R 5723 0 R 5725 0 R 5727 0 R 5729 0 R 5731 0 R 5733 0 R 5735 0 R 5737 0 R 5739 0 R 5741 0 R 5743 0 R 5745 0 R 5747 0 R 5749 0 R 5751 0 R 5753 0 R 5755 0 R 5757 0 R 5759 0 R 5761 0 R 5763 0 R 5765 0 R 5767 0 R 5769 0 R 5771 0 R 5773 0 R 5775 0 R 5777 0 R 5779 0 R 5781 0 R 5783 0 R 5785 0 R 5787 0 R 5789 0 R 5791 0 R 5793 0 R 5795 0 R 5797 0 R 5799 0 R 5801 0 R 5803 0 R 5805 0 R 5807 0 R 5808 0 R 5810 0 R 5811 0 R 5812 0 R 5814 0 R 5816 0 R 5818 0 R 5820 0 R 5822 0 R 5824 0 R 5826 0 R 5828 0 R 5830 0 R 5832 0 R 5834 0 R 5836 0 R 5838 0 R 5840 0 R 5842 0 R 5844 0 R 5846 0 R 5848 0 R 5850 0 R 5852 0 R 5854 0 R 5856 0 R 5858 0 R 5860 0 R 5862 0 R 5864 0 R 5866 0 R 5868 0 R 5870 0 R 5872 0 R 5874 0 R 5876 0 R 5878 0 R 5880 0 R 5882 0 R 5884 0 R 5886 0 R 5888 0 R 5890 0 R 5892 0 R 5894 0 R 5896 0 R 5898 0 R 5900 0 R 5902 0 R] ->> -endobj -5460 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F3 9 0 R -/F5 29 0 R -/F1 3849 0 R ->> ->> -endobj -5459 0 obj -<< -/Length 2610 -/Filter /FlateDecode ->> -stream -x]Ɏ6Wp_Y-ȡ Cå(Sr;2I hX$@-|?~2^U/p Q19Jap]]>ܥ{u/ξwt(|?ûWp/[б\xG=}T1˯KJj7Wi3*!"y`u9^'0yKDdBK|29u;UF1-$p˨vZ M1KfEhвd=%'#85l1#BgBq5:UDOA܉Jw i8E)aKF-QFSnK2vR`q\Tkxtqxݓjt}Xt=NcÈ=?.Ze5YzQQQލ - 0h0ՈfiX}F4V`H1*+#bee&,jlmUIk*6lh;~C{н"xAUTm$b s[)j9\꒔ztԃ}j޾=c#Ѷ ~|bxcGfׯxF7_毗VPWy/fh -OkqP>J\4oIJ] >pD?.z*^W+G*[`ߵ9S-;Zh L w;ol x /Գ(,:镼/pMsЩz0G_ GM;ʐCj`YZw\;])іJFB9M C%q&RTR h|f_tV&铩F%#2)#[h(;O %hi;ׂڔʆsd]Gݰ<Əz@i<=nȝTjdA*ۅ>b{ 'Q4uWTS~no?F9q yRpzgn((؆?2ˉ-xM|s=4=K^NJq2 Nc_#;WRj?&aTk$5}Ҿb±.@E]Tl(aJGs͒|]f8y'$P3]p1o_B垝8g !F8hRe&HVPotrR+l&:Δ3uvّ@lWvJ浙u3aiD`D>DC@+eD4n51jNczKz[\\s< ߳|- cpڪ1j(vi r&Hb!sU?2ix bTOCȦ8;ϸ Hc@wck(~ƯOAZ/J5DxkABz}P]_(Tqh=cdڲ6cv4(ZoGZ&{FXK鞰,yQM`E^'t>ӸLjtJڑ9 ӘCDwEi·>T]%pd;FC"VOp9Kpr=4:.xCbHrw#!Jݛ(U(~†TQp \z< wIg!If?(g`1,椢iFq^l Nc#RX.F\ X7?Xzc411cѣe04;+DY=)?"jXs#Ϳw GHrhEuyz:hǠŵt N -'V;꠬:wĻijFVZ %? b*~o_JʕOK!'cflE!`8 -P/sI\ΠKA'OY<{F.u$(Q׻Cp]ƹ`<릹40w2/rǐS%a:, OCp;sJO-9D{=O\&ʀi{:[R8!᣸F}i7bp/FABR(0YgK86j{`X᯹Ir/K(NbT>u0+a!Q+h P$ֳ$}$N0S=R!X^TclbL98ڍ!7[g}Bf^ZNMi'YDpV| -B9ZydլBp̊x̷5@z)IƊQn6~Aci{]˵nga(n-Fz, -endstream -endobj -5906 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5907 0 obj -<< -/Subtype /Link -/A 5906 0 R -/Type /Annot -/Rect [72 707.5 220.330078 720] -/Border [0 0 0] ->> -endobj -5908 0 obj -<< -/S /URI -/URI (http://apple.com/) ->> -endobj -5909 0 obj -<< -/Subtype /Link -/A 5908 0 R -/Type /Annot -/Rect [92 668.596 203.16 687.096] -/Border [0 0 0] ->> -endobj -5905 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 5903 0 R -/Resources 5904 0 R -/Annots [5907 0 R 5909 0 R] ->> -endobj -5904 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F3 9 0 R -/F1 3849 0 R ->> ->> -endobj -5903 0 obj -<< -/Length 225 -/Filter /FlateDecode ->> -stream -xPjA +&ą҃ -=έt -Eo]p2y<&<_ =<\>VsG~ozi,21,d´'"Q"fr1=ѷgʵqy2'y3A9ZMyF w 0Qu'fяLx ihqp`^;wQ3 jYn-L[!ye#o5jb -endstream -endobj -5914 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5915 0 obj -<< -/Subtype /Link -/A 5914 0 R -/Type /Annot -/Rect [72 685.975 200.75 720] -/Border [0 0 0] ->> -endobj -5916 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5917 0 obj -<< -/Subtype /Link -/A 5916 0 R -/Type /Annot -/Rect [72 658.475 513.044922 670.975] -/Border [0 0 0] ->> -endobj -5918 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5919 0 obj -<< -/Subtype /Link -/A 5918 0 R -/Type /Annot -/Rect [72 645.975 356.829102 658.475] -/Border [0 0 0] ->> -endobj -5920 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5921 0 obj -<< -/Subtype /Link -/A 5920 0 R -/Type /Annot -/Rect [72 623.475 495.291016 635.975] -/Border [0 0 0] ->> -endobj -5922 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5923 0 obj -<< -/Subtype /Link -/A 5922 0 R -/Type /Annot -/Rect [72 610.975 536.570313 623.475] -/Border [0 0 0] ->> -endobj -5924 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5925 0 obj -<< -/Subtype /Link -/A 5924 0 R -/Type /Annot -/Rect [72 598.475 296.614258 610.975] -/Border [0 0 0] ->> -endobj -5926 0 obj -<< -/S /URI -/URI (http://github.com/devongovett/pdfkit/tree/master/docs/generate.coffee) ->> -endobj -5927 0 obj -<< -/Subtype /Link -/A 5926 0 R -/Type /Annot -/Rect [296.614258 598.475 346.375 610.975] -/Border [0 0 0] ->> -endobj -5928 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5929 0 obj -<< -/Subtype /Link -/A 5928 0 R -/Type /Annot -/Rect [346.375 598.475 519.246094 610.975] -/Border [0 0 0] ->> -endobj -5930 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5931 0 obj -<< -/Subtype /Link -/A 5930 0 R -/Type /Annot -/Rect [72 585.975 526.838867 598.475] -/Border [0 0 0] ->> -endobj -5932 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5933 0 obj -<< -/Subtype /Link -/A 5932 0 R -/Type /Annot -/Rect [72 573.475 132.146484 585.975] -/Border [0 0 0] ->> -endobj -5934 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5935 0 obj -<< -/Subtype /Link -/A 5934 0 R -/Type /Annot -/Rect [72 550.975 523.181641 563.475] -/Border [0 0 0] ->> -endobj -5936 0 obj -<< -/S /URI -/URI (http://twitter.com/devongovett) ->> -endobj -5937 0 obj -<< -/Subtype /Link -/A 5936 0 R -/Type /Annot -/Rect [72 538.475 144.172852 550.975] -/Border [0 0 0] ->> -endobj -5938 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5939 0 obj -<< -/Subtype /Link -/A 5938 0 R -/Type /Annot -/Rect [144.172852 538.475 242.517578 550.975] -/Border [0 0 0] ->> -endobj -5940 0 obj -<< -/S /URI -/URI (http://github.com/devongovett/pdfkit/issues) ->> -endobj -5941 0 obj -<< -/Subtype /Link -/A 5940 0 R -/Type /Annot -/Rect [242.517578 538.475 276.897461 550.975] -/Border [0 0 0] ->> -endobj -5942 0 obj -<< -/S /URI -/URI (false) ->> -endobj -5943 0 obj -<< -/Subtype /Link -/A 5942 0 R -/Type /Annot -/Rect [276.897461 538.475 314.402344 550.975] -/Border [0 0 0] ->> -endobj -5912 0 obj -<< -/Type /Page -/Parent 1 0 R -/MediaBox [0 0 612 792] -/Contents 5910 0 R -/Resources 5911 0 R -/Annots [5915 0 R 5917 0 R 5919 0 R 5921 0 R 5923 0 R 5925 0 R 5927 0 R 5929 0 R 5931 0 R 5933 0 R 5935 0 R 5937 0 R 5939 0 R 5941 0 R 5943 0 R] ->> -endobj -5911 0 obj -<< -/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] -/Font << -/F4 16 0 R -/F3 9 0 R ->> ->> -endobj -5910 0 obj -<< -/Length 835 -/Filter /FlateDecode ->> -stream -xWɎ0 +MEj"A=dB*,hlK=>*t{_P???'5t:dv4 *xG| -oqU \:i<ǁeN8L@(9-s&@kr\ސ3;l3{:;IqM8K#Ix}9L%5?Y]g}5QXG.u))wBɱ{{eC>2g{^`x 8Wϻk6SXQqj1Y85%9HrDv(6Ռ{MF b>+h:Źr!א?)p  ,\Ld-<}7&F`<<dr]a4'aW͆w(AfgDDԒ`h -_X[H/ -FĒɪELYxOBrsnş}?;n.< Vn t#W7Bfe݊YXWJe/J7ә~7",@'n]jQg7.+{KotB`ܔX&9ڲ[[1wfm6i{w޶~^9^`fF"gVXAp?gXp6fԴ̱ R_&p<- -endstream -endobj -5945 0 obj -(PDFKit) -endobj -5946 0 obj -(PDFKit) -endobj -5947 0 obj -(D:20190128044916Z) -endobj -5944 0 obj -<< -/Producer 5945 0 R -/Creator 5946 0 R -/CreationDate 5947 0 R ->> -endobj -3849 0 obj -<< -/Type /Font -/BaseFont /Helvetica -/Subtype /Type1 -/Encoding /WinAnsiEncoding ->> -endobj -5949 0 obj -<< -/Type /FontDescriptor -/FontName /BZZZZZ+AlegreyaSans-Light -/Flags 4 -/FontBBox [-240 -264 1137 967] -/ItalicAngle 0 -/Ascent 900 -/Descent -300 -/CapHeight 639 -/XHeight 495 -/StemV 0 -/FontFile2 5948 0 R ->> -endobj -5950 0 obj -<< -/Type /Font -/Subtype /CIDFontType2 -/BaseFont /BZZZZZ+AlegreyaSans-Light -/CIDSystemInfo << -/Registry (Adobe) -/Ordering (Identity) -/Supplement 0 ->> -/FontDescriptor 5949 0 R -/W [0 [172 503 642 423 528 231 309 172 602 508 512 443 516 416 415 489 509]] ->> -endobj -5951 0 obj -<< -/Length 265 -/Filter /FlateDecode ->> -stream -x]Qj0 +t%MHS!0KƲ-b9g[Y;&{Orvn[ڋaqR[ k(CKo%W~]Z"9č]Gd!DS C-ћi yOeIP 'My$UqU8Dq:\DxMJ -endstream -endobj -7 0 obj -<< -/Type /Font -/Subtype /Type0 -/BaseFont /BZZZZZ+AlegreyaSans-Light -/Encoding /Identity-H -/DescendantFonts [5950 0 R] -/ToUnicode 5951 0 R ->> -endobj -5953 0 obj -<< -/Type /FontDescriptor -/FontName /CZZZZZ+Merriweather -/Flags 6 -/FontBBox [-41.992187 -312.5 1199.707031 937.5] -/ItalicAngle 0 -/Ascent 937.5 -/Descent -312.5 -/CapHeight 758.300781 -/XHeight 546.386719 -/StemV 0 -/FontFile2 5952 0 R ->> -endobj -5954 0 obj -<< -/Type /Font -/Subtype /CIDFontType2 -/BaseFont /CZZZZZ+Merriweather -/CIDSystemInfo << -/Registry (Adobe) -/Ordering (Identity) -/Supplement 0 ->> -/FontDescriptor 5953 0 R -/W [0 [1770 695.800781 559.082031 450.683594 511.71875 333.496094 601.074219 681.640625 255.371094 647.949219 344.726563 615.234375 372.558594 420.898438 559.082031 340.820313 630.859375 685.546875 646.484375 1010.742188 510.253906 622.070313 587.402344 351.5625 561.523438 408.691406 826.171875 619.628906 688.476563 632.8125 777.832031 604.492188 692.871094 606.445313 580.078125 600.097656 617.1875 811.523438 620.117188 400.390625 334.472656 1025.878906 526.367188 833.007813 570.3125 526.855469 729.003906 610.839844 344.726563 692.871094 750 769.53125 692.871094 607.421875 605.957031 396.972656 396.972656 660.15625 317.382813 603.515625 596.191406 455.566406 344.726563 644.042969 398.4375 524.414063 611.816406 605.957031 758.789063 965.332031 494.140625 615.234375 693.359375 660.15625 619.628906]] ->> -endobj -5955 0 obj -<< -/Length 390 -/Filter /FlateDecode ->> -stream -x]Sn0>h%T}dȁIU$2*Kz+/,}uia]oy<;MSogK¯)I=^煆v#+͗ŭl`Ɩn܋3z{bc2yi ۤ,=5s3Ku__uY׎u"C|%=Fk쉒?eLȚHj̃lJy U SrH: GRSr Ąy- : Q0Af1N &r$U5%+89*D9L 4G$4 -*&!ͱ4~*ythr+ )Q$q)(ڮNCڎr윿eNtxqX̐ -endstream -endobj -9 0 obj -<< -/Type /Font -/Subtype /Type0 -/BaseFont /CZZZZZ+Merriweather -/Encoding /Identity-H -/DescendantFonts [5954 0 R] -/ToUnicode 5955 0 R ->> -endobj -5957 0 obj -<< -/Type /FontDescriptor -/FontName /DZZZZZ+Alegreya-Bold -/Flags 6 -/FontBBox [-205 -318 1042 977] -/ItalicAngle 0 -/Ascent 1016 -/Descent -345 -/CapHeight 642 -/XHeight 462 -/StemV 0 -/FontFile2 5956 0 R ->> -endobj -5958 0 obj -<< -/Type /Font -/Subtype /CIDFontType2 -/BaseFont /DZZZZZ+Alegreya-Bold -/CIDSystemInfo << -/Registry (Adobe) -/Ordering (Identity) -/Supplement 0 ->> -/FontDescriptor 5957 0 R -/W [0 [174 654 463 332 293 570 512 174 540 479 413 537 740 544 577 693 532 659 365 409 265 503 617 432 547 839 655 514 625 538 468 597 465 625 519 531 274 964 569 342 497 623 643 674 598 285]] ->> -endobj -5959 0 obj -<< -/Length 329 -/Filter /FlateDecode ->> -stream -x]R=o0 Éi%T]~SsTBr!vF']tgkqB4 (C>BV>EȣQKrV^ NS4 /̤a r,D - Rr"̈E<((VT).& F@PgllM` -)XzQ%_2[pyըy|muW ;G SƊFG -endstream -endobj -16 0 obj -<< -/Type /Font -/Subtype /Type0 -/BaseFont /DZZZZZ+Alegreya-Bold -/Encoding /Identity-H -/DescendantFonts [5958 0 R] -/ToUnicode 5959 0 R ->> -endobj -5961 0 obj -<< -/Type /FontDescriptor -/FontName /EZZZZZ+SourceCodePro-Regular -/Flags 5 -/FontBBox [-39 -400 706 1000] -/ItalicAngle 0 -/Ascent 984 -/Descent -273 -/CapHeight 660 -/XHeight 480 -/StemV 0 -/FontFile2 5960 0 R ->> -endobj -5962 0 obj -<< -/Type /Font -/Subtype /CIDFontType2 -/BaseFont /EZZZZZ+SourceCodePro-Regular -/CIDSystemInfo << -/Registry (Adobe) -/Ordering (Identity) -/Supplement 0 ->> -/FontDescriptor 5961 0 R -/W [0 [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600]] ->> -endobj -5963 0 obj -<< -/Length 409 -/Filter /FlateDecode ->> -stream -x]Sj0+tLv -PK}д҃m5ۤԐ -tx> -endobj -5965 0 obj -<< -/Type /FontDescriptor -/FontName /FZZZZZ+SourceCodePro-Bold -/Flags 5 -/FontBBox [-69 -400 705 1000] -/ItalicAngle 0 -/Ascent 984 -/Descent -273 -/CapHeight 660 -/XHeight 480 -/StemV 0 -/FontFile2 5964 0 R ->> -endobj -5966 0 obj -<< -/Type /Font -/Subtype /CIDFontType2 -/BaseFont /FZZZZZ+SourceCodePro-Bold -/CIDSystemInfo << -/Registry (Adobe) -/Ordering (Identity) -/Supplement 0 ->> -/FontDescriptor 5965 0 R -/W [0 [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600]] ->> -endobj -5967 0 obj -<< -/Length 377 -/Filter /FlateDecode ->> -stream -x]Sn0>6JJ/PiOUdȁlHd |,mՍmEzkٵ$:6:Hav*C=Ey(<"~yq=ً3z{cTi"n:/TO@"~{?ue VjGCTj{(Ww*"_/[xi!>eH5 4{PKx^_d6JP`& +B/H=f?6J˰R -1 {;42Pc -%~NR%4{LAp)|MbwP4L(vF!&YkKol=;3·Ůt@qڦp4 -endstream -endobj -44 0 obj -<< -/Type /Font -/Subtype /Type0 -/BaseFont /FZZZZZ+SourceCodePro-Bold -/Encoding /Identity-H -/DescendantFonts [5966 0 R] -/ToUnicode 5967 0 R ->> -endobj -4548 0 obj -<< -/Type /Font -/BaseFont /Times-Roman -/Subtype /Type1 -/Encoding /WinAnsiEncoding ->> -endobj -5969 0 obj -<< -/Type /FontDescriptor -/FontName /HZZZZZ+GoodDog -/Flags 4 -/FontBBox [-107.421875 -174.804687 1034.667969 641.601563] -/ItalicAngle 0 -/Ascent 836.914063 -/Descent -174.804687 -/CapHeight 591.308594 -/XHeight 442.382813 -/StemV 0 -/FontFile2 5968 0 R ->> -endobj -5970 0 obj -<< -/Type /Font -/Subtype /CIDFontType2 -/BaseFont /HZZZZZ+GoodDog -/CIDSystemInfo << -/Registry (Adobe) -/Ordering (Identity) -/Supplement 0 ->> -/FontDescriptor 5969 0 R -/W [0 [378 431.640625 337.890625 184.570313 344.726563 184.570313 393.554688 281.738281 369.628906 379.882813 326.660156 230.957031]] ->> -endobj -5971 0 obj -<< -/Length 255 -/Filter /FlateDecode ->> -stream -x]QMO +6lku5iHzX=/uH/3o{@_=PH]@pԆT5H-SL::,-o_a W)%zmF}qB@*^3h;y}T]*WP*- +qv\fDb4 >/M}u4©ElJM>I;{fpi?p%U? -endstream -endobj -4549 0 obj -<< -/Type /Font -/Subtype /Type0 -/BaseFont /HZZZZZ+GoodDog -/Encoding /Identity-H -/DescendantFonts [5970 0 R] -/ToUnicode 5971 0 R ->> -endobj -5973 0 obj -<< -/Type /FontDescriptor -/FontName /IZZZZZ+Chalkboard-Bold -/Flags 4 -/FontBBox [-163.535912 -615.469613 2017.679558 1358.01105] -/ItalicAngle 0 -/Ascent 980.110497 -/Descent -282.872928 -/CapHeight 712.707182 -/XHeight 525.966851 -/StemV 0 -/FontFile2 5972 0 R ->> -endobj -5974 0 obj -<< -/Type /Font -/Subtype /CIDFontType2 -/BaseFont /IZZZZZ+Chalkboard-Bold -/CIDSystemInfo << -/Registry (Adobe) -/Ordering (Identity) -/Supplement 0 ->> -/FontDescriptor 5973 0 R -/W [0 [540 591.160221 565.745856 271.823204 453.038674 414.364641 608.839779 558.01105 322.651934 550.276243 581.21547 509.392265 459.668508 600 299.447514 532.596685 479.558011 759.116022 514.917127 609.944751 339.226519]] ->> -endobj -5975 0 obj -<< -/Length 275 -/Filter /FlateDecode ->> -stream -x]=o w!r:i+YHUxv2pXH5 LGH=(Sޣp#NJU BqUZ<آ ~]<Νڶ(Cxnͣ0#ĽW')=اl7Ψ= -@ 2en;ʯf|N+q#pG7 vke@-i!j|]I8njJiH*' ɗլs&R,$TsBvom|NlU\RԞJHU@ -endstream -endobj -4550 0 obj -<< -/Type /Font -/Subtype /Type0 -/BaseFont /IZZZZZ+Chalkboard-Bold -/Encoding /Identity-H -/DescendantFonts [5974 0 R] -/ToUnicode 5975 0 R ->> -endobj -8 0 obj -<< -/Dest [6 0 R /Fit] -/Parent 3 0 R -/Title (PDFKit Guide) -/Next 13 0 R ->> -endobj -190 0 obj -<< -/Dest [189 0 R /Fit] -/Parent 13 0 R -/Title (Using PDFKit in the browser) -/Next 508 0 R ->> -endobj -508 0 obj -<< -/Dest [507 0 R /Fit] -/Parent 13 0 R -/Title (Adding pages) -/Prev 190 0 R -/Next 776 0 R ->> -endobj -776 0 obj -<< -/Dest [775 0 R /Fit] -/Parent 13 0 R -/Title (Switching to previous pages) -/Prev 508 0 R -/Next 1128 0 R ->> -endobj -1128 0 obj -<< -/Dest [1127 0 R /Fit] -/Parent 13 0 R -/Title (Setting document metadata) -/Prev 776 0 R -/Next 1172 0 R ->> -endobj -1172 0 obj -<< -/Dest [1171 0 R /Fit] -/Parent 13 0 R -/Title (Encryption and Access Privileges) -/Prev 1128 0 R ->> -endobj -13 0 obj -<< -/Dest [12 0 R /Fit] -/Parent 3 0 R -/Title (Getting Started with PDFKit) -/Prev 8 0 R -/Next 1385 0 R -/First 190 0 R -/Last 1172 0 R ->> -endobj -1388 0 obj -<< -/Dest [1384 0 R /Fit] -/Parent 1385 0 R -/Title (An introduction to vector graphics) -/Next 1608 0 R ->> -endobj -1608 0 obj -<< -/Dest [1607 0 R /Fit] -/Parent 1385 0 R -/Title (SVG paths) -/Prev 1388 0 R -/Next 1648 0 R ->> -endobj -1648 0 obj -<< -/Dest [1647 0 R /Fit] -/Parent 1385 0 R -/Title (Shape helpers) -/Prev 1608 0 R -/Next 1748 0 R ->> -endobj -1748 0 obj -<< -/Dest [1747 0 R /Fit] -/Parent 1385 0 R -/Title (Fill and stroke styles) -/Prev 1648 0 R -/Next 1806 0 R ->> -endobj -1806 0 obj -<< -/Dest [1805 0 R /Fit] -/Parent 1385 0 R -/Title (Line cap and line join) -/Prev 1748 0 R -/Next 2196 0 R ->> -endobj -2196 0 obj -<< -/Dest [2195 0 R /Fit] -/Parent 1385 0 R -/Title (Dashed lines) -/Prev 1806 0 R -/Next 2326 0 R ->> -endobj -2326 0 obj -<< -/Dest [2325 0 R /Fit] -/Parent 1385 0 R -/Title (Color) -/Prev 2196 0 R -/Next 2459 0 R ->> -endobj -2459 0 obj -<< -/Dest [2458 0 R /Fit] -/Parent 1385 0 R -/Title (Gradients) -/Prev 2326 0 R -/Next 2809 0 R ->> -endobj -2809 0 obj -<< -/Dest [2808 0 R /Fit] -/Parent 1385 0 R -/Title (Winding rules) -/Prev 2459 0 R -/Next 2973 0 R ->> -endobj -2973 0 obj -<< -/Dest [2972 0 R /Fit] -/Parent 1385 0 R -/Title (Saving and restoring the graphics stack) -/Prev 2809 0 R -/Next 3201 0 R ->> -endobj -3201 0 obj -<< -/Dest [3200 0 R /Fit] -/Parent 1385 0 R -/Title (Clipping) -/Prev 2973 0 R ->> -endobj -1385 0 obj -<< -/Dest [1384 0 R /Fit] -/Parent 3 0 R -/Title (Vector Graphics in PDFKit) -/Prev 13 0 R -/Next 3505 0 R -/First 1388 0 R -/Last 3201 0 R ->> -endobj -3508 0 obj -<< -/Dest [3504 0 R /Fit] -/Parent 3505 0 R -/Title (The basics) -/Next 3586 0 R ->> -endobj -3586 0 obj -<< -/Dest [3585 0 R /Fit] -/Parent 3505 0 R -/Title (Line wrapping and justification) -/Prev 3508 0 R -/Next 3853 0 R ->> -endobj -3853 0 obj -<< -/Dest [3852 0 R /Fit] -/Parent 3505 0 R -/Title (Text styling) -/Prev 3586 0 R -/Next 4116 0 R ->> -endobj -4116 0 obj -<< -/Dest [4115 0 R /Fit] -/Parent 3505 0 R -/Title (Text measurements) -/Prev 3853 0 R -/Next 4138 0 R ->> -endobj -4138 0 obj -<< -/Dest [4137 0 R /Fit] -/Parent 3505 0 R -/Title (Lists) -/Prev 4116 0 R -/Next 4168 0 R ->> -endobj -4168 0 obj -<< -/Dest [4167 0 R /Fit] -/Parent 3505 0 R -/Title (Rich Text) -/Prev 4138 0 R -/Next 4316 0 R ->> -endobj -4316 0 obj -<< -/Dest [4315 0 R /Fit] -/Parent 3505 0 R -/Title (Fonts) -/Prev 4168 0 R ->> -endobj -3505 0 obj -<< -/Dest [3504 0 R /Fit] -/Parent 3 0 R -/Title (Text in PDFKit) -/Prev 1385 0 R -/Next 4616 0 R -/First 3508 0 R -/Last 4316 0 R ->> -endobj -4616 0 obj -<< -/Dest [4615 0 R /Fit] -/Parent 3 0 R -/Title (Images in PDFKit) -/Prev 3505 0 R -/Next 5218 0 R ->> -endobj -5304 0 obj -<< -/Dest [5303 0 R /Fit] -/Parent 5218 0 R -/Title (Options) ->> -endobj -5218 0 obj -<< -/Dest [5217 0 R /Fit] -/Parent 3 0 R -/Title (Outlines in PDFKit) -/Prev 4616 0 R -/Next 5394 0 R -/First 5304 0 R -/Last 5304 0 R ->> -endobj -5394 0 obj -<< -/Dest [5393 0 R /Fit] -/Parent 3 0 R -/Title (Annotations in PDFKit) -/Prev 5218 0 R -/Next 5913 0 R ->> -endobj -5913 0 obj -<< -/Dest [5912 0 R /Fit] -/Parent 3 0 R -/Title (You made it!) -/Prev 5394 0 R ->> -endobj -3 0 obj -<< -/First 8 0 R -/Last 5913 0 R ->> -endobj -2 0 obj -<< -/Type /Catalog -/Pages 1 0 R -/Outlines 3 0 R -/PageMode /UseOutlines ->> -endobj -1 0 obj -<< -/Type /Pages -/Count 36 -/Kids [6 0 R 12 0 R 189 0 R 507 0 R 775 0 R 1127 0 R 1171 0 R 1319 0 R 1384 0 R 1607 0 R 1647 0 R 1747 0 R 1805 0 R 2195 0 R 2325 0 R 2458 0 R 2808 0 R 2972 0 R 3200 0 R 3504 0 R 3585 0 R 3852 0 R 3986 0 R 4115 0 R 4137 0 R 4167 0 R 4315 0 R 4511 0 R 4615 0 R 5207 0 R 5217 0 R 5303 0 R 5393 0 R 5461 0 R 5905 0 R 5912 0 R] ->> -endobj -5948 0 obj -<< -/Length 3400 -/Filter /FlateDecode ->> -stream -xW}p\Unn&Y>mimH$mCg&iKvv@G0"*Ta?t9o7--0nwϽ9w>mn_`58BqU>O\_ÿҭsPqHe -mMηcȱ;Kw.Vk>pʼ!|?T:/2vx톏3/>}\k(?ጉ0<_WZi#k`a8^\ -.Vjd{c -dQv E˔ ?}/BWkkkY߿_Y{k-Ng+ӹh.HIn))*1[bX7 vW$fIj=ԠPXN;P]RyS9?+JIۏ3P'vϳvT>],n, cǙ5p ]C< gTܙe.gn@X;ٚܤg !`l d>8#K|@onV~+?~S?SWT^~CH 2/;ٯ>Љ(Ɉob],v"J@`/S ID8wvۭ7䳅lD[o_Tׁ8=tuqu <ͯKen+L-$0qAؼ(^M:C1bB? .4V_ixI?oe'1+,;8c5i bl -nn2cQ%L{b@'FsvE`Z,xaOip9OQ.Y Tu=la>wɆ,wp }KS9*ʨ)E9%]>5#Rn,koq?ZY*# &Y`R 3x9ЖTisАͧ; xna\=?{SO>OhۻK_}oS˟.Ep!nĪyP`2.r_ ?n ZyW8 d3Y/4/.6 x,dZ[--JO g3V oKٳV~76ZaT׋>u/ƛ)FsMSiqθ4Ζli VK+V={o]DpG|)f>Sk=Ӏ/+DlV-cCa"0;q,/MlmSR=«]/UVLdj3ZvՇ6 L{/u.1wpxv]߽О[{ë:kՆBDD:xDVO5 p*kϮ@Ky+Bk5ZFg8^76+[;ڣTlc7` 8 f!߹>~#_>O <C+J~m!ɽGp>'*0S3[4P'7@z4%7WZP3Nn3:CC~F˖UçnП:05XNį{ cYxYa fuP:K &îJlo:V<熳 VXL/qvǯHe6g\:;o9zOh~wa#~|٫fm grx`_Z:#dU*Um01|t 4G14" SJC%Ű-˰} 5-{Ke-^{ dNG+E]N -^-I$ r &s |D -Ss"&'sR5R3hx^B!"@/? i)W<ԫvL -t>gq/#~4"USڒUŇS#a F(E sZi3u69t),檭%Ӊ5VN0wQ$-\R3-dmw "fIb*"MuYNo`$Ai9pN|rJGPO.tYT>(l0'r;*{FĜ]әD tK/r):&&V0<;`k벿OPJ=ɢY\=KĘX@RQnRwt =-k)g ʗ^@sճDbPjhߎwY\]ɖuʵm۸+QXVbPnOǥ@7qi=DYH MXu[7']9}Qզ_QS+2}7c#:^Rf=X!)?3%ȫkjqrQfQf2Ga; -@„ -ʵ(X+' " !a0W0Mv!aaP0$aH&,aHMEFpaH()7hG9KڊҼO8ɂ)6Ћ4-,7rxz&K"%)7o@ĂjI=bI=j}A2 -endstream -endobj -5952 0 obj -<< -/Length 7213 -/Filter /FlateDecode ->> -stream -xmY \gڟ$\!w8!$J$\r}FCAADDţ(Z޷UkVݣn/v׶s3#̼?E1.AT_S^mnB̬Ϣo~nAMOm ?EQ00eӂZ%Da]?zns/v<[%Ԡ ZfhA -}b0=1-+Ll' -p܀0.[_q=W 8O|HE hih^%K+h}YAGg:NN;cwGo n묤jdM|]ӫO E`pJR -\pF&{ :à|)}>Ǚ S Av7}Tw/WٛqH -1QkRJ@nպaz$E#/6>)oiaM`2 CrMEȈ!L.a1bV@*%7O|\壇jj5rnEЎC"}8mQ^TY`"2-! -ámwml/@P eVOwX"52]Y,BI- dr Dr(J?']<V)ώɑ1*q&dG{Nbe>6~X#HQ,za Ui mIRR |4c!HUx\MHn)8 UTvI."/^n +Ôhz4b}ee/eeR/P]1#)10!D)AtU(nnd`Q`` &0!cbB>C6amFʥJWIL s̿ORAjS%{z4ҬN*ōiJSR+(Z]ĘY&g,̚HÇRy[.7x/g^k[uiJUFWuiJ&`K6{nu0\wCY2Vs~a DK0 eT2Y\֏{Ou"c@]ďY9N+s^[Fb!bGdCy04B6ѭD5%HbVheD}M]D,Ez1I*LHD2@=B^i @P3X2kI#u6 F)I4ٌj'l̎u"=SUjukg&gS[,T5Tryl^cl -[sJ,g*SABrsf±86\ *t -Tn؅# P{x|%Urs˕v2_K:[Rb97&V)'ݷ8@>DŽ)g椭<;ǂd>ڌ}e :AM~ C` 9W(32T[irt)p4f[heV)}zi4O:17Dy - -, @&c1P\1;4=po_z u)_X?P bi!+&X6Ni)3jώՈƐ``Z`/f{XԣDZO&P&{ضZ;P1svaqxp\iސ 2\,oeAU1Uv -&[A*L۾PrMf@7G4%xmx$uZƤns3csᆌ0wsJez^P-pGM3@"CYdKF儅Et":1.eSDqߐU-[lφfۄ:oaQ2^mbۻ )3ػE}Ce_!jiP57nBWV7GRq=$H{e(0=b+XT2&޼wO[PV07΁_ -_Rc(dFjFz9r&xrzdԘp_N,g4>p-W55_5^?Few?xv9}]7͛GY]ޏ)ރmfNS$zO CX4ʦGSx}BKb6[lLC½饻?5MBcDH-u,Zhmq I;xS peK\7޲泃e|G+qdJ0utCY\݋sv0,ّ㳸#0[,2W۶{5P)h K^/Iyu;urܷg_.zr+W4r.RW2}؈ zH0gYO(c<jl](.z4v]YmܔY `0Fg2OgUp j=6o㢒HO!V+:wRF.^%QLDfБ*L) j4LG%/ -<..Mz4P5sA[HvgF@9)@4߼G;+"g} 'Ap  !,J$jB5"z*tDi:qnt -PRltS'T<#r55K Vsҡ%UWh_!~q -Nb6o,jma2!Z3m4/.5i=^+)*lBU[BHxrW|'+e|dR*B}SE.~qqmvDxpFEm ˃`S ݼB,?"#iiMl{h@18+'-[l&|o5;;KbA昆ə[SjZCȬ"clmQ7!gW3ʥ`ş]uqMڀk -;1Z_D{E"FդET秫;וtk*xn#1W,h>Np'@{|NudRV_/aDeolPƜo(׫Q6C[6`DKC<d38(A-3z|t&6r&le{➰M8FA)1{*P}DwP[.WĹ_2WyFo*,9iwI<oOЁ qS \3^Qg][iФFj9πdz8ɘ -k5 -?/ApNgÜZ!!/Bf&ߦ=KP-Bq/bW%TWT\YiYtJTEqnF73U@?81-d<~1X>yNR_I+:Ram Wl=/Db#SszutJnYu ~vї@*Z^uuV8꼈,-[ZĴe& ĎͤX;e+˘IVJlf=O0Ѻԭ뗖rۇR@ggH۷}!:|W]~#K:W, 人)>Eڪr-ݐ<6t1 B~ƯhSW2zp;~Gp:<:TEȈ -@^ -覾EXʡ10l_=H_M&"1z_Act~CWqoO  M'?zC{1G-}4 윇嚔*iҖ?9!{z5]j4}&&f r_ʴP#hg\c[r*=#sKL΁M6XeVrE8:>RR7Ƽ*-%xp> R27.U,'Rph2UrI̾ywTRs$.e *v!3^Z9olO0Ot]؅Y",ٻM=kj,vr%|@?e@br>ibU&2ʹ.35@fZ`{d~jK֝w'ǯk S?j bP{1ZSW_(Crv|6!g3-pI;}TJsu]ol)sKZOź U t  , ]SRjo"7H@\]|pYV\!~Yˋur1ud/Gx-rEH3Q9}> |H۳CB05I xVZ}^"B -zi+QsHˡU^QYZ*/:ysR1G~7# -?ub SX7+IV}ƆF~S'h -endstream -endobj -5956 0 obj -<< -/Length 12434 -/Filter /FlateDecode ->> -stream -x| u}\=W};;{ H(J,EhM"e)ʩ"]&bW؎+q\]2"*ˑ\v()(6cfpQ.W@w!6y$# Gɧ'ǃ|#%={bQ\_?{#oؓ}_!B~?¯7ކ?W=_>&= }o?ϳsE?v6QY? ђ;;Zo53וVOh/oog~;A`1 /Gѿ})%Oש]󅗊KY~^ז7>ַo %0ϔ2Y'GI&{h= XN?=JB\?G+4gIq&#N0|XEj$M/06MY $#0~riH * 3 y^H6D#Y&c,!0*9 btQ׃1:/"AxK SQ\{\ru ^# EΊQW|qS?^"ڵq~J_7q8?+!xw>.?eq~Uwę(_/EEQ$_/DK;bܬ7+g8/vG| '/y\;"8?gֿ̮ψv5xnYoYKY \!s6.er2} x7s]T^"{`ez^&K)\!zp _pׄ׌B(E;<ߺB*p\B=<>[.nUQ?9^kA8wԃ_wbr`j@e^⯶HNZ (ѐ3)w$B Lk!|~6ʕ#wӻp ax, 1apϬWQY@utf4X>*Oٯĸ62(Tl{f#HJ>(B2,%wIxghٻ*Ʃ9XpJ1U_U=P7URKѠ6kDbXV`r*@6'6'xkfԆUAAqb+&exF| lE <kAlq|6Nqg1@v F -Oez*k< -91 V]iT1 E1L gKJ1sL44ͨdy[ -j/uh3+ ru3o -0\gadRmdnrJI-?R>k\.J`GzY%@pu8Ku]:,I k| -Q%YL$ȴw& ]nqXR3m|$|rYV]#b! AC1D\ {`K,Cp 1b.OY-ED]\- -7 8UR#EUZfN,VC7r^,ЌJTES4V=bFЍ[VPÍF*k'vfmyҗR#)ߒI%O~`ED/.Dq-0]0J% !"`od (Ha#7:LÕB]QY&mF?c -gаpW팈\#]%^ƈX6'ya. #n\AnF&@.@LGn@gn6O-p,^vL2U #_"t iɴ~zl'/"/g<69L79q[d_Q&'އ·N ;;~!F#N. -W]-/:HwRAQ94˵oq*ێe:#jVT%i+VOי=ÍѬOR匁]ݭ!(|/UQUA_f?EVuVVR*qLeS9pvsA/?2U_Щ: yd07y p(g3G: p5 "Meeq:2?5nARTa$`-6&<ץXaa:1FiCM1nVo(%[L4Uǝ@qdWj`2?<[_ҞkdJƋ};|**b6 S}N 0>o h!_2+]9E- EG@{{H .]eF9-+teM)5CQS D48"0*'4tk.2&^!&PtL! -Z!VEAz ^3#6gO 7ug*. cyEh6ns#ܢZ>.M {`ۑF%\a2áp9m[hn/Pyh6ZjBn0p$Oܒ~H'S°1Ιt%G'uZz ikrRZXܠQcan'[l:Md1tLتإčLjz6_`*hZoA/j _#m?AFR2"3ٱx"0RnY2pqhKs0#X -k 0O/d -HUt *_+o8Y&_gf]!.,`횰Mc7ɒ^e^U&rE -]Hh qMh9;|-vG -"1Q3܍хM4 Jh1`Y3:~ &*ܹAW6d0ޏnTJ[Æi`5~g;txdbr0v=g' N_|y{ͽt -4wI|,(ߢN -_ۯi\!ѱG\o3'&^ ='>&fu!!0 {Ҋ| -Sx"e<[}99RhX3bi]s Nq =4Km@&ePd @b="=LGD#(vyr`%aH`\%{z[Z4KASb<1^XjJ˩hR M7!wd4+ ܹprB'@$f;>ٮC麳V \s+>_*UDF\w&Պ&b]NOmc΂_ WwoaqW+8JiT鳪sV:ޟb?%L^Bo:I׷HIWBSe,:q&QYu2Wf0PĂ#_""b`0.Fd|Ihy3I}8%޼ɏO#{LH;BD#ux5Im4ˤBk? tc(0:\喷Tկ2HӍʾ|dꖥ+NQuxR0o~(ZwYҿ.$=5&O>חVos fR^ޙW> V::PF8#ͺᵌ)V UJA 3-nγ fHb2?זAS}q?Ÿ.Č1' - F^02baAlЄ2D:Pt&Ƹvhp˅S |e$-ҠgA}6i*pp4+oO/2C`j b`tdZ}9N:?~(hRMSO+бl9jEXU]5X.78&/M#`"iAiH eҥ vl'W_4L }2h'F -M?}m -aQ3x6 -42f iH !E i& (uC67[-B3/N2o2y aCT:_<{O?wu5𫪢Zq$L*s೿φ|$1jm\bdp#llND?V> -A1F<׹퇏#c>}C5!Y7t|;ˮ`Աk3b+мOdm5\`> -C0W)eW4o! =`\q}M۞N>榽L@LǠiJ٥܃/`@9s4sөфL#xFQXr -r 5 'O/W 2z,3: h+\|I<4ӌd⑀$~/ťq %! :@JQ@?Olw8<$ -naYW!67~W$wZI,K,Kg,ۃb|yxguep{ k2E{/AQ(U#qt7N.2&'`! -*pR0*ѭBt­D:cRV\0\ G)NdBƗNT+h31mY?BnlXdn'21jq%b%7>ڟ+s %*9XPLL=u{P\KM_z |<e[F9y7昔/yüGGۿK"b\XmnܗLԭd]= d -6Y&\9@M_q[^:gSJxN' r?T!NY>zukd sD"%}Ԍ).pɔLisÜT8ˀ-bcruF݁Ic^46j nd/u \1DO Q\ɻ1#1,r-Б',C-8Te#m(/SmaVwL'X:p.DxA]Nޡ<Fݘklv}p8  y-].Tˁb jH* Gb7LN - sGz+_{9sbZ:_e/:W%p^/>+,$ȤtHtQ1hiBcu,u -Pc?Lߏޕ,=UOOOLYgϜ݄`"zcC񋟕 ,J @ /Qo/_^b(Bv]s< ( -27IK %c -H!g&L8&cӅlˍ1 -o* í]O]^f:҆OwҞc'lݰ :3"w"$K\nKLa0Ylҗzdwh!ļPLfze.cpLo޻GV(w[TtcRmDe -11+&*, -QF?1(.n_L#`4ٵFϰ-m!ьiOJcȭ#zǪ/8ңg?xO2(3( ?]"E -!:@d: -8k\7v')r\V鸹6N} 6969@<79)Z"Y{q/<0{8cKan3=_EbWmmG={q#y_^ѽƆgy#{~\ARIY$ßF)YRZپvj -\ -/sAVhxQ4 -nDMEMROQ[T[kT_.9f61Kɴ7W;QIsd|g r -(7c;UHਫ਼R98(\l`6feK6L4ףEʷ@Ā h,Q*º~R{4 LQ0EP3*e48t41F?)V"F Fk/|e'ӉD?Hńw=J/`mE|az'.tgUjٹ}M)T&JQ{cժ6([#ymLm֞&+FDZ&w̚ϲ!@]ߛ6 ei]>fb{Xh6랚r -w,!+P4n[7kk+|Ow(T6skuoۻr`#>(S~uz6#8 }{5Ɛt8ҘvhcVˆL>\c38ذElYӬG0\T[,2:,A" -Kr0 R ܅tճnwOXe mx^l(ũwҠD9 u4X+eMhİtOLYѶ>u Wb9fz[\ICO†MHʈL%ƓA77_qiKz7~g_TsVFkNѭR]9sURJ<_# mk|M* d Eq*YZXq0e7yƳGH&+ipq櫶bw5.b -S0Td0Ō8Ý [Vu!wW-ɶ{f%Mum[/hlDGmWv Qhthd#h?41rZ0-@$PQ&+H]Ms섣/N=ZrT+ !VsW{;ߡ¹6BaOl;.,SauS=(Y*9˶`IGY>ўicPrDR._ њg|RY;o,"=S@͊F̅C;'?aAP +Kļb"3'ZJbUe)*xjY3PR^"Bl̈́2f}rb׆yN."kKbva6wFs[H̫w0! X@XcXAڌ^|oKFҍ@\:GCdAdksC0u}sjT7}|zPGUVjo*y&4z<0KLy շv][$*YV'5Jq'Rǥ@QY`F{Y-z ReMo;̛[m=k^Ԇtm2]X]޻ -(tk(hOxef. GS7'׊4X}|s9i}VlGp;EELh%rIjׄ:0-]iSvq[d(jz=ׁُ-0B[d_,4 g{md,"feT: g_ƪ.̉f`)ѳ-ag ^RgK岆2؎Cf2B\C7+H61ߕUL%U9aͣ53sj'Ϲ{6<:cAKܭŲ?z7<]70qtj LTUR%jg$by[Mb}DXV-~Vbp{e ܶ5Q.'ݱ܎9.']l4cW5g`3\q'"ym-[z׶6c[p]PFZܾc鋩 ~"̫\ݽ7c0r'eL$HvVڽMyy>M\0,tu'R΅tj*Xe(jtKGFhg'v8Sa=C"h掟|]y f/<+ipe7C{]%ȬA5~|A4b}K}X8^u7 #$\N8NvgIfu] f?>dMe ޻T⹰ƨA\h;Ήkb}-3Bk$ȴh]gAwvb3X 9<~YTZ)HP;#(7y`Rv L#Γ,fdX9fMòdAg뺕LǼhA^{^Pӕ[ջg5NKm#l3l̄q<\|d']E)o<Lp0~9qKgH= ~v;mz2j +P%k<Lj}Eԁu`|?WjpgMK:)~]+e85FE 9ؙXڵUmCQ'Y|EcrI&^ \S6`?HgqDy ^-d lì^>W -i M%3@K3,yÜ^0(gnۮ-#( Žo0!f=_l05~o ẍFl7?H_nYd~_0պ2&0oP ƴqGm9Hk E#"$zܴD 8(C.;`/jCfzqC2>1{'8j]$L{66w1 M&fQ @dկ ITMV;b[i?CdgJ qk)@ܱ:Ve~ʿ&5_n`⩤=Wd%f(?|2;^4͟g>~s']wSǚ\w,}gϓS_Cģƫ|. "OI; @W -(@<'3݊"(a ld$1`/0]psQ'27|@&x?; kYqѴNo)rQDAL b;:J]JY_0 + C=x26u>2\>jQnx=*_|F &3iku׭"a͌2YT)e-ײ-.һd6gQ>S%OŝnCT:_rZgdcOg(wyeoSžL-qHP iNʧdHחD1=@~|@~DI"1f ?qwfy90|CH`M5՚jy3ᅥ3PkWDƬ 7@DMFk$̐$ v/Kmd(*ˤGRWb|/J߅v`p{Der$i$ηC$%4BL&:=A;*OAOs-*'vOsd &eэ@KНBVs(83,έ^gB@ u~Yۨ*X|q_,;ÍG^<*^&n7JNe:#N8q^<#> -stream -x{ xՕfZjCR?Uݥ~w!YnI,ɶ$ے8h1|<&8&1,$&FC2'HUY>28Y#$;N&soU?bcvU{y-7zRRPJ{%JE@sMgK,~F|o>Z=ۏ t=~5>ܳtlur PTxMJ)yߌM&2<+)Z$~ ̬ls9fa쥞DN&]?'K&%H/>/{U#PbTq~ӊoV1; 6ҪRϫ>l6>xYmUϫ/!WR>ڿ~Sҏ6X }1k7>oz s|Zyl$QZ4%TĒ÷Z)zRYw%JBgY^{R RPOnjO()y9g -P+Ӕ„VPPFLQڞ"dgFo/Sk9\izΥt.BEۂZ{ ijxrm#k7wKmwKshp瀯t2QGrJQGdJ0a 3(0rʤk1 g8y3E|ɨcu V -;WH}3c㉌;O[k0LgSsBi &05"hƄe-BH"UA%W_gXö4lKz($M&SϧGV>z#w`,=y}}~ƣA_:iU|FJ`kؓ:%)̢A%Bu}>NɊxp&:X-AjMUg`B@[, -˪Z~Z,^6$Yx1+"`2;Qٞ\OaCmVf8U{z,1p{NOLJ+:xkI z,=D9k)Z@sCYt'us $% I$z9ȕMv#Y IjXMN _Zel5ښYwTΑՍBILpԘ̂V3<^Hp54#No Jh$Jb 6].+,cue&Ւ1nԚ0v}~iJ73>Y-#g<*jd_ 5,4aBS2TQm"V=2"JTUÙW3c|񒒂d]p-a9 ;z] 7_\y܎W{Z̑-V[< ֻZfP81.*YܭnC FB_R`qII1Q':^yeSZ8:P+2 -vA',!^٥xvPٖ?BÄrdC: %B/ xF矿vgJND}on:}ڈvh-5i+oC ^Lg~g/PmB Ӻ8Dt鏘)O ycA% -^D Dcwy/,t}/ T8;ϭ}0w3̭vY}vM䢈 -g|#cCGL(*@V "l -o7.1A8s* >;136w _)1x&e'rߎl+*NuAVЛLD-Wȼ(FND!G5vxvyg:],XWfo(l٘2auAN'g@:S爞=55Q;"-`W u啸Kפ? CݔEz+H Aq3lWu-MqG$uG-{KlĄFΨA6yP'A>$c,En\ʌ7fZ(} bJq+r0E+l* G+cC:z_ -`]~EJ |?C_c~ܫ#j wY9=}=%421O[_vQhO[[U \;`K,hq+6ap NJ&U::uT >KU#P~C|̱R-x|Xk k\Q;ǀ/",'E3PM|VWeop$aŊUaSAH; @"@!a'R"i0: JcTR'i9|pE"W *-FQcv;2W=//R|˕*1Lmbbo$Xm"tm \=*mbyKtDǡgFWxЙLf_ - -xÝ1 k14i'j {RnvYyG"׶~}@xW,j5f7U~t:aK>T5la>QMg\mh/=f>F_%Znp"yeK\KIgoY]QYdG&QdWHa^TtUlmu^&(ЕW;6@.TV{[z<ʰթn4r#h:z,)!t[_@P #;(vq-`J`k=RAj$bw#I9\n.=Yon{4oOܦnHmï=m~]w^" {/Kav 5]d^;དBz&LM*$ XBϲ^d(x!,<*r>W|?eJ1 B^+tBdv8"lA*Q Wqe Vl~,Dyz B߉;㩍LHQDtBJi] _V/ N^o]bĤ#fR'&&6xgc6DRd5<փysDL/OTW`uNhTWt(D * ltuH^/6a85ҩkuuu9=8YfDILGQlBF+wp(4 #Fo3vb 1?h0yG#$-x<1QBl%4ncW>)5ZCZՑFN)]B*Ti։W&ܣ}O7oE}ԕ"v{t2۝d%`DVtS8*N.S:ެc_33\PI˩;D%%ΔQlQ /n ]BĤ,;)RvǶE[mK*aD6Cvnұdm0v fH7X-:F+2{?A KK}/0NQ1qNl9Ҹkܕ,^8w`} y%W,} -K?EҗG=V3\KGTbfj -vPqEjzUVLs -@ 5:4Rqp+4.TԌ|OCp?X6Fy{}:?Mjvz.)jckpb+hRְ$Kzbz:O 1X;\pEk=$ YZ!#:QzSgOz#n.7 ?W */6JߓH~Xⷁل6(yKpD'-bu];i*iqiC5'>5|[9^Ⱦ W(vAt (޳Vaat݅N?ܹO}aߣ⤋n ^+k {řa6{}rA6pglH_Jkd!3Tw$W]wFh/i_b9߁ btv0D75uat2&I~Hrtq_q;BݣudMGf*gfjTp|=*bqхwђ*y-^gW>G%ڵ lUWO!rX[\T%r+SXjr" ko9ߤ_9/WLo!L:]Cl}89$ ^! sbw#{RNЙCMqC3@qjv]?r*.דZ{Q@Gj(.21HwP 51I[8ҕ],|,nLߍDvZjcDQjBDd'v6B JkB5[g;FQ&z,`fX<ݓe3sm Y)#M kAS@>jIpODӪR4>bkhk[0JwjkRyB!,['7l8dN'q0ۜ -I9Hyûa[C).2M -/Cf[9H=s35[^Ѱ-SWpn[,yذ*jWb612IWmeD2[ pYk5sne%K?\ŻYW9Fj"w -A,(bt99xHhIpxHR:yז2@5oW G/fc>mn7(ў~_Z,xŵu3}u9N5\e]ʥXou9ƕ 4}M?-G[*mbV*fs] \:0Oq؇O#Α{w쀈I#zt 0Ukq!:pجvOްM,uxOکWw5we x i/jF^9J7"&Pa>ǀ>:f'Os(g \,F2l(qrdž -Ĭܸ j,KlSjj?\ڛ 67إ=N9)~ٳWHNG,6VQnxj/"]=(^!ak%(].//=]4xθj 7 ԰] = oggK4G{JWՏtsk>[T597IZ*LSzsiR6:|[vuNГ{\}?VxI#dᅵxI4UR_ .~#y7M`GPaZ-)SM"J"jL(5<܅00T3#Ó#3mL2ɐm:C/ou#))k{4 g,9qd``~0 -0āI1S01$ޏ_;`|F7`胱(;# Ήaoϊ{`8ƽ0y5> -stream -xZ třLϡ5贬K6>6 Y!$rK!\!C@],dl6 },E"nU}_WnG)3߷{/<a?7xm}G[y`8#?7+=>:?{ZEQ?|$;uG?pB_[w?ؿS'J!oG Wţ+@GOFQL-_\~Smj@GoVz/8GQ&ыb=I9)-YEهrZ~V|_qY٩ߛov#TQ]PߣPӫ_?Vzݣֿc61qEgzCsi T@DpoQMGeJMwBYh/Qy*F=COy:豛Ԕw8 ,9xSd_ȋ{eNS)&"%D "Y:Rr4tG^D8.#IK(mB3&E0;"`v*hxl;,,W6z'OnoduVoecO6i490ZM6`ZL뢆EVCdm`{=,)AH5~ue>kI4M68suꀏ86 P^FX $ Om:>H~[ÑhY賡OMNΌ՞G[GR9,N6D"2p@/R2DFEXs,>V!dW}v澙+R mˉ' -lnږNo-]ㄟ;Yswt쀆LTSY5`XTzQaTӮLw.Wʇ;\ށ(ro c(5!_<`ҀS7SJCƙURLVa;#% ^cb>7pJmjp96vL癤݇zg dPQ+QVkY!0T7!0Pcs7s*s 6i35pD%֦cB7ָLpkͪYt9EjX|ŧxz]1ZtC`ıU-|$(Sh,۞ij򱜿WݟiC%ڼx@a g(Ôv:O:A/]tlڭYj:fP'rc&'瘈'C;FL,>cI>^mV>LUa/|x0AKe -A=8JOĆbx$2H{D*|nB"o˿B uQ0=Lx<5q"+ˢW{hv⟐Q$26A@r"_E7Z\ *VLJ)=Ahw!>C_JBZEgU'}0+c9{s 9ഏ!*iI#8_z| t@混'gr?3%} S/dRInмugC;_l2!R&q'syEVڈNR]'RfjW$DŽ8 po EQ&*N jIDpRTJxd6$-.מ2-We;;}TO9ӶL.j -km1ǔe6ZL1#֐hֿޗƋ0()*O=7*z羅.64~[zt YCm+)#֚5d.$JF.m綛̱Z֗&vXiWmWцM)kHN7فpp fQڔK$V't+(t W bB@ *1 -BZT0 0%j Ta8 Q4逷V^3!@Z$~2[ -t-|a*%@?˻XIr9]!y( Oer1&RƯs}tHWD7D5ni׉Dj[-$2Ql'6Ak#f\6)[F"ha}5gvjf߸"t_0xbNgc(8b.޷G[IcAU%XeKc,W ̗('_5ה,rB21tJ+Wi? PCԳC韁 TQ|&ե%"%'O#3[޹wtlxKˁ]ӱ4eUN<-/)B*;(DcxbӻrF!a9BLPPNЬcD.\uYj@\*Ǖ6p'&Ģ#:S#V;5o~mM[}>{8I/pQTk/ YåJYHv#.FFPp2*(9ıx8Fj^C/~uJa{?oC&{q9!FA^ΧDB^(icNc#!!S벨-[XGiJI%>+YcG*amH 9Rvݎ}=e%Dfb"5,3 Ĵ>/ϡp']J~ tLFq% ³Xe֫-¾R zLa}U)BR Eb_3YBmI߉֖O ͽ[P?v ]~G5ۊ9d 6 -c#AK5!6V!Yߺ*6J)6:zQQwĸOmʶM ;Tkjc_߭t5j7e=v[ɞ/"kMgM=“z_dwV[5j-]ݒ}o15l}l|du}z*1,NwpzߍszWlƅk67/1[X#` K [Q*qX3s,d)zDsV}X*Ȥ"T|3}ݭ[AStL8WqB&jh)G!nC8ԑ󃳠܆<5y|ddKaM+ٵCl} 3S@ xK ,{.O tЉ'Ѝ۔5+EAoLTS$2_{Aϣd/R%=r"ė*r:R+l)Sb~Z*32w e⡂?u0_u_hj\%XM m/qn lB4c#$Pz]BZׯkQ-:ÊwZWM㈅{ ,HU"ZvSH(x\ ٣Cwa'Af*!R -J"kW^|q{]9W;YU9Qfs;N}QPe #lgkzXQg0ˈjEu̜u\vÅp -<@wtTR"A2 …p.pO.O }J3U䈄Gd -F#j6.}}-y̭;q@Lg}\V$c_bݙ+觭Q<>S_2:*q?rU9YIJB^[ ɰ -W2[U_ShJ2~7I֊UvU~D7jY,q-q%fYlھaS/v&uOTK8G.QBq,P|Ty陇UvXmQ5?w.lڵb]U4nq^/gbq'p;B̢T/S=ʰ -ho<ةz7]B_ }G/aK=D:N -]9`U|LS*b,A'Κ0uU{JaD#$OLFF}Ggk'щvnwG}~s&u5iѬ&=͝\f}ѼXou -A3yWB6BpT3HCfgH2W8v#G\FHw0X j{,QBu~+SZb0$jQUas[ ,[ؚ+]KW&cc3ccD&>5663}x>?YD>?6anXo 2g+z&bwu,\N(JfY|<5vs;3fɄZаɯKߡcI9-aRyd_u$uڵaQٯ3ji|!h ±h?e Z}t4ސ F\[03 uL&]dӵWSsrhdDH2Cp@vg+:Uu4q*[R8y ]-| Z3wy"'A. *š9/sLU TQ&PD^E)Q( ZJ_!Dݽ}mٟ}.]nij+gu|ydbMg/eCwĂAO6 'E *9Z)rTT$9 --ϣWϟ/Πs33C30[(>C? Z_ }IJ|p ʷp*Y^K$.,N"oa9ϐ닗aF%uʜ]'ԭQ;z_PhF N7:+o౩U*_/aOS Z -8Ah#u@;$<O Z@BB -p? 44k?³0/4M'` -|$ -s8[-V6)pSO!tZcv/ ܑH!0=.@'3`;22{ArfS<51u>'|iWozqdia0xI`Eѩ3ݮBcz_回e -X 0KБLLcgg;7fv5 | ˫ZM(QY@gFɣ3υ n[h]. -endstream -endobj -5968 0 obj -<< -/Length 3070 -/Filter /FlateDecode ->> -stream -x]{Ggvz^}Ͼ9W/w%$KCӴ)M"-T,%^uTH-Bx"Z(]j3gߌ/|MG#Ig6OBϗ8;oλOĹ>ob - N{n^yNy܅ۡ=}s;.B&t({_xk(sj}K!?9B|Ө{cFȷgY6nUnYܱyП3bE``kGG?EG= --z=F?o 0Զ9l;L9C:XdNT8^+b/Âae yG8nG=?sϼx/=16oEu`:*iI`;uQb"6(I[kc''RIkmfz\AB2g-$v.Pbp6IxSM̼H"a$"\uD0ivb>YJV$cA]Ps l2F}7&[Q -CS'G eXaDↁ}~/fՙNmrhx<q̔ H`'} PHlpdvR2 AiamGU3m噑b.MxBT ڏ܃h^D Wx:\!݋rhE%4էiUzɾZp:$m.!SƠ(DX ŵjS1["#P|<廊=|NDd2c9?_R5/z #$X2$,a2uB#ڳP֮*u֪ǘ+Db1YA3$WkysW*u#Hdk6awLI\]u8A(h67ԛdNj `#!ʏ<|ײ2S=婢&5@JqA,GSy+n@V5xm)r, =>AIטo-|N\طx3_8+D2KZl 껨)$2sCEBn%dt -AۻV{觤FD*G4r0::b3 64 DdkM!A셔F_l ѮxV!?e^ 4Q PC.Rj{+9eayt,ap0x -/m<ϿqxM{9[6qU{Q܊oWܼ.fd:hCkc - ԳAj`x[5}7͸.8 HWZ8 (r;xSwf}b=bJ6GƘW!AX㉜(ǭIS ؽ?'ߜI␑}j" -;w[3UUV;~@}|}-pzGҨu-cE)|kWTn So 6qՍ7 ƃ~ۈTmJҪԾU*evlWo^g h#"ѯ:S7UѤ+QM?zGaD$|95P[FD=}RkN;{imʕFqD&MGm@\{$.^iq&IIVҞ;1AU A ޵ ->߹;)P=! أQ2N&h*Wv4$ƅf9eWrx~ q Bg%mORX&y7 vkчsڀ?Ójd+CV l<,szH 0\m@"y.Tf?՚6G_ң^o!bπX yB -'(އ~*1rSG"q*~%ʎrG$ @yBEذLË©Hk"zPlO]y%pTd*4!95[=p:&_ᄧ7S@jcA/ozДϱ֋WC-;[GILyݾ<d(JTd Y,uݾ?.Zϔ [@$/zp%zk|uu2nX;d{a}BǏ _rX|q [rݮٛ]"JKe 0Iܲe.BС F&nl~.?dH1X2# -Ÿ'\OavS)]\Z> -stream -xX}]~wgvvgvvfgvvvi;glj` 31qHĎC*$ Ȩ  Z -GZ h+U6G*RJ 4of "οywv}~<ޓH@7G/>0| -b(ܘ_\CA!=ԓd|.p̥ O}hehyh=$!jzުB;;7W츺'ky7?K+*c!ѣ$:y %G&L4~t]3C|! oC;ď!G8 -Sv Sj mM1fmm03'Offp[K,ch 8_5 )Rkװ0X({?}&?[ IkR,QGJFT6ͦMQUy:>skv]+-:ih҅JN*OxK;*`!l-V7n32:z:DY84!08v9vh8vh8v9v2L߃Y.>z - ~ -o?fa@ k[w.|')O='I&HJl wSս31)ˈ=,L7d=Q}zx?_J4s{~iMZnTXr Gq.\ >&!*EV4̝mVವ:g[s8ރJDBLR?`ޓ JI5S,^>?[Z@hrej\=,8^AN`$IsBJw6q e#A7_!\ W@C7#-K+*mscwVUd!g(Pfp -aky\;ُW3,O -,g+U-ܚeST3l5;}oW`ze(mܜKDob!$ms!A; -Ţ#j,kaPY^pui'L U3hsvAkQx=XN} -QәNA:jNAڠSmЩ6Tt :jTt +ng:ՆEڰX6FUaz msrouYv01$ClJ*_U]|?h= 9+0).B}H8ߟʱ"p˸ɉnT{8ӂab]}t>(ii2$WZ%h^p"Re޲sOʪ!A_jE|Gh| -Ne4p 4DYv&xf̧9ǔ`?xf`I_ecgF^-q̹MXZ`BL, jΆo\aåfEMf^ -=}@Rk];M|f -BH]*(<# љ͟˹7mZ.rII/__]\-Y -2P4/˕$`rQuϚ='UI5fãhAb9GJ;zt\炬w^Cp/kw܁w8p܁w8p܁w܁w92>nFRNʐ:Jh ] ->> -startxref -684442 -%%EOF diff --git a/assets/device.png b/assets/device.png deleted file mode 100644 index 0d513382129153c7cf95ec19771d8ee5adf5db18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20167 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 P<1;&Mb?n`dOQHW4++fnB diff --git a/assets/do.png b/assets/do.png deleted file mode 100644 index 7eda7e09a9cb5e0afc9178f3535938d1a584c089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35339 zcmXt91yodRw7o-1&Hw_+fG~s%At^06NF$7NDkah>oq`M@NO%5pceiv(Nhuu)(jq1B zuJ5h4Si{WRHEZVH`Fxf$uL|WEqP1u=uwse1R#eAlalEhNNWGx7P=FiYIomXOr(@)+V+)|6+QoZ%00w3 zcd$_VnIwoo8im0~p>B^iDk&M)tIY-y>(JrY08f8W4r7M*p9O68^?KfXO}7s6Fpssa zz|S$;d(&BdG=&8PQ%bOnbP5=9&W#A4jQ*qR;r`Mi6+p_Z13rL+i+c!6`8>P&AuFCV z@)&|a%B>2keHv@HfA{;v9pA2g7&ah_%8y5vYL^q={&DD(tqOP#0od|+vbgi;eSb4j zZRP$aZ}No6RFPYNJz+S^sI{Rl*YG;}?gHMoaV&18qKJ&aTqJOOE-oVbHtmv|tkA2B z!Jw7Ym00M#tdeNA7T;uEKK|)xoayo$0MJV38ScxfOz4=gXNWI)ik! zIeO6<3Z4&g{WMS*5YXtbGCp{2TyJf$>_+!`+s2wb$!k5##1uAAMhwhevQsICeQ#}) zPpy2D^-L<0dW8Rjl2Vuw^5EK!Z`b9K*q<9yar)BnqKE815SiqLO6^lpX)#P zOe9x<*r786l78N#)hA_Wr4Dd)J`|lxIIcR1P(>vC&VF62sdli`$Ui0X%;TuY*4lbl zi;74JO5i?`xlaVK3Uqk_A7DhtAe6whezxB4i~s`u{yx_}SZ)_Xs9vo69b0+HTHEq! zV(!Ne-OWo;zrP85J7uCK($HS_U-RT|JB+=4Vp=w$KF(eua&gDzBDm?1-kAm&m8R9n zJ{N1xz*z8J@s<`86x@Uto*YU;o0b}$eKPLyNq}iQxcBb-yE_-oqX2z3E2s<)0E~;c zy|XO1z4pJ0P{_49KiGEyPJ*Pe>AQNW%~qnBWh75i_8XucmxN{v+gx%9>RAz9lB%s$CKr+F0tTDhoAKWT9T$BjQOx0_k0i8X z(YVjuUPZFFA1>1?2K$}2PE6*?jd`M&`)LRmFT@Vp;x2}DIw*fG4@CJ&9tx{vyFZ1> zUP=kW@MB zGKLaxQbqjTZ(KR9G<+b4daG9b=W;@_yTb56$!>kcUijzG=&e0*jt`l%kbrW7xdc`j zAp)Q6Yl#2d%}BoU!Va+d<6~Dk0buS++FUULCV_Q~6h?)BaoEgkL*(Y$l$W1NtcXsz zept%rE+t}m0`+_1?(ctLq9)Zapy0P#gWQ*wN-Sl(+;7p(4v$xEm;C#|bDI-4@jgF@ zOd8or*6>_E_PFh%CW~O3^ZQd9U0q#$TnEMCAct&%seChc*&8eQ1 z6bkJtad-Ln;>#DuR7{tfk!d6@n76rlNQA4#$DFLJno8a{k6S2@)C^kA|4Zc`qoP=r z{qLMzntusxI$y3iH;a=3a!a}DhaNw2jM_BWbv(O!d-Ja5{BPcBNIq^ZLw!X7dCgL62fQP=I z14Hc|Gnr)D5*L-SVy%crrj97M{63!{xxV*pU0pdp-pA&19Pca9;vn+Bne(T9`^CV( z!AO*scT)dJQj$le(34;vv80iYyK-`;D#;tyel@zBCq5mkDr#yafq_I2zypr}fKC^B zX5a(}0C^%i9KfpwuyTf6EmR#PkoY#c_i1(yS^*LO1YiM?Og%gRDWuB+(Sif$Kwc38 ztOB}(4>>#VA}2(sN0PW*$itdW#Dx@?$-9q^W{c04TdkEP#eanEPwR zJ}YBzVLVoU^7Qxb((Uaxr%w{63n!))>y2cPTjVfyIWR^}J36dRXICWI_)-L)qrM%5 z+cp@H5~u5&PRwNwn=djWyu5^VzJJdst8`!>?>cBbq}Sj~Y(j^_V0eL!f_95+%U*lG z+EyjpD_%6z*T*iiDJuPReP>zK>977xJ>W;$bfJWsJCBISeg1dnBjmXl4Nu5 z_51t>FzUC(F*Df0w8F$$JiDm~w3_nz`^pX19at?qv%DRTf=103?Pc2`zNnYYBl) z;R5E7YrC_JC*9pd8d5S_H715N=89G3L+cFm(HsM7#)3;vWEiB!h(={VEIE9B6WlP$ z36l||m;_^{#Q(|kj`Q9bA4!y)zG>dsgIbKJes)#&YwTXAGY)_c6GsUIDCh(Cu=~CZ za3u_PiJS+2ibBV7>(BhU>fjEB3S?F1Ha41+=}iv>e=;;UGo_<@Fu5Wr%&oBOb4qDZ zyB~xx1f&L>s>;g~R-6X#oUVR1voYMOSrC**T5viUzj^cg_Zi7JQLNCiu-x8UrG^ZF zyiyoiX?ZrG4~(i-Pyf4Y2dP|^xbvYGem(x+ebUG@c;{*!z}ugICIHk}rweiwy2x-o z4Oe`9Ve{2h5!_7iGN{drj0b|zH2g%}S;@(RWQdmjVWpQXFvO9ue0(&8h%!@H)E-4vrA&x_H0tWD++2B z{*+`E$FCb1(Y1kF4FixbHta)q1qH_;0WcVNo-E2#LlM*~LgY;4o_&b+FJtQ_iYP9n zp)J6X0#=R_a35oZZRVt4oow`d`mxY$=BHxqkkR(nFKen3o4@u%8?07Mxc+!U2%te= z3M40@`{H9Wcly@z(Tc%&I?Tol`H^iLf6ho|)^Jb9b7UE`NDUM4JN#QE{SqkDe8|I0#YH1>jN zhB^2M8VCf~%~vIkr~hoX{IoirVQ@M5AGf^B1^B8NU1IHz2RL0ERpSP~v3-Fr-KCsQ zPWve9$jci)`0yIpz9ICpc0vE>KCU9= zzK3mWb$>M3Qx*D3!=Ry{%mr=G&T7hA*-MkQnf`*OzaL~2%lH9p9rkJ?%N0fjahM-8 z6jggI&9b3hAT#;1Pv#61jZ-7S!S@wI#0HS@$B*x({jWON7WEg_+2s^R&iD`oBFx0HEFS6 z=GF>>vgka~Jg2EyBG=v=%U=EE11km$RFb#Lh4bfTNST46a!>Mkrl47WSO622SLTia z5?4$6#YaiY?c@wHFrFS7XN%mEo7Z@Ib5+krfTjA4UOciZ}4<+ zPf>CwveTfbsCT=E(a$pv+g##II1>%&-Ufi#;Jl($5clzm%&6>R;=wMN;B2ymf?S*Uolt<*UiXV}aZRSkCIC>9rdZ6>J&7@WO?CTK$+At+&t(FC|R{+>7d zK8a-$l!;1sRJtB?D=Obk#yk=qBx@~Glpehay~h~O(meBv;Q=vtwd~vg;C^%Ubp6*t zhXNR#Ocbe=Y8dMe?Hf@`LCy<8ZNTYe5bgbJa0zP4%kM)ci!XGOmnJ7k!2_p3n={4y zjstX!VGPg;(y-V0=oE*Q+klIO3FBz<1RDpFF(3e$FQpVlD^#HaGMFdC3}B^jLP#MK zTK#TP8HTgZ&&h^W3RGb+_&{E~GgwRo!CXJu?IsQ=C?TgqWEe>RE}6kCrQ-V-4}KU| zV^{Sk*7Ntqw!F${HX=$qXxvwkirKX4FBA8GuJZ^P#)&+EHmMfyJjuq>MX29) zEG`v#1`39ZKQ&2w@r%=TzDf`(Lo*eP+5~Zp*aeuGsfK#$?2SJ9hq}AFO9|YKi(K_S z7K|{h-hANyZANqX=i#GB>z2fnQEMD2W`qomt&L6o?d|C#WNIO$d@;*c60^V3Id?bo z;`Z6_7`Xh}Q^==3rZH#CLpGJ|q`toOw?WR$aPPmzH@DG#za2CP z%7!hM@{g&ZunF@;9zuoj%>9tSz*9f(>)m9Hd-Bhpw}bCu+P*G!$|m{`gjpwud7cQ^ zefR3j8rh1}pIBVfZ^ylGHy2!rQbM{KMca4!V&AOdOB(AIDY7*NK72UUeCT@^qA=IP2wt{IqwIAl>wBIighW2pGL+iktBRVr$BJsdwQ z;5l@S-OMMF7ydeugktjk3fU7IN3|Z;Z`3n!tb(5J;A$T~erztx@{^eI*fF@aX*odf=8R{ zE!Er5#-R(!o48YyScoPh@6dVP{s%76r$a-Ezr|mG&?zFOTptdsg3yqdFa%4;%d%MW zo#b)Y7=rM@-X86z{rys|XB6L63P|wq#^drMg!H?tAOUH__a5io$5f>kDfPTeJnT7& zaJGth5XKXXVT!Dt95&tf4-i1%=m4(>fDc@XrpzNv+Qt2lS2J$k#dmCjTm*+`)Rc;! zmxZL(&Qt{T*(m|)GN?dIg9|UGV)`cm-fu&Z^)DarZ99&uD{Y02esP=qG?wN-rj*ZD zdGxRsjBU%>eVOP>EKf+wf~|nD=z!=G2wTHL3SVUX@6KYa6)m6>5Ec>nNkVLh z$$JCRtWt0rIhmUBNeBuaTz0I0G~g}LqBarEQ9nbF=0GC6o;Y)KCX-(G?(b`oNXCGY z;3h2KGs?Bk=^}Zrg(7Mra=^4YDBfBH`P81v**j;4q!Cugl=o6V z+UQXtFeAKNEY{w_)o?%k2WLS=?f1aI&A{`@QD+lm&{k<$ zl&K#^mup+`*<+dtA1|=3#$k9$q#bdACkBO=->WpT^5U6>%=xGz`UtC&b#&{Bkgpglj!9?S{&XR}XY*~yXQl_P*vQb5Zp%71Ehw_q>lSd7{mZAp>O~U^P~P8^o}e zJ(|UunYsGIIXyMi?BlCNK*6IT4LzXO&-1OlD3bad1pc!5O^c*x4WS162Y z@;Em2+!|Kz#)^A{7aGHkim%)(GMit}jm`?5eNu3WR58ZcNY}u`%|y_>pEHrXmnO9G zB)l(oL_{9Ra^<%we$@5&eb(LIF*XL6k&&KyNe@w-NyOC^o;i+N7|0B5JOZJy+?)rc z84FG(dtb|AcE-=fh+P?b zNXiW3p$khR4ayF~BaWsFe(Pc8(W<@aA9x&|q9O*~i|{^iXZS!d&eGW7isw#-y9HQ{9mmDz+_cyedJXKG zA1wP_XXM^DH5EVZOR=WDPqP6*U0-@_ah)9X$WbEjqVvay;?W0K>m6)yZz;6DQ5z6&|C1ZQOwbe`yC?k2eWU*j z5$?Y;nqoZr^(#A!QTzB%A#<$Z6s)n`B)AG81eqVW{f=vIL2=h+=Y3Nxaf=h?>5sln zLu5WSF$XygOy9K$69bR3z{{A5?SdXD1CB8+61^g=qau&q8M$i`9QzT_G?bXXv-Ub{ zkGM^Jn!zfL?JIfIVBfwHZR$t^Z_5@H<41=^V(&!OH&%WC$+d+q+3S#kc+RePNOoR4 z`|hHabVyt_0#Q3SNvN}yGiT`CBK>9?wnGfl(A`Z;$7ViCnebVB^zdParSX@^7~T(9 zI6z}*DU-DX!M|eKY?^sQ+*!;2^5g5_E$8K{v&o(YP&Cof(ZOfT{ZIDq zcW_Jo&JI154|W50KbsuOz?vp6_IoTTIaEzl$Ovf_iX$^pK!JHDoyqhS?7T{{(CaS< zVLn7fsYvA+=DszqvQ!QIu}_C7IniwkXp4%9jEs#qna=7^q7^JlkWpxiCCl}gVKe49 zC>1q{i+j2JfyAaSg}*&!y#u`2y)-U$S`%aDi$A=WRmW%#{QlTJDmPj(8p8*PFfZ@h zUK;(VF4kmHEt9t}XNuTmD@D@cS#q-$x(3Yo_45Qo?rVVNt(8JT?2x(N&#Aud)TiG; z>Dobl@ji$oq9bH-bkC?SIu7d^D-++pr_Q}{Cx985MP*pLsqv-K>VgIy3d5lqkZc?P zn;eh7w2Y=|{+ z?=!2i`ZMkGzn6{D+*hp0YW_xVGe*u1X*nHg*WfSp^B;Z<;ECM`@8j=}M^k{!ni4Ip znQv`_?(lKGlm-Q_?KFoDT=(zwdhtqIB`qPC1K;!Sv?4F}8u;i0GFM_Pn*th{%g78K{(_dPrnb+Vh9T{CevoKUD`ubGcMyi)7m1M z93P7f5HbpIgStD>_(B^_qG-*Rf_(;K zX_C0^J}|Du0qSf?H|yc|Ig~zrd@H~Av#s6tX(`3I*2L`DhIU3PX5v=wrhY4rTk0yVSWAFMp2dshef z`#a54?u2=Hf8MM;x;?z*pJ;;)J!*VsC!~m^8-I{6Vo^Xs>Z%I7bujr3mb#(aTPud< zn?EF`K0XM+r%$);6ZV0^{lfWsOXYff+cnT&k{%GP3ONtLeX(Z>sX6> z5|mxbzX8?qkd`nx`dYphWe$VW2v@eW)CB8p;i}2Yf5;84`|+l6JL2eU?nQIsN{4j1 z#IsJfQc&w_XspBo%mE;Cr>3D{b~p7@8q;NDMk~to|6YLF0@jvT15w@(6kBt}`>mQ4 z5VKCp46*<-h)QabQco>SeLjK2iVTde`+I|53Ly{ z5*4eBQ5OF0xx)&|(ki>$SAI~DgVIU|b?{2HBXdeAA)4VxRA%Kr^dH3Fs3M^NMV%jN z=6WmzV4BbtcAXJbUV^75>) z?|*C#O;_11-GKcebK90>ouQ8h+%%sSY{eePi#1w0#%rvA_GwJ9;y@3@aP_j zD_mRlJ|w^N$tkgi1YCDvpI=Gdc{0-%+PB(e{JzN+H37lPFEGXD+3$mGavFO2Fx6{! z!hfY)lXcp%KSg{Z1k{1TO(#pS@@n}FZq}t4Op7(q#3UqXJPs6=_K!$`ypT_-(hLuw zP9bP(+^#ysIdnPk;n7*oqsiEH1gw2Sc)V)kh;icdd0JXpxKi;X1C%AX5cTut^v=xH znav>19x^{2Olr)>H@l?{U0q$5&ISfH#DF?7BqKx5Vecz`kdDcXXI@5eE&pdwvuguG z2U<*nkdZJ6@FJgEXGNiulvv=?zf4&b42wuogwSmz6>n>}AzxnP$Kn7X3{c4EOQeP4 z5tf^)c`zvn1Y!Drfd1)wY8BNjvlkMV7XR8j^6O5i)IYvJx4sX-ODnO0+~V9vu;dg>8h2g^+$TcfG3K`m52d~jUjU%_5`J^rA7U| z?J@Uwro`l!1zYa~YPS6CbzJ@^u%m=i;LMEZ`SBxpX(8p_)iwT3D~Lu_wg# znIgw&Y@|@ePp$>X6ymiTu?C!y^Q{+-^)k=mLRiRQ2~fsY#Ml7aQ-M52u)#tUA_KLM z-{0L;$E>o+eV~@oR3l%cg2+^|N``!-WXc*+@3 zf@)!mL3jI64`YG?^GPHx9~VxLR30KyhZuMW!c{s4unCzkK}|(X*w=^oRp2516{~)7 z=noBHxuu#CGW0!zN3@He>4_fHiMZgUziMofQ%@>Eh#XL*OR&HYtU$#0&{t9+Z@SpB zy>-I-hhLQ3xTjnm^8Qk@i_In#mU1HJuviq6$PRP9d9$I!*%r4ysF%aJ06;P8G2Oi&5cda$bo3mb>9_yDc_+YPjY3gmZHh04h6g3&JW~mGk+yDZ?vv zJdKMrpC}+d;z+lbKK&8Krx!RPt6hqB<4<1T(x*x=B$rGo3dai2Kn#mS@q-9?SOsNW ztQl4I=FcC}L2&<}OCHK^f=H(T#I1Zml({OFZXY{eML9mK=+-D-+q#zi4_&8=oaM|{ zavFd5(S_7Hg0~3j^qA{x&?#LQXa=l2vW8X~U5;!NIt9gwXb zj(zy5rdXw*eVJxq@ex+&*!oKGUg^cR9eScC#%<8n-o`ucjj$Q*f1WMwLt-_Do48$C8Y#=V}M+MG?}lN-s4kKo7=n8~AL zp&L+yA-^#GdR|{s?lhZf_)sB|m#S76GbH|-^XW*y7|@F!5F78D?n2MgKOA|SU0mFK zvraAf@@kE2XRdl8U8In`kCHuy(dEM35`Oo0Lb7Cp=%Dj1?sl(IzLp2fBPFM}2~FG! zb3*=4hP&TCJL;u~zB=smUnmv!Zpt3?uiUY;d;<$$|{<+5bAhsB6`dSC-Ol@>Z~0vW=o>%q1u z*ge%ydTU;kG}chc#_#~%CPgb`58ZNZ-sNVaBvdi*bZw?r2!ZGJvsD`+Ey9=c!v@VF z2S|{OK<;h;&Tsdvhs^XqZ`fcwS$L?7dZZTTmyI+sEZ%OKbGlIFe1)i}s1wyRLA*&1 z!%o9aKa!ukLbn-%9W1I>MhKa45wLOJoRP7RUCB+(4F#2rT_0G?++<9cfQjVawa%V@ zFhqs`+dgrET32)W44>pFBQoF0+S)a4DELI2Ixqg9FXHe&D8eozem?BQI|6SlFU{XJ zZ6z+Ek+P1udyCCgA-{et7%zgYvo9>BD&La$c^oB5E~vn^S9ZL!3S48blYcJiALqE= z@kq11v%I`fcxR&XJr5nGc|JDvsoXw>O%-*I3nIMp4Znl80 zr_*5{80@8zhz1jeWBH0xGl+xZ6vU>DqM+Cz^G%2Qr+Bi>$)OK40Hp3gplo{5;`ZHe zFF76a5G+yaEqBk`>-08wg)~~sFdp||^1?fycL9T0ZqzJwekM7vP}}~2TGNGgdllCW zzrDP?epmhzde?M8BYgc#gLRr!%H8`R9i1{yKP@P!4Wl_ogn#MQ%2A!4xUN$;kJBLt zT|ebI?Jf{iK3uR-X^-S>W&h9UM|TDMEqSBL&;MkqbyLF!%sAQWzp6of23APP5E?&nzy}9b$P%2QKAmK3D^5hDfa%%`z_rX}beA zfFTNlL?|(6kCZN!Z{*=Z#U_>~woaPO`ND?GWqA5u`S?t=ULT0vu$dKjLY&7{i`5%z z`Dyj!Zl;nXHagFj^LKr~uJ%6_3Yn|GOLwl7!M$>B=DysF#K;uk<8yy1J`ce(LGQ-# zAqr=hK5;$H#Mls-9A1Lnb)|Z@S=0UOh}WW(>2()b0=;lprEnDga5I0p5{t`_IYNh% z>XhdNhagCJ*i}!1(8ayE2c(OgFUzCoaeDT5hlepNmQ9D(#|+SjVGI9zu=*c~_FPm_ zzpObe=Y-hFv4Bz)8nywarsF(WJ2LXmawYfG1@06y3EgzA)8@5y6D;@yS9y?K(mCp! zb#$jOQ&M6>s1TfiiAm?XOb*RPIyY(1t7F#!1}>tIc*l`Cv4XG*7DP)h zMz%UxC`O^Tkc!)Qvl3+Ue%Jf%ObMCanw;8sJO@y{VxoL8OlT0EglJ7u<;Pcy_uKrJ{eO$Nea}Y&6B|YZcp~OTBwGe863E|GzmR(wk_Fgy&0wEaFNt1C47+Huc z?%q)!w|7r$JNQzp9mpwVo@C$u7BHJD3qd?7s=6vOUh}*?_z~tXW4K`nSYZc{0#^6| z(Qof_6ib#CbvwZTJV-V*@Z`t2PTi0YnVV?)Z4f-__DR8Pn$gEC%Oa9qTf$k2xGLpSsixbqz8v21ALsp$2aUqZpXirPuY8tHxQ)Jb+(>uR*nIg} zyV_DA>T{vHNi|uo1%-jK#%%~S>2rNs&=T4Ot?st=WdPeloY``}6XWBDdC!d-Y=6$U zcbux^rAL7lzlq1JtkW2&bg?P7j8)KPeETt$p<-*uuIAU>JKeCiQEydRS+{pZK5OIga3-E~`Cw#~HK?OwazJ;Hia| z#xUS2$0nc0fl>;}X0IHwGkSzIXug;Zc7&M`4Nz#k_!ErXVjVAL3MD__tB9!al-@KY z1o!NF70Y^?Akm0EQ}9CY-|Lw8`YwBCN%%&6EjRctnCFr~V)`v?E?%H-`!emAekmhC zg)B0-p2qfZ;`et9ZzB9h9vwxniI695THS+~h2(2L)n6qzH)@<^o)#(X7Ty0tBF@~c zs>)M4@1kxXycC?3Ovtw;l5*V4-T61%+Dc&u5)ce!3wEq9rc-@R7Y~{a@52X!Kv%;(YZYS!IG%G7Ud`Aqmc@~J=MJ(?JYUSlrC zt_<(jXtT(y(CzBx@i1#NxqZau7kdpEwY{QPHvjdPW}_`KRFJdP0krFjU;lzEfO%8P zAuoO$?2x0007Z?tD=Z{S;)tI!C>X{_IUlWRbklJBXyS&-c!Ac;Fyb%&)P2Lb`z^Xp zw@*VhlRADspdxwo*k@c%F)d0O+2?-nt;aqXhZj&B<$W-PrQor1ojrxkz5?8+GAhUgErbZXUnj>b03lJI+-sYMuhGSvOJeM{STZGJxC9Z!FDV@s{ zW7rwf|2Z7xSH@mYitNb5y<^Uuc_VSk7D2!>IWv z5EzmGi!;fW+nTZx???Pz3;I26=!fSI>HU2qBQCxLxjY%&{<7$`=N89c8Mx@nXUbTE zVGM|ud9#2npTPJ=2IH)xocm5}5Uvua%uZngxaV_eP|_|9w{0oaH@ zU&YA(dA^PN)3wBk${LCjMkm&Q>JT#1#bqoZLIYCPskzU+ediLhq^et(xszg;np(YB#;LmDM0q zZY(+w9e$4yA$dO6d3#p`dZ%%B-mk(tg>t@gEv{7SFYV}HcX1`&z5lHyRJQ+@x{l0T zed)IHM~Fsvm4{siMI-CC@xunyyjv`0ibjdn?pXMmzA+b=BR#&t?lr|exA9m z;gB<~?&8ZCD1&?X;Z19N9yx1TDH&+j>a?Gns1%@)haS`Q>vqPUPy*?A0dr?N*g)6I z7ti`!_k?&n+4|NgAJNmR={Tc>8EaO-0TI)gklKF}1V7bYl0Fp_RCxw^w>1n<-bxxh zCvov!UTX3G{jY2I@LJO~bRUl5nVa?7 zec5>3SS0)3S8FVZHDNVUcIlj?uJHKfHqTQs$Z98IJqfZp9a(KuL3@XKIh`BT-(Qdr zhAI(BQQ=yud;4;C<56dv!*ZJ**nKNCr8fz2xH4eRuhL}S6MPV(6fz9*sTq*kQ(E3F zb>5`;fpp*C_>jSzZ~ve`mG(W@YQ3xG;vT;H^16xdhG*svAMf~7DWfAs!~;`q zd8xkC`8~L3e#1ny0|cdt6Q>s!7pSod#5!ne4Z>sqK+6dO&o;yi4&}v{VgelR!MLAY zZpI~He$W9l=8W}Zk3C1fARrC9R}m_Yv-60&qk9!dC=wK=Rj zAq-+rM6upbkv)TwpwaMO<2I z)$>gF*PKhBfW2P43TA*Xne@17$YuW5!?Yc5nwJ%-gP*&qmel54u)bbrzBBI6OC)7_ zNc=8;@O4qSf=Mbq9H(AY*|%taPECC&IaF20nwbHs!S!eC%#Or4OF=Dg>q*5`QWFOoJ57DF{=@-NHF zyJW=ap<`)6cQ3sD)1#3tulrD2i!^{8O8^(MVh2qdci+IE{R)2IaUz$^PY$YxqDvBx z$F_xR7FFtj?k9rpwdyT&4SCh>mJN*8i=${9)V<RCn87vun413UeItOO_Lg_L>j;G{$JsJC=xBI9s#&jU3(l zE1md1DlIMZ_8)dOT0}F^l{KXkOTlf%ZsaSm@C_cLPwO>j)2JtDR8vIN4Ix^yUgaCR zPI7p_==qH^lt8uW9yOPKYNR#!T!i11G<)W0(P?v-%dLM?#kr~I_ly1OgQd&s&Jzw3 zL+Z2je{hIy07*;X*lhT3#EB`k#cgxY=|S|sNsACOG$w6iYhz9}2=zd?%w=4tn-T&q zu#=frq#mEQ30x#(f1TBL@+mx?w3tP3Mb`rIIdAyk5bS-*?Cj_CF746^eV+|qBKU_- z(FWGD^}+Md88X!rm%m|{Cng<+=8;GMXPmAeKJpj;RR9B|Ul$G>y1{q+KlYJJ{u|#p z*{}577owKOQM?CJ{Y!}_4P60?4D&!AI71baxwFNw70q$8^52zi1unzvlt9j11{s6E zzysE?cS7v4{U2R*Esrx;mB(~(rgMI9sV~{*(0h#TEaObKFC=|+!t%;Fw7{0t)xi1? zNoKG+!$L&!!9_)nRJvJe=pj9~_Y;Jj=2p!M8BBUfa4i-r06od;MJHwYRhb{*CyiMh zjsv%38n`!SJ*jP9OoWl|h*zz5#Ae<8{v6YG#@+6U5)=}8p;h!Uzx@w5xubAbU!tqQ z>fCTwjt@=yy>K(Vj|68Y9UpNi{H{NTO-}wh6aOQF&NG8?@z}go;V6d+I#8tmy?&3UWbO+6McIIC&>4S2 zm!2WkXgKEs^`6Tr@AR0tN80IL*0)?l?OmI%^i=mNJGHf0kKqVy2OG1T{UqvEJK{^4 zMA({27mx6+6RF0)J(_KJ{{*jPAgB@gLe;B8BAMPbthWtx{vGKoC45vZeL5M4LMC7Z z+;I^E$%c~B^>_}tPoB1QgDLq zccM8@VAwmh_V0E`xbOo!#fW_C@1}tptVMRXbFTv5hf<}HkeYD+Nw+9(A?UON7C&>|TwRX(v-^<$gXOq9^OkimZ+2Cf=j7uukHSs>>yE$W?cFGYGjxA>IWL}damHbmh)85TLJY(NnJ-W@KtU;pvUu&j6~W&Yd^ zbUDR;tG6*Q-}?#z47uiCpTB%L3S!3alS%!0C8dGSeCBFNkN()h9;p}1y5l92^|pvB z2V0$%6XTW_eJo0wFs24}ffXYV9 z;ks0Tp07IQ0vBOD127^?rB@%jQP91L9Ma{~MxmxA>uVJm&`LS+2-bXO*EKuPEB8Y< zDt%9X&x;<%FL%l*Il#qOfjM>uQKbBPw({01r_-OO{PVArc)on0V$bNi6O&tqs|1tF zGUA}s7JykrJ0#yLm>=h}Z^!-+acEfD#Gru$uGn0wu}7#47l8|R+Nm&=y6v-Xq;+LU zD9wpE4dN6Rk{yCHXFD0c_R_j}yPRjr`d)6DpRM7k_AIa1hvxz|X;&_uf5&P+U-5sD zim8$b%Jxyby~-d*)uLTNLq`a=6(TamP9pGP``bD*)Mc! zf)!8pq;FZvNa4P+=8{MTlD5u56>%^cxGb(ldUU=M4;! z@N9k1;@miWOIRGms^3L<58o{4dG9?VW*;oro6Yy5@7iwuv~~|jysKqG<$wMh zzS2(lwz>m6zMg2HosI4dhC1$*H#ULRa$fZJ(wrQP)YKM4BA3CC?@A~GfrpuyAqiQu z+`|dbRqQ9YbU+SHOwc@hcnl6uaDx_R_wO9rqi=K))g^@(Ii+{ED!knYS}#@1BB;KVF$hknIKJWtyjq%|yEW1#8p`eXzu`X2-xio1D(tJ*+tQbDijCw$nL?zRmW~ z9D9taGLw%F4r&1aI3_l5obo0!=W&+Li8g@Y?azbCG*>7C*~43W+zEtE08T!0L!XTI2QHt2%-+0UbMTa(#-ZOfp;N*)DFt-uOM|Y$zwR?Mu5@3-6!cP;FefJDjMty%O zznBcgh2rwtJbi$$dmkM7&aU+&%*eL80%1j!ZxBj7;~n)u6#d@PNz)YbXqIE-KN<7{ zsb1qO`)3gqO?#NVt%ZW6$ji^$hgIPg9kNm=7T^TND}}1}IL_Tnka z*yV5~&L0YOhZkNgvK|(o)ae|t%!vIqg#669oYJ{{Z}v?5?Ld9#Va`-S zsf0ZI6koJUKjeIsHU2;pb%nC-9^`|6|3*{b#ulu{Dein#L422@#c z{8aU-sEX~>=~+irZ!+l)0mWvHC_@;Zx8}edx&%9l zLp@E>nA>Ob`5a|Kw?^eRjiwoNla$dtV7Skemph+ubnd+EBIrcg@>uI{Zcs4OdSmCG z`bxXqpCY`t)4q>9!AbgMt9#_Ef$#FW922Bkztlr8Mgw!pkk98;)cYQE6K=_DOAH#Y zE(j0*(U*YFiTVxsyPxs!rR>PAf}i@mQ;;A_8L@MW2eMUAx6Lj$ErSn(_Pp5g4b@4i z@3I2(GzgA&I#0zqRDajKgoHFm_b`-ngCGbD(jZEA zcXxy25Q2bo3P^W1DBaR6-6hif-v6`K`^Dt~7ITB&iM{vPM+`F%Ica8)U5=7n&*Yr2 z)weT_fh$Fe9*P-Xg|p$jM=?t?^mF+;<@(0UOGKP-i(B6%Z9aqM+(UHiRtC-2y#D;} ze#QSDkyrGZ1m}Z=%*w|OUy=Qb3pDMJCoxGszkQ&4{>SkwH=M*aNXuO!NK1OM(#qqW z2S^a5*0aQn&rWv5Oe^YGG#zycV~`vQ9oRCi5ZZ({Zf2WO4(pK6Y=3oep1*736jWfy zd8Yl0B#~5VYWaZq&NjSwg}f&#A->%I>LO#{g*c5^&&oqsAWTCc)#0JzVfvG@*Xq-i zSc&VKOw@OX@BaE_pRTlax8nhy-?XazT&zCI9a`@oeBWDgg%iH-$s{`LmuRMy7PR;w zR-X2s?G0SdL~bU|zah(BwW*YIWv&0}EBVZ83%`@_7ua+0ZAOmy5)YDL&^zdKgHb7$ zBpuPqPPAJZ>R;`RJbl^-K$g!*AS@*4Y9{bwPhNwqCeu46)83&OuJy$PV-3k_#a|5Q zudR+lIB{ftwLa1hx0ppj6uMkb zofpk5#@oc~b}&Cg(MiV)Ki*$|q=&wsrHb8@*byqxf1ku|Pz4to1_1U=ILGjsR=1ptmz&U+l_-T%TsooVcRB)%wj z@Jm)!Qu=urPjk7Ea&$wlvr@yRhC;)z$uXiAoyEbnR_q0pWk!Bgd;brYnd4B3F^8Y~ z+F9mDjbbx3q2STU&nTmooCaojQ*91M`TClEUwnX(wA)vN3J09Q2FJ~Da($BzvEqw> zW~%Fk8DW?5O~L20@u#D4_7S&Z;?5f=m|rRfi;F4rl>_JTYTTcN5iXa?Z)futn>VA_ znB&7!3CDKRH0ikHW?e`-KkMbqg~UR64V|^++8jQc4%Da;uJwh-j_~hP(7#nE=OAz} zOBUhA8)>MWRn;VA{J0ri4cRSgbKU=#G+6gjIpB`Wj|9UlX=PcI!J-!Vz(-?qrzqZw zaJw1&LDidPztv|7;Nhn)almeEUS0(_xF_{1C-OGYc=A*^}JL&`j=KsiSgB+Zh zZKrIhb~w09gL{;EYJT*8LxHc;m}r-Czn&5Fy`lP7rP33+=zG^&>xeUj1e=bdA^+j5Py`+~o#P0pxA$3Vxw zx=rEwO|V$n+?_g)k=v0@Bb%gAE_U%BD@!j9eaV48GbM>DS0mxE1qQ7)shz|+T~!gy znOu9C>9Gjm#c2*APeK5bL5r&pb!`7o#UVbPc(bmODCn9KXZJ*%MB4DD8pPU+MY0U5 zH8c8+BW^(7mK~Nik2pNpxNT$TE32L!vTovv$x(pE`}6DOWJ+i4lmZ`!l1Ak&HzuI%iA;w@=#2z za!gKJwTX}=F0sz+T#eFM?Cg3+3 zZYP=Mm`ix1_Nz~Zn@^8E^Wo^YKD+#*Z&qi7uR>5{@}8`MgG14*Uc+Q`avEe~XbasD z!f*4_SI8$qVs%6IsVLnYO%N*DC-3U1j7&o9#`soO#{`ta;LR!oSe%&2FNtHm0*Pr2 z8Nz0;5IIpa==Jf^w*Ih0CsC}IW*Te0RNdhlspHce8Z>;LtLbFuDrkDNN|*bI=X7+o zche~uUiE>g;Ob=Mr>JdU;13)e8^Rq-AYg$ZF|k$<)ep92iCLV&B0(NfZl2p)d^Bsno;1neo%3E#1mrs-xOUQM|2;bU z(w^%Us_yZX>fHL$Uix%i3&&|bgN8E?a>p#wjSLQR73H92?To_$li$L|xVkAWW#l?| zOBw;!<=drcJ30`Kuy(KA>%?{#rHFg%-RAzrs);Zyj)9>Ef-UauvFh`saf1OW_n_E`|~%& zIFHE{Cn#ExvfM3fH-c>x7Q6IC7_w{TCdbTVrcH`i}o-?yf{ z7jL-WT!)(8y7YZ-SoPNQ9wAkqoN|FEBj?u8ZAvHMKz{rZdz|XD1U*Dn;${~?*yq0D zFsbaG;p(LPnD@uGG~~eSaCSRrZtw0`d#Xt^O9D;}s8_#1!tuoydl@)yJ=Y5Sr2}rN zvlLn}D)c-TPkfq4tbOno6X!?A7VF+64nO4Ms91;Sn1_GCZ^*}NH0FG5HuACjS144W z&Z!*@;2Sq)aU2V>saNvD{c4#bGbV(G2Z~;&!Rc(e@Sg-R8w(uw{6;Ir)`Y?U? z4`%6NMa1jtTi*~$5iwL4-rh!i^1qv+Zt8)~r1ftepPj-WDyvumtjVMImYj2a{toAM zm<;c~kdfA`@MM+x;x;C8at#;&IoJSpSE^e+jAAvAvPY?oYfu61)>xln8jm!sJqR0n zFBmNQu--+YPV(hbVh!2td}{ZBs~PGx!d^MOtrSXKcWU#EyO>fV!MAIRZBl!K-h~pK z1V-h9qy7`v+*Ah@ymaVt1UcRtzb4q0mvE;-ezOspVjKw0? zhw{(|mic~dJ$+)x;y^)20M&U_sK8ZP!J7S^4r+3DYD`byDCU7}7*DTzq=I9So;rfC z&&(?edJhW^1{4c*c=ekPAk5w$9 zR=n`BkaA#2cvhSCdQAJ{RdTy=%S#J&^g4}CjS%FrQ@I+gA4f)zE76EgISv{t=)VPg zSLF7b%@r08KWnM<7jCS@cpfBv{7|)pF%BIU>y%~HNm{iVh z)TA3_f2^`f#0}N%ZpV4%X|!ucqtm9m@!{<2w-nftQ2fyIQ5sYHN54-i*8BoNgkokK zq88i6^Dec=cWo=bwnbFRvUZiE^V;29UuJ0eGvV%<1+13z7;lF!@jUhkr5NM)oK^{w z-nlo)1$F$)Byy>fTpfxzTV$Ol7zuIdK4^)NaOC4~h}-q$idZ^4eSTu(HR-EUVyVl7 zYx+NJKpU;9W@d!D-uydxf(Ry;V-&d-=1M|G=rItK_@@j+{qnWldGBQq6N0uz| z`dP>_nJgQ5A|4;#`dmHOv{i#DhTyU?*I@XoK9ZNTnt~KbMC@%nf{tr{b6f=YC?{%b zc}RhwcxdCD@6+=(6JDJe2y$Yb^>v)}=~M+g-(N@>;s*XCkm-OgHuO#LIRJ~`mfN% zKkYv08QE60wgoRRc1Xj1CTecH;?|q{(bs3L@gs?hEG_!zh}G(R$L=^;-+OQsDRA6f zO!)d_<$la@@oap18#S;LSbGV`@CanT@ICIWKx$Y$ZkOspFh9O*E;GheH?6)5@Nu#m zE$Act-53#D%Trk!nz7LZ(cjZKA0Et*Z6FxbFOY6r=_JfuHAdPbq7k#|I5L7(`d5YNDK!n5eeU zU!m(o4EnEiQ&B*MYgE+Kh!sqO%XORoslgu7>`tJS!-_}Ny)byA97R6g@ z1smtgog2z5l6uFC^(}<0gh?91O68dR;lyrNQa2TCf)i>%VdM_66yW&P zR8n%%mcNSKWhf7~j1bx(=*#ygR7iEQ+<^J_a7LR*{8c_}J5Q$ud$7ClWg&?lVI3}0 z0~itFWgF<(;tpkT^k#2=H%8u~r4w3zYhFLz4mqN9ELYtB+%YP}M}Ea++qu+w*=K_5 z!xWvMb@atd1iQAXU6`mb)%bWjj#WM}RQSl~upFDvNoHi?kfSK-72!4>-fakO4~cg& z`>2P*q=ZR-tN+ZYHP8qTj zHrjmvo567d+k%m04>g!`Pe-V?B51*feUY?Vzgy6>`~5Nhh|y!6|Ec2|mOP=zVQG$G zM6%0CoLNK&?$@+5HB=zEImz1Mv+S68nTrTSdqydPqZC^_9oHDqM4`U#C2b74(emYb z_-N(v{MqU{#%J*(g$<8D!&Zwoy+(5Na*hRp8G-IJ9Nnq33}YQMV+W_dab%^CSFKad>&obn%r#Cdg_hF`Jof==@=*I9{YUS$p z5Kd?~qICNClLqkX-adZzX!y8>jiH5nryg7PuU|OF;d>~5fARMP)n6|7X$G1phe$Nz zbyimOz*iT3^0yP!NSckJ#0>kC7^AQz)6ulZJOdaeBKBZ~a7K{3&8O+BsXv(0*vp@6 z3)EUK2e6aO$j=9zs=^Y)kFFUvGDLrwTf1M$JEdhF(`yOaS*uG^xbRZ5Ct3pv`1%d3 zv0;d9n?~`UAE<+GHOCAhKFLUhgcf{fT9*$x_vmGLH);ng4YC^bE4N1CS8LVe{%%x= zqv~HS6<|i<}Iw#>TsOHICK{cr~bO_);^b;1t($;+wcL>hOcex#A6~Lg@xs%Jy z6XWmGvSSl^D0pP2c$2a_WlD+{dO3Je5Xemg50Cn6*z7c_GcY$i3<=~f<0%+)8Lz5% z7(FuBTaHa51v#ZT$4=d|qgS*B!|$gB-H$$H3l$!Y#=}Xkbc;l?ua|dr+2hSf+x0n; zlKhE>hp6%}zK8>NJJFWdG^ei9w>b{*$hVk1`#rS+bspU`-V`Vi9^N6}9S&nC741(n-LnaLZ3g8K&iUt z5nPeSE=uQJldl2ZNcCglX$$;4C%FgovGfxsy_FgjWavA4hd8tdze4Y&tZ|EhtHVTdG3CLS3En<(00VI65-Q;LW6x0uCS^1j)S zN4X{MY;dTYATe3j4|w6_>{8i5le%TQ6C;qsmGqB3*w;(k%&gp;$RBiqR@|h5#E%gt zK>MM)dH^BWF-#`Zs>y_ zaN4b{-QSyPMLL60Sb?PvDO=~ipkwNe)k@Q##ViNu)^O=*y`7Gt>fD!s=C1?Ug)Mxq z*8T|d^ZOSu4(y&Vv9gbuOcZ6oU`)f@PWB{jZk1unG2^4{3=vE_e9301s%j^TH9r<- z4)i?qzEfa^l{e@z4Lj$zc!wVvmxH-CJ`|T|+p<4KLwF@-blhNTUDp#p!y|PZlWcWA zc0X>{uGva^#hIBK4?Rmu%UrSVJO1;i?K)f5yxg%6md0zwB@4lB|BfR4W|s;@+SHKg z-fjMqy}X9cg;T`}9G!Vy{_N8xXCXPlM*FE{Yaem%`}7qmi^N^z zw)*|U?^3HY>pRkkQ=AY}EiRO7a^PK+A?F?=zU52em0gUGOdEdV9ykHW@&;sQgilUR z&V}M?VDr70_43x05jx;^xECwas@>_t7Zq2p&}|;)Z#IlZCytiHwTY!)pvoGl4nYz{ zh+}2>nvntN9a6d?BSRs#k%PWOj{ks0yFgUIsOO$@27~EW;)qZ=WH(2^(+PPUt4xHM znMsda=yIzfxp3T9MYE~f^s|rVIoY$o>kHc2dbO3Y6RVYVq`9y-rMeq zF7e5Stc~%xjIo9Mh1M)Q5jjtfj(Y(>4COuVcVAq73Pal>lkp!~4oo!vB#^5NCWkMV zKb~5NAhXOaT=j{PFI^K`<>|uH= zN6}b#qA(I^AN8`}U1D-sMRRq8$cr zeCJSlc-{wv3+D6x{^y9a#-TY@`x)L37`B&`Jl}?kJ$yF{TwiZ%lTx9DagrSQ7gwLH z^-UFadw@kUE1|^0{L#-$=ZX~5riT|2j`WNcSs=>e(>-(dE?kpmmXTNS{&5i;eK>k% zWgYoK7PelGE|gbbzRLy78+M$qGBY#$K&bJ&6sB0FXHO0QfQgN*9R-k!*bDQ-=lbK49qXL= z)A0I7wy$%(C^K`Y!;(5BXkfz3>_rJwP$0Hny`-hOzJH8;d$Sh&XwJL?mNd9=b8Q|9 zaxX*l{k@h*?TFROwG;bESP%jU-T97O7FlqTlap7|nS!f+j>Hi|Jm2@MhIfD0G4MG~ ze7-rVHTelXnTl>qYa5Ty2&QPRQ_8I!ePM{ewf2v)vLiL1i2$&N(uw| zJ<*xsRW9Q{{k_-Qe5M0y@*hp(!@=qS?c(|Pg!BG`OAZe7(LsYVM%ROBbgPA$AfAy? zo7uAB?Tl4yK!9K(V%)0|bCCJZDLS|A$Fp-0*%7+Cv48*m6()0V!1U%4u!42gNpoAg zrIVQl3*_VLWYD@Pt#pCXZ!jjm)i6@^GoFBlGxNNj^aRrXn_^ZXd7H7en9sXMscBi_Zl^6 z*x61$HTCUbho6IceZ%_=b#Cxafm9OKisv-jJkKcAmxS9c#5GWyC9-!ikR39+__ zW@BSv@mcXc4I@vgo+?zn?~Bb|yS_#I3FbymWScwThCaz>8fJ|uUT<@IY6+x-^9pRBRa!Giv*wc|#drWg&D z*F&G&^sWbMVC#;^HMP65w7Ka|G>mY|LC`zokfZge6afO!N`k4)#8iO(X+ENT^SpiY zjesFx4_O+v3CxX3P2!Z!HDm~TEe|Tt zCC_0;SZh8yPWIM&+2Qf2iyVIA0%UACA8beF+RMq3p8bj@-Cw=(Y;(4;DZK{o{hEZI zSFtr1KFher@lN=|@#$jY=?B-56emIN3r(|&JtsN+Ke^w2{nFKVS6fq~ZW1j8M+3`@ zL>vhiHLbC@lvMBMjScc{L~I`^;tZYismV;aJMQt0f0H7WG&10AMp$F$0Mkkb`*BAyD*_m{cfK ze-0Fb%0>^@z+fR6F3&Y)p%s?uVC{Br<|&aBDFn2m8K3ETd`nC`Mg=rG{evy7geVuQ zH)mp4Dw^(|HC|nUw#yiJ1Vlvzp(m#yxUr;RDsHQO*O&XWH@_uuq;enU5ix_NMcryp%?zVZ}1p4fQLNXCz&sPaelq0%HBKz9{Xx+Y=!N;y|FakaJ?(4_@>tE3s4d|xjMK~x?Ah-BpfTgJMDh>ac|FYH@7(b4@bk=5>g41{2U*!c0=Va)p$lVL2%YT5NGLP; z)MQNsX6P^3##Mg|Bv8;?=}(9dXomDQ>bOG%EsNXjfMm}7wxpzmU0!M}BhQFLwsGak zO+%r^=lYP$B>GyK1LED0o4cXXPlm#vkWv-L)o?+PzZ%1jnRf+J@2L*YM<%gvXO&csf`fwS2fKhtffUI8n?``i-Vi$LqfWK{fz~zjF&cS>o!rEalT0H?!g%0>LhTJ@l@I7<_ zf1yB|7+QkDPKE=R5GWm<^|Qw{6k+2nT~6pG_>kXWzi6B(c&sG)=N)_T=*cD_A)Z&$ z#p4H|xU66vMaZem&)-r9ZuS95KFFN~a0WU%=oHmox=Q=_luoRye4m*Muw4cfFC_(5 zCL|`cg1em(JuDleim)lri5&&fri*sM!ajxrp7yZhq$G9R2{&9DiN)14F38`Pv@&y8 z%1%xQ+Su)%D?mar2GpDE?LEd$Ur zM0S6_`ka;g?b|nmci(@^X4;{}6aIJy19xI%KWw4iq_2wXr48o~v$q}@gw-m}F4SGi z8J_UV#{2s|+%Wdzrsf}#>3MCd5vb18+5~kUM-#0jihk#!C)ohyUBeq zl$H4fV}_s@OV@Qg>+Om|`{it0yU(>~T0%k|Qdj)VHP+_)SgQ0olm4rc2!g^pi;Wj~CF?jxWU$@Pnsl0oaATAVph2aq&~) z2d4Rn*;xn~dHQ`wUEAfXjxUIW>iJw9SuNLEDBqeT>+PThR`%ranb^uHDaBMk~y1 zbPx?C7{biFo%~xF4Gm8Xg#9ekR8=oLyBZxTxkA=xVaR#{U*RGKj|YT)ePAW={1T`L z*UZb{Inhzs(y3@YN%G1drx~u!1>l~~hVp$RCJr6V9M+#@6sI2N3=EE5r+|+C4e_g| zrzdkL0m4=P_FRh#PRdLNhKNv1G;N90<6) zOMm724c^cte z@jaLxT;YGz9~(C~;@@HYH$WGwu9U*bJgeDrC^aU92Smr7FWAE#{H3I%<{1o$ib{65 zWaFvH_^e0tKzIDxNEY_9l%Q>9m@ah$>@`LDlQ_hiFUuMRYb?`mU$naOXFynuPq#Qh z25v4ZsVUwBV-`N%Qk3WfJS~j-&z|>!8NN~uHoOVOGxDL~;Z-NwJt#ne1(e`!+?Q%p zcDP?2%p}K>@m+!O1qJv>VnQnHt{UqsvNYsR;;t_@G@z0+U*$O{xDE$lX2M!6e;vy!2HHkF)h~m_GJT)~eEp@d%O(zj= zyov7Z?QN`>#)MI~f1G{l=H_E9?pH@I3?|&#kpUuvF0?+)KAeCX$%Qk$();h1gnD|J zQ%tH(3n z@^42P3QUxlhlgG&m$xy%JDm)pWJJJrMZ1@W`(rC+Hvrt22J%H6(kz3#ZElHNk1soB zcz4J4aFlK)G%>OMJq<3}Pz@#wXsIZD%!I;kB7*souOutk&ieifW@J3LTqMu zC3BVK8#oi*`)cEgk?cs;;qsXA5jZ2Csh0on<{38(*Q7rN$M@7{wKU#LC=uQUjtP2d zkLa{}&$whnDUH?hDJo)xgG4F%Cp+sPp7VF!W%@W`4N?S(yJ>RZuE_38Yw0s(A zxIXTeF!Is+A7GeQk$}JMn^&!kF0`QWM(Fy&qET@n8$TThe^vootm%goqY9%WlS+kZ zl5qIn$LniG<#hgYSIDoX&I=t_G#agC5$37<5+qcgI-z|~NtJI!QOH!r(cg{s zsAxlM&mwY}KxB%#3C0{hsLH(?*00^v&_L8pOZoAxnmu#5{r<}dmx-!ZZ=~>vQS_r8 zVjLnJ-U3^ENLNZ>7w3g-<=pP+$;pB1Ae}EHH3<#>g2!)$2g+;v2 zQ`yxn>>;pjv9J3taaI&BEHH;O;oxyl52PN>7voy|65AKNyIX-RKiWln8EGF*qSba30?ilGF2M_EHd+BR*oIP8BBfx0@&umUL-df65%pa5Sb61`84 z{mn@%?AO{gqqv7hqZqEtRg;kT90;jV16KylgA^RQ6nF^ASr4kh{%uogs#a=hdQ4&g z)dpzaaS>eI+)!V>ObRI}^&nwSfsKzFP=MZQYHGCdoGJMFk+u80yMxNGoRUaXytR^2 zqC5B=J**8KV8E#hJCoGz5hd4r58wPcQKv0p|uJ6R6>yu56auv~dPUj>x~BR7cDhWynr zx(e0<;gZX5-}3FdIWul){7Wt1$9HAa>zq9J5%703T6WfNd|~nPb8x0a_!BzHKqaU0 zU}N6I0AWjop8wrN1U0Mng&HBv?C)^+M!8Y?{wki!?$}9;5i^<7)h!J&@Yl)b{%cuV z7o4WKigRuzS3~2J6Y=xAfq3M!f>J4|6EZ2$%V`%?HMKeV;hM`j%@0-3ZE3Li0f*prl#h4XlMw#T<6+T zLvggCh*iF&fAf-d19MlC7S_36OD@m>RaHB#xp0w+)A}!s>Yo;7|B(UJ3PH27iZDwO z5wHD^9t!^+&eNMK4rvRUv$!a>HA|apikJ?}KsW2(iZ1Ln)_3nzRaITd!p?*N5;SVG zzIl!;&yB&iV2L=f9usp_#mdqFKH{wpOuQ%?$S!FMkzAkFkpl8TOFnnnjjh_t{?wrL zJi{s*OUz&3ga~Z%a*o5LevhNGO|9{|iw867!|*y->A0q=tswx0U_Xlpt~C_U<&rfs zvkP(g&O@|h3l=&bA#r~{`-}S5n&f>1<8sH--60v?F=baL0V@lO4t2P=B-q>zZ{kIB zUG088@wvYut6-8t!yAmg{|J%?Zhm*_YBO#;eV9`%FT#wVE1sLq8W(rx*{i>g!{SH^ z*2fUBAI)HY{MX)n`o^`zKokmsa-ZvM=A0pm0$u37CAqoAHnyn)ReNrK*Zd>6t}^{q z3+C=l5>y6AhTo6}=$=|hd;#O}KXAEVnxh#3i_uHT?;pC3|9k6ji1B=lwG>3fz{seg zly?#|0R8MM>hP6|L2y?FHVO7Nx&i{l#S5fY-tBlW7%kcx;Uz4H6DJi1SQj7g-;<~F z+wFou{WUROayrISD(;3BJe04^!k-mv@h$@T4P5u7A8$PLDULe8mSKXlyQ;jVRa;kg zElrj|IqOwTnX&}h(Frz+ea9`zj&m(9o$*^dKE$qm7-ZN;R#+TH-B0?a9BdYI3d}Vc zr7Fk9_?^IYeXA&d*N%lKav364w9gMX(-tv&3`y_cK|7kg;ZvffHOfUQQR#c>k7485y9V zz~0Y@TJ#sa8xFW{3~c?S;A2?U}6G`kOEyTs+-69kd9 zX~Cx;c1ZPHrr|;{(!1Y8WZXHDti2=eGNk zA{=LQwCwpm!=LrRR!(`A{6Bdt7d`!t47jGv;eLR<-CN3UP;_5WF={dY4F^&aaB`&a z?Ze-0hb0OVQuqxq=lRlcA!?lG)z;wnllW9F8(2hCyxJyYiA)5UpVOJkMEK}yfjzUr zWLEiaX>V$W?NoL^9FYTZ@jHr(sHEc0_f?niw^9=DQAcwj?HKs8E_fZKpo<>W(vomI z;^+LXy@^e#uh7|o!wqWc0AD*~VC_Ew0UtY@B?MQasKk3p66fu7?Y_LcJTV&W0o*cL z4~x5!TT10=9jxnvMZ5guGtL8NT9na@rl*fw^NtFp{LWca0@3$0s+EC@+jl;i zi}W^ z-+i|V?%|+&SUL5VzFu}27o_b$;oNMe_{g4XH6a{JWmlrEMu>zE@E2^;TZa7DnKU=n zGj#auCJrw{8f}Z6d!YiWzDVw_t{2~vS%<|NG1EXAIST&v0)oF@S7%F&r-sx;=oID( zbTxudp8*&djf-1__ex8B=#c?dj#F*7ljQ}lT@b9bNwC9WbQ;T+?kU}v7CL<2a|mV+ zcP#f+Ff-Rw9QyCE8CTBCp1fqF(aguAi?`|yOV;IqgQ@I~5313hwuLYw$6niy5$lec z_SSDUtP?=Z7}w5NCKyne3P$zD#>R5)?ta#8VN(byxa^E@8(;ZLK#YGH$~c>sU~xA3 zA8ASo3j6q@nj9qwy1Tr7TFK+TwxMuyqJ<5Tk*GjKZAoU%J}#w*R8C0(D76uG-J&f zsi`qvzKjOn31L%-VE%V0f~P--@dignrS&FCn{SJ_ER^_DE>L9Sw|BFa=2H_ArdDD% z=P`g#5L=o6*M?kO?(F1gi~o$@O64gm1!(FU8|AUEEG7@@=k$YTN;N>sqK62sq|G|c zR0;FlKkZ<}Ii;+O*=j$c)6hQ7e~ zGR=5y4II2*$^&~;nBu6?+!fapcb+!J_YyhBr3Nw$fq>o2Rm1++fF#>b!qG!Ri-r(S z>+PXaJD90}P|PV+Fgf0%fXR`LnVDHXMd4Qk7y<+#!zI{d%woLbMi}^e%K1*p1CZh1 z;Ba{TdI($)(fzMu0&MSA>%A{=2DW8$U())vGiVZlNoW56s?~TBdo#i_j+3fCoJ8nJ z7gyAOarVycn1vE--7DVrJotz0NxYsRt^y# z89eKWNO&8?E{jhs?5^PWc=yHL>GP_!dJwp3>Ck=i@dcpS(e@z{mize+(Zn*?YHn+f zgCrmpcnVFZA@Zl;vaF{E-hd|s9u7J!CXi#vd$7GsQdwdxYBC8nEEk_enqaOTAYHL} z=J**Z%j>ieQqfOsaB4jo8R^^(xa$Ve68y&T_S+;EFqW53$Lb#hAxx*AAjCR5v)tSJ zqQjEc8l7)wEGzG@1)Oq7Ky@mpcoAq3{IepKmdF7m9*U7Yerge|CkhSvywp$( z2E{a7?Zz>-pXa_|-%FE9_AkAIbsE)4*?*)_e6fDgRDcGt4r_yg2b+Dz|5oXKc;$ux zDDB6}9=W0fDo4nm2F3xLlZsfzum?2|CmTO)zt(@)q<)s+Vs#?`Hxpj|d=U?QQCf1K zi}#>F(f{kesI6K6hTSaCXcU#i)y zR_y9Go<#VC87;poDD=R^VMXjRg=Kt()2)Ok(QQ2XcRqtFzgc$xV7_Yo#lL$$+Vp^M zr!l1Go7n4?n%24LqiE0eKb#QAE(Ltxa2DadP^_Kx!QX(|+wWq6YtBX;R9U`Mp1#eMd4C&G8@YU z3=)?WqX^1L|96Jm4wqItD3vn=Q_Bv+q%>4Ct|M&}K;3lDILT0pJIjQp^ik%D(3 zSJIC8gP|Sw$kZ`87#+wrjuN5Wdq15%e5h(V?-zTrXiQQFg+CCDLS-Y>!O|2HH5ijb z{$Wh`^cSd9#_V2u*|U-5xHGcv>~gN6fox-IJIlj8X*xBD2rn`>%_jw;s(qP=>shZ$ zGZ^A<5kqm~by#qK|9raUg!~`&7~|tVzNaxJ18%}KPvwzvuJMetyu5nV1vV>N4xHI2 zu!~{fG-hh5)zEhG?%rv;hvV<+|FphWN37-~y4=c0d^|j(mbN0?MI{Xmt3F@j;>=S> zaLu&Brl(2&1-)?jA{l<5r-cmSH)i0dITT$-M_F1rmg+1Um=pwLBzr=B)HWyK0rPoG zL-FC%{x_ZX3oP2^<}GH4!5}uG+5T^6xDIT;*LFIj%+23$_Cag)Q!=u$i3I9k|ou(_4o>%bjxZ`AF|xLSmd`=V^eWwPhx-x_n#>$8Nvg?Wc(kQt$(!;ieD>txV=yVV&tYfflaN z$ug}}U9|5h>7i12Wbz-1WF^qh@y;&xiEeLq4SfHTNe3`MV&HVN>KDeGKM{fH7lExI zxSc0QM-S_uhyqo?ryb0hEd^HGcwDe9L(U>obMq$rBJhGlKqMQ&Jv_k-%CG4U4%2(U z$MLBoB08FPjHE;Y7u*tgbfi%H{rlid?(Pmd_u}FrJ-qjtZdW%|EFi}J#<9H=Rarir z89d3j5@Q20Cg2m*T zfflX$6_b*~WAhBvFGeIbu6p-+($e<{<07?BUqB#xH8H>fESOs8qelren?Zc&&PHqa zHVgpJEoEWis+H~g8&DzZkyM^2%lzZV%6OMZ<(Ty$@%)~xPCd) zutmLQ(t%Kl7RC#T=45+p|DY13_d-51_$Zv9cW6oSK&x7PcFK4%XobkO7AKFzmaP z$i~Cy-sihIEbon7c7n*RG}?NE+JN}G9!Ic{(J1)cdeTA(#!uG4Nhf+)d~hy!?@!fw zugl4*RzulWsl18&KVW0`=x?yMo!r>UmyYVH2Tt#x^re(ixSb;>wzdYpz4-WwURz6x zob+YFKn)E14M+Yb&BP({+CK1{aQ*n6UutT?x)X;DOC2$6Y;3YgbRUzL5 z6xOA^2HzpAluB;FoA(*#??CEae#$NJucx0c$`AnAdK z$LNPw&EfiCMxIeo7`jt7J@9W--ss}4q9wTEv7BV5bE44GlfPKg#mE@*?9h zhJA>K{v<)_=G3&YNe{R@Xw^#}Rb=GcYl#Un8UPtSkvd;o$S<(=F{sX+-+o^{Lux{6 zQ@hu4G6=Fkk!y!@paXLyH4p>J_3spWbxw>1yaUYc(VKZ#e048PJ18T{_nab&9x0FbhHeV&z$WINMh);f?6Yy z6-As-aPTEAGZP)ol*(Y(TUXaK8B5I8qJ4OD)R61RMMtLyhWe<>U{st|&5QS0Sy@BC zyGZ&g7d|?=#MbJ650{lbh9}Ef-mGniU%7fxc`OE8c1+2^WQ?9F!S<{)qQNDYz$-vq z{~#=9TMOM;b-Kdh0>8feC1AI_@lV*rg=!{TwKc#3Y$p5GyRqzN6?ENZw!sNBaLqC$ zHf4!&nb<&+(`HcobQHMVq!keqn_PZhLqr4Jt`{slYli4?B9AUG40ISd1YV30gk z+*+45|1aYM9Q-@niwl4_7yhM7-L(+dytz_%Jf2_-7jOh1IUJ585>6A6Wl2LsGf$ic zuDfoj+j_cZh2ut!9N7mKw6}Kz3JR9EZ4qt91tf%fT=3LW&(X+{BZ9IlaYTvP+FfB--OIh(yA&Ta~Awp~=X|NCP4=(`bc~mNru~Hy;%)q#9*pq#2ff2LM=h zc82Um<%vnABSvcK4A~Sk$ho1+pFh`dCb%O-)Di!Po2{ zTzcunhNfvf^a21SKYy{dXU{vX=rwQNY@zFhN<<(@Ov=vA0Jr{~tFQh$y{ju|_wTr- zm+9Z>L$8bs*Zv(^vg8`Qv$M-%;y9L_ohiHZ@6^{f(SZYpC}9RMAKb(RsUGVH?d7o?@lFaRuEz%U~t z&9y_Xx%sFK7XWISrWO>q+o;XWM@434x{2c;AzX0q;NdfHL3?{g0ywTg%$Z}y1wx)R zE6Wv*+qdsMxbep2T1!joP;r5gk&!0JvdqjHUCOLknMOlH)1dTv`|bUdpT9(JYislL z;<$9zPS8XzDUSVEYj5vROeYOyWTdGVUp&`vqqj9TA2s^o0->g-yTb*$cfStv=Ec0I zrb7=?Q)kFUMY+aXZ@ujb7i4CpNt|1_0Mv|(G~U=aIDE#nY^jPU zN-w=Q=dN*FWo2z2|Beu1NI1^&?-+*RU$Md+j@z_pn~{{1)I%>_H&nM3ViLLjA1_9V UmBksQ6aWAK07*qoM6N<$g5}z1-~a#s diff --git a/assets/email.png b/assets/email.png deleted file mode 100644 index 6015d569f0ced4176639f69f61248b39ca879020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20121 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 TowrHi`N{008<31^@s6dFKJJ00006VoOIv0RI60 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�&EW*? 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%0AvjW@S0|dXx*UwJysl3*THy$+2U{2wacpkNr=k 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 diff --git a/assets/fonts/MyMMUnicodeUniversal.ttf b/assets/fonts/MyMMUnicodeUniversal.ttf deleted file mode 100644 index 128085b7ae4ec55f53536b40e9743db04fd60ef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98376 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⁣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 Cjs&m( diff --git a/assets/fonts/OpenSans-Regular.ttf b/assets/fonts/OpenSans-Regular.ttf deleted file mode 100644 index 29bfd35a2bfdd92b6e8b4ec2970f4d1eebf49357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96932 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

_T_kl)Xoan=RX{3lY#VQTZ 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 diff --git a/assets/fonts/Work_Sans/WorkSans-Black.ttf b/assets/fonts/Work_Sans/WorkSans-Black.ttf deleted file mode 100755 index 3f972d17679c7a7c27053df671ebb184be7ba1b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139644 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

kuJoqaQ&TmSZj)B2`Suc4*^`aZKUUaL}OSz+Z z$#_&R8BeK~yjAKYBg%ToJ6Ytw>i%I_hP`N>;1Vy+|KT1?Za5>Vhz$IO&2l1Wy58svE!;R8+h#-3oi^5RnaPMFT z9kj9hbYN#T(izaXuD!3VzhiLifP4<06o<}jGfNlBZ^l)tJ4Z%)2M1iS%@>b-sZ21V zZJzCe*lp1Kk=qK~_+d;}bPkX7cGGJwB}?4-j&%0-I%6w+RZy;8LUfTS{Ffjrs(P}FOIB+KAg zy%wkyvCAtatuiUIZOWvyS=DQ{@}7=BZNtNZYgZ4+{Id(~-tt-Yf%>YzOTMDsRo@gU zZ>ZPQH~Gq&6@#Na%H8Ur4kdQp%t{^Y5BfS~)V!HW4f19x=pnCEsc~Lu866{Rh^~O5 zl1AREAM)KF>~0UGrS1=9@t4I0gc+D7F>aE%IucS?DLBVq~?1*kONVQjI^#dF6Uk zrk3+D$Zak=-_KWAW%7<{FSNVeDtbv-POA8dIvf>*U_mVaJaL(mq4tu z!}-zJ(bkPUADwWWZBX7gACZ9o5mkyH@O~_ zZgM_)Rk`kJop;2igIE@HUji<|vb)r)57~#HjGq!v!zIm+|I^vE^|nz&;a%V2+?qg| z6j&(ZP8?Eu)(wcJF1V??>y0U);G_xcwp?~&C){rZBp!J|sw}}DsD$_lXH!50p{kEO z@>q@Gp2Id}nNLlQyMNt_qW+h`du@wrSJ&O)UUW_&DgEz_U~|K{vYPQyZ`JS*EsxH zPYE(Md@m4!=EH5#-S8<@jDF7Jf6&`)xoH&&WCUcmvath)-O#bgR3yS}n^H=21l?*; zX719?ygA}}ZEx+eUyuc>>kDeN`~uYjOHh@yY7mIH2Z}m0kE(u2&;qwFF!EN*7cin5 z3I6Ww5H*6^Mp#>9Z85Y$JodsOvm6AHjF!I@1U99W@C0Rw5e&+@EuXT|p`3JJen4hu zQ$|VHB|33-(-GX#o1EV%8+vU@mkOwNMOSn&cD#@+!mU+5Y+2D-;L8B5^@~25EOx3t zvrSn=LvDEocW7v8awtkif>Y^4l-k@TvyJ&FTe4|L2{v-nZQsZkn}EQ~dKfSyY-l6% zYG-KFa6P9~NXQ;m`^g{ajbfHzf(wsB;dN!i3!#}ZEM}901tSMmQo1OkMsJGIdvvE+ z^g`#vwY{CjI7p$C*wen5FS8`K3({sg+fKAkEl4q@=+CM zSw5!X97{{ZLo6Rxah~N9DjsHeT!Dxl^^^-ivJ@3E-{9S0Q)y4*Ow#yiud%$RaV}}R z(rY}b3>q&#n2S%s#iKAyz(tk?xXAJtTx2QXBFkC0$g&6*SK?5kZpTh^;8H%Vc9Op1?L}B3=*Nj54Z9PK5u9Krq_0kSwq{Lnlgc z)|~cyBr;yZr}vU`ck?q!oYeN>L%(EtcjpA8ngh+_dSm7XeZ(}DWHo-qoGu}7Y5V}dj0u#WkdsDz)xVw+X<=PY&7~g; z98RQpq-4y88RaszFcx(Genj#x%e@mL<%S(eX*cR1m!;guf*uA)0C)C@U=p&sT#l-i z#0<;u3qsF=@eY^-hH%EsAd7(hEMf}h!yT4j#0Z^>+6cVkxZ+fKdoBdUbIgIj?Af_K z2eJlgp4ZisN0ty`SvGkxUagv@j2-ARYOMPeQNsbt7WXSL*lo&lMU>8?DLKM>3w3vV zg|fdgu+gS7eGA;d(u91*-|6CDDVLBHD$Lq4vU@G4#1-=}_Tbs18moD`x}H>P^q}iL z%sEBX@}OnkppK%`mi_P@Z)vx$8_5|^8BdAhebamj#v zI8~u%u@_&sNBw!ET|9S>P6G3yqEiqn%$f&Y#WK#u0Z%U}4o6x6trygeVKkt;48>&S z6}5why+CO}(KV}#@ldnI7*;MahLv^3u(H9Jb5LGo3@fiOh83SNtOSg4ppjWt{p`U4u zp`UAwp>TF~3D_?p?)y5*s<^Cm%QJ z;Vz#N7wTgx`Lmf5Ihi?<$>#f28#ym^DsvonN$ILl=jN0#X^i21mmGH-25i!~Y1EUK zu1gz@c-FkSic8t6ew^+!;yEt;lK%>~3)io^J Vnlj(ucxh1XP5sCz{udQ~{sV}2MHv79 diff --git a/assets/fonts/Work_Sans/WorkSans-Bold.ttf b/assets/fonts/Work_Sans/WorkSans-Bold.ttf deleted file mode 100755 index 7718ada05b0603334401dae383b9d36e29bbf95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143920 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

u#&; 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%0De(E9Jj=! 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 diff --git a/assets/fonts/Work_Sans/WorkSans-Light.ttf b/assets/fonts/Work_Sans/WorkSans-Light.ttf deleted file mode 100755 index 8b03227504ea1c6562d074dd3df1da05863523e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136980 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

Z%~M)WX`#}lQ)!KqR!Z9|?W(j?>8VNwC>^47J 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 h%9+)M7*zp&Pn=D!-JGt9WiQ^quYVan8V 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 z zOhC*uoC(T`a~(tT+%ySKpbf$YXoHgE{tNKL*%$#$+Lm3lSOl zE8woHpkxKFfnb;t!!grjgn?kB(x8RWw^AEAAI%k{FX&lfVL@ok!?|*CkwvZ}g;HE_ z20@KBRdDbe!)Ax->PObD9jUKf65X$=Y>MgiTvKSZ zIU1Yg{mVixTQ_-G=+b_9ozvJ6;kh-UD@D5`l#Pb=(@_F;?1EG5#r%`prruQ(2ZKdF zk;O-ZfDKegPr$Gi&9b>ElM?E%Xp#w=VS+lgf&+K+vd))mR?NWE2xxB*CUA`pssM~F^ zl$XP8zO~!kpQ>K!?k#ZR5x%GPyL&C}9o05lRh7+Fjef`k)9g{$hI}SyVXu}ez(-zg zj!CD6zoqENaCrb)uAuFf@3fpSm1tP4CRGGEV&L}6Dl7MeH#f*>#u)B!mi&fG2O#L{ z;3iW&T+$TY>n!hcZd~5fG@4eEP+`H3O~Xx&BB%XXr-MaY)f6=^4;&Wn2(V@vO<|sQyV5hlpT+s*li5A&Bk{L@j14Yj5|anO4pR<~ zG*Fp?s1%3RbR4jg;qVA-GuZyay$GE{2gwGWJNj>tV;|QE0l0z4D$5tXc;?9!JQ!4y zqKl*m$4YMW4rA>Yos8RO8A+GW9)(o_O;>4I=vY@+{DC96VI7s4^tgzWwDQoLD{n~( zYp+tL$44X^#eE$|Iz7K_ZVirTkLhHp&Tlrig@kv+5PT7zsvYaMNT^_!Nqp;QQkM*f zz>+Pth(RIH3JgLFQYk3++_T`t&nUFy+_Odb=5H^|G8f0viV$30L=g-MFeFF}A@2b` zJb~atOF?o8-H0oS{enAWCD$NQYl?+nI41}WfmOV(5OnG5mqD%mHyhykU#c73cf~oK z&I)IFSxHf$-5MEdNQ;a`#Mp4)KOXRFj(uuY@uN9mLpt7j=bTU>o%vM&3}AcmI11K= z%Fm7mq@*Uc*H&iKWZ1hcrRDabJW-*%dm<^;HtOzL8PgY0RA6(fQsvLw5UEJYNiyjh zJy#{?=(6Hs+WJ$Hit^HpmN-RlLS9mX!JbmMw4k*;8?DSuuw(}{WMpURl~LLGvh}+7 z^1K8ucN8!pT*g2`lin>b5rnsJs|rjC#dOFf;a|dQiU(ksS*&vSI(7)Ib)c|Sau@+KipJeD4@ zwqpf&`j`GfgAvJxM{SYB&e}A9Yv18)E?wX2yL$d{* zjE94{+(`{@a_k=Zd-8 zH^0L&opp}MNk^U2kFEW1bnFkF8$jojVc%0?-wO~oiA49PvF8+H&j}DWzel(`1GqbX zG44(?XrYyp0GkyEYy%YM+8rUDBHZn>?Zy@f)D?RUB%X$wz~6#|ypQ%2t{-grR&h&c zx5L$4I62hRFqBpk=gxno$ZjuUc|{JkR998hJQ6rE5_YY_Tov-OaBX#A)9Rp+5qTNV zxK;kkx{UB2%dMH7OS_C2;XmMG9tk|x@ZU?PG(_#_AK9boX%bmuN6cm8y^~SBfo_Yl zJMy*Y7n%5Y^o`0UyR#wao1KI6bV_rB$?9mYm*|x8+OiVBPvYzz(e;1rUUVcP>7K_6 z!u#s9nQ@8~Q)7hr*85V!du#DCJk@mmy$HIcSQn1}19-&Yw`b;C+weC=c%-k)JIiwgK>n4j<(I<$pgO`OTw`j&|bj539FtUw!eGDwn%*3zJt69;xVL zg%eAGN8qRx2$$NW2TYs)|Gk@^GX53f;s5%*+g#;NcbhDo<`TEnn#UAThgZbMT8GQp zMq>Ix?fI6Hm=ymfuZ@a`&rC3An>ieQnNFw{ zC0a5A>$0;m(v-?9^Mbuw1wg9eYYwq2XfI;*f$%!|mHQAAXeUz6h2EoZTA<()Sz;)u z>U`CvbY%PYzW2SMr=EIhCi}#OtyyB$)(t1-HzgUH_~Yodq0q=$)zd(mEfXHnybGeWZ+A9c+?GG21 zJ-8qoC-md|TIQp`kb6sH4TgiC#TvFz;JXJ97s9I+!dki3lTrIOPc-}Zg!hNo0?iAs zb2Mq5=lUKZwH?x|LAylAn(h>n*z;(iB$<#Jg<}<_wTt9@khjUiCQw6MGQm(^B$Alq z(X+QGv30$k-}G`mj&1fH@KGngW4qEPFP*nvL0vZX5Ni=P&(#Hp;-sO7YPtxHAea+n zQe9+K0qF19IZ-QU@oZBc$RC;<|3Cy zmz%3$U*-;0j82p_mKH_j4pdYO=9V;-6)BkKC6~?aQWO*x7ic5#a&DR3UPdDY-s2wj zw0KHLAng^b4`}Y;XaNUFa6`m-Afk*6Me(}_Gsz(B7CHYOdh76!##teAUfkU^Um6L=zUSBz(?BGg9E7`3WhDF0S1l& z1_%z2#CQP0)4QJLu)qYTunl-~0=)8C$=WdvEn~t8I)E+qt&`{i{y(SJojz9x+9w54 z<3LEB>_pA5XFHqt^bkM}*__bd)UdUHzVqrE(Yh2ho&@#*i(E=)i{#lqvJ%)D%f%ag zYjNJz3}q&>Pgx24)=Fhkvlp;~p!@?f4O)N6Ozrudm|x1+W{leYczccQKdu8~x^aO9ZQ!Dq7%~W<$e6A>apOz`19De4K;K3b^!z zrZgQHM}Us0F}PrT%J7vnCA!kd6X*uKD{lPiSNmKry+b8)=eJ0Hegj*F9IX;F2jfec zdNFKU+54VP3wjE6-Bb2H3oGa?*vY2%cCKFCxwm6t0>VVn**YZ_fbL6x6;_q2Tm@K< z#l$8lMC`*Pf+OFG0D5eIlKVZv-9COR*Y`CflA}3V18IwVv&}7QX(KdZBUH{WXLfww z{);PC6*7_qZoFDZOvVrvtE;9fP9fv*PELC|OjnhhyfFrXGJ zl3*)I?Ft!v|iX&q1SJVr>Uuc}!ue}5AY4VOZTk$oA z{;VmOn+gUxsT_1tG2oWdW(eTh1=Rl13S|BPevG6pz85$a@3iv=KF@F2 z#~{{z(EHqTz3^y%OAp`?ls|M4T;eyr<~YC_ap5>H*ZPVL8!Fbb&o*r;-n5Cz>jW$p*r~ixDJTJkSZ;|IWQJ!DHr zkA#7-Jm`)+fU8AY*mrK5F1w{AbWKRhEoIY($^yj7E34bb)^-nge#pwkTGo!WSMSGS zW5Tr1A#TPAB%b7DQ4s)WRv#A)NgsSVk@pG`_APR&sftlT%R4#~VP;S-_n!eW$Yuvw zD~XL%;z;E3z$kO$yEX4NlnrjEb;!py?7hT~{dDh!vB1K{iQ%#aJZdyY2aZNYliiSI z_MhTU#oN$F$e$H(t4WQ33usm=hjqhQEzo4pkww5v1M3*6W)Og86^Lr~@s-^@`>WeW zCtJs;qXRvYqwS*cw$gyIL(^q9wS}w+ZM#XL=_iCiaZ((nbH6Junp}#81)=j|eIyfW zadJVmxJOY87xg|#XP}9eIu&V0a+IMTM zQGuiE&5e66_KS`j4UD$cqW3iw!)qD~<(OjBkUsl`_#)seN{DqK-bipDVpyYoIM)#x zlWB^vH_CNsbZS5)w65e3NxwL~xL-_DJ>Pp)=J_G@o|nHHeZ9!n*H|SWIG%94SPxD7 z+8~H}(N_U|#jr2b#f{aesjqtUP@cy73Li#xtSHnDA#Q-2ZKBB?->~;$f9hG36`g&z zs_GS*SHFw*ZXA;rHm(`2KyTlzwV|IH%=7p7Ji}@-B2b#=FnE8hg^l2%dFDvE1(;VM zM6oCtaeTB!eugrVvldl=oT5vy9b>JSU_f#=pnG((X8=kTu_2gZ0{K!bft%Vw*GOZ$ z6>vVo;T*m|RZ&zyy)qn%SLAus4V?Ez?M7e)(@679IAP@&NaBc&JhThmxd+U+(>;F!u%BCw*(zojH(l(!-K>C0&|@< zKF*KTQXF2tMMFS<(Nb1)7O0;+4jlAlxqR|_S58(pdG<9{Pp<5h#-(@FWNibRX`(w~ zp#(DaBdx)~tw-$MVX{d-!7c#4ne7mtm$}i-fJarNE2&417eXI7%mK}AC+?MmccSI& zuSaZNXgpWZt5)?&poz9rH}SUM4xcrC$Fr{q0(@Err{FQy11=G_mlJv$KwYwKZZ8)h zgr|{uUhE>&9-#aEmdeU4b#?qRc$ZY0-qcxoO7B|6)ADC zs5m@L@(JoYq|p8mpyNJ`u>?3R9&7piwyLUab#?qRuPH05DNp)bRDVx)YhGS!w)82% zpbqQY3N;TI#ulf$yv(Q|QOANI0td^U^>gcH~Wp|r8%Rs2b9N$2@+ zzHn)2?CC&H_GqxC2O&$Iq!IjF?k9&NmnfzvFxLzyDUW^b31o*o&r)%1tle{*V1sm z_P)N`hlURK^&K9nS?_YKuaQ0%wV}s7U0XZtc5ke!+vrAv$S?oj(4IRM!H1P~u`cNR z*3+lw0Y0|#@0|@F-uHj?t2f^8Y}+kfm7o_N_c>| zMC-&~@O+ErQZl6c%DHrl*PmV|+B|7gTsu4I;j(<~0WL3ml(l64 z3P)a%(T2znUAe)kt z(~`kpG9hx$T)4#oyWMxlx6bjGHF64QhxS?{#op`gUp6hT3MkC7=HyhZD|2mWVQ~*6 zt7H}Kx}A4*)g{C!;$re06|T4KV-*$Sj@HxPFjPeNsV3@0_(mkV9pSOBuqTYPJT@?J zpKK@fs{`*o%-@w0uEzSqxtmUUd_9p(y7yR0+K@PwS{@$2A9PWtzPy-C;XRa5GV79E zjj<^f8rYC4R23`+1?T61uApNbh4i*z=Ky;pNDL+?NrC+#EHDtm1cfKAumD8stl|g8yUa3qyN4Q zYmRoRQ_KeA_|rT0KEKZM>2P;xmAlxf49esDKGKss1v~O1@MBVdJpmqhN(ysG*Crt> zh+A(!lZw=*IU1HW!#SlmlgVK-6__mP#w?v}su_7U!_hT4^xWWY$#`b*EcY3a0{LJvJcDb^vQg zPm9nWTn&F787h)@&!Q1)muz3Ue)qoJENN6cc6tD|jguo|q}MI^-2KQ)Q`m)0S6fcD zRs(@1wm7i(Ax(x5ncNA1zeDU}5J2E0%jFQ0d8t$E4{9~h9BRATW=6!8G`(V;It}3m zeu*meNyx%Qj4ZJ+X>8MUbD}0pwwZG2vvX9NoK#d$P*jp^vyFE5&>7Q@ z`x^H3I~#Cy)8ks^A4ry#SmBUfO~%gHpQlg_tp!PrsQx%pKrL8{U_Xg< zZU*avLt>Khv^u(wdZdsAldHdDt;vOC!Rc}&C__1ylUAFok4`B>_mOlOYR$gitT8Y! zFgY+eGA4%H_bY;df*D_hRt?y+h;&6B8jL!azeHNNIwGqYZ5e0r?2+aG7FzGD4`l(( zt4d?Um@=`~^H&yL?0Mp*{`8;xB)$J8R{wy@CDGCj_*=UJb3k!?z}+Q{NVEdpTD{A$ zONv$(x;Tu_LK_?jrSYM*+_rqQrFC?))nv7r(yaw1Rx{MtI5^nYG}uyLG8It5c$5ME zzK=R%g%qK}7vYP{018EB^=}04DVbmiZNvu*Ka$brmIUydoV+=Z_6!i#E z@;DsWB^?t92w*dyfz5zUEO?lm{=IQSb^ift=E0$lnA zZ9un?(baN!OGHI|l_ID%DDt1zmsiyvv~N&nh)T8Y8Pk|un}Ai4z?MTE{s#0M;PaOO zm9u&h(9ijEKxcRqY941xCez{Q%bq=Ybo}+9U$W&a&GRPP*mkkbEmaf4+*AwxsHz81PcQ#KZW*k|1V6XRD5-zu7(ShCqV2G5-tp*m1mTDRue&0rcX~#@15SWYv=ZDTQ;woSUJA5zqAAj z`308z+^k5QIZ|uY7DUIAvNcR*h_f0KtXH^VyDqx5g)Jc4@fKYb2$7e{M~^Sk%cMw`37@BnY=orF{UoP+*as3 zeK;XU8xk8B5*m?^q7B`xi;ITuhB#dcOH8qZmiPq)v?Z(JjdEEYE{QqGs?ad{j5o-# zwDF3_I5BxNvm>c0r8J>jN2#kr) zrbHvIXNndegEa^ncAUpfVs)HXcSMEV1BbF z2E@)Sgq>s>cIy%W@yP6!ES*N35*Knd%?$5$TwuiyS@6SWHXDuR5_7RJ-zXL`ERRJC@=nv(joWL=H9vcpnc5D^*{ z8>Ev}%L-F-Qar~s(dyh3cWyzo3i?cGuI#`#eQ~q9pjn&k)M!f#E~mLxUlb7$78hh6 z3|rHb0H*l2wTZDtLqblf!_%g(Q|XmSxk-i`jHTzXS>zy$k|KbG9qg>G?rh1>Xfj&FYdSltw0U`2^rs!|JBIcJ2;fa~JsoaF4xibAunHVZ zl9VtQYv4S{EE^_!TU&d@^7~e-AUM2o*2HFDZWTo~?2>(D6ckQsu~GT>6$S$_`a#Tb zMi94R@RD^W%WEqgMth7VOdk`c&TytG8nW|Bl~JW(k*V=1=_=kfC))NN+U9s%+Ww?r zApDNUUav-pt`PiS8|bF6O47ZW-xiHDdn#6sc291Y6rC$qe)F3&Ufp6Ty9>V6i9V{9 zFn9zJZmeH2@aMMUDxcMVkJsuSX62|09#WLt0QU^y$=gYeu@-!P9M;jvdVTVTWF@WB zrHD^!;b>Qvl&qyIC6xKNSP$KRSI{0wMlff=j(PC;3R~pKE`dyW4FsO!zFRcEn>*5N)&VXRV{*HBlLnFjikQK=!9Zn*^mas;ho`A=z%)$j!v>QMzEw)&b zq*E%@4o6i}YeASjDJ~(TB+8L%t4fMPe`Z7nn~|mQxrNjngfAz0WXthP;JSHYD^qa_Gw06bJkdVgG(aQyVo z#C-NC6#sZ0w(r7u*gns0^UuEK zn{O6B_Oz6W*^;iJKgv4H%es)i6=)ihVjvN+hi`6fzWH=1dl+S4FU*EWlx(ikM1&H8 zb^<5cv4(kqBL*3EvRR)e?X~lzUF;}d&!_3eZ_UmaSQ{ z%;t33Y{kVk@tujGp$SUmwdLitlxR(QV_rmHUulu>ax^Mme0YVUr$iSGB1G*X?16!* zWTfsdxwDp$yDjCvA>QhJU|`^Z$w~g%x4*G*f1mW3zU;oWYwueoeU>-wU$TTA(kG3- zA8g*Q7c&7<5jgi|K`XQ0)vMu5qB%|vlqv;L&cx+d2c(|4+{gL>YY3;D9v_DYrsmXc z(9hW!5}!w_NKwGQD;MF0^5G?Do9DpJGkQQi#ae9Vz+Hq za<#byXV@F5NE9gdyvtJR_U|VgFk2$rDjXDywE9nqt z_tQPU7VezA8}EI5w!WdSJpP=QC+RvZh%r*)`4qlX)yV(HbLRKQ^TYi4N9TNQo&BRY z&h@@OINx)&k3avzd7u09=O3Q)xdkyqj`A2He?I4Pib3)aj}h`;zUK>UK(OBkYsgRC;QKZqUbX^Pl(Q)P5oKQ>`Q_l9 zjmWnfiQYYmt1n$7WQxA@J=|X-r110#2)7HR8-!Td%R-Vk0jrBHI0NvdErMBGn5h50 zK2iIrZmN^&@?N2iG4fT(uL0#hgM14Tjiq?Y8Ob-^biD}Awh4W*$=TmuFpUbqvJ0hZ zwBcHm$>NoRu!Y{RIi_DLO0t7G*9-e!s%+TZJghQvx6VA|W5XeJ+?} z8}ZI2XmZ&E+oH5daEL3AZbqW-Rd{}Z#106FVg}$aNl3*UbugviMxray?0+JC=Dp`H z>i9Dye#=?p?1N$r-f;-6%!SmB^a#>+K`nb6Z9`d$(g50WzBDL3lf8y3^^4MGp^zOx z`BJhY-jZo9L0gl>p|1PD^F%^DE$2;1=$p5l)E<;qK;^I}k&mtm^G6GTSa-={8rHs6 z2$@R?!Gd^D^9gH*1q-bh4{EF3mspI@#gmm^^VyGaZ4k5~X_uavB5+Si<+v8GSI`$q zFG^SV%n$J;*)15CJ26i$3W>6{Lb{lUx?6=-SuBza_o}hBw6hP&5Z_WZjrM#4@22CO zOObCx=m9&u2lPgdID}Lp=y-CVpOoNR>FXpJyn=y?&?Anb%!TPH+&c_>>${fW_k~g> z-l4Wpx=rZ8T=FE#rt9qQk^Y8zHAq3yJs}?7{Sk*xKi41X6Qw>R#2u9-;7Wa5oNW00 zl}Yvto|hnB4bN-iV?^V$aI9#|cHy3H%=QD`E|iuCQL-5!9_OD>z)A32Di*R}+mIy| zdap}S?!t62=FgYhLbHg(uEn0Q9c7&a{+))etYd(w2H=2tAxB(?bx{q=s#Ss;@0tMP zCE{A7e!O-<46(bpt+}@OjYblZi zsR(H~QVEh1DGR9qiJsfMDT~@ib>lacTO^#G9RW;+$?}nIM?bDZj4&Buc5OnOtx5b| zj~Gx>h|9DWXNW5JdA<^R<37CeHQ$q6BeYy7eciIY?t2*Le6~wKLx{)^yWzvZ=o8E;b%Q|{Tn3;Wx-^+o73UB4%E0`Drt%Y{O$t7e%T<@^}D0l+`?U;H!R;?Ke~k_Bl3DIIAyk_Kt3Up~L4 z!8c4gk^xD_)1Z)ts~IUz7KOG(2?a=2Z*t-47JtrDh2QT5H&O-0rwIE~Hw361vY(>e zn}HV&3r6s`iYWo#C(9}zkN%b5kR<^w?!a1hp)ZJNLdkEn5J~xY-a<${1+KubuNSl!wk!s=B{|a1ZkX*uE%;O>OoSsH16s*Fp!Q=Tglt7*b96yio z!IixxSTO!-TE}7q@WP`)3Z;eb`0_0*%a;!;Bpv^j3WtT`0^}CZ_*}}4i-BT-I3zwK zo|Ki#ZjycOm*Z#iyTtD$zc2i4{(JnN^MBp{!+?x{;(+}DkI7TydGe+54f0*`d*rVN zCIn^$HU~}x9tnIU@bjR!pvs_&f(`~f7xX!V`lG@31V0)4MMz`FJt0qq2851=ZVn3w ziwk=>+%LR5{E_gJ5sruh5nm_<6wgOiM~+7xjeJ=dtZY?|C=V&$Q=W>djOvWq9Cc6B ziKs84^P!6Vo0^d&U@R+++MW zeI$K4{hsubrb<(*>9EO@u|MOz%n~{tZ%AlJYcMyIHq#aARy^ZR5Vin;PG0{J1Hv$<=hA>7%AE znoFCnYJRyTrDa3QYpsE;iq?VFyIW7RDcY8_9ceq>_Ds9bu4rG{zOVh`_AfiqI*L0+ zJ6`J)JF7dpJGXXT(s@tki7vmcoUZ1snXY@fp6vRtJE^<2dtdj9-EZ_H^i1?T-}8E} zzW1Wu>-)5Q=Dy!8iCxmVmz<22T!YhlYmkA9`x&`C;X-cGx^zI(+%?EhE7ry(7;r4_xkA zzIFNC%ikLvA3Z#Ja;$l5>)5;FrQ_l%!h(Y#{miicJzR+g^3Z&kpm;#E_twyyeO zb;0W5)witv(VDC^m#=wd&1Y-Aoba0{pQxW`pV%{T`NV;Vx7Mbw-LUqlwXdyxckN%- ziR+Z>wChIKO|N@!-P7w{Uia3zkJo)U89Zs8bWJ`q`OM_YlW$IbIC*NyZz^^weX3}x zacW>{YU-k?gH!iRJu&tC)az3pOr2UEus(Ku+Irji>h*ip-?#qb4Fel)+VIiF@{OxE zo|w*>9-lri{W^>zr#HR0S--h?^OIYYTUxhFY`K2RlUrWe^5xdht>s&{ZhdcCz_umZ zj&FNv+ld+VjAN#KW@Kh+X3xwuGmp(YH}m?;+uQ56w{JhP{rL80c0})(*m2E{<2zp7 z@zKt}ooPE)?>xTq#LiQ@qIa2hHSQYUwP)AmyKdTb_pV2FJ+tetyOq0byUTYs?_RR| z!0y*}zq$M5ZqJ_3Jqdf#_YCYgxaZiOQ+w<8cJCe8yKe8@d*9sq8U4Fx$whZx9C-1{ zi%(o~>eBK{uetQ~OW(fqgMGF8j$f8=+4yCTTz=vT?G=ZvII&;7zj}Z7{+ay;_CI-L z!Ie9%Jb2|ZSN`>?(5sTJvR&1A)$yxCufF@5mDe1&=IAvaUmJaG!L=jT-gNB;2l5Uq zIWTfy!+~Q5-n%a4y3y+nUiZfJvDbHBfB*F#-k`Xl_lAiZF2CWC8(z8L)Is&Zl?Qhm zyyf6y2j99;abx9;hi?4qO|>@-+_dNB!?&c|Qh&?yw+`KU;*j>x(nAm3=675AZOyms zyIpa6`t7#cpSb;%+dnwscf@w2^T;Jf9y#*G9VvG>?pSiihC7bl@%GU;{4*bIJUV{# zs-wq`K6~`DJLB#wzjN1}Zyaksw*S~e$6h@4#<35NeSTNqU2%7%-{rWg_O2dae}+BA zBU~iNg?8*L(6j;_u?6>k7V=X_Qt?!X5T2rMenI#?jwF3&f*QZ1@1hVc?DKw?2?gNy zN%#Hm&Wqmf{;=c!(EB|Adla1H@G=8If2qCSgYez#{Z8~yrT2R%zHjw@4`V6pLGSl) zoJU{sepi5g@OZyR3ZXKEP$5hTQ^Gc3gRn|ifmpAg>V$71nPKIUkKI%)jNqvn_G)8z zLk)S@Cg{Gb!@D{7u%LZW$o^|lt^i~spwhHB~ z#i)*<#7!t`81LmHM*-^3gZGOrSjhLl^wT+4hOdO|MI~IQhHl=Tjp)N9TCZMEhcD;( z%008+XOF}dz`_{*t-`;R__v9V5sea!(+bciE6~SbJe@$#mZJr0k>g*_(}}WIVPw@p zHSYz@RR_L}W7f9tksHGu>5U0om!nPV_)LuA{w91M<)fg+`z!H{a@XNBpoZze6n}SN z$&HIjP{Y43&FJD0q?u9+^X*z(tFJA?fCH)b!+@pcAWnl!U^G*7?;;s0!w5`ELkYTh&qA0{v>=4 zCz2H51D49vOvAKH$Mnp=(wLE@BN|Nx%Vb$Bo8_=vmdEm$8TRc3%*t%c4nNw3tcW>T zF)LxEFa&imH!Eiqtddo+YDnp7Ssm!(2G$5EU^BuzwL)Ioj!1r;u(0Z8J*=1YL73hT z3VInEV1sOk4YLvG2adw%Vw|mDE7>Zxnyq0IY%N;{A3UpYieH2IUd^U(mS2apb5y9p zjC+^>2&fT0VjFPos}-i$MuJbAN!PPYY%?IcUib&FN2Bm7z|Cf13)>=WVq4iZHUrGj zEVQugYzNy3*=j3J&b!!dVJq;^HetK411F0;;1}E}>=Yix8u>FIyo+7LF2;%H65)NE zJuU?wX`j$5>=O3i{IQ!|#x7@9u>I^xb``stUBj+r2iSG&dUgYZ-b;jjoE$#J{;-T4 z6#l?&WH+&!*)8l=c8J}E=modKD*X<2l->KPJb}ze+eUshK9zeW^Zy~_f zx8c?5VQ@d66@JJbWskAP*%RzLhz9sw_7wXbdzyWpJ;Q#$o@GB|KVtubJ;#2`o@Xzx z7uiqPOYA?`%j~D@74|dsD*HKmjs1e1V83LqvtO|{*sl?D;y3WG^;`Bfdx!mw{U>{u z{hqzY-iME$Kd=wkAK6FjPwZp%3HvkqFLsjsh5Z#ieLiDBVwe~%Mu-YHOi+qZVzd~8xUMSr*NVppDp5=l zlM!?_RaA=_Q7h`;E5iUkN=7kVG>I9IWM+xkh(MSt+%6mu$a+0mh=EqFN{9pJBSA<6 z&ngc-P0gYOo^-6DO|--FWT99DAJxTTiC8L@i7wGCmWvf)CH&)6i#4!Fs1xhqL$pzB z5}U;qu~qz^om~r*8&`QA-PP*3PrpLg0<%%^yY}wN;3QsYwHwEd-%F%~#F`z= zu4QW_TaVaIU$l^7mL_eXP!8>(JwTyAA6L$UgaaXk()VdePiZ002HKvMKIsEE^o9HV z|GhJkHcsgw&YAoF|NZZO|NFn@&S+-#xbX?&8^$*c`hxOFaY`)X#khO%MpQxEC+-(- z5D$n4#c5pa*Dg`LDl@f+^@ z@s!c1ag*^r>^EY#Qr&`YmOLsR!~1+cC4O4GUA#m5jCiMbm-t!nZrtI2&?p*r;5-w@ zeYf|BpA$ci?PPh$V`LE{nejQF_m zF1%s>3GqqstoW38PW*=WwD^qiA=L7x4HMs&_^dH*ywi9)u9shfea;7rujAVazm2;T zKWV%hzcl}rF@!tK?-0LhyvO(@JpJ%{;`hZL;L8MmDE>%%PCPIE7;i!TiTJ$uQ}Jiw z3*w971@R^EW#bv~=Xf*qMe!B!Rq>bNuf$*D+3vp)e=EKw{tnOYf6Yi3QR9m7He&<3 zte-I6B>rCf1I{WxW_()wqxdKB&*JOiU&Ox}j~ZVxzH0o1@de{C4pyT*x+G|4INRWBTO1RdZtxfv+J$(irs34kE-FJ6N=}AQs5+G;a0Ug zmD`sKol+y0dqytniI>&H{mb=obuDxskBr^d(HTNgQ`6HVEH$-fR<{||?wwKXjHb`z z6h5o?r>D}4PfyLqa>>TU#+hU)H8q^$NxE>>&&RjroO0c1t*=(xOFnT+u2gpGZlm1r zNn1OX^=ZSowYvR~>*FKZtgh(dQaD$O}1rcd}A* zDn|}4gdnkz+7tJrF{~v49_^I^N@$4&?2RvRJTW}F)H4-&!w2uCo|)~Nr(RKbz zRO4Db<63%JRjc->8nkClw^`Nh^=g!+&nznXtm2=Z+Q<0x6l$BUi7l>)5A*!7hkY9i zuetSgyINYQG?I>8X%4e$N%-zOP6O5ENSQ~RKI_+oHA>Z~_?n;QQ=@A=u10UDLQKt36^Ueyd&KT~`B?12o(tHo+UZMy(PpM?kxw-aBmHF;++I` zhI`Z3iTRnTK+aPqh+KD~IG5l&&yWrZXUOg@)y{z3F%9^2nRa42Q!zBAlNDgZrch;Z z+M7a{ zy&=&%Q#*s5%0a?he-*lnfEd%2gr-=f124l%6(>mg1j{%?Raybsx;eo>8!Go|QSQ=W zfQEZ@Dq8lG=r5lIJ*JBmgDUX>2B|A}jt&SMC+cM-AkTPVm4Be<>~n(a#E%4YqF(v| z^7x}(qB+4DvD7?M4%K>9uXU*&t$Esx^wdfSi0N|4vOE={HQ)a=_WyZwN1A79by6#M zfeuJ=C+ej*AWy*{_Et_*m0O0qj=`>ihw&5*Q7_}2V2jX}znE60ty-wP40z@P;mqQgZxU{B}-QAwPrS4W(It}5aLAErK4v>EbO(W&5|Z`+i}R5bQP z$utZN`S#JMCxy{%o2m#A_eLpj85;7Vm(f>TCtRsxCdL8CVB}%9UQ5;*t6`i%xNTl! zJlZ@{cbO7dt+ndZ6>8FI^OXPV4ZEo(t6xw#r5!DvWsa}^;$ zVwNy%l1B@-XZCO$2lKrNpb z)eHpj9CR3D2&5zd1B^8lGNcf%PmL*6YwN5R1Ed!LS}y{XUJ4?;n2+>gKBX6fN-t() zy%^#ttF84q&%prAL4clvKsASgXb$G1Ihaq)!JwLh8F>zZXcsa)mrm(+O1FGP1v>9m z(C*cAz5)ZzyBoB;yFtrWUehTpCzV!mQfVb8rRAiwoK#xLNohGLEhpv6;oZ@6YL4|v zr7~)_l**_py;Mf&m6}s}rSPYJXdS6JrB`ZB>6Mz(dd=+%vn_GTp(sK_cH~k;aoKQG zTvAIGL_gUN{mOa(lTwCAwZBsd2a3fzMn%e+DIn=v&rWxMFeFYn}PF`lOCXW@}(q0$!~*voWc| zHoD2ksNKqGaQ0xA`x?%Tn>an^HJrHTI*b|iV0I(-)tWB$>Z(t{tWm=mxzJL$Qm5ez zFhTbYGU9a&F~-Vscq)UXB8~I#4E!0)wdytHzs$UD7s3>c=!`q9I?V4}rVuFAaJ^Rt z6s93WS*_HteFH>0#_3dMz5^}*j5iR`724mSJYR+vFq9e7d})I~(QTS<%K+DHS}QWg zEs|Cx<P@5P?P9DZEa~?R0kEAV)=`#SvQ{Qc2Z8Ij?+FrIv?o?aF13wyiszJ>no2k1h;1 zs61>)rHY3}@A9FeK2)xj+)H%Tu%+&di?I0!N1R4%QF7?YqxXj^V0}DCPkxq$B7pL_Yl8$F|g#1JB26t z@X0^%Jf2@Ot|htuz4%ti^MUVN`_{EvnGZkfS*A3W^SOd)%3F%7=Eibfik3C#A5=k}01%CWE`~yLw9?md!c26ZhxG6XRnW zc~j!$<8gVQFlNd$LFq!lY%3dOY6end6@AoIh z%~HF6C1X;Lnw*ZZznF7m-|lhHvv|;K1G3wx{+(FX@qF>vn0=yu<6~E!KX+l5~nFMT_$ktjd6c`DOp^Ng1|GQZk-(p2nLaV1b$kiUndR zF0hgj>uNY|WOJF_~#5II@07bfM9g#{pl2C{e4 zx&S0H1vyCA31EZ3Cgm{1jIc>eSiphWawuCgH;Selg3%`Bh;`^xz8x$r6mFJ-ZsO9U z9JLM|&mTIeh-2fRZ)N%xt8ENtm-Fr6;j9eU896*bL5k4Lv?(qbMdGMI(ry+=a>MdX;OVEF*2q*Tq>SY|*#z$WgFmYBIcU;8_qZ|!e zE&Q@8a;NfgIFT`PGLE2(B@k~Jvxw=R9KoNk9WpYRjbeLCXhOCopz+vEu+%mzZ|lUQ z+-|i4)b4<(slCB!_fh)_s~x2FMyuUV?JKQzh}to$9j5mCtagOjS6S^SwYOR@gfhJh z6=CFrnUsMCC_5(Q?yk-qe&+?%InmX*%kQkK&R1K89Gv*xmiQVh@zqex#1g3;#}cW% z2}`6lfhAIVGnPp0PArkyU05Qu-;X6ydkdCGt!0_}If*7M7A?2g2%Jf|7bbwt*Bwkz>aGA15MdQHn{NuvxGshkmyZT;P$WS4Tpd@2H z%$Qh23d5nj`H12Xm{4a7ku8=IvM+0wP|HNt9s^t~pa5(hV?!lW_r#)|9!p?`MXU=A z&jNYZnFNYZ#SNm0!2JD)DV!fRX#$Bh2Jd7gaK!0~N@Zs*1jTE~1}0|j-=%Gk*bmdZ zj>$5DDq)(7i6xqhytSWAMhnmuHBRM|=6;-DNn=ffu#U+?JAoZUmwyUZj(TZ)6%*Ps z&~Z}Ut~JPdt|`(ve)AGNSKfiDkR+=uqPp)dB-_crHss))J{jKZkPrA|=Jtm6@XT8> zJ>m8A2+de>-^2!Dh=OGUnfa25;g+OKV*V_fivrNIE(KQtS&>AZC>jlR55`APhDlz*L>9O%He~%ZmjyW=hXVgVn|2SEmRMhM6m%M}}Z&%5QEd%m! zYf|n-F5dMr^n)n7fo)sm40!IgfY%cb0rwIQ0eRvfpg=rX0QV6O z0rwLR0dF840v;fqMF0;H4*{o%hkzpS5MUEe2EYpO5a19G0VU!gz_sLSeKW5TBJTis zjiEaMo#A)_`2dizC12-rpCyF3&oM;Y6^4j)-IDu#)+!;)T4RV<&oe}<7c6w8=Gm>r2tMBy#WO+}7zNu% z=2_!_|Bq>X#zOn%z?I|J%3jI0`$`M#U4(r+@19EN9&GoQ7N9*Iwlj?X1z|5TW&i*H diff --git a/assets/fonts/Work_Sans/WorkSans-Regular.ttf b/assets/fonts/Work_Sans/WorkSans-Regular.ttf deleted file mode 100755 index ba11a2de86e30d5a65d95cba43c4a3f0db2961e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135828 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

hwx?Z5*O6SE^=jBJo1S)L>yKwcqh8&XK= zaDX)l;vgogpI3Qvjm9y)IGw-6J1oZ8AGI$G%&~(9Q=k8QU7$4_Y#JG3vE=oY_a@Un zKwnF|6WN*kofp71+#f_)iNu^}RRm=VmLdO!qCa}nm~*Ev8#&-_4^ZBkQZSdFh6y+v z-dsB5-lx_=8);$E4)A^%JZKB-WgVDUHT$hFmHF7I!!nkDl67D&t5@-F@>Vk@4$q>u zNEY;+kZ{?63E;v%cS{^Ydq zeVfKSVc#ltqqt6XrnvrGFFwxPPj;rbem<_fPWGg@{(R2;+3P=8(%w&YrnvtFx*wP# z$6|GK20@3Ez*(oK5?6=3vPsueDH{qaSdkHEEM|sx%0;0kY9P_C0Y*%rVYL*%p%Nu3 z0YF={3mLKV02zymxjut~kApKi_4?tt;n~S#XQFecuSegZZ*Qy*2K;Djf+YTOa4=Pl zUli(lbJ%R(j`9BG4JhB`;Is0~SJt}n!+V#B(PF*!AYY8IhX_uH7x`iyzK$ywtQj~yg;s7|8BKTT zR&JZ9KX!h8%&j?#(OaK5;=G75T%0Yn#kIZM^gXeQsYWjA>VP@i4xb6V(a`2sj)sxU zVL&elwDhfZ%DPExI%*Am5&{>wdQ^M@>4)79JA>NXk^FIn&}QD%pcinIS~7rBCK0Dy zFAW`d_BKr-X`nUIn3aw0aJ#E3n>1SIEFFw#W#y<3r$h?9ZRP74kw~9|57__Y*S+8a z8c#%eL%B}=GRd?$*$J5zA|w!959J!*C%O=XyAH?QC{j%|CYAng7+n}}axL%Rq1L2# z#TA!Dm15LES3SB(c9u0&c64?07J2q{Lag<5HOw}rhGJa-``1jx?F|hB?o>;sD&iVa zovbij;%{@emS$uZ&&d%o=S7lTpdF?ldjqr^B=iUseMYH+6vFBFSQKQTiJCY)i6KuC znUU;`r&CYwI`Qt3xD#x>C^c87<)hca9RmCdIj&;*l!d#QQm%|W(}UyF+qwnj1| zEm4lk4T+NKGE_UG6cW+`b|;lz1)w)@WDx;~J7%a|Dp%yfU{}N=3b2gAWXoh2mopdYVv!7@aVGxf`~5l$ld-gI`ttQLv38~s>kddoGXv!>+G#7^h3aA;Sm ziVkKR+H}W-!2y3m!=9<0Q2kxkU3XV=?QDAM{;efj_v5C6oM-r$5i^Z2>}2rRGi07( zwfJ>z_ju9w582>TFQ^0Acu05`c+nMk)S`6MCqz54R0vs{VzcLq%80 z&2*9yc19*|ApaLu5)Pja)r^h4hG380OC17o8`VHR*r9 za;+OArl@? z)1i;B60QI)^h1hK;Alh&P3*keFoo;Fdt|m-FXAQj`6TR(_HsUzr^QELQs^salKgbC2ER`h)M>dRt-Pk z9w;HZg$}`FMhG_L;5p{rlG=j*vvz2%kmCW_E1 znF0!#edVN1VMwglhj$2Egv(Cu*x^JM<+BV-5ANb@m=bm% ziwE#mp6eO>9(F5@H^S)ttlcV}1N@a=H^>6l7x>a^xW7tTNEAco%XSDJ^vx22=gmV& zNZd5r8aR|h$O@!1S!WtZ37FE}b`L^t4HjQnRmc?@i~w7*O|`JJ#Zp?X>(`eR0$-W# z;viE~3yl>E`5K>t1~CU3j7fW)V@$Z8Y;+n^gwg%PcQ@m2?r+O3*laH7pWZ4M<`gf) z>AXlOMp>^;H;Hx%6xUO1Pkcp*AmZCDsTvk&khhG36hQP-WMF6PP9-<>d*pe$RR{Q< z!HLSCXK|iA%02MWj2B#4-4TM|{(Hab853trdD^f+UM25)HXhm(CI3k02HKa$YP zwI6Rmj)r<&wI3- zL#;89&+Z(br|^AI~e!UjG-mjy(*F z8ui6LkR~$g---2~2nH(331iEwKdu^cuJZNQTovn|y>NN!PjOGm^>|b3pZlfDT7T_V zE^GZcQIrjnp^vZs_!!o|Aq;~s&-!N*_|-T<)`sT51OltH-Scq6BymG?BwFtXjChY^ z!VHtyIK;6Pgdy4^mX(S1e9_TTJKyC^HP-mTrIt~OJ*dHnP>Cfuh}cAl-?y|a!zG*_ zR6dB_Gm1Fyt743_Du$c*JQ?!9Hn{qC%%u!;WYyB5m=88lhmEvU(Cn%5#|j< zKEmg%Tsk8Lr3o1zdV^`xi}(R%jRG+iJ}o5tL^h3>FyiJ4y2t|w1T=69l)QZrTA++0 zG&bOw$ehFVy|~^bx8nL) z<$AMvoxQ=Yqb)4IAGVZof1F>xNx6;$5#@S}Uw?P@e#n{z=+IKUw_n2fJIzhNL@%eH zyhcA8ZfZb5xdH9T^B0t>jw*FD$OCIuI?&NTF5S09i)#j&=C1VgS6wkVwzYmRKE5*8 zb!2SI=}^CGet2}DJ`tZ-9$eX0tg#nrYVF2>ws?D2b6ri)TwLl-#GB`udiuJ$S~{Yh zkhQ1`SNQlFFpo6O2>T;t`~m#UBoD_ST9Gw_(`K}1Sl~1Ke;*HOaInTHli8piU}3n( z0T%r^b<^KrzhJ*edvXr2V82Kv@i4552XvYEy1Y-J3-86Aci@kHTsHzmYDm-;QCUB4 z3Pp7a2cS@$JiV%#%@!6GmKK&$4x|A@p+9aAM*{_0WTc1Sc+s_i#UJnc@#2m-Cv(m{ z_@Lan_VkNiou2+G`SSc7I^;RQqcc+-c^RrwDVIzHnv6^w{&)Zq*NLheovvCpTT)VD zE}>+0ysyxpc-=YgOrW8OJ@>ux9rv%@u6Z}cE#7U$dcYP1-26;Szc?wkp9=d`+JeA3 z%YgO4z9W>+jJD}K5XKwLa%f1L1&Kzp1x_50tJhcSXUogWZRIF{0(J>w+u&-To?@c6 zY<6nCC%OsVzK+nhKK$^RwZGJmN^2z6;*|`o=Nmb#@?$x)s`H3!3uPW9_%75E5I~Ov zXGUH(kw926mHezq)!#Q6#Ni3noEbHthu{8ngx-O(5-Ri3`MnICFXYTAcnZ8e37)Ew zJd_gxH%3RNs8)fubki01ZHjzqm>LX}Qjm+fF*^yZtd?g{uH$ifP_9!MFk;thU~oaJ zk~1UnB150Zxy#_g7Ge z8k|YZNKnhZN;67@CN!fp>PGN-tyXWy8?t(=HQ`D`$xNV=?+3M*59w4$R@K%g;NZo~ zKKW-)aJ;)a8Swt|;)}JlUN3%*sN1HZtUJ_+uw1yiZ0$GlSE3$Ilz!4)PPNJ-I#Xuu zUuxF!vwY!I8W`rj964TNiD9Z1VK~wSZA4KjYa$*&5*cB_PC#WwqqG7qA596wDeP8s zSTy6S<$T|n%_U%JI$kP>76R1PmCm1u;$J!`ebwKtZeiW*sq{B~{p)$hJCe!AAD3H` zk0d|y_-}tpB%w#s zI`S7xw@+?m{X2F%_Ih(;WAkSqb^0&7E{{M)d#Em8YS{tLxf)3#@KA#+YV0GXu_rb=BwV8hY6M! zitX7bX-#cq@ds|o%M-L`X0c}qp(T-9%NY`;BNIxIvm|yZJXD7z_X143t_?_#;0 z3vFySvP5`{Li0X031jJ0_MK!XHRpLRt-nQ@Pmq_9S$*hkT79M8Fmb^Ox6~+d!c_^F zfLOq2F;cOBa;mIgg5oR_P={%C{A*(QpU_amSAXprS)$arAlu9$jV2OgnQ^O;TV>Q) zYXeEt;yX(cCkXRTy`PH=?u>n=A>3_&*7kms97=Q3fJ zsh{f#GoOFIm4D8J-KLI%?6z{QlO^=Vfxnw)QF)1WW>H}pVOiBvdX@7hi&WE1GYV#d z<@N>57+|%n{cUCl+%MyNOE#Mr!wWeyg0CSvUEu2)vV&?EEJ_@(j26qV&Up8DI0*PZ z8ETyAV67Ppoadpnd5>hXJy3`_&f06))y_6WmR)L7H zpV4hRT;QRk+H$%g}sUuTDw55+u^ z&t5DcrvVGgkmn~_M>}~r%0`)m6uM5DMWhOJ%JEeC8wh3hkZ<>U%p?pw{!Hmpc%~YY z1Y__SLQE1{pCW>v0tV5Fi+mqQuW{M7AttF>|6nrJM=1cK^AajN<29HtcEluMti17a zJWUUNeH}f#Xiu#_>#7Fpx8ba-Hj4O)v#w%PJGn_p7?uEWb;5tpcDlRm2Uu9big@GE7i{4Mb32s_64_51HGC%MWVD<|JvMoobv zeM(tloc5d1g;{42o4ta}b1TeCs)BtOhgc`@$~y#`kZi_2|2$sD-vLMY3@hQhNLKi7 zqbJUaeoV7=^?Dq8yJSJoT;e9wK4$r3=Oz;>*#R>1>JDAsB zVs4qX{?c|B62O1pU;pg@bF6*_CgqQq=ikzw1wldoo_LNPOYBYhx6=19#+{@lFLJ{MyxP&5ccJ@N{PKFTr7(ua+N)(S);?Ib}Xe>&0mUIa=7tt|2s$W`=y z4W1jJBeP(T*0JrXjEmTM4^Oa#H#mw+?ak zq`iU=RN!@v7!C$U%0wL94Rt|>Ik@-wyF$9qUDwSSSA|Et|9WSA+=%=H?@nAE(EQ%Ay;#a=X%Jg&M zPj=VRc={OLaoyrLGWdjT6z6Mhr5f9EqfAA%u*_W|)$vo82626q5 zK_V7O5t#j^Wq3N{539PrID)fxi%&Ll~J;2 z%wgaTY!+n6q4?uM&CcW@TIk)eyksl(+Ck{y2)mW9{dvCjat80sopMd$n=xP(dgL!XCoVwKIA zB{T2j3yFDuVVU+EPSa9w_Wlb$mJiCK7?&4$>gN(x8<6X8sK)Jp?^|351d|%MRKm`r z6A{=MiU){}gEiTDO(LwgTmomQW( zs>&DjMXJ129!t~`E`+@0hnRphdG)U1RZvZD2>7IfiOx7thP<=BI&AqJiN=B9x(58V zYcx7AnEuyeF($W+>^jzxzR)tj{{BP~u0^D8C34LKeyQ)=raOD&P!C)2rKisxxuQ4y zuv?u!F0;h^y|kpAKQ6O$4?<>D0ad>%QB)2rUB{3Cq&QbW70e(kNu9T1Q<07k91{H8 z!HTJOA(ca!GVo9ibd8N)%@4cEI$TvwrzAN;&Y-sjudgEKpXz`W99!MNgyF)k5rDRV zi$o6R#&i#+&y2in>y0DtecRA}FS|AU^;cf`+IfxK zx|)9Z`0;1(&i)H4*c;tgqX^+s4iiQVdkSwtpB%(=butxh5Or5zx%k2$h>Iq(*zfp~ zvo=h&m0oS&h@3zLTqSLVq%R!GLyj=dowTzzx-C_3;Np9j|!Ew z>(~KX#aM-Xew%<)u{^hYz|>yHtXy@SJ%VXc=80m`rHJq$##u~$FVJAVKmcI`x=vOG zUmzSyfi~U-#2j%vAXY@2JmEkSWqwpJ>w8b?=X*|!4t#ib`nmVN^{wy!$xr0gmAU?{ z<-cUL`wysCYK-ekGnf$Z&T>L5Gx1KS7mCu+anf8aW@4WF%{<;IO6zbIL7w;bz{*`* zM*|tW-`<1{vTtm#9&nZ@p?Vgyj8Yql1KFeFtwn5;&T{41Q<(rKvK^fcK&aa0;u=&p zFL}Qc$ewLIfgIjTA6`czuB778EI-;$@SYDTVk#~iNfqr>8qk?aH;SC-~2@z^czO(38A7DBgEbJ+sZ-8GY2B|PS zM6<~C6A)NP3Wlr!r25gIgpdqmDk3Q4*cqqwf|El5!I<3`V?SR#vZZU@9<+7`VuOjq z?74ICnN-J~{y%)g%(@n)r*_m-4cMIR4V}^c$H(L8``DT8<(A~*;3?#WKuD1s=h^iz zpd=O7df1WPLGq1%pT};>NG5Bsdqi&3BLh}ohpEVpB&nz} z*}6DE6*5_g)i{*byeu~IH~GuB1M~3v(&CLo^LFgpR?uvgT!|`@oOpEBAF-kamz+Tb zn@~&FP`M_z-f;HJ4XL?>)LiPB6W3gGg6&Q}x;2&B%BbOrES}5vmz}V$jHf|qA)I>E z$B-nu&5X`OO2eg$Gst(3rsOxq9>cbIG5c299&2CT@aoLF$%m+-c?3_WxSQfZkf8@6 zvc3Z>S%=M1UWP5reFmCG#b?OV<^4h7Da>bS5e`Cn$2w|YV~P1C-{1jEH)0Os+%Hso zgWP!vCjwXz?ip;DCaeVNR!EzXBcR}vn)P4@VgIuN4M|WX8)iqRSr;RsaEJtJt$h-A zn3t@bPvXvrBX-a_N_+S>k6kGCeV+MQRjvBFv*ZY4ej`PMzlb>^J6_Du3sYL(nRqnJ zc{D)Q5wyNsf+dBWLj242A%d-CDUL5l0Vxo)+C#MzutOn~0c@q@_>=7jQ-yj`W~UEH z2D2xEHEL5(f8fYfoV8)6eRTVk=C1Cl8fpX@Zwz%g3|Ak~^14bt4uezae{uReojM{v zapAmxk3c8PS($7X6YVqTmkdgWQE=3yf-pco6=8C0hb`@SY3YF=3qG(2B5pZ;jNQS< z>jQrPX#=K8IFZS~@jd`Vv~elr5YIAO5GW&@NYr#X02f(ffQh0(_MW{5|NFN6jd$+6 z>pcs9xwKYoEIKRui$8s6|I=UG`$zZfeDWJV{VDUYif5il|0ewszJa+wI0(gX zWMc!dMG}ezv&82ZfeqCgcx2cf?8FltaR7rYsejsaqCIwE=X1|J$5y_yvhpQ*mMosd z%~S8CwldXjYNPC7ipX?%1TXzO8kwm74lK7nwOjf<2uzBaryFO=51JKK{xH? zKNowsNV}IAPR4z8ic= zHKDfwDJ)Y~VQK04l~7t=$)QM%EN6+rnuz(JnC(aTntb1-ksbJ)@?opNYZ3Mrm_N#s zr5YmPbJ2Ce1}JiZ*f=*=fk_sulGlfH6M2;sBD(6}L=ktD*XcEf8hl2SR$3Kj!p=*g z>_J`<1tZ@I&w?j1!Ldm69WdxiinZSeNd96kj0NL`y?M4?nZcd6cd)L>fmL~bvSq;)VXlS&5LhU z;+)f#rJEdxt(2Matv#41+ z_;t&myMgn%5mLb;-8A!9DR7vmR8WZC%14WJMPNZd^RU(taF+@TaO5^AFFGcCnWBR@ zQMk}hSYSALsasbP$T31Nh98-XR++i#j*hgU2qwWnEu+DigHssl( zVuKxp{>N?>DJi^T0u@(KFb1wUBiDT6$H<|lE|ON>b$}ae8_8rZt|Ra38|gv>So#(_ zAwLKu+5~Un9;JdHl0Ak7MMCs1#Mx=zK=>dXo|4`@rUIN02<2=b!~|I#2IC$GKJGlt zQT1*R$4+5`Z3kks>0Kz<4F)Bt4d?p>n}Us?!cQmK6k*>uHQFO2wK`}pkJQKdhDP^9gMpUPwvw5?u?g?FzKO<&+j9d;pcCZv`bLw}>2NjF*2hXJ z%Dh3hzb4w!-}`QFLD&;1Ga)O=d}}8dmvW82#kOF6MBEj)0DyBCxB$mi!L)Cj=psL{pd~iHX;Z5 z)C;-sIrI;(5Gq1v!NPSV@r#l|e2m&0F2wLVn(Dv{v6-#>P**A^G!l4E{s>PHkiG4F z6^WU^`P5zV2iT|6&qY0>j;>bLfs~X_kB*Yu97at=lYEYkUF5d$fiCfUZ-%N7-l8>6 z-$**QkdiJ*m}m$5m0NDP{(Af@EG{n4Ptm77{_#)I&*a^A+;KPk@G*ull9+rybTI55 z6PlN+<_J3bs?97Abu;TQx5#!dcf@hlWONX{`C=(Ku(QQpwRP6QPxktWz1!bbJf(|v zR$=Zig|KtZNp1;eFjBWByoYM$_{`xQOXLo54MxouCc+VF92_5%1+ry~@88RuHjkQ|Z59O^2>c&;L>{JL?{Kq~qAJN$yM!d^In1Tyl zHJwO6MjC?tu-8tiMGTZb!R;viTF&D_GkT;N>>PG5g~ zetd31Peesb(c<3uexlm2csW1R=s!`EJMa1#NYp4+fPN5D(mBW9av9Vq_ z>?g*#RjbZrRgGau*#{1Kr+p_nwlwL>kM|$C;ijWo&h(95J3W?K7#^FQ9h1+EOa)h` z-!^aQ8$5g9z}f8&9=z(oh4klU`v+&IhKHv3{MKRsWqd6|2|t7ZGS6TL^X6xoomwOn zS#8v6n4vt~9_+Bd_La+SI<@uM)9F+4{WG_vfAp6hW({wp{h^b_FdrfLgTOxNlsaU? z+X|4$2pb0BK>P-r9LP0hgLW%LGS$_hlj?HMsly|x8%+=qeBq4toOocolY`hfU2O%7 zFMC{Od+k4myL*O5y1R!lHd#tyY_(Wx8XMNyO!hQ743Pv< zY*2E_Giwd4Nugq}B5(S^58tCfMZ#fm&=Z%hS&*wUD4G~R^yUORZ#>g?`&(D8sadcL zjje9emmM2Ei1i-DDkreo^10;)4}JVo(=+vbJ^$@q(?~BZ_Z+P;tu?2c`oC7my<87K zazgIICc#dkScOVr9xb457}5nf1byiG>#w~QKXa+n9R0|>_uqT({q!?->cojt^n>>@ z*ntxBz-B60uLrnaC7K$c5z#t5(A5=Zo|NogYO=PTh1m~3_uYV|qc@Z$cutL;~5g$@sFkAur>XW=tbG>MZfV~7G$Ij71f2XPz5V4CAqR5V% zzV$kL*wj(|>-6YN_iUN%9@@&rJFgg$dk^m0c}JqS3|_|AMDMmk!^3^4;SxizXN6jK zW1J-y?qlacPpveP7z&4=4q&b8V7%i`fYhoE0D+kHReV8W+d&~sJ(I{)td$@JLZL?L zWx<;-X1RTxI7gHwBhCl+G{1FXj0^J#+jKHHHw$4tHhFXJRLLX>^WN4}%e!r|ep{k@ zd)v9%#K>e%f5%vV_jNrn2y^%-(F+gB&2lR^YLav@Zw1-yZDC8mTTLgNrXm2J`OBb)MQ#0N-_^$Xx78#cR5>5dNc8 z?__zRw`Z|IUw-Al>h(7q*?Ojb^er>Vty_nav$IK(!hu-V%pF@CLqi%d{N$Fz$d>u> zG2&3LK+%PVz|VxSK%;^$2m!_AGvqNbc?o~;D^u5Ao4!hJow+mp zi$^}jn%+82&(=x3m>b*w59IMXPPNu|C;G0On7Fbp(No`cYHx2c*-JlkfF1p8E|16h zVzEB@S^L+qzP>T~!PrP1-v@cz3;kJ3n#Piq#|X=k^3_54Dw28quFF-w(M?1$8gXwb zliz+LWb#z$@*J#)9R1SjgQUI z(u4MHtV;+yOMc1!7Tf%@muH*r$Ha9(=bI_78-0F=$EXZzj#Agadz3gRB(qsEyMRri z8zmuLv8<}yq>EJc_O)b|G1qh5yL%+EgIN4FFg z7h9080P%@~rKr-8Th1s24B}8fvYw6XX!`3cbo8d1QhK?vRxzEEkNozz$$^$0^vA>+ z%<{c|Ki1&$rL~YD;o#>y{)*#`bw`sV*PBh@m>%Lx!r5EiUY}|Bvm|6aQ5^mGBDJ z|3*9Y!#CV;_AGubWv3p)q;)|5u9JyOKK*87Vh3cRE_9&PUbTIzc^v<-_J$bFH5()J zB3+67NP%Mm#%EwpR?_|)gZ`@E|Nd$>ty??nF;sd$#ak)bmz5EyzF`3BCH)za7PxhZ z{zeuxB>_qE5Ej;A#E~`=79=gMPk(_mA3b#n(xTYyczlX`+Cp478+@;Gd9e(7$X++F zuXzN0ugYOA!@rJfO(yk$KL3BkPLcgLol@--avN1Uh4cm1z6yKM!2V88?`{SyW<{1t!Q!s2fioBzgJFP~Epu5@UEebajP9qCu@zT?h`bdMD@W&J9m2`4-OXGJwT z6e@SIAl3=9&tmm98+lnoREf33!pSnK{;h~~azBeG%aE1zwHm(SYnn@izf=>=@wZO( zuxqVpI9`YQ(tljeZN98+@qcKpKCaGH?1`ENnyc2&`C!as=E^n3zN5_5y`$+^g|dEP zZ~vd0tL%Pne=^uUm-2qW<Kh;s?zOL)QyDIl}%E-;c5%N+`WYSmWQ=zw@@xNK>!|b=^cxx+G#_qO!czQw zrQ&_;i3{rcszA#m_%kZqmM94Yfp6oO0)cPS@k#XrSQ`|4n;(FollN)SZEBH7;S37t zHRPb%7r$Fz+fgYJ@&`j9A3r*b7riM^hz8h3Dp)36l{4(CQ|&c@uEmj?aLieKB-k)t zWe2>SKdfc!K_*r@P%-tu z@eayzXZU9oxpPJ9in&_h^Jw1iJsqCe&cA2L`@OyL2k}0u_)MqFzw*po{F$~5&)jn1 zylz1Lk`$4D0S15sU?Ug$z%Me^uaEcz-(P=EDNa~OD)%Hexu=XdFLW#SbZ>G`Ib-5o zz=$?`R|T_PXjh)ozR7dUAd)NY$3sA4MSLrQ^{2rCQEIlpctN5I0KX+dkWhwrBxKw#Qufp>u`R9;*c|JGc z`&;?*p{w(}zxu);o8g~BR^|CV(Z9l<4_TGx`#L~obf;^**NMsmZscOHaUuEx5cjAwr$H6{OrYl zY~skFLr3VR=Y9AO3=Y{h2if<0uIwYRH#~#I8p+B&Jbn||_k51*BmKzcAp2etF+{C? z#0#n8Y%&u=96=0`G^7bRB>!(TB)d7kieyq1=5P`;M5R0O$yhEnvocnNj}1x)5fmyR z#BmBCHm(!07rlLhlr_0TY4Lwu%D!|_DU0=j-pAZ;#d>bg`&yN+(_wWP8=vh;GV^3U}m8vbw_EH*DdXvjSZW7&3)}%%+?+nnn{gC8ydsG=Eg9aIJSD=cx}BWzO}E^ zQ=RPT8|w}Se9;ECFG~AShxKd6e43;U7>s5|q9KIErZ@3;p#ky2co1itP7aRW{U7r4 zy)%D)}~Tk7qjB_P{+VPN2ndYHv8Io zJH0NK&*yS^)6d{E@?g+Y6I9l77uJ*TBy{vZ!)W;Jd18au!OFT~Km;XaL8PcyOT|;o z1b;Szp$nF`&!6^>7$f0W3uA=?zOmWVc%-2r5^8A<$uC`b;J~qEcTLS~SDC@)AMNcQ z?}-Hbkvfl$LcdZceC`4TZ`r)gb$w(IxtLlTzA5 zwF+OubAb`EXOKHrLs^2=fJRCUgs~F5ovCcWEfgI@Q5e30pik6XD=J%fEtE(L$%zd{ zu(bzvwcPiPmfCNp51+g%nHcDuU`cj-pWNLz+p_0_%d8+dJaH9L1N*0YN)5p+sDNU? zFJ5Qg0WEdZt2+{g9gTP(+0i-TI!}fOiaj9S=?n$ldkhb#4Iwrd^4Y1$5TAJjF-3Q$ z^~oMe4VTFF*t_cOaL1FU_kJ)oTRPa^H!?KhuI}yc?r0wQX(ZL|p=}>%r z&pX4hSXXm%{cuZDQ)^S5r*DMjRL1Mo{ND=l)k?t8`EYBj9B*F%nO#v_A)qMgzofyf z%^bC!P5%okI(+o#oX+Nb|9d*w)#*PQdCxzxnqVW<*DuAAxj+d(++xnjCEG9R^$W7Xl0pChKo8?A;VFf zl$#R}4WY2q(ZCb0ly-OP(?GOR{4cK`I6gYD(>3ni(=rj&m+Xt}yz@YzHBpjj;+rpLrwG$6@d!hYcoBxzyI}h16@t+SMJ(%WqVWCz;&x#i9{Fu zB&KJEhGwP{h09a1DKo1WX-qCGBpXL6m>CzA*<5RFU2}6?ZEO0~&gSMW>;ptSro!G-P8*-TwY3@ft9EaT zC@LB0?HxIO#Wgqbgu24wy6V!>YT19x(74cJjE-fv$0Ig6Dgq~E0t5V@X$aYZH6zX% zoI1cIc9D5JMxT|X*JoKQSy`5tm@G36Raq=Jna}szOIK%SuP(J$bk9c2xB1umx6Mb) zcJouCnIkPNBblQ$p_w)5#_qj)yN&5JnW4Z%(&EGX7|O-nhF07}gxzZr)YnKhOLhoI z*DnH#X2-9r?E582bVTckOX1tDJ9X0q8vf1x0G702B^!V*QKW? zCBgAKlxGqYLul{vm%Nuh{TcG|9>938-EJvsZZ6|bH=50jO{JxD4^t1Udj6cdSeD3P zA^afb>N%LOVYbL0;s@nyk+X`$Y4#l3gH(_=rx`lSzcFEEB)9G|!y3mYpxv2{!X|fce z>L8Jh&zZpLz}_G?W_O)B#goszzJy=F8WxAy4}cT0C=5-7kU*S6rp;qIN57F);AIEz zr#24@4Guy)|8%FBXgsxpAftiks3Up{Nvc zQpMCBH;#atEUZ_)g*Cb;mda|aRX9orMQufC1jmZB5V3GaH&l>BpER2+Rl0FeNi_Op zbZWE#m)k_K$joRxboyjRfUzO07^YP7?+ zj?6$zx(=xC=&S{6Gb2`wC!}XzT1t=YUJ=W!?M{ z-XqSSU*)sAWWRz=F4_s<>~4f>SgbV)?~L~Wt)#fdS%-4@Qv`_NaBV+-! z<3YGG9$OL%IyM3XR>+uW`Tqb9dm(<~M4~}g2STa$|1Rxc@-Ndq;B0XHf&GbthYRS7ox2vg_yN9uNq&b2 zyYjp2I}N-{{0(b`0}sT>4y_DC38efeZ~dj=R@FJB#lvon1v$gHU%@!mQ}03?#@Eo{ zA2Mo%+c)F$V0{DUI-t~(X*3t(gcio(7;H;NMe3uYqJEKI9Ms!VQd3jX(i>EqKRY`b zZ>z2SNqM2Yu>2>rwYK<#m$${mZF?En=3w2oL4_5ULBXDb8&)g`;+%`ri^V|$`FG$Y|^KbwXV+yH%q8%*UHrmxSS^#^_Tg7(=p1AtzCk6_J{&MZLf5AOkkart+ zsynR@(s~#+nlj7s01_3*VyJjsB6Vc+AK#P~y{fr`=Y7(c zkA<96%^e@ztLc7~W+9M|*sH?+>1l+W?j}~#46>JD5_r|8l>;lq5AxQRd!%gPPNNf@ z^1Ykq0M>cT$J$v7NfO-IA_r;kdwc^-^sVEZZ-YDoW$(ea&U3z%uqOU(j{6w}HM<_a zr}4!6Uk&$xga(Zx&&hi5ekfj{Wu*r~Ay&j773y@DmIdena9$b)EyHy* z9=iDA^#=}cU*+-RC)7Wrq;h;wz7K<)N90VR{0ho}BnfFf0ymvlO0GJv9(iy-WB@P` zvlQw5Wcp025mOt=K$%MS$r*+sv?3~jB`4w%psT$gk+`)iPV++;*E2=Bi|~-n9+u%| zeuiHq_nk>QST6<{4)g=x7K9&?;h3x=d;^689>j-@)<-e%g^n@K)?+ZDc`;oE;~oeJ zJiZ38-IHS}`;sWHk8z(o+_*x{J+o4}rLq76dsdd!U=8q^gSR=OFl7uRcs39cu8TFV2hmd<3nf~u z1Fe#^U3y9!s&PS=y@(?v<7MA`vCFSR4)U8A(kC%>&b=UX9r1M>J5MV6J;QBktA zj!O3(zsDZJ+8?bKVD*piL+jy+y#py2VA*+Tp#W==v`}DPwovd@|2qGk;MCN_L^$4b z%PoI))uzTLq^2gsr&7Ox?l;P)K(7g7S=MyV1V|c|a$6YiUL(L_pZDB{)(E1Eo74hw zsWkpQcLBdZahNx(VQ(z{RIOvciaL_M&$mQ5`_%by($f4Gt9IwikFoUm8Ro|=(?gwW z2HI+>Dw}mJ!7~GH#EA0F#?@>5JLiK-R^=2_m8RFPah17i0SpP2fb~TMPpNcg&pGpB z&%9Xf322AN6b=kJo;yWefxq)lkzY{pxp@V=OQ>~~oddC?(Qar*^@uLaeWuho@{|m( zgTQ+owkk5kR@6t2--l$ljkoZ_q6gvIWcW4;M_)yJ_9EhcX1?IA*K)qFd3lfI-79*e zEDJEOUjl}3hBIPbeBoRUfasD5QDNtHf9LYTM9(>e(OSU()(W~lc3dO78R}ZWz5bkbPT<5o?8C)G3#~4n2gp@rEiTr8JwKR85dNG82u?N3u|@mZ`D<>h2$ zW~7IO!^~o2Sa@2Xycv_$6thqaWLH|I!j`n>)*O9_-U!Jy1`p->9C1^^mAzZ8itX>j zp`yO1LtEEfn6Nsmx7}i4r@-TdVC2? zbLca(!myH)9vuTa&{6#F7c?{sZ{0fFa7jsfVryUgYS)$ZH8u6E?fMNvL03*sUl}yC zA#hLn`e4^3K^x;z9D)2mpkpodDLbndJz@=`{TRB_HyryhaUnPjrV+k4W1-Qs(tSr- zzS`dpn8t!QHV8>imxMp2S&xUjhe*TLBqk=}$R@VN<>^5^7R!O*EG(B3g0Wx@{KjCl zJUYtTn59U`7$_MuH`*=hOZwB{A28cjm#!~aZ#>r8T3*rGTER8=wBDFGSTa~@Z}LPd zYrML%rnZh)cvrjj{B}_&n#;T_+xNty`{L@>@z;0Yp|76mh1lL2UBH8F}U6T0O>Vm<2-sZeekFM_f5W#j+NPNlt@74LEry9_p)@ zF=}L&utY;$!$KXz$zltNdCTElDnOppW zSI6XqZ~yzR6PYg7b{NMjnhaVWZMb*b#=AZ7Xci#-Wy; zZ~orj&J7Mk61u>b1Q!!-=u&w>5E(iM@Dl-KML^{R!GVG<&4m!9-sDQI-Ix{v zzGO871_T6$)CO8vLt;Qea7t~WHMGGLkQcnF)?_s_gyiNHp7t4QRIJu{Hb#nLXgyl8 zGn$Kg@iLmA$Dnb+s>yUInpSJcr0cO@ZnvY^mIDL2>x-+cWz`iv;Za|mONuQUu30l0 z-4s$=QL{QW&F9gZ;=)o2lk+mU>-p58jDq;6qg_48iIs(!8KtSw5%Gm7wyg4`%8jKR zYci{AtmeeBLcOiHBr7{Qy1=|WH8Cj!igy^xKn#O&Z4VY40Sj4cf@M6q7$R81A?|{j zaSQ;g1st7LuJV$Xl97)w+b7YLpcQ?En^5tBk)n zbEa(*{{A$!Z{OI78#-EAI&R=T_PPTH>Tvd@W&6?Q z!*9LpyWjn;{qe^iztr@~#)GhxcyQw@Jg2(NvTd8Cty;@x{^1z=yX$($=yvc|e~eo? zu|tr|o`rFv6yt_Y?EEe9-$HyhdH64+*rLMhEJI3SLTnUS#PSi?^pw*y9L!;C5^Pyu zzULm-K7j{gh%8ym1&ba3WG?((LC7oM!LB)l0ZW`m zfLFEuzbj|7NABA&a%s$ZMb5ZltZ!$;YQI*CbvWYn$d|bILF88>*4Nm2{qO3#z%6I& zykt$ATh53uK+dq&gMMNc58&MDZy;r0JW0TKlK8(monK-kq9oRcdx@Kzgn?vW^Cm)(#p?)-4St(msMP|6kxC z=6{igU{h4o{a@iBPkrMXl83xbJml!L#6zzAI36PRJz=jv8GBRy|8e&d$KC%&#?ykv zx-45>abHnIjk(gS4U0N4oe)#Hv8sJjR8w$OS!H94LHodUv7t!?N!jV#^=is0V_s|| z#?z$43K~xhVKFqGW>$EOr%9GoI$KF;PWtlk6iS_<{(pUZIQ-eh2aKat>{gMAGhT66 z&FQmtN8<(pO%xe>DTJV>UquIFv{KDN&$xpu+Ub1sI@P4uCXDpT9f@5+(bX-9FV4pu z_KLnP3}X0W*bgUzge1RUC!3~jnUG?1dThj(Kw|%xFE5v6rLBrduS!j>%}6N8$SR1- zt4v9)$W8i~aQ?T5@X)Z>l$OK9%(M(=dq2O)m=HWkF@%)V!)fZuP>ngZ@(RP>H54Z%g zvQr|Fe;Yt3tN990n4+Lr`)F?rdsG_H0jWgpFL9I?1}73->HKAKe7eo`7p#**t}rj& ziI4?=dc&Hz9cq`a~^QCvlerSqZ|>2nx_()ei+?GfQZcvgjlN%vI4pGmmt= zMNVupx0umP6)X{Vu2+$z&ikPCioL8TA9F^ASwsP#Vjb-3FqGT zBCfRRO1C4Sb@jABtE>jXc1~D~JpZUAHab7SC@up6R>m&c3tHqmmj- zqQ^9=_&ZRi&1Dw0*4kN+73Z(@f%$!y5Y)qjAZ|TI%hFYbq%Ma$yM%zfJDtw$*R|*6 zku8=yOI}%VVRCMAj$)A|GXo|n=*k3YO-XOT0*&gK5!4Fx?gm)QqRD_3>JqXW$=SfS z+D)eR{L(?YrLM@BFJH=rY~_swshLH^#@MtHb9sA;Yr$AxsjoE{i;Io?ox%+@H5&?T zYi!jKs<*>d9p-wxxvJV8UTSTqii{|>wU*ket7-o+5p!Ipco#eZ8Xv%*CKNS;wisr( zB>Dr(8ai-^_w{H=+Wi%B%^N!V-~n=3fmS}y?W17!n0SDktD0fqyoB#gkHX9})wH(B z=<$hn1A9ip9 zveE9FX%e*Dj!l9U_pYDU!p(p+0Prc7mPwmqWHnBtcDc6l(cjzzaznBz9wW>71l=6! zlOmP+JCA9jeweWMH(tdI=!b{h{c!1A7xGNtA7C#q7t~DpJ_NSc79f;maGrtsUIK@C zN0D13;aJN?Fo%c-6VlxW%XGjw7KyMxgvB9C40n9Z{IxsHcjEuo%)Hj^``XtqLqmC1 zW)+Dd1v(4KPSwnZsz|vK86v|J4iCWTX$LIhHfS`7ae01i$Z|PPZELbkPAtok0(RiV2%- zqN2!j<-Ww!D*M^nH}qFEtZiP66+xndQIvNo_MnP4qBH#Vx3D#>Vg+|j!$>bW=I=av@lPufO zsFhukU0h(IHN`Z8a&MSt1Pfj0>`g!cMY}2 zKz~0MPDH4|^dbXJIC^><R21QSHW2k zVIcrG!*$piJ#M$rz=}}77|tyb-e4pRSP10){t$q47{nyzD$buqVoymJyo5bUtb?&k zolfEp`rDx%JNUZXXL+tPlFe3wO+V2c=?ao}t!=?uC_JctqE=?KH(h@iijVubZu0QZMz_ib_ z{g{Av9aZ>!0>2cz`Q&HB1CHu>?zu_hj{M>tR;+KuHnA>Ls5z( zNlViK$;YFl5tfR>N2y|@%XO?v=njY*q+ z_1%knI6{H!{R|}ZuB$mGs*(<=p`hHl1DuZ%~M>DLIrixnEIInkohaW%t5pQ;V z8}<}hTu%qPo@{I5HeLgylI}}^2!hNO!8YP9X4-UuX>KrbrP*V#fT__yMuX%pmwLg} zgpev@iSAFRBYh{ahObjU4_Jc%9EKY#oTP=3wFaEuqD9>-(%&K@#+dJfi6EQ4^s@TQ zuCD4zTc1CF#}&ACL;gR-ldfl5YU(R_HQ>WZ1@Rx?K}LofNx}#ZWSmr9f&;B)f=;Sk zsEesaX3PwW$&w|KwKA#AOoA14;utbt<`EjHyX(b&xX!K_ET3p>oG2e$<2rjoy}j+w z#*K&C?DdU}jZs%kcJHaH+tWRHRa9eR&cXFtj`s8%-Ln25Dc+-v>G0f*Xd@ry%dm&; zOX5u{W-LO&s4Vo7rUVvxadV{x60E#4pacp!;>NQ#bKNG_>-@j|($LT#)}H;Qh(zD? z*dfvJSLM8+kVj$<{|Ndj>C`5xnx@H$J}U5&3mCp9jse#(R=N!(5Yr_^f=8*bTrxn~ zRg0E4=2&!6mAHgIbjw`n*E@W>d^^5gI(JK*PSk(iUbl1GV2|sI+|e_*ZD*bR^Zi60 z`+?q_(3OcJ{71mXCaM@08>!)|as3Mn>!E>2BJr|g850!_n<AaZ&t8+=6;yA2$>?pAjGtSUX;g%k9nuA~lz$EevfA4wOZOLl7*Efn?3!{Ct1^ z%F2p#;GoV6C$h{rHYT=Uk{8GFt+_#d?z)GC`ta4LJ56|2)ZLgNiTO#5P&@$|i(t{#h=?$MU)&dsa$%r`wI@;Y zVtmvan z+v|ze`={Nsu3|=k!N}-5#9iQVsJ|g0GT2Y(h`fzyak1E;rt3eH9qMKMtgiAL5d)Uxhe&@UkO*ai-Y2Ono7W_ zyDx@x3)4|)Z|bAIo`rUxl`DnkMC$qL=j7#`b=Ub|@q&)vrLrN5!a}VJD@5{K8S8HY zv*qjLxv~%zoJs0z(aV^-&iK3Cjg7loTI8?4$A@>~-JbkXyzN)?d)co*=5m!OB{VrU z8U+Vuk}BWILZtm*_Yf0Z;$3D*_o`LhCCcxz^4p4fOG|r;lwXww(9g|KmCyjUnB5iT zMfeFLwE6s8?_u*0zpnQXQ81$?9xl�B5GL5=n6*vh+B_A>-eQKX)4LhZjm$h@V6` zR{1e#Nn?(K%a1@~a2TlM7^UbIa*a`g+lMro2$A@oo1T1f)6{LZ-Nsu<6;u9(y54rZ zt-xH2JToCX$g_Ub91s-T5|8_=ABXUSsgh{}N;bH*NHthc>h;XoF|oHZXA8 z@UZ;#_xSLx!sy9!8GWp{GvPe+v9h2Q^s%hm*4+&ayIYmtWiYfg?QLt@+ob#gprtx` z(?>B*IrahEKwRD9lVASC-A+%7TLLlWHJTQr(nTfPs z4w%yws68;J;(UmTGXj3;O=6H>*G66cq3b<2aLYlZ=9ASCiRS}Wtp~wOcjM+rd&UGc zbhJ}xiw2|vWqurZ-hm}4_UWl6CeR;=gR|L2Pdks4cl?cU>^4N*yfu@Ob(s~i4maoB8Q zmWH#ROST1RH`x0sV zmZ$M349Q92`BP^iHIz0yspTa^o4g7>Zzl4NZ@R$8o-}5uBL{unzowO1{*M3l>u$c@XYkgAgIlFZB|I0p)POIU3;J}W#Mi~ zY(O`GDCMCy_u`(#B6V!UWe*J$^jJ#D{Sr1*t?DeO-&!@F7Fn9b>&nVIkMEefYjDHu zW1XAwjAh&VFZ#}w?N43aIcTk_9`w_RDyz6@>;1E9_gKwYIR!;SwOzaG)~|K_&^M%Y z>*n#J>o?v#xBV;Y(^3jDv$s69|GTI_cMf$^tFzLU%E9Nk^=0c;$#ttfX zMuk+B7v^SWq$XjtiC9^J)jI^2owzTTiX&BJ$-J=+4Ap;C2_KRbl={5CDXWGg(UAzD zsOlpY?p-e{%gZaXm09!5d8MZGurObA)pU7SPGN_HS1c2&%3(CAk4_OZCy9xn3BH{8 z(=q@|sah}Tn-iN;lhGU6 zWk{=NZ7Jz2>qw|hUX_t;>MW`q$uFI_K#K0z(G_dT1Dw50- zhvRDK(#9}ZwUQE%X1}y$>Y~f{{m+f zVUra64_gP=p~l8E1S_ni%B5)tR#>Ih>-(i9nyN}{Fpw-`uo$rMX3EV>4_%Ua10eM- zQL}>SU|f|f_oj(HGoei^CxZ&(R4JKQyx_O>_TIL6v;6Je*U+%9TluwhMpnkPnrmvz zYvU{t-Bo=fBYomT@3D!AW4+3+t#N-(&;CZ`cc`c!$y#4kRo@U@Y;mkxhcOyU$s{Yd z>z$9&F9X(fY23$`hF096jNQx~SeWtA`uboS729s=%DkVSWL*7Nug5sAR-YVJW&K9D{=~3#+bDJ5Ep6Eg6j;TludP=8m=xG&bB?*YVrl z*4EzT6+e5_yXHK%D&U%f2l=eE4C_SH-hvrm6S)%YUCQdo{z83KR%Q}R*g;Q}Ums^_r-!dFy`ZM~C9y`m>4u}sA44~aGoNWU2571PGghSfC#yYC|owxh?`X>1%g+)b? z{rpgW@MQNj&REaI)l+&LXvs3-gh^P5)EneYWATiq@(M{q4 z+GHkDtUtk9@3&g-mvRSW@WZn2CD1A`X)Xc?PO2Z0w)%uJiA)HMkB;*7%3w$9ZBMI z({)6@Wy)QGX0s0ZF&1;FB82N{BMgi_O2HyeNl(^itXkcemXnh;o6+9|5UfZ>%v!lJO zwPm$EGI(`@)&5y>2_vJ|5!@%h@8dFpm`avl+F3|&XmCjAjtCwW3I(U|9V|R3G(2dU zg@*ZruE#(d$bteLQ9P2ApG71F0^Ghnz=DIj+Hi^!AoC5ljv4sFf`cl?c6@A}OS!QC zpGc_ThvMQg5&FrQTH8J?KZdQ6fM7NPC|Bfr4v3IAv*+jMFP%Sd@kJNz-MwpiYRkmX zhT576>I+4yOku|2urza8X=JqA+>gOw74+LkqcIKNOVDeU{6^J_`wz`-KfD+YFgnoC z4bA&9vn9qHlLaM)W&iXR{G+_JG=6|R%ag5=QP!2V=YN{WBOMOi+fadDwOy37h~dAYX1$L8A*R*_s(lu;aCr?&^R zN3~?vmsM1qJsw|>77*phO!;wK<|5B>jw%~A8kUFqaf@*#F&!&%l?*rCTg)ufw&o0t_pZ8iGg82 zJ^>G6Fld*NQCgf)n6WCwWW;hXj2U1Ich47=i@z~3Wmz%Nqz7eT9_bg18{<6;d_n#d z#*B)bmTi`Gg>`M2iK+GZwQEb7D_V24l_D`IwIIdy&CDocd0Lk7a8qHorK_nr-#0F^ zF5Q-6?#wEvGNe|f*Hjd(&a(E@PKKJtatu)a_+dtJOm=QkacXk1Yg@^xb?s>-sS2e@tV%jqumI}~h_N)Nx&bq603 zy(AEE_MB+ubK({;}(@Y2(&Mf{METTlwAPxf; z;A?31A;(7)hZ}P-aN++Z`3bX;2gB3CQ^}NsRC+X*C<+)Q{JQS?`tJHwM&qh_abtIP zeR^qWI^Y@tT(<%)9mATn)ZdZEu@%z6$|mgyavY?YgU zRTTc?<$o|GB|gqzh&L$ zdY^AlrIdPHcjDW=TU(p8XG8=DkZ;^${EneAzDRFD0lj_=l(WSe297ecI*S2WP% z!e`Q3B(f9dZ8mS5x>qh}WZ=b3P37fwdwEKBb_zL-$!0d!*PG3@qO9cPEOLbJCeX__ z#gCy+R@-7A)mM8iCHQR`$q9=q8W?^6*j&S|#ucPfrU^H%NVCn%&4L z44JBQDC#Rt!i|>E` z`;>t61<$glaNqoAwN(Ox&~B?a7qwk=mH4Nt#w_v`-9v%A4#~Ve%~lCCj!8+7gw#V< zwY6P!*37?;JTTT3Vu$n)Y#W?a#yrwd_#?ZKe;K^&W9%a;R<`Bo zYqAheJ)iaw&2oezVPqGUX_MkJHCn&W__!$k<&5Nvy6^=5+z76XgBSq3NH|c&a(jA8 z#IK z$sRedB4_?lC1!r}>StH4hFMG3+&%a3Yh^#jo*isle;sF*-26~3#?a!qG%_#QIRIVB z58almRe+autcERHhKAs(8XBs|iQjDBv}rrJiq0lnJ_v`t>b?Ua1areR>Ny#7s^t?@ z7)VO6CZO)vb{9Bb3l63sm48ghWJH*L3ja5@x%%(kxbg0p8Tq^6>dwxqHz>c^8}Hn{ z{mzZbZ*}Lj8#Y|qsr(ZDwa~RVDs@XkF!tqPr*MO{->`g52g^8&?yz^D50I*+!@bCZ z^&E`&>)p#bIJ!-6V^PN>kI5U;QbUtM6V+LGphPcGnp=t@eN#oAm5U!GW#?Pd;ZwV9 zw%wf_^b6IM?E{sAMMZ;^dkjg94b|CI`%LEBv7TWTCu|Gt9Sb(wLPz_8&1IP$7?>^| ztg0F;{#CB;7KeieugWsz=774A*gO1E(3_mwE$Q%jPwRw`N_I9npt*c*=a;ndbf%o! z{rBO+jfe5qcv!@aR$X~zmHZ+6E|n+erD$dvi#3?(sXBc&srN?nQmH=YH7~uC@}wMH zFY|O{N_~H^h8XaTD#50?5pBED%_H2)p|17kxE~--FQR_{`7UkB71-K^oKgHo*GK0uq1yIXO$GNPH+@H0;(Gza*4{#r;VS$K4-=g7s5q=u> z&o}a7Ho&V?cMG2LEKBokz=ph*xnaQaac+dw&^OJm5r^tUZa2fs4f!js7I#$@dfXJk zwJ7T=EQK7(>Hk<4iMpw95Ji z{RHy#c2^;(A#8|^ zz}3Pv!kOUO;hNz};oNa-@K37m6t5U=9US?q;3$0o!AE7oPx;!|`->Br_27e%aM$48 zr)yXm?u+#2+i?%oR=iK(PNXep-#sjiLnDD-iswaepD~{1I=1%H+-J?}v&O@HF=oDl zg<{%JihfoA`pdy0feCmm=8K?F6WTC_m7pJ(`Gb&iUjt9MmknZk?*X5zK!0uHp{$wv zvId+ri9}eVNJjfW)12SPy4jnsru(Eeqt#oX04gV$D`zh=<9YHxif=#p^fu3iQb8xtN1#=2nYXKI4jDtVJyhj zzKnjRe)l{dWgEahA|Vr0qED_TRdw*@Y@&avKi0`|;r7E7!O@zn3GN`A5$+;wrhMiK zsx=v`ksk(+C`3K6-$qWm73*wBFVmK=Jlxp%2;}H?xaZ&|;D+FC zP@fJwAA`FTt{aZxT?e-xt_e0FnK**7&cNk^MxJI?I03twg>bp_1RNIrEHhF+7Bwu6 zpI}MkyyLjjdFSO$haLjynGLby>|XXR?1*;qVSYaj;u*w*cu>5rY1f?8`f6*ncI{2t zmwfzv>^_HmUhsLt=Y3tJu3dLb_k_McZ`DufFVkPAe^CF1Z?12(?*+aGe4W0p`uY3i z`mOW3$?ufki~j!p<^Fs8ANGGHAUI$+;NgI00^F9c}MbP$*-n#raWV4G^{ghF}!T} zYwC{FCsRL6t4zBr?YguVjg`imjIQ)O>6fP;$wQH#_&T+;{UtUT|J~US?i#UTxm->=mS2#6UH;z-#tL3s z)w=4)s*|hkUG?y)Cs#ec>XlV*7WNn3S=3mZSv*{PxcF4@nc~MvM2UY%bV*uCW62FA zzbqA{rqV5?$4l=lecim;e1rLf`EK)r=D(X=W&UN+WocyvWtC+wmc3>fv^-WGTs~X= zz4B+vU#e)WSXVJxnOiwrd93o)s?4h5s@kg7s&$y`Pgh4*r&SkJ4c&>a;#*ecAd)Texl3 zcCqb{?TGE9?VWm7A6Oq-KU)8ALwZAD!{rT!8;&<#-gvn2c+;&-ci6M-rFN_Ri2bDf zUi-uLC+*KS+nc+aZ)iTz{M_o`)yb>JR?n|~X!TPqi7mTY4z@hq8rwS9dT*PyZLIBB z+sU@K+soP~+E2E>)lt}C?da;bq2px7+nw>9mv`RO`B>)*ogc2*vgXz`FRyv4E4VAZ ztGa7z*RifAx?W!!y0&_4=h}}`!cVhPi-P7I99?>(@Gu88OZ)|UN??b&$_0{+7 z?|X1v=(^SGu37iW`m*&W`hEL{`w#R#-2cWv`oPwKeFJ9(J{k-h92%S+ykYRk!FM*q zZ|K@Eyy1oo&ke;7|*;@Qo) zn{}& zQ&Us>r>>bgK6TI3qf^gJy*%~S)JNNkw-0SUF&#hMJ$-We!x_WOp_$iqB=2b5ad^i& zJ54(;-}%a{@9gaCGjqOk>2s}fJLWE%yMOM9xewBcSLv?$U0ZhT*>z~w4ZB>sb-TNFkM5q`{nQ@Ap87qbdk*Y5vFFh}FYQgH31?t63JyBCTJgD-5n@Zg2lU3kZZXD)pF z!e=jhd4KSJ>;BIDC-=X5k+>-MqWFutE;@M83Ho=j_Tu)7otK1Ovj4z=1J7IGPMBUv~1czkaUr^6blZT>i%^(yo}k;-)L^xZ%FC|2{mKuoT6fi7KY!-)FMa;aLuH39ICSx$dk(#Nb>Y<)Uw!A*&Z{54`t55< zubIBadCjZWrd>OH?a6E3y{`1Sq3iCr?xE{mxX$&3_%GCdVd@L_f8nVwyndJ+&OSVJ z_=dx8Uf+2At=Hds{c|_GedCcEzjssZO%LB(eDi^uA3qX#WXq9jj+{C2=B@L$9=i3` zqoGH0kJcX@I(psFdyc+*%>S7E*w$kQj-5F6;IY?lOS^3f{|?@E`)v>1_R4W~Jp6d$ z@h!)1IR5Mxv%h%z7k~Lh*NNy8nJ3Cl*iWoGF>zwoiGwGOocJoO^oS4GWmpaBhN>T= zFN}G+F%tYF;K$he#8>QZo+O{v5B>=_#g7wIcvJj>1!H_t{2Erq4yt}F;ykMQeONp! z8!K^i%z*WL#qWzdFnm?NAN=vEKY*2Tlj;wIe^~Vg@nlYC3<#cJ$c<+pht04ZY%i== zPO{CoPkJ7?-vw8Uk+BFPr2#wWd-1!TjU$EudtD1yt(->O0=(JS6#f~!QqRe^acp3Y zBXk#j#}IQpN||Nb@U2Ito&&zdk;ej3kKjuY;*_GqLRQ84aK?Q-G<>T(soZJuSEM>O z*LAYgIY2rC7!6+ey5oL)UMuT&ZjE=NZO8F%692Z~--5&iVT16o88XFYwjK4EM6C*# z12Akyihn&#FY=xQ1`V*HO7);N>49$ozTFaEnA52-rtowCrfG@sF@!I`KPK^DK>RK6 zQR)`fj^`S*HO2MLxqVp<1{kuWmRpWPY99kzf@^uHZdgXp-b(F9Ks8gcY3^6hfw7DPr&{SY{S5`0wlS^(3i`^j@lw{nuS|T=+^aYHqQ0zDfTq_-j8tR z3+K-vL%t6g)x-nXGwjFcs~@tTz{F}0Yzr4)&JfH)c&MC#6ya7v>if7Gn*9{D`WcUa z-qH2!o6N~dFz+bEtRRXQq;agAy}*8sdcTP4G81?rPhu6oSQU89pV=dr zQ6;lCcna3tQ+XOU@^o0(&*WJ=o9FOc+^S;Y`MiLy;)T437xNNc%FVotTX;FI;FY|J zSMwTP%j>w6+ju>1;ElWqyQ8=n8P=m)c^hxXj$9|MD(d2EVQ0Dr`j&k-_qU$+!y5G< z-@u3XMt%X`1Zj7Kk3t7;jF0mPz8N;bC;3*sjZg9Ie3~_~Nj?J(FvYg=9egKfa67vl zlDVC^I716Jvp4xH=io0p_#Dw6pJzMy0^bG7ZDk*TC$zI)fG&2i-F!D&zzqU>v9izs zKCy;h$oFHm{yWyi*7A$_CE%vr;8_>4{cImUfVupaamw^G`oLd7!F~KP{yEH2FK54J zpXXO#UV4!Avy0gQb}74rU&*iHpXZ18)%+TMEx(R`fgk4A^BXW99$&yMVLq@C zJoFFzW}FJYh2P4L@?-oqew=@ipWt8OxAQOall&|E4*pesihqsY$?xKK^RM%J_&4~y z{F~g#Ph%GHIQuTYkKfN9;1BX|!Sd9%`NO#X>QVk3{uuuc{y6_G{~rH7e}eyjKgs`- zKgEB@pXNW}&+s4fXZcU~bNr|LdHys00{=OGk^h4KlK&TfiT?`ru71s5;lJUp^562; z`0x1Z{P(cC^9TM%{wMw>|1*D!|AqgR|Bb&53uAxh|G=GK|K#uT_xSs;x$`0aAN~

;YYcV5Dr}-&G>Aq4odwY>R^wi$R?&tvxJTJL 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

iskP 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

FlAxEOU@d`wK7 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 L@F~8d!oU9mE8x|P diff --git a/assets/fonts/Work_Sans/WorkSans-Thin.ttf b/assets/fonts/Work_Sans/WorkSans-Thin.ttf deleted file mode 100755 index 47a06ef1c837dcbf08c69d84e60b99ddfe5332a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135044 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 RTUh`A002ovPDHLkV1jGW*9HIp diff --git a/assets/img/logo.png b/assets/img/logo.png deleted file mode 100644 index 6254dd0d20ebc85ab629f8842c4d0bd260d769f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36541 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

Fx=zcFhR6Y!<^W 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 diff --git a/assets/inventory.png b/assets/inventory.png deleted file mode 100644 index 5f1a3d1fba403463083980b043a6cadadb78336b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59582 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 diff --git a/assets/licence.png b/assets/licence.png deleted file mode 100644 index a742f693505f38be2826a395fa590cc817e9b1f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7365 zcmeHL_cz?p)Bb#xO|W{jh_DD@^@!e9kKRS}=+R3=3swsvT9oK5B6tmt*E z-i4@9U-_Q%p7%d^e|g{g%YA0%o^$WaoilUhiPqLsCLy9H0sw$S<&lCe06?xG1R%h> z-a3o!^;`>k+Uoj>S65fpn*U$_AA$cP5y(mm550Ev^trC49*{S25>-9;1?`YqR`%e% zlte4WvCoZlwp6KU21s@8%rak%LLLtRn!V-v-jFq6^I=r>t6+wYOPw+}9q-)s(frkP zr`gAbLnY2%wQOoNeUh0)zVkK246yRLgf%De2l+^vyaWKcXcYxnec!3=Z2On`qhpa| z(I|e=^;TLrO3EP>IfBtaleJdbbp!uI-d2@c6!_4ZyijT#ovqemY~}XG;gOGYtIUoT zbNUlOuOqRutlH!Bt9_v@#Uo=aJI%=e7e(-YKc!${&5Q#YCSDeYy>LqeSJ`iqq||^f zo0gl7OhWlyRlc;?VGGL6e+pi2>r?N3%FG~JX5v)P!iJ(;xlH8P`j}QF7YV)w+ zkMa&u+}1|<-p9VH;hqm!Su0+G2{G!us=V>14RVajA5tz)ed3Yy%WMVB*i-wvvNX0U zk5b!CKNkC+Gci33Hpa6=46oe$R#u{6`#R@T;@w${OsUu36Dp{YT<^)Bf%oSI4vl)< zSA)~`4$6n$ZS=o7z7;W)c$r$#5JwBNjRlF(++#VjO8A0)2l1G)fN}3rys)RHZy6JVL!t&g1g0Xy>$o8o)M;LE^c^; zwI-6Mv9*zLf*4L~-B;tYgU^3q$EyeYo-ZHqe}AH(^z4_`_bm0Q_G}@c?y(yOPO_=4 zLMF*{{$y(ow*@H!`(0?btesuZ4xgU0IVa^HZ#2sH-bBHqRy=AepiwPh+*te~IL{Bd zvchvH_s%F0@5-djIERZ}=qI9;OyWv2?clyHLGb--_Mu zsEztO&a_=1l)1wO(NSo`St~n>d05>5)Fc(3YS=|-t3e$&?1hPM4S^)uKx3>Kg&Q!%I-lE%dJ7vbvIw74N1qFIs(rzLKvqTMr=+R8#ol(f#^*85b`w z`I`c$_uha^Yb2P7lRQjv&S9eU^1zGXuW;_9OBbDf73T#)Plo2(8)pY7IP%S)X=NJ|U*k`X8TEQic|W2JtYbLHYFj$bW@@-+mDZa=@XOT>u(gat`a21J;8 zQZ$Y8Z2eCE_ni7_BJ?vIq}2sm4}})upJt_&XczI(nW1W0@^f(*1T3epgq8uBejiwu zx0WNK;uSf`(JbJLY9j4EK4!jp^RY4Sn)!~f*ViX0^MuNPtW3R|L(JoHM7v~$V5I>n z8($l1TXw~}MO~K;G*9B6(0E^i&TByV52UMbA2LO_0nLQyqkEQwy$&K^kzgy?%Ob7~ z2R_iM(!TkIFBfG*T?%0KBp0t=j@g9`8E_qf)wD!cClfOIh8^P0s5Mdw>jxQ&B44s&5h%$2&i9S-1tUk(jXC>RDk$wwcUKpIB68bo2?lh2^O~ z&D^DuKAdA(ler$Rq-M3t}G{NV#%km7<*TABEkAuvui3Dr)H*s$xZis*DwI4F`< zo`E}GELJ9204Z8wy^Vx}ucCIEbxc21Ly|fFzy>u(hvCW+u8Ok4SvX-F^rG&71;xdeQ5&F?x8O*%Hj$Rgb=+S1a6cxh%f74ps^axse7g5`rKSzx z?$X5FEqj z<~DnTM7r382w&jmA3?7ozK^?_JrD3^1t&f&bXS&}k%ZHr{W>s_*?OQj#Tl+AgjCb5 zH6#ndF?Ys~-jnLJ4*-*6vCxUA4JZm&ZH2irj=}(NEP&Qhs+1OhJm2F*((3a8_`5Yb zN3QCbGQL>utbc|z@2R5N!CYu2fFRkym%#Dkidr!#Gp5V?OUbNXvl1KaW z)o%VRh!GEZ91Ar%$d@d*>5l z&LkmxMGl zVzA@0{4dH(9<@sqS2$5VPmzK?nqeqsl>B@IBwv`4+z|XSZtKhKyoOJOCwBvT@jpWhY2*O9!&IS<(Dqab~AB zm3xqbmf_NFV7;CKCm5-tqI%Kci-(P_F1#$c@3POE2Os$I&|C6Z3n*A#+`h;;-9jQ+ z`?E)ZnnVbTDp|?BV>}{T6AQrJXpCO4n-bLbX$T!-WO!7sbz-DpwI9|;(Gv{yRL2u_ z?p}*!8uO-me9bByfqhuU7xuX1hi5 z&om=B+5t4C=L4n<&|OVVp)amehL{HDf6EY4^V0T3)s@_o00V>$f#QsG6>w%$Wm*=l zcab5mECg=b5$t|GHT6AWaR9(KR5$@aeBURBRk!44F!u5Q9`t087-TPL%MM7Sn*||s z97q$roGcQ<+r$ zp~FFNvf6ntl=4@Q7cjp8Z32AnGOR%?WglHD*`9{*qS=gSBL@Ed87qsxbv|xbv5^Ck z(u2e&*vOkN*TVrj-TgOe{44gd!2St$7aPN#0XdqR(IdJinTo)Y^p~t05pIeY>}STX zaV(Rgi92?v3{bPzV29%KW#uXyb-SP15EW$<4ULjI85F@-d{em8GZS|=Y0hucv7vnm zb!Y2Cpa;k2#!f7M?u}~2Z&XR^l})gBjLC@VYJ#7*#Mjg77mozQH!)+}O_9|QeKkK4 z{?)6u2bz-Sgi_tnpXy^Cw^16PiXIU0zfo)ckWiGL0kxFoU+~j`rm^J%f*oQSmv|L7 zs+n#N-WQUc5nIbd|~5 zb1b}@`%-T=JoV6YiZpKKINIUx%B7km8!(v9N^%c-Wg)lttHzp3{I&ii<@eA1as=e9 z5kB-exBD+m9Hb>rV4(!=1fbIXmHe0Niw5-Go*^Om5pOWq5o~uU zRDA#Jf*C~!Ik)WcnV(Awj@4!94I;1%1=??W@^!s*NEqH%vDv31uxtTl--rn=NP6)a z`*j%=Ab~|F|Joo4Nx<1}AK2b?{Y!(RFK$SY_1S3tE0T&)7+pAO52A4UP_*@x)Sc+y z3c*XGPY_U@99{i!JyWQVweAEHuD}pwc>Ph3a=6=KSUUXJo-O>D%A;J6=N5l@T9X8WC1rFc5xE8Ghs`$WC#VWD&na0iR|qg%Jk;9ff2G*kH@oYZK*gIhe0cZ%2zpL8N;<0p|QXcjrk9|SuJR*_sKt`La#Nw(oh{Bu#^^V_> z-$+94Ju!}I93(l(d$_v&euinDSqKEii~guTiTJF(#7)gf0HrZO4YKM_3OlCvc>Jkd z($P0^0I|$vMJ38*UU#TByjMj3yTe^RI+Pz!Z*5OhIY0Y+jIB-rno9}}hlG<%5o3?b zb%IX3(t|r}QdoKWMH=;HK7DjyMeXxAhTfjC(^a&KajA80mi2zsCMNeY;rK;*+ks4e ztQr1PViamwwRJCuSs z$`c3uSdHR_`G9087AU7;KgGIXf%MhlsGlQoL9ujO&67h&7}U3`2+}gBf77-J-v~*3 z8H1rX#dVi}jVMj{i>@2 z9f+2BWpG*Gsj#)Ul5=;e#!VwHVxc_ zA4YVaTHt2tk#I2M@rbE$_~^%{bzNFN0Z!3O@p{*Ns0(*MUIA&D z@PA@5{_PcvOb)mObtxTYM zbH|W-0|5IeEi+fOFvY>7$U0Ask$cyZ%Apj6mK;#ai0|k6wMnBD!1y`ObGuY3q6S-C zLxM5k06U@f0+xE=Y3k#Sop80q_P+Q*P)OQ6)Y*sgtVC|Uuo;=M7@<~TqRk}= zQK7s4EL;^kiazlTljb+$%g^A<4_W1s0R6CN2!UlPP+8E|Jew7neupn&?u8%JZNWSi zCTC3H(H;U65#l^6jE1Dl)(x@#VX4rN_XzCfdxb0OjgLP+^AbuZDrkfO>_qO*c#agM zV0H~6g5osF7PTjIMPH-fSATMj5E`W+G z6rzI4--*<`*LvL}Re<>KReYS}@H~8N#D@6|QOLre0D*RVa&@yPL^V#96}D^7|HiIJ5*s3sSNmfw4p z`5(JGu)86}HPsLfvEwnOCZ{s&dcU`cX3(lUM@=GxyMSh0@cefTS?iH(n9N@c-jmZ+ zL3@MkWfVz9{m`d8)`yKhlb(XCNPL|R#Zu*@o1ax$%Y^M_hSV%rlZ3CC2IPp$>rxyz z+PPmmKdzb;U&>{nDo+HFMd_A?`jtjv@?K%yirih?IHD)TkO82b4s}+(zwaGKU)pE2 z9#|K4iwO%9uRe5?NlPY+9&0{kW7Et83|kd#L*WtvB#)&e6X~(KV>ZNp(t0JQVS{f= zEekg0f0cCYetWyZBBfvelMARxbjOgP0) zN7z3|Enbtd5-HL>bm}3`Gjsz&@&-7Jti8Y<8JzJeAgKgMvihL@-O&m`vSoHPp@L|x z^s~jE>|2+Ze#x*hX@dG)ydkDk9S)Dz;`QoHi~SGN_T>u+-LelyOSr^;Aa8aIeuLK@|R9tTbtNL=GjE88~}P&$p& z%5aaNvL75gr$5pt8j?zNy`0Uif_Qp{D(r}BBe8GAw0bwu^Ddj}^9#%Y7T~~pu7*gV zgm<-ph^6zgN6nHU9nJxB5W_)lYYRoQEnAZ#ezE-r|HIZbpZD_f*>c&%B}-?U)_Fa9f4l3`>nG6m6nDYRKH5zTh3PgTQ=xvR^_IP7=6C|hAcy-0_0D5wjZ`II#Q&&nrlBs zL7R}q+LS5yJRV8&kB`0N%P@TOzNK!#qa-m#@|v=J=k&9BxTo-%#2vZC>3P$WlU3rR zwdVHS(C58M1mkQoLMlDQruRm71K0G$p<*e~oF7`4BsMlio@U5U0)+QIsavoYH>kFxmEMMM{T2B#~YGgJ31wA z_()}C)~~c}q{yQ64GrfS*m;iK$G;lgfdT*9i+}HGg7in6Zn$B`zpGUgH5Dr5EJObb DyZ!_- diff --git a/assets/local/localization_mu.json b/assets/local/localization_mu.json index b2b8251..8ef116b 100644 --- a/assets/local/localization_mu.json +++ b/assets/local/localization_mu.json @@ -153,6 +153,11 @@ "message.view.detail":"အသေးစိတ် ကြည့်ရန်", "message.hint.input":"စာကို ဒီမှာ ရိုက်ထည့်ပါ...", + "boxes.name":"Boxes", + "boxes.title":"Boxes", + "boxes.new":"New Box", + "box.edit.title":"Edit Box", + "btn.save":"သိမ်းဆည်းရန်", "btn.approve":"အတည်ပြုရန်", "btn.delete":"ဖျက်ရန်", diff --git a/assets/logo.png b/assets/logo.png deleted file mode 100644 index 96a4619df494acec4149342f8e5bcde12fd6bc00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96138 zcmaHSV{l|$)NYcAZQHhOI}_WsJ+W<1JQGZ8+n#hLwx(k{U(b8%`*W-A{c)-~yQ_1~ z*?X>H!&HXVW5L|^Hz_Jj#oG78|oh?o#>zbK4FrRZD6p2i@G!P z4I`in`YRG-mZzB2u2vM5OL-YK&6iUVQNk<()vts7{kUH&+_SPUzx}}zZIxB$&NlpF zh67FnYoP+xutau7Wx|E}fLx!OOlnQ~ikN(!oH(p3ZYFUK1%6~ffo`Y-Nh?=N3%=l_ zjEMN1H6ogP5T0z55qfwO5m8YA)$BPA7niXYVuXftIMs@s)xp`)B)L5TRYSMGzkhqM zzy3VH%~lQXw;dg+@QhC?Uydib4EG}sxc`EvEyhSvE=D|M4NXS_bmmy^4D%1O^9|l= zE2X24wW%m${I^dOuq`o-z@+*tCeU=jxyb6egMlGn{JX%xa`SOPgD@U)N>VTfu=p^% z{JC%egJ58!U~-aTUwzijdc5-wEDJ7Qg9cf?Y97NOB2IiWMY7jfY5x0{o)`n3{<{S@ z+Hn1^uH!SI$0Yy33qIgx6ErF+8sayL{am)=d{s3`b`1Z{u0HV;*nvKUb^rU` zE_vnOU@iW^e}mP~zW)Z7tHg}{KfhTft^0rf=70a?|8<{t;xf>K07J+g{hL_~?(;8% zh1;snzyJ4GYyKvk@1fYmZ+Zx%W?9)oIm= zd=G!zT8SzKkaYR!W=XHN`HOuRl@|Mbj7T>IrI+sGsJAl*DV!@ zYzKPD`^sO-zXp3EONX@QTW0qS>eC}sWjhuR8x2PB$$x5t^VR(AGM<5`6Egy${8*DQ z0*0V?H=u9C4NP5mYTc>H7hA+@;a?72DyRu183#<3z*f;#u`}7+$ zk^k1Ar>Pr9gxS--%oQH?W`iP}CJ{onAfz!oh$I!V1eP30eS+-UZMP)PzR=SIXca+= z0|?AA;n^|Tov&D#Ymi1grIsVFr`mX{E(o|Dt-J2IeE%kJ(H=*uUSljWWd8Z4Ciu#y zavT$Ut=bGt#Sk6Wf}J$UkMqbC(V$iPN#d08@8Q9VH#_N|Q6KH+jnwgDw02FmpI++P z_iljCgU5Y?XNlal{L+NwvQRxnQC`-W2{4M+p*X}7bd`nuX&*N(;U+xH`O6T6jgh|p z1=G3mEMGncESai&JlKY5fz$+SQsw%23ME{May|7^r}M`QqjumE^sn|e{EJ?97#Qau zR`Xh0uk&1*7!8jy+E_#)F<-fbHB3mbmx9imG(<;TF!q;-n z`j^4>I$V;?iC^7}vIJxWzZ`!K%>};*;LqSKS|D~0>PDcVr8t#nDpoF0$dQNN@oJ}X zbE+|(daW~hw5Hy-x%Y=?oDIxkfs*&Ha8-1SQ(P z+$QB|9p;lE9GTj{Ee0FYW3_ymo#|T}q`C|gDSA7oq=lDT%r05Z76)dNx8Z)#qw-;) zb(1JvC|Lo1r-)GxRjx!DT(F~}Jy&Hf&6;U)T*oH9KasftwDsm>^`6n~Cc)9ls}M#> zjs6K0yu=vE)fro^{`%j2K_N^iJ|Xzc8^T@);CB@(UFC}Hb@9#q*9-2Y&nuL}Ci_$v zu?M8MG-ZP8(GkwcJ^LPSMM@&f34R<`;lzYotJ7v|BIW-6zJ)G{IeZE2V0vJxEJa4? zvV6{FOF}`DzR!bu;XvM20P>vAkpx3_*jNf>*rZwd6$R?{V&UNb8hb=oI>cP0+NQt$rOHD*m%GG02697*iIhwI$ z569!6${KN3EMF75{&>uD(iFJ~f-XWBN8+JZ`g;RWUHsH`=7}GmS^@~ht=79Z+?N)S zf2&WDgSCR+0c_8@J|B`C#ZJ|g3mGpuD5gka@DhY1$?my!r`^2}m3-YR2Y+LYK-*1j zw9{vR91U+COV2A4?zMNOUWwv04lYJd0;P2s1IHH{8Vuc!J z^H_6v_cY!K_3q2setY3Y{^J8HU$KMry*h{{PD~YyWka@

NQzsS_KAsFrKX-@%qH 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 diff --git a/assets/logo1 (copy).png b/assets/logo1 (copy).png deleted file mode 100644 index 6254dd0d20ebc85ab629f8842c4d0bd260d769f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36541 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

Fx=zcFhR6Y!<^W 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 diff --git a/assets/logo_btn.jpg b/assets/logo_btn.jpg deleted file mode 100644 index 7368d49b2ebeb154a5188a8c3e85a86cbcd3af99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23879 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 PH1ODV9dT!>&p-D+nOK>E diff --git a/assets/logo_btn.png b/assets/logo_btn.png deleted file mode 100644 index c3e37af9bb8fef0c4e470a79a960809fe5f66c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67392 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%0A`Pn#2I>Z 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 diff --git a/assets/page.png b/assets/page.png deleted file mode 100755 index e60824003ee6db87c23a45a7316abac1eade6e77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8214 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 diff --git a/assets/pay.png b/assets/pay.png deleted file mode 100644 index 384d33c9c83364c8b9a5cf40dd2a8827c364df16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2240 zcmV;x2tW6UP)s^z7{H_V)Jg@9$7hQeR(SXJ=^Rb;g(x&x#gByZn@=_TW;x2P%obYcG92}eF|Dl z>PO5cfK}hBeF}7smPlFByG0uZ?L)?{-4@hFuwUJ}XaTzR;L$+~h{Fo~D%eA-=O2al zN=mLJ!wVq({(I^yZzNZ@)_*~Nq@*aUTT8)8hd#Krh<3rKZhsjnN=gQxJ;Y9!f{+?1 zOiBn1MsCM(AsmLM5GnonKvUejI;M=VS~oySy2b3;F=g5@%_k|%A@XX5nt@V|`?dp* zl$=ktQW)5#tW$38R!TD*_^dqT5^&!Rx%fRZZ$r7j@<6Xr(k+#XldW9jsRul4*bZPj zx&qt#d{Tl&Le_d#Gvs=!f+j+iKBe5BJli8BV?AhXAyDDD&ziuqP=26-pu#sxZ@Spj}9Icc@ zrO`HAmE%d{)`jJ8(n=Yb5RN`U=Jpjl{_#B{^9K<#pYpMb`~k3*>g)SfvCKILRtsay!=Qk&=XvWo67` zskpFh-uI+@q_UPt-I4JMl{iTk?6F`BtzCxcUbJhYb=_3ED@`>j1Tf_+ z*?acrE!9#DxKK>DZpUv8tPo#j(XZZ3X1Fs(rff@SVfr$Iew7HBvkc2%aY~}SOu=)R zEY?B`$U%Em8Vx0?UAy1sgsC{%i_&N+5FRJ1BSf|-n?1Cb#Aqz=mvltAI)U~AygL6M zLVL)z@^yPfwD0eMp-1}dt&DQTBSI~6LXUDpJ%%1UW+I=I4qhzXk@ zg~|hzkxM067!P;A9oJowwhThH_7_fZnt+SxLRZcqlr&z=tn9To!aW5zpj~^-|IaN~ ziWj(o&|*@*xL+Sk3D*Tt=c&@2G_xC+DMj5V=~_m{GzWM4Habxr5VfV;09+H$JvL#= za0adpz==dE6m|VVx^WnSYmX0}fqMq|QQ0~3c_38bc6<;C%(70o8dl3cl6*R<4+mzD zb&8o|%Yi;^0Pfg;a#`am+|9JdJsuLK+?C_HTMf;?q+MakRp&NFEVwVn4!H#gyE7Kg z!G*w4Q7vD&EY}URo2>&_uXZL%PpHyu@K^x|f$K5?+Qqd+xZBulxjgO|inxn3m~efA z4xJ{{(pl&TT-Ty`aOK_mqgk3I|J%=ji$Pj|%hIm?!(swim5Dz}-aTc+4pii@4zOmO z;(T`kw%h(1FnOib->%sZ^Ac>cNd(7Y1uNz($lQZ#-;) zZj2dOjFC5uu2}&ZUP6#j!Ie)G0ZS42Jh=9Dv*D#cnK((nxddPZmQ2bOFw-X1)H*|! z1t{Z3K9QI8{dbV0rJTOso$pePZZwdV^!u%v$4SRR7Qpvt@MkP2?)TGyu^Y(dq@M|> zmivp#2?Ybc8x8Q#<~%eY#7a7LhQZ%Z%{sIqyIJ&<2wCuO({`Z#lan4;hX!Tlagy;A zYv!R*Im}59D_)0&W^=Y5p%23gpXI-CPSR_ic*6^3)TwsEAxqqKHbq^yZ?qc^7Im>_aZVyN zbT6M{%5EAB1aJp=%NcdtMIgy62R_N#HZ zYlwVwE&Txi^1=TeV2&_3GXTH=(9=>k4=y??4$H9q{_;=M{_leSUy9Pa!kx(<3k)GJ zT1(2in=T&>wa|rAwS_PrI4sF7+BuE{*3kZtvu0jdjjB z%)F-!v$xTfh7Fs&|7>PvW^;5i@?+$uWPwglY3r0f?tLeedh;LbLVn#ctj@dcRePZW=Ct9zfSdj63M1ffuc!c9KIt4;Nb`Y1|zs$&Q4jt z7Qrm|(36S`#=F5raDYgL3%$5s0^fGixQB8IkWCva4&r(as5cmh16vVGU6{k|6z)0l}(IcBGNwg0p7Ipg& zF`9SG?*QG9BIb*vw?&*hps*UN;v1o;KiZu5wt!U$!pkS~n5{-?+Gfjf`>>%e|9j?M~BKL?sQWnvq&;i;843l-0+)r9|>GB7l5O^ z&R3=Kjh1frg(xvuhW5)D!Q ze#yWtNSa0U|9+E-TGiY`9p|C6@vl$lHaRU+4jn(5Y*=jfzSF0@vtvUVMLMuW26Qb) z)Dg-7dFf3+JC%>O$jiQ?m6gwEw1{sQ3f)+EHY)DiP{M}FTQs&_17a9yp6P1a$xz2% z>C)119W>I%U)J1{h#ksc~bA=?3q2Zw=5brpWL5>EUicze4|S{oX&BfHSmCk zSiRz8a{L$%mbf~z2S(;{p-BSfEFZv2us0fP)qsi3U|7EPBig^S^+h}c(?MPIt;WY{ zTZFDqBM||&_C0A@$u%`<*Z`FFf-^}(M6@N2hRE`B>Q*%MHL!k zr$fkez2q4@F|bFV@Etp^#|>5oo`WP9 zaO|vlOdDFeL+esGI*QN;$cDu=kX#BjfVClxgGdrMnZN1LdehDtVK`-c=yQI`c$%6W z+MP1pa=bg$eIOREcFeGC6~Dm9gu-ZVMz&9+tK{K7(fN9ngCbr*%B9UVJ6{;O=fo(~u)j|(LrK*uMkfS!IkJLBbFBLwu^za=ExRpd*T`zxmU6b;D8QhOpvNo3o4+bHq zZWDI@$4H`GiF=?1E85sS&{<~LDO==_pHaSF16Ru<`Y z5^a`k9v<%5!7E*Sk)@R0E9KYCkQW`KadXM;7coo{-3%I{A=U#_Nx)O9%?!am6HWkYjh_ z+Yv$GhKN0Y(xlwL8+!P@JYE>@S~OJhl`{ca+fG_xWQ?m*od*z9$>c*P!#pNYyw}<6 z1PC!6MuF`@vtHaP1COBH+535Z#R3`@DdBsvRJer7k}=DaTTNH)Wa1H&Kfp|qB#f7> zLg8hVWoWd{w9(JepvB~h_?w2-+)$6tltx8uzbyHJ_kw}>O!N!uPiETICufOPV})oY zP1OqXBf+>^{!C+(;g%zLIRqt#0gFrLId&NeRq_Wl)51-tdX&ro^;*R)B~Fcyo50g2 zZw7sKz;=E+a~QKgiR(97Ne6F9EMg}w7Ram}eOS^(ckS7+?0L5oXpp!(`_S6;4Ji$e z15+7&4(6jAUf74)>X7AW7s*`G2imMsN+X%$_w%B}3bNb_mJsmp4{BhCPqI+$M#+2Qso*&V&nF7JGn}aRo?_cwp zCE)Hn&7}~%Jv_n!W|Nis28(r^e^~XI|KF9{(|@*nwpp~(mj~pudUYD~j;ho#KWaKT zZv_GxDQ{~0Y37uqx&bWd2-c|f@;|)|EL!9$A5NLee05MSoCLj`_DzK$UveBtIaLQA z({diFeSO>Q$JTaZ2vVAog53r5maqLSnc2;!Z2{`nkDwzfue9FT(gB00RlM&6`9V*( z)#Vbi9;<3*YDA4*=#kX-p!k8 zp2Dk5L*}I`M?0FBMd{lrAe%bmpM;0m+ zHA8^KYRrdGf<<-XrfRwqW?Va1J>43~9x*gE<;5V-ILqI<3Sq#Shsd7uX9R2#N^E-u zU+{>&yA~=z*?&VkoY*!bHkbN|X}Q{gd8S4JY#Ms?KQhGMwst*eL$h}S=KUm^a8`cV zJ`3w(4A4m>9PDao)X$EliAJ^{8)Fw6wSG?>YiGNC_WWPSq1H^_&iJRfhc*_8M=Gz& zrpoG*GwI<%!VMGykuhDJ7nEq(y{}jy;+*ONj%M}_lHmLu4E{n6m9Ul2r{!%8RqD)jMbAC4ET*%HuD())~J*Z%nSlOl$Y9S9#cIxd6K36CS$9k#Fr#E6+Wp?ZC|0dywl z3@@9TXs*ddtnn2N#SJjMEHyvy&RR@b4Y7O+enk6+U=10`^FvESE7nGI$uRbo%NB4L zgaO|yM^Os^*O5j#4i5#&9-_@g{ZUzq15s$uG~)Kp2ku3$>r9?DKznA9NT;v@Y-~PM zu>)=~soMI>2Jr1Jd%MV=9(d1Qs`!vBooy3NXyAf22sW*T20 z^c8%?B06|qqrv292jiGIpYQxrAXNW#7{2VnI!_ak9NDE~i}KRrS;yYGJg>vN#70Bx zn-nDyr2gTfOTDHb8bfVH#*&`YLDa3={H3JSf?Ku|7I_(*G>Rqs^$4)s!2BL&K-Y{r zdkCePPLD=JUzBs^t?O`QE-cs_g#7}oI^haK(Z5<5-5Afe@-E7(KI^2EZJRdmC{TU> zF{N1=#k?O3xLrnDur5v&dMIFCVTh6M7LUKM<(3(7iG8u|eH8y!{5q;Dn z$>2p-oGg`tg$K22z>f*!+Ww=8#(jkl*ZjtrKI?zQMe*TRHay%4as({mN^9W7iy|eH z#BMXTFyQ0L*3NgAo?0f7?7+C{#Dw$`AVz+?znwar!$W7x2r=kI_!s*$_g;E=+FaEx z>#ql(4$_;bb_(2)KsmFwqK{&yZ!YHpx!1q_`dT?sDvZ@Xyf@zLj~XonbTnYeL1GN- zb7tENeoyK@U?RyMsmrm-pIbxvKh%75kH1UP=NiQ3YxpRS!=QnP=)?K$Ib>Lk^M!rD z+>~Yvn(BS5!2of;7mDC;`14B#Z!Du4*S%yVA~mXb+=5B+EA&Q`bvEqkB?UUDrY?xH zpvB*6+m$=U6k1hqkU4FU$#9Gd{>uX(X}oyJu0>~IBEg_7NwS9D^9tV{XmuV@^Vc7` zJr(P&nqT&hZTT3je#l&We^3SEy^Jw4D8WZ*99AzWB^}ML+x2?_ZSuFrPa@)GSSsCg z%2`LFOw~*_!RALDx5)dn=UolHK@QIX+0=-T)4#L<%Wyb2-yWyghC z)aj3f-M$3TiV@gDQj}p{8cYYPxcyNCKx7DOu$WZjX)jPQ_)AtkGGx{!WKyTlmAnl7 z&$vZ6ji0pxf-CJ8u+ocJ5hA`nj5P>O@p+~})xjwL`S+Mn08qB#3iDxfDk#szIu3U$ z021e%`$COU}w;&fs$+*C|K2c)Iy3bc z#Y>xf{`wQu-kAi6O;|1w@?yI6hj*|cM;8^6>+s^`ihA&YH&JSQ6D?eMKIrs<+3}t?|0wO>;d++-^L2Av|LML! z#m}&heq55K{@){zE2Bk!EqOW@42q;+Y8$=VvCrNmDKrk`m2dgHsg& zw?v`%$@?CfA?FXaxPJD(9R>;JBzeFGinG`;rsmcJIn^_5x=VH(bFoCW0VP za^qufYj$)mU%1XXqzTU?=oHUdT`H|F(8;fpCYXe%FV9q`@}*X;ma#UM-Pi}YRZj(X z5T!+wsAL0W&#AZ4%}j`lV&Dtf%XK&A`u)8@8AdCyqfz28LLp%ShX%MuvbxWa<(e69 z%fA2_JT7+wxV!+S-F$;v024$NBTDe+J?7&@Kcm{|u~(%EtN@`xbC6Ku!U!e$o;Uq= zJyvSRUROvNd9Y|37J+Z`8S z7CUb}GEL^|k{&&2iA#z7bkbZ0u_k7ppd;W?G9X#t>5I=-4vZlen(5E#WAA78UP7!S zgDNS}5Hyn?$DgVbeJ!zMz{fDIkBm^WTw7>nA8=OE>r0}>%dd_8yaA$etO|v^!2DMl z;$J`GB9MY_6}5_^Rq{f7OLg%`xd$FK7%rML^~TanyLvE2{Lv~bl}iOQwcyLKD@%)p zr2WflB$y`4=36$E3SdsQwbi1@-pTy9Z3sua+l8{MV=`EQZrVqAxwsM-ifC3fzCBKp zTMxgblKIdWMfOVtBNF=C>Pc8ZIe6Pygi(F{jeiptfMmLJDa%t!QDvF;0H*sUP{FkD zh+^7j-Zfe{sl9(DHsZ}o*$vO#mzno~K8^dYa?WIl{#A}gpJqsCbj~y#1Aq10NS%mK zd>f4H9V?}Vfuu-4)6uuX2+P%zAUq$MCF*E68_El1d+0q}>!xX7Vvtb#C+@IF1cDq} z48nSrsUSQH1S(Ut>(#%fw(Q{ZRVH2w|KaS^Ez9$vdBf*GNX6&b%mEN?JXQ;f@gVOJ zC?6jVK_2Nsn$C}{(_~DOK=hifwmkh=uFDaCpKiCVmRl-`31V{lJ^Boi8L>wW?~U6; zlxWkqaKpe?$1`c+#0F&PA*7d*JQJB2=VDZ{9iMH;^b3&26d&8IfFv=aqY0jJYl4BoL0+qb_{7ZHsGM z?He~9q*wH@XNH>0D$)25-KBEL@H(b7rQ*zu9nC$Q+^3PPsr#Ox<&o`u>KCWA-a5O` zMd;v$>f0v(>j_(C=)tq8!4&#fwrl_iSL_=e1Jd!1r=1@Md*&~t9vE60e*jDjMZPMo zd;94*-+gH2qnBa@`cm}TPQs=ZN{GuLl(^Tz+|Q1sGgrjPg9ENQ5X#|FBllx3?4d^g zXZB!Pqe08$k}O1`390p&N{4ufCnqLlv`V)UKsz(!90EJ5JU1|r)2}&?gf}`gfRfbB zRbr{fYo2aZ{56MeM2RGPlp;p59Cm%O9rF6^O`@OHT9LR3S@K``u35*RWOx?#G&#PYZ>rw^xvabD~*!m_kwrhW+3ET~5q3<}Y)3HwXLj zWsS^;y!;Iz#pX^zLA(-W?x7|{{Gx6lpeW^N^-SEcH@6ad3JqF)PKc$pIV|Nay^0>& z`_$c5G4-6>%Bnba(C)tD!Lho$pYn3`v@>H6<9SZC(co%8t_)C)aK(Quo*J6!$Msv$ zJFu&c%SW^Tf!pFs&wQD{;I32v3puNpihwAqQ*2@RUi7J8*tM5%7I`txso~^@12~tu zUU#C>L=W{sM-M&%61Q;yGaI49w2j+X-N7uC&8zklPOtXI+!M$^e}sBLGxi(cF>~<% zDN3QzF=Tba;m@=D)z^&AsR8b7)2lm0{EqE&UcgI%D=b@|8eW*XhTNtPl)0s^srBHWICk{%D7`wKg$KKbT2 z;&;f^10NlZG|?%*=kPhSod3qIwq50N+1hvWbT&0b3IUVKtU8w34=5W`%_XJYSUld> zHM27a2ZtjpY&#s9ae;LL7SPh*W6gcfK4=F&YR`5lCZJgh*8#dBBM_~ z*HAaXhl)70ce{gfYI6+t|A4&8P6(3Ke|3jR|GHr>lRuqyl6sh|#Qt-_RpM5wAkfL; znzZ00nhs4VWN+0e*sL#GaN|8j#WR}3S*NK^Qq#BdG^ccqXvwxkbb-L5=*fqfNm`j0 zg#-fi1#SU@=~R{lIIW0$UoE~?xY(czdI2=N#1J6RN-Ge72 z&_pQT0mp=@#{lA*2Rk+>z1ddjK*Dh%5v>Z!%fX9^>GdJ7GEI(uK`VbR{C;9+RzRux zQ-?0=rkokq@2{{n%rK{{{OU(>6QDI@U~K>(wJ6>B-w&sGVl@i%r#&uaHRI2(rsGkP zV>FU@9VD&bA7TEvruR05=Uu^`n&o@@Mn%t>vul(0PTlrf5SYZi7bq$Z@P!WYj7OyN z{XMul%)nW+vIe&8ORImJdN?twNuoa z^U!jjyn-Agx~XTPwG&1}I8~z&51h+u?!miYHS$!>*$vCYtLa$IBtd7MIGJpD+mwph zi*o$gsB*M7^SGwe3sqZU%<3O0O&E0j1~?y!;}Sx+=#hrP3ftZ(`co`>iTXM(E|czJ z1hKY2-iqAH!#(wIbMX@UdFy$@*co$+K(&N-@Noo*&?j6{eLQ`}m7C%|dtIc;`NAO? z4|?ZSBNg(K+k`cZ7WnD(tUdQW?(gf-rM(?}g#m%SR&rjd_ROBqGS=do{kzRsD07aN zq*4`QG@u29OW%3Tre2StlA=&~@OXq&oZ=F^FX5SL%6k2V?}0^P6E62E_sA{l5m!Of zFpagjy=zN*nSEM2*T_O!$8_`%>>9gcp>B9VP zy-5(S>(2=z2U?8t)fv?&_riZf-Wc+mIU9e&d#Px+H=d1B-?`I_np^S90v0AGcSP%xo3`0EL* zFCaVG8xMyF;F)78Pt5W*sZ>&Dk&j{2O%ajTIyI~2;-&-~Wa^xCdsE(1LR7@`4z|}C z4~bKMBhhoy6XX#^PVTKUyyWrWJ1>m%&`zk;q6we&Rf$Fj2z8J-BTCht>1H(#`NA|J z5vn@x-qGs@CoXY-vqdn$amP!^Rso`doUg4b!f`ZImw+{Ody9tx<-f-8MxRiw{HZ0X zP85=RQkL-ct@A?RHUteUC|y~Ed=cP$&Imr%E{=i~MG3?}>?&+Lx85d7Gz9^0F{Dse zRAtObcE5(@P7aYf7=~+D~9>;gM7CY{gG=&^C zBz)gyoxm0MR+J`y*Wk}xyh zl;7FQxHK1(s-7Ry6KfM871o>XAB8-t*NP<~L~3fl9H}S(hFPDfB>5AE;SlAc2bVT> zV6=GW{mtaJZF1qqbhOx~)E+i@@59X-@Pp}A7~S-o2=$p%^xE*Jcs=*@LImIQ1<)9+ z)x?DZ>I0{b)c=@$joSm>Ntwj?>7$+b{H!w{AmHp3HK>yD;|Ozc>4BQ!GbYq6GUUId zVS8p@YzNsp)r1IXCrQDst8ymbDllAd$3Lk+!m9ZvqJOekbX z<4BgUR=Ldsesb)}UP|i6z2z}I;Jc&@915j7nM;LM^rn`OKgsHDvUn(1{yFFw5X*4M zu^b)3Y^5>ZY%WmwcKvzBm#f(2-j{4!mJfqZHKjp&AnfaZOtIEJ_>69UH0j@^6EnGz z>vNTuT`dhQ?r}5(MbSTEwT>E=%=Dd@J(YkLMb(BUE~J4?G*#7DvQ1-lRkA6W`wLSF z$`d>9?N;Jj6D_8C71gLrB?a~pe}%SSO}5K&mj@^BcLNNysN{FPX)PV=WVYL>stCEo zQICHb+|F_zvN=-CkyTA0y9yc!q}#Wbd7s;j7*>83Gj;E6Jk5-Z`(2UulcsP4f_&Oo ztbOgKj=i!Q-Itv<=ROwJ?i`v`CgOP?p)xvBLe|2bBYhq9Y>R)iemD?(hM; z|6u{dB(mNWoH+MZJIW&tXAo5@SP*a0H(upfxh5z{lf=_gDZ#qC&voGgjKJ6TunsTP z*}qSkQEUi9V7^?*qayszs_T!VB!+bWBc?WUj#En6BH{Ez>IK98?{Yvs_s$)U+cTSb zaAOQ&0OtVT(AAmf&KX;c(>*Wff!QHqRm^z$+>Vk= zJ_0Z)s(ZUE!TAv?&tULS^0b$Y?=Lnzt1eYwPL2PCS}0hW`)6YKzdJXV{1^PqX(_81 zabJ9ZRbfwT(^5&WT=M<48(3HE#XYHEkds%l$N+i8aMgSs4#anWWd{98{;Q=lGDBva z$`zA0lVSF?kJ+*cVEyU~p(CN-(RE?U7#G0Q;+niiT|kco3hTqG2^!D=)6AtRG30vo z^705#FtJGnR{h4YYq{haIw?x_i=gJ*Dkc#*&!&c_d>N*M4lh0jr)RH3@;h{r?Am7+ zpYtH-q?UiPp~$2_5f36m0PnB5e6V%gv0dgSt@w~Vb^15!p~6cn>aU+$r_LIaR9AK< zIhzNNP71BM1W#z0PQ3~MTna@BW&~KBeCy}(!8I??2CxI^m0A4%X7Ug z^w^4hOVtcp@Z4Egf|wcEb5}gt0$9=Xm$(12ptig6C8_7k4NmxH_D-P`i7w!>6d}AH zs60Hq&EBC1(1U4E_*$Ru&1l)(ricCScg`qzltj3LxM0A4#0JtMa}PZtZ`?NDvZx@D3FHFx>Pc0&R6lYTYMQOS7n{*CZ-HoPjMSr~@cdOx%b;{y$6Q7*J<)4zciY0CJ=S*$XMY_lZQk$3tr`O7 zbsKo>Zp(|e)pIcPsH1~I8V=0y! zNik-*5|+)lrG8iDf|2~w#dVnUQ^{_+ zjJ#L=6>#oMZOF|l<$lX2HTUPk=&RyF!;cS&1)9d0l#%qTEJ3tnk0zai+=~q0wfRIv zh^z#}*hLw_#p2a_F-xi$(C@FkgME!b6?HxSf&jfl0N*A=g4zaRol=nIcLkOn3vYR) z_Sgb!{R`DmiTwHNa#{ZczIe%Flv8$%d?`lyi9bUS8PD@kal!Q_WB=_zCT_wl7uatSHAV zeV4S(jB(rZl3(GXK4M;M=1-@0UmyJW-a@P<`g2srhgBl+GR{7ySG#g$mO-$Xv^%D7 zr^?=rSE6#eKm?+urud%0I$a17!kS_E)xO1P`3?gkr7PQcMX#WMm2^wW7G62la?%5U ztW4=J3af|Ig?!^~x?ink{TtiMii003DquMzN}T;Ze1eWu0PtxuL!6|4EAR0t>zNp& zl~>y^1-1)<+JUlLeAQ;qw7EhS7R4MVOTdda@ddi|n)c3X)Cr0i4+O>>>xq$h(NAHt zsF(=k^HJALPSyX`Ep6$xv7zIqS>htxj^C}a-kjYBlmdI=yN-F<$yCiUWq}YkP0wcc zj79+pq5-OZ0k`C1P1hk4%F*eoiXxS!8%-*E zX3DIcq7NZja5et6Y|{N3*Van7wB{O^qYN;i&gFBDI{qUcDIsiRTb0tAXBuxco=ZHh z^d(UTSX-sUHy9{a;$Evsce7ae{YeTXJA0F|1rCa%U(^p(>?9=3p2814hvY7-uwuX8z7~lFZ!t ztLe5RmFK2$d-AWG4dQ+IhTsnPv8Q2q$ZXm#ZjcjepUuJIe4S2-E=Y1xZd*&C@u zdidU++Uw+niWz51eTLyNf43mP-YF-VJE&NRj8x~L|ES*~O~T|UsPoESc}bSk7O+{F zSdg{=DCG$w*UZCr$M)L2NRM&7Q+3b;$V>DI%KP!NZ;2tX0A5tA1Xi!WJwv}6z=JS0 zSLp_(4xOiLGgv7oC-+_%p+Omj%hP*JQ=A5#bWgLGo!Ncldzz>2CTgq-d=yH{fLPvA zF18TBqo|PC#O6=&`UeAb3BlRS7O^SXAxj4+j^r2_lx8IVT{rtrw}2%kT2`k_`}vV5 zLZ;svzH#*Mf3w6z(bNg9ugO%^i9TQVkh37eu8X(89JjO?r5p_A)ZYhL4HBjS>0PE` zy}c*g{UmB_knzMHobC3rN5c_FZa0=CDoiT7ye*(fk7}E+UIS0gbtFu|Q7%qqKNzx@ zX7Xn!nI3*fGqLkDDIrJeL2_5Fx_MU=ne%DTmiP4_3e540c6y>ma(cBV9!a#wL#YGX z^iq{L>W=loL|ihfGzJ6FEu2*O@zjZu`H>WH)Iw9NwO1h!)fDcRm?%d-HW|)AXT>{2 OB|uNxSgT&cF6MvIoB37% diff --git a/assets/phone.png b/assets/phone.png deleted file mode 100644 index 5e8b0f5b12b14139c1aa0fe8d73233a77b8a654f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63393 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 diff --git a/assets/photos/1.jpg b/assets/photos/1.jpg deleted file mode 100644 index 3186d794f40117e510429a4d64ee28b63098af8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18216 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πK2y$|;iiRUK6L1`UfUq` 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 T!_CpVKNS$(($<1`#696(R*3uz diff --git a/assets/product.png b/assets/product.png deleted file mode 100644 index 45e34977b8cdea02720145a557a8ee8c222fd929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23600 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 diff --git a/assets/product_icon.png b/assets/product_icon.png deleted file mode 100644 index 356510c2856e2fb41228748521adf6b832035bda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17560 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%0DZ7ZF2%JQ`-hFTm-@HS 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 F{{`&bmb3r> diff --git a/assets/r.jpg b/assets/r.jpg deleted file mode 100644 index 1ca666a50953b20f00b0de574c366d1fd5b924ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95167 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 r&5y9ev5}xM319Zgk4r`gpOKXUzWq`Ny$4 diff --git a/assets/report.png b/assets/report.png deleted file mode 100644 index f5ea27889552907a1039c5624a31b26d21024331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7231 zcmd^D4OmTi8h`Icx2taBQcWKdPHBjed=@j@lUr0$cSDR#MN($Vy~>n`j>txsRvBMK zJj`Uuu{kJB92ZEXGFiBMu{=6luAn@nQc4jepT8g? z6u|CJA;H1J6^j=|h4u~(E;(;M$RH}#FFAR=U$Eq&^0cxH1Z&Tp(%Z=4jHhA(R|F2` z37TUztnB3$bVYAl(x7k66rY=!Y=#FCIwF13tc)_HG92cGZP{W1r!4NlH5<=s!7l{j zd^_6`i<0r&dC&GqD`(ITZG|s;B+uqI@l)IM_KxpUHvbmv;LRyzDnH+EN-eXji-HT7wlpJ}3f%4EOj6w@!CZF-hs@HD0OWWTA**Vd1DJlEt2vg8FY zYF7BB`|?CE=_$T)k5)7fUzh2cY)wZk_?<=i*^+tQTfcP**~sUudgUh&d?yhOOA8dN z(HkogwNC9d_vdD^#aqElHC22e0}@+3ESMgFo1en`WS9tw}Iq5%wz z$v+3SXPD!l{$kH5?)ta&jJc!50dp^V0a$MGbaS1yWA!L`8t%qE8 zX!495ObezDrWDs}hN^k`X1TH?L(lE|V5^RsL+ zq-zYD9>~0YIC}T-@t5N+76e}U%~!IrwrywZu0JODo4DipP!Ur?(oPW`xa3BWTUV@* z%roQ$8d>cSDT2k2n`T6{CA$fnVh#BSz|~yUj@89-?GPDVW1%XXZUR?X^AUjS5@=Rd z7t3`4*CiILYKO<2kjq_F}G6+`1y)zE0nNQOFaT zPl85ePl}7?a6xt%>UQ^|`7}9svWhs$RT4&s!4d+U#AEampcimJ42*$3^lS$k)JX07 z%9&Bh;+pjp8@Z_iTnI#bFq1);6Rygn3}lX&qmnYoSh-C^l)|}n5du^Knh!_< z961Uf9)-G_!Q~(abwNx_1T#+vb7uE18{!#L+MkKGLL@*R-V()Ed}ZDz4309m+8c7r zid&bVPvdV~e{toMUyI5v^1sU%sA*MkBoFb;BViyt0u@K+j1A0;WScGTi7orC+Bkg^Yt7GM<_0P zG|AQq6%WeyRaRAv5HL7QZ;l+d)RxOe$2&1-=a;=WSV{nHs^^&x5t0|2`yf%znOX*E zRKt8~NmLcnQ8=$N+mT=`h^nqg4G@Pqh}{&vOG116;{4emz-4*>WFKC3ap$QdLo+ut z%LyHtel@;5fR8%(q=7-hKKr)_7xlaq{3Wm2+rqA}7Gy8syTm@Oo>8-Ze~~4F(_s3d z{=x-sx79*+6(?(A0$y4N2qj6eze}`;42qDDAol{jN zH6*aroo)BV4F*+TTg>99jED6z7jl`uRMbBY&lnRTY>A3pdY#>yWP-4ZJ2&{}gyNcl zTUbq4gyhEJYGz4>RQ13n>tETH)ExkIg_+}*kKJ>1L@__^x2K`;VDU0gpR}L_0*)>Ya5puG0lLGpBS4 zq#iXJ8d!XOhqDnUy{Nq0ulm@clVakv{__`)s*V*DL<+M^uGD|iA8gMJBtB8(rghv< zlp*q(lcH0agNd}7Yj&%u`LG~=$&6`6+!5)_hs1^BRzzTjo{+?p3CUcWOVn)-2S-OsE-)*bS!9jy zY63dd8Zk#rw+mJb-fwKD2&ZzR3zi{5>V@3-z)=%$+D5uHGB(zE)&bI$TQf5^e8p*AAS0paeBvXp7qez@w_VIv}F<1UW2D zj9FBq$}Dl~4_AM(_&>@lMIx!OR#XCA6bQq@bQYl4QF8QwMz*sqL$p3np4uTcE@EHz z8gHJwACtcZ>XbJMmYGSmak97O+8NlxlimK&=0KlXexp9rpE>(qIbj&DoQ8%le{}3k z@iOUgRXy2#mnIHlyW?}DB}RidDf6?DP-K+Bw;G#Q+|vDA3@pahsE(^+Um`8F`3rmLTd~UYdZynNVw^8w`D}m4wUjy6n-?A2~2G`jwpTx zC_K-Q&jZ#jBp`5nXsj|6x%-C5lWm_MMN{pD!%`` z>pV&mSj~v+>Ya7pCR#1$>TGv`>k)lJ~K1X?AlgXOw_|L>LvBdPjx z2#Ffw+J5Co<#h9v$ai!OyT8-yZ?dzgUWOR?#DtlVbSa@lOZ^BzilKHuM8Y47u#%X7|o&U1M^PlUClnb4|@t6(sg(1E{Aj=*3` zz@JNCD+Itl-%%|yFxZii115Wqp+1kMtt^#3es_}P*WT6|#3DU8wQgU?(`(!Lu7#dE zb0vpgdByIx_xp4_AJC;PRV_2!wAU^bN~CXcczsW>ji-=-q_V^5TNhi*e z26f&|ku{FBFgm$l>1lh}vS*j%n3bV4G)MUd zTCZnfW5g!#DUukCxyfh{89194C-cMIT+Y$So=dJ&WjvJ0qFCfa38c7V%GlQ(w(njv zDtXee!jx@qSHq3FC{0a1+u)a$DU;PxBffTx4(zi!&HdvhdhEAqh!Z%U34+Rx_Fb04 zrzMZDl@ya;X!d}b z{&}?L1!V*4P4UNrzBODw0*2CSC)(?|#(hckj*-K$MdOs!D-0W9hqf5*`alZ!8s`aZ zjxoC!i?5XmaF$~>UKb~8KkbAG`m7qguqRNi6JlNXl-mYwrjo!B@+nlNUweoatmz(c z#gazYKY!~$9NEm#!*X|s^5@dN;%wiz@b@TIFlpPu*Gh%lJo5&c7$xJuRQ6qozk|%E z-~5H1i-rs2MlCtj2wS>E3fjK47=B8Imd4GQ!8gP10&)`ne9Z8I?U%Iqo6g%6I&mlT ztu9K)C@F_J6n^rv;T0@=Zs12XnBtW;OICoXp(~EHkGl(0?Pd2u+@Pylvt_6C^pu3i9pCDi5^Mge_2BkHoz9b(oZTx73<^AEl7K&E(k}otv{$4SLIR-o&^?Shy&^ z2nOQPRU1dTo3k867#vvC_<3c{AwiS5p%4}|84;m#9ly@Yozm1;OAm+6HA;H}Mp0nn zT5gL!cY)PXhXkL8ipO%S47cQ%&ku>*q49KxLVLIq_8DDmcuNQ(#bT~TgdP{;PT?}n z@ZXb>er&@v)KQvSwUDB~iR0{`OP>oq~488EIqXYt>jehZ7oP8E0lT=2q9 z@Yp%OMaFEvp*?h~ph?-3O}tfb1w{ET*kb5kxh=+5UM+M5w(7~NDg9i*5Wn<`v5jkf zapR9|(f|Lq<>$<7^O@o~9iA`&z3VSsVZV*@d1m#UbiiQA?~;4(NrtRhG_kyw9A}|e zp^%jCZTJV$`#fR$bQTSGVfJ4;Gq)yaXOM=ITKsDTUwyUGg#{1&wRd4ur&l(jcYcY5uu`=(eQc!Bg0+C3ORvV z!aVte-HbbEDVS=V%??QB``bWf;l}*>eBMG(@R+9#>}u*hdrjD)kp>h6!VVIFP!pWF zA@@PhDE!x8Wf7r8VPMZJ0*1+l*KF2-ZRRlq3wK^o=p)MC=T8Go4d@`78hv4ng zuL%}Mgf6f~9NM*qXy~D)n|b!MdOF{8w)`+pr!zjJsj)+5HY4C~>qOV3yj_sN9kc?h z7R4-=f{hyV$~3Nkq#2OcchV$wWu{HWd%{|-8Z(FRW|~)^c?k<6wnDpkG#Kz?i;S>z zjt$pg)bn(*2ye4d_F3 z_%e;RkIL*N$j&dSHBF+!{E|?HD@^+5Z+9{zlE%isYUDTzQ*9trJ*l?x0GsrHBPsz@_# zw#>SgEJ>c8v#&7dI4Vqo1tRoe&*D^C- zGDK}oLQeFqHvj&WUQ)rkGd02Tp>8P76Dk1PE(Ys1LpUeJ2#84fvlZi zF`IF3KQYDsB~~@-q|U+C4p*b%vW5#2hc@nMgzcJpiX^GLsX^U-8zVIf!sfJ#L3D%2 z@Tc+nCkv@hs)??UE`d9Q8^B(2M~MvIoqLu|=?MyLS-qxD+~%}`4K?;Lwuxcjh|H-0 zDv>49MQTFo``DeSkYKi1kJNK^*oe3`Rm^*z3%8Mc2(PqoE9h>%knV}tY=GV<2emk6 zw&-b`=xa>Vr#e9`FKOE^ej%0Xd<}^XTWVaJQoku#S}@bU3|s8U?;4fv^3;hHA;S?h z&HaU9-lbS$Q|XSR*&6}Nr=9Nv^b=Fy7}93!B|TI+HNWug;^!6Nj+)3XuaQreqoCyx z>Xab)N;yiGe6SiNCN+6LQKTelDtD?3SymAE;#`uf;FX@n(-P^*f;I6q`0Xc%5i^ha zFKEE9%u;kE&GCo=J(kEipaUCvof*I+KbWq*YNLv5Om01Tzka(YIrtIQ*YxrcLafOb z$Lhhr46H16sub&MVqi>YYMCrT7lZ9q;|H?fWfZ>9l66VcjGMQ7`A{pyM&CZkb&YWP zX40*#QU0`lb`$Ri)n7_OVihlCFKe8Pm9JE$jLOGs(1>L|b3GWWdKKJ}Y{8JxVfDo# z4BXv;rY=*h2h9e=S?pSNM(e|AuXQ(M1JfrncX;B@)NOM6k=qv#=g%kCHqevn0rNy) zGCwgoV7spFQCOkH|A8kbRujeP>qWTR$nUbJy#^hWDlws01(Q;3J9XaiX|wxM_=n;E zi4g_*AQn}GB}SH}4C>!hg8wMJuMz0o_poO8EboAvamPoJD}cU{v4yjJV2!~jV+lm| zh7lm2u1--F5&m>plhJ?ux=rM+115FPn9ovY62ipoJ{N+gb%lV#_iP|qnYZN#d@=^p zTh$-yomkm6t402Tp2U{oIz9JXU=F=`wB1&{As6WmF2t;|4(#;(^gP+~?vpFzfq2X6 z8+QvOQh z6Z}9+i54!WZB{*RTw%@lP?i1jbFTg$4LEx*vxK!8J~4t-DADqRiI?a5{0;|;!{wtU zG+l`dl6rC-zgELL`q&2VBJAB;1$cLn_M_w@E;)Y3{X?;orzcMA?MIK&?1!BT~&E{$ZwyvmQPpW5n8dVa|ti$spX~@)W2LPaqv^? zobe?v0)?5IRKRr>S&q^k$hR$`vE^2fwr#9)&@vxJV+5CQTQxQHQD;vQDSByEL3OoJ zKvCjD2%*6pp}cCc&}#Th?=O01cE{Z?{B&Ucs~2%IVhwX`qEY!LJhFygIcC|lr7KZa zj2us3e(}^9(5es2MP}l1Vkj9iV{n2%x+%_DE5iS+%}FhDlyW~>2zkNNEv!nSjj>V0 z|1h~4HGIC!s_!E=H+<k9b@2iwU`)WXBw6z~% zryUb8(zhxN@2JY#fh@pc?%P$Hi}*Zel$(4%_%z)HTN*u+JTP5}IS@^N@1ZGm!g7{} zgF7f(6l!yra9@`={x&Oh9BIjq@)A zEL`J)All!B4W+1CNy55V?u(2jd7W`(g1&7~x_R-nM1JCQCeGu`dzNvq^!W0jI5_m$ z_`-!2tL!oP^&(Nd$BJP6hCTjKrAlk)H2)~1@TLjsKbAu1694ivmpWU=>C$!`*TSJk zWv?6J{qfjD-LPGLySVl?DS5{V@5@Y2wArb0epf0p^C@Icos9Ps;+>M*Zm$fD+LXx7fiY@;X+ z@fFIEtV~Aq3pnkgewNP8P6fEP`{=QSUBJrzWy&4b(yOFhaH3P+h?bqwt(~c~CIq$c zBVHR!YjpV5wsHv!{pf)H+9=ia+`k%O*CGN6f^)LE70$hwGH(*&H}aJlU9xd9qxP7i z4I!(ApOl22VDz;m&5)&X%+z?}*`+<_$DAD62pg`!MDaP%W2=EpKD5V`bqz+D3E7D`*QXlB4Uqg%n1}Wc3WVSMXptByKSmG+ zG(PlH5Ap4vy{9E+GPHUeAIT`t0Ug{B+;AH`J!cJEd`*TO8!1}kDaZ^;#o7asofD_p z%g|$A^kQX=xhY=nWsrvqpV9Asj^u80++byyQIm0iEqhKUB|J8>l4vcCI4q1hOOo}E zoTZDqbjX(LzSJ|o20R=z#bPQ5c#S7~PMVDq$&C@>F`1Rw*eOwFh>Zw|Up`$sjH47? zw|_`O3*6=5tsG-Xm`<}RLMv=0U74~O?2EI(Uj(9*F*k4nQz98W=gf877J-n)=XWP% zg)WsJ4Q0-D)sE1gw7C33@;`&kV8u9HCSK}p+|0G-1hOTzd&yxG=nuUOE534+&Ic@G zN<_}}aZDg&@a0|qyeZE8E5m_nm~W#?G+Yc%#N$t)3b#Guj+Rl!^veo-6_^rDKyPJ= za6@?nN{%(sb{B&j%?*79F1)vmZS7arC8

U?#kl(xt(Md=oUya+C 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 Q@|Um!rj{lJ`<$-)9~uoS^8f$< diff --git a/assets/status.png b/assets/status.png deleted file mode 100644 index d038e3f74acd3e724cc979ea8f734364bcb68c84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48918 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 diff --git a/assets/storage.png b/assets/storage.png deleted file mode 100644 index 686572c5534fde46834955279560759728cf1595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3083 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%0DJWqs9;P~y_>aT|Ipm_zFm6IgDqQa!n zWrC^jrd6k9;R_Z0R99NYS-r~e!%tQa_9Btn-dh;cC;D)<1BR3cY-a)aB9r=JFEcg! zDc0gN#&U3ta2!^=lAs&txqsS*Hu|oh!t^%QO^Ah`7hsp8=4g5?TMhc<$#XOw=ZP8c z{VY<=a`$Og6;^0M%vQzvRghMRg^A5gJ^KCMRG+M5Uy(RDs4)BXRR1FPt@L%v2u*D} zu}O`Bp*9|5h3|}7$-dcKv)7h!h7o4J28kjrJqHRfDfCs!R_c)FRGaX4m&0u8X&kl% zBde^*FnerVk2k=SGL3Jz9FpI~x}2~(bK?o_<>%pPCs&>2zQJ=*V;c|74_$Uv%6jYo zl(H0lej`%`{WS1s+4#;|tK7q{ZI3X!YRhRwGs^vyv9o%L?=h?pJ0W(}ub5-&=20RMujM(%-#6qvzC5PrlC>&~bBct@fY+HHeuAQq9CYnQ~}~IC!=jHSLDl zm%wz2k*JN@T5>(z0+oX#?-+~f4Z-ypRz^o$yiuGo0pC?Ea`;Lfe4(VS3pz%>*2<_p z^2|))@jm9CEsea8R=#_6{wFzStNXf0dfFQgJz0DZZqX1SY(j5~La|P`yvAJUtW{*k zpT_}u-c_8wZUuHT)eZEwnQj#d8oW8(Fb-6cp_i|ObAg>3hd*+yQTi@YDofMbvvoqae?+Yv87cKsN8$A4Ci`2d zq8a--zPy1h&t$d;1GF7&ntlgXo{noxt`1)~Ilmldnm+eBis4EaHGgk0s?=zdHC0rb z$(dF|n>TgwHoNp1Twi9yrq{(^0s@}%yq5Rf zvX)P=8*Bmgl!2$bMVjbF#1j4T^j|a0kEjyT^`AT}{A(d#*2s z<62yF&o#9Qn!CK#x9c)=@aF<hsXTe56O=fL*Oqm*F$XSCXz9)Cw_RrAA+a>!YJy5bX}X z3&J6+=B|_kv022L{ooRMCbPyOlu-$-Xtc`b(RCsW9+H^k@Xxn

YnSNwkI2q zsVP)v^(C~qD)Ko7zZ;Ni-HE{$nS$;Q=hT5RkS|oETmg}A?lpdg8B5jvjmzCPWRtO_ zBsu2bi1bT-u2O11HKd|LO7{gn(qLX#=Y#<^z$UA$>=CTgG$3aK_~978VSoF!nKrG<}rR&+!)0p?@*t{mNThLS-{47 z+P)Veg3w?XI(dG_r4rhn39+0B)h| zV80c}CBGZ}y@T^QB{zW#%+IgEJpS%#xrwfct|`8zkbwE*Q$xWw`s}}P8CHBUsKrBk z%ECj7$-M{UH|0{)Qm2%C+i;?+LcHl>x$oy|F^bvSWrQSY=a`)=l^6cuzr}t*`B*(^uJ6?(I z!FOYx#hybaA4Y z$FaZa_aD!=-Zxhq%zGaVGfa8k^bxc9ZKs8^DY~d8@+K0{sS!g>ry4EvJ$9iEHKMPy z=&AZLQ}@St@-5dWy?7UDbsYDf4> z(Dd<2VWrAOA~L(z6~_U5seq2zFHJOB++HoYw~SfJx0t0Q#FG7(n$iTU^w(#i_P5o! zC=Z!WFtqAi-oEqk4Yy#p%lDKYc}ec(0=iBIdj+mW0^b8MYUHjFh#PKaweqiaTuGq& zL=lm9pH-w>|Bv-P9(D0%ubP{{rqUjk6T~OY*Haa8El=+jnYi z`*NP$D4iE7`IWPJ#whUBK%k}=@~;mAonG72<>zXP`A>aI)i zKVjgQ1A)ri!9x7V1$zX(aN?SV1})}PO{Av;;F71)GI~YWZNi5~W-BN9g>^^AgNl!S ztlGtFAe@+uv<~jS+>n#A)`2-viTn2DnhBls=DpGG{NJ|U3P)gM?hekmwzj9(E$nOE zydHwvC#iMca+CYP2E&&+rkZn!09g_q>K2n-Xv#57QZg7-%JJh*W-cc4Fdv4$e-iG+ z2wcTyrYf8QVC)s}c;TMcPsz@EuCC$7XNk&W9dt+sJ^6gWZiOEU zqsjz+N)c06-*a5z0FXCI|7a(RfEByF=|L2WOnUXLwzhhh4HQ1u&6vYFg$%+!u)mh# zUK?6KUll8%+Bt`RH0(1tK4V>KX7;!y0usdcC^*A%3XJ>{g@hH$JzZo1U)tc zq+>ci=nxRFt3d;~U`<;v z$I+&VV22f&p&nKNJ;>_KC-`9$P?0mA!OO83V8_}0Y6Z?E!w-^@w?PV7=wt_S$ifsN zPQ!yAEVjp_3o>91iKC)}&}F)?XqjFK>!u^l4bw#%`347Z^YlpUXPAJ_I0T+siQG?x z#r|m-)Hy!*sb~(+Mcs~>fFCp^M(ZGZ=w zu)W&(H|XF^WzdmQV6WbMigd^nB<(zhABzK-tKnWB`w)JFpIwCoB4iOKJwngA<3~E_ z5qh}cLBzpgnIgdP8he;SpEf<84xR~yMT`FDNAV%54Cg8jA~H1f2Mm;?qkQRLg0D6 N44$rjF6*2UngC(K<17FG diff --git a/assets/submission.png b/assets/submission.png deleted file mode 100644 index 8c3a7ea2865c99badd4af325d8e27ec3246aa3d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10523 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 diff --git a/assets/term.png b/assets/term.png deleted file mode 100644 index f460533165b231adaf472f51c6d5ed8a66de7552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42734 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 MRnkCKDm)GUAA6uzvH$=8 diff --git a/assets/volume.png b/assets/volume.png deleted file mode 100644 index 8549179948737b30c75f7946bbd11f84577e878b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22626 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 E0|e?@>Hq)$ diff --git a/assets/whole.png b/assets/whole.png deleted file mode 100644 index 6254dd0d20ebc85ab629f8842c4d0bd260d769f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36541 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

Fx=zcFhR6Y!<^W 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 diff --git a/lib/app.dart b/lib/app.dart index 63d6f1c..ff2e77b 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,87 +1,45 @@ -import 'package:fcs/fcs/common/localization/app_translations_delegate.dart'; -import 'package:fcs/fcs/common/localization/transalation.dart'; -import 'package:fcs/fcs/common/pages/contact/model/contact_model.dart'; -import 'package:fcs/fcs/common/pages/customer/model/customer_model.dart'; -import 'package:fcs/fcs/common/pages/faq/model/faq_model.dart'; -import 'package:fcs/fcs/common/pages/initial_language_selection.dart'; -import 'package:fcs/fcs/common/pages/market/model/market_model.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart' as fcs; -import 'package:fcs/fcs/common/pages/package/model/package_model.dart'; -import 'package:fcs/fcs/common/pages/package/model/shipment_model.dart'; -import 'package:fcs/fcs/common/pages/payment_methods/model/payment_method_model.dart'; -import 'package:fcs/fcs/common/pages/staff/model/staff_model.dart'; -import 'package:fcs/fcs/common/pages/term/model/term_model.dart'; -import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/model/delivery_model.dart'; -import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/model/notification_model.dart'; -import 'package:fcs/model/pd_model.dart'; -import 'package:fcs/model/reg_model.dart'; -import 'package:fcs/model/report_model.dart'; -import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/model/test_model.dart'; -import 'package:fcs/pages/email_page.dart'; -import 'package:fcs/pages/login_page.dart'; +import 'package:fcs/localization/app_translations_delegate.dart'; +import 'package:fcs/localization/transalation.dart'; +import 'package:fcs/pages/box/model/box_model.dart'; +import 'package:fcs/pages/chat/model/message_model.dart'; +import 'package:fcs/pages/contact/model/contact_model.dart'; +import 'package:fcs/pages/customer/model/customer_model.dart'; +import 'package:fcs/pages/discount/model/discount_model.dart'; +import 'package:fcs/pages/faq/model/faq_model.dart'; +import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart'; +import 'package:fcs/pages/main/home_page.dart'; +import 'package:fcs/pages/main/initial_language_selection.dart'; +import 'package:fcs/pages/invoice/model/invoice_model.dart'; +import 'package:fcs/pages/market/model/market_model.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/package/model/package_model.dart'; +import 'package:fcs/pages/payment_methods/model/payment_method_model.dart'; +import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; +import 'package:fcs/pages/shipment/model/pickup_model.dart'; +import 'package:fcs/pages/shipment_address/model/shipment_address_model.dart'; +import 'package:fcs/pages/main/splash_page.dart'; +import 'package:fcs/pages/staff/model/staff_model.dart'; +import 'package:fcs/pages/term/model/term_model.dart'; +import 'package:fcs/pages/main/welcome_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:provider/provider.dart'; -import 'fcs/common/pages/chat/model/message_model.dart'; -import 'fcs/common/pages/home_page.dart'; -import 'fcs/common/pages/splash_page.dart'; -import 'fcs/common/pages/welcome_page.dart'; -import 'model/announcement_model.dart'; -import 'model/chart_model.dart'; -import 'model/device_model.dart'; -import 'model/do_model.dart'; -import 'model/invoice_model.dart'; -import 'model/log_model.dart'; -import 'model/main_model.dart'; -import 'model/pickup_model.dart'; -import 'model/po_model.dart'; -import 'model/product_model.dart'; -import 'model/report_user_model.dart'; -import 'model/shipment_rate_model.dart'; -import 'model/user_model.dart'; -import 'model_fcs/box_model.dart'; -import 'pages/term.dart'; - class App extends StatefulWidget { @override _AppState createState() => _AppState(); } class _AppState extends State { - final fcs.MainModel mainModel2 = new fcs.MainModel(); + final MainModel mainModel = new MainModel(); final ContactModel contactModel = new ContactModel(); final TermModel termModel = new TermModel(); - final MainModel mainModel = new MainModel(); final FAQModel faqModel = new FAQModel(); final PaymentMethodModel paymentMethodModel = new PaymentMethodModel(); - - final UserModel userModel = new UserModel(); - final ProductModel productModel = new ProductModel(); - final POSubmissionModel poSubmissionModel = new POSubmissionModel(); - final DOModel doModel = new DOModel(); + final FcsShipmentModel fcsShipmentModel = new FcsShipmentModel(); final LanguageModel lanuguageModel = new LanguageModel(); - final StorageModel storageModel = new StorageModel(); - final PDModel pdModel = new PDModel(); - final RegModel regModel = new RegModel(); - final BuyerModel buyerModel = new BuyerModel(); - final NotificationModel notificationModel = new NotificationModel(); - final ChartModel chartModel = new ChartModel(); - final DeliveryModel deliveryModel = new DeliveryModel(); - final ManualModel manualModel = new ManualModel(); - final TestModel testModel = new TestModel(); - final LogModel logModel = new LogModel(); - final PhoneDeviceModel phoneDeviceModel = new PhoneDeviceModel(); - final ReportModel reportModel = new ReportModel(); - final AnnouncementModel announcementModel = new AnnouncementModel(); - final ReportUserModel reportUserModel = new ReportUserModel(); final PickUpModel pickUpModel = new PickUpModel(); final ShipmentRateModel shipmentRateModel = new ShipmentRateModel(); final BoxModel boxModel = new BoxModel(); @@ -90,54 +48,31 @@ class _AppState extends State { final CustomerModel customerModel = new CustomerModel(); final DiscountModel discountModel = new DiscountModel(); final StaffModel staffModel = new StaffModel(); - final ShipmentModel shipmentModel = new ShipmentModel(); + final ShipmentAddressModel shipmentAddressModel = new ShipmentAddressModel(); final PackageModel packageModel = new PackageModel(); final MarketModel marketModel = new MarketModel(); AppTranslationsDelegate _newLocaleDelegate; - static FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = - FlutterLocalNotificationsPlugin(); @override void initState() { super.initState(); - mainModel2 + mainModel ..addModel(customerModel) ..addModel(staffModel) - ..addModel(shipmentModel) + ..addModel(shipmentAddressModel) ..addModel(packageModel) ..addModel(messageModel) + ..addModel(fcsShipmentModel) + ..addModel(discountModel) + ..addModel(shipmentRateModel) + ..addModel(boxModel) + ..addModel(pickUpModel) + ..addModel(invoiceModel) ..addModel(marketModel); _newLocaleDelegate = AppTranslationsDelegate(newLocale: null); Translation().onLocaleChanged = onLocaleChange; - mainModel - ..addModel(userModel) - ..addModel(storageModel) - ..addModel(regModel) - ..addModel(poSubmissionModel) - ..addModel(doModel) - ..addModel(productModel) - ..addModel(pdModel) - ..addModel(buyerModel) - ..addModel(notificationModel) - ..addModel(chartModel) - ..addModel(deliveryModel) - ..addModel(logModel) - ..addModel(manualModel) - ..addModel(phoneDeviceModel) - ..addModel(regModel) - ..addModel(announcementModel) - ..addModel(reportModel) - ..addModel(testModel) - ..addModel(reportUserModel) - ..addModel(pickUpModel) - ..addModel(shipmentRateModel) - ..addModel(boxModel) - ..addModel(shipmentRateModel) - ..addModel(invoiceModel) - ..addModel(discountModel); - this.mainModel.init(); } void onLocaleChange(Locale locale) { @@ -151,11 +86,6 @@ class _AppState extends State { '/': (_) => SplashScreen(), '/welcome': (_) => WelcomePage(), '/home': (_) => HomePage(), - '/term': (context) => Term( - agreePage: true, - ), - '/login': (context) => LoginPage(), - '/email': (context) => EmailPage(), '/language_selection': (context) => InitialLanguageSelectionPage(), }; return routes; @@ -166,40 +96,23 @@ class _AppState extends State { return MultiProvider( providers: [ ChangeNotifierProvider.value(value: mainModel), - ChangeNotifierProvider.value(value: userModel), - ChangeNotifierProvider.value(value: productModel), ChangeNotifierProvider.value(value: staffModel), - ChangeNotifierProvider.value(value: poSubmissionModel), - ChangeNotifierProvider.value(value: doModel), - ChangeNotifierProvider.value(value: storageModel), - ChangeNotifierProvider.value(value: pdModel), ChangeNotifierProvider.value(value: lanuguageModel), - ChangeNotifierProvider.value(value: regModel), - ChangeNotifierProvider.value(value: buyerModel), - ChangeNotifierProvider.value(value: notificationModel), - ChangeNotifierProvider.value(value: chartModel), - ChangeNotifierProvider.value(value: deliveryModel), - ChangeNotifierProvider.value(value: logModel), - ChangeNotifierProvider.value(value: phoneDeviceModel), - ChangeNotifierProvider.value(value: reportModel), - ChangeNotifierProvider.value(value: announcementModel), - ChangeNotifierProvider.value(value: reportUserModel), ChangeNotifierProvider.value(value: pickUpModel), ChangeNotifierProvider.value(value: shipmentRateModel), - ChangeNotifierProvider.value(value: shipmentModel), + ChangeNotifierProvider.value(value: shipmentAddressModel), ChangeNotifierProvider.value(value: packageModel), ChangeNotifierProvider.value(value: boxModel), ChangeNotifierProvider.value(value: messageModel), ChangeNotifierProvider.value(value: invoiceModel), ChangeNotifierProvider.value(value: customerModel), ChangeNotifierProvider.value(value: discountModel), - ChangeNotifierProvider.value(value: testModel), - ChangeNotifierProvider.value(value: mainModel2), ChangeNotifierProvider.value(value: contactModel), ChangeNotifierProvider.value(value: termModel), ChangeNotifierProvider.value(value: faqModel), ChangeNotifierProvider.value(value: paymentMethodModel), ChangeNotifierProvider.value(value: marketModel), + ChangeNotifierProvider.value(value: fcsShipmentModel), ], child: Consumer( builder: (context, value, child) { @@ -224,9 +137,7 @@ class _AppState extends State { routes: route(context), localizationsDelegates: [ _newLocaleDelegate, - //provides localised strings GlobalMaterialLocalizations.delegate, - //provides RTL support GlobalWidgetsLocalizations.delegate, ], supportedLocales: Translation().supportedLocales()); diff --git a/lib/charts/bar_chart.dart b/lib/charts/bar_chart.dart deleted file mode 100644 index 19de245..0000000 --- a/lib/charts/bar_chart.dart +++ /dev/null @@ -1,120 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:charts_flutter/flutter.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/charts/qtyby_customer_table.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/local_text.dart'; - -class BarChart extends StatefulWidget { - @override - _BarChartState createState() => _BarChartState(); -} - -class _BarChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - List chartSummary = new List(); - List> series; - - @override - void initState() { - super.initState(); - var chartModel = Provider.of(context, listen: false); - this.chartSummary = chartModel.chartSummary; - } - - @override - Widget build(BuildContext context) { - var productModel = Provider.of(context); - if (this.chartSummary.isNotEmpty) { - this.chartSummary.forEach((s) { - productModel.products.forEach((p) { - if (p.id == s.productID) { - s.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - this - .chartSummary - .sort((s1, s2) => s1.displayOrder.compareTo(s2.displayOrder)); - } - List> series = [ - charts.Series( - id: "Subscribers", - data: this.chartSummary, - domainFn: (POChartData series, _) => series.productName, - measureFn: (POChartData series, _) => series.balanceQty, - colorFn: (POChartData series, _) => - charts.ColorUtil.fromDartColor(series.getColor), - labelAccessorFn: (POChartData series, _) => - '${numberFormatter.format(series.balanceQty)}'), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, 'product.balance_qty', - color: primaryColor, fontSize: 16), - IconButton( - icon: Icon( - Icons.refresh, - color: primaryColor, - ), - onPressed: () { - _load(); - }, - ) - ], - ), - Expanded( - child: charts.BarChart( - series, - animate: true, - vertical: false, - defaultRenderer: new charts.BarRendererConfig( - barRendererDecorator: new charts.BarLabelDecorator( - labelPosition: charts.BarLabelPosition.auto, - ), - ), - selectionModels: [ - SelectionModelConfig(changedListener: (SelectionModel model) { - final selectedDatum = model.selectedDatum; - if (selectedDatum.isNotEmpty) { - selectedDatum.forEach((charts.SeriesDatum datumPair) { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => QtyByCustomerTable( - poChartData: datumPair.datum, - )), - ); - }); - } - }) - ], - ), - ), - ], - ), - ); - } - - Future _load() async { - var chartModel = Provider.of(context); - var _s = await chartModel.loadSummary(); - setState(() { - this.chartSummary = _s ?? []; - }); - } -} diff --git a/lib/charts/delivery_do_line.dart b/lib/charts/delivery_do_line.dart deleted file mode 100644 index 5e6bd38..0000000 --- a/lib/charts/delivery_do_line.dart +++ /dev/null @@ -1,84 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; - -import 'delivery_do_line_detail.dart'; - -class DODeliveryLineChart extends StatefulWidget { - @override - _DODeliveryLineChartState createState() => _DODeliveryLineChartState(); -} - -class _DODeliveryLineChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - List> series = [ - charts.Series( - id: "Subscribers", - data: chartModel.revenue.getDeliveryDo(), - domainFn: (Data series, _) => series.date, - measureFn: (Data series, _) => series.count, - colorFn: (_, __) => charts.ColorUtil.fromDartColor(primaryColor), - labelAccessorFn: (Data series, _) => - '${numberFormatter.format(series.count)}', - ), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, "delivery.do.title", - color: primaryColor, fontSize: 16), - InkWell( - child: LocalText( - context, - "delivery.do.details", - color: secondaryColor, - fontSize: 14, - ), - onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (_) => DODeliveryLineDetail())); - }, - ), - ], - ), - Expanded( - child: charts.TimeSeriesChart( - series, - animate: true, - defaultRenderer: new charts.LineRendererConfig( - includePoints: true, - ), - primaryMeasureAxis: new charts.NumericAxisSpec( - tickProviderSpec: new charts.BasicNumericTickProviderSpec( - zeroBound: false, desiredTickCount: 10), - renderSpec: new charts.GridlineRendererSpec( - lineStyle: charts.LineStyleSpec( - dashPattern: [4, 4], - ))), - ), - ), - ], - ), - ); - } -} diff --git a/lib/charts/delivery_do_line_detail.dart b/lib/charts/delivery_do_line_detail.dart deleted file mode 100644 index 5ef17d8..0000000 --- a/lib/charts/delivery_do_line_detail.dart +++ /dev/null @@ -1,85 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; - -class DODeliveryLineDetail extends StatefulWidget { - const DODeliveryLineDetail(); - @override - _DODeliveryLineDetailState createState() => _DODeliveryLineDetailState(); -} - -class _DODeliveryLineDetailState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'delivery.do.counts', - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(left: 20), - child: MyDataTable( - columnSpacing: 100, - columns: [ - MyDataColumn(label: LocalText(context, "delivery.date")), - MyDataColumn(label: LocalText(context, "delivery.do.count")), - ], - rows: getProductRow(chartModel.revenue.getDeliveryDo()), - ), - ), - ), - ), - ), - ); - } - - List getProductRow(List doList) { - return doList.map((d) { - var r = MyDataRow( - cells: [ - MyDataCell( - new Text(dateFormatter.format(d.date), style: textStyle), - ), - MyDataCell( - new Text( - numberFormatter.format(d.count), - style: textStyle, - ), - ), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/delivery_do_summary.dart b/lib/charts/delivery_do_summary.dart deleted file mode 100644 index 251bf6d..0000000 --- a/lib/charts/delivery_do_summary.dart +++ /dev/null @@ -1,79 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; - -import 'delivery_do_summary_details.dart'; - -class DeliveryDoSummaryChart extends StatefulWidget { - @override - _DeliveryDoSummaryChartState createState() => _DeliveryDoSummaryChartState(); -} - -class _DeliveryDoSummaryChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - List> series = [ - charts.Series( - id: "Subscribers", - data: chartModel.revenue.getDeliveryDoSummary(), - domainFn: (Data series, _) => "${series.totalDay}days", - measureFn: (Data series, _) => series.totalCount, - labelAccessorFn: (Data series, _) => - '${numberFormatter.format(series.totalCount)}'), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, "delivery.do.summary", - color: primaryColor, fontSize: 16), - InkWell( - child: LocalText( - context, - "delivery.do.details", - color: secondaryColor, - fontSize: 14, - ), - onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (_) => DeliveryDoSummaryDetail())); - }, - ), - ], - ), - Expanded( - child: charts.BarChart( - series, - animate: true, - vertical: false, - defaultRenderer: new charts.BarRendererConfig( - barRendererDecorator: new charts.BarLabelDecorator( - labelPosition: charts.BarLabelPosition.auto, - ), - ), - ), - ), - ], - ), - ); - } -} diff --git a/lib/charts/delivery_do_summary_details.dart b/lib/charts/delivery_do_summary_details.dart deleted file mode 100644 index 5fa669a..0000000 --- a/lib/charts/delivery_do_summary_details.dart +++ /dev/null @@ -1,86 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; - -class DeliveryDoSummaryDetail extends StatefulWidget { - const DeliveryDoSummaryDetail(); - @override - _DeliveryDoSummaryDetailState createState() => - _DeliveryDoSummaryDetailState(); -} - -class _DeliveryDoSummaryDetailState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'delivery.do.sum.counts', - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(left: 20), - child: MyDataTable( - columnSpacing: 100, - columns: [ - MyDataColumn(label: LocalText(context, "delivery.days")), - MyDataColumn(label: LocalText(context, "delivery.do.count")), - ], - rows: getProductRow(chartModel.revenue.getDeliveryDoSummary()), - ), - ), - ), - ), - ), - ); - } - - List getProductRow(List doList) { - return doList.map((d) { - var r = MyDataRow( - cells: [ - MyDataCell( - new Text(d.totalDay.toString(), style: textStyle), - ), - MyDataCell( - new Text( - numberFormatter.format(d.totalCount), - style: textStyle, - ), - ), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/delivery_line.dart b/lib/charts/delivery_line.dart deleted file mode 100644 index 6d8f83d..0000000 --- a/lib/charts/delivery_line.dart +++ /dev/null @@ -1,107 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; - -import 'delivery_line_data.dart'; - -class DeliveryBarChart extends StatefulWidget { - @override - _DeliveryBarChartState createState() => _DeliveryBarChartState(); -} - -class _DeliveryBarChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - List> series = [ - charts.Series( - id: "Subscribers", - data: chartModel.revenue.getDelivery(), - domainFn: (Data series, _) => - "${series.date.day}-${series.date.month}-${series.date.year}", - measureFn: (Data series, _) => series.amount, - labelAccessorFn: (Data series, _) => - '${numberFormatter.format(series.amount)}'), - ]; - - List> seriesLine = [ - charts.Series( - id: "Subscribers", - data: chartModel.revenue.getDelivery(), - domainFn: (Data series, _) => series.date, - measureFn: (Data series, _) => series.amount, - colorFn: (_, __) => charts.ColorUtil.fromDartColor(primaryColor), - labelAccessorFn: (Data series, _) => - '${numberFormatter.format(series.amount)}', - ), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, "delivery", color: primaryColor, fontSize: 16), - InkWell( - child: LocalText( - context, - "delivery.detail", - color: secondaryColor, - fontSize: 14, - ), - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => DeliveryBarData())); - }, - ), - ], - ), - Expanded( - child: charts.TimeSeriesChart( - seriesLine, - animate: true, - defaultRenderer: new charts.LineRendererConfig( - includePoints: true, - ), - primaryMeasureAxis: new charts.NumericAxisSpec( - tickProviderSpec: new charts.BasicNumericTickProviderSpec( - zeroBound: false, desiredTickCount: 10), - renderSpec: new charts.GridlineRendererSpec( - lineStyle: charts.LineStyleSpec( - dashPattern: [4, 4], - ))), - ), - ), - // Expanded( - // child: charts.BarChart( - // series, - // animate: true, - // vertical: true, - // defaultRenderer: new charts.BarRendererConfig( - // barRendererDecorator: new charts.BarLabelDecorator( - // labelPosition: charts.BarLabelPosition.auto, - // ), - // ), - // ), - // ), - ], - ), - ); - } -} diff --git a/lib/charts/delivery_line_data.dart b/lib/charts/delivery_line_data.dart deleted file mode 100644 index 634a6a3..0000000 --- a/lib/charts/delivery_line_data.dart +++ /dev/null @@ -1,91 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -import 'delivery_line_detail.dart'; - -class DeliveryBarData extends StatefulWidget { - const DeliveryBarData(); - @override - _DeliveryBarDataState createState() => _DeliveryBarDataState(); -} - -class _DeliveryBarDataState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'delivery.data.title', - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(left: 20), - child: MyDataTable( - columnSpacing: 100, - columns: [ - MyDataColumn(label: LocalText(context, "delivery.date")), - MyDataColumn( - label: LocalText(context, "delivery.qty"), numeric: true), - ], - rows: getProductRow(chartModel.revenue.getDelivery()), - ), - ), - ), - ), - ), - ); - } - - List getProductRow(List doList) { - return doList.map((d) { - var r = MyDataRow( - onSelectChanged: (bool selected) async { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => DeliveryBarDetail(d.date)), - ); - }, - cells: [ - MyDataCell( - new Text(dateFormatter.format(d.date), style: textStyle), - ), - MyDataCell(NumberCell(d.amount)), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/delivery_line_detail.dart b/lib/charts/delivery_line_detail.dart deleted file mode 100644 index 211470b..0000000 --- a/lib/charts/delivery_line_detail.dart +++ /dev/null @@ -1,93 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/do_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -class DeliveryBarDetail extends StatefulWidget { - final DateTime date; - const DeliveryBarDetail(this.date); - @override - _DeliveryBarDetailState createState() => _DeliveryBarDetailState(); -} - -class _DeliveryBarDetailState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd-MMM-yyyy'); - bool _isLoading = false; - List dos = []; - - @override - void initState() { - super.initState(); - DOModel dOModel = Provider.of(context, listen: false); - dOModel.getDOForDelivery(widget.date).then((dos) { - setState(() { - this.dos = dos; - }); - }); - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'delivery.detail.title', - translationVariables: [dateFormatter.format(widget.date)], - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - padding: EdgeInsets.only(top: 5), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(left: 3), - child: MyDataTable( - columnSpacing: 20, - columns: [ - MyDataColumn(label: LocalText(context, "do.name")), - MyDataColumn(label: LocalText(context, "do.do_num")), - MyDataColumn( - label: LocalText(context, "do.quantity"), numeric: true), - ], - rows: getProductRow(), - ), - ), - ), - ), - ), - ); - } - - List getProductRow() { - return dos.map((d) { - var r = MyDataRow( - cells: [ - MyDataCell( - new Text(d.userName, style: textStyle), - ), - MyDataCell( - new Text(d.doNumber, style: textStyle), - ), - MyDataCell(NumberCell(d.totalQty)), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/delivery_summary.dart b/lib/charts/delivery_summary.dart deleted file mode 100644 index 133563b..0000000 --- a/lib/charts/delivery_summary.dart +++ /dev/null @@ -1,78 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'delivery_summary_detail.dart'; - -class DeliverySummary extends StatefulWidget { - @override - _DeliverySummaryState createState() => _DeliverySummaryState(); -} - -class _DeliverySummaryState extends State { - static final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - List> series = [ - charts.Series( - id: "Subscribers", - data: chartModel.revenue.getDeliverySummary(), - domainFn: (Data series, _) => "${series.totalDay}days", - measureFn: (Data series, _) => series.totalAmount, - labelAccessorFn: (Data series, _) => - '${numberFormatter.format(series.totalAmount)}'), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, "delivery.summary", - color: primaryColor, fontSize: 16), - InkWell( - child: LocalText( - context, - "delivery.detail", - color: secondaryColor, - fontSize: 14, - ), - onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (_) => DeliverySummaryDetail())); - }, - ), - ], - ), - Expanded( - child: charts.BarChart( - series, - animate: true, - vertical: false, - defaultRenderer: new charts.BarRendererConfig( - barRendererDecorator: new charts.BarLabelDecorator( - labelPosition: charts.BarLabelPosition.auto, - ), - ), - ), - ), - ], - ), - ); - } -} diff --git a/lib/charts/delivery_summary_detail.dart b/lib/charts/delivery_summary_detail.dart deleted file mode 100644 index 78ccad8..0000000 --- a/lib/charts/delivery_summary_detail.dart +++ /dev/null @@ -1,85 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; - -class DeliverySummaryDetail extends StatefulWidget { - const DeliverySummaryDetail(); - @override - _DeliverySummaryDetailState createState() => _DeliverySummaryDetailState(); -} - -class _DeliverySummaryDetailState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'delivery.sum.amounts', - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(left: 20), - child: MyDataTable( - columnSpacing: 100, - columns: [ - MyDataColumn(label: LocalText(context, "delivery.days")), - MyDataColumn(label: LocalText(context, "delivery.amount")), - ], - rows: getProductRow(chartModel.revenue.getDeliverySummary()), - ), - ), - ), - ), - ), - ); - } - - List getProductRow(List doList) { - return doList.map((d) { - var r = MyDataRow( - cells: [ - MyDataCell( - new Text(d.totalDay.toString(), style: textStyle), - ), - MyDataCell( - new Text( - numberFormatter.format(d.totalAmount), - style: textStyle, - ), - ), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/do_line.dart b/lib/charts/do_line.dart deleted file mode 100644 index 544ac65..0000000 --- a/lib/charts/do_line.dart +++ /dev/null @@ -1,156 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po_do_count.dart'; -import 'package:fcs/widget/local_text.dart'; - -import 'do_line_detail.dart'; - -class DOLineChart extends StatefulWidget { - @override - _DOLineChartState createState() => _DOLineChartState(); -} - -class _DOLineChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - List> series = [ - charts.Series( - id: "pending", - data: chartModel.podoCount.getDODataCounts("pending"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault, - dashPatternFn: (_, __) => [8, 3, 2, 3], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "approved", - data: chartModel.podoCount.getDODataCounts("approved"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault, - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "canceled", - data: chartModel.podoCount.getDODataCounts("canceled"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.gray.shadeDefault, - dashPatternFn: (_, __) => [8, 3, 2, 3], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "rejected", - data: chartModel.podoCount.getDODataCounts("rejected"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault, - dashPatternFn: (_, __) => [8, 3, 2, 3], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "expired", - data: chartModel.podoCount.getDODataCounts("expired"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.purple.shadeDefault, - dashPatternFn: (_, __) => [8, 5, 2, 5], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "closed", - data: chartModel.podoCount.getDODataCounts("closed"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.indigo.shadeDefault, - dashPatternFn: (_, __) => [8, 5, 2, 5], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - LocalText(context, "do", color: primaryColor, fontSize: 16), - LocalText(context, 'chart.30_days', - color: primaryColor, fontSize: 14) - ], - ), - InkWell( - child: LocalText( - context, - "do.details", - color: secondaryColor, - fontSize: 14, - ), - onTap: () { - Navigator.of(context) - .push(MaterialPageRoute(builder: (_) => DOLineDetail())); - }, - ), - ], - ), - Expanded( - child: charts.TimeSeriesChart( - series, - animate: true, - defaultRenderer: new charts.LineRendererConfig( - includePoints: true, - ), - behaviors: [ - new charts.SeriesLegend( - position: charts.BehaviorPosition.end, - outsideJustification: - charts.OutsideJustification.middleDrawArea, - entryTextStyle: charts.TextStyleSpec( - color: charts.Color(r: 127, g: 63, b: 191), - fontFamily: 'Georgia', - fontSize: 11), - ) - ], - primaryMeasureAxis: new charts.NumericAxisSpec( - tickProviderSpec: new charts.BasicNumericTickProviderSpec( - zeroBound: false, desiredTickCount: 10), - renderSpec: new charts.GridlineRendererSpec( - lineStyle: charts.LineStyleSpec( - dashPattern: [4, 4], - ))), - ), - ), - ], - ), - ); - } -} diff --git a/lib/charts/do_line_detail.dart b/lib/charts/do_line_detail.dart deleted file mode 100644 index e0c8192..0000000 --- a/lib/charts/do_line_detail.dart +++ /dev/null @@ -1,121 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po_do_count.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; - -class DOLineDetail extends StatefulWidget { - const DOLineDetail(); - @override - _DOLineDetailState createState() => _DOLineDetailState(); -} - -class _DOLineDetailState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'do.counts', - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - child: ListView( - children: [ - Column( - children: [ - Container( - padding: EdgeInsets.only(top: 20, left: 20, right: 20), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, "chart.date"), - LocalText(context, "do.total_count") - ], - ), - ), - Column( - children: getRowTotalCountWidget( - chartModel.podoCount.getDOTotalCounts()), - ) - ], - ), - ], - ), - ), - ), - ); - } - - List getRowTotalCountWidget(List data) { - return data.map((d) { - return Container( - child: ExpansionTile( - title: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text(dateFormatter.format(d.date), style: textStyle), - Text(numberFormatter.format(d.totalCount), style: textStyle), - ], - ), - children: [ - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - columnSpacing: 100, - columns: [ - MyDataColumn(label: LocalText(context, "do.count.status")), - MyDataColumn(label: LocalText(context, "do.count")), - ], - rows: getStatusRow(d.detailCountsList), - ), - ), - ], - ), - ); - }).toList(); - } - - List getStatusRow(List doList) { - doList.sort((a, b) => a.status.compareTo(b.status)); - return doList.map((d) { - var r = MyDataRow( - cells: [ - MyDataCell( - new Text(d.status, style: textStyle), - ), - MyDataCell( - new Text( - numberFormatter.format(d.count), - style: textStyle, - ), - ), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/lines.dart b/lib/charts/lines.dart deleted file mode 100644 index bcd4167..0000000 --- a/lib/charts/lines.dart +++ /dev/null @@ -1,107 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; - -import '../model/product_model.dart'; - -typedef void ProductClick(DateTime date, Map measures); - -class ProductsChart extends StatelessWidget { - static final numberFormatter = new NumberFormat("#,###"); - final ChartData chartData; - final ProductClick productClick; - const ProductsChart(this.chartData, {Key key, this.productClick}) - : super(key: key); - factory ProductsChart.fromModel(ProductModel productModel, - {ProductClick productClick}) { - return new ProductsChart(_createData(productModel), - productClick: productClick); - } - - static ChartData _createData(ProductModel productModel) { - List> list = []; - var min = 9999, max = 0; - productModel.products.forEach((p) { - List data = []; - if (p.priceHistory != null) { - var dateKeys = {}; - p.priceHistory.entries.forEach((e) { - dateKeys[DateTime.parse(e.key)] = e.value; - }); - - var sortedKeys = dateKeys.keys.toList()..sort((a, b) => b.compareTo(a)); - sortedKeys.forEach((k) { - var v = dateKeys[k]; - data.add(new TimeSeriesSales(k, v)); - if (v < min) min = v; - if (v > max) max = v; - }); - } - - list.add(new charts.Series( - id: p.name, - colorFn: (_, __) => charts.ColorUtil.fromDartColor(Color(p.color)), - domainFn: (TimeSeriesSales sales, _) => sales.time, - measureFn: (TimeSeriesSales sales, _) => sales.sales, - data: data, - labelAccessorFn: (TimeSeriesSales series, _) => - '${numberFormatter.format(series.sales)}', - measureFormatterFn: (TimeSeriesSales series, _) => (n) => "s", - )); - }); - var chartData = ChartData(list, min, max); - return chartData; - } - - @override - Widget build(BuildContext context) { - return charts.TimeSeriesChart( - chartData.seriesList, - animate: true, - defaultRenderer: new charts.LineRendererConfig( - includePoints: true, - ), - primaryMeasureAxis: new charts.NumericAxisSpec( - tickProviderSpec: new charts.BasicNumericTickProviderSpec( - zeroBound: false, desiredTickCount: 10), - renderSpec: new charts.GridlineRendererSpec( - lineStyle: charts.LineStyleSpec( - dashPattern: [4, 4], - ))), - selectionModels: [ - new charts.SelectionModelConfig( - type: charts.SelectionModelType.info, - updatedListener: _onSelectionChanged, - ) - ], - ); - } - - _onSelectionChanged(charts.SelectionModel model) { - final selectedDatum = model.selectedDatum; - if (selectedDatum.isNotEmpty) { - var _time = selectedDatum.first.datum.time; - Map _measures = {}; - - selectedDatum.forEach((charts.SeriesDatum datumPair) { - _measures[datumPair.series.displayName] = datumPair.datum.sales; - }); - if (productClick != null) { - productClick(_time, _measures); - } - } - } -} - -class TimeSeriesSales { - final DateTime time; - final int sales; - - TimeSeriesSales(this.time, this.sales); -} - -class ChartData { - final List seriesList; - final num min, max; - ChartData(this.seriesList, this.min, this.max); -} diff --git a/lib/charts/po_balance_chart.dart b/lib/charts/po_balance_chart.dart deleted file mode 100644 index 2791633..0000000 --- a/lib/charts/po_balance_chart.dart +++ /dev/null @@ -1,134 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:charts_flutter/flutter.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/charts/po_balance_table.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/local_text.dart'; - -class POBalanceChart extends StatefulWidget { - @override - _POBalanceChartState createState() => _POBalanceChartState(); -} - -class _POBalanceChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - List chartSummary = new List(); - List> series; - - @override - void initState() { - super.initState(); - var chartModel = Provider.of(context, listen: false); - if (mounted) { - load(chartModel); - } - } - - Future load(ChartModel chartModel) async { - var _u = await chartModel.loadPOBalancesForBuyer(); - if (_u == null) return; - if (mounted) { - setState(() { - this.chartSummary = _u; - }); - } - } - - @override - Widget build(BuildContext context) { - var productModel = Provider.of(context); - if (this.chartSummary.isNotEmpty) { - this.chartSummary.forEach((s) { - productModel.products.forEach((p) { - if (p.id == s.productID) { - s.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - this - .chartSummary - .sort((s1, s2) => s1.displayOrder.compareTo(s2.displayOrder)); - } - List> series = [ - charts.Series( - id: "Subscribers", - data: this.chartSummary, - domainFn: (POChartData series, _) => series.productName, - measureFn: (POChartData series, _) => series.balanceQty, - colorFn: (POChartData series, _) => - charts.ColorUtil.fromDartColor(series.getColor), - labelAccessorFn: (POChartData series, _) => - '${numberFormatter.format(series.balanceQty)}'), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, 'po.balances', - color: primaryColor, fontSize: 16), - IconButton( - icon: Icon( - Icons.refresh, - color: primaryColor, - ), - onPressed: () { - _load(); - }, - ) - ], - ), - Expanded( - child: charts.BarChart( - series, - animate: true, - vertical: false, - defaultRenderer: new charts.BarRendererConfig( - barRendererDecorator: new charts.BarLabelDecorator( - labelPosition: charts.BarLabelPosition.auto, - ), - ), - selectionModels: [ - SelectionModelConfig(changedListener: (SelectionModel model) { - final selectedDatum = model.selectedDatum; - if (selectedDatum.isNotEmpty) { - selectedDatum.forEach((charts.SeriesDatum datumPair) { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => POBalanceTable( - poChartData: datumPair.datum, - )), - ); - }); - } - }) - ], - ), - ), - ], - ), - ); - } - - Future _load() async { - var chartModel = Provider.of(context); - var _s = await chartModel.loadPOBalancesForBuyer(); - if (mounted) { - setState(() { - this.chartSummary = _s ?? []; - }); - } - } -} diff --git a/lib/charts/po_balance_table.dart b/lib/charts/po_balance_table.dart deleted file mode 100644 index d91280e..0000000 --- a/lib/charts/po_balance_table.dart +++ /dev/null @@ -1,106 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -class POBalanceTable extends StatefulWidget { - final POChartData poChartData; - const POBalanceTable({Key key, this.poChartData}) : super(key: key); - @override - _POBalanceTableState createState() => _POBalanceTableState(); -} - -class _POBalanceTableState extends State { - final numberFormatter = new NumberFormat("#,###"); - List chartUser = new List(); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - var chartModel = Provider.of(context, listen: false); - if (mounted) { - load(chartModel); - } - } - - Future load(ChartModel chartModel) async { - var _u = await chartModel.loadPOBalProductsForBuyer(); - setState(() { - this.chartUser = _u; - }); - } - - @override - Widget build(BuildContext context) { - List data = this - .chartUser - .where((u) => u.productName == widget.poChartData.productName) - .toList(); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text( - AppTranslations.of(context).text("product.qtys"), - style: Provider.of(context).isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode'), - ), - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 40, - columns: [ - MyDataColumn(label: LocalText(context, "buyer.name")), - MyDataColumn(label: LocalText(context, "buyer.product")), - MyDataColumn( - label: LocalText(context, "buyer.balQty"), numeric: true), - ], - rows: getProductRow(data), - ), - ), - ), - ), - ), - ); - } - - List getProductRow(List poLines) { - return poLines.map((p) { - return MyDataRow( - cells: [ - MyDataCell( - new Text(p.userName, style: textStyle), - ), - MyDataCell( - new Text( - p.productName, - style: textStyle, - ), - ), - MyDataCell( - NumberCell(p.balanceQty), - //new Text(numberFormatter.format(p.balanceQty), style: textStyle), - ), - ], - ); - }).toList(); - } -} diff --git a/lib/charts/po_balanceby_buyer.dart b/lib/charts/po_balanceby_buyer.dart deleted file mode 100644 index 035b092..0000000 --- a/lib/charts/po_balanceby_buyer.dart +++ /dev/null @@ -1,96 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/local_text.dart'; - -class POBalanceChart_ extends StatefulWidget { - @override - _POBalanceChartState createState() => _POBalanceChartState(); -} - -class _POBalanceChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - List chartSummary = new List(); - List> series; - - @override - void initState() { - super.initState(); - var chartModel = Provider.of(context, listen: false); - if (mounted) { - load(chartModel); - } - } - - Future load(ChartModel chartModel) async { - var _u = await chartModel.loadPOBalancesForBuyer_(); - if (_u == null) return; - setState(() { - this.chartSummary = _u; - }); - } - - @override - Widget build(BuildContext context) { - List> series = [ - charts.Series( - id: "Subscribers", - data: this.chartSummary, - domainFn: (POBuyerData series, _) => series.status, - measureFn: (POBuyerData series, _) => series.amount, - colorFn: (POBuyerData series, _) => - charts.ColorUtil.fromDartColor(series.getColor), - labelAccessorFn: (POBuyerData series, _) => - '${numberFormatter.format(series.amount)}'), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, 'po.balances', - color: primaryColor, fontSize: 16), - IconButton( - icon: Icon( - Icons.refresh, - color: primaryColor, - ), - onPressed: () { - _load(); - }, - ) - ], - ), - Expanded( - child: charts.BarChart( - series, - animate: true, - vertical: false, - defaultRenderer: new charts.BarRendererConfig( - barRendererDecorator: new charts.BarLabelDecorator( - labelPosition: charts.BarLabelPosition.auto, - ), - ), - ), - ), - ], - ), - ); - } - - Future _load() async { - var chartModel = Provider.of(context); - var _s = await chartModel.loadPOBalancesForBuyer_(); - if (_s == null) return; - setState(() { - this.chartSummary = _s; - }); - } -} diff --git a/lib/charts/po_line.dart b/lib/charts/po_line.dart deleted file mode 100644 index a29736b..0000000 --- a/lib/charts/po_line.dart +++ /dev/null @@ -1,155 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/charts/po_line_detail.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po_do_count.dart'; -import 'package:fcs/widget/local_text.dart'; - -class POLineChart extends StatefulWidget { - @override - _POLineChartState createState() => _POLineChartState(); -} - -class _POLineChartState extends State { - static final numberFormatter = new NumberFormat("#,###"); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - List> series = [ - charts.Series( - id: "pending", - data: chartModel.podoCount.getPODataCounts('pending'), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault, - dashPatternFn: (_, __) => [8, 3, 2, 3], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "approved", - data: chartModel.podoCount.getPODataCounts("approved"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault, - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "canceled", - data: chartModel.podoCount.getPODataCounts("canceled"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.gray.shadeDefault, - dashPatternFn: (_, __) => [8, 3, 2, 3], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "rejected", - data: chartModel.podoCount.getPODataCounts("rejected"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault, - dashPatternFn: (_, __) => [8, 3, 2, 3], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "expired", - data: chartModel.podoCount.getPODataCounts("expired"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.purple.shadeDefault, - dashPatternFn: (_, __) => [8, 5, 2, 5], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - charts.Series( - id: "closed", - data: chartModel.podoCount.getPODataCounts("closed"), - domainFn: (CountData series, _) => series.date, - measureFn: (CountData series, _) => - series.count == null ? 0 : series.count, - colorFn: (_, __) => charts.MaterialPalette.indigo.shadeDefault, - dashPatternFn: (_, __) => [8, 5, 2, 5], - labelAccessorFn: (CountData series, _) => - '${numberFormatter.format(series.count)}', - ), - ]; - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - LocalText(context, "po", color: primaryColor, fontSize: 16), - LocalText(context, 'chart.30_days', - color: primaryColor, fontSize: 14) - ], - ), - InkWell( - child: LocalText( - context, - "po.details", - color: secondaryColor, - fontSize: 14, - ), - onTap: () { - Navigator.of(context) - .push(MaterialPageRoute(builder: (_) => POLineDetail())); - }, - ), - ], - ), - Expanded( - child: charts.TimeSeriesChart( - series, - animate: true, - defaultRenderer: new charts.LineRendererConfig( - includePoints: true, - ), - behaviors: [ - new charts.SeriesLegend( - position: charts.BehaviorPosition.end, - outsideJustification: - charts.OutsideJustification.middleDrawArea, - entryTextStyle: charts.TextStyleSpec( - color: charts.Color(r: 127, g: 63, b: 191), - fontFamily: 'Georgia', - fontSize: 11), - ) - ], - primaryMeasureAxis: new charts.NumericAxisSpec( - tickProviderSpec: new charts.BasicNumericTickProviderSpec( - zeroBound: false, desiredTickCount: 10), - renderSpec: new charts.GridlineRendererSpec( - lineStyle: charts.LineStyleSpec( - dashPattern: [4, 4], - ))), - ), - ), - ], - ), - ); - } -} diff --git a/lib/charts/po_line_detail.dart b/lib/charts/po_line_detail.dart deleted file mode 100644 index 198be9d..0000000 --- a/lib/charts/po_line_detail.dart +++ /dev/null @@ -1,121 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po_do_count.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; - -class POLineDetail extends StatefulWidget { - const POLineDetail(); - @override - _POLineDetailState createState() => _POLineDetailState(); -} - -class _POLineDetailState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'po.counts', - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - child: ListView( - children: [ - Column( - children: [ - Container( - padding: EdgeInsets.only(top: 20, left: 20, right: 20), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, "chart.date"), - LocalText(context, "po.total_count") - ], - ), - ), - Column( - children: getRowTotalCountWidget( - chartModel.podoCount.getPOTotalCounts()), - ) - ], - ), - ], - ), - ), - )); - } - - List getRowTotalCountWidget(List data) { - return data.map((d) { - return Container( - child: ExpansionTile( - title: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text(dateFormatter.format(d.date), style: textStyle), - Text(numberFormatter.format(d.totalCount), style: textStyle), - ], - ), - children: [ - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - columnSpacing: 100, - columns: [ - MyDataColumn(label: LocalText(context, "po.count.status")), - MyDataColumn(label: LocalText(context, "po.count")), - ], - rows: getStatusRow(d.detailCountsList), - ), - ), - ], - ), - ); - }).toList(); - } - - List getStatusRow(List po) { - po.sort((a, b) => a.status.compareTo(b.status)); - return po.map((p) { - var r = MyDataRow( - cells: [ - MyDataCell( - new Text(p.status, style: textStyle), - ), - MyDataCell( - new Text( - p.count != null ? numberFormatter.format(p.count) : '0', - style: textStyle, - ), - ), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/qtyby_customer_table.dart b/lib/charts/qtyby_customer_table.dart deleted file mode 100644 index b5257c8..0000000 --- a/lib/charts/qtyby_customer_table.dart +++ /dev/null @@ -1,103 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -class QtyByCustomerTable extends StatefulWidget { - final POChartData poChartData; - const QtyByCustomerTable({Key key, this.poChartData}) : super(key: key); - @override - _QtyByCustomerTableState createState() => _QtyByCustomerTableState(); -} - -class _QtyByCustomerTableState extends State { - final numberFormatter = new NumberFormat("#,###"); - List chartUser = new List(); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - var chartModel = Provider.of(context, listen: false); - if (mounted) { - load(chartModel); - } - } - - Future load(ChartModel chartModel) async { - var _u = await chartModel.loadUsers(); - setState(() { - this.chartUser = _u; - }); - } - - @override - Widget build(BuildContext context) { - List data = this - .chartUser - .where((u) => u.productName == widget.poChartData.productName) - .toList(); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text( - AppTranslations.of(context).text("product.qtys"), - style: Provider.of(context).isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode'), - ), - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 40, - columns: [ - MyDataColumn(label: LocalText(context, "buyer.name")), - MyDataColumn(label: LocalText(context, "buyer.product")), - MyDataColumn( - label: LocalText(context, "buyer.balQty"), numeric: true), - ], - rows: getProductRow(data), - ), - ), - ), - ), - ), - ); - } - - List getProductRow(List poLines) { - return poLines.map((p) { - return MyDataRow( - cells: [ - MyDataCell( - new Text(p.userName, style: textStyle), - ), - MyDataCell( - new Text( - p.productName, - style: textStyle, - ), - ), - MyDataCell(NumberCell(p.balanceQty)), - ], - ); - }).toList(); - } -} diff --git a/lib/charts/quota.dart b/lib/charts/quota.dart deleted file mode 100644 index 285ebb2..0000000 --- a/lib/charts/quota.dart +++ /dev/null @@ -1,118 +0,0 @@ -/// Simple pie chart example. -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; - -class QuotaChart extends StatelessWidget { - static final numberFormatter = new NumberFormat("#,###"); - - final List quotaSeries; - final String title; - - QuotaChart(this.quotaSeries, this.title); - - factory QuotaChart.dailyQuota( - BuildContext context, Buyer buyer, List products) { - List data = []; - products.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - products.forEach((p) { - if (buyer.dailyQuotaUsedProducts.containsKey(p.id)) { - int value = buyer.dailyQuotaUsedProducts[p.id]; - data.add(Quota(p.name, value, p.color)); - } - }); - data.add( - new Quota(AppTranslations.of(context).text("chart.remaining"), - buyer.dailyQuota - buyer.dailyQuotaUsed, Colors.purple.value), - ); - - return new QuotaChart( - _createData(data), - AppTranslations.of(context).text("chart.daily.title", - translationVariables: [numberFormatter.format(buyer.dailyQuota)])); - } - - factory QuotaChart.maxQuota( - BuildContext context, Buyer buyer, List products) { - List data = []; - products.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - products.forEach((p) { - if (buyer.maxQuotaUsedProducts.containsKey(p.id)) { - int value = buyer.maxQuotaUsedProducts[p.id]; - data.add(Quota(p.name, value, p.color)); - } - }); - data.add( - new Quota(AppTranslations.of(context).text("chart.remaining"), - buyer.maxQuota - buyer.maxQuotaUsed, Colors.purple.value), - ); - return new QuotaChart( - _createData(data), - AppTranslations.of(context).text("chart.max.title", - translationVariables: [numberFormatter.format(buyer.maxQuota)])); - } - - @override - Widget build(BuildContext context) { - return Column( - children: [ - Text(title), - Padding( - padding: const EdgeInsets.all(8.0), - child: Container( - height: 200, - child: charts.PieChart( - quotaSeries, - animate: false, - behaviors: [ - new charts.DatumLegend( - position: charts.BehaviorPosition.end, - horizontalFirst: false, - cellPadding: new EdgeInsets.only(right: 4.0, bottom: 4.0), - entryTextStyle: charts.TextStyleSpec( - color: charts.MaterialPalette.purple.shadeDefault, - fontFamily: 'Georgia', - fontSize: 11), - ) - ], - defaultRenderer: new charts.ArcRendererConfig( - arcWidth: 60, - arcRendererDecorators: [ - new charts.ArcLabelDecorator( - labelPosition: charts.ArcLabelPosition.auto, - labelPadding: 0) - ], - ), - ), - ), - ), - ], - ); - } - - static List> _createData(List data) { - return [ - new charts.Series( - id: 'Daily Quota', - domainFn: (Quota quota, _) => "${quota.label}\n", - measureFn: (Quota quota, _) => quota.quota, - data: data, - colorFn: (Quota quota, i) => - charts.ColorUtil.fromDartColor(Color(quota.color)), - labelAccessorFn: (Quota row, _) => - '${numberFormatter.format(row.quota)}', - ) - ]; - } -} - -class Quota { - final String label; - final int quota; - final int color; - - Quota(this.label, this.quota, this.color); -} diff --git a/lib/charts/revenue_line.dart b/lib/charts/revenue_line.dart deleted file mode 100644 index dbfbdac..0000000 --- a/lib/charts/revenue_line.dart +++ /dev/null @@ -1,118 +0,0 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; - -import 'revenue_line_data.dart'; - -class RevenueLineChart extends StatefulWidget { - @override - _RevenueLineChartState createState() => _RevenueLineChartState(); -} - -class _RevenueLineChartState extends State { - static final numberFormatter = NumberFormat.compact(); - int actualChart = 0; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - var mainModel = Provider.of(context); - - List> series = [ - charts.Series( - id: "Subscribers", - data: chartModel.revenue.getData(), - domainFn: (Data series, _) => series.date, - measureFn: (Data series, _) => series.amount, - colorFn: (_, __) => charts.ColorUtil.fromDartColor(primaryColor), - labelAccessorFn: (Data series, _) => - '${numberFormatter.format(series.amount)}', - ), - ]; - - final moneyFormatter = - new charts.BasicNumericTickFormatterSpec.fromNumberFormat( - new NumberFormat.compact()); - - return Container( - height: 200, - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - mainModel.user.isOwnerAndAbove() - ? Row( - children: [ - LocalText(context, 'chart.revenue', - fontSize: 16, color: primaryColor), - LocalText(context, 'chart.30_days', - color: primaryColor, fontSize: 14), - ], - ) - : Row( - children: [ - LocalText(context, 'chart.spending', - fontSize: 16, color: primaryColor), - LocalText(context, 'chart.30_days', - color: primaryColor, fontSize: 14) - ], - ), - Text( - "${chartModel.revenue.mapData == null ? "" : numberFormatter.format(chartModel.revenue.getTotal(actualChart))}", - style: TextStyle( - color: Colors.black, - fontWeight: FontWeight.w700, - fontSize: 17.0)) - ], - ), - InkWell( - child: LocalText( - context, - "revenue.detail", - color: secondaryColor, - fontSize: 14, - ), - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => RevenueLineData())); - }, - ), - ], - ), - Expanded( - child: charts.TimeSeriesChart( - series, - animate: true, - defaultRenderer: new charts.LineRendererConfig( - includePoints: true, - ), - primaryMeasureAxis: new charts.NumericAxisSpec( - tickFormatterSpec: moneyFormatter, - tickProviderSpec: new charts.BasicNumericTickProviderSpec( - zeroBound: false, desiredTickCount: 10), - renderSpec: new charts.GridlineRendererSpec( - lineStyle: charts.LineStyleSpec( - dashPattern: [4, 4], - ))), - ), - ), - ], - ), - ); - } -} diff --git a/lib/charts/revenue_line_data.dart b/lib/charts/revenue_line_data.dart deleted file mode 100644 index 146e6dc..0000000 --- a/lib/charts/revenue_line_data.dart +++ /dev/null @@ -1,92 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/chart_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/revenue.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -import 'revenue_line_detail.dart'; - -class RevenueLineData extends StatefulWidget { - const RevenueLineData(); - @override - _RevenueLineDataState createState() => _RevenueLineDataState(); -} - -class _RevenueLineDataState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var chartModel = Provider.of(context); - var mainModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: mainModel.user.isOwnerAndAbove() - ? LocalText(context, 'revenue.amounts', - color: Colors.white, fontSize: 18) - : LocalText(context, 'spending.amounts', - color: Colors.white, fontSize: 18), - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(left: 20), - child: MyDataTable( - columnSpacing: 100, - columns: [ - MyDataColumn(label: LocalText(context, "revenue.date")), - MyDataColumn( - label: LocalText(context, "revenue.amount"), - numeric: true), - ], - rows: getProductRow(chartModel.revenue.getData()), - ), - ), - ), - ), - ), - ); - } - - List getProductRow(List revs) { - return revs.map((p) { - var r = MyDataRow( - onSelectChanged: (bool selected) async { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => RevenueLineDetail(p.date)), - ); - }, - cells: [ - MyDataCell( - new Text(dateFormatter.format(p.date), style: textStyle), - ), - MyDataCell(NumberCell(p.amount)), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/revenue_line_detail.dart b/lib/charts/revenue_line_detail.dart deleted file mode 100644 index 2f879e6..0000000 --- a/lib/charts/revenue_line_detail.dart +++ /dev/null @@ -1,106 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/po_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -class RevenueLineDetail extends StatefulWidget { - final DateTime date; - const RevenueLineDetail(this.date); - @override - _RevenueLineDetailState createState() => _RevenueLineDetailState(); -} - -class _RevenueLineDetailState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd-MMM-yyyy'); - bool _isLoading = false; - List pos = []; - - @override - void initState() { - super.initState(); - POSubmissionModel pOModel = - Provider.of(context, listen: false); - pOModel.getPOForRevenue(widget.date).then((pos) { - if (mounted) { - setState(() { - this.pos = pos; - }); - } - }); - } - - @override - Widget build(BuildContext context) { - var mainModel = Provider.of(context); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: mainModel.user.isOwnerAndAbove() - ? LocalText( - context, - 'revenue.detail.title', - translationVariables: [dateFormatter.format(widget.date)], - color: Colors.white, - fontSize: 18, - ) - : LocalText( - context, - 'spending.detail.title', - translationVariables: [dateFormatter.format(widget.date)], - color: Colors.white, - fontSize: 18, - ), - ), - body: Container( - padding: EdgeInsets.only(top: 5), - child: SingleChildScrollView( - scrollDirection: Axis.vertical, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(left: 3), - child: MyDataTable( - columnSpacing: 20, - columns: [ - MyDataColumn(label: LocalText(context, "po.name")), - MyDataColumn(label: LocalText(context, "po.po_num")), - MyDataColumn( - label: LocalText(context, "po.amount"), numeric: true), - ], - rows: getProductRow(), - ), - ), - ), - ), - ), - ); - } - - List getProductRow() { - return pos.map((p) { - var r = MyDataRow( - cells: [ - MyDataCell( - new Text(p.userName, style: textStyle), - ), - MyDataCell( - new Text(p.poNumber, style: textStyle), - ), - MyDataCell(NumberCell(p.amount)), - ], - ); - - return r; - }).toList(); - } -} diff --git a/lib/charts/time.dart b/lib/charts/time.dart deleted file mode 100644 index a7f7ef3..0000000 --- a/lib/charts/time.dart +++ /dev/null @@ -1,60 +0,0 @@ -/// Timeseries chart example -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:flutter/material.dart'; - -class SimpleTimeSeriesChart extends StatelessWidget { - final List seriesList; - final bool animate; - - SimpleTimeSeriesChart(this.seriesList, {this.animate}); - - /// Creates a [TimeSeriesChart] with sample data and no transition. - factory SimpleTimeSeriesChart.withSampleData() { - return new SimpleTimeSeriesChart( - _createSampleData(), - // Disable animations for image tests. - animate: false, - ); - } - - - @override - Widget build(BuildContext context) { - return new charts.TimeSeriesChart( - seriesList, - animate: animate, - // Optionally pass in a [DateTimeFactory] used by the chart. The factory - // should create the same type of [DateTime] as the data provided. If none - // specified, the default creates local date time. - dateTimeFactory: const charts.LocalDateTimeFactory(), - ); - } - - /// Create one series with sample hard coded data. - static List> _createSampleData() { - final data = [ - new TimeSeriesSales(new DateTime(2017, 9, 19), 5), - new TimeSeriesSales(new DateTime(2017, 9, 26), 25), - new TimeSeriesSales(new DateTime(2017, 10, 3), 100), - new TimeSeriesSales(new DateTime(2017, 10, 10), 75), - ]; - - return [ - new charts.Series( - id: 'Sales', - colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault, - domainFn: (TimeSeriesSales sales, _) => sales.time, - measureFn: (TimeSeriesSales sales, _) => sales.sales, - data: data, - ) - ]; - } -} - -/// Sample time series data type. -class TimeSeriesSales { - final DateTime time; - final int sales; - - TimeSeriesSales(this.time, this.sales); -} diff --git a/lib/fcs/common/data/providers/auth_fb.dart b/lib/data/provider/auth_fb.dart similarity index 95% rename from lib/fcs/common/data/providers/auth_fb.dart rename to lib/data/provider/auth_fb.dart index 7ce3e7b..11a4d14 100644 --- a/lib/fcs/common/data/providers/auth_fb.dart +++ b/lib/data/provider/auth_fb.dart @@ -1,17 +1,16 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/auth_result.dart' as fcs; -import 'package:fcs/fcs/common/domain/entities/auth_status.dart'; -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/auth_result.dart' as fcs; +import 'package:fcs/domain/entities/auth_status.dart'; +import 'package:fcs/domain/entities/setting.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/domain/exceiptions/signin_exception.dart'; +import 'package:fcs/helpers/api_helper.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:logging/logging.dart'; -import '../../helpers/api_helper.dart'; - class AuthFb { final log = Logger('AuthFb'); diff --git a/lib/fcs/common/data/providers/common_data_provider.dart b/lib/data/provider/common_data_provider.dart similarity index 81% rename from lib/fcs/common/data/providers/common_data_provider.dart rename to lib/data/provider/common_data_provider.dart index 670ef50..9ee4034 100644 --- a/lib/fcs/common/data/providers/common_data_provider.dart +++ b/lib/data/provider/common_data_provider.dart @@ -1,7 +1,7 @@ -import 'package:fcs/fcs/common/domain/entities/payment_method.dart'; -import 'package:fcs/fcs/common/domain/vo/message.dart'; -import 'package:fcs/fcs/common/helpers/api_helper.dart'; -import 'package:fcs/fcs/common/helpers/firebase_helper.dart'; +import 'package:fcs/domain/entities/payment_method.dart'; +import 'package:fcs/domain/vo/message.dart'; +import 'package:fcs/helpers/api_helper.dart'; +import 'package:fcs/helpers/firebase_helper.dart'; import 'package:logging/logging.dart'; class CommonDataProvider { diff --git a/lib/fcs/common/data/providers/messaging_fcm.dart b/lib/data/provider/messaging_fcm.dart similarity index 97% rename from lib/fcs/common/data/providers/messaging_fcm.dart rename to lib/data/provider/messaging_fcm.dart index 76b1e46..a184004 100644 --- a/lib/fcs/common/data/providers/messaging_fcm.dart +++ b/lib/data/provider/messaging_fcm.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import 'package:fcs/fcs/common/services/messaging_service.dart'; +import 'package:fcs/data/services/messaging_service.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:logging/logging.dart'; diff --git a/lib/fcs/common/data/providers/package_data_provider.dart b/lib/data/provider/package_data_provider.dart similarity index 85% rename from lib/fcs/common/data/providers/package_data_provider.dart rename to lib/data/provider/package_data_provider.dart index 768cb14..a89ea54 100644 --- a/lib/fcs/common/data/providers/package_data_provider.dart +++ b/lib/data/provider/package_data_provider.dart @@ -1,10 +1,10 @@ import 'dart:convert'; import 'package:fcs/config.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/helpers/api_helper.dart'; -import 'package:fcs/fcs/common/helpers/firebase_helper.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/helpers/api_helper.dart'; +import 'package:fcs/helpers/firebase_helper.dart'; import 'package:logging/logging.dart'; class PackageDataProvider { diff --git a/lib/fcs/common/data/providers/user_data_provider.dart b/lib/data/provider/user_data_provider.dart similarity index 91% rename from lib/fcs/common/data/providers/user_data_provider.dart rename to lib/data/provider/user_data_provider.dart index 78261bc..4fd934c 100644 --- a/lib/fcs/common/data/providers/user_data_provider.dart +++ b/lib/data/provider/user_data_provider.dart @@ -2,10 +2,10 @@ import 'dart:convert'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:fcs/config.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/helpers/api_helper.dart'; -import 'package:fcs/fcs/common/helpers/firebase_helper.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/api_helper.dart'; +import 'package:fcs/helpers/firebase_helper.dart'; import 'package:logging/logging.dart'; class UserDataProvider { diff --git a/lib/fcs/common/services/auth_imp.dart b/lib/data/services/auth_imp.dart similarity index 75% rename from lib/fcs/common/services/auth_imp.dart rename to lib/data/services/auth_imp.dart index f592bb5..cb33ec9 100644 --- a/lib/fcs/common/services/auth_imp.dart +++ b/lib/data/services/auth_imp.dart @@ -1,9 +1,8 @@ -import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; -import 'package:fcs/fcs/common/data/providers/user_data_provider.dart'; -import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; -import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/data/provider/auth_fb.dart'; +import 'package:fcs/domain/entities/auth_result.dart'; +import 'package:fcs/domain/entities/connectivity.dart'; +import 'package:fcs/domain/entities/setting.dart'; +import 'package:fcs/domain/entities/user.dart'; import 'package:flutter/material.dart'; import 'auth_service.dart'; diff --git a/lib/fcs/common/services/auth_service.dart b/lib/data/services/auth_service.dart similarity index 69% rename from lib/fcs/common/services/auth_service.dart rename to lib/data/services/auth_service.dart index 4b2efc2..3c2797a 100644 --- a/lib/fcs/common/services/auth_service.dart +++ b/lib/data/services/auth_service.dart @@ -1,6 +1,6 @@ -import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/domain/entities/auth_result.dart'; +import 'package:fcs/domain/entities/setting.dart'; +import 'package:fcs/domain/entities/user.dart'; abstract class AuthService { Future sendSmsCodeToPhoneNumber(String phoneNumber); diff --git a/lib/fcs/common/services/common_imp.dart b/lib/data/services/common_imp.dart similarity index 77% rename from lib/fcs/common/services/common_imp.dart rename to lib/data/services/common_imp.dart index c420f02..1d76410 100644 --- a/lib/fcs/common/services/common_imp.dart +++ b/lib/data/services/common_imp.dart @@ -1,7 +1,7 @@ -import 'package:fcs/fcs/common/data/providers/common_data_provider.dart'; -import 'package:fcs/fcs/common/data/providers/user_data_provider.dart'; -import 'package:fcs/fcs/common/domain/entities/payment_method.dart'; -import 'package:fcs/fcs/common/domain/vo/message.dart'; +import 'package:fcs/data/provider/common_data_provider.dart'; +import 'package:fcs/data/provider/user_data_provider.dart'; +import 'package:fcs/domain/entities/payment_method.dart'; +import 'package:fcs/domain/vo/message.dart'; import 'package:flutter/material.dart'; import 'common_service.dart'; diff --git a/lib/fcs/common/services/common_service.dart b/lib/data/services/common_service.dart similarity index 73% rename from lib/fcs/common/services/common_service.dart rename to lib/data/services/common_service.dart index b321ed7..8bfca86 100644 --- a/lib/fcs/common/services/common_service.dart +++ b/lib/data/services/common_service.dart @@ -1,5 +1,5 @@ -import 'package:fcs/fcs/common/domain/entities/payment_method.dart'; -import 'package:fcs/fcs/common/domain/vo/message.dart'; +import 'package:fcs/domain/entities/payment_method.dart'; +import 'package:fcs/domain/vo/message.dart'; abstract class CommonService { // Payment diff --git a/lib/fcs/common/services/messaging_imp.dart b/lib/data/services/messaging_imp.dart similarity index 90% rename from lib/fcs/common/services/messaging_imp.dart rename to lib/data/services/messaging_imp.dart index 9951e84..ceb6e57 100644 --- a/lib/fcs/common/services/messaging_imp.dart +++ b/lib/data/services/messaging_imp.dart @@ -1,4 +1,4 @@ -import 'package:fcs/fcs/common/data/providers/messaging_fcm.dart'; +import 'package:fcs/data/provider/messaging_fcm.dart'; import 'messaging_service.dart'; diff --git a/lib/fcs/common/services/messaging_service.dart b/lib/data/services/messaging_service.dart similarity index 100% rename from lib/fcs/common/services/messaging_service.dart rename to lib/data/services/messaging_service.dart diff --git a/lib/fcs/common/services/package_imp.dart b/lib/data/services/package_imp.dart similarity index 71% rename from lib/fcs/common/services/package_imp.dart rename to lib/data/services/package_imp.dart index 02d9394..a0614a8 100644 --- a/lib/fcs/common/services/package_imp.dart +++ b/lib/data/services/package_imp.dart @@ -1,9 +1,10 @@ -import 'package:fcs/fcs/common/data/providers/package_data_provider.dart'; -import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/services/package_service.dart'; +import 'package:fcs/data/provider/package_data_provider.dart'; +import 'package:fcs/domain/entities/connectivity.dart'; +import 'package:fcs/domain/entities/package.dart'; import 'package:flutter/material.dart'; +import 'package_service.dart'; + class PackageServiceImp implements PackageService { PackageServiceImp({ @required this.connectivity, diff --git a/lib/fcs/common/services/package_service.dart b/lib/data/services/package_service.dart similarity index 76% rename from lib/fcs/common/services/package_service.dart rename to lib/data/services/package_service.dart index b9498b2..cd79eb2 100644 --- a/lib/fcs/common/services/package_service.dart +++ b/lib/data/services/package_service.dart @@ -1,4 +1,4 @@ -import 'package:fcs/fcs/common/domain/entities/package.dart'; +import 'package:fcs/domain/entities/package.dart'; abstract class PackageService { Future createPackages(List packages, String fcsID); diff --git a/lib/fcs/common/services/services.dart b/lib/data/services/services.dart similarity index 54% rename from lib/fcs/common/services/services.dart rename to lib/data/services/services.dart index 82c0e4d..f1ba58b 100644 --- a/lib/fcs/common/services/services.dart +++ b/lib/data/services/services.dart @@ -1,18 +1,18 @@ -import 'package:fcs/fcs/common/data/providers/auth_fb.dart'; -import 'package:fcs/fcs/common/data/providers/common_data_provider.dart'; -import 'package:fcs/fcs/common/data/providers/package_data_provider.dart'; -import 'package:fcs/fcs/common/data/providers/user_data_provider.dart'; -import 'package:fcs/fcs/common/services/auth_imp.dart'; -import 'package:fcs/fcs/common/services/common_imp.dart'; -import 'package:fcs/fcs/common/services/common_service.dart'; -import 'package:fcs/fcs/common/services/messaging_imp.dart'; -import 'package:fcs/fcs/common/services/messaging_service.dart'; -import 'package:fcs/fcs/common/services/package_imp.dart'; -import 'package:fcs/fcs/common/services/package_service.dart'; -import 'package:fcs/fcs/common/services/user_imp.dart'; -import 'package:fcs/fcs/common/services/user_service.dart'; +import 'package:fcs/data/provider/auth_fb.dart'; +import 'package:fcs/data/provider/common_data_provider.dart'; +import 'package:fcs/data/provider/package_data_provider.dart'; +import 'package:fcs/data/provider/user_data_provider.dart'; +import 'auth_imp.dart'; import 'auth_service.dart'; +import 'common_imp.dart'; +import 'common_service.dart'; +import 'messaging_imp.dart'; +import 'messaging_service.dart'; +import 'package_imp.dart'; +import 'package_service.dart'; +import 'user_imp.dart'; +import 'user_service.dart'; class Services { static final Services instance = Services._(); diff --git a/lib/fcs/common/services/user_imp.dart b/lib/data/services/user_imp.dart similarity index 85% rename from lib/fcs/common/services/user_imp.dart rename to lib/data/services/user_imp.dart index 51d5e8c..7d99ac7 100644 --- a/lib/fcs/common/services/user_imp.dart +++ b/lib/data/services/user_imp.dart @@ -1,6 +1,6 @@ -import 'package:fcs/fcs/common/data/providers/user_data_provider.dart'; -import 'package:fcs/fcs/common/domain/entities/connectivity.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/data/provider/user_data_provider.dart'; +import 'package:fcs/domain/entities/connectivity.dart'; +import 'package:fcs/domain/entities/user.dart'; import 'package:flutter/material.dart'; import 'user_service.dart'; diff --git a/lib/fcs/common/services/user_service.dart b/lib/data/services/user_service.dart similarity index 86% rename from lib/fcs/common/services/user_service.dart rename to lib/data/services/user_service.dart index 93d8c32..2b4b953 100644 --- a/lib/fcs/common/services/user_service.dart +++ b/lib/data/services/user_service.dart @@ -1,4 +1,4 @@ -import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/domain/entities/user.dart'; abstract class UserService { Future inviteUser(String userName, String phoneNumber); diff --git a/lib/fcs/common/domain/constants.dart b/lib/domain/constants.dart similarity index 100% rename from lib/fcs/common/domain/constants.dart rename to lib/domain/constants.dart diff --git a/lib/fcs/common/domain/entities/auth_result.dart b/lib/domain/entities/auth_result.dart similarity index 100% rename from lib/fcs/common/domain/entities/auth_result.dart rename to lib/domain/entities/auth_result.dart diff --git a/lib/fcs/common/domain/entities/auth_status.dart b/lib/domain/entities/auth_status.dart similarity index 100% rename from lib/fcs/common/domain/entities/auth_status.dart rename to lib/domain/entities/auth_status.dart diff --git a/lib/fcs/common/domain/entities/bank_account.dart b/lib/domain/entities/bank_account.dart similarity index 100% rename from lib/fcs/common/domain/entities/bank_account.dart rename to lib/domain/entities/bank_account.dart diff --git a/lib/vo/box.dart b/lib/domain/entities/box.dart similarity index 84% rename from lib/vo/box.dart rename to lib/domain/entities/box.dart index 8855a12..0c19e5e 100644 --- a/lib/vo/box.dart +++ b/lib/domain/entities/box.dart @@ -1,13 +1,8 @@ -import 'package:fcs/vo/cargo.dart'; -import 'package:fcs/vo/shipping_address.dart'; -import 'package.dart'; +import 'package:fcs/domain/vo/shipment_status.dart'; +import 'package:fcs/domain/vo/shipping_address.dart'; -class Status { - String status; - DateTime date; - bool done; - Status({this.status, this.date, this.done}); -} +import 'cargo.dart'; +import 'package.dart'; class Box { String id; @@ -46,7 +41,7 @@ class Box { shipmentNumber + "-" + receiverNumber + " #" + boxNumber; double get price => rate.toDouble() * weight; - List statusHistory; + List shipmentHistory; Box( {this.id, @@ -70,7 +65,7 @@ class Box { this.status, this.arrivedDate, this.cargoDesc, - this.statusHistory, + this.shipmentHistory, this.packages, this.cargoTypes, this.shippingAddress}); diff --git a/lib/vo/cargo.dart b/lib/domain/entities/cargo.dart similarity index 100% rename from lib/vo/cargo.dart rename to lib/domain/entities/cargo.dart diff --git a/lib/fcs/common/domain/entities/connectivity.dart b/lib/domain/entities/connectivity.dart similarity index 100% rename from lib/fcs/common/domain/entities/connectivity.dart rename to lib/domain/entities/connectivity.dart diff --git a/lib/vo/custom.dart b/lib/domain/entities/custom.dart similarity index 100% rename from lib/vo/custom.dart rename to lib/domain/entities/custom.dart diff --git a/lib/fcs/common/domain/entities/customer.dart b/lib/domain/entities/customer.dart similarity index 100% rename from lib/fcs/common/domain/entities/customer.dart rename to lib/domain/entities/customer.dart diff --git a/lib/vo/discount.dart b/lib/domain/entities/discount.dart similarity index 100% rename from lib/vo/discount.dart rename to lib/domain/entities/discount.dart diff --git a/lib/domain/entities/discount_rate.dart b/lib/domain/entities/discount_rate.dart new file mode 100644 index 0000000..9d888fd --- /dev/null +++ b/lib/domain/entities/discount_rate.dart @@ -0,0 +1,6 @@ +class DiscountRate { + int weight; + double discountRate; + + DiscountRate({this.weight, this.discountRate}); +} diff --git a/lib/fcs/common/domain/entities/faq.dart b/lib/domain/entities/faq.dart similarity index 100% rename from lib/fcs/common/domain/entities/faq.dart rename to lib/domain/entities/faq.dart diff --git a/lib/vo/invoice.dart b/lib/domain/entities/invoice.dart similarity index 88% rename from lib/vo/invoice.dart rename to lib/domain/entities/invoice.dart index ebb3ba4..7ce9636 100644 --- a/lib/vo/invoice.dart +++ b/lib/domain/entities/invoice.dart @@ -1,4 +1,5 @@ import 'package.dart'; +import 'receipt.dart'; class Invoice { String invoiceNumber; @@ -29,10 +30,3 @@ class Invoice { double get getAmount => packages.fold(0, (p, e) => (e.rate * e.weight) + p); } - -class Receipt { - int amount; - DateTime date; - - Receipt({this.amount, this.date}); -} diff --git a/lib/fcs/common/domain/entities/market.dart b/lib/domain/entities/market.dart similarity index 100% rename from lib/fcs/common/domain/entities/market.dart rename to lib/domain/entities/market.dart diff --git a/lib/fcs/common/domain/entities/package.dart b/lib/domain/entities/package.dart similarity index 98% rename from lib/fcs/common/domain/entities/package.dart rename to lib/domain/entities/package.dart index d5fce23..e2e549c 100644 --- a/lib/fcs/common/domain/entities/package.dart +++ b/lib/domain/entities/package.dart @@ -1,5 +1,5 @@ import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/vo/shipment_status.dart'; +import 'package:fcs/domain/vo/shipment_status.dart'; class Package { String id; diff --git a/lib/fcs/common/domain/entities/payment_method.dart b/lib/domain/entities/payment_method.dart similarity index 100% rename from lib/fcs/common/domain/entities/payment_method.dart rename to lib/domain/entities/payment_method.dart diff --git a/lib/vo/pickup.dart b/lib/domain/entities/pickup.dart similarity index 100% rename from lib/vo/pickup.dart rename to lib/domain/entities/pickup.dart diff --git a/lib/vo/rate.dart b/lib/domain/entities/rate.dart similarity index 100% rename from lib/vo/rate.dart rename to lib/domain/entities/rate.dart diff --git a/lib/domain/entities/receipt.dart b/lib/domain/entities/receipt.dart new file mode 100644 index 0000000..26452ee --- /dev/null +++ b/lib/domain/entities/receipt.dart @@ -0,0 +1,6 @@ +class Receipt { + int amount; + DateTime date; + + Receipt({this.amount, this.date}); +} diff --git a/lib/fcs/common/domain/entities/role.dart b/lib/domain/entities/role.dart similarity index 100% rename from lib/fcs/common/domain/entities/role.dart rename to lib/domain/entities/role.dart diff --git a/lib/fcs/common/domain/entities/setting.dart b/lib/domain/entities/setting.dart similarity index 100% rename from lib/fcs/common/domain/entities/setting.dart rename to lib/domain/entities/setting.dart diff --git a/lib/fcs/common/domain/entities/shipment.dart b/lib/domain/entities/shipment.dart similarity index 100% rename from lib/fcs/common/domain/entities/shipment.dart rename to lib/domain/entities/shipment.dart diff --git a/lib/fcs/common/domain/entities/user.dart b/lib/domain/entities/user.dart similarity index 97% rename from lib/fcs/common/domain/entities/user.dart rename to lib/domain/entities/user.dart index 562bf4e..6dbc119 100644 --- a/lib/fcs/common/domain/entities/user.dart +++ b/lib/domain/entities/user.dart @@ -1,11 +1,11 @@ import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/helpers/const.dart'; -import 'package:fcs/fcs/common/pages/package/package_info.dart'; +import 'package:fcs/helpers/const.dart'; import 'package:flutter/foundation.dart'; import 'package:intl/intl.dart'; DateFormat dayFormat = DateFormat("MMM dd yyyy"); DateFormat timeFormat = DateFormat("HH:mm"); +final DateFormat dateFormat = DateFormat("d MMM yyyy"); class User { String id; diff --git a/lib/fcs/common/domain/exceiptions/server_exceptions.dart b/lib/domain/exceiptions/server_exceptions.dart similarity index 100% rename from lib/fcs/common/domain/exceiptions/server_exceptions.dart rename to lib/domain/exceiptions/server_exceptions.dart diff --git a/lib/fcs/common/domain/exceiptions/signin_exception.dart b/lib/domain/exceiptions/signin_exception.dart similarity index 100% rename from lib/fcs/common/domain/exceiptions/signin_exception.dart rename to lib/domain/exceiptions/signin_exception.dart diff --git a/lib/fcs/common/domain/vo/contact.dart b/lib/domain/vo/contact.dart similarity index 94% rename from lib/fcs/common/domain/vo/contact.dart rename to lib/domain/vo/contact.dart index 1135dcc..5df67a2 100644 --- a/lib/fcs/common/domain/vo/contact.dart +++ b/lib/domain/vo/contact.dart @@ -1,4 +1,4 @@ -import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/domain/entities/setting.dart'; class Contact { String usaAddress; diff --git a/lib/fcs/common/domain/vo/message.dart b/lib/domain/vo/message.dart similarity index 100% rename from lib/fcs/common/domain/vo/message.dart rename to lib/domain/vo/message.dart diff --git a/lib/vo/radio.dart b/lib/domain/vo/radio.dart similarity index 100% rename from lib/vo/radio.dart rename to lib/domain/vo/radio.dart diff --git a/lib/fcs/common/domain/vo/shipment_status.dart b/lib/domain/vo/shipment_status.dart similarity index 100% rename from lib/fcs/common/domain/vo/shipment_status.dart rename to lib/domain/vo/shipment_status.dart diff --git a/lib/fcs/common/domain/vo/shipping_address.dart b/lib/domain/vo/shipping_address.dart similarity index 100% rename from lib/fcs/common/domain/vo/shipping_address.dart rename to lib/domain/vo/shipping_address.dart diff --git a/lib/vo/status.dart b/lib/domain/vo/status.dart similarity index 100% rename from lib/vo/status.dart rename to lib/domain/vo/status.dart diff --git a/lib/fcs/common/domain/vo/term.dart b/lib/domain/vo/term.dart similarity index 86% rename from lib/fcs/common/domain/vo/term.dart rename to lib/domain/vo/term.dart index 6f2533c..b9c1086 100644 --- a/lib/fcs/common/domain/vo/term.dart +++ b/lib/domain/vo/term.dart @@ -1,4 +1,4 @@ -import 'package:fcs/fcs/common/domain/entities/setting.dart'; +import 'package:fcs/domain/entities/setting.dart'; class Term { String termEng; diff --git a/lib/fcs/common/pages/chat/chat_page.dart b/lib/fcs/common/pages/chat/chat_page.dart deleted file mode 100644 index 9393b42..0000000 --- a/lib/fcs/common/pages/chat/chat_page.dart +++ /dev/null @@ -1,576 +0,0 @@ -import 'dart:async'; -import 'dart:io'; - -import 'package:cached_network_image/cached_network_image.dart'; -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:firebase_storage/firebase_storage.dart'; -import 'package:flutter/material.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:intl/intl.dart'; -import 'package:shared_preferences/shared_preferences.dart'; - -import 'full_photo.dart'; -import 'loading.dart'; - -final themeColor = Color(0xfff5a623); -final primaryColor = Color(0xff203152); -final greyColor = Color(0xffaeaeae); -final greyColor2 = Color(0xffE8E8E8); - -class Chat extends StatelessWidget { - final String peerId; - final String peerAvatar; - - Chat({Key key, @required this.peerId, @required this.peerAvatar}) - : super(key: key); - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text( - 'CHAT', - style: TextStyle(color: primaryColor, fontWeight: FontWeight.bold), - ), - centerTitle: true, - ), - body: ChatScreen( - peerId: peerId, - peerAvatar: peerAvatar, - ), - ); - } -} - -class ChatScreen extends StatefulWidget { - final String peerId; - final String peerAvatar; - - ChatScreen({Key key, @required this.peerId, @required this.peerAvatar}) - : super(key: key); - - @override - State createState() => - ChatScreenState(peerId: peerId, peerAvatar: peerAvatar); -} - -class ChatScreenState extends State { - ChatScreenState({Key key, @required this.peerId, @required this.peerAvatar}); - GlobalKey key = GlobalKey(); - - String peerId; - String peerAvatar; - String id; - - List listMessage = new List.from([]); - int _limit = 20; - final int _limitIncrement = 20; - String groupChatId; - SharedPreferences prefs; - - File imageFile; - bool isLoading; - String imageUrl; - - final TextEditingController textEditingController = TextEditingController(); - final ScrollController listScrollController = ScrollController(); - - _scrollListener() { - if (listScrollController.offset >= - listScrollController.position.maxScrollExtent && - !listScrollController.position.outOfRange) { - print("reach the bottom"); - setState(() { - print("reach the bottom"); - _limit += _limitIncrement; - }); - } - if (listScrollController.offset <= - listScrollController.position.minScrollExtent && - !listScrollController.position.outOfRange) { - print("reach the top"); - setState(() { - print("reach the top"); - }); - } - } - - @override - void initState() { - super.initState(); - listScrollController.addListener(_scrollListener); - - groupChatId = ''; - - isLoading = false; - imageUrl = ''; - - readLocal(); - } - - readLocal() async { - prefs = await SharedPreferences.getInstance(); - id = prefs.getString('id') ?? ''; - if (id.hashCode <= peerId.hashCode) { - groupChatId = '$id-$peerId'; - } else { - groupChatId = '$peerId-$id'; - } - - Firestore.instance - .collection('users') - .document(id) - .updateData({'chattingWith': peerId}); - - setState(() {}); - } - - Future getImage() async { - ImagePicker imagePicker = ImagePicker(); - PickedFile pickedFile; - - pickedFile = await imagePicker.getImage(source: ImageSource.gallery); - imageFile = File(pickedFile.path); - - if (imageFile != null) { - setState(() { - isLoading = true; - }); - uploadFile(); - } - } - - Future uploadFile() async { - String fileName = DateTime.now().millisecondsSinceEpoch.toString(); - StorageReference reference = FirebaseStorage.instance.ref().child(fileName); - StorageUploadTask uploadTask = reference.putFile(imageFile); - StorageTaskSnapshot storageTaskSnapshot = await uploadTask.onComplete; - storageTaskSnapshot.ref.getDownloadURL().then((downloadUrl) { - imageUrl = downloadUrl; - setState(() { - isLoading = false; - onSendMessage(imageUrl, 1); - }); - }, onError: (err) { - setState(() { - isLoading = false; - }); - }); - } - - void onSendMessage(String content, int type) { - // type: 0 = text, 1 = image, 2 = sticker - if (content.trim() != '') { - textEditingController.clear(); - - var documentReference = Firestore.instance - .collection('messages') - .document(groupChatId) - .collection(groupChatId) - .document(DateTime.now().millisecondsSinceEpoch.toString()); - - Firestore.instance.runTransaction((transaction) async { - transaction.set( - documentReference, - { - 'idFrom': id, - 'idTo': peerId, - 'timestamp': DateTime.now().millisecondsSinceEpoch.toString(), - 'content': content, - 'type': type - }, - ); - }); - listScrollController.animateTo(0.0, - duration: Duration(milliseconds: 300), curve: Curves.easeOut); - } - } - - Widget buildItem(int index, DocumentSnapshot document) { - if (document.data['idFrom'] == id) { - // Right (my message) - return Row( - children: [ - document.data['type'] == 0 - // Text - ? Container( - child: Text( - document.data['content'], - style: TextStyle(color: primaryColor), - ), - padding: EdgeInsets.fromLTRB(15.0, 10.0, 15.0, 10.0), - width: 200.0, - decoration: BoxDecoration( - color: greyColor2, - borderRadius: BorderRadius.circular(8.0)), - margin: EdgeInsets.only( - bottom: isLastMessageRight(index) ? 20.0 : 10.0, - right: 10.0), - ) - : document.data['type'] == 1 - // Image - ? Container( - child: FlatButton( - child: Material( - child: CachedNetworkImage( - placeholder: (context, url) => Container( - child: CircularProgressIndicator( - valueColor: - AlwaysStoppedAnimation(themeColor), - ), - width: 200.0, - height: 200.0, - padding: EdgeInsets.all(70.0), - decoration: BoxDecoration( - color: greyColor2, - borderRadius: BorderRadius.all( - Radius.circular(8.0), - ), - ), - ), - errorWidget: (context, url, error) => Material( - child: Image.asset( - 'images/img_not_available.jpeg', - width: 200.0, - height: 200.0, - fit: BoxFit.cover, - ), - borderRadius: BorderRadius.all( - Radius.circular(8.0), - ), - clipBehavior: Clip.hardEdge, - ), - imageUrl: document.data['content'], - width: 200.0, - height: 200.0, - fit: BoxFit.cover, - ), - borderRadius: BorderRadius.all(Radius.circular(8.0)), - clipBehavior: Clip.hardEdge, - ), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => FullPhoto( - url: document.data['content']))); - }, - padding: EdgeInsets.all(0), - ), - margin: EdgeInsets.only( - bottom: isLastMessageRight(index) ? 20.0 : 10.0, - right: 10.0), - ) - // Sticker - : Container( - child: Image.asset( - 'images/${document.data['content']}.gif', - width: 100.0, - height: 100.0, - fit: BoxFit.cover, - ), - margin: EdgeInsets.only( - bottom: isLastMessageRight(index) ? 20.0 : 10.0, - right: 10.0), - ), - ], - mainAxisAlignment: MainAxisAlignment.end, - ); - } else { - // Left (peer message) - return Container( - child: Column( - children: [ - Row( - children: [ - isLastMessageLeft(index) - ? Material( - child: CachedNetworkImage( - placeholder: (context, url) => Container( - child: CircularProgressIndicator( - strokeWidth: 1.0, - valueColor: - AlwaysStoppedAnimation(themeColor), - ), - width: 35.0, - height: 35.0, - padding: EdgeInsets.all(10.0), - ), - imageUrl: peerAvatar, - width: 35.0, - height: 35.0, - fit: BoxFit.cover, - ), - borderRadius: BorderRadius.all( - Radius.circular(18.0), - ), - clipBehavior: Clip.hardEdge, - ) - : Container(width: 35.0), - document.data['type'] == 0 - ? Container( - child: Text( - document.data['content'], - style: TextStyle(color: Colors.white), - ), - padding: EdgeInsets.fromLTRB(15.0, 10.0, 15.0, 10.0), - width: 200.0, - decoration: BoxDecoration( - color: primaryColor, - borderRadius: BorderRadius.circular(8.0)), - margin: EdgeInsets.only(left: 10.0), - ) - : document.data['type'] == 1 - ? Container( - child: FlatButton( - child: Material( - child: CachedNetworkImage( - placeholder: (context, url) => Container( - child: CircularProgressIndicator( - valueColor: AlwaysStoppedAnimation( - themeColor), - ), - width: 200.0, - height: 200.0, - padding: EdgeInsets.all(70.0), - decoration: BoxDecoration( - color: greyColor2, - borderRadius: BorderRadius.all( - Radius.circular(8.0), - ), - ), - ), - errorWidget: (context, url, error) => - Material( - child: Image.asset( - 'images/img_not_available.jpeg', - width: 200.0, - height: 200.0, - fit: BoxFit.cover, - ), - borderRadius: BorderRadius.all( - Radius.circular(8.0), - ), - clipBehavior: Clip.hardEdge, - ), - imageUrl: document.data['content'], - width: 200.0, - height: 200.0, - fit: BoxFit.cover, - ), - borderRadius: - BorderRadius.all(Radius.circular(8.0)), - clipBehavior: Clip.hardEdge, - ), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => FullPhoto( - url: document.data['content']))); - }, - padding: EdgeInsets.all(0), - ), - margin: EdgeInsets.only(left: 10.0), - ) - : Container( - child: Image.asset( - 'images/${document.data['content']}.gif', - width: 100.0, - height: 100.0, - fit: BoxFit.cover, - ), - margin: EdgeInsets.only( - bottom: isLastMessageRight(index) ? 20.0 : 10.0, - right: 10.0), - ), - ], - ), - - // Time - isLastMessageLeft(index) - ? Container( - child: Text( - DateFormat('dd MMM kk:mm').format( - DateTime.fromMillisecondsSinceEpoch( - int.parse(document.data['timestamp']))), - style: TextStyle( - color: greyColor, - fontSize: 12.0, - fontStyle: FontStyle.italic), - ), - margin: EdgeInsets.only(left: 50.0, top: 5.0, bottom: 5.0), - ) - : Container() - ], - crossAxisAlignment: CrossAxisAlignment.start, - ), - margin: EdgeInsets.only(bottom: 10.0), - ); - } - } - - bool isLastMessageLeft(int index) { - if ((index > 0 && - listMessage != null && - listMessage[index - 1].data['idFrom'] == id) || - index == 0) { - return true; - } else { - return false; - } - } - - bool isLastMessageRight(int index) { - if ((index > 0 && - listMessage != null && - listMessage[index - 1].data['idFrom'] != id) || - index == 0) { - return true; - } else { - return false; - } - } - - Future onBackPress() { - Firestore.instance - .collection('users') - .document(id) - .updateData({'chattingWith': null}); - Navigator.pop(context); - - return Future.value(false); - } - - @override - Widget build(BuildContext context) { - return WillPopScope( - child: Stack( - children: [ - Column( - children: [ - // List of messages - buildListMessage(), - - // Input content - buildInput(), - ], - ), - - // Loading - buildLoading() - ], - ), - onWillPop: onBackPress, - ); - } - - Widget buildLoading() { - return Positioned( - child: isLoading ? const Loading() : Container(), - ); - } - - Widget buildInput() { - return Container( - child: Row( - children: [ - // Button send image - Material( - child: Container( - margin: EdgeInsets.symmetric(horizontal: 1.0), - child: IconButton( - icon: Icon(Icons.image), - onPressed: getImage, - color: primaryColor, - ), - ), - color: Colors.white, - ), - Material( - child: Container( - margin: EdgeInsets.symmetric(horizontal: 1.0), - child: IconButton( - icon: Icon(Icons.face), - onPressed: () => {}, - color: primaryColor, - ), - ), - color: Colors.white, - ), - - // Edit text - Flexible( - child: Container( - child: TextField( - onSubmitted: (value) { - onSendMessage(textEditingController.text, 0); - }, - style: TextStyle(color: primaryColor, fontSize: 15.0), - controller: textEditingController, - decoration: InputDecoration.collapsed( - hintText: 'Type your message...', - hintStyle: TextStyle(color: greyColor), - ), - ), - ), - ), - - // Button send message - Material( - child: Container( - margin: EdgeInsets.symmetric(horizontal: 8.0), - child: IconButton( - icon: Icon(Icons.send), - onPressed: () => onSendMessage(textEditingController.text, 0), - color: primaryColor, - ), - ), - color: Colors.white, - ), - ], - ), - width: double.infinity, - height: 50.0, - decoration: BoxDecoration( - border: Border(top: BorderSide(color: greyColor2, width: 0.5)), - color: Colors.white), - ); - } - - Widget buildListMessage() { - return Flexible( - child: groupChatId == '' - ? Center( - child: CircularProgressIndicator( - valueColor: AlwaysStoppedAnimation(themeColor))) - : StreamBuilder( - stream: Firestore.instance - .collection('messages') - .document(groupChatId) - .collection(groupChatId) - .orderBy('timestamp', descending: true) - .limit(_limit) - .snapshots(), - builder: (context, snapshot) { - if (!snapshot.hasData) { - return Center( - child: CircularProgressIndicator( - valueColor: - AlwaysStoppedAnimation(themeColor))); - } else { - listMessage.addAll(snapshot.data.documents); - return ListView.builder( - padding: EdgeInsets.all(10.0), - itemBuilder: (context, index) => - buildItem(index, snapshot.data.documents[index]), - itemCount: snapshot.data.documents.length, - reverse: true, - controller: listScrollController, - ); - } - }, - ), - ); - } -} diff --git a/lib/fcs/common/pages/chat/full_photo.dart b/lib/fcs/common/pages/chat/full_photo.dart deleted file mode 100644 index 294b1cb..0000000 --- a/lib/fcs/common/pages/chat/full_photo.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:photo_view/photo_view.dart'; -import 'package:cached_network_image/cached_network_image.dart'; - -import 'chat_page.dart'; - -class FullPhoto extends StatelessWidget { - final String url; - - FullPhoto({Key key, @required this.url}) : super(key: key); - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text( - 'FULL PHOTO', - style: TextStyle(color: primaryColor, fontWeight: FontWeight.bold), - ), - centerTitle: true, - ), - body: FullPhotoScreen(url: url), - ); - } -} - -class FullPhotoScreen extends StatefulWidget { - final String url; - - FullPhotoScreen({Key key, @required this.url}) : super(key: key); - - @override - State createState() => FullPhotoScreenState(url: url); -} - -class FullPhotoScreenState extends State { - final String url; - - FullPhotoScreenState({Key key, @required this.url}); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - return Container( - child: PhotoView(imageProvider: CachedNetworkImageProvider(url))); - } -} diff --git a/lib/fcs/common/pages/chat/loading.dart b/lib/fcs/common/pages/chat/loading.dart deleted file mode 100644 index ffbf320..0000000 --- a/lib/fcs/common/pages/chat/loading.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:flutter/material.dart'; - -class Loading extends StatelessWidget { - const Loading(); - - @override - Widget build(BuildContext context) { - return Container( - child: Center( - child: CircularProgressIndicator( - valueColor: AlwaysStoppedAnimation(primaryColor), - ), - ), - color: Colors.white.withOpacity(0.8), - ); - } -} diff --git a/lib/fcs/common/pages/chat/notification_list.dart b/lib/fcs/common/pages/chat/notification_list.dart deleted file mode 100644 index ba2d7dc..0000000 --- a/lib/fcs/common/pages/chat/notification_list.dart +++ /dev/null @@ -1,129 +0,0 @@ -import 'package:fcs/fcs/common/domain/vo/message.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/chat/message_detail.dart'; -import 'package:fcs/fcs/common/pages/chat/model/message_model.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; - -class NotificationList extends StatefulWidget { - @override - _NotificationListState createState() => _NotificationListState(); -} - -class _NotificationListState extends State { - var timeFormatter = new DateFormat('KK:mm a'); - var dateFormatter = new DateFormat('dd MMM yyyy'); - final double dotSize = 25.0; - int _selectedIndex = 0; - bool _isLoading = false; - bool _isClicked = false; - - @override - Widget build(BuildContext context) { - MessageModel messageModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon( - Icons.close, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: LocalText( - context, - 'message.title', - fontSize: 20, - color: Colors.white, - ), - ), - body: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 5), - shrinkWrap: true, - itemCount: messageModel.messages.length, - itemBuilder: (BuildContext context, int index) { - Message msg = messageModel.messages[index]; - return Stack( - children: [ - InkWell( - onTap: () => _display(msg), - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 22.0 - dotSize / 2), - child: Icon( - Icons.account_circle, - color: primaryColor, - size: 60, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - new Text( - msg.receiverName, - style: new TextStyle(fontSize: 15.0), - ), - ], - ), - ), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.only(right: 18.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - timeFormatter.format(msg.date), - style: TextStyle(color: Colors.grey), - ), - ), - msg.fromToday() - ? Container() - : Text( - dateFormatter.format(msg.date), - style: TextStyle(color: Colors.grey), - ), - ], - ), - ) - ], - ), - ), - ], - ); - }), - ), - ); - } - - _display(Message msg) { - Navigator.push(context, - BottomUpPageRoute(MessageDetail(receiverName: msg.receiverName))); - } -} diff --git a/lib/fcs/common/pages/contact/model/contact_model.dart b/lib/fcs/common/pages/contact/model/contact_model.dart deleted file mode 100644 index 70fbc48..0000000 --- a/lib/fcs/common/pages/contact/model/contact_model.dart +++ /dev/null @@ -1,17 +0,0 @@ -import 'dart:async'; - -import 'package:fcs/fcs/common/domain/vo/contact.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; -import 'package:logging/logging.dart'; - -class ContactModel extends BaseModel { - final log = Logger('ContactModel'); - - Future saveContact(Contact contact) async { - await request("/contact", "PUT", - payload: contact.toMap(), token: await Services.instance.authService.getToken()); - notifyListeners(); - } - -} diff --git a/lib/fcs/common/pages/contact/widgets.dart b/lib/fcs/common/pages/contact/widgets.dart deleted file mode 100644 index 1c068ca..0000000 --- a/lib/fcs/common/pages/contact/widgets.dart +++ /dev/null @@ -1,97 +0,0 @@ - import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:flutter/material.dart'; - -Widget itemTitle(BuildContext context, String textKey) { - return Padding( - padding: const EdgeInsets.only(left: 18.0, top: 25, bottom: 5), - child: Text( - AppTranslations.of(context).text(textKey), - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), - ), - ); - } - -Widget subItemTitle(BuildContext context, String textKey,{IconData iconData}) { - return Padding( - padding: const EdgeInsets.only(left: 0, top: 0, bottom: 0), - child: Row( - children: [ - Icon(iconData,color: primaryColor,),SizedBox(width:10), - Text( - AppTranslations.of(context).text(textKey), - style: TextStyle( - fontWeight: FontWeight.w700, fontSize: 15, color: primaryColor), - ), - ], - ), - ); - } - - Widget contactItem(BuildContext context, String text, IconData iconData, - {Function() onTap, String labelKey}) { - return Material( - child: Padding( - padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), - child: Container( - decoration: BoxDecoration( - border: Border.all(color: Colors.grey, width: 0.8), - borderRadius: BorderRadius.all( - Radius.circular(5.0) // <--- border radius here - ), - ), - child: InkWell( - onTap: () => onTap != null ? onTap() : null, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - iconData, - color: primaryColor, - ), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - labelKey == null - ? Container() - : Padding( - padding: EdgeInsets.fromLTRB(10, 10, 10, 0), - child: LocalText(context, labelKey, - color: primaryColor, fontWeight: FontWeight.w500,fontSize: 18), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - text == null ? "" : text, - overflow: TextOverflow.ellipsis, - maxLines: 5, - style: TextStyle( - fontSize: 14.0, - ), - ), - ), - ], - ), - SizedBox( - width: 5, - ), - onTap == null - ? Container() - : Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ) - ], - ), - )), - ), - ), - ); - } \ No newline at end of file diff --git a/lib/fcs/common/pages/faq/widgets.dart b/lib/fcs/common/pages/faq/widgets.dart deleted file mode 100644 index 1f7140c..0000000 --- a/lib/fcs/common/pages/faq/widgets.dart +++ /dev/null @@ -1,97 +0,0 @@ - import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:flutter/material.dart'; - -Widget itemTitle(BuildContext context, String textKey) { - return Padding( - padding: const EdgeInsets.only(left: 18.0, top: 15, bottom: 0), - child: Text( - AppTranslations.of(context).text(textKey), - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), - ), - ); - } - -Widget subItemTitle(BuildContext context, String textKey,{IconData iconData}) { - return Padding( - padding: const EdgeInsets.only(left: 0, top: 0, bottom: 0), - child: Row( - children: [ - Icon(iconData,color: primaryColor,),SizedBox(width:10), - Text( - AppTranslations.of(context).text(textKey), - style: TextStyle( - fontWeight: FontWeight.w700, fontSize: 15, color: primaryColor), - ), - ], - ), - ); - } - - Widget contactItem(BuildContext context, String text, IconData iconData, - {Function() onTap, String labelKey}) { - return Material( - child: Padding( - padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), - child: Container( - decoration: BoxDecoration( - border: Border.all(color: Colors.grey, width: 0.8), - borderRadius: BorderRadius.all( - Radius.circular(5.0) // <--- border radius here - ), - ), - child: InkWell( - onTap: () => onTap != null ? onTap() : null, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - iconData, - color: primaryColor, - ), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - labelKey == null - ? Container() - : Padding( - padding: EdgeInsets.fromLTRB(10, 10, 10, 0), - child: LocalText(context, labelKey, - color: primaryColor, fontWeight: FontWeight.w500,fontSize: 18), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - text == null ? "" : text, - overflow: TextOverflow.ellipsis, - maxLines: 5, - style: TextStyle( - fontSize: 14.0, - ), - ), - ), - ], - ), - SizedBox( - width: 5, - ), - onTap == null - ? Container() - : Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ) - ], - ), - )), - ), - ), - ); - } \ No newline at end of file diff --git a/lib/fcs/common/pages/package/model/shipment_model.dart b/lib/fcs/common/pages/package/model/shipment_model.dart deleted file mode 100644 index 05acdcc..0000000 --- a/lib/fcs/common/pages/package/model/shipment_model.dart +++ /dev/null @@ -1,102 +0,0 @@ -import 'package:fcs/fcs/common/domain/entities/shipment.dart'; -import 'package:fcs/fcs/common/domain/vo/shipping_address.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; - -class ShipmentModel extends BaseModel { - List shipmentType = ['Air', 'Ship', 'Cargo Truck']; - List shipments = [ - Shipment( - shipDate: DateTime(2020, 4, 23), - shipmentNumber: 'A103B', - status: 'In Progress', - arrivalDate: DateTime(2020, 4, 30), - departureDate: DateTime(2020, 4, 23)), - Shipment( - shipDate: DateTime(2020, 4, 2), - shipmentNumber: 'A100A', - status: 'Ready to ship', - arrivalDate: DateTime(2020, 4, 28), - departureDate: DateTime(2020, 4, 15)), - Shipment( - shipDate: DateTime(2020, 4, 2), - shipmentNumber: 'A100B', - status: 'Arrived', - arrivalDate: DateTime(2020, 4, 28), - departureDate: DateTime(2020, 4, 15)), - Shipment( - shipDate: DateTime(2020, 4, 10), - shipmentNumber: 'A102B', - status: 'Canceled', - arrivalDate: DateTime(2020, 4, 20), - departureDate: DateTime(2020, 4, 10)), - Shipment( - shipDate: DateTime(2020, 4, 2), - shipmentNumber: 'A100B', - status: 'Canceled', - arrivalDate: DateTime(2020, 4, 20), - departureDate: DateTime(2020, 4, 23)), - Shipment( - shipDate: DateTime(2020, 4, 10), - shipmentNumber: 'A102B', - status: 'Arrived', - arrivalDate: DateTime(2020, 4, 30), - departureDate: DateTime(2020, 4, 20), - ) - ]; - - List get canceled { - List _p = shipments.where((e) => e.status == "Canceled").toList() - ..sort((e1, e2) { - return e1.shipDate.compareTo(e2.shipDate); - }); - return _p; - } - - List get completed { - return shipments.where((e) => e.status == "Arrived").toList() - ..sort((e1, e2) { - return e1.shipDate.compareTo(e2.shipDate); - }); - } - - List get upcoming { - List _shipments = shipments - .where((e) => - e.status == "In Progress" || - e.status == "Ready to ship" || - e.status == "Processed" || - e.status == "Rescheduled") - .toList(); - - _shipments.sort((e1, e2) { - return e1.shipDate.compareTo(e2.shipDate); - }); - return _shipments; - } - - List shippingAddresses = [ - ShippingAddress( - fullName: 'U Nyi Nyi', - addressLine1: '154-19 64th Ave.', - addressLine2: 'Flushing', - city: 'NY', - state: 'NY', - phoneNumber: '+1 (292)215-2247'), - ShippingAddress( - fullName: 'Mg Myo', - addressLine1: '153-154 5th Thitsar.', - addressLine2: 'South Okkalapa Township', - city: 'Yangon', - state: 'Myanmar', - phoneNumber: '+09 95724 8750'), - ]; - - void initUser(user) { - super.initUser(user); - } - - @override - logout() async { - shipments = []; - } -} diff --git a/lib/fcs/common/pages/package/shipping_address_editor.dart b/lib/fcs/common/pages/package/shipping_address_editor.dart deleted file mode 100644 index 9846070..0000000 --- a/lib/fcs/common/pages/package/shipping_address_editor.dart +++ /dev/null @@ -1,139 +0,0 @@ -import 'package:fcs/fcs/common/domain/vo/shipping_address.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; -import 'package:flutter_icons/flutter_icons.dart'; -import 'package:flutter/material.dart'; - -class ShippingAddressEditor extends StatefulWidget { - final ShippingAddress shippingAddress; - ShippingAddressEditor({this.shippingAddress}); - - @override - _ShippingAddressEditorState createState() => _ShippingAddressEditorState(); -} - -class _ShippingAddressEditorState extends State { - TextEditingController _nameController = new TextEditingController(); - TextEditingController _address1Controller = new TextEditingController(); - TextEditingController _address2Controller = new TextEditingController(); - TextEditingController _cityController = new TextEditingController(); - TextEditingController _stateController = new TextEditingController(); - TextEditingController _phoneController = new TextEditingController(); - - ShippingAddress _shippingAddress = new ShippingAddress(); - - bool _isLoading = false; - - @override - void initState() { - super.initState(); - if (widget.shippingAddress != null) { - _shippingAddress = widget.shippingAddress; - _nameController.text = _shippingAddress.fullName; - _address1Controller.text = _shippingAddress.addressLine1; - _address2Controller.text = _shippingAddress.addressLine2; - _cityController.text = _shippingAddress.city; - _stateController.text = _shippingAddress.state; - _phoneController.text = _shippingAddress.phoneNumber; - } - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - final usaAddress = - fcsInput('Full Name', Icons.text_format, controller: _nameController); - final mmAddress = fcsInput('Address Line 1', Icons.location_on, - controller: _address1Controller); - - final contactNumber = fcsInput('Address Line 2', Icons.location_on, - controller: _address2Controller); - final mmContactNumber = - fcsInput('City', Icons.location_city, controller: _cityController); - - final mailBox = - fcsInput('State/Region', Entypo.location, controller: _stateController); - final fbLinkBox = - fcsInput('Phone Number', Icons.phone, controller: _phoneController); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: LocalText( - context, - 'user.form.shipping_address', - color: Colors.white, - fontSize: 20, - ), - ), - body: Card( - child: Column( - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.only(left: 10.0, right: 10), - child: ListView(children: [ - usaAddress, - SizedBox(height: 10), - mmAddress, - SizedBox(height: 10), - contactNumber, - SizedBox(height: 10), - mmContactNumber, - SizedBox(height: 10), - mailBox, - SizedBox(height: 10), - fbLinkBox, - SizedBox(height: 10), - ]), - )), - widget.shippingAddress == null - ? Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - child: Text('Create'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))) - : Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - child: Text('Update'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))), - SizedBox(height: 10) - ], - ), - ), - ), - ); - } -} diff --git a/lib/fcs/common/helpers/api_helper.dart b/lib/helpers/api_helper.dart similarity index 98% rename from lib/fcs/common/helpers/api_helper.dart rename to lib/helpers/api_helper.dart index c0c8321..0be6fdd 100644 --- a/lib/fcs/common/helpers/api_helper.dart +++ b/lib/helpers/api_helper.dart @@ -3,10 +3,10 @@ import 'dart:io'; import 'package:device_info/device_info.dart'; import 'package:dio/dio.dart'; +import 'package:fcs/domain/vo/status.dart'; import 'package:logging/logging.dart'; -import 'package:fcs/vo/status.dart'; -import '../../../config.dart'; +import '../config.dart'; import 'dev_info.dart'; final log = Logger('requestAPI'); diff --git a/lib/fcs/common/helpers/const.dart b/lib/helpers/const.dart similarity index 100% rename from lib/fcs/common/helpers/const.dart rename to lib/helpers/const.dart diff --git a/lib/fcs/common/helpers/dev_info.dart b/lib/helpers/dev_info.dart similarity index 100% rename from lib/fcs/common/helpers/dev_info.dart rename to lib/helpers/dev_info.dart diff --git a/lib/fcs/common/helpers/firebase_helper.dart b/lib/helpers/firebase_helper.dart similarity index 100% rename from lib/fcs/common/helpers/firebase_helper.dart rename to lib/helpers/firebase_helper.dart diff --git a/lib/fcs/common/helpers/network_connectivity.dart b/lib/helpers/network_connectivity.dart similarity index 96% rename from lib/fcs/common/helpers/network_connectivity.dart rename to lib/helpers/network_connectivity.dart index d34f593..fe7c21d 100644 --- a/lib/fcs/common/helpers/network_connectivity.dart +++ b/lib/helpers/network_connectivity.dart @@ -3,9 +3,10 @@ import 'dart:io'; import 'package:connectivity/connectivity.dart'; import 'package:fcs/config.dart'; -import 'package:fcs/fcs/common/helpers/api_helper.dart'; import 'package:logging/logging.dart'; +import 'api_helper.dart'; + class NetworkConnectivity { final log = Logger('NetworkConnectivity'); diff --git a/lib/fcs/common/helpers/pagination_model.dart b/lib/helpers/pagination_model.dart similarity index 100% rename from lib/fcs/common/helpers/pagination_model.dart rename to lib/helpers/pagination_model.dart diff --git a/lib/fcs/common/helpers/shared_pref.dart b/lib/helpers/shared_pref.dart similarity index 97% rename from lib/fcs/common/helpers/shared_pref.dart rename to lib/helpers/shared_pref.dart index 0dafb56..c82fdb6 100644 --- a/lib/fcs/common/helpers/shared_pref.dart +++ b/lib/helpers/shared_pref.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/domain/entities/user.dart'; import 'package:shared_preferences/shared_preferences.dart'; class SharedPref { diff --git a/lib/fcs/common/helpers/theme.dart b/lib/helpers/theme.dart similarity index 100% rename from lib/fcs/common/helpers/theme.dart rename to lib/helpers/theme.dart diff --git a/lib/fcs/common/localization/app_translations.dart b/lib/localization/app_translations.dart similarity index 100% rename from lib/fcs/common/localization/app_translations.dart rename to lib/localization/app_translations.dart diff --git a/lib/fcs/common/localization/app_translations_delegate.dart b/lib/localization/app_translations_delegate.dart similarity index 100% rename from lib/fcs/common/localization/app_translations_delegate.dart rename to lib/localization/app_translations_delegate.dart diff --git a/lib/fcs/common/localization/transalation.dart b/lib/localization/transalation.dart similarity index 100% rename from lib/fcs/common/localization/transalation.dart rename to lib/localization/transalation.dart diff --git a/lib/main-dev.dart b/lib/main-dev.dart index ef4a875..fc234be 100644 --- a/lib/main-dev.dart +++ b/lib/main-dev.dart @@ -1,8 +1,8 @@ -import 'package:fcs/config.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'app.dart'; +import 'config.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/main-local.dart b/lib/main-local.dart index cc46f96..6f30bf4 100644 --- a/lib/main-local.dart +++ b/lib/main-local.dart @@ -1,8 +1,8 @@ -import 'package:fcs/config.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'app.dart'; +import 'config.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/main-prod.dart b/lib/main-prod.dart index fd9fc07..c0c431a 100644 --- a/lib/main-prod.dart +++ b/lib/main-prod.dart @@ -1,8 +1,8 @@ -import 'package:fcs/config.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'app.dart'; +import 'config.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/model/announcement_model.dart b/lib/model/announcement_model.dart deleted file mode 100644 index 88c9c24..0000000 --- a/lib/model/announcement_model.dart +++ /dev/null @@ -1,61 +0,0 @@ -import 'dart:async'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/vo/announcement.dart'; - -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class AnnouncementModel extends BaseModel { - List announcements = []; - - void initUser(user) { - super.initUser(user); - _loadAnnouncements(); - } - - @override - logout() async { - announcements = []; - } - - Future _loadAnnouncements() async { - Stream snapshots = Firestore.instance - .collection( - "/$biz_collection/${setting.okEnergyId}/$announcement_collection") - .snapshots(); - - snapshots.listen((snaps) async { - announcements = snaps.documents.map((documentSnapshot) { - var data = Announcement.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - return data; - }).toList(); - - notifyListeners(); - }); - } - - Future getAnnouncement(String id) async { - String path = - "/$biz_collection/${setting.okEnergyId}/$announcement_collection"; - var snap = await getDocSnap(path, id); - return Announcement.fromMap(snap.data, snap.documentID); - } - - Future createAnnouncement(Announcement announcement) async { - await request("/announcement", "POST", - payload: announcement.toMap(), token: await getToken()); - } - - Future updateAnnouncement(Announcement announcement) async { - await request("/announcement", "PUT", - payload: announcement.toMap(), token: await getToken()); - } - - Future deleteAnnouncement(Announcement announcement) async { - await request("/announcement", "DELETE", - payload: announcement.toMap(), token: await getToken()); - } -} diff --git a/lib/model/base_model.dart b/lib/model/base_model.dart deleted file mode 100644 index 2a39149..0000000 --- a/lib/model/base_model.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'package:flutter/foundation.dart'; -import 'package:fcs/fcs/common/helpers/api_helper.dart'; - -import '../vo/setting.dart'; -import '../vo/user.dart'; -import 'main_model.dart'; - -abstract class BaseModel extends ChangeNotifier { - User user; - Setting setting; - MainModel mainModel; - - void initUser(User user) async { - this.user = user; - } - - void initSetting(Setting setting) async { - this.setting = setting; - } - - void logout(); - -// request makes http request -// if token is null - dynamic request( - String path, - method, { - dynamic payload, - String token, - String url, - }) async { - mainModel.resetPinTimer(); - return await requestAPI(path, method, - payload: payload, token: token, url: url); - } -} diff --git a/lib/model/buyer_model.dart b/lib/model/buyer_model.dart deleted file mode 100644 index 43fbb3d..0000000 --- a/lib/model/buyer_model.dart +++ /dev/null @@ -1,177 +0,0 @@ -import 'dart:async'; -import 'dart:convert' show HtmlEscape, base64, utf8; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/config.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/vo/popup_menu.dart'; - -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class BuyerModel extends BaseModel { - final log = Logger('BuyerModel'); - - StreamSubscription listener; - - List buyers = []; - PopupMenu popupMenu = new PopupMenu(index: 0); - PopupMenu sortMenu = new PopupMenu(); - Buyer searchBuyer; - void initUser(user) { - super.initUser(user); - _loadBuyers(); - } - - Future _loadBuyers() async { - if (!user.isOwnerAndAbove() && !user.hasBuyer()) { - return; - } - - listener = getQuerySnapshotByOrder( - "/$biz_collection/${setting.okEnergyId}/$buyer_collection", - 'user_name') - .listen((snaps) async { - buyers.clear(); - snaps.documents.forEach((d) { - buyers.add(Buyer.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } - - @override - logout() async { - if (listener != null) await listener.cancel(); - buyers = []; - } - - Future getBuyer(String buyerID) async { - var snap = await getDocSnap( - "/$biz_collection/${setting.okEnergyId}/$buyer_collection", buyerID); - return Buyer.fromMap(snap.data, snap.documentID); - } - - Future loadBuyerProducts(Buyer buyer, {bool force = false}) async { - if (!force && buyer.buyerProducts != null && buyer.buyerProducts.length > 0) - return buyer; - var snaps = await getSnapshot( - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${buyer.id}/$product_collection"); - buyer.buyerProducts = snaps.documents - .map((s) => BuyerProduct.fromMap(s.data, s.documentID)) - .toList(); - return buyer; - } - - Future delete(Buyer buyer) async { - await request("/buyer/${buyer.id}", "DELETE", token: await getToken()); - } - - Future approve(Buyer buyer) async { - await request("/buyer/approve", "PUT", - payload: buyer.toMap(), token: await getToken()); - } - - Future reject(Buyer buyer) async { - await request("/buyer/reject", "POST", - payload: buyer.toMap(), token: await getToken()); - } - - Future allocate(Buyer buyer) async { - await request("/buyer/allocate", "POST", - payload: buyer.toMap(), token: await getToken()); - } - - void filterStatus(String status, int _selectedIndex, int _sleectedSortIndex) { - this.sortMenu.index = _sleectedSortIndex; - buyers.clear(); - if (listener != null) { - listener.cancel(); - } - - this.popupMenu.index = _selectedIndex; - String path = "/$biz_collection/${setting.okEnergyId}/$buyer_collection"; - listener = getFilterStatusSnapshot(path, status, 'user_name') - .listen((snaps) async { - buyers.clear(); - snaps.documents.forEach((d) { - buyers.add(Buyer.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - notifyListeners(); - } - - Future> search(String searchBuyer) async { - if (searchBuyer == null || searchBuyer == '') return List(); - - var bytes = utf8.encode(searchBuyer); - var base64Str = base64.encode(bytes); - HtmlEscape htmlEscape = const HtmlEscape(); - String escapeBuyer = htmlEscape.convert(base64Str); - - int limit = 20; - List _buyers = []; - - try { - var data = await request( - "/api/fts/$buyer_collection/$escapeBuyer/$limit", "GET", - token: await getToken(), url: Config.instance.reportURL); - if (data == null) return List(); - - data.forEach((buyer) { - var _buyer = Buyer.fromJson(buyer); - _buyers.add(_buyer); - }); - } catch (e) { - // permission error - log.warning("buyer error:" + e.toString()); - return null; - } - return _buyers; - } - - void filterSorting(int _sleectedSortIndex, int _selectedIndex) { - this.popupMenu.index = _selectedIndex; - buyers.clear(); - if (listener != null) { - listener.cancel(); - } - String _fieldName; - bool descending = false; - - if (_sleectedSortIndex == 0) { - _fieldName = 'user_name'; - descending = false; - } - if (_sleectedSortIndex == 1) { - _fieldName = 'user_name'; - descending = true; - } - if (_sleectedSortIndex == 2) { - _fieldName = 'phone_number'; - descending = false; - } - if (_sleectedSortIndex == 3) { - _fieldName = 'phone_number'; - descending = true; - } - - this.sortMenu.index = _sleectedSortIndex; - String path = "/$biz_collection/${setting.okEnergyId}/$buyer_collection"; - listener = - getFilterSnapshot(path, descending, _fieldName).listen((snaps) async { - buyers.clear(); - snaps.documents.forEach((d) { - buyers.add(Buyer.fromMap(d.data, d.documentID)); - notifyListeners(); - }); - - notifyListeners(); - }); - notifyListeners(); - } -} diff --git a/lib/model/chart_model.dart b/lib/model/chart_model.dart deleted file mode 100644 index 1c08ad9..0000000 --- a/lib/model/chart_model.dart +++ /dev/null @@ -1,243 +0,0 @@ -import 'dart:convert'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/config.dart'; -import 'package:fcs/model/firebase_helper.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/vo/po_do_count.dart'; -import 'package:fcs/vo/revenue.dart'; - -import 'base_model.dart'; -import 'constants.dart'; - -class ChartModel extends BaseModel { - final log = Logger('ChartModel'); - - List chartSummary = []; - - Revenue revenue = new Revenue(); - PODOCount podoCount = new PODOCount(); - void initUser(user) async { - super.initUser(user); - revenue = new Revenue(); - podoCount = new PODOCount(); - - _loadRev(); - _loadPODOCount(); - if (user.hasPO() || user.isOwnerAndAbove()) { - _getSummary(); - } - } - - Future _loadRev() async { - try { - String path = "/$biz_collection/${setting.okEnergyId}/$report_collection"; - String reportID = "revenue"; - - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$report_collection"; - reportID = "spending"; - } - - getDocSnapshot(path, reportID).listen((DocumentSnapshot snapshot) async { - if (snapshot.data == null) { - return; - } - revenue = Revenue.fromMap(snapshot.data, snapshot.documentID); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - Future _loadPODOCount() async { - try { - String path = "/$biz_collection/${setting.okEnergyId}/$report_collection"; - String reportID = "po_do_count"; - - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$report_collection"; - } - - getDocSnapshot(path, reportID).listen((DocumentSnapshot snapshot) async { - if (snapshot.data == null) { - return; - } - podoCount = PODOCount.fromMap(snapshot.data, snapshot.documentID); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - @override - logout() async { - chartSummary = []; - revenue = new Revenue(); - podoCount = new PODOCount(); - } - - _getSummary() async { - chartSummary.clear(); - try { - var data = { - "fields": 'quantity,product_id,product_name,color', - "aggfuns": "sum,,,", - "groupbys": 'product_id', - }; - var result = await request("/api/data/po_product_view", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - if (result == null) return; - chartSummary.clear(); - result.forEach((chart) { - var _list = POChartData.fromJson(chart, "quantity_sum"); - chartSummary.add(_list); - }); - } catch (e) { - log.warning("Error get Summary>>>>${e.toString()}"); - } - } - - Future> loadSummary() async { - List _list = List(); - try { - var data = { - "fields": 'quantity,product_id,product_name,color', - "aggfuns": "sum,,,", - "groupbys": 'product_id', - }; - var result = await request("/api/data/po_product_view", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - if (result != null) { - result.forEach((chart) { - var _data = POChartData.fromJson(chart, "quantity_sum"); - _list.add(_data); - }); - } - return _list; - } catch (e) { - log.warning("Error>>>>${e.toString()}"); - return null; - } - } - - Future> loadUsers() async { - List _list = List(); - var data = { - "fields": 'quantity,user_name,product_name', - "aggfuns": "sum,,", - "groupbys": 'product_id,user_id', - }; - try { - var result = await request("/api/data/po_product_view", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - - result.forEach((chart) { - var _buyer = POChartData.fromJson(chart, "quantity_sum"); - _list.add(_buyer); - }); - return _list; - } catch (e) { - log.warning("Error load>>>>${e.toString()}"); - return null; - } - } - - Future> loadPOBalancesForBuyer_() async { - List _list = List(); - try { - var data = { - "fields": 'amount,status', - "aggfuns": "sum,", - "groupbys": 'status', - "filters": [ - {"field": "user_id", "compare": "==", "value": user.docID} - ] - }; - var result = await request("/api/data/po_buyer_view", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - - if (result != null) { - result.forEach((chart) { - var _data = POBuyerData.fromJson(chart, "amount_sum"); - _list.add(_data); - }); - } - return _list; - } catch (e) { - log.warning("Error>>>>${e.toString()}"); - return null; - } - } - - Future> loadPOBalancesForBuyer() async { - List _list = List(); - try { - var data = { - "fields": 'quantity,product_id,product_name,user_id,color', - "aggfuns": "sum,,,,", - "groupbys": 'product_id,user_id', - "filters": [ - {"field": "user_id", "compare": "==", "value": user.docID} - ] - }; - var result = await request("/api/data/po_product_view", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - if (result != null) { - result.forEach((chart) { - var _data = POChartData.fromJson(chart, "quantity_sum"); - _list.add(_data); - }); - } - return _list; - } catch (e) { - log.warning("Error>>>>${e.toString()}"); - return null; - } - } - - Future> loadPOBalProductsForBuyer() async { - List _list = List(); - var data = { - "fields": 'quantity,user_name,user_id,product_name', - "aggfuns": "sum,,,", - "groupbys": 'product_id,user_id', - "filters": [ - {"field": "user_id", "compare": "==", "value": user.docID} - ] - }; - try { - var result = await request("/api/data/po_product_view", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - result.forEach((chart) { - var _buyer = POChartData.fromJson(chart, "quantity_sum"); - _list.add(_buyer); - }); - return _list; - } catch (e) { - log.warning("Error load>>>>${e.toString()}"); - return null; - } - } -} diff --git a/lib/model/constants.dart b/lib/model/constants.dart deleted file mode 100644 index 2d0c0fc..0000000 --- a/lib/model/constants.dart +++ /dev/null @@ -1,37 +0,0 @@ -const ok_doc_id = "ok"; -const setting_doc_id = "ok_setting"; - -const config_collection = "configs"; -const biz_collection = "bizs"; -const product_collection = "products"; -const user_collection = "users"; -const privilege_collection = "privileges"; -const user_level_collection = "user_levels"; -const storage_collection = "storages"; -const buyer_collection = "buyers"; -const buying_pos = "buying_pos"; -const selling_pos = "selling_pos"; -const inventory_takings = "inventory_takings"; -const inventory_lines = "inventory_lines"; -const pds_collection = "pds"; -const pos_collection = "pos"; -const dos_collection = "dos"; -const notification_collection = "notifications"; -const log_collection = "logs"; -const report_collection = "reports"; -const po_product_collection = "po_products"; -const device_collection = "devices"; -const do_po_lines_collection = "do_po_lines"; -const reports_collection = "reports"; -const announcement_collection = "announcements"; -const report_user_collection = "report_users"; - -const po_files_path = "/ok/po"; -const reg_files_path = "/ok/reg"; -const do_files_path = "/ok/do"; -const sign_files_path = "/ok/sign"; -const bank_images_path = "/ok/banks"; - -const po_approved_status = "approved"; -const po_closed_status = "closed"; -const do_approved_status = "approved"; diff --git a/lib/model/customer_model.dart b/lib/model/customer_model.dart deleted file mode 100644 index 45dc95f..0000000 --- a/lib/model/customer_model.dart +++ /dev/null @@ -1,68 +0,0 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/vo/user.dart'; - -import '../vo/user.dart'; -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class CustomerModel extends BaseModel { - final log = Logger('CustomerModel'); - - List customers = [ - User( - name: 'Ko Nyi', - phoneNumber: '+95 9 717273634', - status: 'Invited' - ), - User(name: 'Ko Phyu', phoneNumber: '+1 (939) 382-3844',status: 'Signin'), - User(name: 'Ko Ye', phoneNumber: '+95 9 983734783', status: 'Invited'), - ]; - - void initUser(user) async { - super.initUser(user); - // _loadCustomer(); - } - - @override - logout() async { - customers = []; - } - - // Future _loadCustomer() async { - // if (!user.isOwnerAndAbove() && !user.hasAccount()) { - // return; - // } - - // try { - // Firestore.instance - // .collection("/$biz_collection/${setting.okEnergyId}/$user_collection") - // .where("is_employee", isEqualTo: true) - // .snapshots() - // .listen((QuerySnapshot snapshot) { - // customers.clear(); - // customers = snapshot.documents.map((documentSnapshot) { - // var user = - // User.fromMap(documentSnapshot.data, documentSnapshot.documentID); - // return user; - // }).toList(); - // notifyListeners(); - // }).onError((e) { - // log.warning("Error! $e"); - // }); - // } catch (e) { - // log.warning("Error!! $e"); - // } - // } - - // Future updatePrivileges(String userID, List privileges) async { - // try { - // await request("/employee/privileges", "PUT", - // payload: {"id": userID, "privileges": privileges}, - // token: await getToken()); - // } catch (e) { - // throw Exception(e); - // } - // } -} diff --git a/lib/model/delivery_model.dart b/lib/model/delivery_model.dart deleted file mode 100644 index 506be95..0000000 --- a/lib/model/delivery_model.dart +++ /dev/null @@ -1,140 +0,0 @@ -import 'dart:async'; -import 'dart:typed_data'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:path/path.dart' as Path; -import 'package:fcs/model/constants.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/vo/popup_menu.dart'; - -import 'base_model.dart'; -import 'firebase_helper.dart'; - -class DeliveryModel extends BaseModel { - StreamSubscription listener; - - List dos = []; - PopupMenu popupMenu = new PopupMenu(index: 0); - int dateIndex = 0; - DateTime selectedDate = DateTime.now(); - int timber = 0; - - void initUser(user) async { - super.initUser(user); - _loadDOs(); - } - - Future _loadDOs() async { - if (!user.isOwnerAndAbove() && !user.hasDelivery()) { - return; - } - - String path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - - var startDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0); - var endDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 23, 59, 59); - - listener = getDeliverySnapshot( - path, 'delivery_date', startDate, endDate, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } - - @override - logout() async { - if (listener != null) await listener.cancel(); - dos = []; - } - - Future getDO(String id) async { - String path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection"; - } - var doSnap = await getDocSnap(path, id); - return DOSubmission.fromMap(doSnap.data, doSnap.documentID); - } - - Future endDelivery(DOSubmission doObj, Uint8List img) async { - String path = Path.join(do_files_path, user.docID); - String imgUrl = await uploadStorageData(path, img, fileName: doObj.id); - doObj.doReceiptUrl = imgUrl; - await request("/do/ended", "POST", - payload: doObj.toMap(), token: await getToken()); - } - - void filterData( - String status, DateTime dateTime, int _selectedIndex, int _dateIndex) { - dos.clear(); - - var startDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 0, 0, 0); - var endDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 23, 59, 59); - - if (listener != null) { - listener.cancel(); - } - - this.popupMenu.index = _selectedIndex; - this.dateIndex = _dateIndex; - this.selectedDate = dateTime == null - ? new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0) - : dateTime; - - String path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection"; - } - - if (status != null && dateTime == null) { - listener = getDeliveryStatusSnapshot(path, status, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else if (dateTime != null && status == null) { - listener = getDeliveryDateSnapshot( - path, 'delivery_date', startDate, endDate, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else if (status != null && dateTime != null) { - listener = getDeliveryDataSnapshot( - path, status, 'delivery_date', startDate, endDate, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else { - listener = - getQuerySnapshotByOrder(path, 'do_number').listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } - } -} diff --git a/lib/model/device_model.dart b/lib/model/device_model.dart deleted file mode 100644 index e5e0f0c..0000000 --- a/lib/model/device_model.dart +++ /dev/null @@ -1,76 +0,0 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:device_info/device_info.dart'; -import 'package:fcs/vo/device.dart'; - -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class PhoneDeviceModel extends BaseModel { - List devices = new List(); - - bool isLogout = false; - void initUser(user) { - super.initUser(user); - _loadDevices(); - } - - Future _loadDevices() async { - Stream snapshots = Firestore.instance - .collection( - "/$biz_collection/${setting.okEnergyId}/$user_collection/${user.docID}/$device_collection") - .where("primary_device", isEqualTo: false) - .snapshots(); - - DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); - AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; - - snapshots.listen((snaps) async { - devices = snaps.documents.map((documentSnapshot) { - var data = PhoneDevice.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - if (!data.deviceOn && - !data.primaryDevice && - data.id == androidInfo.androidId && - !documentSnapshot.metadata.isFromCache) { - this.isLogout = true; - this.mainModel.logout(); - notifyListeners(); - } - return data; - }).toList(); - - notifyListeners(); - }); - } - - - @override - logout() async { - devices = []; - } - - bool isLogoutDevice() { - return this.isLogout; - } - - setDevice(bool status) { - this.isLogout = status; - notifyListeners(); - } - - Future confirmDevice(String id, String deviceID) async { - await request("/dev/on", "POST", - payload: {"id": id, "device_id": deviceID}, token: await getToken()); - } - - Future logoutDevice(String id, String deviceID) async { - await request("/dev/off", "POST", - payload: {"id": id, "device_id": deviceID}, token: await getToken()); - } - - Future setPrimaryDevice(String id, String deviceID) async { - await request("/dev", "PUT", - payload: {"id": id, "device_id": deviceID}, token: await getToken()); - } -} diff --git a/lib/model/do_model.dart b/lib/model/do_model.dart deleted file mode 100644 index 4b8e0f1..0000000 --- a/lib/model/do_model.dart +++ /dev/null @@ -1,258 +0,0 @@ -import 'dart:async'; -import 'dart:io'; -import 'dart:typed_data'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:path/path.dart' as Path; -import 'package:fcs/fcs/common/helpers/api_helper.dart'; -import 'package:fcs/model/constants.dart'; -import 'package:fcs/pages/do/do_files.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/vo/popup_menu.dart'; - -import 'base_model.dart'; -import 'firebase_helper.dart'; - -class DOModel extends BaseModel { - StreamSubscription listener; - - List dos = []; - PopupMenu popupMenu = new PopupMenu(index: 0); - int dateIndex = 0; - DateTime selectedDate = DateTime.now(); - int timber = 0; - - void initUser(user) async { - super.initUser(user); - _loadDOs(); - } - - @override - logout() async { - if (listener != null) await listener.cancel(); - dos = []; - } - - Future _loadDOs() async { - String path; - if (user.hasDO() || user.isOwnerAndAbove()) { - path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - } - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection"; - } - var startDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0); - var endDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 23, 59, 59); - - listener = - getFilterDateSnapshot(path, 'do_date', startDate, endDate, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } - - Future loadDOPOLines(DOSubmission doSub) async { - String path = - "/$biz_collection/${setting.okEnergyId}/$dos_collection/${doSub.id}/$do_po_lines_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection/${doSub.id}/$do_po_lines_collection"; - } - var snaps = await getSnapshot(path); - doSub.dopoLies = - snaps.documents.map((s) => DOPOLine.fromMap(s.data)).toList(); - return doSub; - } - - Future getDO(String id) async { - String path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection"; - } - var doSnap = await getDocSnap(path, id); - return DOSubmission.fromMap(doSnap.data, doSnap.documentID); - } - - Future createDO(DOSubmission doSubmission, DOFiles files) async { - doSubmission.userID = user.docID; - String path = Path.join(do_files_path, user.docID); - - if (files.storageChargeFile != null) { - String url = await uploadStorage(path, files.storageChargeFile); - doSubmission.storageReceiptUrl = url; - } - if (files.licenseFile != null) { - String url = await uploadStorage(path, files.licenseFile); - doSubmission.driverLicenceUrl = url; - } - - await request("/do", "POST", - payload: doSubmission.toMap(), token: await getToken()); - } - - Future updateDO(DOSubmission doSubmission, DOFiles files) async { - String path = Path.join(do_files_path, user.docID); - if (files.storageFileChanged) { - if (doSubmission.storageReceiptUrl != null && - doSubmission.storageReceiptUrl != '') { - await deleteStorageFromUrl(doSubmission.storageReceiptUrl); - } - doSubmission.storageReceiptUrl = null; - String url = await uploadStorage(path, files.storageChargeFile); - doSubmission.storageReceiptUrl = url; - } - - if (files.licenseFileChanged) { - if (doSubmission.driverLicenceUrl != null && - doSubmission.driverLicenceUrl != '') { - await deleteStorageFromUrl(doSubmission.driverLicenceUrl); - } - doSubmission.driverLicenceUrl = null; - String url = await uploadStorage(path, files.licenseFile); - doSubmission.driverLicenceUrl = url; - } - await request("/do", "PUT", - payload: doSubmission.toMap(), token: await getToken()); - } - - Future approveDO(DOSubmission doObj) async { - await request("/do/approved", "POST", - payload: doObj.toMap(), token: await getToken()); - } - - Future rejectDO(DOSubmission doObj) async { - await request("/do/rejected", "POST", - payload: doObj.toMap(), token: await getToken()); - } - - Future cancelDO(DOSubmission doObj) async { - await request("/do/canceled", "POST", - payload: doObj.toMap(), token: await getToken()); - } - - Future initDelivery(DOSubmission doObj) async { - String path = Path.join(do_files_path, user.docID); - String imgUrl = - await uploadStorage(path, doObj.driverImg, fileName: doObj.id); - doObj.driverImgUrl = imgUrl; - await request("/do/initiated", "POST", - payload: doObj.toMap(), token: await getToken()); - } - - Future startDelivery(DOSubmission doObj) async { - await request("/do/started", "POST", - payload: doObj.toMap(), token: await getToken()); - } - - Future endDelivery(DOSubmission doObj, Uint8List img) async { - String path = Path.join(do_files_path, user.docID); - String imgUrl = await uploadStorageData(path, img, fileName: doObj.id); - doObj.doReceiptUrl = imgUrl; - await request("/do/ended", "POST", - payload: doObj.toMap(), token: await getToken()); - } - - void filterData( - String status, DateTime dateTime, int _selectedIndex, int _dateIndex) { - dos.clear(); - if (listener != null) { - listener.cancel(); - } - - this.popupMenu.index = _selectedIndex; - this.dateIndex = _dateIndex; - this.selectedDate = dateTime == null - ? new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0) - : dateTime; - - String path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection"; - } - - if (status != null && dateTime == null) { - listener = getFilterStatusSnapshot(path, status, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else if (dateTime != null && status == null) { - var endDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 23, 59, 59); - listener = - getFilterDateSnapshot(path, 'do_date', dateTime, endDate, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else if (status != null && dateTime != null) { - var endDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 23, 59, 59); - listener = getFilterDataSnapshot( - path, status, 'do_date', dateTime, endDate, 'do_number') - .listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else { - listener = - getQuerySnapshotByOrder(path, 'do_number').listen((snaps) async { - dos.clear(); - snaps.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } - } - - addTimber(int count) { - timber = count; - notifyListeners(); - } - - Future> getDOForDelivery(DateTime dateTime) async { - List dos = []; - - String path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection"; - } - DateTime date = DateTime(dateTime.year, dateTime.month, dateTime.day); - DateTime dateAddOne = date.add(Duration(days: 1)); - - QuerySnapshot snapshots = await Firestore.instance - .collection(path) - .where("status", isEqualTo: do_approved_status) - .where("delivery_date", isGreaterThanOrEqualTo: date) - .where("delivery_date", isLessThan: dateAddOne) - .orderBy("delivery_date") - .orderBy("user_name") - .limit(100) - .getDocuments(); - snapshots.documents.forEach((d) { - dos.add(DOSubmission.fromMap(d.data, d.documentID)); - }); - return dos; - } -} diff --git a/lib/model/employee_model.dart b/lib/model/employee_model.dart deleted file mode 100644 index 3d3a6fc..0000000 --- a/lib/model/employee_model.dart +++ /dev/null @@ -1,64 +0,0 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/vo/user.dart'; - -import '../vo/user.dart'; -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class EmployeeModel extends BaseModel { - final log = Logger('EmployeeModel'); - - List employees = [ - User(name: 'Ko Nyi', phoneNumber: '+95 9 717273634',), - User(name: 'Ko Phyu', phoneNumber: '+1 (939) 382-3844'), - User(name: 'Ko Ye', phoneNumber: '+95 9 983734783',status: "Delivered"), - ]; - - void initUser(user) async { - super.initUser(user); - _loadEmployees(); - } - - @override - logout() async { - employees = []; - } - - Future _loadEmployees() async { - if (!user.isOwnerAndAbove() && !user.hasAccount()) { - return; - } - - try { - Firestore.instance - .collection("/$biz_collection/${setting.okEnergyId}/$user_collection") - .where("is_employee", isEqualTo: true) - .snapshots() - .listen((QuerySnapshot snapshot) { - employees.clear(); - employees = snapshot.documents.map((documentSnapshot) { - var user = - User.fromMap(documentSnapshot.data, documentSnapshot.documentID); - return user; - }).toList(); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - Future updatePrivileges(String userID, List privileges) async { - try { - await request("/employee/privileges", "PUT", - payload: {"id": userID, "privileges": privileges}, - token: await getToken()); - } catch (e) { - throw Exception(e); - } - } -} diff --git a/lib/model/firebase_helper.dart b/lib/model/firebase_helper.dart deleted file mode 100644 index d7e59b3..0000000 --- a/lib/model/firebase_helper.dart +++ /dev/null @@ -1,270 +0,0 @@ -import 'dart:io'; -import 'dart:typed_data'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:firebase_auth/firebase_auth.dart'; -import 'package:firebase_storage/firebase_storage.dart'; -import 'package:logging/logging.dart'; -import 'package:uuid/uuid.dart'; - -final log = Logger('firebaseHelper'); - -final FirebaseAuth auth = FirebaseAuth.instance; - -Future getToken() async { - FirebaseUser firebaseUser = await auth.currentUser(); - // IdTokenResult token = await firebaseUser.getIdToken(); - // return token.token; - return ""; -} - -Stream getQuerySnapshot(String path) { - log.info("getQuerySnapshot Path: $path"); - Stream snapshots = - Firestore.instance.collection(path).snapshots(); - return snapshots; -} - -Stream getQuerySnapshotByOrder(String path, String orderName) { - log.info("getQuerySnapshotByOrder Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getFilterStatusSnapshot( - String path, String searchStatus, String orderName) { - log.info("getFilterStatusSnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .where('status', isEqualTo: searchStatus) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getFilterSnapshot( - String path, bool descending, String orderName) { - log.info("getFilterSnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .orderBy(orderName, descending: descending) - .snapshots(); - return snapshots; -} - -Stream getDeliveryStatusSnapshot( - String path, String searchStatus, String orderName) { - log.info("getDeliveryStatusSnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .where('status', isEqualTo: searchStatus) - .where("in_delivery", isEqualTo: true) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getFilterDateSnapshot(String path, String type, - DateTime startDate, DateTime endDate, String orderName) { - log.info("getFilterDateSnapshot Path: $path"); - Firestore.instance - .collection(path) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .limit(1) - .getDocuments() - .then((s) {}); - - Stream snapshots = Firestore.instance - .collection(path) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getDeliveryDateSnapshot(String path, String type, - DateTime startDate, DateTime endDate, String orderName) { - log.info("getDeliveryDateSnapshot Path: $path"); - Firestore.instance - .collection(path) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .where("in_delivery", isEqualTo: true) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .limit(1) - .getDocuments() - .then((s) {}); - - Stream snapshots = Firestore.instance - .collection(path) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .where("in_delivery", isEqualTo: true) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getDeliverySnapshot(String path, String type, - DateTime startDate, DateTime endDate, String orderName) { - log.info("getDeliverySnapshot Path: $path"); - Firestore.instance - .collection(path) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .where("in_delivery", isEqualTo: true) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .limit(1) - .getDocuments() - .then((s) {}); - - Stream snapshots = Firestore.instance - .collection(path) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .where("in_delivery", isEqualTo: true) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getFilterDataSnapshot(String path, String status, - String type, DateTime startDate, DateTime endDate, String orderName) { - log.info("getFilterDateSnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .where('status', isEqualTo: status) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getDeliveryDataSnapshot(String path, String status, - String type, DateTime startDate, DateTime endDate, String orderName) { - log.info("getDeliveryDataSnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .where('status', isEqualTo: status) - .where("in_delivery", isEqualTo: true) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .orderBy(type, descending: true) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Stream getsearchBuyerSnapshot(String path, String buyer) { - log.info("getFilterDateSnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .where("user_name", isEqualTo: buyer) - .snapshots(); - return snapshots; -} - -Stream getDocSnapshot(String path, String id) { - log.info("getDocSnapshot Path: $path, ID: $id"); - Stream snapshot = - Firestore.instance.collection(path).document(id).snapshots(); - return snapshot; -} - -Stream getQuerySnapshotF(String path, accountID) { - log.info("getQuerySnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .where("account_id", isEqualTo: accountID) - .snapshots(); - return snapshots; -} - -Stream getFilterDateSnapshotF(String path, String accountID, - String type, DateTime startDate, DateTime endDate, String orderName) { - log.info("getFilterDateSnapshot Path: $path"); - Stream snapshots = Firestore.instance - .collection(path) - .where("account_id", isEqualTo: accountID) - .where(type, isGreaterThanOrEqualTo: startDate) - .where(type, isLessThanOrEqualTo: endDate) - .orderBy(orderName, descending: true) - .snapshots(); - return snapshots; -} - -Future getSnapshot(String path) { - log.info("getSnapshot Path: $path"); - Future snapshots = - Firestore.instance.collection(path).getDocuments(); - - return snapshots; -} - -Future getDocSnap(String path, String id) { - log.info("getDocSnap Path: $path"); - return Firestore.instance.collection(path).document(id).get(); -} - -Future uploadStorage(String path, File file, {String fileName}) async { - if (fileName == null) { - fileName = Uuid().v4(); - } - StorageReference storageReference = - FirebaseStorage.instance.ref().child('$path/$fileName'); - StorageUploadTask uploadTask = storageReference.putFile(file); - await uploadTask.onComplete; - String downloadUrl = await storageReference.getDownloadURL(); - print("name:${await storageReference.getName()}"); - print("bucket:${await storageReference.getBucket()}"); - print("path:${await storageReference.getPath()}"); - print("meta:${await storageReference.getMetadata()}"); - return downloadUrl; -} - -Future uploadStorageData(String path, Uint8List data, - {String fileName}) async { - if (fileName == null) { - fileName = Uuid().v4(); - } - StorageReference storageReference = - FirebaseStorage.instance.ref().child('$path/$fileName'); - StorageUploadTask uploadTask = storageReference.putData(data); - await uploadTask.onComplete; - String downloadUrl = await storageReference.getDownloadURL(); - return downloadUrl; -} - -Future deleteStorage(String path, name) async { - try { - StorageReference storageReference = - FirebaseStorage.instance.ref().child('$path/$name'); - await storageReference.delete(); - } catch (e) { - log.warning("deleteStorage:$e"); - } -} - -Future deleteStorageFromUrl(String url) async { - try { - StorageReference storageReference = - await FirebaseStorage.instance.getReferenceFromUrl(url); - await storageReference.delete(); - } catch (e) { - log.warning("deleteStorage:$e"); - } -} diff --git a/lib/model/language_model.dart b/lib/model/language_model.dart deleted file mode 100644 index 274122c..0000000 --- a/lib/model/language_model.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:flutter/painting.dart'; -import 'package:fcs/model/base_model.dart'; -import 'package:fcs/model/shared_pref.dart'; -import 'package:fcs/vo/setting.dart'; -import 'package:fcs/widget/localization/transalation.dart'; - -class LanguageModel extends BaseModel { - String language; - bool isEng = true; - static final List languageCodesList = - Translation().supportedLanguagesCodes; - static final List languagesList = Translation().supportedLanguages; - - final Map languagesMap = { - languagesList[0]: languageCodesList[0], - languagesList[1]: languageCodesList[1], - }; - - void initSetting(Setting setting) async { - this.language = await load(); - this.isEng = this.language == "English"; - Translation().onLocaleChanged(Locale(languagesMap[language])); - notifyListeners(); - } - - @override - logout() async {} - - Future load() async { - var data = await SharedPref.getLang(); - if (data == null) return languagesList[1]; - return data; - } - - void saveLanguage(String language) async { - Translation().onLocaleChanged(Locale(languagesMap[language])); - - // SharedPref.saveLang(language); - this.language = language; - this.isEng = this.language == "English"; - notifyListeners(); - } -} diff --git a/lib/model/log_model.dart b/lib/model/log_model.dart deleted file mode 100644 index 9d5b44a..0000000 --- a/lib/model/log_model.dart +++ /dev/null @@ -1,59 +0,0 @@ -import 'dart:async'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/vo/document_log.dart'; -import 'package:fcs/vo/log.dart'; - -import 'base_model.dart'; -import 'constants.dart'; - -class LogModel extends BaseModel { - List logs = []; - List docLogs = []; - - void initUser(user) { - super.initUser(user); - _loadLogs(); - } - - - @override - logout() async { - logs = []; - docLogs=[]; - } - Future _loadLogs() async { - Stream snapshots = Firestore.instance - .collection( - "/$biz_collection/${setting.okEnergyId}/$user_collection/${user.docID}/$log_collection") - .orderBy("active_time", descending: true) - .limit(30) - .snapshots(); - - snapshots.listen((snaps) async { - logs = snaps.documents - .map((documentSnapshot) => - Log.fromMap(documentSnapshot.data, documentSnapshot.documentID)) - .toList(); - notifyListeners(); - }); - } - - Future loadDocLogs(String docID) async { - Stream snapshots = Firestore.instance - .collection("/$biz_collection/${setting.okEnergyId}/$log_collection") - .where('doc_id', isEqualTo: docID) - .orderBy('date', descending: true) - .limit(30) - .snapshots(); - - snapshots.listen((snaps) async { - docLogs.clear(); - docLogs = snaps.documents - .map((documentSnapshot) => DocLog.fromMap( - documentSnapshot.data, documentSnapshot.documentID)) - .toList(); - notifyListeners(); - }); - } -} diff --git a/lib/model/main_model.dart b/lib/model/main_model.dart deleted file mode 100644 index 5420dbd..0000000 --- a/lib/model/main_model.dart +++ /dev/null @@ -1,521 +0,0 @@ -import 'dart:async'; -import 'dart:io'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:device_info/device_info.dart'; -import 'package:dio/dio.dart'; -import 'package:fcs/fcs/common/services/services.dart'; -import 'package:fcs/vo/payment_method.dart'; -import 'package:firebase_auth/firebase_auth.dart'; -import 'package:firebase_messaging/firebase_messaging.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:logging/logging.dart'; -import 'package:package_info/package_info.dart'; -import 'package:path/path.dart' as Path; -import 'package:fcs/model/shared_pref.dart'; -import 'package:fcs/util.dart'; -import 'package:fcs/vo/bank_account.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/vo/setting.dart'; -import 'package:fcs/widget/NetworkConnectivity.dart'; - -import '../config.dart'; -import '../vo/status.dart'; -import '../vo/user.dart'; -import '../fcs/common/helpers/api_helper.dart'; -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class ImplementInterfaceModel { - void initUser(User user) => {}; - void initSetting(Setting setting) => {}; -} - -class MainModel extends ChangeNotifier { - final log = Logger('MainModel'); - - final FirebaseAuth auth = FirebaseAuth.instance; - FirebaseMessaging firebaseMessaging; - - List models = []; - User user; - Buyer buyer; - FirebaseUser firebaseUser; - StreamSubscription userListener; - StreamSubscription buyerListener; - bool pinRequired; - Timer pinTimer; - - User customer = User( - name: "Ko Myo Min", - phoneNumber: '+95 9 444444444', - fcsID: 'FCS-0203-390-2', - shippingAddress: - '154-19 64th Ave.Flushing, \nNY 11367 \nTEL. +1 (929) 215-2247', - deliveryAddress: '39 42th St. Kyaut Ta Thar Township Yangon'); - - User recipient = User( - name: "Ko Myo Min", - phoneNumber: '+95 9 444444444', - shippingAddress: '154-19 64th Ave.Flushing, \nNY 11367', - deliveryAddress: '39 42th St. Kyaut Ta Thar Township Yangon'); - - Setting setting = Setting( - terms: - '[{"insert":"* Minimum shipping weight is 1lbs.\n* Oversized goods, Light weight/Large volume items, laptops, phones, tablets may incur extra charges based on pecifications.Please contact us for pricing.\n* Goods with lithium battary needs extra packaging and declaration. Please inform us ahead of time so that we can process your package accordingly.\n* Loose Batteries, Drones, and Prescription medicines are not allowed on aircraft.\n* Payment: We accept money orders, any US bank transfers via Zelle, AYA, KBZ and CB. No COD except for pick-ups.\n*Payments made in Myanmar will incur 2% tranfer fee\n"}]'); - PackageInfo packageInfo; - bool isLoaded = true; - bool isOnline = true; - - static const PIN_TIME_MIN = 10; - - MainModel() { - // NetworkConnectivity.instance.statusStream.listen((data) { - // bool _isOnline = data["isOnline"]; - // if (_isOnline && !this.isOnline) { - // init(); - // } - // this.isOnline = _isOnline; - // notifyListeners(); - // }); - _loadFcs(); - // Services.instance.authService.onAuthStatus().listen((event) {}); - } - - List get paymentMethods { - List methods = [ - PaymentMethod( - name: 'AYA Bank', - accountName: 'FCS', - account: '100 23404320548398', - phone: '+959123456789', - mail: 'aya@gmail.com'), - PaymentMethod( - name: 'KBZ Bank', - accountName: 'FCS', - account: '100 23404320548398', - phone: '+959123456789', - mail: 'kbz@gmail.com'), - PaymentMethod( - name: 'PayPal', - accountName: 'FCS', - link: 'https://www.paypal.com/donate/buttons', - ), - ]; - return methods; - } - - _loadFcs() async { - user = await SharedPref.getUser(); - notifyListeners(); - } - - saveUser(String pin, String phone) { - if (pin == "000000") { - user = User(name: "Owner", phoneNumber: phone); - SharedPref.saveUser(user); - } else { - user = User(name: "Customer", phoneNumber: phone); - SharedPref.saveUser(user); - } - notifyListeners(); - } - - resetPinTimer() { - if (pinTimer != null && pinTimer.isActive) { - pinTimer.cancel(); - } - pinRequired = false; - pinTimer = Timer(Duration(minutes: PIN_TIME_MIN), () { - pinRequired = true; - }); - } - - bool isLogin() { - return this.user != null; - } - - bool isCustomer() { - return user != null && user.name != "Owner"; - } - - bool isOwner() { - return user != null && user.name == "Owner"; - } - - bool hasEmail() { - return this.user != null && this.user.isEmail(); - } - - bool agreedTerm() { - return this.user != null && this.user.agreeTerms; - } - - bool isBuyer() { - return this.user == null || this.user.isBuyer(); - } - - bool isRegBuyer() { - return isBuyer() && buyer != null; - } - - bool isApprovedBuyer() { - return isBuyer() && buyer != null && buyer.isApproved(); - } - - bool isSysAdmin() { - return this.user != null && this.user.isSysAdmin(); - } - - bool isSysSupport() { - return this.user != null && this.user.isSysSupport(); - } - - bool isBizAdmin() { - return this.user != null && this.user.isBizAdmin(); - } - - bool isOwnerAndAbove() { - return this.user != null && this.user.isOwnerAndAbove(); - } - - bool isAdmin() { - return this.user != null && this.user.hasAdmin(); - } - - bool showHistoryBtn() { - return isSysAdmin() || isSysSupport() || isBizAdmin(); - } - - init() async { - // await _loadSetting(); - // _loadUser(); - // resetPinTimer(); - } - - void addModel(BaseModel model) { - models.add(model); - } - - void _initUser(User user) { - models.forEach((m) => m.initUser(user)); - - if (firebaseMessaging != null) { - firebaseMessaging.subscribeToTopic(user.docID); - } - } - - void _initSetting(Setting setting) { - models.forEach((m) => m.initSetting(setting)); - } - - Future _loadSetting() async { - this.setting = await _getSetting(); - this.packageInfo = await PackageInfo.fromPlatform(); - _initSetting(setting); - } - - void _loadUser() async { - this.firebaseUser = await auth.currentUser(); - if (this.firebaseUser == null) { - this.isLoaded = true; - notifyListeners(); - return; - } - - _logUser(this.firebaseUser); - - // load from local, if successful,notify listeners - User _user = await SharedPref.getUser(); - if (_user != null) { - await _user.setFirebaseUser(this.firebaseUser); - _initUser(_user); - this.user = _user; - - if (this.user.isRegisteredBuyer()) { - _loadBuyer(); - } - this.isLoaded = true; - notifyListeners(); - log.info("user loaded from shared pref!"); - } - - _listenUser(); - } - - void _listenUser() { - if (this.userListener != null) { - this.userListener.cancel(); - } - - this.userListener = getDocSnapshot( - "/$biz_collection/${setting.okEnergyId}/$user_collection", - firebaseUser.uid) - .listen((userSnap) async { - if (userSnap.exists) { - User _user = User.fromMap(userSnap.data, userSnap.documentID); - - // load claims - try { - FirebaseUser _firebaseUser = await getProfile(this.firebaseUser); - - await _user.setFirebaseUser(_firebaseUser); - _initUser(_user); - this.user = _user; - this.firebaseUser = _firebaseUser; - await SharedPref.saveUser(this.user); - } catch (e) { - log.warning(e.toString()); - } - - log.info( - "_loadUser => ID: ${this.user.docID}, AccountID: ${this.user.accountID}," - "BizID: ${this.user.accountID}," - ", Privileges: ${this.user.claimPrivileges}, isSysAdmin: ${this.user.isSysAdmin()}"); - - if (this.user.isRegisteredBuyer()) { - _loadBuyer(); - } - this.isLoaded = true; - notifyListeners(); - } - }); - } - - void _loadBuyer() async { - if (this.user == null) return; - if (buyerListener != null) buyerListener.cancel(); - buyerListener = getDocSnapshot( - "/$biz_collection/${setting.okEnergyId}/$buyer_collection", - this.user.docID) - .listen((buyerSnap) async { - if (buyerSnap.exists) { - this.buyer = Buyer.fromMap(buyerSnap.data, buyerSnap.documentID); - } else { - this.buyer = null; - } - notifyListeners(); - }); - } - - @override - void dispose() { - super.dispose(); - // if (this.userListener != null) { - // this.userListener.cancel(); - // } - // SharedPref.removeUser(); - // this.user = User(); - } - - Future login(String phoneNumber, String pass) async { - var id = phoneNumber.replaceFirst("+", ""); - id = updatePhoneNumber(id); - - var data = {"id": id, "password": pass}; - var result = await requestAPI("/login", "POST", payload: data); - - var token = result["Token"]; - - // login with custom token - // AuthResult r = await this.auth.signInWithCustomToken(token: token); - // this.firebaseUser = r.user; - isLoaded = false; - _loadUser(); - _logUser(this.firebaseUser); - } - - Future getProfile(FirebaseUser firebaseUser) async { - // IdTokenResult idtoken = await firebaseUser.getIdToken(); - var data = await requestAPI( - "/profile", - "GET", - token: "", //idtoken.token, - ); - var _token = data["Token"]; - // AuthResult a = await this.auth.signInWithCustomToken(token: _token); - // return a.user; - return null; - } - - Future _logUser(FirebaseUser firebaseUser) async { - // IdTokenResult idtoken = await firebaseUser.getIdToken(); - - await requestAPI( - "/log", - "GET", - token: "", //idtoken.token, - ); - } - - Future logout() async { - this.user = null; - notifyListeners(); - return; - - if (this.userListener != null) { - await this.userListener.cancel(); - } - - await auth.signOut(); - this.user = null; - this.buyer = null; - this.firebaseUser = null; - await SharedPref.removeUser(); - if (firebaseMessaging != null) { - firebaseMessaging.unsubscribeFromTopic(user.docID); - } - - // logout models - models.forEach((m) => m.logout()); - - notifyListeners(); - } - - Future signup( - String name, password, confirmPassword, phoneNumber) async { - if (password == "" || password.length < 6) { - throw Exception("Password must be at least 6 characters"); - } - if (password != confirmPassword) { - throw Exception("Password mismatch"); - } - var id = phoneNumber.replaceFirst("+", ""); - id = updatePhoneNumber(id); - - var inputData = {"id": id, "password": password, "user_name": name}; - DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); - AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; - String deviceName = "${androidInfo.model}(${androidInfo.id})"; - - var url = "${Config.instance.apiURL}/signup"; - Response response = await Dio().post(url, - data: inputData, - options: Options( - headers: {"Device": androidInfo.androidId + ":" + deviceName})); - - var data = Status.fromJson(response.data); - if (data.status != 'Ok') { - throw Exception("${data.errorCode} : ${data.message}"); - } - } - - Future confirmSignup( - String phoneNumber, password, confirmSMSCode) async { - var id = phoneNumber.replaceFirst("+", ""); - id = updatePhoneNumber(id); - - if (confirmSMSCode == "" || confirmSMSCode.length != 6) { - throw Exception("Password must be 6 characters"); - } - - var inputData = { - "id": id, - "password": password, - "confirmation_code": confirmSMSCode - }; - var url = "${Config.instance.apiURL}/confirm"; - Response response = await Dio().post( - url, - data: inputData, - ); - var data = Status.fromJson(response.data); - if (data.status != 'Ok') { - throw Exception(data.message); - } - } - - bool isSupport() { - if (packageInfo == null || setting == null) return false; - return int.parse(packageInfo.buildNumber) >= setting.supportBuildNum; - } - - Future _getSetting() async { - var snap = await Firestore.instance - .collection(config_collection) - .document(setting_doc_id) - .get(); - if (!snap.exists) { - return null; - } - _listSetting(); - return Setting.fromMap(snap.data); - } - - void _listSetting() { - getDocSnapshot("/configs", setting_doc_id).listen((snap) { - this.setting = Setting.fromMap(snap.data); - notifyListeners(); - }); - } - - Future updateProfile(String name) async { - await requestAPI("/user", "PUT", - payload: {"user_name": name}, token: await getToken()); - } - - Future updateTerms(String terms) async { - await requestAPI("/terms", "PUT", - payload: {"terms": terms}, token: await getToken()); - } - - Future agreeTerms() async { - await requestAPI("/user/agree", "PUT", token: await getToken()); - } - - Future updateContact(Setting setting) async { - await requestAPI("/contact", "PUT", - payload: { - 'email': setting.email, - 'facebook_url': setting.facebook, - 'web_url': setting.website, - 'phones': setting.phones, - 'bank_account_info': setting.bankAccountInfo, - 'delivery_phone': setting.deliveryPhone, - 'address': setting.address, - }, - token: await getToken()); - } - - Future updateSetting(Setting setting) async { - await requestAPI("/setting", "PUT", - payload: { - 'do_expire_hours': setting.doExpireInHours, - 'po_expire_hours': setting.poExpireInHours, - 'po_open_at': setting.poOpenAt, - 'po_close_at': setting.poCloseAt, - 'po_close_on': setting.poCloseOn, - 'first_storage_charge_in': setting.firstStorageChargeIn, - 'first_storage_charge': setting.firstStorageCharge, - 'second_storage_charge_in': setting.secondStorageChargeIn, - 'second_storage_charge': setting.secondStorageCharge, - 'latest_delivery_days': setting.latestDeliveryDay, - }, - token: await getToken()); - } - - Future addBankAccount(BankAccount bankAccount, File image) async { - String url = await uploadStorage(bank_images_path, image); - bankAccount.bankLogo = url; - - await requestAPI("/bank_accounts", "POST", - payload: bankAccount.toMap(), token: await getToken()); - } - - Future updateBankAccount(BankAccount bankAccount, File image) async { - if (image != null) { - String url = await uploadStorage(bank_images_path, image); - bankAccount.bankLogo = url; - } - - await requestAPI("/bank_accounts", "PUT", - payload: bankAccount.toMap(), token: await getToken()); - } - - Future deleteBankAccount(BankAccount bankAccount) async { - await requestAPI("/bank_accounts", "DELETE", - payload: bankAccount.toMap(), token: await getToken()); - } -} diff --git a/lib/model/manual_model.dart b/lib/model/manual_model.dart deleted file mode 100644 index 8a778da..0000000 --- a/lib/model/manual_model.dart +++ /dev/null @@ -1,234 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; -import 'dart:typed_data'; - -import 'package:archive/archive_io.dart'; -import 'package:http/http.dart' as http; -import 'package:logging/logging.dart'; -import 'package:path_provider/path_provider.dart'; -import 'package:fcs/model/firebase_helper.dart'; -import 'package:fcs/vo/manual.dart'; -import 'package:fcs/vo/setting.dart'; -import 'package:path/path.dart' as Path; - -import 'base_model.dart'; - -typedef void SlideDataCallback(); - -class ManualModel extends BaseModel { - final log = Logger('ManualModel'); - - List helps = []; - List manuals = []; - String version; - SlideDataCallback slideDataCallback; - List deleteImage = []; - - String dataDir; - - void initSetting(Setting setting) async { - _download(setting); - super.initSetting(setting); - } - - @override - logout() async {} - - Future _download(Setting setting) async { - this.dataDir = (await getApplicationDocumentsDirectory()).path; - version = setting.helpVersion; - var file = File('$dataDir/${setting.helpFileName()}'); - if (await file.exists()) { - _loadJsonData(); - return; - } - - String url = setting.helpURL; - var req = await http.Client().get(Uri.parse(url)); - - File zippedFile = await file.writeAsBytes(req.bodyBytes); - File prev = File('$dataDir/manual'); - if (await prev.exists()) { - await prev.delete(recursive: true); - } - - var bytes = zippedFile.readAsBytesSync(); - var archive = ZipDecoder().decodeBytes(bytes); - for (var file in archive) { - var fileName = '$dataDir/manual/${file.name}'; - if (file.isFile) { - var outFile = File(fileName); - outFile = await outFile.create(recursive: true); - await outFile.writeAsBytes(file.content); - } - } - _loadJsonData(); - } - - List getHelpList(bool isBuyer) { - return helps.where((h) => isBuyer ? h.isBuyer : true).toList(); - } - - getSlideList(int manIndex) { - var slides = helps[manIndex].slides; - return slides; - } - - getSlideData(int manIndex, int slideIndex) { - var slide; - slide = helps[manIndex].slides[slideIndex]; - return slide; - } - - Future _loadJsonData() async { - try { - final directory = await getApplicationDocumentsDirectory(); - File file = File('${directory.path}/manual/manual.json'); - String contents = await file.readAsString(); - - var convertArray = jsonDecode(contents); - manuals.clear(); - convertArray.forEach((item) { - var _list = ManualItem.fromMap(item); - manuals.add(_list); - }); - } catch (e) { - log.warning("Error:${e.toString()}"); - } - helps.clear(); - helps = manuals.map((e) => ManualItem.clone(e)).toList(); - } - - addManualTitle(ManualItem manualItem) { - helps.add(manualItem); - notifyListeners(); - } - - uploadStorageManualData(String version, String dir) async { - String fileName = 'help-v$version.zip'; - - var converthelps = []; - for (final converthelp in helps) { - converthelps.add(converthelp.toJson()); - } - var json = jsonEncode(converthelps); - - Directory myDir = new Directory('$dir/manual/img'); - List _images; - _images = myDir.listSync(recursive: true, followLinks: false); - - var newImgData = await convertArchiveImgFile(_images, dir, json); - File updateImgFile = File('$dir/manual/update'); - updateImgFile.writeAsBytesSync(newImgData); - - var bytes = updateImgFile.readAsBytesSync(); - uploadDataZip(bytes, fileName); - } - - convertArchiveImgFile(List imgList, String dataDir, json) async { - File file = new File('$dataDir/update'); - if (await file.exists()) { - await file.delete(recursive: true); - } - - Archive zipArchive = new Archive(); - List utf8encoded = utf8.encode(json); - ArchiveFile jsonFile = - new ArchiveFile("manual.json", utf8encoded.length, utf8encoded); - zipArchive.addFile(jsonFile); - - for (var img in imgList) { - String basename = Path.basename(img.path); - if (deleteImage.length != 0) { - for (var dImgName in deleteImage) { - if (dImgName != basename) { - Uint8List bytesPhoto = img.readAsBytesSync() as Uint8List; - ArchiveFile jsonFile = - new ArchiveFile("img/$basename", bytesPhoto.length, bytesPhoto); - zipArchive.addFile(jsonFile); - } - } - } else { - Uint8List bytesPhoto = img.readAsBytesSync() as Uint8List; - ArchiveFile jsonFile = - new ArchiveFile("img/$basename", bytesPhoto.length, bytesPhoto); - zipArchive.addFile(jsonFile); - } - } - List zipInBytes = new ZipEncoder().encode(zipArchive); - file.writeAsBytesSync(zipInBytes); - var bytes = file.readAsBytesSync(); - return bytes; - } - - uploadDataZip(Uint8List data, String fileName) async { - String path = '/ok/img'; - String url = await uploadStorageData(path, data, fileName: fileName); - } - - resetManualItems() { - helps.clear(); - //clone manauals - helps = manuals.map((p) => ManualItem.clone(p)).toList(); - // return helps.where((h) => isBuyer ? h.isBuyer : true).toList(); - } - - saveInstruction(int manIndex, int slideIndex, int instIndex, - Instruction instruction, Instruction oldInst, bool isEng) { - if (isEng) { - var inst = helps[manIndex].slides[slideIndex].instructions.toList(); - instruction.id = oldInst.id; - if (inst.length != 0) { - helps[manIndex].slides[slideIndex].instructions.remove(oldInst); - helps[manIndex] - .slides[slideIndex] - .instructions - .insert(instIndex, instruction); - } else { - helps[manIndex].slides[slideIndex].instructions.add(instruction); - } - } else { - var inst = helps[manIndex].slides[slideIndex].instructionsmm.toList(); - instruction.id = oldInst.id; - if (inst.length != 0) { - helps[manIndex].slides[slideIndex].instructionsmm.remove(oldInst); - helps[manIndex] - .slides[slideIndex] - .instructionsmm - .insert(instIndex, instruction); - } else { - helps[manIndex].slides[slideIndex].instructionsmm.add(instruction); - } - } - notifyListeners(); - } - - saveSlideData(int manIndex, int slideIndex, SlideData slideData) { - helps[manIndex].slides.add(slideData); - notifyListeners(); - } - - changeSlideImage(int manIndex, int slideIndex, SlideData slideData) { - var oldSlide = helps[manIndex].slides[slideIndex]; - helps[manIndex].slides.remove(oldSlide); - helps[manIndex].slides.insert(slideIndex, slideData); - notifyListeners(); - } - - deleteSlideData(int manIndex, SlideData slideData) { - String engImage = slideData.image; - String mmImage = slideData.imagemm; - deleteImage.add(mmImage); - deleteImage.add(engImage); - helps[manIndex].slides.remove(slideData); - notifyListeners(); - } - - deleteManualItem(ManualItem item) { - // if(helps.isEmpty){ - // helps = new List(); - // } - helps.remove(item); - notifyListeners(); - } -} diff --git a/lib/model/messaging.dart b/lib/model/messaging.dart deleted file mode 100644 index c3c8fbf..0000000 --- a/lib/model/messaging.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:firebase_messaging/firebase_messaging.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/vo/user.dart'; - -class MessagingFCM { - final log = Logger('MessagingFCM'); - - final FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); - - MessagingFCM(User user) { - _firebaseMessaging.configure( - onMessage: (Map message) async { - log.info("onMessage: $message"); - }, - // onBackgroundMessage: backgroundMessageHandler, - onLaunch: (Map message) async { - log.info("onLaunch: $message"); - }, - onResume: (Map message) async { - log.info("onResume: $message"); - }, - ); - _firebaseMessaging.requestNotificationPermissions( - const IosNotificationSettings( - sound: true, badge: true, alert: true, provisional: true)); - _firebaseMessaging.onIosSettingsRegistered - .listen((IosNotificationSettings settings) { - log.info("Settings registered: $settings"); - }); - _firebaseMessaging.getToken().then((String token) { - log.info("Token:$token"); - }); - _firebaseMessaging.subscribeToTopic(user.docID); - } -} diff --git a/lib/model/notification_model.dart b/lib/model/notification_model.dart deleted file mode 100644 index a5ed5b6..0000000 --- a/lib/model/notification_model.dart +++ /dev/null @@ -1,96 +0,0 @@ -import 'dart:async'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/vo/notification.dart'; - -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class NotificationModel extends BaseModel { - int filer = 0; - List notifications = [ - Notification( - desc: 'Package delivered!', - status: 'A102A-34-#23', - time: DateTime(2020, 4, 28, 10, 32)), - Notification( - desc: 'Package in transit!', - status: 'A102A-34-#24', - time: DateTime(2020, 4, 26, 9, 32)), - Notification( - desc: 'Package delivered!', - status: 'A102A-34-#23', - time: DateTime(2020, 4, 24, 10, 32)), - Notification( - marketPlace: "Macy", - desc: "Audited received goods!", - status: 'ORDER # 114-0725982-9074639', - time: DateTime(2020, 4, 22, 12, 30)), - Notification( - marketPlace: "Amazon", - desc: "Receive goods!", - status: 'ORDER # 323-982-2308', - time: DateTime(2020, 4, 22, 12, 22)) - ]; - - var filterValues = {1: "po", 2: "do", 3: "buyer"}; - List get notis { - return notifications - .where((n) => filer == 0 || n.itemType == filterValues[filer]) - .toList(); - } - - int unseen = 0; - - void initUser(user) { - super.initUser(user); - _loadNotifications(); - } - - @override - logout() async { - notifications = []; - } - - Future _loadNotifications() async { - Stream snapshots = Firestore.instance - .collection( - "/$biz_collection/${setting.okEnergyId}/$user_collection/${user.docID}/$notification_collection") - .orderBy("time", descending: true) - .limit(50) - .snapshots(); - - snapshots.listen((snaps) async { - notifications.clear(); - unseen = 0; - // snaps.documentChanges.forEach((c) { - // if (c.type == DocumentChangeType.added) { - // FlutterRingtonePlayer.play( - // android: AndroidSounds.notification, - // ios: IosSounds.glass, - // ); - // } - // }); - snaps.documents.forEach((d) { - var n = Notification.fromMap(d.data, d.documentID); - if (!n.seen) unseen++; - notifications.add(n); - }); - notifyListeners(); - }); - } - - void filter(int filter) { - this.filer = filter; - } - - Future seen() async { - await request("/notification/seen", "POST", token: await getToken()); - } - - Future seenID(String id) async { - await request("/notification/seen/${user.docID}/$id", "POST", - token: await getToken()); - } -} diff --git a/lib/model/pagination/paginator.dart b/lib/model/pagination/paginator.dart deleted file mode 100644 index 60275d2..0000000 --- a/lib/model/pagination/paginator.dart +++ /dev/null @@ -1,4 +0,0 @@ - -class Listener { - -} \ No newline at end of file diff --git a/lib/model/pd_model.dart b/lib/model/pd_model.dart deleted file mode 100644 index 3e50965..0000000 --- a/lib/model/pd_model.dart +++ /dev/null @@ -1,88 +0,0 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/model/constants.dart'; -import 'package:fcs/vo/pd.dart'; -import 'package:fcs/vo/user.dart'; - -import 'base_model.dart'; -import 'firebase_helper.dart'; - -class PDModel extends BaseModel { - final log = Logger('PDModel'); - - List pds = []; - int dateIndex = 0; - DateTime selectedDate = DateTime.now(); - - void initUser(User user) async { - super.initUser(user); - loadPDs(); - } - - - @override - logout() async { - pds = []; - } - - loadPDs() { - if (!user.isOwnerAndAbove() && !user.hasInventory()) { - return; - } - - try { - String path = "/$biz_collection/${setting.okEnergyId}/$pds_collection"; - var startDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0); - var endDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 23, 59, 59); - pds.clear(); - getFilterDateSnapshot(path, 'date', startDate, endDate, 'pd_number') - .listen((QuerySnapshot snapshot) { - pds = snapshot.documents.map((documentSnapshot) { - var data = - PD.fromMap(documentSnapshot.data, documentSnapshot.documentID); - return data; - }).toList(); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - Future loadPDLines(PD pd) async { - var snaps = await getSnapshot( - "/$biz_collection/${setting.okEnergyId}/$pds_collection/${pd.id}/$product_collection"); - pd.pdLines = snaps.documents.map((s) => PDLine.fromMap(s.data)).toList(); - return pd; - } - - Future createPD(PD pd) async { - await request("/pd", "POST", - payload: pd.toMap(), token: await getToken()); - } - - void filterDate(DateTime dateTime, int _dateIndex) { - this.selectedDate = dateTime; - this.dateIndex = _dateIndex; - String path = "/$biz_collection/${setting.okEnergyId}/$pds_collection"; - var endDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 23, 59, 59); - pds.clear(); - getFilterDateSnapshot(path, 'date', dateTime, endDate, 'pd_number').listen( - (snaps) { - pds = snaps.documents.map((documentSnapshot) { - var data = - PD.fromMap(documentSnapshot.data, documentSnapshot.documentID); - return data; - }).toList(); - notifyListeners(); - }, onError: (error) { - log.warning("FIRESTORE ERROR>>$error"); - }); - } -} - diff --git a/lib/model/po_model.dart b/lib/model/po_model.dart deleted file mode 100644 index 2364c1c..0000000 --- a/lib/model/po_model.dart +++ /dev/null @@ -1,293 +0,0 @@ -import 'dart:async'; -import 'dart:io'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:path/path.dart' as Path; -import 'package:fcs/model/constants.dart'; -import 'package:fcs/pages/po/po_files.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/vo/popup_menu.dart'; - -import 'base_model.dart'; -import 'firebase_helper.dart'; - -class POSubmissionModel extends BaseModel { - final log = Logger('POSubmissionModel'); - - StreamSubscription listener; - - List pos = []; - List approvedPOs = []; - PopupMenu popupMenu = new PopupMenu(index: 0); - int dateIndex = 0; - DateTime selectedDate = DateTime.now(); - void initUser(user) async { - super.initUser(user); - _loadPOs(); - _loadApprovedPOs(); - } - - @override - logout() async { - if (listener != null) await listener.cancel(); - pos = []; - approvedPOs = []; - } - - Future _loadPOs() async { - String path; - if (user.hasPO() || user.isOwnerAndAbove()) { - path = "/$biz_collection/${setting.okEnergyId}/$pos_collection"; - } - - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$pos_collection"; - } - var startDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0); - var endDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 23, 59, 59); - listener = - getFilterDateSnapshot(path, 'po_date', startDate, endDate, 'po_number') - .listen((snaps) async { - pos.clear(); - snaps.documents.forEach((d) { - pos.add(POSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } - - Future _loadApprovedPOs() async { - if (!user.isBuyer()) { - return; - } - approvedPOs.clear(); - - String path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$pos_collection"; - var docs = await Firestore.instance - .collection(path) - .where("status", isEqualTo: po_approved_status) - .orderBy("po_approved_date", descending: false) - .limit(1) - .getDocuments(); - - Firestore.instance - .collection(path) - .where("status", isEqualTo: po_approved_status) - .orderBy("po_approved_date", descending: false) - .limit(10) - .snapshots(includeMetadataChanges: true) - .listen((snaps) async { - List _approved = []; - for (var d in snaps.documents) { - if (d.metadata.isFromCache) continue; - var po = POSubmission.fromMap(d.data, d.documentID); - po.poLines = await loadPOLines(po.id); - _approved.add(po); - } - approvedPOs.clear(); - approvedPOs.addAll(_approved); - notifyListeners(); - }); - } - - Future getPO(String id) async { - String path = "/$biz_collection/${setting.okEnergyId}/$pos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$pos_collection"; - } - var poSnap = await getDocSnap(path, id); - return POSubmission.fromMap(poSnap.data, poSnap.documentID); - } - - Future> loadPOLines(String poID) async { - String path = - "/$biz_collection/${setting.okEnergyId}/$pos_collection/$poID/$po_product_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$pos_collection/$poID/$product_collection"; - } - var snaps = await Firestore.instance.collection(path).getDocuments(); - List poLines = - snaps.documents.map((s) => POLine.fromMap(s.data)).toList(); - return poLines; - } - - Future loadDOs(POSubmission po) async { - String path = "/$biz_collection/${setting.okEnergyId}/$dos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection"; - } - var snaps = await Firestore.instance - .collection(path) - .where("po_number", isEqualTo: po.poNumber) - .orderBy('do_number', descending: true) - .getDocuments(); - - po.dos = snaps.documents - .map((s) => DOSubmission.fromMap(s.data, s.documentID)) - .toList(); - return po; - } - - Future loadDOLines(DOSubmission doSub) async { - String path = - "/$biz_collection/${setting.okEnergyId}/$dos_collection/${doSub.id}/$product_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$dos_collection/${doSub.id}/$product_collection"; - } - var snaps = await getSnapshot(path); - doSub.doLines = snaps.documents.map((s) => DOLine.fromMap(s.data)).toList(); - return doSub; - } - - Future createPO(POSubmission po, List files) async { - if (files != null) { - if (files.length > 5) throw Exception("Exceed number of file upload"); - po.poReceiptUrls = []; - for (File f in files) { - String path = Path.join(po_files_path, user.docID); - String url = await uploadStorage(path, f); - po.poReceiptUrls.add(url); - } - } - - await request("/po", "POST", payload: po.toMap(), token: await getToken()); - } - - Future updatePO( - POSubmission po, List files, List deletedUrls) async { - if (deletedUrls != null) - for (String url in deletedUrls) { - po.poReceiptUrls.remove(url); - await deleteStorageFromUrl(url); - } - - if (files != null) { - if (files.length + po.poReceiptUrls.length > 5) - throw Exception("Exceed number of file upload"); - po.poReceiptUrls = po.poReceiptUrls == null ? [] : po.poReceiptUrls; - for (File f in files) { - String path = Path.join(po_files_path, user.docID); - String url = await uploadStorage(path, f); - po.poReceiptUrls.add(url); - } - } - await request("/po", "PUT", payload: po.toMap(), token: await getToken()); - } - - Future approvePO(POSubmission po) async { - await request("/po/approved", "POST", - payload: po.toMap(), token: await getToken()); - } - - Future rejectPO(POSubmission po) async { - await request("/po/rejected", "POST", - payload: po.toMap(), token: await getToken()); - } - - Future cancelPO(POSubmission po) async { - await request("/po/canceled", "POST", - payload: po.toMap(), token: await getToken()); - } - - void filterData( - String status, DateTime dateTime, int _selectedStatus, int _dateIndex) { - pos.clear(); - var startDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 0, 0, 0); - var endDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 23, 59, 59); - - if (this.listener != null) { - this.listener.cancel(); - } - - this.popupMenu.index = _selectedStatus; - this.dateIndex = _dateIndex; - this.selectedDate = dateTime == null - ? new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0) - : dateTime; - - String path = "/$biz_collection/${setting.okEnergyId}/$pos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$pos_collection"; - } - - if (status != null && dateTime == null) { - this.listener = getFilterStatusSnapshot(path, status, 'po_number') - .listen((snaps) async { - pos.clear(); - snaps.documents.forEach((d) { - pos.add(POSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else if (dateTime != null && status == null) { - this.listener = getFilterDateSnapshot( - path, 'po_date', startDate, endDate, 'po_number') - .listen((snaps) async { - pos.clear(); - snaps.documents.forEach((d) { - pos.add(POSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else if (status != null && dateTime != null) { - this.listener = getFilterDataSnapshot( - path, status, 'po_date', startDate, endDate, 'po_number') - .listen((snaps) { - pos.clear(); - snaps.documents.forEach((d) { - pos.add(POSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } else { - this.listener = - getQuerySnapshotByOrder(path, 'po_number').listen((snaps) async { - pos.clear(); - snaps.documents.forEach((d) { - pos.add(POSubmission.fromMap(d.data, d.documentID)); - }); - notifyListeners(); - }); - } - } - - Future> getPOForRevenue(DateTime dateTime) async { - List pos = []; - - String path = "/$biz_collection/${setting.okEnergyId}/$pos_collection"; - if (user.isBuyer()) { - path = - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$pos_collection"; - } - DateTime date = DateTime(dateTime.year, dateTime.month, dateTime.day); - DateTime dateAddOne = date.add(Duration(days: 1)); - - QuerySnapshot snapshots = await Firestore.instance - .collection(path) - .where('status', whereIn: [po_approved_status, po_closed_status]) - .where("po_approved_date", isGreaterThanOrEqualTo: date) - .where("po_approved_date", isLessThan: dateAddOne) - .orderBy("po_approved_date") - .orderBy("user_name") - .limit(100) - .getDocuments(); - snapshots.documents.forEach((d) { - pos.add(POSubmission.fromMap(d.data, d.documentID)); - }); - return pos; - } -} diff --git a/lib/model/product_model.dart b/lib/model/product_model.dart deleted file mode 100644 index 14e21d4..0000000 --- a/lib/model/product_model.dart +++ /dev/null @@ -1,119 +0,0 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/vo/setting.dart'; - -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class ProductModel extends BaseModel { -final log = Logger('ProductModel'); - - List products = []; - List tempProducts = []; - - List get getPrices { - List productPrices = []; - this.products.forEach((p) => productPrices.addAll(p.getPrices)); - productPrices.sort((p1, p2) => p1.compareTo(p2)); - return productPrices; - } - - String getProductName(String productID) { - return products.firstWhere((p) => p.id == productID).name; - } - - Product getProduct(String productID) { - return products.firstWhere((p) => p.id == productID); - } - - List get productsToEdit { - // clone products - tempProducts = products.map((p) => Product.clone(p)).toList(); - tempProducts.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - // set old price with price - tempProducts.forEach((p) { - p.oldPirce = p.price; - p.action = "update"; - }); - - return tempProducts; - } - - void saveProduct(Product product, String name, price, displayOrder, int color, - bool isDisable) { - if (product == null) { - tempProducts.add(Product( - action: "create", - name: name, - price: int.parse(price), - color: color, - displayOrder: int.parse(displayOrder), - isDisable: isDisable)); - } else { - Product _product = product; - _product.name = name; - _product.price = int.parse(price); - _product.color = color; - _product.displayOrder = int.parse(displayOrder); - _product.isDisable = isDisable; - if (_product.id == null) { - _product.action = "create"; - } else { - _product.action = "update"; - } - } - notifyListeners(); - } - - void deleteProduct(Product product) { - if (product == null) { - return; - } - if (product.id == null) { - tempProducts.remove(product); - } else { - Product _product = tempProducts.firstWhere((p) => p.id == product.id); - _product.action = "delete"; - } - notifyListeners(); - } - - @override - void initSetting(Setting setting) { - super.initSetting(setting); - - try { - getQuerySnapshot( - "/$biz_collection/${setting.okEnergyId}/$product_collection") - .listen((QuerySnapshot snapshot) { - products.clear(); - products = snapshot.documents.map((documentSnapshot) { - var data = Product.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - return data; - }).toList(); - products.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - @override - logout() async { - tempProducts = []; - } - - updateProducts(List products) async { - var items = []; - products.forEach((p) { - if (p.action != null) items.add(p.toMap()); - }); - await request("/products", "PUT", payload: items, token: await getToken()); - } -} diff --git a/lib/model/reg_model.dart b/lib/model/reg_model.dart deleted file mode 100644 index 9b08d4f..0000000 --- a/lib/model/reg_model.dart +++ /dev/null @@ -1,86 +0,0 @@ -import 'dart:async'; -import 'dart:io'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:path/path.dart' as Path; -import 'package:fcs/vo/buyer.dart'; - -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class Attachments { - File nricFront, nricBack; -} - -class RegModel extends BaseModel { - Buyer reg = Buyer(); - bool isLoaded = false; - - StreamSubscription regListener; - - void initUser(user) { - super.initUser(user); - if (user.isRegisteredBuyer()) { - _loadReg(); - } else { - reg = Buyer(); - } - } - - @override - logout() async { - if (regListener != null) await regListener.cancel(); - reg = Buyer(); - } - - Future _loadReg() async { - if (regListener != null) { - regListener.cancel(); - } - regListener = getDocSnapshot( - "/$biz_collection/${setting.okEnergyId}/$buyer_collection", - "${user.docID}") - .listen((snap) async { - if (snap.exists) { - reg = Buyer.fromMap(snap.data, snap.documentID); - QuerySnapshot q = await getSnapshot( - "/$biz_collection/${setting.okEnergyId}/$buyer_collection/${user.docID}/$product_collection"); - reg.buyerProducts.clear(); - q.documents.forEach((d) { - reg.buyerProducts.add(BuyerProduct.fromMap(d.data, d.documentID)); - }); - } else { - reg = Buyer(); - } - isLoaded = true; - notifyListeners(); - }); - } - - Future register(Buyer buyer, Attachments attachments) async { - String path = Path.join(reg_files_path, user.docID); - String urlFront = await uploadStorage(path, attachments.nricFront); - buyer.nricFrontUrl = urlFront; - String urlBack = await uploadStorage(path, attachments.nricBack); - buyer.nricBackUrl = urlBack; - - await request("/reg", "POST", - payload: buyer.toMap(), token: await getToken()); - } - - Future update(Buyer buyer, Attachments attachments) async { - String path = Path.join(reg_files_path, user.docID); - if (attachments.nricFront != null) { - String urlFront = await uploadStorage(path, attachments.nricFront); - buyer.nricFrontUrl = urlFront; - } - if (attachments.nricBack != null) { - String urlBack = await uploadStorage(path, attachments.nricBack); - buyer.nricBackUrl = urlBack; - } - - await request("/buyer/update", "PUT", - payload: buyer.toMap(), token: await getToken()); - } -} diff --git a/lib/model/report_model.dart b/lib/model/report_model.dart deleted file mode 100644 index f683f0c..0000000 --- a/lib/model/report_model.dart +++ /dev/null @@ -1,700 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/vo/report.dart'; -import 'package:fcs/vo/report_user.dart'; -import 'package:open_file/open_file.dart'; -import 'package:path_provider/path_provider.dart'; -import 'package:fcs/fcs/common/helpers/api_helper.dart' as api; -import 'package:fcs/vo/report.dart'; - -import '../config.dart'; -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; -import 'shared_pref.dart'; - -class ReportModel extends BaseModel { - StreamSubscription listener; - StreamSubscription listenerUser; - - List reports = []; - List userReports = []; - List filterValue = []; - - List get reportList { - List _reports = []; - if (user.isOwnerAndAbove() || user.hasAdmin()) { - _reports = reports; - } else { - _reports.addAll(reports); - userReports.forEach((r) { - if (!_reports.contains(r)) { - _reports.add(r); - } - }); - } - _reports.sort((a, b) => a.display.compareTo(b.display)); - return _reports; - } - - void initUser(user) { - super.initUser(user); - reports = []; - _loadReports(); - } - - Future _loadReports() async { - if (listener != null) listener.cancel(); - if (listenerUser != null) listenerUser.cancel(); - - if (user.isOwnerAndAbove() || user.hasAdmin()) { - listener = Firestore.instance - .collection("/$reports_collection") - .snapshots() - .listen((snaps) async { - reports.clear(); - reports = snaps.documents.map((documentSnapshot) { - var report = Report.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - return report; - }).toList(); - notifyListeners(); - }); - } else { - listener = Firestore.instance - .collection("/$reports_collection") - .where("for_all_users", isEqualTo: true) - .snapshots() - .listen((snaps) async { - reports.clear(); - reports = snaps.documents.map((documentSnapshot) { - var report = Report.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - return report; - }).toList(); - notifyListeners(); - }); - - listenerUser = Firestore.instance - .collection("/$report_user_collection") - .where("user_id", isEqualTo: user.docID) - .snapshots() - .listen((snaps) async { - userReports.clear(); - userReports = snaps.documents.map((documentSnapshot) { - var user = ReportUser.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - var report = Report(id: user.reportID, display: user.reportName); - return report; - }).toList(); - notifyListeners(); - }); - } - notifyListeners(); - } - - @override - void logout() { - reports = []; - if (listener != null) listener.cancel(); - if (listenerUser != null) listenerUser.cancel(); - } - - Future getReport(String repID) async { - String path = "/$reports_collection"; - - var snap = await Firestore.instance.collection(path).document(repID).get(); - Report report = Report.fromMap(snap.data, snap.documentID); - return report; - } - - Future getReportData(Report report, int limit, int offset) async { - List reportDataList = []; - var aggFun = []; - var fields = []; - var groupbys = []; - // print('report => $report'); - try { - report.fields.asMap().forEach((key, value) { - if (value.aggFun == '') { - aggFun.add(''); - } else { - aggFun.add(value.aggFun); - } - }); - report.fields.asMap().forEach((key, value) { - fields.add(value.name); - }); - - String strFields; - fields.forEach((element) { - if (strFields == null) { - strFields = element; - } else { - strFields = strFields + ',' + element; - } - }); - - String strAgg; - aggFun.forEach((element) { - if (strAgg == null) { - strAgg = element; - } else { - strAgg = strAgg + ',' + element; - } - }); - - String strGroup; - groupbys.forEach((element) { - if (strGroup == null) { - strGroup = element; - } else { - strGroup = strGroup + ',' + element; - } - }); - - var data = { - "fields": strFields == null ? '' : strFields, - "aggfuns": strAgg == null ? '' : strAgg, - // "groupbys": strGroup == null ? '' : strGroup, - "limit": limit, - "offset": offset - }; - print("payload:$data"); - - var rdata = { - "fields": 'quantity,product_id,product_name', - "aggfuns": ",,", - "groupbys": 'product_id', - "limit": limit, - "offset": offset - }; - var result = await request("/api/data/${report.object}", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - - if (result == null) return []; - result.forEach((rdata) { - reportDataList.add(rdata); - }); - // print('reportDataList => $reportDataList'); - notifyListeners(); - return reportDataList; - } catch (e) { - log.warning("Error get Summary>>>>${e.toString()}"); - } - } - - Future downloadReportData(Report report) async { - var aggFun = []; - var fields = []; - report.fields.asMap().forEach((key, value) { - if (value.aggFun == '') { - aggFun.add(''); - } else { - aggFun.add(value.aggFun); - } - }); - report.fields.asMap().forEach((key, value) { - fields.add(value.name); - }); - - String strFields; - fields.forEach((element) { - if (strFields == null) { - strFields = element; - } else { - strFields = strFields + ',' + element; - } - }); - - String strAgg; - aggFun.forEach((element) { - if (strAgg == null) { - strAgg = element; - } else { - strAgg = strAgg + ',' + element; - } - }); - - // final directory = await getApplicationDocumentsDirectory(); - final directory = await getExternalStorageDirectory(); - String path = ('${directory.path}/${report.id}.pdf'); - log.info("download file path:$path"); - - var data = { - "fields": strFields == null ? '' : strFields, - "aggfuns": strAgg == null ? '' : strAgg, - "greoupbys": '', - "limit": 0, - "offset": 0 - }; - - await api.requestDownloadPDFAPI("/api/report-pdf/${report.object}", "GET", - filePath: path, - url: Config.instance.reportURL, - token: await getToken(), - payload: jsonEncode(data)); - - final message = await OpenFile.open(path); - log.info("Open file result:$message"); - } - - Future getJson(Report report) async { - var aggFun = []; - var fields = []; - report.fields.asMap().forEach((key, value) { - if (value.aggFun == '') { - aggFun.add(''); - } else { - aggFun.add(value.aggFun); - } - }); - report.fields.asMap().forEach((key, value) { - fields.add(value.name); - }); - - String strFields; - fields.forEach((element) { - if (strFields == null) { - strFields = element; - } else { - strFields = strFields + ',' + element; - } - }); - - String strAgg; - aggFun.forEach((element) { - if (strAgg == null) { - strAgg = element; - } else { - strAgg = strAgg + ',' + element; - } - }); - - var data = { - "fields": strFields == null ? '' : strFields, - "aggfuns": strAgg == null ? '' : strAgg, - "greoupbys": '', - "limit": 0, - "offset": 0 - }; - return jsonEncode(data); - } - - Future getEscapeJson(Report report) async { - var bytes = utf8.encode(await getJson(report)); - var base64Str = base64.encode(bytes); - return HtmlEscape().convert(base64Str); - } - - Future getReportDataWithFilters(Report report, List filters) async { - List reportDataList = []; - var aggFun = []; - var fields = []; - var groupbys = []; - - try { - var data = report.convertArrayToString(report, filters); - print('data=> $data'); - - var result = await request("/api/data/${report.object}", "POST", - token: await getToken(), - url: Config.instance.reportURL, - payload: jsonEncode(data)); - - if (result == null) return []; - result.forEach((rdata) { - reportDataList.add(rdata); - }); - - notifyListeners(); - return reportDataList; - } catch (e) { - log.warning("Error get Summary>>>>${e.toString()}"); - } - } - - Future addreport() async { - var data = [ - { - "display": "Buyer Rpt", - "object": "buyer_rpt", - "display_filters": [ - { - "name": "user_name", - "display_name": "User Name", - "compare": "==", - "data_type": "string", - }, - ], - "fields": [ - { - "name": "user_name", - "display_name": "User Name", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "reg_date", - "display_name": "Registered Date", - "to_fixed": 0, - "type": "intdate", - "agg_fun": "", - }, - { - "name": "biz_name", - "display_name": "Business Name", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "biz_address", - "display_name": "Business Address", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - ], - "display_fields": ['biz_name', 'biz_name', 'reg_date', 'user_name'], - "sorts": [], - "groupbys": [] - }, - { - "display": "Delivery Rpt", - "object": "delivery_rpt", - "display_filters": [ - { - "name": "user_name", - "display_name": "User Name", - "compare": "==", - "data_type": "string", - }, - ], - "fields": [ - { - "name": "user_name", - "display_name": "User Name", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "delivery_ended_date", - "display_name": "Delivery Ended Date", - "to_fixed": 0, - "type": "intdate", - "agg_fun": "", - }, - { - "name": "qty_92", - "display_name": "Qty 92", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_95", - "display_name": "Qty 95", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_d", - "display_name": "Qty D", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_p", - "display_name": "Qty P", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - ], - "display_fields": [ - 'qty_p', - 'qty_d', - 'qty_95', - 'qty_92', - 'delivery_ended_date', - 'user_name', - ], - "sorts": [], - "groupbys": [] - }, - { - "display": "DOs Rpt", - "object": "dos_rpt", - "display_filters": [ - { - "name": "user_name", - "display_name": "User Name", - "compare": "==", - "data_type": "string", - }, - ], - "fields": [ - { - "name": "user_name", - "display_name": "User Name", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "doc_date", - "display_name": "DO Date", - "to_fixed": 0, - "type": "intdate", - "agg_fun": "", - }, - { - "name": "doc_number", - "display_name": "PO/DO Number", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "qty_92", - "display_name": "Qty 92", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_95", - "display_name": "Qty 95", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_d", - "display_name": "Qty D", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_p", - "display_name": "Qty P", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - ], - "display_fields": [ - 'qty_p', - 'qty_d', - 'qty_95', - 'qty_92', - 'doc_date', - 'user_name', - 'doc_number' - ], - "sorts": [], - "groupbys": [] - }, - { - "display": "POs Rpt", - "object": "pos_rpt", - "display_filters": [ - { - "name": "user_name", - "display_name": "User Name", - "compare": "==", - "data_type": "string", - }, - { - "name": "po_number", - "display_name": "PO Number", - "compare": "==", - "data_type": "string", - } - ], - "fields": [ - { - "name": "user_name", - "display_name": "User Name", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "po_date", - "display_name": "PO Date", - "to_fixed": 0, - "type": "intdate", - "agg_fun": "", - }, - { - "name": "po_number", - "display_name": "PO Number", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "qty_92", - "display_name": "Qty 92", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_95", - "display_name": "Qty 95", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_d", - "display_name": "Qty D", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "qty_p", - "display_name": "Qty P", - "to_fixed": 0, - "type": "float", - "agg_fun": "", - }, - { - "name": "price_92", - "display_name": "Price 92", - "to_fixed": 0, - "type": "integer", - "agg_fun": "", - }, - { - "name": "price_95", - "display_name": "Price 95", - "to_fixed": 0, - "type": "integer", - "agg_fun": "", - }, - { - "name": "price_d", - "display_name": "Price D", - "to_fixed": 0, - "type": "integer", - "agg_fun": "", - }, - { - "name": "price_p", - "display_name": "Price P", - "to_fixed": 0, - "type": "integer", - "agg_fun": "", - } - ], - "display_fields": [ - 'qty_p', - 'qty_d', - 'qty_95', - 'qty_92', - 'price_p', - 'price_d', - 'price_95', - 'price_92', - 'po_date', - 'user_name', - 'po_number' - ], - "sorts": [], - "groupbys": [] - }, - { - "display": "Storage Charge Rpt", - "object": "storage_charge_rpt", - "display_filters": [ - { - "name": "user_name", - "display_name": "User Name", - "compare": "==", - "data_type": "string", - }, - ], - "fields": [ - { - "name": "user_name", - "display_name": "User Name", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "total_qty", - "display_name": "Quantity", - "to_fixed": 3, - "type": "float", - "agg_fun": "", - }, - { - "name": "rate", - "display_name": "Rate", - "to_fixed": 0, - "type": "string", - "agg_fun": "", - }, - { - "name": "storage_charge", - "display_name": "Amount", - "to_fixed": 3, - "type": "integer", - "agg_fun": "", - }, - ], - "display_fields": [ - 'qty_p', - 'qty_d', - 'qty_95', - 'qty_92', - 'price_p', - 'price_d', - 'price_95', - 'price_92', - 'po_date', - 'user_name', - 'po_number' - ], - "sorts": [], - "groupbys": [] - } - ]; - - data.asMap().forEach((key, value) { - Firestore.instance - .collection("/$reports_collection") - .document() - .setData(value); - }); - } - - Future saveSelectedFieldsAndPosition( - String id, List positonFields, List selectedFields) async { - // positonFields.toJson - ReportFieldPositionSelection report = ReportFieldPositionSelection( - fieldPosition: positonFields, fieldSelection: selectedFields); - await SharedPref.saveReport(report); - } - - Future loadSelectedFieldsAndPosition( - String id) async { - var data = await SharedPref.getReport(id); - return data; - } -} diff --git a/lib/model/report_user_model.dart b/lib/model/report_user_model.dart deleted file mode 100644 index e97d150..0000000 --- a/lib/model/report_user_model.dart +++ /dev/null @@ -1,83 +0,0 @@ -import 'dart:convert'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/model/constants.dart'; -import 'package:fcs/vo/report.dart'; -import 'package:fcs/vo/report_user.dart'; -import 'package:fcs/vo/user.dart'; - -import '../config.dart'; -import 'base_model.dart'; -import 'firebase_helper.dart'; - -class ReportUserModel extends BaseModel { - List reportUsers = []; - void initUser(user) { - super.initUser(user); - } - - @override - logout() async {} - - Future> getUsersForReport(String reportID) async { - List users = []; - String path = "/$report_user_collection"; - - QuerySnapshot snapshots = await Firestore.instance - .collection(path) - .where('report_id', isEqualTo: reportID) - .getDocuments(); - snapshots.documents.forEach((d) { - users.add(ReportUser.fromMap(d.data, d.documentID)); - }); - return users; - } - - Future> findUser(String searchUser) async { - if (searchUser == null || searchUser == '') return List(); - - var bytes = utf8.encode(searchUser); - var base64Str = base64.encode(bytes); - HtmlEscape htmlEscape = const HtmlEscape(); - String escapeUser = htmlEscape.convert(base64Str); - - int limit = 20; - List _users = []; - - try { - var data = await request( - "/api/fts/$user_collection/$escapeUser/$limit", "GET", - token: await getToken(), url: Config.instance.reportURL); - if (data == null) return List(); - - data.forEach((user) { - var _user = User.fromUserJson(user); - _users.add(_user); - }); - } catch (e) { - // permission error - log.warning("user error:" + e.toString()); - return null; - } - return _users; - } - - Future updateReportForAllUsers(Report report) async { - await request("/report", "PUT", - payload: {'id': report.id, 'for_all_users': report.forAllUser}, - token: await getToken()); - notifyListeners(); - } - - Future assignUser(ReportUser reportUser) async { - await request("/report_user", "POST", - payload: reportUser.toMap(), token: await getToken()); - notifyListeners(); - } - - Future deleteReportUser(ReportUser reportUser) async { - await request("/report_user", "DELETE", - payload: reportUser.toMap(), token: await getToken()); - notifyListeners(); - } -} diff --git a/lib/model/shared_pref.dart b/lib/model/shared_pref.dart deleted file mode 100644 index bc160a1..0000000 --- a/lib/model/shared_pref.dart +++ /dev/null @@ -1,84 +0,0 @@ -import 'package:shared_preferences/shared_preferences.dart'; -import 'package:fcs/vo/report.dart'; -import 'dart:convert'; - -import 'package:fcs/vo/user.dart'; - -class SharedPref { - static final SharedPref instance = SharedPref._(); - SharedPref._(); - - static Future getLang() async { - SharedPreferences prefs = await SharedPreferences.getInstance(); - return prefs.getString('language'); - } - - static Future saveLang(String lang) async { - SharedPreferences prefs = await SharedPreferences.getInstance(); - prefs.setString('language', lang); - } - - static Future saveUser(User user) async { - await _save("user", user.toJson()); - } - - static Future saveReport(ReportFieldPositionSelection report) async { - await _save('report-${report.id}', report.toJson()); - } - - static Future getReport(String id) async { - try { - return ReportFieldPositionSelection.fromJson(await _read("report-$id")); - } catch (e) { - return null; - } - } - - static Future getUser() async { - try { - return User.fromJson(await _read("user")); - } catch (e) { - return null; - } - } - - static Future removeUser() async { - return await _remove("user"); - } - - static Future saveSkippedRecoverEmail(bool skipped) async { - await _save("skipped_recovery_email", skipped); - } - - static Future getSkippedRecoverEmail() async { - try { - bool _skipped = await _read("skipped_recovery_email"); - return _skipped; - } catch (e) { - return null; - } - } - - static _read(String key) async { - try { - final prefs = await SharedPreferences.getInstance(); - return json.decode(prefs.getString(key)); - } catch (e) { - print("Error:$e"); - } - } - - static _save(String key, value) async { - try { - final prefs = await SharedPreferences.getInstance(); - prefs.setString(key, json.encode(value)); - } catch (e) { - print("Error:$e"); - } - } - - static _remove(String key) async { - final prefs = await SharedPreferences.getInstance(); - prefs.remove(key); - } -} diff --git a/lib/model/storage_model.dart b/lib/model/storage_model.dart deleted file mode 100644 index 4356b8f..0000000 --- a/lib/model/storage_model.dart +++ /dev/null @@ -1,155 +0,0 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/vo/inventory_line.dart'; -import 'package:fcs/vo/inventory_taking.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/vo/storage.dart'; - -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class StorageModel extends BaseModel { - final log = Logger('StorageModel'); - - List storages = []; - List inventoryTakings = []; - int selectedIndex = 0; - DateTime selectedDate = DateTime.now(); - - List getStorage(String productID) { - return storages - .where((s) => s.products.any((p) => p.id == productID)) - .toList(); - } - - void initUser(user) async { - super.initUser(user); - if (!user.isOwnerAndAbove() && !user.hasInventory()) { - return; - } - _loadStorages(); - _loadInventoryTakings(); - } - - @override - logout() async { - storages = []; - inventoryTakings = []; - } - - String getStorageName(String storageID) { - return storages.firstWhere((s) => s.id == storageID).name; - } - - void _loadStorages() async { - try { - getQuerySnapshotF( - "/$biz_collection/${setting.okEnergyId}/$storage_collection", - user.accountID) - .listen((QuerySnapshot snapshot) { - storages.clear(); - storages = snapshot.documents.map((documentSnapshot) { - var storage = Storage.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - loadProducts(storage); - return storage; - }).toList(); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - void _loadInventoryTakings() async { - try { - String path = "/$biz_collection/${setting.okEnergyId}/$inventory_takings"; - var startDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 0, 0, 0); - var endDate = new DateTime( - selectedDate.year, selectedDate.month, selectedDate.day, 23, 59, 59); - - inventoryTakings.clear(); - getFilterDateSnapshotF(path, user.accountID, 'date_time', startDate, - endDate, 'date_time') - .listen((QuerySnapshot snapshot) { - inventoryTakings = snapshot.documents.map((documentSnapshot) { - var data = InventoryTaking.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - - return data; - }).toList(); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - loadInventoryLines(InventoryTaking inventoryTaking) async { - if (inventoryTaking.linesLoaded) return; - var snaps = await getSnapshot( - "/$biz_collection/${setting.okEnergyId}/$inventory_takings/${inventoryTaking.id}/$inventory_lines"); - inventoryTaking.inventoryLines = - snaps.documents.map((s) => InventoryLine.fromMap(s.data)).toList(); - inventoryTaking.linesLoaded = true; - notifyListeners(); - } - - loadProducts(Storage storage) async { - if (storage.productsLoaded) return; - var snaps = await getSnapshot( - "/$biz_collection/${setting.okEnergyId}/$storage_collection/${storage.id}/$product_collection"); - storage.products = snaps.documents - .map((s) => Product.fromMap(s.data, s.documentID)) - .toList(); - storage.productsLoaded = true; - notifyListeners(); - } - - Future createStorage(Storage storage) async { - await request("/storage", "POST", - payload: storage.toMap(), token: await getToken()); - } - - Future updateStorage(Storage storage) async { - await request("/storage", "PUT", - payload: storage.toMap(), token: await getToken()); - } - - Future deleteStorage(String storageID) async { - await request("/storage/" + storageID, "DELETE", token: await getToken()); - } - - Future createInventoryTaking(InventoryTaking inventoryTaking) async { - await request("/inventory", "POST", - payload: inventoryTaking.toMap(), token: await getToken()); - } - - void filterDate(DateTime dateTime, int _selectedIndex) async { - this.selectedIndex = _selectedIndex; - this.selectedDate = dateTime; - - String path = "/$biz_collection/${setting.okEnergyId}/$inventory_takings"; - var endDate = - new DateTime(dateTime.year, dateTime.month, dateTime.day, 23, 59, 59); - inventoryTakings.clear(); - getFilterDateSnapshotF( - path, user.accountID, 'date_time', dateTime, endDate, 'date_time') - .listen((snapshot) { - inventoryTakings = snapshot.documents.map((documentSnapshot) { - var data = InventoryTaking.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - - return data; - }).toList(); - notifyListeners(); - }); - notifyListeners(); - } -} diff --git a/lib/model/test_model.dart b/lib/model/test_model.dart deleted file mode 100644 index 123d0b6..0000000 --- a/lib/model/test_model.dart +++ /dev/null @@ -1,177 +0,0 @@ -import 'dart:async'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:faker/faker.dart'; -import 'package:logging/logging.dart'; - -import 'base_model.dart'; - -class TestModel extends BaseModel { - final log = Logger('TestModel'); - - List tests = []; - DocumentSnapshot prev; - static const int row_count = 10; - bool ended = false; - - StreamSubscription listener; - final Query queryBase = Firestore.instance.collection("/tests"); - final Query query = Firestore.instance - .collection("/tests") - // .orderBy("deleted") - .orderBy("age", descending: false); - - void initData() async { - _clearState(); - _initListener(); - load(); - } - - void _clearState() { - prev = null; - tests = []; - ended = false; - if (listener != null) listener.cancel(); - listener = null; - } - - void _initListener() { - Query _query = queryBase.orderBy("update_time", descending: true).limit(1); - _query.getDocuments(source: Source.server).then((QuerySnapshot snapshot) { - int count = snapshot.documents.length; - if (count == 1) { - var test = Test.fromMap( - snapshot.documents[0].data, snapshot.documents[0].documentID); - - Query _queryListener = queryBase - .where("update_time", isGreaterThan: test.updateTime) - .orderBy("update_time", descending: true); - - listener = - _queryListener.snapshots(includeMetadataChanges: true).listen((qs) { - qs.documentChanges.forEach((c) { - switch (c.type) { - case DocumentChangeType.added: - var test = Test.fromMap(c.document.data, c.document.documentID); - if (tests.contains(test)) { - tests[tests.indexOf(test)].name = test.name; - notifyListeners(); - } - if (!tests.contains(test)) { - tests.add(test); - notifyListeners(); - } - break; - case DocumentChangeType.modified: - var test = Test.fromMap(c.document.data, c.document.documentID); - if (tests.contains(test)) { - bool deleted = c.document.data["deleted"]; - if (deleted != null && deleted) { - tests.remove(test); - } else { - tests[tests.indexOf(test)].name = test.name; - } - notifyListeners(); - } - break; - default: - } - }); - }); - notifyListeners(); - } - }); - } - - Future load() async { - Query _query = prev != null ? query.startAfterDocument(prev) : query; - try { - _query - // .where("deleted", isNull: null) - .limit(row_count) - .getDocuments(source: Source.server) - .then((QuerySnapshot snapshot) { - int count = snapshot.documents.length; - ended = count < row_count; - prev = count > 0 ? snapshot.documents[count - 1] : prev; - snapshot.documents.forEach((e) { - var test = Test.fromMap(e.data, e.documentID); - if (!tests.contains(test)) tests.add(test); - }); - notifyListeners(); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - void populate() { - for (var i = 0; i < 30; i++) { - Firestore.instance - .collection('tests') - .document(faker.person.name()) - .setData({ - 'name': faker.person.name(), - 'age': random.decimal(), - 'update_time': DateTime.now().microsecondsSinceEpoch - }); - } - } - - void add() { - Firestore.instance - .collection('tests') - .document(faker.person.name()) - .setData({ - 'name': faker.person.name(), - 'age': random.decimal(), - 'update_time': DateTime.now().microsecondsSinceEpoch - }); - } - - void update() { - Firestore.instance.collection('tests').document(tests[0].id).setData({ - 'name': faker.person.name(), - 'update_time': DateTime.now().microsecondsSinceEpoch - }, merge: true); - } - - void remove() { - Firestore.instance.collection('tests').document(tests[0].id).setData( - {'deleted': 1, 'update_time': DateTime.now().microsecondsSinceEpoch}, - merge: true); - } - - @override - void logout() { - _clearState(); - } -} - -class Test { - String id; - String name; - double age; - int updateTime; - Test(this.id, {this.name, this.age, this.updateTime}); - - factory Test.fromMap(Map map, String id) { - return Test(id, - name: map['name'], age: map['age'], updateTime: map['update_time']); - } - - @override - bool operator ==(other) { - if (identical(this, other)) { - return true; - } - return other.id == this.id; - } - - @override - int get hashCode { - int result = 17; - result = 37 * result + id.hashCode; - return result; - } -} diff --git a/lib/model/user_model.dart b/lib/model/user_model.dart deleted file mode 100644 index 48e1f66..0000000 --- a/lib/model/user_model.dart +++ /dev/null @@ -1,375 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/util.dart'; -import 'package:fcs/vo/popup_menu.dart'; -import 'package:fcs/vo/role.dart'; - -import '../config.dart'; -import '../vo/role.dart'; -import '../vo/user.dart'; -import 'base_model.dart'; -import 'constants.dart'; -import 'firebase_helper.dart'; - -class UserModel extends BaseModel { - final log = Logger('UserModel'); - StreamSubscription listener; - PopupMenu popupMenu = new PopupMenu(); - - List users = []; - List privileges = [ - Privilege(name: 'Manage shipment'), - Privilege(name: 'Manage pickups'), - Privilege(name: 'Manage packages'), - Privilege(name: 'Manage deliveries'), - Privilege(name: 'Admin') - ]; - List userLevels = []; - User user = new User(); - - List get getPrivileges { - return privileges - .where((p) => !p.sysAdminOnly || user.isSysAdmin()) - .toList(); - } - - List cont = []; - - void initUser(user) async { - super.initUser(user); - this.user = user; - if (user.isBuyer()) return; - _loadUsers(user); - _loadPrivileges(); - _loadUserLevels(user); - } - - @override - logout() async { - users = []; - userLevels = []; - } - - List getUserPrivileges() { - List result = new List(); - if (user.privilegeIds.isNotEmpty) { - user.privilegeIds.forEach((pID) { - privileges.forEach((p) { - if (p.id == pID) { - var _priv = Privilege(id: p.id, name: p.name, desc: p.desc); - result.add(_priv); - } - }); - }); - } - - return result; - } - - List getBlockListUsers() { - return users.where((u) => u.isBlock == true).toList(); - } - - List getUserList() { - return users.where((u) => u.docID != this.user.docID).toList(); - } - - Future _loadUsers(User user) async { - try { - String path = "/$biz_collection/${setting.okEnergyId}/$user_collection"; - var snaps = await Firestore.instance - .collection(path) - .where('user_level', isLessThanOrEqualTo: user.userLevel) - .limit(1) - .getDocuments(); - - Stream snapshots = Firestore.instance - .collection(path) - .where('user_level', isLessThanOrEqualTo: user.userLevel) - .snapshots(); - - snapshots.listen((snaps) async { - users = snaps.documents.map((documentSnapshot) { - var data = - User.fromMap(documentSnapshot.data, documentSnapshot.documentID); - if (data.docID == user.docID && data.isBlock) { - this.mainModel.logout(); - notifyListeners(); - } - return data; - }).toList(); - notifyListeners(); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - Future findUser(String phoneNumber) async { - var _phoneNumber = updatePhoneNumber(phoneNumber); - try { - var data = await request("/user/find/$_phoneNumber", "GET", - token: await getToken()); - return User.fromJson(data); - } catch (e) { - throw Exception(e); - } - } - - Future _loadPrivileges() async { - // if (!user.isOwner() && !user.hasAccount()) { - // return; - // } - - try { - getQuerySnapshot("/$privilege_collection") - .listen((QuerySnapshot snapshot) { - privileges.clear(); - privileges = snapshot.documents.map((documentSnapshot) { - var privilege = Privilege.fromMap( - documentSnapshot.data, documentSnapshot.documentID); - return privilege; - }).toList(); - notifyListeners(); - }).onError((e) { - log.warning("Error! $e"); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - Future _loadUserLevels(User user) async { - try { - Stream snapshots = Firestore.instance - .collection("/$user_level_collection") - .where('level', isLessThan: user.userLevel) - .snapshots(); - - snapshots.listen((snaps) async { - userLevels = snaps.documents - .map((documentSnapshot) => UserLevel.fromMap( - documentSnapshot.data, documentSnapshot.documentID)) - .toList(); - notifyListeners(); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - Future getUser(String id) async { - String path = "/$biz_collection/${setting.okEnergyId}/$user_collection"; - print("id=> $id"); - var snap = await getDocSnap(path, id); - print("snap=> $snap"); - return User.fromMap(snap.data, snap.documentID); - } - - Future addUserToOk(String userID, List privileges) async { - await addUserToBiz(userID, setting.okEnergyId, privileges); - } - - Future addUserToBiz( - String userID, bizID, List privileges) async { - try { - await request("/user/add-biz", "POST", - payload: { - "user_id": userID, - "biz_id": bizID, - "privileges": privileges - }, - token: await getToken()); - } catch (e) { - throw Exception(e); - } - } - - Future forgetPassword(String id) async { - var _id = updatePhoneNumber(id); - await request("/forget", "POST", payload: {"id": _id}); - } - - Future resetPassword( - String id, String newPassword, String confirmationCode) async { - var _id = updatePhoneNumber(id); - await request( - "/reset", - "POST", - payload: { - "id": _id, - "password": newPassword, - "confirmation_code": confirmationCode - }, - ); - } - - Future changePassword(String id, String newPassword) async { - await request( - "/change/password", - "POST", - payload: { - "id": id, - "password": newPassword, - }, - ); - } - - Future changePhone(String id, String newPhone) async { - var _newPhone = updatePhoneNumber(newPhone); - await request( - "/change/phone", - "POST", - payload: { - "id": id, - "phone_number": _newPhone, - }, - ); - } - - Future addEmail(String id, String email) async { - await request( - "/email", - "PUT", - payload: { - "id": id, - "email": email, - }, - ); - } - - Future confirmEmail( - String id, String email, String phone, String confirmCode) async { - var _id = updatePhoneNumber(id); - var _phone = updatePhoneNumber(phone); - await request( - "/econfirm", - "POST", - payload: { - "id": _id, - "email": email == null ? '' : email, - "phone_number": _phone == null ? '' : _phone, - "confirmation_code": confirmCode - }, - ); - } - - Future deleteStorage(String storageID) async { - await request("/storage/" + storageID, "DELETE", token: await getToken()); - } - - Future blockPhone(String phone) async { - var _phone = updatePhoneNumber(phone); - await request("/blist", "PUT", - payload: {"phone_number": _phone}, token: await getToken()); - } - - Future unblockPhone(String phone) async { - var _phone = updatePhoneNumber(phone); - await request("/wlist", "PUT", - payload: {"phone_number": _phone}, token: await getToken()); - } - - Future addLevel( - String phone, String levelId, List privs) async { - var _phone = updatePhoneNumber(phone); - await request("/lvl", "PUT", - payload: { - "phone_number": _phone, - "user_level_id": levelId, - "privileges": privs - }, - token: await getToken()); - } - - Future updatePin(String pin, String password) async { - await request("/pin", "POST", - payload: { - "id": user.docID, - "pin": pin, - "password": password, - }, - token: await getToken()); - } - - Future clearPin(String password) async { - await request("/pin/clear", "POST", - payload: { - "id": user.docID, - "password": password, - }, - token: await getToken()); - } - - Future> searchUser(String searchUser) async { - if (searchUser == null || searchUser == '') return List(); - - var bytes = utf8.encode(searchUser); - var base64Str = base64.encode(bytes); - HtmlEscape htmlEscape = const HtmlEscape(); - String escapeUser = htmlEscape.convert(base64Str); - - int limit = 20; - List _users = []; - - try { - var data = await request( - "/api/fts/$user_collection/$escapeUser/$limit", "GET", - token: await getToken(), url: Config.instance.reportURL); - if (data == null) return List(); - - data.forEach((user) { - var _user = User.fromUserJson(user); - _users.add(_user); - }); - } catch (e) { - // permission error - log.warning("user error:" + e.toString()); - return null; - } - return _users; - } - - void filterSorting(int _selectedIndex) { - users.clear(); - if (listener != null) { - listener.cancel(); - } - String _fieldName; - bool descending = false; - - if (_selectedIndex == 0) { - _fieldName = 'user_name'; - descending = false; - } - if (_selectedIndex == 1) { - _fieldName = 'user_name'; - descending = true; - } - if (_selectedIndex == 2) { - _fieldName = 'phone_number'; - descending = false; - } - if (_selectedIndex == 3) { - _fieldName = 'phone_number'; - descending = true; - } - - this.popupMenu.index = _selectedIndex; - String path = "/$biz_collection/${setting.okEnergyId}/$user_collection"; - listener = - getFilterSnapshot(path, descending, _fieldName).listen((snaps) async { - users.clear(); - snaps.documents.forEach((d) { - users.add(User.fromMap(d.data, d.documentID)); - notifyListeners(); - }); - users.where((user) => user.userLevel <= this.user.userLevel); - - notifyListeners(); - }); - } -} diff --git a/lib/model_fcs/message_model.dart b/lib/model_fcs/message_model.dart deleted file mode 100644 index 99798db..0000000 --- a/lib/model_fcs/message_model.dart +++ /dev/null @@ -1,133 +0,0 @@ -import 'dart:async'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/model/base_model.dart'; -import 'package:fcs/vo/message.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:logging/logging.dart'; - -class MessageModel extends BaseModel { - final log = Logger('MessageModel'); - - StreamSubscription listener; - - List messages = [ - Message( - senderName: "FCS System", - receiverName: "Ko Myo Min", - date: DateTime(2020, 6, 1, 1, 1, 1), - message: - "Hi Ko Myo Min, we received your goods. Please see the following link", - ), - Message( - senderName: "FCS System", - receiverName: "Ko Myo Min", - date: DateTime(2020, 6, 1, 1, 1, 1), - message: "'A202-3 #1'", - ), - Message( - senderName: "FCS System", - receiverName: "Ko Myo Min", - date: DateTime(2020, 6, 1, 1, 5, 1), - message: "Thank you. Will check the photos.", - isMe: false), - Message( - senderName: "FCS System", - receiverName: "Ko Myo Min", - date: DateTime(2020, 6, 1, 2, 1, 1), - message: - "Hi Ko Myo Min, we successfully processed your goods and ready for payment. Please see in the following link.", - ), - Message( - senderName: "FCS System", - receiverName: "Ko Myo Min", - date: DateTime(2020, 6, 1, 2, 1, 1), - message: "'INV202005010387'", - ), - Message( - senderName: "FCS System", - receiverName: "Ko Myo Min", - date: DateTime(2020, 6, 1, 2, 10, 1), - message: - "Hi Ko Myo Min, we have confirmed your payment and ready to ship your packages.", - ), - Message( - senderName: "FCS System", - receiverName: "Shipper", - date: DateTime(2020, 6, 1, 1, 1, 1), - message: - "Hi Ko Myo Min, we received your goods. Please see in the following link.", - ), - Message( - senderName: "FCS System", - receiverName: "Shipper", - date: DateTime(2020, 6, 1, 1, 1, 1), - message: "'A202-3 #1'", - ), - Message( - senderName: "FCS System", - receiverName: "Shipper", - date: DateTime(2020, 6, 1, 2, 1, 1), - message: - "Hi FCS Team, we successfully processed your goods and ready for payment. Please see in the following link.", - ), - Message( - senderName: "FCS System", - receiverName: "Shipper", - date: DateTime(2020, 6, 1, 2, 1, 1), - message: "'INV202005010387'", - ), - Message( - senderName: "FCS System", - receiverName: "Shipper", - date: DateTime(2020, 6, 1, 2, 10, 1), - message: - "Hi FCS Team, we have confirmed your payment and ready to ship your packages.", - ), - Message( - senderName: "Ko Myo Min", - receiverName: "FCS Team", - date: DateTime(2020, 6, 1, 2, 10, 1), - message: - "Hi Ko Myo Min, we have recevied your pickup request. We will arrange the pickup soon. Thank you.", - ), - ]; - - List get lastMessage { - return [messages[2], messages[6]]; - } - - List getMessage(String receiver) { - return messages.where((e) => e.receiverName == receiver).toList(); - } - - // List get completed { - // return packages.where((e) => e.status == "Delivered").toList() - // ..sort((e1, e2) { - // return e2.packageNumber.compareTo(e1.packageNumber); - // }); - // } - - // List get upcoming { - // return packages - // .where((e) => - // e.status == "Processing" || - // e.status == "Received" || - // e.status == "Ready to ship") - // .toList() - // ..sort((e1, e2) { - // return e2.packageNumber.compareTo(e1.packageNumber); - // }); - // } - - void initUser(user) { - super.initUser(user); - } - - @override - logout() async { - if (listener != null) await listener.cancel(); - messages = []; - } -} diff --git a/lib/model_fcs/package_model.dart b/lib/model_fcs/package_model.dart deleted file mode 100644 index 4fb2cd0..0000000 --- a/lib/model_fcs/package_model.dart +++ /dev/null @@ -1,187 +0,0 @@ -import 'dart:async'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/model/base_model.dart'; -import 'package:fcs/vo/box.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:logging/logging.dart'; - -class PackageModel extends BaseModel { - final log = Logger('PackageModel'); - - StreamSubscription listener; - static List statusHistory = [ - Status(status: "Received", date: DateTime(2020, 6, 1), done: true), - Status(status: "Processed", date: DateTime(2020, 6, 1), done: true), - Status(status: "Shipped", date: DateTime(2020, 6, 5), done: false), - Status(status: "Arrived", date: DateTime(2020, 6, 7), done: false), - Status(status: "Delivered", date: DateTime(2020, 6, 15), done: false) - ]; - - static List packages = [ - Package( - shipmentNumber: "A202", - receiverNumber: "3", - receiverName: "Ko Myo Min", - boxNumber: "1", - rate: 7, - packageType: "General", - weight: 25, - status: "Received", - receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon', - cargoDesc: "Computers", - arrivedDate: DateTime(2020, 6, 1), - market: "Amazon", - id: "PKG2039", - trackingID: "23-234s-asdfl", - statusHistory: statusHistory), - Package( - shipmentNumber: "A202", - receiverNumber: "3", - receiverName: "Ko Myo Min", - boxNumber: "2", - rate: 7, - packageType: "General", - weight: 20, - status: "Received", - cargoDesc: "Clothes", - arrivedDate: DateTime(2020, 6, 1), - market: "Macy", - trackingID: "asd-sdf-23498", - id: "PKG2040", - receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon', - statusHistory: statusHistory), - Package( - shipmentNumber: "A202", - receiverNumber: "3", - receiverName: "Ko Myo Min", - boxNumber: "3", - rate: 7, - packageType: "General", - weight: 15, - cargoDesc: "Shoes", - status: "Processed", - market: "Macy", - trackingID: "8923-234-sd", - id: "PKG2041", - arrivedDate: DateTime(2020, 6, 1), - receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon', - statusHistory: statusHistory), - Package( - shipmentNumber: "A202", - receiverNumber: "2", - receiverName: "Ma Aye", - boxNumber: "1", - rate: 8, - packageType: "Medicine", - weight: 15, - status: "Processed", - market: "Macy", - trackingID: "lsdf-sd09sdf", - cargoDesc: "Dietary supplement", - id: "PKG2042", - arrivedDate: DateTime(2020, 6, 1), - receiverAddress: '2 Shwe Taung Kyar St, Bahan Tsp, Yangon', - statusHistory: statusHistory), - Package( - shipmentNumber: "A202", - receiverNumber: "2", - receiverName: "Ma Aye", - boxNumber: "2", - rate: 7, - packageType: "General", - cargoDesc: "Handbags", - weight: 55, - market: "Macy", - trackingID: "234-sdflsdf-213", - status: "Shipped", - id: "PKG2043", - arrivedDate: DateTime(2020, 6, 1), - receiverAddress: '2 Shwe Taung Kyar St, Bahan Tsp, Yangon', - statusHistory: statusHistory), - Package( - shipmentNumber: "A201", - receiverNumber: "1", - receiverName: "Ko Wai", - boxNumber: "1", - rate: 9, - packageType: "Dangerous", - cargoDesc: "Phones and Scooters", - weight: 25, - status: "Arrived", - market: "Amazon", - trackingID: "sdf-asdf-23489", - id: "PKG2044", - arrivedDate: DateTime(2020, 5, 21), - receiverAddress: '3 Kambzwza St, Bahan Tsp, Yangon', - statusHistory: statusHistory), - Package( - shipmentNumber: "A201", - receiverNumber: "1", - receiverName: "Ko Wai", - boxNumber: "2", - rate: 7, - packageType: "General", - cargoDesc: "Construction tools", - weight: 5, - status: "Processed", - market: "Amazon", - id: "PKG2045", - trackingID: "oiuw-sdfpo-234", - arrivedDate: DateTime(2020, 5, 21), - receiverAddress: '3 Kambzwza St, Bahan Tsp, Yangon', - statusHistory: statusHistory), - ]; - - List get getPackages { - return packages - ..sort((e1, e2) { - return e2.packageNumber.compareTo(e1.packageNumber); - }); - } - - List get completed { - return packages.where((e) => e.status == "Processed").toList() - ..sort((e1, e2) { - return e2.packageNumber.compareTo(e1.packageNumber); - }); - } - - List get shipped { - return packages.where((e) => e.status == "Shipped").toList() - ..sort((e1, e2) { - return e2.packageNumber.compareTo(e1.packageNumber); - }); - } - - List get arrived { - return packages.where((e) => e.status == "Arrived").toList() - ..sort((e1, e2) { - return e2.packageNumber.compareTo(e1.packageNumber); - }); - } - - List get delivered { - return packages.where((e) => e.status == "Delivered").toList() - ..sort((e1, e2) { - return e2.packageNumber.compareTo(e1.packageNumber); - }); - } - - List get upcoming { - return packages.where((e) => e.status == "Received").toList() - ..sort((e1, e2) { - return e2.packageNumber.compareTo(e1.packageNumber); - }); - } - - void initUser(user) { - super.initUser(user); - } - - @override - logout() async { - if (listener != null) await listener.cancel(); - packages = []; - } -} diff --git a/lib/model_page/user_list_model.dart b/lib/model_page/user_list_model.dart deleted file mode 100644 index 1924b9c..0000000 --- a/lib/model_page/user_list_model.dart +++ /dev/null @@ -1,81 +0,0 @@ -import 'dart:async'; - -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:logging/logging.dart'; -import 'package:fcs/model/base_model.dart'; -import 'package:fcs/model/constants.dart'; -import 'package:fcs/model/firebase_helper.dart'; -import 'package:fcs/util.dart'; - -import '../vo/user.dart'; - -class UserModel extends BaseModel { - final log = Logger('UserListModel'); - StreamSubscription listener; - List users = []; - - void initUser(user) async { - super.initUser(user); - _loadUsers(user); - } - - Future _loadUsers(User user) async { - try { - String path = "/$biz_collection/${setting.okEnergyId}/$user_collection"; - var snaps = await Firestore.instance - .collection(path) - .where('user_level', isLessThanOrEqualTo: user.userLevel) - .limit(1) - .getDocuments(); - - Stream snapshots = Firestore.instance - .collection(path) - .where('user_level', isLessThanOrEqualTo: user.userLevel) - .snapshots(); - - snapshots.listen((snaps) async { - users = snaps.documents.map((documentSnapshot) { - var data = - User.fromMap(documentSnapshot.data, documentSnapshot.documentID); - if (data.docID == user.docID && data.isBlock) { - this.mainModel.logout(); - notifyListeners(); - } - return data; - }).toList(); - notifyListeners(); - }); - } catch (e) { - log.warning("Error!! $e"); - } - } - - @override - logout() async { - users = []; - if (listener != null) listener.cancel(); - } - - List getUserList() { - return users.where((u) => u.docID != this.user.docID).toList(); - } - - Future findUser(String phoneNumber) async { - var _phoneNumber = updatePhoneNumber(phoneNumber); - try { - var data = await request("/user/find/$_phoneNumber", "GET", - token: await getToken()); - return User.fromJson(data); - } catch (e) { - throw Exception(e); - } - } - - Future getUser(String id) async { - String path = "/$biz_collection/${setting.okEnergyId}/$user_collection"; - print("id=> $id"); - var snap = await getDocSnap(path, id); - print("snap=> $snap"); - return User.fromMap(snap.data, snap.documentID); - } -} diff --git a/lib/pages/add_pin_editor.dart b/lib/pages/add_pin_editor.dart deleted file mode 100644 index 8259afa..0000000 --- a/lib/pages/add_pin_editor.dart +++ /dev/null @@ -1,363 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart' as Theme; -import '../fcs/common/pages/util.dart'; - -class AddPINEditor extends StatefulWidget { - final User user; - AddPINEditor( - this.user, { - Key key, - }) : super(key: key); - - @override - _AddPINEditorState createState() => new _AddPINEditorState(); -} - -class _AddPINEditorState extends State - with SingleTickerProviderStateMixin { - final GlobalKey _scaffoldKey = new GlobalKey(); - - final FocusNode myFocusNodePassword = FocusNode(); - final FocusNode myFocusNodeEmail = FocusNode(); - - bool _obscureTextLogin = true; - bool _obscureTextSignup = true; - bool _obscureTextSignupConfirm = true; - - TextEditingController _passwordController = new TextEditingController(); - TextEditingController _pinController = new TextEditingController(); - final formKey = GlobalKey(); - bool _isLoading = false; - bool isSwitched = false; - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - key: _scaffoldKey, - body: SingleChildScrollView( - child: Container( - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height >= 775.0 - ? MediaQuery.of(context).size.height - : 580.0, - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Padding( - padding: EdgeInsets.only(top: 35.0, bottom: 10), - child: ListTile( - leading: IconButton( - icon: Icon(Icons.arrow_back), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - title: LocalText( - context, - 'change.pin.title', - color: Colors.black87, - fontSize: 17, - ), - ), - ), - Expanded( - flex: 2, - child: PageView( - children: [ - new ConstrainedBox( - constraints: const BoxConstraints.expand(), - child: _buildReset(context), - ), - ], - ), - ), - ], - ), - ), - ), - ), - ); - } - - @override - void dispose() { - myFocusNodePassword.dispose(); - myFocusNodeEmail.dispose(); - super.dispose(); - } - - @override - void initState() { - super.initState(); - - // SystemChrome.setPreferredOrientations([ - // DeviceOrientation.portraitUp, - // DeviceOrientation.portraitDown, - // ]); - } - - Widget _buildReset(BuildContext context) { - final switchBtnBox = Row( - children: [ - Container( - padding: EdgeInsets.only(left: 20), - child: LocalText( - context, - 'pin.switch', - fontSize: 15, - )), - Switch( - value: isSwitched, - onChanged: (value) { - setState(() { - isSwitched = value; - if (!isSwitched) { - _pinController.clear(); - } - }); - }, - activeColor: Theme.secondaryColor, - ), - ], - ); - - final pinInputBox = Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - controller: _pinController, - keyboardType: TextInputType.number, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Image.asset( - 'assets/pin.png', - width: 30, - height: 30, - ), - labelText: AppTranslations.of(context).text("change.pin"), - labelStyle: Provider.of(context).isEng - ? TextStyle(fontFamily: "WorkSansSemiBold", color: Colors.grey) - : TextStyle(fontFamily: "MyanmarUnicode", color: Colors.grey), - ), - validator: _validatePinCode, - ), - ); - - final passwordInputBox = Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodePassword, - controller: _passwordController, - obscureText: _obscureTextSignup, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - color: Colors.black, - ), - labelText: AppTranslations.of(context).text("login.password"), - labelStyle: Provider.of(context).isEng - ? TextStyle(fontFamily: "WorkSansSemiBold", color: Colors.grey) - : TextStyle(fontFamily: "MyanmarUnicode", color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleSignup, - child: Icon( - _obscureTextSignup - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validatePassword, - ), - ); - - final updatePinBtn = Container( - decoration: new BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(5.0)), - color: Theme.primaryColor, - ), - child: MaterialButton( - highlightColor: Colors.transparent, - splashColor: Theme.LoginColors.loginGradientEnd, - child: Padding( - padding: - const EdgeInsets.symmetric(vertical: 10.0, horizontal: 42.0), - child: LocalText( - context, - 'pin.add_btn', - color: Colors.white, - fontSize: 18.0, - ), - ), - onPressed: () => _change(context)), - ); - - final clearPinBtn = Container( - // margin: EdgeInsets.only(top: 320.0), - decoration: new BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(5.0)), - color: Theme.primaryColor, - ), - child: MaterialButton( - highlightColor: Colors.transparent, - splashColor: Theme.LoginColors.loginGradientEnd, - //shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(5.0))), - child: Padding( - padding: - const EdgeInsets.symmetric(vertical: 10.0, horizontal: 42.0), - child: LocalText( - context, - 'pin.clear_btn', - color: Colors.white, - fontSize: 18.0, - ), - ), - onPressed: () => _clear(context)), - ); - return Container( - child: ListView( - children: [ - Column( - children: [ - Form( - key: formKey, - child: Card( - elevation: 2.0, - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.0), - ), - child: Container( - width: 300.0, - child: Column( - children: [ - switchBtnBox, - isSwitched ? Container() : pinInputBox, - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - passwordInputBox - ], - ), - ), - ), - ), - SizedBox( - height: 15, - ), - isSwitched ? Container() : updatePinBtn, - SizedBox( - height: 15, - ), - !isSwitched ? Container() : clearPinBtn - ], - ), - ], - ), - ); - } - - void _toggleSignup() { - setState(() { - _obscureTextSignup = !_obscureTextSignup; - }); - } - - void _change(BuildContext context) async { - if (!formKey.currentState.validate()) { - return; - } - - setState(() { - _isLoading = true; - }); - - UserModel userModel = Provider.of(context); - try { - await userModel.updatePin(_pinController.text, _passwordController.text); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - } - - void _clear(BuildContext context) async { - if (!formKey.currentState.validate()) { - return; - } - - setState(() { - _isLoading = true; - }); - - UserModel userModel = Provider.of(context); - try { - await userModel.clearPin(_passwordController.text); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - } - - String _validatePassword(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.password_empty"); - } - if (value.length < 6) { - return AppTranslations.of(context).text("login.password_size"); - } - return null; - } - - String _validatePinCode(value) { - if (!isSwitched) { - if (value.isEmpty) { - return AppTranslations.of(context).text("change.pin_empty"); - } - if (value.length < 6 || value.length > 6) { - return AppTranslations.of(context).text("change.pin_size"); - } - } - - return null; - } -} diff --git a/lib/pages/announcement.dart b/lib/pages/announcement.dart deleted file mode 100644 index af88b1a..0000000 --- a/lib/pages/announcement.dart +++ /dev/null @@ -1,184 +0,0 @@ -import 'dart:convert'; - -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/announcement_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/announcement.dart'; -import 'package:fcs/vo/popup_menu.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/popupmenu.dart'; -import 'package:fcs/widget/progress.dart'; -import 'package:zefyr/zefyr.dart'; - -import '../fcs/common/helpers/theme.dart'; -import 'announcement_editor.dart'; - -class AnnouncementPage extends StatefulWidget { - final Announcement announcement; - - const AnnouncementPage({Key key, this.announcement}) : super(key: key); - @override - _AnnouncementState createState() => _AnnouncementState(); -} - -class _AnnouncementState extends State { - ZefyrController _textController; - - TextEditingController nameController = new TextEditingController(); - FocusNode _focusNode; - NotusDocument document = new NotusDocument(); - bool isLoading = false; - - Announcement _announcement = new Announcement(); - - @override - void initState() { - super.initState(); - if (widget.announcement != null) { - _announcement = widget.announcement; - nameController.text = _announcement.name; - _textController = ZefyrController(_loadDocument(_announcement)); - _focusNode = FocusNode(); - } - } - - NotusDocument _loadDocument(Announcement announcement) { - NotusDocument doc; - try { - doc = NotusDocument.fromJson(jsonDecode(announcement.text)); - } catch (e) {} - if (doc == null) { - doc = NotusDocument(); - } - return doc; - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - - bool isOwnerAndAbove = - mainModel.user != null && mainModel.user.isOwnerAndAbove(); - bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin(); - - final nameBox = Container( - padding: EdgeInsets.only(top: 20, left: 20, right: 20), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - LocalText(context, 'announcement.name'), - SizedBox( - height: 15, - ), - Text( - nameController.text, - style: textStyle, - ) - ], - ), - ); - - final textBox = Expanded( - child: Container( - padding: EdgeInsets.only(left: 5, right: 20), - child: ZefyrTheme( - data: ZefyrThemeData().copyWith(), - child: ZefyrScaffold( - child: ZefyrEditor( - mode: ZefyrMode.view, - padding: EdgeInsets.all(16), - controller: _textController, - focusNode: _focusNode, - ), - )), - )); - - return LocalProgress( - inAsyncCall: isLoading, - child: Scaffold( - appBar: AppBar( - title: LocalText(context, 'announcement.form.title', - color: Colors.white, fontSize: 20), - backgroundColor: primaryColor, - actions: [ - isOwnerAndAbove || hasAdmin - ? PopupMenuButton( - elevation: 3.2, - tooltip: 'This is tooltip', - onSelected: _select, - itemBuilder: (BuildContext context) { - return announcementMenu.map((PopupMenu choice) { - return PopupMenuItem( - value: choice, - child: Text(choice.status), - ); - }).toList(); - }) - : Container() - ], - ), - body: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - nameBox, - Container( - padding: EdgeInsets.only(left: 10, right: 10), - child: Divider( - color: Colors.grey, - )), - Container( - padding: EdgeInsets.only(left: 20, right: 20), - child: LocalText(context, 'announcement.desc')), - textBox, - SizedBox(height: 10) - ], - ), - ), - ); - } - - void _select(PopupMenu choice) async { - if (choice.index == 1) { - Announcement _anno = await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - AnnouncementEditor(announcement: _announcement)), - ); - if (_anno == null) return; - - setState(() { - _announcement = _anno; - nameController.text = _announcement.name; - _textController = ZefyrController(_loadDocument(_announcement)); - _focusNode = FocusNode(); - }); - } else if (choice.index == 2) { - showConfirmDialog(context, "announcement.delete_confirm", () { - _delete(context); - }); - } - } - - void _delete(BuildContext context) async { - setState(() { - isLoading = true; - }); - try { - if (widget.announcement != null) { - await Provider.of(context) - .deleteAnnouncement(widget.announcement); - } - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - isLoading = false; - }); - } - } -} diff --git a/lib/pages/announcement_editor.dart b/lib/pages/announcement_editor.dart deleted file mode 100644 index b37a332..0000000 --- a/lib/pages/announcement_editor.dart +++ /dev/null @@ -1,152 +0,0 @@ -import 'dart:convert'; - -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/announcement_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/announcement.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; -import 'package:zefyr/zefyr.dart'; - -class AnnouncementEditor extends StatefulWidget { - final Announcement announcement; - - const AnnouncementEditor({Key key, this.announcement}) : super(key: key); - @override - _AnnouncementEditorState createState() => _AnnouncementEditorState(); -} - -class _AnnouncementEditorState extends State { - final _formKey = GlobalKey(); - static final _scafoldKey = new GlobalKey(); - TextEditingController nameController = new TextEditingController(); - bool _isLoading = false; - FocusNode _focusNode; - ZefyrController _textController; - Announcement _announcement = new Announcement(); - - @override - void initState() { - super.initState(); - if (widget.announcement != null) { - _announcement = widget.announcement; - nameController.text = _announcement.name; - NotusDocument doc = - NotusDocument.fromJson(jsonDecode(widget.announcement.text)); - _textController = ZefyrController(doc); - _focusNode = FocusNode(); - } else { - _textController = ZefyrController(NotusDocument()); - _focusNode = FocusNode(); - } - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - final nameBox = Container( - padding: EdgeInsets.only(top: 10), - child: TextFormField( - controller: nameController, - autofocus: false, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("announcement.name"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("announcement.name_empty"); - } - return null; - }, - ), - ); - - final textEditor = ZefyrField( - height: 200.0, - decoration: InputDecoration( - labelText: AppTranslations.of(context).text('announcement.desc'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - ), - controller: _textController, - focusNode: _focusNode, - autofocus: false, - physics: ClampingScrollPhysics(), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - "announcement.form.title", - color: Colors.white, - fontSize: 20, - ), - actions: [ - IconButton( - icon: Icon(Icons.save), - onPressed: () { - _save(context); - }, - ) - ], - ), - body: ZefyrScaffold( - key: _scafoldKey, - child: Padding( - padding: EdgeInsets.only(left: 20.0, right: 20.0), - child: Form( - key: _formKey, - child: ListView( - children: [ - nameBox, - SizedBox(height: 10), - textEditor, - ], - )), - ), - ), - ), - ); - } - - void _save(BuildContext context) { - if (!_formKey.currentState.validate()) return; - - setState(() { - _isLoading = true; - }); - try { - _announcement.name = nameController.text; - final contents = jsonEncode(_textController.document); - _announcement.text = contents; - - if (widget.announcement != null) { - Provider.of(context, listen: false) - .updateAnnouncement(_announcement); - } else { - Provider.of(context, listen: false) - .createAnnouncement(_announcement); - } - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - Future.delayed(const Duration(milliseconds: 3000), () { - _isLoading = false; - Navigator.pop(context, this._announcement); - }); - } - } -} diff --git a/lib/pages/announcement_list.dart b/lib/pages/announcement_list.dart deleted file mode 100644 index 0c57365..0000000 --- a/lib/pages/announcement_list.dart +++ /dev/null @@ -1,146 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/announcement_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/vo/announcement.dart' as Announce; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import 'announcement.dart'; -import 'announcement_editor.dart'; - -class AnnouncementList extends StatefulWidget { - @override - _AnnouncementListState createState() => _AnnouncementListState(); -} - -class _AnnouncementListState extends State { - var timeFormatter = new DateFormat('KK:mm a'); - var dateFormatter = new DateFormat('dd MMM'); - - final double dotSize = 15.0; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - AnnouncementModel announcementModel = - Provider.of(context); - - MainModel mainModel = Provider.of(context); - bool isOwnerAndAbove = - mainModel.user != null && mainModel.user.isOwnerAndAbove(); - bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin(); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - "announcement.title", - color: Colors.white, - fontSize: 20, - )), - floatingActionButton: isOwnerAndAbove || hasAdmin - ? FloatingActionButton( - backgroundColor: primaryColor, - child: Icon(Icons.add), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => AnnouncementEditor()), - ); - }, - ) - : Container(), - body: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: announcementModel.announcements.length, - itemBuilder: (BuildContext context, int index) { - Announce.Announcement announce = - announcementModel.announcements[index]; - return InkWell( - onTap: () { - setState(() { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - AnnouncementPage(announcement: announce)), - ); - }); - }, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Icon( - Icons.announcement, - color: primaryColor, - size: 30, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - announce.name == null - ? Container() - : new Text( - announce.name, - style: new TextStyle( - fontSize: 15.0, - color: Colors.black), - ), - ], - ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text(announce.time == null - ? "" - : timeFormatter.format(announce.time)), - ), - announce.fromToday() - ? Container() - : Text(announce.time == null - ? "" - : dateFormatter.format(announce.time)), - ], - ) - ], - ), - ), - ), - ], - ), - ); - }), - ), - ); - } -} diff --git a/lib/pages/banks/bank_edit.dart b/lib/pages/banks/bank_edit.dart deleted file mode 100644 index e99f1c0..0000000 --- a/lib/pages/banks/bank_edit.dart +++ /dev/null @@ -1,195 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/bank_account.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/local_text_field.dart'; -import 'package:fcs/widget/progress.dart'; - -class BankEdit extends StatefulWidget { - final BankAccount bankAccount; - - const BankEdit({Key key, this.bankAccount}) : super(key: key); - - @override - _BankEditState createState() => _BankEditState(); -} - -class _BankEditState extends State { - TextEditingController bankNameController = new TextEditingController(); - TextEditingController accountNameController = new TextEditingController(); - TextEditingController accountNumberController = new TextEditingController(); - - bool _isLoading; - bool _isEdit; - File image; - BankAccount bankAccount; - - @override - void initState() { - super.initState(); - _isLoading = false; - _isEdit = widget.bankAccount != null; - bankAccount = BankAccount(); - if (_isEdit) { - bankAccount = widget.bankAccount; - bankNameController.text = bankAccount.bankName; - accountNameController.text = bankAccount.accountName; - accountNumberController.text = bankAccount.accountNumber; - } - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: LocalText(context, 'banks.edit.title', - color: Colors.white, fontSize: 20), - backgroundColor: primaryColor, - actions: [ - IconButton( - icon: Icon(Icons.save), - onPressed: () { - _save(); - }, - ), - IconButton( - icon: Icon(Icons.delete), - onPressed: () { - _delete(); - }, - ) - ], - ), - body: Column( - children: [ - Expanded( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - LocalTextField( - labelKey: "banks.name", - textEditingController: bankNameController), - LocalTextField( - labelKey: "banks.account.name", - textEditingController: accountNameController), - LocalTextField( - labelKey: "banks.account.number", - textEditingController: accountNumberController, - textInputType: TextInputType.number, - ), - Padding( - padding: const EdgeInsets.all(18.0), - child: Center( - child: Stack( - children: [ - Container( - width: 80, - height: 80, - padding: const EdgeInsets.all(2.0), - decoration: BoxDecoration( - border: Border.all( - color: primaryColor, - width: 1.0, - ), - ), - child: image == null - ? Image.network( - _isEdit ? widget.bankAccount.bankLogo : "", - height: 80, - width: 80, - ) - : Image.file(image), - ), - Positioned( - bottom: -10, - right: -10, - child: IconButton( - color: primaryColor, - icon: const Icon( - Icons.edit, - color: Colors.grey, - ), - onPressed: () async { - File _image = await ImagePicker.pickImage( - source: ImageSource.gallery, - maxWidth: 300, - maxHeight: 300, - imageQuality: 80); - if (_image != null) { - setState(() { - this.image = _image; - }); - } - })) - ], - ), - ), - ) - ], - ), - ), - ], - ), - ), - ); - } - - _save() async { - if (!_isEdit && image == null) { - showMsgDialog(context, "Error", "Need bank logo!"); - return; - } - setState(() { - _isLoading = true; - }); - try { - bankAccount.bankName = bankNameController.text; - bankAccount.accountName = accountNameController.text; - bankAccount.accountNumber = accountNumberController.text; - MainModel mainModel = Provider.of(context, listen: false); - if (_isEdit) { - await mainModel.updateBankAccount(bankAccount, image); - } else { - await mainModel.addBankAccount(bankAccount, image); - } - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - return; - } finally { - setState(() { - _isLoading = false; - }); - } - Navigator.pop(context); - } - - _delete() async { - showConfirmDialog(context, "banks.account.delete.confirmation", () async { - setState(() { - _isLoading = true; - }); - try { - MainModel mainModel = Provider.of(context, listen: false); - if (_isEdit) { - await mainModel.deleteBankAccount(bankAccount); - } - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - Navigator.pop(context); - } - }); - } -} diff --git a/lib/pages/banks/banks.dart b/lib/pages/banks/banks.dart deleted file mode 100644 index e1000ec..0000000 --- a/lib/pages/banks/banks.dart +++ /dev/null @@ -1,259 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/banks/bank_edit.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/bank_account.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -class BankAccounts extends StatefulWidget { - const BankAccounts({Key key}) : super(key: key); - @override - _BankAccountsState createState() => _BankAccountsState(); -} - -class _BankAccountsState extends State { - bool isLoading = false; - bool isEdit = false; - - final TextEditingController bankNameCtl = TextEditingController(); - final TextEditingController accountNameCtl = TextEditingController(); - final TextEditingController accountNumberCtl = TextEditingController(); - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - List bankAccounts = mainModel.setting.bankAccounts; - - bool isOwnerAndAbove = - mainModel.user != null && mainModel.user.isOwnerAndAbove(); - bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin(); - - return WillPopScope( - onWillPop: () { - if (isEdit) { - setState(() { - isEdit = false; - }); - return Future.value(false); - } - return Future.value(true); - }, - child: LocalProgress( - inAsyncCall: isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - automaticallyImplyLeading: !isEdit, - title: LocalText(context, 'banks.title', - color: Colors.white, fontSize: 20), - backgroundColor: primaryColor, - actions: [ - (isOwnerAndAbove || hasAdmin) - ? isEdit - ? IconButton( - icon: Icon(Icons.done), - onPressed: () { - setState(() { - isEdit = false; - }); - }, - ) - : IconButton( - icon: Icon(Icons.edit), - onPressed: () { - _edit(); - }, - ) - : Container() - ], - ), - floatingActionButton: isEdit - ? FloatingActionButton( - backgroundColor: primaryColor, - onPressed: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => BankEdit()), - ); - }, - child: const Icon( - Icons.add, - color: Colors.white, - ), - ) - : null, - body: new ListView.builder( - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 15), - shrinkWrap: true, - itemCount: bankAccounts.length, - itemBuilder: (BuildContext context, int index) { - return _item(context, bankAccounts[index]); - }), - ), - ), - ); - } - - _item(BuildContext context, BankAccount bankAccount) { - return InkWell( - onTap: isEdit - ? () => Navigator.push( - context, - MaterialPageRoute( - builder: (context) => BankEdit( - bankAccount: bankAccount, - )), - ) - : null, - child: Row( - children: [ - Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Container( - padding: const EdgeInsets.all(2.0), - decoration: BoxDecoration( - border: Border.all( - color: primaryColor, - width: 1.0, - ), - ), - child: Image.network( - bankAccount.bankLogo, - height: 80, - width: 80, - ), - ), - ), - ], - ), - Expanded( - child: new Row( - children: [ - new Expanded( - child: new Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.all(3.0), - child: new Text( - bankAccount.bankName, - style: new TextStyle( - fontSize: 20.0, color: Colors.black), - ), - ), - Padding( - padding: const EdgeInsets.all(3.0), - child: new Text( - bankAccount.accountName, - style: - new TextStyle(fontSize: 16.0, color: Colors.grey), - ), - ), - Padding( - padding: const EdgeInsets.all(3.0), - child: Row( - children: [ - Text( - bankAccount.accountNumber, - style: new TextStyle( - fontSize: 16.0, color: Colors.grey), - ), - InkWell( - onTap: () { - Clipboard.setData(ClipboardData( - text: bankAccount.accountNumber)); - _showToast(context, bankAccount.bankName); - }, - child: Padding( - padding: const EdgeInsets.only(left: 7.0), - child: Icon( - Icons.content_copy, - color: Colors.grey, - ), - ), - ), - ], - ), - ), - ], - ), - ), - ], - ), - ), - ], - ), - ); - } - - Future _displayEditDialog(BuildContext context) async { - return showDialog( - context: context, - builder: (context) { - return AlertDialog( - title: Text('Edit'), - content: Column( - children: [ - TextField( - controller: bankNameCtl, - keyboardType: TextInputType.numberWithOptions(decimal: true), - decoration: InputDecoration(hintText: "Enter Bank Name"), - ), - TextField( - controller: accountNameCtl, - keyboardType: TextInputType.numberWithOptions(decimal: true), - decoration: InputDecoration(hintText: "Enter Account Name"), - ), - TextField( - controller: accountNumberCtl, - keyboardType: TextInputType.number, - decoration: InputDecoration(hintText: "Enter Account Number"), - ), - IconButton(icon: Icon(Icons.photo_library), onPressed: null) - ], - ), - actions: [ - FlatButton( - child: const Text('Cancel'), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - FlatButton( - child: const Text('Ok'), - onPressed: () { - Navigator.of(context).pop(); - }), - ], - ); - }); - } - - void _edit() { - setState(() { - isEdit = true; - }); - } - - void _showToast(BuildContext context, String bankName) { - final scaffold = Scaffold.of(context); - scaffold.showSnackBar( - SnackBar( - content: Text('copied "$bankName" account number to clipboard'), - backgroundColor: primaryColor, - duration: Duration(seconds: 1), - ), - ); - } -} diff --git a/lib/pages/barcode_screen_page.dart b/lib/pages/barcode_screen_page.dart deleted file mode 100644 index fee7bea..0000000 --- a/lib/pages/barcode_screen_page.dart +++ /dev/null @@ -1,73 +0,0 @@ -import 'package:barcode_scan/barcode_scan.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_icons/flutter_icons.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/widget/progress.dart'; - -class BarcodeScreenPage extends StatefulWidget { - final BuyerProduct buyerProduct; - const BarcodeScreenPage({Key key, this.buyerProduct}) : super(key: key); - @override - _BarcodeScreenPageState createState() => _BarcodeScreenPageState(); -} - -class _BarcodeScreenPageState extends State { - final _formKey = GlobalKey(); - bool _isLoading = false; - String scanResult; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text("Bar Code Scranner"), - ), - body: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - InkWell( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - "Scan : ", - style: TextStyle( - color: primaryColor, - fontWeight: FontWeight.bold, - fontSize: 20), - ), - Icon( - Ionicons.ios_qr_scanner, - size: 50, - ), - ], - ), - onTap: () async { - await scan(); - }, - ) - ], - )), - ); - } - - Future scan() async { - var result = await BarcodeScanner.scan(); - print("ScanResult => $result"); - setState(() => scanResult = result); - } -} diff --git a/lib/pages/block_list.dart b/lib/pages/block_list.dart deleted file mode 100644 index 68314c9..0000000 --- a/lib/pages/block_list.dart +++ /dev/null @@ -1,120 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/popup_menu.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/popupmenu.dart'; -import 'package:fcs/widget/progress.dart'; - -class BlockList extends StatefulWidget { - @override - _BlockListState createState() => _BlockListState(); -} - -class _BlockListState extends State { - final double dotSize = 15.0; - bool _isLoading = false; - PopupMenu selectedChoices = blocklistpopup[0]; - User user = new User(); - - @override - Widget build(BuildContext context) { - var userModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText(context, 'user.block_list', - color: Colors.white, fontSize: 20), - ), - body: new ListView.builder( - padding: EdgeInsets.only(left: 15, right: 15, top: 15, bottom: 10), - shrinkWrap: true, - itemCount: userModel.getBlockListUsers().length, - itemBuilder: (BuildContext context, int index) { - return Card( - elevation: 10, - color: Colors.white, - child: Row( - children: [ - Expanded( - child: InkWell( - onTap: () {}, - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 7.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Image.asset( - 'assets/block.png', - width: 50, - height: 50, - color: primaryColor, - )), - new Text( - userModel.getBlockListUsers()[index].name == - null - ? "" - : userModel.getBlockListUsers()[index].name, - style: new TextStyle( - fontSize: 17.0, color: Colors.black), - ), - ], - ), - ), - ), - ), - PopupMenuButton( - elevation: 3.2, - tooltip: 'This is tooltip', - onSelected: _select, - itemBuilder: (BuildContext context) { - this.user = userModel.getBlockListUsers()[index]; - return blocklistpopup.map((PopupMenu choice) { - return PopupMenuItem( - value: choice, - child: Text(choice.status), - ); - }).toList(); - }) - ], - ), - ); - }), - ), - ); - } - - void _select(PopupMenu choice) async { - selectedChoices = choice; - if (choice.index == 1) { - showConfirmDialog(context, "user.unblock.confirm", () { - _unblock(); - }); - } - } - - _unblock() async { - setState(() { - _isLoading = true; - }); - - try { - var userModel = Provider.of(context); - await userModel.unblockPhone(this.user.phoneNumber); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages_fcs/box_editor.dart b/lib/pages/box/box_editor.dart similarity index 95% rename from lib/pages_fcs/box_editor.dart rename to lib/pages/box/box_editor.dart index 38b6d5b..986ab94 100644 --- a/lib/pages_fcs/box_editor.dart +++ b/lib/pages/box/box_editor.dart @@ -1,18 +1,16 @@ -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/pages/invoice/package_addition.dart'; -import 'package:fcs/pages/shipping_address_editor.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/box.dart'; -import 'package:fcs/vo/cargo.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:fcs/vo/shipping_address.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; +import 'package:fcs/domain/entities/box.dart'; +import 'package:fcs/domain/entities/cargo.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/domain/vo/shipping_address.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/shipment_address/model/shipment_address_model.dart'; +import 'package:fcs/pages/shipment_address/shipping_address_row.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/my_data_table.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -21,9 +19,6 @@ import 'package:provider/provider.dart'; import 'package:timeline_list/timeline.dart'; import 'package:timeline_list/timeline_model.dart'; -import '../fcs/common/helpers/theme.dart'; -import 'shipping_address_row.dart'; - class BoxEditor extends StatefulWidget { final Box box; BoxEditor({this.box}); @@ -66,9 +61,9 @@ class _BoxEditorState extends State { // _weightEditingController.text = _pickUp.weight.toString(); } else { List packages = [ - PackageModel.packages[0], - PackageModel.packages[1], - PackageModel.packages[2] + // PackageModel.packages[0], + // PackageModel.packages[1], + // PackageModel.packages[2] ]; List _cargoTypes = [ @@ -77,7 +72,8 @@ class _BoxEditorState extends State { Cargo(type: 'Dangerous Cargo', weight: 30) ]; - var shipmentModel = Provider.of(context, listen: false); + var shipmentModel = + Provider.of(context, listen: false); _shippingAddress = shipmentModel.shippingAddresses[1]; isNew = true; @@ -101,7 +97,7 @@ class _BoxEditorState extends State { final DateFormat dateFormat = DateFormat("d MMM yyyy"); List _models() { // return []; - return _box.statusHistory + return _box.shipmentHistory .map((e) => TimelineModel( Padding( padding: const EdgeInsets.all(18.0), @@ -141,9 +137,6 @@ class _BoxEditorState extends State { @override Widget build(BuildContext context) { var mainModel = Provider.of(context); - var shipmentModel = Provider.of(context); - - var images = isNew ? [] : _images; return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( @@ -342,7 +335,7 @@ class _BoxEditorState extends State { ), ), ), - mainModel.isOwner() + true ? Container( padding: EdgeInsets.only(top: 20), child: Align( diff --git a/lib/pages_fcs/box_list.dart b/lib/pages/box/box_list.dart similarity index 81% rename from lib/pages_fcs/box_list.dart rename to lib/pages/box/box_list.dart index 6ee408c..415e246 100644 --- a/lib/pages_fcs/box_list.dart +++ b/lib/pages/box/box_list.dart @@ -1,21 +1,13 @@ -import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/model_fcs/box_model.dart'; -import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/pages/pickup_list_row.dart'; -import 'package:fcs/pages/search_page.dart'; -import 'package:fcs/pages_fcs/box_editor.dart'; -import 'package:fcs/pages_fcs/box_list_row.dart'; -import 'package:fcs/pages_fcs/package_editor.dart'; -import 'package:fcs/pages_fcs/package_list_row.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/box/model/box_model.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../fcs/common/helpers/theme.dart'; -import 'pickup_editor.dart'; +import 'box_editor.dart'; +import 'box_list_row.dart'; class BoxList extends StatefulWidget { @override @@ -23,7 +15,6 @@ class BoxList extends StatefulWidget { } class _BoxListState extends State { - Buyer buyer; bool _isLoading = false; @override @@ -58,7 +49,7 @@ class _BoxListState extends State { color: Colors.white, ), iconSize: 30, - onPressed: () => showPlacesSearch(context), + // onPressed: () => showPlacesSearch(context), ), ], bottom: TabBar( diff --git a/lib/pages_fcs/box_list_row.dart b/lib/pages/box/box_list_row.dart similarity index 88% rename from lib/pages_fcs/box_list_row.dart rename to lib/pages/box/box_list_row.dart index af14bb6..5b4d7a1 100644 --- a/lib/pages_fcs/box_list_row.dart +++ b/lib/pages/box/box_list_row.dart @@ -1,13 +1,11 @@ -import 'package:fcs/pages/invoice/package_info.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/pages_fcs/box_editor.dart'; -import 'package:fcs/pages_fcs/package_editor.dart'; -import 'package:fcs/vo/box.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:fcs/domain/entities/box.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; +import 'box_editor.dart'; + class BoxListRow extends StatefulWidget { final bool isReadOnly; final Box box; @@ -100,9 +98,7 @@ class _BoxListRowState extends State { new TextStyle(fontSize: 15.0, color: Colors.grey), ), new Text( - _box.price == null - ? "" - : "\$ " + _box.price.toString(), + _box.price == null ? "" : "\$ " + _box.price.toString(), style: new TextStyle(fontSize: 15.0, color: Colors.grey), ), diff --git a/lib/model_fcs/box_model.dart b/lib/pages/box/model/box_model.dart similarity index 89% rename from lib/model_fcs/box_model.dart rename to lib/pages/box/model/box_model.dart index c1ea999..2249307 100644 --- a/lib/model_fcs/box_model.dart +++ b/lib/pages/box/model/box_model.dart @@ -1,27 +1,28 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/model/base_model.dart'; -import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/vo/box.dart'; -import 'package:fcs/vo/cargo.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:fcs/vo/shipping_address.dart'; +import 'package:fcs/domain/entities/box.dart'; +import 'package:fcs/domain/entities/cargo.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/domain/vo/shipment_status.dart'; +import 'package:fcs/domain/vo/shipping_address.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; class BoxModel extends BaseModel { final log = Logger('BoxModel'); StreamSubscription listener; - static List statusHistory = [ - Status(status: "Packed", date: DateTime(2020, 6, 1), done: true), - Status(status: "Shipped", date: DateTime(2020, 6, 5), done: false), - Status(status: "Delivered", date: DateTime(2020, 6, 15), done: false) + static List statusHistory = [ + ShipmentStatus(status: "Packed", date: DateTime(2020, 6, 1), done: true), + ShipmentStatus(status: "Shipped", date: DateTime(2020, 6, 5), done: false), + ShipmentStatus( + status: "Delivered", date: DateTime(2020, 6, 15), done: false) ]; static List packages = [ - PackageModel.packages[0], - PackageModel.packages[1], - PackageModel.packages[2] + // PackageModel.packages[0], + // PackageModel.packages[1], + // PackageModel.packages[2] ]; List boxes = [ @@ -42,7 +43,7 @@ class BoxModel extends BaseModel { length: 10, shipmentWeight: 6, packages: packages, - statusHistory: statusHistory, + shipmentHistory: statusHistory, shippingAddress: ShippingAddress( fullName: 'U Nyi Nyi', addressLine1: '154-19 64th Ave.', @@ -70,7 +71,7 @@ class BoxModel extends BaseModel { height: 20, length: 30, shipmentWeight: 36, - statusHistory: statusHistory, + shipmentHistory: statusHistory, packages: packages, receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon', shippingAddress: ShippingAddress( @@ -100,7 +101,7 @@ class BoxModel extends BaseModel { height: 10, length: 10, shipmentWeight: 6, - statusHistory: statusHistory, + shipmentHistory: statusHistory, packages: packages, receiverAddress: '1 Bo Yar Nyunt St.\nDagon Tsp, Yangon', shippingAddress: ShippingAddress( @@ -130,7 +131,7 @@ class BoxModel extends BaseModel { height: 10, length: 10, shipmentWeight: 6, - statusHistory: statusHistory, + shipmentHistory: statusHistory, packages: packages, receiverAddress: '2 Shwe Taung Kyar St, Bahan Tsp, Yangon', shippingAddress: ShippingAddress( @@ -160,7 +161,7 @@ class BoxModel extends BaseModel { height: 10, length: 10, shipmentWeight: 6, - statusHistory: statusHistory, + shipmentHistory: statusHistory, packages: packages, receiverAddress: '2 Shwe Taung Kyar St, Bahan Tsp, Yangon', shippingAddress: ShippingAddress( @@ -190,7 +191,7 @@ class BoxModel extends BaseModel { height: 10, length: 10, shipmentWeight: 6, - statusHistory: statusHistory, + shipmentHistory: statusHistory, packages: packages, receiverAddress: '2 Shwe Taung Kyar St, Bahan Tsp, Yangon', shippingAddress: ShippingAddress( @@ -220,7 +221,7 @@ class BoxModel extends BaseModel { height: 10, length: 10, shipmentWeight: 6, - statusHistory: statusHistory, + shipmentHistory: statusHistory, packages: packages, receiverAddress: '3 Kambzwza St, Bahan Tsp, Yangon', shippingAddress: ShippingAddress( @@ -250,7 +251,7 @@ class BoxModel extends BaseModel { height: 10, length: 10, shipmentWeight: 6, - statusHistory: statusHistory, + shipmentHistory: statusHistory, packages: packages, receiverAddress: '3 Kambzwza St, Bahan Tsp, Yangon', shippingAddress: ShippingAddress( diff --git a/lib/pages/buyer_info.dart b/lib/pages/buyer_info.dart deleted file mode 100644 index 33654b7..0000000 --- a/lib/pages/buyer_info.dart +++ /dev/null @@ -1,281 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/quota_page.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/util.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/label_widgets.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import 'document_log_page.dart'; - -class BuyerInfo extends StatefulWidget { - final Buyer buyer; - const BuyerInfo({this.buyer}); - @override - _BuyerInfoState createState() => _BuyerInfoState(); -} - -class _BuyerInfoState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm a'); - TextEditingController _companyName = new TextEditingController(); - TextEditingController _comAddress = new TextEditingController(); - TextEditingController _numOfShops = new TextEditingController(); - TextEditingController _bizType = new TextEditingController(); - TextEditingController _accountName = new TextEditingController(); - TextEditingController _accountNumber = new TextEditingController(); - - bool _isLoading = false; - Buyer buyer; - - @override - void initState() { - super.initState(); - if (widget.buyer != null) { - buyer = widget.buyer; - Provider.of(context, listen: false) - .loadBuyerProducts(buyer) - .then((b) { - if (mounted) { - setState(() { - buyer = b; - }); - } - }); - } - } - - @override - Widget build(BuildContext context) { - var mainModel = Provider.of(context); - - _companyName.text = buyer.bizName; - _comAddress.text = buyer.bizAddress; - _numOfShops.text = buyer.numOfShops.toString(); - _bizType.text = buyer.bizType; - _accountName.text = buyer.userName; - _accountNumber.text = buyer.userID; - - final dateBox = - labeledText(context, dateFormatter.format(buyer.regDate), "reg.date"); - final accountBox = - labeledText(context, buyer.userName, "buyer.account_name"); - final phoneBox = labeledText(context, buyer.phone, "buyer.phone_number"); - final statusBox = labeledText(context, buyer.status, "reg.status"); - final bizNameBox = labeledText(context, _companyName.text, "reg.biz_name"); - final bizAddressBox = - labeledText(context, _comAddress.text, "reg.biz_address"); - final shopNumberBox = - labeledText(context, _numOfShops.text, "reg.biz_shops"); - final typeBox = labeledText(context, _bizType.text, "buyer.type_biz"); - final dailyQuotaBox = labeledText( - context, formatNumber(buyer.dailyQuota), "reg.quota", - number: true); - final dailyQuotaUsedBox = labeledText( - context, formatNumber(buyer.dailyQuotaUsed), "reg.quota.used", - number: true); - final maxQuotaBox = labeledText( - context, formatNumber(buyer.maxQuota), "reg.max_quota", - number: true); - final maxQuotaUsedBox = labeledText( - context, formatNumber(buyer.maxQuotaUsed), "reg.max_quota.used", - number: true); - final nricFrontBox = - labeledImg(context, buyer.nricFrontUrl, "reg_info.nric_front"); - final nricBackBox = - labeledImg(context, buyer.nricBackUrl, "reg_info.nric_back"); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("buyer.title")), - actions: [ - mainModel.showHistoryBtn() - ? IconButton( - icon: Icon(Icons.history), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - DocumentLogPage(docID: buyer.id)), - ); - }, - ) - : Container(), - PopupMenuButton( - onSelected: (s) { - if (s == 1) { - showConfirmDialog(context, "buyer.delete.confirm", () { - _delete(); - }); - } else if (s == 2) { - showConfirmDialog(context, "buyer.approve.confirm", () { - _approve(); - }); - } else if (s == 3) { - showCommentDialog(context, (comment) { - _reject(comment); - }); - } else if (s == 4) { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => QuotaPage( - buyer: this.buyer, - isApproved: true, - )), - ); - } - }, - itemBuilder: (context) => [ - PopupMenuItem( - value: 1, - child: Text("Delete"), - ), - PopupMenuItem( - enabled: buyer.isPending(), - value: 2, - child: Text("Approve"), - ), - PopupMenuItem( - enabled: buyer.isPending(), - value: 3, - child: Text("Reject"), - ), - PopupMenuItem( - enabled: buyer.isApproved(), - value: 4, - child: Text("Allocate Quota"), - ), - ], - ), - ], - ), - body: Container( - padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10), - child: ListView( - children: [ - dateBox, - Divider(), - accountBox, - Divider(), - Row( - children: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: phoneBox, - ), - InkWell( - onTap: () => call(context, buyer.phone), - child: Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ), - ), - ], - ), - Divider(), - statusBox, - Divider(), - bizNameBox, - Divider(), - bizAddressBox, - Divider(), - typeBox, - Divider(), - dailyQuotaBox, - Divider(), - dailyQuotaUsedBox, - Divider(), - maxQuotaBox, - Divider(), - maxQuotaUsedBox, - Divider(), - nricFrontBox, - Divider(), - nricBackBox - ], - ), - ), - ), - ); - } - - _delete() async { - setState(() { - _isLoading = true; - }); - - try { - await Provider.of(context).delete(buyer); - Navigator.pop(context, true); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _approve() async { - var _buyer = await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => QuotaPage( - buyer: this.buyer, - isApproved: false, - )), - ); - if (_buyer == null) return; - - setState(() { - _isLoading = true; - }); - - try { - this.buyer.dailyQuota = _buyer.dailyQuota; - this.buyer.maxQuota = _buyer.maxQuota; - await Provider.of(context).approve(this.buyer); - Navigator.pop(context, true); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _reject(comment) async { - if (comment == null || comment == "") { - showMsgDialog(context, "Error", "Please enter comment!"); - return; - } - buyer.comment = comment; - setState(() { - _isLoading = true; - }); - - try { - await Provider.of(context).reject(buyer); - Navigator.pop(context, true); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/buyer_list.dart b/lib/pages/buyer_list.dart deleted file mode 100644 index 9e85e5c..0000000 --- a/lib/pages/buyer_list.dart +++ /dev/null @@ -1,208 +0,0 @@ -import 'package:provider/provider.dart'; -import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/pages/search_page.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/vo/popup_menu.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/popupmenu.dart'; - -import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import 'buyer_list_row.dart'; - -class BuyerList extends StatefulWidget { - @override - _BuyerListState createState() => _BuyerListState(); -} - -class _BuyerListState extends State { - Buyer buyer; - int _selectedIndex = 0; - bool _isLoading = false; - int _selectedSortIndex; - - @override - void initState() { - super.initState(); - var buyerModel = Provider.of(context, listen: false); - var index = buyerModel.popupMenu.index; - _selectedIndex = index; - var sortIndexndex = buyerModel.sortMenu.index; - _selectedSortIndex = sortIndexndex; - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - BuyerModel buyerModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("buyer.title")), - actions: [ - IconButton( - icon: Icon( - Icons.search, - color: Colors.white, - ), - iconSize: 30, - onPressed: () => showPlacesSearch(context), - ), - PopupMenuButton( - elevation: 3.2, - onSelected: (selected) { - setState(() { - this._selectedSortIndex = selected.index; - this._selectedIndex = 0; - buyerModel.filterSorting( - _selectedSortIndex, this._selectedIndex); - }); - }, - icon: Container( - width: 30, - height: 30, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - ), - child: Stack( - fit: StackFit.expand, - children: [ - Icon( - Icons.sort, - color: primaryColor, - ), - _selectedSortIndex != null - ? Positioned( - bottom: 0, - right: 0, - child: Container( - width: 10, - height: 10, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: secondaryColor, - ), - ), - ) - : Container() - ], - )), - itemBuilder: (BuildContext context) { - return userMenu.map((PopupMenu choice) { - return PopupMenuItem( - value: choice, - child: Container( - padding: EdgeInsets.only(left: 8), - child: Row( - children: [ - Text(choice.status), - SizedBox( - width: 10, - ), - _selectedSortIndex != null && - _selectedSortIndex == choice.index - ? Icon( - Icons.check, - color: Colors.grey, - ) - : Container(), - ], - ), - ), - ); - }).toList(); - }), - PopupMenuButton( - elevation: 3.2, - onSelected: (selected) { - String status; - setState(() { - this._selectedIndex = selected.index; - this._selectedSortIndex = null; - if (selected.status == 'All') { - status = null; - } else { - status = selected.status; - } - buyerModel.filterStatus( - status, _selectedIndex, this._selectedSortIndex); - }); - }, - icon: Container( - width: 30, - height: 30, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - ), - child: Stack( - fit: StackFit.expand, - children: [ - Icon( - Icons.filter_list, - color: primaryColor, - ), - _selectedIndex != 0 - ? Positioned( - bottom: 0, - right: 0, - child: Container( - width: 10, - height: 10, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: secondaryColor, - ), - ), - ) - : Container() - ], - )), - itemBuilder: (BuildContext context) { - return buyerStatusMenu.map((PopupMenu choice) { - return PopupMenuItem( - value: choice, - child: Row( - children: [ - Text(choice.status), - SizedBox( - width: 10, - ), - _selectedIndex != null && - _selectedIndex == choice.index - ? Icon( - Icons.check, - color: Colors.grey, - ) - : Container(), - ], - ), - ); - }).toList(); - }), - ], - ), - body: new ListView.builder( - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 15), - shrinkWrap: true, - itemCount: buyerModel.buyers.length, - itemBuilder: (BuildContext context, int index) { - return BuyerListRow( - buyer: buyerModel.buyers[index], - ); - }), - ), - ); - } -} diff --git a/lib/pages/buyer_list_row.dart b/lib/pages/buyer_list_row.dart deleted file mode 100644 index a8cbbf3..0000000 --- a/lib/pages/buyer_list_row.dart +++ /dev/null @@ -1,106 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/buyer.dart'; - -import 'buyer_info.dart'; - -class BuyerListRow extends StatefulWidget { - final Buyer buyer; - const BuyerListRow({this.buyer}); - - @override - _BuyerListRowState createState() => _BuyerListRowState(); -} - -class _BuyerListRowState extends State { - final double dotSize = 15.0; - Buyer _buyer = new Buyer(); - - @override - void initState() { - super.initState(); - BuyerModel buyerModel = Provider.of(context, listen: false); - if (widget.buyer != null) { - buyerModel.buyers.forEach((b) { - if (widget.buyer.id == b.id) { - _buyer = b; - } - }); - } - } - - @override - Widget build(BuildContext context) { - return Container( - padding: EdgeInsets.only(left: 15, right: 15), - child: Card( - elevation: 10, - color: Colors.white, - child: InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => BuyerInfo(buyer: _buyer)), - ); - }, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 16.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Image.asset( - "assets/buyer.png", - width: 40, - height: 40, - color: primaryColor, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Text( - _buyer.userName == null ? '' : _buyer.userName, - style: new TextStyle( - fontSize: 15.0, color: Colors.black), - ), - new Text( - _buyer.bizName == null ? "" : _buyer.bizName, - style: new TextStyle( - fontSize: 13.0, color: Colors.grey), - ), - new Text( - _buyer.phone == null ? "" : _buyer.phone, - style: new TextStyle( - fontSize: 13.0, color: Colors.grey), - ), - ], - ), - ), - ], - ), - ), - ), - Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: getStatus(_buyer.status), - ), - ], - ) - ], - ), - ), - ), - ); - } -} diff --git a/lib/fcs/common/pages/buying_instruction/buying_online.dart b/lib/pages/buying_instruction/buying_online.dart similarity index 86% rename from lib/fcs/common/pages/buying_instruction/buying_online.dart rename to lib/pages/buying_instruction/buying_online.dart index 3dee003..7fab9fa 100644 --- a/lib/fcs/common/pages/buying_instruction/buying_online.dart +++ b/lib/pages/buying_instruction/buying_online.dart @@ -1,9 +1,9 @@ -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/fcs_id_icon.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/fcs_id_icon.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -113,11 +113,12 @@ class _BuyingOnlinePagetate extends State controller: _tabController, children: [ Container( - child: - Image.asset('assets/Fullname.png', fit: BoxFit.contain), + child: Image.asset('assets/buying_online_with_full_name.png', + fit: BoxFit.contain), ), Container( - child: Image.asset('assets/FirstName&LastName.png', + child: Image.asset( + 'assets/buying_online_with_first_last_name.png', fit: BoxFit.contain), ), ], diff --git a/lib/pages/buying_online.dart b/lib/pages/buying_online.dart deleted file mode 100644 index b02f050..0000000 --- a/lib/pages/buying_online.dart +++ /dev/null @@ -1,216 +0,0 @@ -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/manual.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import '../widget/label_widgets.dart'; -import '../widget/local_text.dart'; -import 'instruction.dart'; -import 'manual/manual_page.dart'; - -class BuyingOnlinePage extends StatefulWidget { - @override - _BuyingOnlinePagetate createState() => _BuyingOnlinePagetate(); -} - -class _BuyingOnlinePagetate extends State - with SingleTickerProviderStateMixin { - bool _isLoading = false; - List images = [ - 'assets/Fullname.jpeg', - 'assets/FirstName&LastName.jpeg' - ]; - TabController _tabController; - - @override - void initState() { - _tabController = TabController(vsync: this, length: 2); - super.initState(); - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - - final phoneBox = - labeledText(context, mainModel.customer.phoneNumber, "user.phone"); - final fcsIdBox = Container( - padding: EdgeInsets.only(top: 15), - child: labeledText(context, mainModel.customer.fcsID, "user.fcs_id")); - final shippingAddressBox = Container( - padding: EdgeInsets.only(top: 15), - child: labeledText(context, mainModel.customer.shippingAddress, - "user.shipping_address")); - final deliveryAddressBox = Container( - padding: EdgeInsets.only(top: 15), - child: labeledText(context, mainModel.customer.deliveryAddress, - "user.deliveryAddress")); - - final instructionBox = Container( - padding: EdgeInsets.only(left: 10, top: 30, bottom: 10), - child: Center( - child: Wrap( - children: [ - LocalText( - context, - 'user.buying_instruction', - color: labelColor, - fontSize: 15, - ) - ], - ), - ), - ); - - final amazonbutton = Container( - padding: EdgeInsets.only(left: 10, right: 10, top: 10), - child: Container( - height: 45.0, - decoration: BoxDecoration( - color: primaryColor, - shape: BoxShape.rectangle, - // borderRadius: BorderRadius.all(Radius.circular(10.0)) - ), - child: ButtonTheme( - minWidth: 900.0, - height: 100.0, - child: FlatButton( - onPressed: () { - Navigator.of(context).push(BottomUpPageRoute(InstructionPage( - name: 'Amazon', - image: "assets/amazon_ins.png", - ))); - }, - child: LocalText( - context, - 'buy.amazon', - color: Colors.white, - fontSize: 16, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - title: LocalText( - context, - "buy_online.title", - fontSize: 20, - color: Colors.white, - ), - backgroundColor: primaryColor, - ), - body: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(top: 10, left: 10, right: 10), - children: [ - nameWidget(mainModel.customer.name), - phoneWidget(context, mainModel.customer.phoneNumber), - Row( - children: [ - SizedBox( - width: 25, - height: 25, - child: FittedBox( - child: Image.asset("assets/logo.jpg"), - fit: BoxFit.fill, - ), - ), - fcsIdBox, - Padding( - padding: const EdgeInsets.only(left: 7.0, top: 50), - child: Icon( - Icons.content_copy, - color: Colors.grey, - ), - ) - ], - ), - Row( - children: [ - Icon(Icons.location_on), - shippingAddressBox, - Padding( - padding: const EdgeInsets.only(left: 7.0, top: 50), - child: Icon( - Icons.content_copy, - color: Colors.grey, - ), - ) - ], - ), - - // deliveryAddressBox, - instructionBox, - new Container( - decoration: new BoxDecoration(color: Colors.white), - child: new TabBar( - // indicatorColor: primaryColor, - labelColor: primaryColor, - labelStyle: TextStyle(fontWeight: FontWeight.bold), - unselectedLabelColor: Colors.grey, - controller: _tabController, - tabs: [ - new Tab( - text: 'With FULL NAME', - ), - new Tab( - text: 'With FIRST NAME&\nLAST NAME', - ), - ], - ), - ), - new Container( - padding: EdgeInsets.only(top: 10), - height: 500, - width: 500, - child: new TabBarView( - controller: _tabController, - children: [ - Container( - child: - Image.asset('assets/Fullname.png', fit: BoxFit.contain), - ), - Container( - child: Image.asset('assets/FirstName&LastName.png', - fit: BoxFit.contain), - ), - ], - ), - ), - // Container( - // height: 500, - // width: 500, - // child: ListView.builder( - // itemCount: images.length, - // scrollDirection: Axis.horizontal, - // itemBuilder: (context, index) { - // return Container( - // padding: EdgeInsets.only(left: 0, right: 5, top: 5), - // child: Image.asset(images[index], fit: BoxFit.contain), - // ); - // }), - // ), - - SizedBox(height: 10) - ], - ), - ), - ); - } -} diff --git a/lib/pages/calculate_shipment_cost_editor.dart b/lib/pages/calculate_shipment_cost_editor.dart deleted file mode 100644 index a78d088..0000000 --- a/lib/pages/calculate_shipment_cost_editor.dart +++ /dev/null @@ -1,257 +0,0 @@ -import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/vo/pickup.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; - -import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -class CalculateShipmentCostEditor extends StatefulWidget { - final PickUp pickUp; - CalculateShipmentCostEditor({this.pickUp}); - - @override - _CalculateShipmentCostEditorState createState() => - _CalculateShipmentCostEditorState(); -} - -class _CalculateShipmentCostEditorState - extends State { - TextEditingController _addressEditingController = new TextEditingController(); - TextEditingController _fromTimeEditingController = - new TextEditingController(); - TextEditingController _toTimeEditingController = new TextEditingController(); - TextEditingController _noOfPackageEditingController = - new TextEditingController(); - TextEditingController _weightEditingController = new TextEditingController(); - - PickUp _pickUp; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - if (widget.pickUp != null) { - _pickUp = widget.pickUp; - _addressEditingController.text = _pickUp.address; - _fromTimeEditingController.text = _pickUp.fromTime; - _toTimeEditingController.text = _pickUp.toTime; - _noOfPackageEditingController.text = _pickUp.numberOfPackage.toString(); - _weightEditingController.text = _pickUp.weight.toString(); - } - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - var pickupModel = Provider.of(context); - - final pickUpAddress = Container( - child: TextFormField( - maxLines: null, - controller: _addressEditingController, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: 'Pickup Address', - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - )); - - final pickupTime = Container( - height: 50.0, - child: Row(children: [ - Container( - width: 70.0, - child: TextFormField( - controller: _fromTimeEditingController, - cursorColor: primaryColor, - textAlign: TextAlign.left, - decoration: InputDecoration( - contentPadding: EdgeInsets.all(10.0), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.grey[300], width: 2), - ), - focusedBorder: OutlineInputBorder( - borderSide: const BorderSide(color: primaryColor, width: 2.0), - ), - ), - )), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text(' to '), - ), - Container( - width: 70.0, - child: TextFormField( - controller: _toTimeEditingController, - cursorColor: primaryColor, - textAlign: TextAlign.left, - decoration: InputDecoration( - contentPadding: EdgeInsets.all(10.0), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.grey[300], width: 2), - ), - focusedBorder: OutlineInputBorder( - borderSide: const BorderSide(color: primaryColor, width: 2.0), - ), - ), - )), - ]), - ); - - final noOfPackageBox = Container( - height: 50.0, - child: Row(children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text('Number of Packages '), - ), - Expanded( - child: TextFormField( - controller: _noOfPackageEditingController, - cursorColor: primaryColor, - textAlign: TextAlign.left, - decoration: InputDecoration( - contentPadding: EdgeInsets.all(10.0), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.grey[300], width: 2), - ), - focusedBorder: OutlineInputBorder( - borderSide: const BorderSide(color: primaryColor, width: 2.0), - ), - ), - )), - ]), - ); - - final weightBox = Container( - height: 50.0, - child: Row(children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text('Total Weight (lb) '), - ), - Expanded( - child: TextFormField( - controller: _weightEditingController, - cursorColor: primaryColor, - textAlign: TextAlign.left, - decoration: InputDecoration( - contentPadding: EdgeInsets.all(10.0), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: Colors.grey[300], width: 2), - ), - focusedBorder: OutlineInputBorder( - borderSide: const BorderSide(color: primaryColor, width: 2.0), - ), - ), - )), - ]), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("pickup.edit.title")), - ), - body: Card( - child: Column( - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.all(20.0), - child: ListView(children: [ - Text( - "U Aung Zaw", - style: TextStyle(fontSize: 15.0), - ), - Text( - "+82054857695", - style: TextStyle(fontSize: 15.0), - ), - pickUpAddress, - SizedBox(height: 15), - Text('Pickup Time'), - SizedBox(height: 15), - pickupTime, - SizedBox(height: 15), - noOfPackageBox, - SizedBox(height: 15), - weightBox - ]), - )), - widget.pickUp == null - ? Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - shape: new RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(10)), - child: Text('Request'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))) - : Container( - child: Column( - children: [ - Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(10)), - child: Text('Pickuped'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))), - Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(10)), - child: Text('Cancel'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))) - ], - )) - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/chage_phone_number.dart b/lib/pages/chage_phone_number.dart deleted file mode 100644 index 8910567..0000000 --- a/lib/pages/chage_phone_number.dart +++ /dev/null @@ -1,272 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart' as Theme; -import 'confirm_email.dart'; -import '../fcs/common/pages/util.dart'; - -class ChangePhoneNumber extends StatefulWidget { - final User user; - ChangePhoneNumber( - this.user, { - Key key, - }) : super(key: key); - - @override - _ChangePhoneNumberState createState() => new _ChangePhoneNumberState(); -} - -class _ChangePhoneNumberState extends State - with SingleTickerProviderStateMixin { - final GlobalKey _scaffoldKey = new GlobalKey(); - - final FocusNode myFocusNodePhone = FocusNode(); - final FocusNode myFocusNodenewPhone = FocusNode(); - - TextEditingController _phoneController = new TextEditingController(); - TextEditingController _newPhoneController = new TextEditingController(); - final formKey = GlobalKey(); - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - key: _scaffoldKey, - body: SingleChildScrollView( - child: Container( - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height >= 775.0 - ? MediaQuery.of(context).size.height - : 580.0, - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Padding( - padding: EdgeInsets.only(top: 35.0, bottom: 10), - child: ListTile( - leading: IconButton( - icon: Icon(Icons.arrow_back), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - title: LocalText( - context, - 'change.phone', - color: Colors.black87, - fontSize: 17, - ), - ), - ), - Expanded( - flex: 2, - child: PageView( - children: [ - new ConstrainedBox( - constraints: const BoxConstraints.expand(), - child: _buildReset(context), - ), - ], - ), - ), - ], - ), - ), - ), - ), - ); - } - - @override - void dispose() { - myFocusNodenewPhone.dispose(); - myFocusNodePhone.dispose(); - super.dispose(); - } - - @override - void initState() { - super.initState(); - _phoneController.text = widget.user.phone; - _newPhoneController.text = "09"; - - // SystemChrome.setPreferredOrientations([ - // DeviceOrientation.portraitUp, - // DeviceOrientation.portraitDown, - // ]); - } - - Widget _buildReset(BuildContext context) { - return Container( - child: ListView( - children: [ - Column( - children: [ - Form( - key: formKey, - child: Card( - elevation: 2.0, - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.0), - ), - child: Container( - width: 300.0, - child: Column( - children: [ - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodePhone, - controller: _phoneController, - readOnly: true, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.phone, - color: Colors.black, - size: 22.0, - ), - labelText: AppTranslations.of(context) - .text("login.phone"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - ), - ), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodenewPhone, - controller: _newPhoneController, - keyboardType: TextInputType.phone, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.phone, - color: Colors.black, - size: 22.0, - ), - labelText: AppTranslations.of(context) - .text("change.new.phone"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - ), - validator: _validatePhone, - ), - ), - ], - ), - ), - ), - ), - SizedBox( - height: 15, - ), - Container( - // margin: EdgeInsets.only(top: 320.0), - decoration: new BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(5.0)), - color: Theme.primaryColor, - ), - child: MaterialButton( - highlightColor: Colors.transparent, - splashColor: Theme.LoginColors.loginGradientEnd, - //shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(5.0))), - child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 10.0, horizontal: 42.0), - child: LocalText( - context, - 'change', - color: Colors.white, - fontSize: 18.0, - ), - ), - onPressed: () => _change(context)), - ), - ], - ), - ], - ), - ); - } - - void _change(BuildContext context) async { - if (!formKey.currentState.validate()) { - return; - } - var _phone = _newPhoneController.text; - - setState(() { - _isLoading = true; - }); - - UserModel userModel = Provider.of(context); - try { - await userModel.changePhone(widget.user.phoneNumber, _phone); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ConfirmEmail( - id: widget.user.phoneNumber, - phoneNumber: _phone, - ))); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - } - - String _validatePhone(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("change.phone_empty"); - } - if (!value.startsWith("09")) { - return 'Only "09".'; - } - return null; - } -} diff --git a/lib/pages/change_password.dart b/lib/pages/change_password.dart deleted file mode 100644 index 7cac95b..0000000 --- a/lib/pages/change_password.dart +++ /dev/null @@ -1,320 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart' as Theme; -import '../fcs/common/pages/util.dart'; - -class ChangePassword extends StatefulWidget { - final User user; - ChangePassword( - this.user, { - Key key, - }) : super(key: key); - - @override - _ChangePasswordState createState() => new _ChangePasswordState(); -} - -class _ChangePasswordState extends State - with SingleTickerProviderStateMixin { - final GlobalKey _scaffoldKey = new GlobalKey(); - - final FocusNode myFocusNodePassword = FocusNode(); - final FocusNode myFocusNodeEmail = FocusNode(); - - bool _obscureTextLogin = true; - bool _obscureTextSignup = true; - bool _obscureTextSignupConfirm = true; - - TextEditingController _smsController = new TextEditingController(); - TextEditingController _passwordController = new TextEditingController(); - TextEditingController _confirmPasswordController = - new TextEditingController(); - final formKey = GlobalKey(); - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - key: _scaffoldKey, - body: SingleChildScrollView( - child: Container( - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height >= 775.0 - ? MediaQuery.of(context).size.height - : 580.0, - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Padding( - padding: EdgeInsets.only(top: 35.0, bottom: 10), - child: ListTile( - leading: IconButton( - icon: Icon(Icons.arrow_back), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - title: LocalText( - context, - 'change.password.title', - color: Colors.black87, - fontSize: 17, - ), - ), - ), - Expanded( - flex: 2, - child: PageView( - children: [ - new ConstrainedBox( - constraints: const BoxConstraints.expand(), - child: _buildReset(context), - ), - ], - ), - ), - ], - ), - ), - ), - ), - ); - } - - @override - void dispose() { - myFocusNodePassword.dispose(); - myFocusNodeEmail.dispose(); - super.dispose(); - } - - @override - void initState() { - super.initState(); - - // SystemChrome.setPreferredOrientations([ - // DeviceOrientation.portraitUp, - // DeviceOrientation.portraitDown, - // ]); - - _smsController.text = ""; - } - - Widget _buildReset(BuildContext context) { - return Container( - child: ListView( - children: [ - Column( - children: [ - Form( - key: formKey, - child: Card( - elevation: 2.0, - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.0), - ), - child: Container( - width: 300.0, - child: Column( - children: [ - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodePassword, - controller: _passwordController, - obscureText: _obscureTextSignup, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.password"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleSignup, - child: Icon( - _obscureTextSignup - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validatePassword, - ), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - controller: _confirmPasswordController, - obscureText: _obscureTextSignupConfirm, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.confirm_password"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleSignupConfirm, - child: Icon( - _obscureTextSignupConfirm - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validateConfirmPassword, - ), - ), - ], - ), - ), - ), - ), - SizedBox( - height: 15, - ), - Container( - // margin: EdgeInsets.only(top: 320.0), - decoration: new BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(5.0)), - color: Theme.primaryColor, - ), - child: MaterialButton( - highlightColor: Colors.transparent, - splashColor: Theme.LoginColors.loginGradientEnd, - //shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(5.0))), - child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 10.0, horizontal: 42.0), - child: LocalText( - context, - 'change', - color: Colors.white, - fontSize: 18.0, - ), - ), - onPressed: () => _change(context)), - ), - ], - ), - ], - ), - ); - } - - void _toggleLogin() { - setState(() { - _obscureTextLogin = !_obscureTextLogin; - }); - } - - void _toggleSignup() { - setState(() { - _obscureTextSignup = !_obscureTextSignup; - }); - } - - void _toggleSignupConfirm() { - setState(() { - _obscureTextSignupConfirm = !_obscureTextSignupConfirm; - }); - } - - void _change(BuildContext context) async { - if (!formKey.currentState.validate()) { - return; - } - var password = _passwordController.text; - - setState(() { - _isLoading = true; - }); - - UserModel userModel = Provider.of(context); - try { - await userModel.changePassword(widget.user.phoneNumber, password); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - } - - String _validatePassword(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.password_empty"); - } - if (value.length < 6) { - return AppTranslations.of(context).text("login.password_size"); - } - return null; - } - - String _validateConfirmPassword(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.password_empty"); - } - if (value.length < 6) { - return AppTranslations.of(context).text("login.password_size"); - } - if (value != _passwordController.text) { - return AppTranslations.of(context).text("login.password_mismatch"); - } - return null; - } -} diff --git a/lib/fcs/common/pages/chat/bubble.dart b/lib/pages/chat/bubble.dart similarity index 93% rename from lib/fcs/common/pages/chat/bubble.dart rename to lib/pages/chat/bubble.dart index c6f8a05..9a99de3 100644 --- a/lib/fcs/common/pages/chat/bubble.dart +++ b/lib/pages/chat/bubble.dart @@ -1,8 +1,8 @@ -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/package/package_info.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/fcs_id_icon.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/package/package_info.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/fcs_id_icon.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; diff --git a/lib/fcs/common/pages/chat/message_detail.dart b/lib/pages/chat/message_detail.dart similarity index 86% rename from lib/fcs/common/pages/chat/message_detail.dart rename to lib/pages/chat/message_detail.dart index 74e9c76..3a85b61 100644 --- a/lib/fcs/common/pages/chat/message_detail.dart +++ b/lib/pages/chat/message_detail.dart @@ -1,19 +1,18 @@ -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/domain/vo/message.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/chat/model/message_model.dart'; -import 'package:fcs/fcs/common/pages/customer/customer_editor.dart'; -import 'package:fcs/fcs/common/pages/customer/model/customer_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/package/model/package_model.dart'; -import 'package:fcs/fcs/common/pages/package/package_info.dart'; -import 'package:fcs/fcs/common/pages/profile/profile_page.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/domain/vo/message.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/chat/model/message_model.dart'; +import 'package:fcs/pages/customer/customer_editor.dart'; +import 'package:fcs/pages/customer/model/customer_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/package/model/package_model.dart'; +import 'package:fcs/pages/package/package_info.dart'; +import 'package:fcs/pages/profile/profile_page.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'bubble.dart'; diff --git a/lib/fcs/common/pages/chat/model/message_model.dart b/lib/pages/chat/model/message_model.dart similarity index 91% rename from lib/fcs/common/pages/chat/model/message_model.dart rename to lib/pages/chat/model/message_model.dart index 7c7e67d..447a325 100644 --- a/lib/fcs/common/pages/chat/model/message_model.dart +++ b/lib/pages/chat/model/message_model.dart @@ -1,10 +1,10 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/vo/message.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; +import 'package:fcs/data/services/services.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/vo/message.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; class MessageModel extends BaseModel { diff --git a/lib/pages/confirm_email.dart b/lib/pages/confirm_email.dart deleted file mode 100644 index ed82bba..0000000 --- a/lib/pages/confirm_email.dart +++ /dev/null @@ -1,114 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/pages/util.dart'; - -class ConfirmEmail extends StatefulWidget { - final String id, email, phoneNumber; - - const ConfirmEmail({Key key, this.id, this.email, this.phoneNumber}) - : super(key: key); - @override - _ConfirmEmailState createState() => _ConfirmEmailState(); -} - -class _ConfirmEmailState extends State { - final TextEditingController _sms = new TextEditingController(); - bool _isLoading = false; - final _formKey = GlobalKey(); - - @override - void initState() { - super.initState(); - } - - _confimEmail() async { - UserModel userModel = Provider.of(context); - if (!_formKey.currentState.validate()) { - return; - } - - setState(() { - _isLoading = true; - }); - try { - await userModel.confirmEmail( - widget.id, widget.email, widget.phoneNumber, _sms.text); - Navigator.pushNamedAndRemoveUntil(context, "/welcome", (r) => false); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } - - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - - @override - Widget build(BuildContext context) { - final smsInput = TextFormField( - controller: _sms, - keyboardType: TextInputType.number, - autofocus: false, - decoration: new InputDecoration( - labelText: widget.email == null - ? AppTranslations.of(context).text("sms.sms") - : AppTranslations.of(context).text("email.code"), - labelStyle: labelStyle, - hintText: 'eg. 123456', - icon: Icon( - Icons.lock, - color: primaryColor, - )), - validator: (value) { - if (value.isEmpty) { - return widget.email == null - ? AppTranslations.of(context).text("sms.empty") - : AppTranslations.of(context).text("email.code_empty"); - } - return null; - }, - ); - - final enterButton = Padding( - padding: EdgeInsets.symmetric(vertical: 16.0), - child: RaisedButton( - onPressed: () => _confimEmail(), - padding: EdgeInsets.all(12), - color: primaryColor, - child: Text(AppTranslations.of(context).text("sms.enter"), - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold)), - ), - ); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: Text(widget.email == null - ? AppTranslations.of(context).text("input_sms") - : AppTranslations.of(context).text("email.input")), - backgroundColor: primaryColor, - ), - body: Center( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - Form(key: _formKey, child: smsInput), - SizedBox(height: 8.0), - enterButton, - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/contact.dart b/lib/pages/contact.dart deleted file mode 100644 index abbdefd..0000000 --- a/lib/pages/contact.dart +++ /dev/null @@ -1,154 +0,0 @@ -import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/widget/label_widgets.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:package_info/package_info.dart'; -import 'package:provider/provider.dart'; -import 'package:url_launcher/url_launcher.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -class Contact extends StatefulWidget { - @override - _ContactState createState() => _ContactState(); -} - -class _ContactState extends State { - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - var pickupModel = Provider.of(context, listen: false); - - // MainModel mainModel = Provider.of(context); - // bool isOwner = mainModel.user != null && mainModel.user.isOwner(); - // bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin(); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - elevation: 0, - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - title: LocalText( - context, - "contact", - fontSize: 25, - color: Colors.white, - ), - ), - body: ListView( - children: [ - link(pickupModel.profile.usaContactNumber, Icons.phone_forwarded, - onTap: () => _call(pickupModel.profile.usaContactNumber), - label: LocalText( - context, - "contact.usa.phone", - color: primaryColor, - )), - link(pickupModel.profile.mmContactNumber, Icons.phone_forwarded, - onTap: () => _call( - pickupModel.profile.mmContactNumber, - ), - label: LocalText( - context, - "contact.mm.phone", - color: primaryColor, - )), - link( - pickupModel.profile.usaAddress, - Icons.location_on, - ), - link(pickupModel.profile.mmAddress, Icons.location_on), - link(pickupModel.profile.mail, Icons.email, - onTap: () => _email(pickupModel.profile.mail)), - link(pickupModel.profile.facebook, FontAwesomeIcons.facebook, - onTap: () => _openLink(pickupModel.profile.facebook)), - ], - ), - ), - ); - } - - Widget link(String text, IconData iconData, - {Function() onTap, Widget label}) { - return Padding( - padding: const EdgeInsets.only(left: 18.0, bottom: 5), - child: InkWell( - onTap: () => onTap != null ? onTap() : null, - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - iconData, - ), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - label == null - ? Container() - : Padding( - padding: EdgeInsets.fromLTRB(10, 10, 10, 0), - child: label, - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - text == null ? "" : text, - overflow: TextOverflow.ellipsis, - maxLines: 5, - style: TextStyle(fontSize: 14.0), - ), - ), - ], - ), - SizedBox( - width: 5, - ), - onTap == null - ? Container() - : Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ) - ], - ), - )), - ); - } - - Future getVersionNumber() async { - PackageInfo packageInfo = await PackageInfo.fromPlatform(); - String version = packageInfo.version + "+" + packageInfo.buildNumber; - return version; - } - - _call(String phone) { - showConfirmDialog( - context, "contact.phone.confim", () => launch("tel:$phone"), - translationVariables: ["$phone"]); - } - - _email(String email) { - showConfirmDialog( - context, "contact.email.configm", () => launch("mailto:$email"), - translationVariables: ["$email"]); - } - - _openLink(String link) { - showConfirmDialog(context, "contact.open.confrim", () => launch("$link"), - translationVariables: ["$link"]); - } -} diff --git a/lib/fcs/common/pages/contact/contact_editor.dart b/lib/pages/contact/contact_editor.dart similarity index 90% rename from lib/fcs/common/pages/contact/contact_editor.dart rename to lib/pages/contact/contact_editor.dart index f2965cd..e91085a 100644 --- a/lib/fcs/common/pages/contact/contact_editor.dart +++ b/lib/pages/contact/contact_editor.dart @@ -1,11 +1,11 @@ -import 'package:fcs/fcs/common/domain/vo/contact.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/contact/model/contact_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/vo/contact.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/contact/model/contact_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/input_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; diff --git a/lib/fcs/common/pages/contact/contact_page.dart b/lib/pages/contact/contact_page.dart similarity index 89% rename from lib/fcs/common/pages/contact/contact_page.dart rename to lib/pages/contact/contact_page.dart index c3d988a..9ae62cf 100644 --- a/lib/fcs/common/pages/contact/contact_page.dart +++ b/lib/pages/contact/contact_page.dart @@ -1,10 +1,10 @@ -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/vo/contact.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/contact/contact_editor.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/domain/entities/setting.dart'; +import 'package:fcs/domain/vo/contact.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/contact/contact_editor.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; diff --git a/lib/pages/contact/model/contact_model.dart b/lib/pages/contact/model/contact_model.dart new file mode 100644 index 0000000..478bd35 --- /dev/null +++ b/lib/pages/contact/model/contact_model.dart @@ -0,0 +1,17 @@ +import 'dart:async'; + +import 'package:fcs/data/services/services.dart'; +import 'package:fcs/domain/vo/contact.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; +import 'package:logging/logging.dart'; + +class ContactModel extends BaseModel { + final log = Logger('ContactModel'); + + Future saveContact(Contact contact) async { + await request("/contact", "PUT", + payload: contact.toMap(), + token: await Services.instance.authService.getToken()); + notifyListeners(); + } +} diff --git a/lib/pages/contact/widgets.dart b/lib/pages/contact/widgets.dart new file mode 100644 index 0000000..40a78f6 --- /dev/null +++ b/lib/pages/contact/widgets.dart @@ -0,0 +1,103 @@ +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:flutter/material.dart'; + +Widget itemTitle(BuildContext context, String textKey) { + return Padding( + padding: const EdgeInsets.only(left: 18.0, top: 25, bottom: 5), + child: Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + ), + ); +} + +Widget subItemTitle(BuildContext context, String textKey, {IconData iconData}) { + return Padding( + padding: const EdgeInsets.only(left: 0, top: 0, bottom: 0), + child: Row( + children: [ + Icon( + iconData, + color: primaryColor, + ), + SizedBox(width: 10), + Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.w700, fontSize: 15, color: primaryColor), + ), + ], + ), + ); +} + +Widget contactItem(BuildContext context, String text, IconData iconData, + {Function() onTap, String labelKey}) { + return Material( + child: Padding( + padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), + child: Container( + decoration: BoxDecoration( + border: Border.all(color: Colors.grey, width: 0.8), + borderRadius: BorderRadius.all( + Radius.circular(5.0) // <--- border radius here + ), + ), + child: InkWell( + onTap: () => onTap != null ? onTap() : null, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + iconData, + color: primaryColor, + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + labelKey == null + ? Container() + : Padding( + padding: EdgeInsets.fromLTRB(10, 10, 10, 0), + child: LocalText(context, labelKey, + color: primaryColor, + fontWeight: FontWeight.w500, + fontSize: 18), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + text == null ? "" : text, + overflow: TextOverflow.ellipsis, + maxLines: 5, + style: TextStyle( + fontSize: 14.0, + ), + ), + ), + ], + ), + SizedBox( + width: 5, + ), + onTap == null + ? Container() + : Icon( + Icons.open_in_new, + color: Colors.grey, + size: 15, + ) + ], + ), + )), + ), + ), + ); +} diff --git a/lib/pages/contact_editor.dart b/lib/pages/contact_editor.dart deleted file mode 100644 index 22db660..0000000 --- a/lib/pages/contact_editor.dart +++ /dev/null @@ -1,274 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/phone_input.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/setting.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/local_text_field.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -class ContactEditor extends StatefulWidget { - final Setting setting; - const ContactEditor({this.setting}); - @override - _ContactEditorState createState() => _ContactEditorState(); -} - -class _ContactEditorState extends State { - TextEditingController _email = new TextEditingController(); - TextEditingController _facebook = new TextEditingController(); - TextEditingController _website = new TextEditingController(); - TextEditingController _address = new TextEditingController(); - TextEditingController _deliveryPhone = new TextEditingController(); - - final _formKey = GlobalKey(); - bool _isLoading = false; - - List phones = new List(); - List _initPhones = new List(); - - @override - void initState() { - super.initState(); - if (widget.setting != null) { - this._initPhones = widget.setting.phones; - _email.text = widget.setting.email; - _facebook.text = widget.setting.facebook; - _website.text = widget.setting.website; - _deliveryPhone.text = widget.setting.deliveryPhone; - _address.text = widget.setting.address; - - phones.clear(); - _initPhones.forEach((p) { - phones.add(p); - }); - } - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - final emailBox = TextFormField( - controller: _email, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('contact.email'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.email, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text('contact.email.empty'); - } - return null; - }, - ); - - final faceBookBox = TextFormField( - controller: _facebook, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('contact.facebook'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.facebook, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text('contact.facebook.empty'); - } - return null; - }, - ); - - final googleBox = TextFormField( - controller: _website, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('contact.google'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.chrome, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text('contact.google.empty'); - } - return null; - }, - ); - - final addPhoneNumber = ListTile( - contentPadding: EdgeInsets.only(top: 15), - title: ButtonTheme( - height: 45, - child: RaisedButton( - color: Colors.white, - onPressed: () async { - var phone = await showDialog( - context: context, builder: (_) => PhoneEditor()); - _save(phone); - }, - child: Text("Add Phone", - style: TextStyle( - fontSize: 18, - )), - ), - )); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - "contact.title", - fontSize: 20, - color: Colors.white, - ), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - if (!_formKey.currentState.validate()) return; - showConfirmDialog(context, "contact.confrim", () { - _submit(); - }); - }) - ], - ), - body: Form( - key: _formKey, - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - this.phones.isNotEmpty - ? ConstrainedBox( - constraints: BoxConstraints(maxHeight: 1000), - child: ListView.builder( - shrinkWrap: true, - itemBuilder: (context, index) { - return Stack( - alignment: const Alignment(1.0, 1.0), - children: [ - new TextField( - controller: new TextEditingController( - text: this.phones[index]), - cursorColor: primaryColor, - readOnly: true, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.phone, - color: primaryColor, - ), - ), - ), - new FlatButton( - onPressed: () { - setState(() { - this.phones.remove(this.phones[index]); - }); - }, - child: new Icon( - Icons.cancel, - size: 25, - )) - ], - ); - }, - itemCount: this.phones.length, - ), - ) - : Container(), - addPhoneNumber, - LocalTextField( - textEditingController: _deliveryPhone, - icon: Icon( - Icons.phone_forwarded, - color: primaryColor, - ), - labelKey: "contact.delivery.phone", - ), - emailBox, - faceBookBox, - googleBox, - LocalTextField( - textEditingController: _address, - icon: Icon( - Icons.location_on, - color: primaryColor, - ), - labelKey: "contact.address", - maxLines: 3, - ), - ], - ), - ), - )); - } - - _save(String phone) { - if (phone == null) return; - setState(() { - this.phones.add(phone); - }); - } - - _submit() async { - setState(() { - _isLoading = true; - }); - try { - widget.setting.email = _email.text; - widget.setting.facebook = _facebook.text; - widget.setting.website = _website.text; - widget.setting.phones = this.phones; - widget.setting.address = _address.text; - widget.setting.deliveryPhone = _deliveryPhone.text; - var mainModel = Provider.of(context); - await mainModel.updateContact(widget.setting); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/fcs/common/pages/customer/customer_editor.dart b/lib/pages/customer/customer_editor.dart similarity index 88% rename from lib/fcs/common/pages/customer/customer_editor.dart rename to lib/pages/customer/customer_editor.dart index 3e7d271..eeb254f 100644 --- a/lib/fcs/common/pages/customer/customer_editor.dart +++ b/lib/pages/customer/customer_editor.dart @@ -1,10 +1,10 @@ -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/customer/model/customer_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/fcs_id_icon.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/customer/model/customer_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/fcs_id_icon.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/customer/customer_list.dart b/lib/pages/customer/customer_list.dart similarity index 91% rename from lib/fcs/common/pages/customer/customer_list.dart rename to lib/pages/customer/customer_list.dart index b0164a5..d1321cd 100644 --- a/lib/fcs/common/pages/customer/customer_list.dart +++ b/lib/pages/customer/customer_list.dart @@ -1,15 +1,15 @@ -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/chat/message_detail.dart'; -import 'package:fcs/fcs/common/pages/chat/model/message_model.dart'; -import 'package:fcs/fcs/common/pages/customer/customer_editor.dart'; -import 'package:fcs/fcs/common/pages/customer/model/customer_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/user_search/user_serach.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/chat/message_detail.dart'; +import 'package:fcs/pages/chat/model/message_model.dart'; +import 'package:fcs/pages/customer/customer_editor.dart'; +import 'package:fcs/pages/customer/model/customer_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/user_search/user_serach.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; diff --git a/lib/fcs/common/pages/customer/invitation_create.dart b/lib/pages/customer/invitation_create.dart similarity index 93% rename from lib/fcs/common/pages/customer/invitation_create.dart rename to lib/pages/customer/invitation_create.dart index fea749a..1e711a4 100644 --- a/lib/fcs/common/pages/customer/invitation_create.dart +++ b/lib/pages/customer/invitation_create.dart @@ -1,10 +1,9 @@ import 'package:country_code_picker/country_code_picker.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/customer/model/customer_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/widget/progress.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/customer/model/customer_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/customer/invitation_editor.dart b/lib/pages/customer/invitation_editor.dart similarity index 87% rename from lib/fcs/common/pages/customer/invitation_editor.dart rename to lib/pages/customer/invitation_editor.dart index fef5933..f7edeb9 100644 --- a/lib/fcs/common/pages/customer/invitation_editor.dart +++ b/lib/pages/customer/invitation_editor.dart @@ -1,9 +1,9 @@ -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/customer/model/customer_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/customer/model/customer_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/customer/model/customer_model.dart b/lib/pages/customer/model/customer_model.dart similarity index 92% rename from lib/fcs/common/pages/customer/model/customer_model.dart rename to lib/pages/customer/model/customer_model.dart index 9902c44..39ef6fc 100644 --- a/lib/fcs/common/pages/customer/model/customer_model.dart +++ b/lib/pages/customer/model/customer_model.dart @@ -1,10 +1,10 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; +import 'package:fcs/data/services/services.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; class CustomerModel extends BaseModel { diff --git a/lib/pages/customer_editor.dart b/lib/pages/customer_editor.dart deleted file mode 100644 index 004dbdd..0000000 --- a/lib/pages/customer_editor.dart +++ /dev/null @@ -1,362 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/employee_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/role.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; -import '../fcs/common/pages/util.dart'; - -typedef void FindCallBack(); - -class CustomerEditor extends StatefulWidget { - final User customer; - const CustomerEditor({this.customer}); - @override - _CustomerEditorState createState() => _CustomerEditorState(); -} - -class _CustomerEditorState extends State { - TextEditingController _name = new TextEditingController(); - TextEditingController _phone = new TextEditingController(); - TextEditingController _phoneInput = new TextEditingController(); - TextEditingController _status = new TextEditingController(); - - final _formKey = GlobalKey(); - bool _isLoading = false; - String currentBizId; - bool isSend = false; - User user; - User selectedUser; - List privileges = []; - - @override - void initState() { - super.initState(); - // privileges = Provider.of(context, listen: false).privileges; - if (widget.customer != null) { - _name.text = widget.customer.name; - _phone.text = widget.customer.phone; - _status.text = widget.customer.status; - // privileges.forEach((p) => widget.employee.privilegeIds.contains(p.id) - // ? p.isChecked = true - // : p.isChecked = false); - } - } - - List showprivilegeList(BuildContext context, UserModel userModel) { - return privileges.map((p) { - return new ListTile( - title: new Row( - children: [ - new Checkbox( - value: p.isChecked == null ? false : p.isChecked, - activeColor: primaryColor, - onChanged: (bool value) { - setState(() { - p.isChecked = value; - }); - }), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Text( - p.name, - style: TextStyle( - fontSize: 15.0, - ), - ), - // Container( - // width: MediaQuery.of(context).size.width * 0.5, - // child: new Text( - // userModel.getPrivileges[index].desc, - // style: - // TextStyle(fontSize: 12.0, color: Colors.grey[600]), - // ), - // ), - ], - ), - ], - )); - }).toList(); - } - - Widget phoneInputbox(BuildContext context, FindCallBack findCallBack) { - var languageModel = Provider.of(context); - return Container( - padding: EdgeInsets.only(top: 10), - child: Stack( - alignment: const Alignment(1.2, 1.0), - children: [ - TextFormField( - controller: _phoneInput, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('employee.phone'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.phone, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - ), - new FlatButton( - onPressed: () { - this.isSend = true; - findCallBack(); - }, - child: new Icon( - Icons.search, - size: 25, - )) - ], - )); - } - - @override - Widget build(BuildContext context) { - var userModel = Provider.of(context); - MainModel mainModel = Provider.of(context); - - final namebox = TextFormField( - controller: _name, - autofocus: false, - readOnly: true, - cursorColor: primaryColor, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.person, - color: primaryColor, - ), - ), - ); - - final displayPhoneNo = TextFormField( - controller: _phone, - autofocus: false, - readOnly: true, - cursorColor: primaryColor, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.phone, - color: primaryColor, - ), - ), - ); - - var phoneNumberBox = Row( - children: [ - Expanded(child: displayPhoneNo), - Expanded( - child: InkWell( - onTap: () => call(context, _phone.text), - child: Icon( - Icons.open_in_new, - color: Colors.grey, - size: 15, - ), - ), - ), - ], - ); - - final statusbox = TextFormField( - controller: _status, - autofocus: false, - readOnly: true, - cursorColor: primaryColor, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.av_timer, - color: primaryColor, - ), - ), - ); - - final updateButton = Container( - padding: EdgeInsets.only(top: 40), - child: Container( - height: 45.0, - decoration: BoxDecoration( - color: primaryColor, - shape: BoxShape.rectangle, - ), - child: ButtonTheme( - minWidth: 900.0, - height: 100.0, - child: FlatButton( - onPressed: () {}, - child: LocalText( - context, - 'customer.update', - color: Colors.white, - fontSize: 16, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ); - - final addButton = Container( - padding: EdgeInsets.only(top: 40), - child: Container( - height: 45.0, - decoration: BoxDecoration( - color: primaryColor, - shape: BoxShape.rectangle, - ), - child: ButtonTheme( - minWidth: 900.0, - height: 100.0, - child: FlatButton( - onPressed: () {}, - child: LocalText( - context, - 'customer.add', - color: Colors.white, - fontSize: 16, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: LocalText( - context, - "customer.form.title", - fontSize: 20, - color: Colors.white, - ), - // actions: [ - // widget.customer == null || !mainModel.showHistoryBtn() - // ? Container() - // : IconButton( - // icon: Icon(Icons.history), - // onPressed: () { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => DocumentLogPage( - // docID: widget.customer.docID)), - // ); - // }, - // ), - // ], - ), - body: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - widget.customer == null - ? phoneInputbox(context, () => _findUser(context)) - : phoneNumberBox, - widget.customer == null - ? this.isSend ? namebox : Container() - : namebox, - statusbox, - // widget.customer == null ? addButton : updateButton, - SizedBox( - height: 20, - ) - ], - ), - )); - } - - _add(BuildContext context) async { - if (selectedUser == null) return; - setState(() { - _isLoading = true; - }); - var employeeModel = Provider.of(context); - try { - await employeeModel.updatePrivileges( - this.selectedUser.docID, privilegesIDs()); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - List privilegesIDs() { - return this.privileges.where((p) => p.isChecked).map((p) => p.id).toList(); - } - - _save() async { - setState(() { - _isLoading = true; - }); - if (widget.customer == null) return; - var employeeModel = Provider.of(context); - try { - await employeeModel.updatePrivileges( - widget.customer.docID, privilegesIDs()); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _findUser(BuildContext context) async { - var userModel = Provider.of(context); - setState(() { - _isLoading = true; - }); - try { - selectedUser = await userModel.findUser(_phoneInput.text); - setState(() { - isSend = true; - _name.text = selectedUser.name; - if (selectedUser.privilegeIds != null) { - privileges.forEach((p) => selectedUser.privilegeIds.contains(p.id) - ? p.isChecked = true - : p.isChecked = false); - } - }); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/customer_list.dart b/lib/pages/customer_list.dart deleted file mode 100644 index d61f64c..0000000 --- a/lib/pages/customer_list.dart +++ /dev/null @@ -1,143 +0,0 @@ -import 'package:fcs/model/customer_model.dart'; -import 'package:fcs/pages/search_page.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_icons/flutter_icons.dart'; -import 'package:intl/intl.dart'; - -import 'package:provider/provider.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import '../vo/user.dart'; -import '../widget/local_text.dart'; -import 'customer_editor.dart'; -import 'invitation_page.dart'; -import '../fcs/common/pages/util.dart'; - -class CustomerList extends StatefulWidget { - @override - _CustomerListState createState() => _CustomerListState(); -} - -class _CustomerListState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm:ss a'); - final double dotSize = 15.0; - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - var customerModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - actions: [ - IconButton( - icon: Icon( - Icons.search, - color: Colors.white, - ), - iconSize: 30, - onPressed: () => showPlacesSearch(context), - ), - ], - backgroundColor: primaryColor, - title: LocalText( - context, - 'customer.list.title', - color: Colors.white, - fontSize: 20, - ), - ), - floatingActionButton: FloatingActionButton.extended( - onPressed: () { - Navigator.of(context).push(BottomUpPageRoute(InvitationPage())); - }, - icon: Icon(Icons.add), - label: Text(AppTranslations.of(context).text("customer.invite")), - backgroundColor: primaryColor, - ), - body: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: customerModel.customers.length, - itemBuilder: (BuildContext context, int index) { - User user = customerModel.customers[index]; - return Stack( - children: [ - InkWell( - onTap: () { - Navigator.of(context).push( - BottomUpPageRoute(CustomerEditor(customer: user))); - }, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Icon( - Feather.user, - color: primaryColor, - size: 40, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - new Text( - user.name, - style: new TextStyle( - fontSize: 15.0, - color: primaryColor), - ), - Padding( - padding: - const EdgeInsets.only(top: 8.0), - child: new Text( - user.phoneNumber, - style: new TextStyle( - fontSize: 15.0, - color: Colors.grey), - ), - ), - ], - ), - ), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.only(right: 10), - child: getStatus(user.status), - ), - ], - ), - ), - ], - ); - }), - ), - ); - } -} diff --git a/lib/pages/delivery/delivery_item.dart b/lib/pages/delivery/delivery_item.dart deleted file mode 100644 index c02418f..0000000 --- a/lib/pages/delivery/delivery_item.dart +++ /dev/null @@ -1,519 +0,0 @@ -import 'dart:io'; -import 'dart:typed_data'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:quiver/async.dart'; -import 'package:fcs/model/do_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/po_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/pages/do/photo_page.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/widget/img_file.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../../fcs/common/pages/util.dart'; - -class DeliveryItem extends StatefulWidget { - final DOSubmission doSubmission; - const DeliveryItem({this.doSubmission}); - @override - _DeliveryItemState createState() => _DeliveryItemState(); -} - -class _DeliveryItemState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy'); - final numberFormatter = new NumberFormat("#,###"); - - bool _isLoading = false; - TextEditingController _date = new TextEditingController(); - TextEditingController _number = new TextEditingController(); - TextEditingController _licence = new TextEditingController(); - TextEditingController _driver = new TextEditingController(); - TextEditingController _carNo = new TextEditingController(); - TextEditingController _type = new TextEditingController(); - TextEditingController _name = new TextEditingController(); - TextEditingController _bizName = new TextEditingController(); - TextEditingController _storage = new TextEditingController(); - TextEditingController _comment = new TextEditingController(); - DOSubmission doObj = DOSubmission(); - int _count; - DateTime _result; - File storageChargeFile; - File receiptImageFile; - - @override - void initState() { - super.initState(); - - var mainModel = Provider.of(context, listen: false); - var doModel = Provider.of(context, listen: false); - - doObj = widget.doSubmission; - _date.text = doObj.deliveryDate != null - ? dateFormatter.format(doObj.deliveryDate) - : ""; - _number.text = doObj.doNumber.toString(); - _licence.text = doObj.driverLicenseNumber; - _driver.text = doObj.driverName; - _carNo.text = doObj.carNo; - _type.text = doObj.type; - _name.text = doObj.userName; - _bizName.text = doObj.bizName; - _storage.text = doObj.storageCharge == null - ? "" - : numberFormatter.format(doObj.storageCharge); - _comment.text = doObj.comment; - - if (doObj.deliveryStatus == 'initiated') { - _count = doModel.timber; - Duration diff = DateTime.now().difference(doObj.deliveryInitiatedTime); - - if (diff.inMinutes < mainModel.setting.deliveryStartWaitMin) { - var time = mainModel.setting.deliveryStartWaitMin - diff.inMinutes; - new CountdownTimer( - new Duration(minutes: time), new Duration(seconds: 1)) - .listen((data) { - if (mounted) { - setState(() { - _count = data.remaining.inSeconds; - doModel.addTimber(_count); - }); - } - }); - } - } else { - _count = 0; - } - _load(); - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - bool isBuyer = mainModel.user.isBuyer(); - String formattedTime; - if (doObj.deliveryStatus == 'initiated') { - _result = DateTime( - doObj.deliveryInitiatedTime.year, - doObj.deliveryInitiatedTime.month, - doObj.deliveryInitiatedTime.day, - doObj.deliveryInitiatedTime.hour, - doObj.deliveryInitiatedTime.minute, - _count); - formattedTime = DateFormat.ms().format(_result); - } - - final dateBox = Container( - padding: EdgeInsets.only(left: 20, top: 15), - child: Row( - children: [ - LocalText(context, "do.date"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _date.text, - style: textStyle, - ), - ) - ], - ), - ); - - final numberBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.do_num"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _number.text, - style: textStyle, - ), - ) - ], - ), - ); - final driverBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.driver"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _driver.text, - style: textStyle, - ), - ) - ], - ), - ); - final carNoBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.car"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _carNo.text, - style: textStyle, - ), - ) - ], - ), - ); - final licenceBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.licence"), - ImageFile( - enabled: false, - title: "Image", - initialImgUrl: doObj.driverLicenceUrl, - onFile: (file) {}), - ], - ), - ); - final statusBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.status"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doObj.status, - style: doObj.isPending - ? textHighlightBlueStyle - : doObj.isApproved - ? textHighlightGreenStyle - : textHighlightRedStyle, - ), - ), - ], - ), - ); - final deliveryStatusBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.delivery.status"), - Container( - padding: EdgeInsets.only(left: 10, right: 15), - child: Text( - doObj.getDeliveryStatus, - style: textStyle, - ), - ), - doObj.deliveryStatus == 'initiated' - ? Text( - "(can start in $formattedTime)", - style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold), - ) - : Container() - ], - ), - ); - - final typeBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.type"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _type.text, - style: textStyle, - ), - ) - ], - ), - ); - - final userNameBox = Container( - padding: EdgeInsets.only(top: 5, left: 20), - child: Row( - children: [ - LocalText(context, "do.name"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _name.text, - style: textStyle, - ), - ) - ], - ), - ); - - final bizNameBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.biz"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _bizName.text, - style: textStyle, - ), - ) - ], - ), - ); - - final receiptImagebox = Container( - padding: EdgeInsets.only(left: 20, top: 0), - child: Row(children: [ - LocalText(context, "do.receipt"), - Container( - padding: EdgeInsets.only(left: 10), - child: ImageFile( - enabled: true, - initialImgUrl: doObj.doReceiptUrl, - title: "Receipt File", - onFile: (file) { - this.receiptImageFile = file; - }, - ), - ), - ])); - - final storageBox = Container( - padding: EdgeInsets.only(left: 20), - child: Row( - children: [ - LocalText(context, "do.storage_charge"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _storage.text, - style: textStyle, - ), - ) - ], - ), - ); - final storagePaymentBox = Container( - padding: EdgeInsets.only(left: 20), - child: Row(children: [ - LocalText(context, "do.storage_receipt"), - ImageFile( - enabled: false, - title: "Receipt File", - initialImgUrl: this.doObj.storageReceiptUrl, - onFile: (file) { - this.storageChargeFile = file; - }), - ])); - - final commentBox = Container( - padding: EdgeInsets.only(top: 5, left: 20), - child: Row( - children: [ - LocalText(context, "do.comment"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _comment.text, - style: textStyle, - ), - ) - ], - ), - ); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("delivery"), - style: Provider.of(context).isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode')), - actions: [ - isBuyer - ? Container() - : PopupMenuButton( - onSelected: _select, - itemBuilder: (context) => List.from([ - PopupMenuItem( - enabled: this.doObj.isApproved, - value: 5, - child: Text("End Delivery"), - ), - ]), - ), - ], - ), - body: Container( - padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10), - child: Card( - elevation: 23, - child: ListView( - children: [ - Column( - children: [ - dateBox, - Divider(), - numberBox, - Divider(), - userNameBox, - Divider(), - bizNameBox, - Divider(), - typeBox, - Divider(), - statusBox, - Divider(), - doObj.comment == null || doObj.comment == '' - ? Container() - : commentBox, - doObj.comment == null || doObj.comment == '' - ? Container() - : Divider(), - driverBox, - Divider(), - carNoBox, - Divider(), - licenceBox, - Divider(), - receiptImagebox, - Divider(), - doObj.hasStorageCharge() ? storageBox : Container(), - doObj.hasStorageCharge() ? Divider() : Container(), - doObj.hasStorageCharge() - ? storagePaymentBox - : Container(), - doObj.isApproved || doObj.isClosed - ? deliveryStatusBox - : Container(), - doObj.isApproved || doObj.isClosed - ? Divider() - : Container(), - Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 40, - columns: [ - MyDataColumn( - label: LocalText(context, "do.product"), - ), - MyDataColumn( - label: LocalText(context, "do.storage"), - ), - MyDataColumn( - label: LocalText(context, "do.quantity"), - numeric: true), - ], - rows: getProductRow(doObj.doLines), - ), - ), - ), - SizedBox( - height: 15, - ) - ], - ), - ], - ), - ), - )), - ); - } - - List getProductRow(List doLines) { - ProductModel productModel = Provider.of(context); - if (doLines.isNotEmpty) { - doLines.forEach((d) { - productModel.products.forEach((p) { - if (p.id == d.productID) { - d.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - doLines.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - } - return doLines.map((d) { - return MyDataRow( - cells: [ - MyDataCell( - new Text( - d.productName, - style: textStyle, - ), - ), - MyDataCell( - new Text(d.storageName, style: textStyle), - ), - MyDataCell(NumberCell(d.qty)), - ], - ); - }).toList(); - } - - _select(s) { - if (s == 5) { - if (receiptImageFile == null) { - showMsgDialog(context, "Error", "Please insert delivery receipt file"); - return; - } - showConfirmDialog(context, "delivery.confirm", () { - _endDelivery(receiptImageFile); - }); - } - } - - Future _load() async { - POSubmissionModel poModel = - Provider.of(context, listen: false); - var _doSub = await poModel.loadDOLines(doObj); - setState(() { - doObj.doLines = _doSub.doLines; - }); - } - - _endDelivery(dynamic receiptFile) async { - Uint8List bytesPhoto = receiptFile.readAsBytesSync() as Uint8List; - - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.endDelivery(doObj, bytesPhoto); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/delivery/delivery_list.dart b/lib/pages/delivery/delivery_list.dart index 52163de..1e958b6 100644 --- a/lib/pages/delivery/delivery_list.dart +++ b/lib/pages/delivery/delivery_list.dart @@ -1,40 +1,23 @@ +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/box/model/box_model.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/model/delivery_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/delivery/delivery_item.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/popup_menu.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/popupmenu.dart'; -import 'package:fcs/widget/progress.dart'; -class DeliveryList extends StatefulWidget { +import 'delivery_list_row.dart'; + +class DeliverList extends StatefulWidget { @override - _DeliveryListState createState() => _DeliveryListState(); + _DeliverListState createState() => _DeliverListState(); } -class _DeliveryListState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy'); - final double dotSize = 10.0; - DateTime _selectedDate = DateTime.now(); - String status; - int _selectedIndex = 0; - int _dateIndex = 0; +class _DeliverListState extends State { bool _isLoading = false; @override void initState() { super.initState(); - - var doModel = Provider.of(context, listen: false); - _selectedIndex = doModel.popupMenu.index; - _dateIndex = doModel.dateIndex; - _selectedDate = doModel.selectedDate; } @override @@ -42,233 +25,104 @@ class _DeliveryListState extends State { super.dispose(); } - Future _selectDate(BuildContext context) async { - var deliveryModel = Provider.of(context); - - final DateTime picked = await showDatePicker( - context: context, - initialDate: _selectedDate, - firstDate: DateTime(2015, 8), - lastDate: DateTime(2101), - builder: (BuildContext context, Widget child) { - return Theme( - data: ThemeData.light().copyWith( - primaryColor: primaryColor, //Head background - accentColor: secondaryColor, //selection color - dialogBackgroundColor: Colors.white, //Background color - ), - child: child, - ); - }, - ); - - if (picked != null) { - var pickedDate = new DateTime(picked.year, picked.month, picked.day); - var currentDate = new DateTime( - DateTime.now().year, DateTime.now().month, DateTime.now().day); - this._dateIndex = pickedDate == currentDate ? 0 : 1; - setState(() { - _selectedDate = picked; - deliveryModel.filterData( - status, _selectedDate, _selectedIndex, _dateIndex); - }); - } - } - @override Widget build(BuildContext context) { - var deliveryModel = Provider.of(context); - MainModel mainModel = Provider.of(context); - bool isBuyer = mainModel.user.isBuyer(); - var languageModle = Provider.of(context); - - return Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text( - AppTranslations.of(context).text("delivery.title"), - style: languageModle.isEng - ? TextStyle() - : TextStyle(fontFamily: 'MyanmarUnicode'), - ), - actions: [ - InkWell( - child: Container( - padding: EdgeInsets.only(top: 15), - child: Stack( - children: [ - Image.asset( - "assets/date_filter.png", + return LocalProgress( + inAsyncCall: _isLoading, + child: DefaultTabController( + length: 2, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + title: Text(AppTranslations.of(context).text("delivery")), + actions: [ + IconButton( + icon: Icon( + Icons.search, color: Colors.white, - width: 25, ), - _dateIndex == 0 - ? Container() - : Positioned( - bottom: 15, - right: 10, - child: Container( - width: 10, - height: 10, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: secondaryColor, - ), - ), - ) + iconSize: 30, + // onPressed: () => showPlacesSearch(context), + ), + ], + bottom: TabBar( + unselectedLabelColor: Colors.grey, + tabs: [ + Tab( + text: "Upcoming", + ), + Tab(text: "Delivered"), ], ), ), - onTap: () => _selectDate(context), - ), - PopupMenuButton( - elevation: 3.2, - onSelected: (selected) { - setState(() { - _selectedIndex = selected.index; - }); - if (selected.status == 'All') { - status = null; - } else { - status = selected.status; - } - deliveryModel.filterData( - status, _selectedDate, _selectedIndex, _dateIndex); - }, - icon: Container( - width: 30, - height: 30, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - ), - child: Stack( - fit: StackFit.expand, - children: [ - Icon( - Icons.filter_list, - color: primaryColor, - ), - _selectedIndex != 0 - ? Positioned( - bottom: 0, - right: 0, - child: Container( - width: 10, - height: 10, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: secondaryColor, - ), - ), - ) - : Container() - ], - )), - itemBuilder: (BuildContext context) { - return deliveryStatusMenu.map((PopupMenu choice) { - return PopupMenuItem( - value: choice, - child: Row( - children: [ - Text(choice.status), - SizedBox( - width: 10, - ), - _selectedIndex != null && _selectedIndex == choice.index - ? Icon( - Icons.check, - color: Colors.grey, - ) - : Container(), - ], - ), - ); - }).toList(); - }), - ], - ), - body: LocalProgress( - inAsyncCall: _isLoading, - child: new ListView.builder( - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: deliveryModel.dos.length, - itemBuilder: (BuildContext context, int index) { - return Card( - elevation: 10, - color: Colors.white, - child: Row( - children: [ - Expanded( - child: InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => DeliveryItem( - doSubmission: deliveryModel.dos[index])), - ); - }, - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 16.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Image.asset( - "assets/truck.png", - width: 50, - height: 50, - color: primaryColor, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Text( - deliveryModel.dos[index].doNumber, - style: new TextStyle( - fontSize: 12.0, color: Colors.black), - ), - new Text( - deliveryModel.dos[index].deliveryDate == - null - ? "" - : dateFormatter.format(deliveryModel - .dos[index].deliveryDate), - style: new TextStyle( - fontSize: 14.0, color: Colors.grey), - ), - !isBuyer - ? new Text( - deliveryModel.dos[index].userName, - style: new TextStyle( - fontSize: 12.0, - color: Colors.grey), - ) - : Container() - ], - ), - ), - Container( - padding: EdgeInsets.only(right: 15), - child: - getStatus(deliveryModel.dos[index].status), - ), - ], - ), - ), - ), - ), - ], - ), - ); - }), + // floatingActionButton: FloatingActionButton.extended( + // onPressed: () { + // _newPickup(); + // }, + // icon: Icon(Icons.add), + // label: Text(AppTranslations.of(context).text("boxes.new")), + // backgroundColor: primaryColor, + // ), + body: TabBarView( + children: [ + _upComing(), + _completed(), + ], + )), ), ); } + + Widget _upComing() { + var boxModel = Provider.of(context); + return Column( + children: [ + Expanded( + child: new ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(top: 15), + shrinkWrap: true, + itemCount: boxModel.upcoming.length, + itemBuilder: (BuildContext context, int index) { + return DeliveryListRow( + box: boxModel.upcoming[index], + isReadOnly: false, + ); + }), + ), + ], + ); + } + + Widget _completed() { + var boxModel = Provider.of(context); + return Column( + children: [ + Expanded( + child: new ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(top: 15), + shrinkWrap: true, + itemCount: boxModel.completed.length, + itemBuilder: (BuildContext context, int index) { + return DeliveryListRow( + box: boxModel.completed[index], + isReadOnly: false, + ); + }), + ), + ], + ); + } } diff --git a/lib/pages_fcs/delivery_list_row.dart b/lib/pages/delivery/delivery_list_row.dart similarity index 94% rename from lib/pages_fcs/delivery_list_row.dart rename to lib/pages/delivery/delivery_list_row.dart index f08a564..ac18963 100644 --- a/lib/pages_fcs/delivery_list_row.dart +++ b/lib/pages/delivery/delivery_list_row.dart @@ -1,7 +1,7 @@ -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/pages_fcs/box_editor.dart'; -import 'package:fcs/vo/box.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:fcs/domain/entities/box.dart'; +import 'package:fcs/pages/box/box_editor.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; diff --git a/lib/pages/device_list.dart b/lib/pages/device_list.dart deleted file mode 100644 index c51ddf3..0000000 --- a/lib/pages/device_list.dart +++ /dev/null @@ -1,194 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/device_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/vo/device.dart'; -import 'package:fcs/vo/popup_menu.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/popupmenu.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import '../fcs/common/pages/util.dart'; - -class PhoneDeviceList extends StatefulWidget { - @override - _PhoneDeviceListState createState() => _PhoneDeviceListState(); -} - -class _PhoneDeviceListState extends State { - final double dotSize = 15.0; - PopupMenu selectedChoices = deviceMenu[0]; - bool _isLoading = false; - PhoneDevice phoneDevice = new PhoneDevice(); - - @override - Widget build(BuildContext context) { - var deviceModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'profile.devices', - color: Colors.white, - fontSize: 20, - ), - ), - body: new ListView.builder( - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: deviceModel.devices.length, - itemBuilder: (BuildContext context, int index) { - return Card( - elevation: 10, - color: Colors.white, - child: InkWell( - onTap: () {}, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 7.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 15.0 - dotSize / 2), - child: Padding( - padding: EdgeInsets.all(5.0), - child: Image.asset( - "assets/device.png", - width: 40, - height: 40, - color: primaryColor, - ), - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Text( - deviceModel.devices[index].name, - style: new TextStyle( - fontSize: 13.0, color: Colors.black), - ), - ], - ), - ), - ], - ), - ), - ), - PopupMenuButton( - elevation: 3.2, - onSelected: _select, - itemBuilder: (BuildContext context) { - this.phoneDevice = deviceModel.devices[index]; - return deviceMenu.map((PopupMenu choice) { - return PopupMenuItem( - enabled: choice.index == 0 - ? deviceModel.devices[index].isDeviceOn() - ? false - : true - : choice.index == 1 - ? deviceModel.devices[index] - .isDeviceOn() - ? true - : false - : true, - value: choice, - child: Text(choice.status), - ); - }).toList(); - }), - ], - ), - ), - ); - }), - ), - ); - } - - void _select(PopupMenu choice) async { - selectedChoices = choice; - if (choice.index == 0) { - showConfirmDialog(context, "device.confirm", () { - _confirm(); - }); - } else if (choice.index == 1) { - showConfirmDialog(context, "device.logout", () { - _logout(); - }); - } else if (choice.index == 2) { - showConfirmDialog(context, "device.set_primary", () { - _setPrimaryDevice(); - }); - } - } - - _confirm() async { - setState(() { - _isLoading = true; - }); - - try { - var deviceModel = Provider.of(context); - var mainModel = Provider.of(context); - - await deviceModel.confirmDevice( - mainModel.user.phoneNumber, this.phoneDevice.id); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _logout() async { - setState(() { - _isLoading = true; - }); - - try { - var deviceModel = Provider.of(context); - var mainModel = Provider.of(context); - - await deviceModel.logoutDevice( - mainModel.user.phoneNumber, this.phoneDevice.id); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _setPrimaryDevice() async { - setState(() { - _isLoading = true; - }); - - try { - var deviceModel = Provider.of(context); - var mainModel = Provider.of(context); - await deviceModel.setPrimaryDevice( - mainModel.user.phoneNumber, this.phoneDevice.id); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/discount_editor.dart b/lib/pages/discount/discount_editor.dart similarity index 93% rename from lib/pages/discount_editor.dart rename to lib/pages/discount/discount_editor.dart index a3c3b59..b7a2b68 100644 --- a/lib/pages/discount_editor.dart +++ b/lib/pages/discount/discount_editor.dart @@ -1,14 +1,11 @@ -import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/discount.dart'; +import 'package:fcs/domain/entities/discount.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; class DiscountEditor extends StatefulWidget { final Discount discount; diff --git a/lib/pages/discount_list.dart b/lib/pages/discount/discount_list.dart similarity index 92% rename from lib/pages/discount_list.dart rename to lib/pages/discount/discount_list.dart index b22a149..0a1a9f6 100644 --- a/lib/pages/discount_list.dart +++ b/lib/pages/discount/discount_list.dart @@ -1,13 +1,13 @@ -import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/pages/discount_editor.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/discount/model/discount_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; -import '../fcs/common/helpers/theme.dart'; +import 'discount_editor.dart'; class DiscountList extends StatefulWidget { @override diff --git a/lib/model/discount_model.dart b/lib/pages/discount/model/discount_model.dart similarity index 91% rename from lib/model/discount_model.dart rename to lib/pages/discount/model/discount_model.dart index 830f580..4964d07 100644 --- a/lib/model/discount_model.dart +++ b/lib/pages/discount/model/discount_model.dart @@ -1,6 +1,5 @@ -import 'package:fcs/vo/discount.dart'; - -import 'base_model.dart'; +import 'package:fcs/domain/entities/discount.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; class DiscountModel extends BaseModel { List get discounts { diff --git a/lib/pages/do/do_approve.dart b/lib/pages/do/do_approve.dart deleted file mode 100644 index 863830c..0000000 --- a/lib/pages/do/do_approve.dart +++ /dev/null @@ -1,909 +0,0 @@ -import 'dart:typed_data'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:quiver/async.dart'; -import 'package:fcs/model/do_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/log_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/po_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/pages/do/photo_page.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/img_file.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../document_log_page.dart'; -import '../../fcs/common/pages/util.dart'; -import 'do_files.dart'; -import 'do_storage_item.dart'; - -class DOApproval extends StatefulWidget { - final DOSubmission doSubmission; - const DOApproval({this.doSubmission}); - @override - _DOApprovalState createState() => _DOApprovalState(); -} - -class _DOApprovalState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy'); - final numberFormatter = new NumberFormat("#,###"); - var doDateFormatter = new DateFormat('dd MMM yyyy - hh:mm a'); - - bool _isLoading = false; - TextEditingController _date = new TextEditingController(); - TextEditingController _doDate = new TextEditingController(); - TextEditingController _number = new TextEditingController(); - TextEditingController _licence = new TextEditingController(); - TextEditingController _driver = new TextEditingController(); - TextEditingController _carNo = new TextEditingController(); - TextEditingController _type = new TextEditingController(); - TextEditingController _name = new TextEditingController(); - TextEditingController _bizName = new TextEditingController(); - TextEditingController _storage = new TextEditingController(); - TextEditingController _comment = new TextEditingController(); - DOSubmission doObj = DOSubmission(); - int _count; - DateTime _result; - DOFiles files = DOFiles(); - List doLines = new List(); - - @override - void initState() { - super.initState(); - - var mainModel = Provider.of(context, listen: false); - var doModel = Provider.of(context, listen: false); - - doObj = widget.doSubmission; - _date.text = doObj.deliveryDate != null - ? dateFormatter.format(doObj.deliveryDate) - : ""; - _doDate.text = - doObj.doDate != null ? doDateFormatter.format(doObj.doDate) : ""; - _number.text = doObj.doNumber.toString(); - _licence.text = doObj.driverLicenseNumber; - _driver.text = doObj.driverName; - _carNo.text = doObj.carNo; - _type.text = doObj.type; - _name.text = doObj.userName; - _bizName.text = doObj.bizName; - _storage.text = doObj.storageCharge == null - ? "" - : numberFormatter.format(doObj.storageCharge); - _comment.text = doObj.comment; - - if (doObj.deliveryStatus == 'initiated') { - _count = doModel.timber; - - Duration diff = DateTime.now().difference(doObj.deliveryInitiatedTime); - - if (diff.inMinutes < mainModel.setting.deliveryStartWaitMin) { - var time = mainModel.setting.deliveryStartWaitMin - diff.inMinutes; - new CountdownTimer( - new Duration(minutes: time), new Duration(seconds: 1)) - .listen((data) { - if (mounted) { - setState(() { - _count = data.remaining.inSeconds; - doModel.addTimber(_count); - }); - } - }); - } - } else { - _count = 0; - } - - _load(); - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - bool isBuyer = mainModel.user.isBuyer(); - var logModel = Provider.of(context); - String formattedTime; - if (doObj.deliveryStatus == 'initiated') { - _result = DateTime( - doObj.deliveryInitiatedTime.year, - doObj.deliveryInitiatedTime.month, - doObj.deliveryInitiatedTime.day, - doObj.deliveryInitiatedTime.hour, - doObj.deliveryInitiatedTime.minute, - _count); - formattedTime = DateFormat.ms().format(_result); - } - - final doDateBox = Container( - padding: EdgeInsets.only(left: 20, top: 15), - child: Row( - children: [ - LocalText(context, "do.do_date"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _doDate.text, - style: textStyle, - ), - ) - ], - ), - ); - - final dateBox = Container( - padding: EdgeInsets.only(left: 20, top: 8), - child: Row( - children: [ - LocalText(context, "do.date"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _date.text, - style: textStyle, - ), - ) - ], - ), - ); - - final numberBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.do_num"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _number.text, - style: textStyle, - ), - ) - ], - ), - ); - final driverBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.driver"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _driver.text, - style: textStyle, - ), - ) - ], - ), - ); - final carNoBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.car"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _carNo.text, - style: textStyle, - ), - ) - ], - ), - ); - final licenceBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.licence"), - ImageFile( - enabled: false, - title: "Image", - initialImgUrl: doObj.driverLicenceUrl, - onFile: (file) {}), - ], - ), - ); - final statusBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.status"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doObj.status, - style: doObj.isPending - ? textHighlightBlueStyle - : doObj.isApproved - ? textHighlightGreenStyle - : textHighlightRedStyle, - ), - ), - ], - ), - ); - final deliveryStatusBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.delivery.status"), - Container( - padding: EdgeInsets.only(left: 10, right: 15), - child: Text( - doObj.getDeliveryStatus, - style: textStyle, - ), - ), - doObj.deliveryStatus == 'initiated' - ? Text( - "(can start in $formattedTime)", - style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold), - ) - : Container() - ], - ), - ); - - final typeBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.type"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _type.text, - style: textStyle, - ), - ) - ], - ), - ); - - final userNameBox = Container( - padding: EdgeInsets.only(top: 5, left: 20), - child: Row( - children: [ - LocalText(context, "do.name"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _name.text, - style: textStyle, - ), - ) - ], - ), - ); - - final bizNameBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.biz"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _bizName.text, - style: textStyle, - ), - ) - ], - ), - ); - - final driverImgUrlBox = Container( - padding: EdgeInsets.only(left: 20), - child: Row(children: [ - LocalText(context, "do.driver.image"), - Container( - padding: EdgeInsets.only(left: 10), - child: ImageFile( - enabled: !isBuyer && doObj.deliveryStatus == null, - initialImgUrl: doObj.driverImgUrl, - title: "Image", - imageSource: ImageSource.camera, - onFile: (file) { - doObj.driverImg = file; - }), - ), - ])); - - final receiptImagebox = Container( - padding: EdgeInsets.only(left: 20, top: 0), - child: Row(children: [ - LocalText(context, "do.receipt"), - Container( - padding: EdgeInsets.only(left: 10), - child: ImageFile( - enabled: false, - initialImgUrl: doObj.doReceiptUrl, - title: "Receipt", - ), - ), - ])); - - final deliveryInitTimeBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.delivery.init.time"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doObj.deliveryInitTime, - style: textStyle, - ), - ) - ], - ), - ); - - final storageBox = Container( - padding: EdgeInsets.only(left: 20), - child: Row( - children: [ - LocalText(context, "do.storage_charge"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _storage.text, - style: textStyle, - ), - ) - ], - ), - ); - final storagePaymentBox = Container( - padding: EdgeInsets.only(left: 20), - child: Row(children: [ - LocalText(context, "do.storage_receipt"), - ImageFile( - enabled: mainModel.user.isBuyer() ? true : false, - title: "Receipt File", - initialImgUrl: this.doObj.storageReceiptUrl, - onFile: (file) { - this.files.setStorageChargeFile = file; - }), - ])); - - final commentBox = Container( - padding: EdgeInsets.only(top: 5, left: 20), - child: Row( - children: [ - LocalText(context, "do.comment"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _comment.text, - style: textStyle, - ), - ) - ], - ), - ); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("do"), - style: Provider.of(context).isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode')), - actions: [ - mainModel.showHistoryBtn() - ? IconButton( - icon: Icon(Icons.history), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - DocumentLogPage(docID: doObj.id)), - ); - }, - ) - : Container(), - isBuyer - ? doObj.isPending - ? PopupMenuButton( - onSelected: _selectBuyer, - itemBuilder: (context) => List.from([ - PopupMenuItem( - enabled: this.doObj.isPending && - this.doObj.storageCharge > 0, - value: 1, - child: Text("Update DO"), - ), - PopupMenuItem( - enabled: this.doObj.isPending, - value: 2, - child: Text("Cancel DO"), - ), - ])) - : Container() - : PopupMenuButton( - onSelected: _select, - itemBuilder: (context) => List.from([ - PopupMenuItem( - enabled: this.doObj.isPending, - value: 1, - child: Text("Approve DO"), - ), - PopupMenuItem( - enabled: this.doObj.isPending, - value: 2, - child: Text("Reject DO"), - ), - PopupMenuItem( - enabled: - this.doObj.isApproved && mainModel.user.isOwner(), - value: 6, - child: Text("Cancel DO"), - ) - ]), - ), - ], - ), - body: Container( - padding: - EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10), - child: Card( - elevation: 23, - child: ListView( - children: [ - Column( - children: [ - doDateBox, - Divider(), - dateBox, - Divider(), - numberBox, - Divider(), - userNameBox, - Divider(), - bizNameBox, - Divider(), - typeBox, - Divider(), - statusBox, - Divider(), - doObj.comment == null || doObj.comment == '' - ? Container() - : commentBox, - doObj.comment == null || doObj.comment == '' - ? Container() - : Divider(), - driverBox, - Divider(), - carNoBox, - Divider(), - licenceBox, - Divider(), - receiptImagebox, - Divider(), - doObj.hasStorageCharge() ? storageBox : Container(), - doObj.hasStorageCharge() ? Divider() : Container(), - doObj.hasStorageCharge() - ? storagePaymentBox - : Container(), - doObj.isApproved || doObj.isClosed - ? deliveryStatusBox - : Container(), - doObj.isApproved || doObj.isClosed - ? Divider() - : Container(), - Container( - padding: EdgeInsets.only(top: 10), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Center( - child: LocalText( - context, - 'do.products', - fontSize: 14, - fontWeight: FontWeight.bold, - underline: true, - color: secondaryColor, - ), - ), - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 40, - columns: [ - MyDataColumn( - label: LocalText(context, "do.product"), - ), - MyDataColumn( - label: LocalText(context, "do.storage"), - ), - MyDataColumn( - label: - LocalText(context, "do.quantity"), - numeric: true), - ], - rows: getProductRow(doObj.doLines), - ), - ), - ], - ), - ), - SizedBox( - height: 15, - ), - getPOProductTable() - ], - ), - ], - ), - )), - )); - } - - List getProductRow(List doLines) { - MainModel mainModel = Provider.of(context); - ProductModel productModel = Provider.of(context); - bool isBuyer = mainModel.user.isBuyer(); - - if (doLines.isNotEmpty) { - doLines.forEach((d) { - productModel.products.forEach((p) { - if (p.id == d.productID) { - d.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - doLines.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - } - return doLines.map((d) { - return MyDataRow( - onSelectChanged: (bool selected) async { - if (isBuyer) return; - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => DOStorageItem( - doLine: d, - onSave: (storageID, storageName) { - setState(() { - d.storageID = storageID; - d.storageName = storageName; - }); - }, - )), - ); - }, - cells: [ - MyDataCell( - new Text( - d.productName, - style: textStyle, - ), - ), - MyDataCell( - new Text(d.storageName, style: textStyle), - ), - MyDataCell(NumberCell(d.qty)), - ], - ); - }).toList(); - } - - Widget getPOProductTable() { - return Container( - padding: EdgeInsets.only(top: 10), - child: Column( - children: [ - Center( - child: LocalText(context, 'po.info', - fontSize: 14, - fontWeight: FontWeight.bold, - underline: true, - color: secondaryColor), - ), - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 20, - columns: [ - MyDataColumn(label: LocalText(context, "po.number")), - MyDataColumn(label: LocalText(context, "po.product")), - MyDataColumn( - label: LocalText(context, "do.po_qty"), - numeric: true, - ), - MyDataColumn( - label: LocalText(context, "do.po_balance_qty"), - numeric: true, - ), - MyDataColumn( - label: LocalText(context, "po.retrieved.amount"), - numeric: true, - ), - MyDataColumn( - label: LocalText(context, "do.do_qty"), - numeric: true, - ), - ], - rows: getPOProductRow(), - ), - ), - ], - ), - ); - } - - List getPOProductRow() { - ProductModel productModel = Provider.of(context); - if (doObj.dopoLies.isNotEmpty) { - doObj.dopoLies.sort((p1, p2) => p1.poNumber.compareTo(p2.poNumber)); - - doObj.dopoLies.forEach((d) { - productModel.products.forEach((p) { - if (p.id == d.productID) { - d.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - doObj.dopoLies.sort((p1, p2) { - if (p1.displayOrder != p2.displayOrder) - return p1.displayOrder.compareTo(p2.displayOrder); - return p1.poNumber.compareTo(p2.poNumber); - }); - } - return doObj.dopoLies.map((d) { - return MyDataRow( - cells: [ - MyDataCell( - new Text( - d.poNumber, - style: textStyle, - ), - ), - MyDataCell( - new Text( - d.productName, - style: textStyle, - ), - ), - MyDataCell(NumberCell(d.poQty)), - MyDataCell(NumberCell(d.poBalAtCreate)), - MyDataCell(NumberCell(d.getPoBalanceQtyAtCreate)), - MyDataCell(NumberCell(d.doQty)), - ], - ); - }).toList(); - } - - _select(s) { - if (s == 1) { - showConfirmDialog(context, "do.approve.confirm", () { - _approve(); - }); - } else if (s == 2) { - showCommentDialog(context, (comment) { - doObj.comment = comment; - _reject(); - }); - } else if (s == 5) { - showConfirmDialog(context, "do.end.confirm", () { - _endDelivery(); - }); - } else if (s == 6) { - showConfirmDialog(context, "do.cancel.confirm", () { - _cancelDelivery(); - }); - } - } - - _selectBuyer(s) { - if (s == 1) { - showConfirmDialog(context, "do.confirm", () { - _submit(); - }); - } else if (s == 2) { - showConfirmDialog(context, "do.cancel.confirm", () { - _cancelDelivery(); - }); - } - } - - Future _load() async { - POSubmissionModel poModel = - Provider.of(context, listen: false); - DOModel doModel = Provider.of(context, listen: false); - - var _doSub = await poModel.loadDOLines(doObj); - _doSub = await doModel.loadDOPOLines(_doSub); - // set po balance - List pos = _doSub.getPOs(); - for (var po in pos) { - List poLines = await poModel.loadPOLines(po); - _doSub.setDOPOLineBalance(po, poLines); - } - if (mounted) { - setState(() { - doObj.doLines = _doSub.doLines; - doObj.dopoLies = _doSub.dopoLies; - }); - } - } - - _approve() async { - if (doObj.doLines.any((l) => l.storageID.isEmpty)) { - showMsgDialog(context, "Error", "Storage required for every product"); - return; - } - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.approveDO(doObj); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _reject() async { - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.rejectDO(doObj); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _initDelivery() async { - if (doObj.driverImg == null) { - showMsgDialog(context, "Error", "Please attach driver image"); - return; - } - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.initDelivery(doObj); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _startDelivery() async { - MainModel mainModel = Provider.of(context); - Duration diff = DateTime.now().difference(doObj.deliveryInitiatedTime); - if (diff.inMinutes < mainModel.setting.deliveryStartWaitMin) { - showMsgDialog(context, "Waiting...", - "Can not start delivery, wait for ${mainModel.setting.deliveryStartWaitMin} minutes"); - return; - } - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.startDelivery(doObj); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _endDelivery() async { - var photo = await Navigator.push( - context, - MaterialPageRoute(builder: (context) => PhotoPage()), - ); - if (photo == null) { - return; - } - Uint8List bytesPhoto = photo.readAsBytesSync() as Uint8List; - - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.endDelivery(doObj, bytesPhoto); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _cancelDelivery() async { - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.cancelDO(doObj); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _submit() async { - if (doObj.hasStorageCharge()) { - if (files.storageChargeFile == null && doObj.storageReceiptUrl == '') { - showMsgDialog(context, "Error", "Please insert storage receipt"); - return; - } - } - - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - await doModel.updateDO(doObj, files); - Navigator.pop(context, true); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/do/do_creation_form.dart b/lib/pages/do/do_creation_form.dart deleted file mode 100644 index 843bba4..0000000 --- a/lib/pages/do/do_creation_form.dart +++ /dev/null @@ -1,644 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/do_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/po_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/pages/do/do_product_item.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/img_file.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -import 'do_files.dart'; -import 'po_selection.dart'; - -class DOForm extends StatefulWidget { - final DOSubmission doSubmission; - const DOForm({this.doSubmission}); - @override - _DOFormState createState() => _DOFormState(); -} - -class _DOFormState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy'); - final numberFormatter = new NumberFormat("#,###"); - - TextEditingController _deliveryDate = new TextEditingController(); - TextEditingController _licence = new TextEditingController(); - TextEditingController _driver = new TextEditingController(); - TextEditingController _carNo = new TextEditingController(); - TextEditingController _doStatus = new TextEditingController(); - TextEditingController _storage = new TextEditingController(); - TextEditingController _doNumber = new TextEditingController(); - DOSubmission doSubmission = DOSubmission(); - - bool _isLoading = false; - bool _isNew = true; - final _formKey = GlobalKey(); - int doTypeValue = 0; - DOLine doLine = new DOLine(); - DOFiles files = DOFiles(); - - @override - void initState() { - super.initState(); - - if (widget.doSubmission != null) { - this.doSubmission = widget.doSubmission; - this._isNew = false; - _deliveryDate.text = - dateFormatter.format(widget.doSubmission.deliveryDate); - _licence.text = widget.doSubmission.driverLicenseNumber; - _driver.text = widget.doSubmission.driverName; - _carNo.text = widget.doSubmission.carNo; - _doStatus.text = widget.doSubmission.status; - _storage.text = widget.doSubmission.storageCharge == null - ? "" - : numberFormatter.format(widget.doSubmission.storageCharge); - _doNumber.text = widget.doSubmission.doNumber; - - if (widget.doSubmission.type == 'multiple') { - doTypeValue = 1; - } else { - doTypeValue = 0; - } - this.doLine.action = 'update'; - } else { - this.doLine.action = 'create'; - doSubmission.type = 'single'; - _storage.text = "0"; - } - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - var mainModel = Provider.of(context); - var poModel = Provider.of(context); - - bool isBuyer = mainModel.user.isBuyer(); - - final doNumberBox = Container( - padding: EdgeInsets.only(left: 20, top: 10), - child: Row( - children: [ - LocalText(context, "do.do_num"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _doNumber.text, - style: textStyle, - ), - ) - ], - ), - ); - final _doTypeValueBox = Container( - padding: EdgeInsets.only(left: 20, top: 0), - child: Row( - children: [ - LocalText(context, "do.type"), - Container( - width: 130, - child: RadioListTile( - dense: true, - title: LocalText(context, "do.single"), - value: 0, - groupValue: doTypeValue, - onChanged: handleRadioValueChanged, - activeColor: primaryColor, - ), - ), - Container( - width: 136, - child: RadioListTile( - dense: true, - title: LocalText(context, 'do.multiple'), - value: 1, - groupValue: doTypeValue, - onChanged: handleRadioValueChanged, - activeColor: primaryColor, - )) - ], - ), - ); - - final deliveryDateBox = Container( - padding: EdgeInsets.only(left: 20, right: 15), - child: InkWell( - onTap: () { - DatePicker.showDatePicker(context, - showTitleActions: true, - currentTime: _deliveryDate.text == "" - ? null - : dateFormatter.parse(_deliveryDate.text), - minTime: DateTime.now(), - maxTime: DateTime(2030, 12, 31), onConfirm: (date) { - setState(() { - _deliveryDate.text = dateFormatter.format(date); - doSubmission.deliveryDate = - dateFormatter.parse(_deliveryDate.text); - doSubmission.updateStorageCharge(mainModel.setting); - }); - }, locale: LocaleType.en); - }, - child: TextFormField( - controller: _deliveryDate, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - enabled: false, - keyboardType: TextInputType.datetime, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - labelText: AppTranslations.of(context).text("do.date"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - contentPadding: - EdgeInsets.symmetric(vertical: 10.0, horizontal: 0.0), - icon: Icon( - Icons.date_range, - color: primaryColor, - )), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("do.form.date"); - } - return null; - }, - ), - )); - - final driverBox = Container( - padding: EdgeInsets.only(left: 20, right: 15), - child: TextFormField( - controller: _driver, - autofocus: false, - style: textStyle, - cursorColor: primaryColor, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("do.driver"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - icon: Icon( - Icons.account_box, - color: primaryColor, - )), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("do.form.driver"); - } - return null; - }, - )); - - final carNoBox = Container( - padding: EdgeInsets.only(left: 20, right: 15), - child: TextFormField( - controller: _carNo, - autofocus: false, - style: textStyle, - cursorColor: primaryColor, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("do.car"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - icon: Icon( - Icons.directions_car, - color: primaryColor, - )), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("do.form.car"); - } - return null; - }, - )); - - final doStatusBox = Container( - padding: EdgeInsets.only(left: 20, right: 15), - child: TextFormField( - controller: _doStatus, - autofocus: false, - style: textStyle, - readOnly: true, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Image.asset("assets/status.png", - width: 25, color: primaryColor)), - validator: (value) { - if (value.isEmpty) { - return "Please enter DO Status"; - } - return null; - }, - )); - - final storageBox = Container( - padding: EdgeInsets.only(left: 20, top: 10), - child: Row( - children: [ - LocalText(context, "do.storage_charge"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doSubmission.storageCharge == null - ? "" - : numberFormatter.format(doSubmission.storageCharge), - style: textStyle, - ), - ) - ], - ), - ); - final storagePaymentBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row(children: [ - LocalText(context, "do.storage_receipt"), - ImageFile( - enabled: isBuyer, - title: "Receipt File", - initialImgUrl: this.doSubmission.storageReceiptUrl, - onFile: (file) { - this.files.setStorageChargeFile = file; - }), - ])); - final licesebox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row(children: [ - LocalText(context, "do.licence"), - ImageFile( - enabled: isBuyer, - title: "Image", - initialImgUrl: this.doSubmission.driverLicenceUrl, - onFile: (file) { - this.files.setlicenseFile = file; - }), - ])); - - final poButtun = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row(children: [ - LocalText(context, "po.title"), - IconButton( - onPressed: () async { - POSelection.showPOSelection( - context, poModel.approvedPOs, doSubmission.pos, - ok: (List pos) async { - for (var po in pos) { - po.poLines = await poModel.loadPOLines(po.id); - } - setState(() { - doSubmission.pos = pos; - doSubmission.loadPOs(); - doSubmission.updateStorageCharge(mainModel.setting); - }); - }); - }, - icon: Icon(Icons.edit)), - ])); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("do"), - style: Provider.of(context).isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode')), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - if (!_formKey.currentState.validate()) return; - showConfirmDialog(context, "do.confirm", () { - _submit(mainModel); - }); - }, - ) - ], - ), - body: Form( - key: _formKey, - child: Container( - child: ListView( - children: [ - Container( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - this.doSubmission.doNumber != null - ? doNumberBox - : Container(), - this.doSubmission.hasStorageCharge() - ? storageBox - : Container(), - this.doSubmission.hasStorageCharge() - ? storagePaymentBox - : Container(), - _doTypeValueBox, - deliveryDateBox, - driverBox, - licesebox, - carNoBox, - poButtun, - widget.doSubmission == null ? Container() : doStatusBox, - getProductTable(), - getPOProductTable(), - ], - ), - ), - ], - ), - ), - )), - ); - } - - void handleRadioValueChanged(int value) { - var mainModel = Provider.of(context, listen: false); - setState(() { - doSubmission.type = value == 0 ? 'single' : 'multiple'; - doTypeValue = value; - doSubmission.loadPOs(); - doSubmission.updateStorageCharge(mainModel.setting); - switch (doTypeValue) { - case 0: - break; - case 1: - break; - } - }); - } - - Widget getProductTable() { - return Container( - padding: EdgeInsets.only(top: 10), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Center( - child: LocalText( - context, - 'do.products', - fontSize: 14, - fontWeight: FontWeight.bold, - underline: true, - color: secondaryColor, - ), - ), - SingleChildScrollView( - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(top: 10), - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 20, - columns: [ - MyDataColumn(label: LocalText(context, "do.product")), - MyDataColumn( - label: LocalText(context, "po.avail.qty"), numeric: true), - MyDataColumn( - label: LocalText(context, "do.do_qty"), - numeric: true, - ), - ], - rows: getProductRow(doSubmission.doLines), - ), - ), - ], - ), - ); - } - - List getProductRow(List doLines) { - ProductModel productModel = Provider.of(context); - if (doLines.isNotEmpty) { - doLines.forEach((d) { - productModel.products.forEach((p) { - if (p.id == d.productID) { - d.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - doLines.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - } - return doLines.map((d) { - return MyDataRow( - onSelectChanged: (bool selected) async { - if (doTypeValue == 0) return; - var doLine = await showDialog( - context: context, - builder: (_) => DOProductItem( - doLine: DOLine(productID: d.productID, qty: d.qty), - )); - _updateQty(doLine); - }, - cells: [ - MyDataCell( - new Text( - d.productName, - style: textStyle, - ), - ), - MyDataCell(NumberCell(d.poBalQty)), - MyDataCell( - Container( - color: Colors.cyan, - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - new Text(d.qty == null ? "0" : d.qty.toString(), - style: textStyle), - ], - )), - ), - ], - ); - }).toList(); - } - - Widget getPOProductTable() { - return Container( - padding: EdgeInsets.only(top: 10), - child: Column( - children: [ - Center( - child: LocalText(context, 'po.info', - fontSize: 14, - fontWeight: FontWeight.bold, - underline: true, - color: secondaryColor), - ), - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 20, - columns: [ - MyDataColumn(label: LocalText(context, "po.number")), - MyDataColumn(label: LocalText(context, "po.product")), - MyDataColumn( - label: LocalText(context, "do.po_qty"), - numeric: true, - ), - MyDataColumn( - label: LocalText(context, "po.avail.qty"), - numeric: true, - ), - MyDataColumn( - label: LocalText(context, "po.retrieved.amount"), - numeric: true, - ), - MyDataColumn( - label: LocalText(context, "do.do_qty"), - numeric: true, - ), - ], - rows: getPOProductRow(), - ), - ), - ], - ), - ); - } - - List getPOProductRow() { - ProductModel productModel = Provider.of(context); - if (doSubmission.dopoLies.isNotEmpty) { - doSubmission.dopoLies - .sort((p1, p2) => p1.poNumber.compareTo(p2.poNumber)); - doSubmission.dopoLies.forEach((d) { - productModel.products.forEach((p) { - if (p.id == d.productID) { - d.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - doSubmission.dopoLies.sort((p1, p2) { - if (p1.displayOrder != p2.displayOrder) - return p1.displayOrder.compareTo(p2.displayOrder); - return p1.poNumber.compareTo(p2.poNumber); - }); - } - return doSubmission.dopoLies.map((d) { - return MyDataRow( - cells: [ - MyDataCell( - new Text( - d.poNumber, - style: textStyle, - ), - ), - MyDataCell( - new Text( - d.productName, - style: textStyle, - ), - ), - MyDataCell(NumberCell(d.poQty)), - MyDataCell(NumberCell(d.poBalQty)), - MyDataCell(NumberCell(d.getPoBalanceQty)), - MyDataCell( - Container( - color: Colors.grey, - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - new Text(d.doQty == null ? "0" : d.doQty.toString(), - style: textStyle), - ], - )), - ), - ], - ); - }).toList(); - } - - _updateQty(DOLine doLine) { - if (doLine == null) return; - - try { - var mainModel = Provider.of(context); - setState(() { - doSubmission.updateDoline(doLine.productID, doLine.qty); - doSubmission.updateStorageCharge(mainModel.setting); - }); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } - } - - _submit(MainModel mainModel) async { - if (doSubmission.doLines.length == 0) { - showMsgDialog(context, "Error", "No product line"); - return; - } - if (files.licenseFile == null) { - showMsgDialog(context, "Error", "Please insert driver licence"); - return; - } - - int total = 0; - doSubmission.doLines.forEach((doLine) { - total += doLine.qty; - }); - - if (total <= 0) { - showMsgDialog(context, "Error", "must be greater than zero"); - return; - } - - doSubmission.carNo = _carNo.text; - doSubmission.driverName = _driver.text; - doSubmission.driverLicenseNumber = _licence.text; - doSubmission.deliveryDate = dateFormatter.parse(_deliveryDate.text); - doSubmission.type = doTypeValue == 0 ? 'single' : 'multiple'; - doSubmission.doLines.removeWhere((d) => d.qty == 0); - doSubmission.dopoLies.removeWhere((d) => d.doQty == 0); - - setState(() { - _isLoading = true; - }); - try { - DOModel doModel = Provider.of(context); - - if (_isNew) { - await doModel.createDO(doSubmission, files); - } else { - await doModel.updateDO(doSubmission, files); - } - Navigator.pop(context, true); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/do/do_creation_todelete.dart b/lib/pages/do/do_creation_todelete.dart deleted file mode 100644 index 6215b66..0000000 --- a/lib/pages/do/do_creation_todelete.dart +++ /dev/null @@ -1,423 +0,0 @@ -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/po_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/img_file.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:progress/progress.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; - -import 'do_creation_form.dart'; - -class DoCreation extends StatefulWidget { - final POSubmission poSubmission; - const DoCreation({this.poSubmission}); - @override - _DoCreationState createState() => _DoCreationState(); -} - -class _DoCreationState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy'); - bool _isLoading = false; - TextEditingController _podate = new TextEditingController(); - TextEditingController _ponumber = new TextEditingController(); - TextEditingController _postatus = new TextEditingController(); - POSubmission poSubmission = POSubmission(); - - @override - void initState() { - super.initState(); - this.poSubmission = widget.poSubmission; - _podate.text = dateFormatter.format(this.poSubmission.poDate); - _ponumber.text = this.poSubmission.poNumber.toString(); - _postatus.text = this.poSubmission.status; - _isLoading = true; - _load(); - } - - Future _load() async { - List poLines = - await Provider.of(context, listen: false) - .loadPOLines(poSubmission.id); - var _poDos = await Provider.of(context, listen: false) - .loadDOs(poSubmission); - setState(() { - this.poSubmission.poLines = poLines; - this.poSubmission.dos = _poDos.dos; - _isLoading = false; - }); - } - - Widget doDateBox(BuildContext context, DOSubmission doSubmission) { - return Container( - padding: EdgeInsets.only(left: 20, top: 0), - child: Row( - children: [ - LocalText(context, "do.date"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - dateFormatter.format(doSubmission.deliveryDate), - style: textStyle, - ), - ) - ], - ), - ); - } - - Widget doNumberBox(BuildContext context, DOSubmission doSubmission) { - return Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.do_num"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doSubmission.doNumber, - style: textStyle, - ), - ) - ], - ), - ); - } - - Widget driverBox(BuildContext context, DOSubmission doSubmission) { - return Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.driver"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doSubmission.driverName, - style: textStyle, - ), - ) - ], - ), - ); - } - - Widget carNoBox(BuildContext context, DOSubmission doSubmission) { - return Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.car"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doSubmission.carNo, - style: textStyle, - ), - ) - ], - ), - ); - } - - Widget doStatusBox(BuildContext context, DOSubmission doSubmission) { - return Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.status"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - doSubmission.status, - style: textStyle, - ), - ) - ], - ), - ); - } - - Widget driverLicence(BuildContext context, DOSubmission doSubmission) { - return Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.licence"), - ImageFile( - enabled: false, - title: "Receipt File", - initialImgUrl: doSubmission.driverLicenceUrl, - onFile: (file) {}), - ], - ), - ); - } - - @override - Widget build(BuildContext context) { - var languageModle = Provider.of(context); - - final poDateBox = Container( - padding: EdgeInsets.only(left: 20, top: 15), - child: Row( - children: [ - LocalText(context, "po.date"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _podate.text, - style: textStyle, - ), - ) - ], - ), - ); - - final poNumberBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "do.po_num"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _ponumber.text, - style: textStyle, - ), - ) - ], - ), - ); - - final poStatusBox = Container( - padding: EdgeInsets.only(left: 20, top: 5), - child: Row( - children: [ - LocalText(context, "po.status"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _postatus.text, - style: textStyle, - ), - ) - ], - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("do.title"), - style: languageModle.isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode')), - ), - floatingActionButton: FloatingActionButton( - backgroundColor: primaryColor, - heroTag: "btn2", - onPressed: () async { - if (poSubmission.poLines - .fold(0, (p, e) => p + e.balanceQty) == - 0) { - showMsgDialog(context, "Error", "Zero PO balance qty"); - return; - } - - final bool successful = await Navigator.push( - context, MaterialPageRoute(builder: (context) => DOForm())); - if (successful != null && successful) _load(); - }, - child: Icon(Icons.add), - ), - body: Container( - padding: EdgeInsets.only(top: 5), - child: ListView( - children: [ - Container( - padding: EdgeInsets.only(left: 10, right: 10), - child: Card( - elevation: 23, - child: Column( - children: [ - poDateBox, - poNumberBox, - poStatusBox, - Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 15, - columns: [ - MyDataColumn( - label: LocalText(context, "po.product"), - ), - MyDataColumn( - label: LocalText(context, "do.po_qty"), - ), - MyDataColumn( - label: - LocalText(context, "do.po_balance_qty"), - ), - ], - rows: - getPoProductRow(widget.poSubmission.poLines), - ), - ), - ), - SizedBox( - height: 15, - ) - ], - ), - ), - ), - Column( - children: getDos(poSubmission.dos), - ), - SizedBox( - height: 10, - ) - ], - ), - ), - )); - } - - List getPoProductRow(List poLines) { - return poLines.map((p) { - return MyDataRow( - cells: [ - MyDataCell( - new Text( - p.productName, - style: textStyle, - ), - ), - MyDataCell( - new Text(p.qty.toString(), style: textStyle), - ), - MyDataCell( - new Text(p.balanceQty.toString(), style: textStyle), - ), - ], - ); - }).toList(); - } - - List getDos(List dos) { - return dos.map((d) { - return Container( - padding: EdgeInsets.only(left: 10, right: 10), - child: Card( - child: Theme( - data: ThemeData(accentColor: Colors.grey), - child: ExpansionTile( - onExpansionChanged: (e) => _onExpend(context, e, d), - title: ListTile( - title: Text(dateFormatter.format(d.deliveryDate)), - subtitle: Text(d.doNumber), - ), - children: [ - Container( - child: Column( - children: [ - Align( - alignment: Alignment.topRight, - child: Container( - padding: EdgeInsets.only(right: 20), - child: InkWell( - child: Icon(Icons.edit), - onTap: () async { - final bool successful = - await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => DOForm( - doSubmission: d, - ))); - if (successful != null && successful) _load(); - }, - )), - ), - doDateBox(context, d), - doNumberBox(context, d), - doStatusBox(context, d), - driverBox(context, d), - carNoBox(context, d), - driverLicence(context, d), - Container( - alignment: AlignmentDirectional.centerStart, - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 15, - columns: [ - MyDataColumn( - label: LocalText(context, "do.product"), - ), - MyDataColumn( - label: LocalText(context, "do.do_qty"), - ), - ], - rows: getdoProductRow(d.doLines), - ), - ), - ), - SizedBox( - height: 15, - ) - ], - ), - ), - ], - ), - ), - ), - ); - }).toList(); - } - - List getdoProductRow(List doLines) { - return doLines.map((p) { - return MyDataRow( - cells: [ - MyDataCell( - new Text( - p.productName, - style: textStyle, - ), - ), - MyDataCell( - new Text(p.qty.toString(), style: textStyle), - ), - ], - ); - }).toList(); - } - - _onExpend(BuildContext context, expended, DOSubmission doSub) async { - if (!expended) return; - POSubmissionModel poModel = Provider.of(context); - var _doSub = await poModel.loadDOLines(doSub); - setState(() { - doSub = _doSub; - }); - } -} diff --git a/lib/pages/do/do_files.dart b/lib/pages/do/do_files.dart deleted file mode 100644 index 70bbdaa..0000000 --- a/lib/pages/do/do_files.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'dart:io'; - -class DOFiles { - File doPaymentFile, storageChargeFile, licenseFile; - bool doFileChanged = false, - storageFileChanged = false, - licenseFileChanged = false; - - set setDoPaymentFile(File file) { - doPaymentFile = file; - doFileChanged = true; - } - - set setStorageChargeFile(File file) { - storageChargeFile = file; - storageFileChanged = true; - } - - set setlicenseFile(File file) { - licenseFile = file; - licenseFileChanged = true; - } - - bool get anyChanged => - doFileChanged || storageFileChanged || licenseFileChanged; -} diff --git a/lib/pages/do/do_list.dart b/lib/pages/do/do_list.dart deleted file mode 100644 index b435c55..0000000 --- a/lib/pages/do/do_list.dart +++ /dev/null @@ -1,286 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/do_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/do/do_creation_form.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/popup_menu.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/popupmenu.dart'; -import 'package:fcs/widget/progress.dart'; - -import 'do_approve.dart'; - -class DOList extends StatefulWidget { - @override - _DOListState createState() => _DOListState(); -} - -class _DOListState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy'); - final double dotSize = 10.0; - DateTime _selectedDate = DateTime.now(); - String status; - int _selectedIndex = 0; - int _dateIndex = 0; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - - var doModel = Provider.of(context, listen: false); - _selectedIndex = doModel.popupMenu.index; - _dateIndex = doModel.dateIndex; - _selectedDate = doModel.selectedDate; - } - - @override - void dispose() { - super.dispose(); - } - - Future _selectDate(BuildContext context) async { - var doModel = Provider.of(context); - - final DateTime picked = await showDatePicker( - context: context, - initialDate: _selectedDate, - firstDate: DateTime(2015, 8), - lastDate: DateTime(2101), - builder: (BuildContext context, Widget child) { - return Theme( - data: ThemeData.light().copyWith( - primaryColor: primaryColor, //Head background - accentColor: secondaryColor, //selection color - dialogBackgroundColor: Colors.white, //Background color - ), - child: child, - ); - }, - ); - - if (picked != null) { - var pickedDate = new DateTime(picked.year, picked.month, picked.day); - var currentDate = new DateTime( - DateTime.now().year, DateTime.now().month, DateTime.now().day); - this._dateIndex = pickedDate == currentDate ? 0 : 1; - setState(() { - _selectedDate = picked; - doModel.filterData(status, _selectedDate, _selectedIndex, _dateIndex); - }); - } - } - - @override - Widget build(BuildContext context) { - var doModel = Provider.of(context); - MainModel mainModel = Provider.of(context); - bool isBuyer = mainModel.user.isBuyer(); - var languageModle = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text( - AppTranslations.of(context).text("do.title"), - style: languageModle.isEng - ? TextStyle() - : TextStyle(fontFamily: 'MyanmarUnicode'), - ), - actions: [ - InkWell( - child: Container( - padding: EdgeInsets.only(top: 15), - child: Stack( - children: [ - Image.asset( - "assets/date_filter.png", - color: Colors.white, - width: 25, - ), - _dateIndex == 0 - ? Container() - : Positioned( - bottom: 15, - right: 10, - child: Container( - width: 10, - height: 10, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: secondaryColor, - ), - ), - ) - ], - ), - ), - onTap: () => _selectDate(context), - ), - PopupMenuButton( - elevation: 3.2, - onSelected: (selected) { - setState(() { - _selectedIndex = selected.index; - }); - if (selected.status == 'All') { - status = null; - } else { - status = selected.status; - } - doModel.filterData( - status, _selectedDate, _selectedIndex, _dateIndex); - }, - icon: Container( - width: 30, - height: 30, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - ), - child: Stack( - fit: StackFit.expand, - children: [ - Icon( - Icons.filter_list, - color: primaryColor, - ), - _selectedIndex != 0 - ? Positioned( - bottom: 0, - right: 0, - child: Container( - width: 10, - height: 10, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: secondaryColor, - ), - ), - ) - : Container() - ], - )), - itemBuilder: (BuildContext context) { - return statusMenu.map((PopupMenu choice) { - return PopupMenuItem( - value: choice, - child: Row( - children: [ - Text(choice.status), - SizedBox( - width: 10, - ), - _selectedIndex != null && - _selectedIndex == choice.index - ? Icon( - Icons.check, - color: Colors.grey, - ) - : Container(), - ], - ), - ); - }).toList(); - }), - ], - ), - floatingActionButton: mainModel.isBuyer() - ? FloatingActionButton( - backgroundColor: primaryColor, - onPressed: () => Navigator.push( - context, - MaterialPageRoute(builder: (context) => DOForm()), - ), - child: Icon(Icons.add), - ) - : null, - body: new ListView.builder( - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: doModel.dos.length, - itemBuilder: (BuildContext context, int index) { - return Card( - elevation: 10, - color: Colors.white, - child: Row( - children: [ - Expanded( - child: InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => DOApproval( - doSubmission: doModel.dos[index])), - ); - }, - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 16.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Padding( - padding: EdgeInsets.all(5.0), - child: Image.asset( - "assets/do.png", - width: 40, - height: 40, - color: primaryColor, - ), - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Text( - doModel.dos[index].doNumber, - style: new TextStyle( - fontSize: 12.0, color: Colors.black), - ), - new Text( - doModel.dos[index].deliveryDate == null - ? "" - : dateFormatter.format( - doModel.dos[index].deliveryDate), - style: new TextStyle( - fontSize: 14.0, color: Colors.grey), - ), - !isBuyer - ? new Text( - doModel.dos[index].userName, - style: new TextStyle( - fontSize: 12.0, - color: Colors.grey), - ) - : Container() - ], - ), - ), - Container( - padding: EdgeInsets.only(right: 15), - child: getStatus(doModel.dos[index].status), - ), - ], - ), - ), - ), - ), - ], - ), - ); - }), - ), - ); - } -} diff --git a/lib/pages/do/do_product_item.dart b/lib/pages/do/do_product_item.dart deleted file mode 100644 index 186da53..0000000 --- a/lib/pages/do/do_product_item.dart +++ /dev/null @@ -1,134 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -class DOProductItem extends StatefulWidget { - final DOLine doLine; - const DOProductItem({Key key, this.doLine}) : super(key: key); - @override - _DOProductItemState createState() => _DOProductItemState(); -} - -class _DOProductItemState extends State { - final _formKey = GlobalKey(); - TextEditingController _doQty = new TextEditingController(); - DOLine doLine; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - if (widget.doLine != null) { - doLine = widget.doLine; - _doQty.text = widget.doLine.qty.toString(); - } - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: AlertDialog( - title: Center( - child: Text( - AppTranslations.of(context).text("do_qty"), - style: TextStyle( - color: primaryColor, fontWeight: FontWeight.bold, fontSize: 20), - )), - content: Form( - key: _formKey, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - new Expanded( - child: new TextFormField( - keyboardType: TextInputType.number, - autofocus: true, - controller: _doQty, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), - cursorColor: primaryColor, - decoration: new InputDecoration( - fillColor: primaryColor, - icon: Icon( - FontAwesomeIcons.sortNumericUpAlt, - color: primaryColor, - ), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("do.form.volume"); - } - return null; - }, - )) - ], - ), - ), - actions: [ - FlatButton( - child: LocalText( - context, - 'do.cancel', - color: secondaryColor, - ), - onPressed: () { - _doQty.clear(); - Navigator.of(context).pop(); - }), - FlatButton( - color: primaryColor, - child: LocalText( - context, - 'do.enter', - color: Colors.white, - fontWeight: FontWeight.bold, - ), - onPressed: () async { - if (!_formKey.currentState.validate()) return; - _save(); - }) - ], - ), - ); - } - - _save() { - setState(() { - _isLoading = true; - }); - try { - var qty = int.parse(_doQty.text); - if (qty < 0) - throw Exception("invalid number, must be zero or greater than zero"); - // if (qty > doLine.poLine.balanceQty) - // throw Exception( - // "invalid number, must be less than or equal to PO balance qty"); - this.doLine.qty = qty; - Navigator.pop(context, this.doLine); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _delete() { - this.doLine.action = "delete"; - this.doLine.qty = 0; - Navigator.pop(context, this.doLine); - } -} diff --git a/lib/pages/do/do_storage_item.dart b/lib/pages/do/do_storage_item.dart deleted file mode 100644 index 1e3447e..0000000 --- a/lib/pages/do/do_storage_item.dart +++ /dev/null @@ -1,209 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/util.dart'; -import 'package:fcs/vo/do.dart'; -import 'package:fcs/vo/storage.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -typedef OnSave = void Function(String storageID, String storageName); - -class DOStorageItem extends StatefulWidget { - final DOLine doLine; - final OnSave onSave; - const DOStorageItem({Key key, this.doLine, this.onSave}) : super(key: key); - @override - _DOStorageItemState createState() => _DOStorageItemState(); -} - -class _DOStorageItemState extends State { - final _formKey = GlobalKey(); - bool _isLoading = false; - String currentStorageID; - TextEditingController _product = new TextEditingController(); - TextEditingController _quantity = new TextEditingController(); - DOLine doLine = DOLine(); - - @override - void initState() { - super.initState(); - this.doLine = widget.doLine; - - if (doLine.storageID != null && doLine.storageID.isNotEmpty) { - this.currentStorageID = doLine.storageID; - } - _product.text = this.doLine.productName; - _quantity.text = this.doLine.qty.toString(); - } - - Widget showStorages(BuildContext context, StorageModel storageModel) { - return Container( - padding: EdgeInsets.only(top: 10), - child: Row( - mainAxisSize: MainAxisSize.max, - children: [ - Image.asset( - "assets/inventory.png", - width: 30, - height: 30, - color: primaryColor, - ), - SizedBox( - width: 20, - ), - new Flexible( - child: Container( - width: 170.0, - child: DropdownButton( - value: currentStorageID, - isExpanded: true, - hint: Text( - 'Select Storage', - style: labelStyle, - ), - onChanged: changedStorage, - items: storageModel - .getStorage(doLine.productID) - .map>((Storage storage) { - return new DropdownMenuItem( - value: storage.id, - child: new Text(storage.name, style: textStyle), - ); - }).toList(), - ), - ), - ), - ], - ), - ); - } - - void changedStorage(selected) { - setState(() { - currentStorageID = selected; - }); - } - - Widget showStorgeTable(BuildContext context, StorageModel storageModel) { - return Container( - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 100, - columns: [ - MyDataColumn( - label: LocalText(context, "storge"), - ), - MyDataColumn( - label: LocalText(context, "storage.product.qty"), - ), - ], - rows: getProductRow(storageModel.getStorage(doLine.productID)), - ), - ), - ); - } - - List getProductRow(List storages) { - return storages.map((s) { - return MyDataRow( - onSelectChanged: (bool selected) { - setState(() { - currentStorageID = s.id; - }); - }, - cells: [ - MyDataCell( - new Text(s.name, style: textStyle), - ), - MyDataCell( - NumberCell(s.products - .firstWhere((p) => p.id == doLine.productID) - .quantity), - ), - ], - ); - }).toList(); - } - - @override - Widget build(BuildContext context) { - var storgeModel = Provider.of(context); - - final productbox = Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - LocalText(context, "do.product"), - SizedBox( - width: 20, - ), - Text(_product.text, style: textStyle) - ], - )); - - final quantitybox = Container( - padding: EdgeInsets.only(top: 15), - child: Row( - children: [ - LocalText(context, "do.quantity"), - SizedBox( - width: 20, - ), - Text(formatNumber(this.doLine.qty), style: textStyle) - ], - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text("DO"), - actions: [ - IconButton( - icon: Icon(Icons.save), - onPressed: () { - _save(); - }, - ) - ], - ), - body: Form( - key: _formKey, - child: Column( - children: [ - Expanded( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0, top: 10), - children: [ - productbox, - quantitybox, - showStorages(context, storgeModel), - showStorgeTable(context, storgeModel) - ], - ), - ), - ], - ), - )), - ); - } - - _save() { - this.doLine.storageID = currentStorageID; - var storageName = - Provider.of(context).getStorageName(currentStorageID); - this.doLine.storageName = storageName; - if (widget.onSave != null) - widget.onSave(this.doLine.storageID, storageName); - Navigator.pop(context, this.doLine); - } -} diff --git a/lib/pages/do/photo_page.dart b/lib/pages/do/photo_page.dart deleted file mode 100644 index 6c0e710..0000000 --- a/lib/pages/do/photo_page.dart +++ /dev/null @@ -1,165 +0,0 @@ -import 'dart:io'; -import 'package:flutter/material.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; - -import '../../fcs/common/pages/util.dart'; - -class PhotoPage extends StatefulWidget { - PhotoPage({Key key}) : super(key: key); - - @override - _PhotoPageState createState() => _PhotoPageState(); -} - -class _PhotoPageState extends State { - File receiptImageFile; - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - final receiptImageBox = Padding( - padding: EdgeInsets.symmetric(vertical: 5.0), - child: Container( - color: Colors.grey[400], - child: Column( - children: [ - Container( - padding: EdgeInsets.only(top: 15), - child: Text( - AppTranslations.of(context).text('do.receipt'), - style: - languageModel.isEng ? photoLabelStyle : photoLabelStyleMM, - ), - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ButtonTheme.bar( - child: new ButtonBar( - alignment: MainAxisAlignment.start, - children: [ - new FlatButton( - child: Icon( - Icons.add_photo_alternate, - size: 60.0, - color: Colors.black, - ), - onPressed: () { - pickImageFromGallery(ImageSource.gallery); - }, - ), - ], - )), - ButtonTheme.bar( - child: new ButtonBar( - alignment: MainAxisAlignment.start, - children: [ - new FlatButton( - child: Icon( - Icons.add_a_photo, - size: 50.0, - color: Colors.black, - ), - onPressed: () { - pickImageFromCamera(ImageSource.camera); - }, - ), - ], - )), - ], - ), - receiptShowImage(), - SizedBox( - height: 10, - ) - ], - ), - ), - ); - - return Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("do.receipt.title"), - style: Provider.of(context).isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode')), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - if (receiptImageFile == null) { - showMsgDialog( - context, "Error", "Please insert delivery receipt file"); - return; - } - Navigator.pop(context, receiptImageFile); - }, - ) - ], - ), - body: Column( - children: [ - Expanded( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0, top: 20), - children: [ - receiptImageBox, - ], - ), - ), - SizedBox( - height: 20, - ) - ], - ), - ); - } - - Widget receiptShowImage() { - return Container( - child: receiptImageFile == null ? initialImage() : receiptEnableImage(), - ); - } - - Widget initialImage() { - var languageModel = Provider.of(context); - - return Center( - child: Text( - AppTranslations.of(context).text('do.no.photo'), - style: languageModel.isEng ? photoLabelStyle : photoLabelStyleMM, - ), - ); - } - - Widget receiptEnableImage() { - return Center( - child: Image.file( - receiptImageFile, - ), - ); - } - - pickImageFromGallery(ImageSource source) async { - var tempImage = await ImagePicker.pickImage( - source: source, imageQuality: 80, maxWidth: 300); - setState(() { - receiptImageFile = tempImage; - }); - } - - pickImageFromCamera(ImageSource source) async { - var tempImage = await ImagePicker.pickImage( - source: source, imageQuality: 80, maxWidth: 300); - setState(() { - receiptImageFile = tempImage; - }); - } -} diff --git a/lib/pages/do/po_selection.dart b/lib/pages/do/po_selection.dart deleted file mode 100644 index 80b8601..0000000 --- a/lib/pages/do/po_selection.dart +++ /dev/null @@ -1,158 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/local_text.dart'; - -class POSelection extends StatefulWidget { - final List pos; - final List selectedPOs; - - POSelection({Key key, this.pos, this.selectedPOs}) : super(key: key); - - @override - _POSelectionState createState() => new _POSelectionState(); - - static Future showPOSelection(BuildContext context, - List pos, List selectedPOs, - {ok(List pos)}) async { - List _selectedPOs = []; - selectedPOs.forEach((i) => _selectedPOs.add(i)); - - final poselection = POSelection( - pos: pos, - selectedPOs: _selectedPOs, - ); - - await showDialog( - context: context, - builder: (_) { - return AlertDialog( - title: Center( - child: LocalText(context, "po.title"), - ), - content: Container( - width: double.maxFinite, - child: ListView( - shrinkWrap: true, - children: [ - poselection, - Container( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - FlatButton( - child: LocalText(context, "Cancel"), - onPressed: () { - Navigator.of(context).pop(); - }), - FlatButton( - color: primaryColor, - child: LocalText(context, "Ok"), - onPressed: () async { - if (ok != null) ok(_selectedPOs); - Navigator.of(context).pop(); - }) - ], - ), - ), - ], - ), - ), - ); - }); - } -} - -class _POSelectionState extends State { - List pos; - - @override - void initState() { - super.initState(); - pos = widget.pos; - pos.sort((p1, p2) => p1.poNumber.compareTo(p2.poNumber)); - } - - @override - Widget build(BuildContext context) { - var width = MediaQuery.of(context).size.width * 0.8; - var height = MediaQuery.of(context).size.height * 0.5; - - return Column( - children: [ - FlatButton( - child: Text("Select All"), - onPressed: () { - setState(() { - widget.selectedPOs.clear(); - widget.selectedPOs.addAll(pos); - }); - }), - Container( - width: width, - height: height, - child: Column( - children: pos.asMap().entries.map((p) { - return InkWell( - onTap: () { - setState(() { - if (widget.selectedPOs.contains(p.value)) { - widget.selectedPOs.remove(p.value); - } else { - widget.selectedPOs.add(p.value); - } - }); - }, - child: Row( - children: [ - Checkbox( - onChanged: (v) => {_update(p.key)}, - value: widget.selectedPOs.contains(p.value), - ), - Text(p.value.poNumber), - ], - ), - ); - }).toList(), - ), - // child: ListView.builder( - // itemCount: pos.length, - // scrollDirection: Axis.vertical, - // itemBuilder: (BuildContext ctxt, int index) { - // return InkWell( - // onTap: () { - // setState(() { - // if (widget.selectedPOs.contains(pos[index])) { - // widget.selectedPOs.remove(pos[index]); - // } else { - // widget.selectedPOs.add(pos[index]); - // } - // }); - // }, - // child: Row( - // children: [ - // Checkbox( - // onChanged: (v) => {_update(index)}, - // value: widget.selectedPOs.contains(pos[index]), - // ), - // Text(pos[index].poNumber), - // ], - // ), - // ); - // }), - ), - ], - ); - } - - _update(int index) { - setState(() { - if (widget.selectedPOs.contains(pos[index])) { - widget.selectedPOs.remove(pos[index]); - } else { - widget.selectedPOs.add(pos[index]); - } - }); - } -} diff --git a/lib/pages/document_log_page.dart b/lib/pages/document_log_page.dart deleted file mode 100644 index 2518eb9..0000000 --- a/lib/pages/document_log_page.dart +++ /dev/null @@ -1,87 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/log_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/document_log.dart'; -import 'package:fcs/vo/role.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; - -class DocumentLogPage extends StatefulWidget { - final String docID; - - const DocumentLogPage({Key key, this.docID}) : super(key: key); - @override - _DocumentLogPageState createState() => _DocumentLogPageState(); -} - -class _DocumentLogPageState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy\nhh:mm:ss a'); - - @override - void initState() { - super.initState(); - if (widget.docID != null) { - Provider.of(context, listen: false).loadDocLogs(widget.docID); - } - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - var logModel = Provider.of(context); - var userModel = Provider.of(context); - return Scaffold( - appBar: AppBar( - title: LocalText(context, 'document.log.title', - fontSize: 20, color: Colors.white), - backgroundColor: primaryColor, - ), - body: Container( - padding: EdgeInsets.only(top: 10), - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 40, - columns: [ - MyDataColumn(label: LocalText(context, "document.date")), - MyDataColumn(label: LocalText(context, "document.by")), - MyDataColumn(label: LocalText(context, "document.desc")), - ], - rows: getProductRow(logModel.docLogs, userModel.privileges), - ), - ), - ), - ); - } - - List getProductRow( - List docLogs, List privileges) { - return docLogs.map((d) { - return MyDataRow( - cells: [ - MyDataCell( - new Text(dateFormatter.format(d.date), style: textStyle), - ), - MyDataCell( - new Text( - d.actionerName == null ? '' : d.actionerName, - style: textStyle, - ), - ), - MyDataCell( - new Text(d.getDesc(privileges) == null ? '' : d.getDesc(privileges), - style: textStyle), - ), - ], - ); - }).toList(); - } -} diff --git a/lib/pages/email_page.dart b/lib/pages/email_page.dart deleted file mode 100644 index 7165247..0000000 --- a/lib/pages/email_page.dart +++ /dev/null @@ -1,159 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/shared_pref.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import 'confirm_email.dart'; -import '../fcs/common/pages/util.dart'; - -class EmailPage extends StatefulWidget { - final User user; - EmailPage({this.user}); - @override - _EmailPageState createState() => _EmailPageState(); -} - -class _EmailPageState extends State { - final TextEditingController _email = new TextEditingController(); - bool _isLoading = false; - final _formKey = GlobalKey(); - - @override - void initState() { - super.initState(); - if (widget.user != null) { - _email.text = widget.user.email; - } - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - var languageModel = Provider.of(context); - final emailInput = TextFormField( - controller: _email, - autofocus: false, - decoration: new InputDecoration( - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - labelText: AppTranslations.of(context).text("login.email"), - labelStyle: labelStyle, - icon: Icon( - Icons.email, - color: primaryColor, - )), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.email.empty"); - } - return null; - }, - ); - - final enterButton = Padding( - padding: EdgeInsets.symmetric(vertical: 16.0), - child: RaisedButton( - onPressed: () => _add(mainModel), - padding: EdgeInsets.all(10), - color: primaryColor, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(7), - ), - child: Text(AppTranslations.of(context).text("login.email.add"), - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold)), - ), - ); - - final skipButton = Container( - child: InkWell( - onTap: () { - SharedPref.saveSkippedRecoverEmail(true); - Navigator.pushNamedAndRemoveUntil( - context, "/welcome", (r) => false); - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Text( - AppTranslations.of(context).text("login.email.skip"), - style: languageModel.isEng - ? TextStyle(fontSize: 18, fontFamily: 'WorkSansMedium') - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode'), - ), - Container( - padding: EdgeInsets.only(top: 4), - child: Icon( - Icons.skip_next, - size: 30, - )), - ], - )), - ); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: LocalText( - context, - 'login.email.title', - fontSize: 20, - color: Colors.white, - ), - backgroundColor: primaryColor, - ), - body: Center( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - Form(key: _formKey, child: emailInput), - SizedBox(height: 8.0), - enterButton, - widget.user != null ? Container() : skipButton - ], - ), - ), - ), - ); - } - - Future _add(MainModel mainModel) async { - if (!_formKey.currentState.validate()) { - return; - } - setState(() { - _isLoading = true; - }); - try { - UserModel userModel = Provider.of(context); - await userModel.addEmail(mainModel.user.phoneNumber, _email.text); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ConfirmEmail( - id: mainModel.user.phoneNumber, - email: _email.text, - ))); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/fcs/common/pages/faq/faq_detail_page.dart b/lib/pages/faq/faq_detail_page.dart similarity index 87% rename from lib/fcs/common/pages/faq/faq_detail_page.dart rename to lib/pages/faq/faq_detail_page.dart index 753fc8e..8a4124f 100644 --- a/lib/fcs/common/pages/faq/faq_detail_page.dart +++ b/lib/pages/faq/faq_detail_page.dart @@ -1,12 +1,12 @@ -import 'package:fcs/fcs/common/domain/entities/faq.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/faq/faq_edit_page.dart'; -import 'package:fcs/fcs/common/pages/faq/model/faq_model.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/faq.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/faq/faq_edit_page.dart'; +import 'package:fcs/pages/faq/model/faq_model.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/faq/faq_edit_page.dart b/lib/pages/faq/faq_edit_page.dart similarity index 92% rename from lib/fcs/common/pages/faq/faq_edit_page.dart rename to lib/pages/faq/faq_edit_page.dart index 738e28a..524a7d5 100644 --- a/lib/fcs/common/pages/faq/faq_edit_page.dart +++ b/lib/pages/faq/faq_edit_page.dart @@ -1,13 +1,13 @@ -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/faq.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/faq/model/faq_model.dart'; -import 'package:fcs/fcs/common/pages/faq/widgets.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/faq.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/faq/model/faq_model.dart'; +import 'package:fcs/pages/faq/widgets.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/input_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; diff --git a/lib/fcs/common/pages/faq/faq_list_page.dart b/lib/pages/faq/faq_list_page.dart similarity index 86% rename from lib/fcs/common/pages/faq/faq_list_page.dart rename to lib/pages/faq/faq_list_page.dart index 1b9e4f3..d546784 100644 --- a/lib/fcs/common/pages/faq/faq_list_page.dart +++ b/lib/pages/faq/faq_list_page.dart @@ -1,15 +1,15 @@ -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/faq.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/buying_instruction/buying_online.dart'; -import 'package:fcs/fcs/common/pages/faq/faq_edit_page.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/payment_methods/payment_method_page.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/fcs_expansion_tile.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/faq.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/buying_instruction/buying_online.dart'; +import 'package:fcs/pages/faq/faq_edit_page.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/payment_methods/payment_method_page.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/fcs_expansion_tile.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/faq/model/faq_model.dart b/lib/pages/faq/model/faq_model.dart similarity index 88% rename from lib/fcs/common/pages/faq/model/faq_model.dart rename to lib/pages/faq/model/faq_model.dart index af6debb..2cd98d8 100644 --- a/lib/fcs/common/pages/faq/model/faq_model.dart +++ b/lib/pages/faq/model/faq_model.dart @@ -1,9 +1,9 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/entities/faq.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; +import 'package:fcs/data/services/services.dart'; +import 'package:fcs/domain/entities/faq.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; class FAQModel extends BaseModel { diff --git a/lib/pages/faq/widgets.dart b/lib/pages/faq/widgets.dart new file mode 100644 index 0000000..ba1c60a --- /dev/null +++ b/lib/pages/faq/widgets.dart @@ -0,0 +1,103 @@ +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:flutter/material.dart'; + +Widget itemTitle(BuildContext context, String textKey) { + return Padding( + padding: const EdgeInsets.only(left: 18.0, top: 15, bottom: 0), + child: Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), + ), + ); +} + +Widget subItemTitle(BuildContext context, String textKey, {IconData iconData}) { + return Padding( + padding: const EdgeInsets.only(left: 0, top: 0, bottom: 0), + child: Row( + children: [ + Icon( + iconData, + color: primaryColor, + ), + SizedBox(width: 10), + Text( + AppTranslations.of(context).text(textKey), + style: TextStyle( + fontWeight: FontWeight.w700, fontSize: 15, color: primaryColor), + ), + ], + ), + ); +} + +Widget contactItem(BuildContext context, String text, IconData iconData, + {Function() onTap, String labelKey}) { + return Material( + child: Padding( + padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), + child: Container( + decoration: BoxDecoration( + border: Border.all(color: Colors.grey, width: 0.8), + borderRadius: BorderRadius.all( + Radius.circular(5.0) // <--- border radius here + ), + ), + child: InkWell( + onTap: () => onTap != null ? onTap() : null, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + iconData, + color: primaryColor, + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + labelKey == null + ? Container() + : Padding( + padding: EdgeInsets.fromLTRB(10, 10, 10, 0), + child: LocalText(context, labelKey, + color: primaryColor, + fontWeight: FontWeight.w500, + fontSize: 18), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + text == null ? "" : text, + overflow: TextOverflow.ellipsis, + maxLines: 5, + style: TextStyle( + fontSize: 14.0, + ), + ), + ), + ], + ), + SizedBox( + width: 5, + ), + onTap == null + ? Container() + : Icon( + Icons.open_in_new, + color: Colors.grey, + size: 15, + ) + ], + ), + )), + ), + ), + ); +} diff --git a/lib/pages/fcs_profile_page.dart b/lib/pages/fcs_profile_page.dart deleted file mode 100644 index 807b106..0000000 --- a/lib/pages/fcs_profile_page.dart +++ /dev/null @@ -1,168 +0,0 @@ -import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/pickup.dart'; -import 'package:fcs/widget/fcs_text_field.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; - -import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -class FCSProfilePage extends StatefulWidget { - final PickUp pickUp; - FCSProfilePage({this.pickUp}); - - @override - _FCSProfilePageState createState() => _FCSProfilePageState(); -} - -class _FCSProfilePageState extends State { - TextEditingController _usaAddressEditingController = - new TextEditingController(); - TextEditingController _mmAddressEditingController = - new TextEditingController(); - TextEditingController _contactEditingController = new TextEditingController(); - TextEditingController _mmContactEditingController = - new TextEditingController(); - TextEditingController _mailEditingController = new TextEditingController(); - TextEditingController _fbLinkEditingController = new TextEditingController(); - - PickUp _pickUp; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - var pickupModel = Provider.of(context, listen: false); - _usaAddressEditingController.text = pickupModel.profile.usaAddress; - _mmAddressEditingController.text = pickupModel.profile.mmAddress; - _contactEditingController.text = pickupModel.profile.usaContactNumber; - _mmContactEditingController.text = pickupModel.profile.mmContactNumber; - _mailEditingController.text = pickupModel.profile.mail; - _fbLinkEditingController.text = pickupModel.profile.facebook; - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - final usaAddress = fcsInput('USA Delivery Address', Icons.location_on, - controller: _usaAddressEditingController); - final mmAddress = fcsInput('Yangon, Myanmar Office', Icons.location_on, - controller: _mmAddressEditingController); - - final contactNumber = fcsInput('USA contact number', Icons.phone, - controller: _contactEditingController); - final mmContactNumber = fcsInput('Myanmar contact number', Icons.phone, - controller: _mmContactEditingController); - - final mailBox = fcsInput('Email Address', Icons.mail, - controller: _mailEditingController); - final fbLinkBox = fcsInput('Facebook Link', FontAwesomeIcons.facebook, - controller: _fbLinkEditingController); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: LocalText( - context, - 'fcs.profile', - color: Colors.white, - fontSize: 20, - ), - ), - body: Card( - child: Column( - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.only(left: 20.0), - child: ListView(children: [ - usaAddress, - SizedBox(height: 10), - mmAddress, - SizedBox(height: 10), - contactNumber, - SizedBox(height: 10), - mmContactNumber, - SizedBox(height: 10), - mailBox, - SizedBox(height: 10), - fbLinkBox, - SizedBox(height: 10), - ]), - )), - widget.pickUp == null - ? Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - child: Text('Update'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))) - : Container( - child: Column( - children: [ - Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(10)), - child: Text('Pickuped'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))), - Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(10)), - child: Text('Cancel'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))) - ], - )) - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/shipment_editor.dart b/lib/pages/fcs_shipment/fcs_shipment_editor.dart similarity index 86% rename from lib/pages/shipment_editor.dart rename to lib/pages/fcs_shipment/fcs_shipment_editor.dart index 8a12eb1..791bb9c 100644 --- a/lib/pages/shipment_editor.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_editor.dart @@ -1,29 +1,28 @@ -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/shipment.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/label_widgets.dart'; +import 'package:fcs/domain/entities/shipment.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/widgets/label_widgets.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; -import '../fcs/common/helpers/theme.dart'; +import '../main/util.dart'; -class ShipmentEditor extends StatefulWidget { +class FcsShipmentEditor extends StatefulWidget { final Shipment shipment; - ShipmentEditor({this.shipment}); + FcsShipmentEditor({this.shipment}); @override - _ShipmentEditorState createState() => _ShipmentEditorState(); + _FcsShipmentEditorState createState() => _FcsShipmentEditorState(); } -class _ShipmentEditorState extends State { +class _FcsShipmentEditorState extends State { var dateFormatter = new DateFormat('dd MMM yyyy'); TextEditingController _shipmentNumberController = new TextEditingController(); TextEditingController _cutoffDateController = new TextEditingController(); @@ -57,45 +56,6 @@ class _ShipmentEditorState extends State { super.dispose(); } - Widget _showCustomerData(User customer) { - return Column( - children: [ - Padding( - padding: const EdgeInsets.only(left: 10.0, top: 8), - child: Text( - customer.name, - style: TextStyle( - color: Colors.black87, - fontSize: 18, - fontWeight: FontWeight.bold), - ), - ), - Padding( - padding: const EdgeInsets.only(left: 10.0, top: 8), - child: Text( - customer.phoneNumber, - style: TextStyle( - color: Colors.black87, - fontSize: 18, - fontWeight: FontWeight.bold), - ), - ), - widget.shipment == null - ? Container() - : Padding( - padding: const EdgeInsets.only(left: 10.0, top: 8), - child: Text( - _shipmentNumberController.text, - style: TextStyle( - color: Colors.black87, - fontSize: 15, - fontWeight: FontWeight.bold), - ), - ), - ], - ); - } - Widget showShipmentNumber(BuildContext context) { return Container( padding: EdgeInsets.only(top: 10), @@ -112,7 +72,8 @@ class _ShipmentEditorState extends State { ); } - Widget showShipmentTypes(BuildContext context, ShipmentModel shipmentModel) { + Widget showShipmentTypes( + BuildContext context, FcsShipmentModel shipmentModel) { return Row( mainAxisSize: MainAxisSize.max, children: [ @@ -154,8 +115,7 @@ class _ShipmentEditorState extends State { @override Widget build(BuildContext context) { - var shipmentModel = Provider.of(context); - MainModel mainModel = Provider.of(context); + var shipmentModel = Provider.of(context); final cargoBtn = Container( padding: EdgeInsets.only(top: 5), diff --git a/lib/pages/shipment_list.dart b/lib/pages/fcs_shipment/fcs_shipment_list.dart similarity index 75% rename from lib/pages/shipment_list.dart rename to lib/pages/fcs_shipment/fcs_shipment_list.dart index 405c5d2..b84b3a3 100644 --- a/lib/pages/shipment_list.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_list.dart @@ -1,25 +1,22 @@ -import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/local_text.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/pages/search_page.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; -import '../fcs/common/helpers/theme.dart'; -import 'shipment_editor.dart'; -import 'shipment_list_row.dart'; +import 'fcs_shipment_editor.dart'; +import 'fcs_shipment_list_row.dart'; -class ShipmentList extends StatefulWidget { +class FcsShipmentList extends StatefulWidget { @override - _ShipmentListState createState() => _ShipmentListState(); + _FcsShipmentListState createState() => _FcsShipmentListState(); } -class _ShipmentListState extends State { - Buyer buyer; +class _FcsShipmentListState extends State { bool _isLoading = false; @override @@ -55,7 +52,7 @@ class _ShipmentListState extends State { color: Colors.white, ), iconSize: 30, - onPressed: () => showPlacesSearch(context), + // onPressed: () => showPlacesSearch(context), ), ], bottom: TabBar( @@ -85,11 +82,11 @@ class _ShipmentListState extends State { } _newShipment() { - Navigator.of(context).push(BottomUpPageRoute(ShipmentEditor())); + Navigator.of(context).push(BottomUpPageRoute(FcsShipmentEditor())); } Widget _upComing() { - var shipmentModel = Provider.of(context); + var shipmentModel = Provider.of(context); return Column( children: [ Expanded( @@ -102,7 +99,8 @@ class _ShipmentListState extends State { shrinkWrap: true, itemCount: shipmentModel.upcoming.length, itemBuilder: (BuildContext context, int index) { - return ShipmentListRow(shipment: shipmentModel.upcoming[index]); + return FcsShipmentListRow( + shipment: shipmentModel.upcoming[index]); }), ), ], @@ -110,7 +108,7 @@ class _ShipmentListState extends State { } Widget _completed() { - var shipmentModel = Provider.of(context); + var shipmentModel = Provider.of(context); return Column( children: [ Expanded( @@ -123,7 +121,7 @@ class _ShipmentListState extends State { shrinkWrap: true, itemCount: shipmentModel.completed.length, itemBuilder: (BuildContext context, int index) { - return ShipmentListRow( + return FcsShipmentListRow( shipment: shipmentModel.completed[index]); }), ), @@ -132,7 +130,7 @@ class _ShipmentListState extends State { } Widget _canceled() { - var shipmentModel = Provider.of(context); + var shipmentModel = Provider.of(context); return Column( children: [ Expanded( @@ -145,7 +143,8 @@ class _ShipmentListState extends State { shrinkWrap: true, itemCount: shipmentModel.canceled.length, itemBuilder: (BuildContext context, int index) { - return ShipmentListRow(shipment: shipmentModel.canceled[index]); + return FcsShipmentListRow( + shipment: shipmentModel.canceled[index]); }), ), ], diff --git a/lib/pages/shipment_list_row.dart b/lib/pages/fcs_shipment/fcs_shipment_list_row.dart similarity index 82% rename from lib/pages/shipment_list_row.dart rename to lib/pages/fcs_shipment/fcs_shipment_list_row.dart index 88d1a7d..762d959 100644 --- a/lib/pages/shipment_list_row.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_list_row.dart @@ -1,22 +1,22 @@ -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/shipment.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:fcs/domain/entities/shipment.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; -import 'shipment_editor.dart'; -import '../fcs/common/pages/util.dart'; +import 'fcs_shipment_editor.dart'; -class ShipmentListRow extends StatefulWidget { +class FcsShipmentListRow extends StatefulWidget { final Shipment shipment; - const ShipmentListRow({this.shipment}); + const FcsShipmentListRow({this.shipment}); @override - _ShipmentListRowState createState() => _ShipmentListRowState(); + _FcsShipmentListRowState createState() => _FcsShipmentListRowState(); } -class _ShipmentListRowState extends State { +class _FcsShipmentListRowState extends State { var dateFormatter = new DateFormat('dd MMM yyyy'); final double dotSize = 15.0; Shipment _shipment = new Shipment(); @@ -37,7 +37,7 @@ class _ShipmentListRowState extends State { child: InkWell( onTap: () { Navigator.of(context) - .push(BottomUpPageRoute(ShipmentEditor(shipment: _shipment))); + .push(BottomUpPageRoute(FcsShipmentEditor(shipment: _shipment))); }, child: Row( children: [ diff --git a/lib/model/shipment_model.dart b/lib/pages/fcs_shipment/model/fcs_shipment_model.dart similarity index 77% rename from lib/model/shipment_model.dart rename to lib/pages/fcs_shipment/model/fcs_shipment_model.dart index bf8d954..68db810 100644 --- a/lib/model/shipment_model.dart +++ b/lib/pages/fcs_shipment/model/fcs_shipment_model.dart @@ -1,9 +1,7 @@ -import 'package:fcs/vo/shipment.dart'; -import 'package:fcs/vo/shipping_address.dart'; +import 'package:fcs/domain/entities/shipment.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; -import 'base_model.dart'; - -class ShipmentModel extends BaseModel { +class FcsShipmentModel extends BaseModel { List shipmentType = ['Air', 'Ship', 'Cargo Truck']; List shipments = [ Shipment( @@ -75,23 +73,6 @@ class ShipmentModel extends BaseModel { return _shipments; } - List shippingAddresses = [ - ShippingAddress( - fullName: 'U Nyi Nyi', - addressLine1: '154-19 64th Ave.', - addressLine2: 'Flushing', - city: 'NY', - state: 'NY', - phoneNumber: '+1 (292)215-2247'), - ShippingAddress( - fullName: 'Mg Myo', - addressLine1: '153-154 5th Thitsar.', - addressLine2: 'South Okkalapa Township', - city: 'Yangon', - state: 'Myanmar', - phoneNumber: '+09 95724 8750'), - ]; - void initUser(user) { super.initUser(user); } diff --git a/lib/pages/forget_password.dart b/lib/pages/forget_password.dart deleted file mode 100644 index 8b14953..0000000 --- a/lib/pages/forget_password.dart +++ /dev/null @@ -1,126 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:progress/progress.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/pages/reset_password.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/pages/util.dart'; - -class ForgetPassword extends StatefulWidget { - final phoneNumber; - - const ForgetPassword({Key key, this.phoneNumber}) : super(key: key); - @override - _ForgetPasswordState createState() => _ForgetPasswordState(); -} - -class _ForgetPasswordState extends State { - final TextEditingController _email = new TextEditingController(); - bool _isLoading = false; - final _formKey = GlobalKey(); - - @override - void initState() { - super.initState(); - _email.text = widget.phoneNumber; - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - final emailInput = TextFormField( - controller: _email, - autofocus: false, - decoration: new InputDecoration( - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - labelText: AppTranslations.of(context).text("forget.email"), - labelStyle: labelStyle, - icon: Icon( - Icons.email, - color: primaryColor, - )), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("forget.email.empty"); - } - return null; - }, - ); - - final enterButton = Padding( - padding: EdgeInsets.symmetric(vertical: 16.0), - child: RaisedButton( - onPressed: () => _forgetPassword(), - padding: EdgeInsets.all(10), - color: primaryColor, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(7), - ), - child: Text(AppTranslations.of(context).text("forget.enter"), - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold)), - ), - ); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: LocalText( - context, - 'forget.password', - fontSize: 20, - color: Colors.white, - ), - backgroundColor: primaryColor, - ), - body: Center( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - Form(key: _formKey, child: emailInput), - SizedBox(height: 8.0), - enterButton, - ], - ), - ), - ), - ); - } - - Future _forgetPassword() async { - var phoneNumber = _email.text; - if (phoneNumber.isEmpty) { - showMsgDialog(context, "Error", "Please input email(or)phone number"); - return; - } - setState(() { - _isLoading = true; - }); - try { - UserModel userModel = Provider.of(context); - await userModel.forgetPassword(phoneNumber); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ResetPasswordPage(phoneNumber))); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/help.dart b/lib/pages/help.dart deleted file mode 100644 index 1b361c0..0000000 --- a/lib/pages/help.dart +++ /dev/null @@ -1,119 +0,0 @@ -import 'dart:async'; -import 'dart:io'; - -import 'package:archive/archive.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; -import 'package:http_server/http_server.dart'; -import 'package:logging/logging.dart'; -import 'package:path_provider/path_provider.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/vo/setting.dart'; -import 'package:fcs/widget/progress.dart'; - -typedef void ProfileCallback(); - -class Help extends StatefulWidget { - - const Help({Key key}) : super(key: key); - @override - _HelpState createState() => _HelpState(); -} - -class _HelpState extends State { - final log = Logger('Help'); - - bool isLoading = false; - HttpServer httpServer; - // WebViewController _controller; - String url = ""; - - @override - void initState() { - super.initState(); - MainModel mainModel = Provider.of(context, listen: false); - var isBuyer = mainModel.isBuyer(); - this.url = "http://localhost:7777/web/index.html" + - (isBuyer ? "?is_buyer=true" : "?is_buyer=false"); - _run(mainModel.setting); - } - - void _run(Setting setting) async { - await _download(setting); - final directory = await getApplicationDocumentsDirectory(); - var staticFiles = new VirtualDirectory('${directory.path}') - ..allowDirectoryListing = true; - - HttpServer.bind('0.0.0.0', 7777).then((server) async { - httpServer = server; - log.info('Server running'); - server.listen(staticFiles.serveRequest); - // _controller.loadUrl(url); - log.info("locad url:$url"); - }, onError: (e) { - log.warning("Error===>:$e"); - }); - } - - Future dispose() async { - super.dispose(); - if (httpServer != null) await httpServer.close(force: true); - } - - Future _download(Setting setting) async { - final directory = (await getApplicationDocumentsDirectory()).path; - - var file = File('$directory/${setting.helpFileName()}'); - if (await file.exists()) { - return; - } - - String url = setting.helpURL; - var req = await http.Client().get(Uri.parse(url)); - File zippedFile = await file.writeAsBytes(req.bodyBytes); - - File prev = File('$directory/web'); - if (await prev.exists()) { - await prev.delete(recursive: true); - } - - var bytes = zippedFile.readAsBytesSync(); - var archive = ZipDecoder().decodeBytes(bytes); - for (var file in archive) { - var fileName = '$directory/web/${file.name}'; - if (file.isFile) { - var outFile = File(fileName); - outFile = await outFile.create(recursive: true); - await outFile.writeAsBytes(file.content); - } - } - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: isLoading, - child: Scaffold( - appBar: AppBar( - iconTheme: IconThemeData( - color: Colors.black, //change your color here - ), - centerTitle: true, - backgroundColor: Colors.white, - title: ClipRRect( - child: Image.asset("assets/logo.png", height: 40), - borderRadius: new BorderRadius.circular(15.0), - )), - body:Text("abc"), - // body: WebView( - // initialUrl: url, - // javascriptMode: JavascriptMode.unrestricted, - // onWebViewCreated: (WebViewController webViewController) { - // _controller = webViewController; - // }, - // ), - ), - ); - } -} diff --git a/lib/pages/instruction.dart b/lib/pages/instruction.dart deleted file mode 100644 index d1129f1..0000000 --- a/lib/pages/instruction.dart +++ /dev/null @@ -1,66 +0,0 @@ -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/pages/manual/manual_item_title_dialog.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/manual.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -class InstructionPage extends StatefulWidget { - final String image; - final String name; - - const InstructionPage({Key key, this.image, this.name}) : super(key: key); - @override - _InstructionPageState createState() => _InstructionPageState(); -} - -class _InstructionPageState extends State { - TextEditingController _manualVersionController = TextEditingController(); - final double dotSize = 10.0; - List helpList = new List(); - bool isEng; - String versionName; - bool _isLoading = false; - - @override - void initState() { - helpList.clear(); - var manualModel = Provider.of(context, listen: false); - var mainModel = Provider.of(context, listen: false); - versionName = manualModel.version; - helpList = manualModel.getHelpList(mainModel.isBuyer()); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close, color: Colors.white), - onPressed: () => Navigator.of(context).pop(), - ), - title: Text(widget.name), - backgroundColor: primaryColor, - ), - body: Container( - padding: EdgeInsets.only(left: 5, right: 5, top: 5), - child: Card( - elevation: 0, - child: Expanded( - child: FittedBox( - child: Image.asset(widget.image), fit: BoxFit.contain), - )), - ), - ), - ); - } -} diff --git a/lib/pages/invitation_page.dart b/lib/pages/invitation_page.dart deleted file mode 100644 index b3173f9..0000000 --- a/lib/pages/invitation_page.dart +++ /dev/null @@ -1,67 +0,0 @@ -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../fcs/common/helpers/theme.dart'; - -class InvitationPage extends StatefulWidget { - @override - _InvitationPageState createState() => _InvitationPageState(); -} - -class _InvitationPageState extends State { - TextEditingController _nameController = new TextEditingController(); - TextEditingController _phoneController = new TextEditingController(); - - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon( - Icons.close, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("customer.form.title")), - ), - body: Container( - padding: EdgeInsets.all(18), - child: Column( - children: [ - Expanded( - child: ListView( - children: [ - fcsInput("Name", Icons.person, controller: _nameController), - fcsInput("Phone Number", Icons.phone, - controller: _phoneController), - SizedBox(height: 30), - ], - ), - ), - fcsButton(context, "Invite", callack: () {}), - SizedBox(height: 10) - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/invoice/box_addition.dart b/lib/pages/invoice/box_addition.dart index 4fea0f2..f577288 100644 --- a/lib/pages/invoice/box_addition.dart +++ b/lib/pages/invoice/box_addition.dart @@ -1,9 +1,8 @@ -import 'package:fcs/model_fcs/box_model.dart'; -import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/box.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; +import 'package:fcs/domain/entities/box.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/box/model/box_model.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/pages/invoice/invoce_list.dart b/lib/pages/invoice/invoce_list.dart index 5374e9a..6fd64d0 100644 --- a/lib/pages/invoice/invoce_list.dart +++ b/lib/pages/invoice/invoce_list.dart @@ -1,21 +1,12 @@ -import 'package:fcs/model/invoice_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/pages_fcs/package_list_row.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/local_text.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/invoice/model/invoice_model.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/pages/search_page.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../shipment_editor.dart'; -import '../shipment_list_row.dart'; import 'invoice_editor.dart'; import 'invoice_list_row.dart'; @@ -39,7 +30,7 @@ class _InvoiceListState extends State { @override Widget build(BuildContext context) { - var owner = Provider.of(context).isOwner(); + var owner = true; return LocalProgress( inAsyncCall: _isLoading, @@ -62,7 +53,7 @@ class _InvoiceListState extends State { color: Colors.white, ), iconSize: 30, - onPressed: () => showPlacesSearch(context), + // onPressed: () => showPlacesSearch(context), ), ], bottom: TabBar( @@ -95,30 +86,6 @@ class _InvoiceListState extends State { Navigator.of(context).push(BottomUpPageRoute(InvoiceEditor())); } - Widget _packages() { - var packageModel = Provider.of(context); - return Column( - children: [ - Expanded( - child: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 15), - shrinkWrap: true, - itemCount: packageModel.completed.length, - itemBuilder: (BuildContext context, int index) { - return PackageListRow( - package: packageModel.completed[index], - isReadOnly: true, - ); - }), - ), - ], - ); - } - Widget _pending() { var invoiceModel = Provider.of(context); return Column( diff --git a/lib/pages/invoice/invoice_editor.dart b/lib/pages/invoice/invoice_editor.dart index 66f5810..abf7415 100644 --- a/lib/pages/invoice/invoice_editor.dart +++ b/lib/pages/invoice/invoice_editor.dart @@ -1,26 +1,23 @@ -import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model_fcs/box_model.dart'; -import 'package:fcs/pages/invoice/package_addition.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/box.dart'; -import 'package:fcs/vo/cargo.dart'; -import 'package:fcs/vo/invoice.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/multi_img_controller.dart'; -import 'package:fcs/widget/multi_img_file.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; +import 'package:fcs/domain/entities/box.dart'; +import 'package:fcs/domain/entities/cargo.dart'; +import 'package:fcs/domain/entities/invoice.dart'; +import 'package:fcs/domain/entities/payment_method.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/discount/model/discount_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/multi_img_controller.dart'; +import 'package:fcs/pages/widgets/multi_img_file.dart'; +import 'package:fcs/pages/widgets/my_data_table.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import '../../fcs/common/pages/util.dart'; import 'box_addition.dart'; class InvoiceEditor extends StatefulWidget { @@ -32,6 +29,29 @@ class InvoiceEditor extends StatefulWidget { } class _InvoiceEditorState extends State { + List get paymentMethods { + List methods = [ + PaymentMethod( + name: 'AYA Bank', + accountName: 'FCS', + account: '100 23404320548398', + phone: '+959123456789', + ), + PaymentMethod( + name: 'KBZ Bank', + accountName: 'FCS', + account: '100 23404320548398', + phone: '+959123456789', + ), + PaymentMethod( + name: 'PayPal', + accountName: 'FCS', + link: 'https://www.paypal.com/donate/buttons', + ), + ]; + return methods; + } + var dateFormatter = new DateFormat('dd MMM yyyy'); TextEditingController _invoiceNumberController = new TextEditingController(); TextEditingController _dateController = new TextEditingController(); @@ -58,7 +78,7 @@ class _InvoiceEditorState extends State { ]; List _receipts = [ - "assets/photos/amazon_ins.png", + "assets/buying_online_with_first_last_name.png", ]; @override @@ -75,7 +95,7 @@ class _InvoiceEditorState extends State { _statusController.text = _invoice.status.toString(); _handlingFeeController.text = '0'; _customFeeController.text = '0'; - multiImgController.setImageUrls = _receipts; + // multiImgController.setImageUrls = _receipts; _descriptionController.text = 'For Electronics goods'; _balanceController.text = (_invoice.amount - _invoice.receipts[0].amount).toString(); @@ -452,7 +472,7 @@ class _InvoiceEditorState extends State { Container( width: 150.0, child: DropdownButtonFormField( - items: mainModel.paymentMethods + items: paymentMethods .map((e) => DropdownMenuItem( child: Text(e.name), value: e.name)) .toList(), @@ -598,7 +618,7 @@ class _InvoiceEditorState extends State { ), ), ), - mainModel.isOwner() + true ? Container( padding: EdgeInsets.only(top: 20), child: Align( diff --git a/lib/pages/invoice/invoice_list_row.dart b/lib/pages/invoice/invoice_list_row.dart index fffaf2c..2015c07 100644 --- a/lib/pages/invoice/invoice_list_row.dart +++ b/lib/pages/invoice/invoice_list_row.dart @@ -1,22 +1,19 @@ import 'dart:async'; import 'dart:io'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/pages/invoice/payment_pdf_screen.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/invoice.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:fcs/domain/entities/invoice.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:provider/provider.dart'; -import '../../fcs/common/pages/util.dart'; import 'invoice_editor.dart'; import 'payment_page.dart'; +import 'payment_pdf_screen.dart'; class InvoiceListRow extends StatefulWidget { final Invoice invoice; @@ -70,7 +67,7 @@ class _InvoiceListRowState extends State { @override Widget build(BuildContext context) { - var owner = Provider.of(context).isOwner(); + var owner = true; return Container( padding: EdgeInsets.only(left: 15, right: 15), child: Row( diff --git a/lib/model/invoice_model.dart b/lib/pages/invoice/model/invoice_model.dart similarity index 95% rename from lib/model/invoice_model.dart rename to lib/pages/invoice/model/invoice_model.dart index b0d2d92..fee6e5e 100644 --- a/lib/model/invoice_model.dart +++ b/lib/pages/invoice/model/invoice_model.dart @@ -1,7 +1,7 @@ -import 'package:fcs/vo/invoice.dart'; -import 'package:fcs/vo/package.dart'; - -import 'base_model.dart'; +import 'package:fcs/domain/entities/invoice.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/domain/entities/receipt.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; class InvoiceModel extends BaseModel { List invoices = [ diff --git a/lib/pages/invoice/package_addition.dart b/lib/pages/invoice/package_addition.dart deleted file mode 100644 index 72055d4..0000000 --- a/lib/pages/invoice/package_addition.dart +++ /dev/null @@ -1,107 +0,0 @@ -import 'package:fcs/model_fcs/package_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; - -class PackageAddition extends StatefulWidget { - final Package package; - PackageAddition({this.package}); - - @override - _PackageAdditionState createState() => _PackageAdditionState(); -} - -class _PackageAdditionState extends State { - Package _package = new Package(); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - if (widget.package != null) { - _package = widget.package; - } - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - var packageModel = Provider.of(context); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("package.edit.title")), - ), - body: Card( - child: Column( - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.all(10.0), - child: ListView(children: [ - DropdownButtonFormField( - decoration: InputDecoration( - fillColor: Colors.white, - labelText: 'Package Number', - icon: Icon(Icons.pages)), - items: packageModel.completed - .map((e) => DropdownMenuItem( - child: Text(e.packageNumber), value: e)) - .toList(), - onChanged: (map) => {}, - ), - ]), - )), - widget.package == null - ? Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - child: Text('Add package'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))) - : Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - child: Text('Save package'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))), - SizedBox( - height: 30, - ) - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/invoice/package_info.dart b/lib/pages/invoice/package_info.dart deleted file mode 100644 index 239af8f..0000000 --- a/lib/pages/invoice/package_info.dart +++ /dev/null @@ -1,143 +0,0 @@ -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/pickup_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:fcs/widget/label_widgets.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; - -class PackageInfo extends StatefulWidget { - final Package package; - PackageInfo({this.package}); - - @override - _PackageInfoState createState() => _PackageInfoState(); -} - -class _PackageInfoState extends State { - var dateFormatter = new DateFormat('dd MMM yyyy'); - Package _package; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - if (widget.package != null) { - _package = widget.package; - } - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("package.edit.title")), - ), - body: Card( - child: Column( - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.all(10.0), - child: ListView(children: [ - Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - Icon( - Icons.calendar_today, - ), - Padding( - padding: const EdgeInsets.only(right: 8.0, left: 15), - child: labeledText( - context, - dateFormatter.format(_package.arrivedDate), - "package.arrival.date"), - ), - ], - ), - ), - Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - Icon(Icons.pages), - Padding( - padding: const EdgeInsets.only(right: 8.0, left: 15), - child: labeledText(context, _package.packageNumber, - "package.number"), - ), - ], - ), - ), - Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - Icon(FontAwesomeIcons.weightHanging), - Padding( - padding: const EdgeInsets.only(right: 8.0, left: 15), - child: labeledText( - context, - "${_package.weight.toString()} lb", - "package.weight"), - ), - ], - ), - ), - Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - Icon(FontAwesomeIcons.tag), - Padding( - padding: const EdgeInsets.only(right: 8.0, left: 15), - child: labeledText(context, _package.rate.toString(), - "package.rate"), - ), - ], - ), - ), - Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - Icon(FontAwesomeIcons.moneyBill), - Padding( - padding: const EdgeInsets.only(right: 8.0, left: 15), - child: labeledText( - context, - _package.price == null - ? "" - : "\$ " + _package.price.toString(), - "package.amount"), - ), - ], - ), - ) - ]), - )), - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/invoice/payment_page.dart b/lib/pages/invoice/payment_page.dart index f95e7dc..b0a19a9 100644 --- a/lib/pages/invoice/payment_page.dart +++ b/lib/pages/invoice/payment_page.dart @@ -1,15 +1,12 @@ -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/invoice.dart'; -import 'package:fcs/vo/package.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/multi_img_controller.dart'; -import 'package:fcs/widget/multi_img_file.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; +import 'package:fcs/domain/entities/invoice.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/multi_img_controller.dart'; +import 'package:fcs/pages/widgets/multi_img_file.dart'; +import 'package:fcs/pages/widgets/my_data_table.dart'; +import 'package:fcs/pages/widgets/number_cell.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -38,7 +35,7 @@ class _PaymentPageState extends State { Invoice _invoice = new Invoice(); bool _isLoading = false; List _receipts = [ - "assets/photos/amazon_ins.png", + "assets/buying_online_with_first_last_name.png", ]; bool isNew; @@ -46,7 +43,7 @@ class _PaymentPageState extends State { void initState() { if (widget.invoice != null) { _invoice = widget.invoice; - multiImgController.setImageUrls = _receipts; + // multiImgController.setImageUrls = _receipts; } super.initState(); } diff --git a/lib/pages/invoice/payment_pdf_screen.dart b/lib/pages/invoice/payment_pdf_screen.dart index f3dbc4b..2d59119 100644 --- a/lib/pages/invoice/payment_pdf_screen.dart +++ b/lib/pages/invoice/payment_pdf_screen.dart @@ -1,7 +1,6 @@ import 'dart:async'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/local_text.dart'; +import 'package:fcs/helpers/theme.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_pdfview/flutter_pdfview.dart'; diff --git a/lib/pages/log_list.dart b/lib/pages/log_list.dart deleted file mode 100644 index 3f1847a..0000000 --- a/lib/pages/log_list.dart +++ /dev/null @@ -1,97 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/log_model.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -class LogList extends StatefulWidget { - @override - _LogListState createState() => _LogListState(); -} - -class _LogListState extends State { - final double dotSize = 15.0; - var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm:ss a'); - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - LogModel logModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'log.title', - color: Colors.white, - fontSize: 20, - ), - ), - body: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: logModel.logs.length, - itemBuilder: (BuildContext context, int index) { - return Stack( - children: [ - InkWell( - onTap: () {}, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 0.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Icon( - Icons.message, - color: primaryColor, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - new Text( - logModel.logs[index].deviceName, - style: new TextStyle( - fontSize: 15.0, - color: Colors.black), - ), - new Text( - "Last login at : ${logModel.logs[index].activeTime == null ? "" : dateFormatter.format(logModel.logs[index].activeTime)}", - style: new TextStyle( - fontSize: 13.0, color: Colors.grey), - ), - ], - ), - ), - ], - ), - ), - ), - ], - ), - ), - ], - ); - }), - ), - ); - } -} diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart deleted file mode 100644 index 260f11f..0000000 --- a/lib/pages/login_page.dart +++ /dev/null @@ -1,757 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/pages/reset_password.dart'; -import 'package:fcs/widget/bubble_indication_painter.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart' as Theme; -import 'forget_password.dart'; -import 'sms_page.dart'; -import '../fcs/common/pages/util.dart'; - -class LoginPage extends StatefulWidget { - LoginPage({Key key}) : super(key: key); - - @override - _LoginPageState createState() => new _LoginPageState(); -} - -class _LoginPageState extends State - with SingleTickerProviderStateMixin { - final GlobalKey _scaffoldKey = new GlobalKey(); - - final FocusNode myFocusNodeEmailLogin = FocusNode(); - final FocusNode myFocusNodePasswordLogin = FocusNode(); - - final FocusNode myFocusNodePassword = FocusNode(); - final FocusNode myFocusNodeEmail = FocusNode(); - final FocusNode myFocusNodeName = FocusNode(); - - TextEditingController loginPhoneController = new TextEditingController(); - TextEditingController loginPasswordController = new TextEditingController(); - - bool _obscureTextLogin = true; - bool _obscureTextSignup = true; - bool _obscureTextSignupConfirm = true; - - TextEditingController signupPhoneNumberController = - new TextEditingController(); - TextEditingController signupNameController = new TextEditingController(); - TextEditingController signupPasswordController = new TextEditingController(); - TextEditingController signupConfirmPasswordController = - new TextEditingController(); - - PageController _pageController; - - Color left = Colors.black; - Color right = Colors.white; - final loginFormKey = GlobalKey(); - final signupFormKey = GlobalKey(); - - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - key: _scaffoldKey, - appBar: AppBar( - backgroundColor: Colors.white, - iconTheme: IconThemeData( - color: Colors.grey, - ), - elevation: 0, - centerTitle: true, - title: new Image( - height: 30, - fit: BoxFit.scaleDown, - image: new AssetImage('assets/img/logo.png')), - ), - body: SingleChildScrollView( - child: Container( - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height >= 775.0 - ? MediaQuery.of(context).size.height - : 580.0, - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Padding( - padding: EdgeInsets.only(top: 50.0), - child: _buildMenuBar(context), - ), - Expanded( - flex: 2, - child: PageView( - controller: _pageController, - onPageChanged: (i) { - if (i == 0) { - setState(() { - right = Colors.white; - left = Colors.black; - }); - } else if (i == 1) { - setState(() { - right = Colors.black; - left = Colors.white; - }); - } - }, - children: [ - new ConstrainedBox( - constraints: const BoxConstraints.expand(), - child: _buildLogin(context), - ), - new ConstrainedBox( - constraints: const BoxConstraints.expand(), - child: _buildSignUp(context), - ), - ], - ), - ), - ], - ), - ), - ), - ), - ); - } - - @override - void dispose() { - myFocusNodePassword.dispose(); - myFocusNodeEmail.dispose(); - myFocusNodeName.dispose(); - _pageController?.dispose(); - super.dispose(); - } - - @override - void initState() { - super.initState(); - - // SystemChrome.setPreferredOrientations([ - // DeviceOrientation.portraitUp, - // DeviceOrientation.portraitDown, - // ]); - - _pageController = PageController(); - loginPhoneController.text = "09"; - signupPhoneNumberController.text = "09"; - } - - Widget _buildMenuBar(BuildContext context) { - return Container( - width: 300.0, - height: 40.0, - decoration: BoxDecoration( - color: Color(0x552B2B2B), - borderRadius: BorderRadius.all(Radius.circular(25.0)), - ), - child: CustomPaint( - painter: TabIndicationPainter(pageController: _pageController), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Expanded( - child: FlatButton( - onPressed: _onSignInButtonPress, - child: Text( - AppTranslations.of(context).text("login.title"), - style: Provider.of(context).isEng - ? TextStyle( - color: left, - fontSize: 14.0, - fontFamily: "WorkSansSemiBold") - : TextStyle( - color: left, - fontSize: 15.0, - fontFamily: "MyanmarUnicode"), - ), - ), - ), - //Container(height: 33.0, width: 1.0, color: Colors.white), - Expanded( - child: FlatButton( - onPressed: _onSignUpButtonPress, - child: Text( - AppTranslations.of(context).text("sing.title"), - style: Provider.of(context).isEng - ? TextStyle( - color: right, - fontSize: 14.0, - fontFamily: "WorkSansSemiBold") - : TextStyle( - color: right, - fontSize: 15.0, - fontFamily: "MyanmarUnicode"), - ), - ), - ), - ], - ), - ), - ); - } - - Widget _buildLogin(BuildContext context) { - return Container( - child: ListView( - children: [ - Column( - children: [ - Form( - key: loginFormKey, - child: Card( - elevation: 2.0, - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.0), - ), - child: Container( - width: 300.0, - child: Column( - children: [ - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodeEmailLogin, - controller: loginPhoneController, - keyboardType: TextInputType.phone, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.phone, - color: Colors.black, - size: 22.0, - ), - labelText: AppTranslations.of(context) - .text("login.phone"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - ), - validator: _validatePhone, - ), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodePasswordLogin, - controller: loginPasswordController, - obscureText: _obscureTextLogin, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - size: 22.0, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.password"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleLogin, - child: Icon( - _obscureTextLogin - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validatePassword, - ), - ), - ], - ), - ), - ), - ), - Container( - decoration: new BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(5.0)), - color: Theme.primaryColor, - ), - child: MaterialButton( - child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 10.0, horizontal: 42.0), - child: Text( - AppTranslations.of(context).text("login.btn"), - style: Provider.of(context).isEng - ? TextStyle( - color: Colors.white, - fontSize: 18.0, - fontWeight: FontWeight.bold, - fontFamily: "WorkSansBold") - : TextStyle( - color: Colors.white, - fontSize: 16.0, - fontWeight: FontWeight.bold, - fontFamily: "MyanmarUnicode"), - ), - ), - onPressed: () => _login(context)), - ), - ], - ), - Padding( - padding: EdgeInsets.only(top: 10.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - decoration: BoxDecoration( - gradient: new LinearGradient( - colors: [ - Colors.white10, - Colors.white, - ], - begin: const FractionalOffset(0.0, 0.0), - end: const FractionalOffset(1.0, 1.0), - stops: [0.0, 1.0], - tileMode: TileMode.clamp), - ), - width: 100.0, - height: 1.0, - ), - Container( - decoration: BoxDecoration( - gradient: new LinearGradient( - colors: [ - Colors.white, - Colors.white10, - ], - begin: const FractionalOffset(0.0, 0.0), - end: const FractionalOffset(1.0, 1.0), - stops: [0.0, 1.0], - tileMode: TileMode.clamp), - ), - width: 100.0, - height: 1.0, - ), - ], - ), - ), - Padding( - padding: EdgeInsets.only(top: 10.0), - child: FlatButton( - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ForgetPassword( - phoneNumber: loginPhoneController.text, - ))); - }, - child: Text( - AppTranslations.of(context).text("login.forgot_password"), - style: Provider.of(context).isEng - ? TextStyle( - decoration: TextDecoration.underline, - color: Colors.black, - fontSize: 16.0, - fontFamily: "WorkSansMedium") - : TextStyle( - decoration: TextDecoration.underline, - color: Colors.black, - fontSize: 16.0, - fontFamily: "MyanmarUnicode"), - )), - ), - ], - ), - ); - } - - Widget _buildSignUp(BuildContext context) { - return Container( - child: ListView( - children: [ - Column( - children: [ - Form( - key: signupFormKey, - child: Card( - elevation: 2.0, - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.0), - ), - child: Container( - width: 300.0, - child: Column( - children: [ - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodeName, - controller: signupNameController, - keyboardType: TextInputType.text, - textCapitalization: TextCapitalization.words, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.user, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.name"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - hintStyle: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context) - .text("login.name_empty"); - } - return null; - }), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodeEmail, - controller: signupPhoneNumberController, - keyboardType: TextInputType.phone, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.phone, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.phone"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - ), - validator: _validatePhone), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodePassword, - controller: signupPasswordController, - obscureText: _obscureTextSignup, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.password"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleSignup, - child: Icon( - _obscureTextSignup - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validatePassword, - ), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - controller: signupConfirmPasswordController, - obscureText: _obscureTextSignupConfirm, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.confirm_password"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleSignupConfirm, - child: Icon( - _obscureTextSignupConfirm - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validatePassword, - ), - ), - ], - ), - ), - ), - ), - Container( - // margin: EdgeInsets.only(top: 320.0), - decoration: new BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(5.0)), - color: Theme.primaryColor, - ), - child: MaterialButton( - highlightColor: Colors.transparent, - splashColor: Theme.LoginColors.loginGradientEnd, - //shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(5.0))), - child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 10.0, horizontal: 42.0), - child: Text( - AppTranslations.of(context).text("sing.up"), - style: Provider.of(context).isEng - ? TextStyle( - color: Colors.white, - fontSize: 18.0, - fontFamily: "WorkSansBold") - : TextStyle( - color: Colors.white, - fontSize: 16.0, - fontFamily: "MyanmarUnicode"), - ), - ), - onPressed: () => _signup(context)), - ), - ], - ), - ], - ), - ); - } - - void _onSignInButtonPress() { - _pageController.animateToPage(0, - duration: Duration(milliseconds: 500), curve: Curves.decelerate); - } - - void _onSignUpButtonPress() { - _pageController?.animateToPage(1, - duration: Duration(milliseconds: 500), curve: Curves.decelerate); - } - - void _toggleLogin() { - setState(() { - _obscureTextLogin = !_obscureTextLogin; - }); - } - - void _toggleSignup() { - setState(() { - _obscureTextSignup = !_obscureTextSignup; - }); - } - - void _toggleSignupConfirm() { - setState(() { - _obscureTextSignupConfirm = !_obscureTextSignupConfirm; - }); - } - - void _signup(BuildContext context) async { - if (!signupFormKey.currentState.validate()) { - return; - } - setState(() { - _isLoading = true; - }); - - MainModel authModel = Provider.of(context); - - var name = signupNameController.text; - var password = signupPasswordController.text; - var confirmPassword = signupConfirmPasswordController.text; - var phoneNumber = signupPhoneNumberController.text; - try { - await authModel.signup(name, password, confirmPassword, phoneNumber); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - SmsCodePage(id: phoneNumber, password: password), - ), - ); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - } - - void _login(BuildContext context) async { - if (!loginFormKey.currentState.validate()) { - return; - } - - setState(() { - _isLoading = true; - }); - MainModel mainModel = Provider.of(context); - var phoneNumber = loginPhoneController.text; - var password = loginPasswordController.text; - - try { - await mainModel.login(phoneNumber, password); - Navigator.pushNamedAndRemoveUntil(context, "/", (r) => false); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } - - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - - String _validatePassword(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.password_empty"); - } - if (value.length < 6) { - return AppTranslations.of(context).text("login.password_size"); - } - return null; - } - - String _validatePhone(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.phone_empty"); - } - if (!value.startsWith("09") && !value.startsWith("959")) { - return 'Only "09 or 959".'; - } - return null; - } - - Future _forgetPassword() async { - var phoneNumber = loginPhoneController.text; - if (phoneNumber.isEmpty) { - showMsgDialog(context, "Error", "Please input phone number"); - return; - } - setState(() { - _isLoading = true; - }); - try { - UserModel userModel = Provider.of(context); - await userModel.forgetPassword(phoneNumber); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ResetPasswordPage(phoneNumber))); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/fcs/common/pages/home_page.dart b/lib/pages/main/home_page.dart similarity index 71% rename from lib/fcs/common/pages/home_page.dart rename to lib/pages/main/home_page.dart index 9474028..f916421 100644 --- a/lib/fcs/common/pages/home_page.dart +++ b/lib/pages/main/home_page.dart @@ -1,34 +1,31 @@ import 'dart:async'; import 'dart:io'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/localization/transalation.dart'; -import 'package:fcs/fcs/common/pages/buying_instruction/buying_online.dart'; -import 'package:fcs/fcs/common/pages/chat/message_detail.dart'; -import 'package:fcs/fcs/common/pages/chat/model/message_model.dart'; -import 'package:fcs/fcs/common/pages/chat/notification_list.dart'; -import 'package:fcs/fcs/common/pages/customer/customer_list.dart'; -import 'package:fcs/fcs/common/pages/customer/model/customer_model.dart'; -import 'package:fcs/fcs/common/pages/faq/faq_list_page.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/package/package_list.dart'; -import 'package:fcs/fcs/common/pages/payment_methods/payment_method_page.dart'; -import 'package:fcs/fcs/common/pages/staff/staff_list.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/action_button.dart'; -import 'package:fcs/fcs/common/pages/widgets/badge.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart'; -import 'package:fcs/fcs/common/services/services.dart'; -import 'package:fcs/pages/discount_list.dart'; -import 'package:fcs/pages/shipment_list.dart'; -import 'package:fcs/pages/term.dart'; -import 'package:fcs/pages_fcs/box_list.dart'; -import 'package:fcs/pages_fcs/delivery_list.dart'; -import 'package:fcs/widget/banner.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/offline_redirect.dart'; -import 'package:fcs/widget/right_left_page_rout.dart'; +import 'package:fcs/data/services/services.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/transalation.dart'; +import 'package:fcs/pages/box/box_list.dart'; +import 'package:fcs/pages/chat/message_detail.dart'; +import 'package:fcs/pages/chat/model/message_model.dart'; +import 'package:fcs/pages/customer/customer_list.dart'; +import 'package:fcs/pages/customer/model/customer_model.dart'; +import 'package:fcs/pages/delivery/delivery_list.dart'; +import 'package:fcs/pages/discount/discount_list.dart'; +import 'package:fcs/pages/faq/faq_list_page.dart'; +import 'package:fcs/pages/fcs_shipment/fcs_shipment_list.dart'; +import 'package:fcs/pages/invoice/invoce_list.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/package/package_list.dart'; +import 'package:fcs/pages/rates/shipment_rates.dart'; +import 'package:fcs/pages/shipment/pickup_list.dart'; +import 'package:fcs/pages/staff/staff_list.dart'; +import 'package:fcs/pages/widgets/task_button.dart'; +import 'package:fcs/pages/widgets/badge.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/bottom_widgets.dart'; +import 'package:fcs/pages/widgets/right_left_page_rout.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; @@ -38,13 +35,10 @@ import 'package:intl/intl.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; -import '../../../pages/fcs_profile_page.dart'; -import '../../../pages/invoice/invoce_list.dart'; -import '../../../pages/pickup_list.dart'; -import '../../../pages/shipment_rates.dart'; -import '../helpers/theme.dart'; -import 'profile/profile_page.dart'; -import 'signin/signin_page.dart'; +import '../profile/profile_page.dart'; +import '../signin/signin_page.dart'; +import '../widgets/banner.dart'; +import '../widgets/offline_redirect.dart'; final msgLog = Logger('backgroundMessageHandler'); @@ -187,80 +181,50 @@ class _HomePageState extends State { super.dispose(); } - static final List chartDropdownItems = [ - 'Last 7 days', - 'Last month', - 'Last three months' - ]; - String actualDropdown = chartDropdownItems[0]; - int actualChart = 0; - final numberFormatter = new NumberFormat("#,###"); - - String pin; - @override Widget build(BuildContext context) { User user = Provider.of(context).user; - customer = Provider.of(context).isCustomer(); if (user == null) { return Container(); } + customer = Provider.of(context).isCustomer(); login = Provider.of(context).isLogin(); LanguageModel languageModel = Provider.of(context); - final faqBtn = _buildBtn("faq.btn", + final faqBtn = TaskButton("faq.btn", icon: MaterialCommunityIcons.frequently_asked_questions, btnCallback: () => Navigator.of(context).push(CupertinoPageRoute( builder: (context) => FAQListPage(), ))); - final packagesBtn = _buildBtn("package.btn.name", + final packagesBtn = TaskButton("package.btn.name", icon: Octicons.package, btnCallback: () => Navigator.of(context).push( CupertinoPageRoute(builder: (context) => PackageList()))); - final boxesBtn = _buildBtn("boxes.name", + final boxesBtn = TaskButton("boxes.name", icon: MaterialCommunityIcons.package, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(BoxList()))); - final pickUpBtn = _buildBtn("pickup", + final pickUpBtn = TaskButton("pickup", icon: SimpleLineIcons.direction, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(PickUpList()))); - final shipmentCostBtn = _buildBtn("rate", + final shipmentCostBtn = TaskButton("rate", icon: FontAwesomeIcons.calculator, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(ShipmentRates()))); - final fcsProfileBtn = _buildBtn("fcs.btn", - // imgIcon: Image.asset("assets/logo_btn.png", height: 25,color:Colors.white), - icon: MaterialCommunityIcons.home_city, - btnCallback: () => - Navigator.of(context).push(BottomUpPageRoute(FCSProfilePage()))); - - final shipmentBtn = _buildBtn("shipment.title", + final fcsShipmentBtn = TaskButton("shipment.title", icon: Ionicons.ios_airplane, - imgIcon: Image.asset( - "assets/truck.png", - width: 50, - height: 50, - color: primaryColor, - ), btnCallback: () => - Navigator.of(context).push(BottomUpPageRoute(ShipmentList()))); - - final buyingBtn = _buildBtn("buy_online", - icon: MaterialCommunityIcons.cart_outline, btnCallback: () { - Navigator.push(context, BottomUpPageRoute(BuyingOnlinePage()) - // MaterialPageRoute(builder: (context) => BuyingOnlinePage()), - ); - }); + Navigator.of(context).push(BottomUpPageRoute(FcsShipmentList()))); final notiBtnOrg = - _buildBtn("message.btn", icon: Icons.message, btnCallback: () { + TaskButton("message.btn", icon: Icons.message, btnCallback: () { MessageModel messageModel = Provider.of(context, listen: false); messageModel.initQuery(user.id); @@ -280,7 +244,7 @@ class _HomePageState extends State { }); final notiBtn = badgeCounter(notiBtnOrg, user.userUnseenCount); - final staffBtn = _buildBtn( + final staffBtn = TaskButton( "staff.title", icon: MaterialCommunityIcons.worker, btnCallback: () => Navigator.of(context).push(CupertinoPageRoute( @@ -288,32 +252,23 @@ class _HomePageState extends State { )), ); - final customersBtn = _buildBtn("customers.btn", + final customersBtn = TaskButton("customers.btn", icon: Feather.users, btnCallback: () => Navigator.of(context).push(CupertinoPageRoute( builder: (context) => CustomerList(), ))); - final invoicesBtn = _buildBtn("invoices.btn", + final invoicesBtn = TaskButton("invoices.btn", icon: FontAwesomeIcons.fileInvoice, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(InvoiceList()))); - final paymentMethodBtn = _buildBtn("pm.btn", - icon: FontAwesomeIcons.creditCard, - btnCallback: () => - Navigator.of(context).push(BottomUpPageRoute(PaymentMethodPage()))); - - final discountBtn = _buildBtn("discount.btn", + final discountBtn = TaskButton("discount.btn", icon: Entypo.price_ribbon, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(DiscountList()))); - final termBtn = _buildBtn("term.btn", - icon: FontAwesomeIcons.info, - btnCallback: () => - Navigator.of(context).push(BottomUpPageRoute(Term()))); - final deliveryBtn = _buildBtn("delivery.title", + final deliveryBtn = TaskButton("delivery.title", icon: MaterialCommunityIcons.truck_fast, btnCallback: () => Navigator.of(context).push(BottomUpPageRoute(DeliverList()))); @@ -321,21 +276,17 @@ class _HomePageState extends State { List widgets = []; widgets.add(faqBtn); if (user != null) { - // customer ? widgets.add(buyingBtn) : ""; - // customer || owner ? widgets.add(pickUpBtn) : ""; - // !customer ? widgets.add(shipmentBtn) : ""; + true ? widgets.add(pickUpBtn) : ""; + !customer ? widgets.add(fcsShipmentBtn) : ""; customer ? widgets.add(notiBtn) : ""; user.hasStaffs() ? widgets.add(staffBtn) : ""; - // owner ? widgets.add(fcsProfileBtn) : ""; - // widgets.add(shipmentCostBtn); + widgets.add(shipmentCostBtn); user.hasPackages() ? widgets.add(packagesBtn) : ""; - // owner ? widgets.add(boxesBtn) : ""; - // owner ? widgets.add(deliveryBtn) : ""; + true ? widgets.add(boxesBtn) : ""; + true ? widgets.add(deliveryBtn) : ""; user.hasCustomers() ? widgets.add(customersBtn) : ""; - // customer || owner ? widgets.add(invoicesBtn) : ""; - // widgets.add(paymentMethodBtn); - // owner ? widgets.add(discountBtn) : ""; - // widgets.add(termBtn); + true ? widgets.add(invoicesBtn) : ""; + true ? widgets.add(discountBtn) : ""; } return OfflineRedirect( child: FlavorBanner( @@ -424,7 +375,7 @@ class _HomePageState extends State { Expanded( child: ListView(children: [ Wrap( - alignment: WrapAlignment.start, + alignment: WrapAlignment.center, children: widgets, ), ]), @@ -447,9 +398,7 @@ class _HomePageState extends State { }); } - Widget _buildBtn(String title, - {Image imgIcon, IconData icon, BtnCallback btnCallback}) { - return ActionButton( - title: title, imgIcon: imgIcon, icon: icon, btnCallback: btnCallback); - } + // Widget _buildBtn(String title, {IconData icon, BtnCallback btnCallback}) { + // return TaskButton(titleKey: title, icon: icon, btnCallback: btnCallback); + // } } diff --git a/lib/fcs/common/pages/initial_language_selection.dart b/lib/pages/main/initial_language_selection.dart similarity index 93% rename from lib/fcs/common/pages/initial_language_selection.dart rename to lib/pages/main/initial_language_selection.dart index 9ec4240..7d6a018 100644 --- a/lib/fcs/common/pages/initial_language_selection.dart +++ b/lib/pages/main/initial_language_selection.dart @@ -1,11 +1,11 @@ -import 'package:fcs/fcs/common/helpers/shared_pref.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/transalation.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/signin/signin_page.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/helpers/shared_pref.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/transalation.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/signin/signin_page.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/model/base_model.dart b/lib/pages/main/model/base_model.dart similarity index 78% rename from lib/fcs/common/pages/model/base_model.dart rename to lib/pages/main/model/base_model.dart index c9b18a7..ac8b8b5 100644 --- a/lib/fcs/common/pages/model/base_model.dart +++ b/lib/pages/main/model/base_model.dart @@ -1,7 +1,7 @@ -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; +import 'package:fcs/domain/entities/setting.dart'; +import 'package:fcs/domain/entities/user.dart'; import 'package:flutter/foundation.dart'; -import 'package:fcs/fcs/common/helpers/api_helper.dart'; +import 'package:fcs/helpers/api_helper.dart'; import 'main_model.dart'; diff --git a/lib/fcs/common/pages/model/language_model.dart b/lib/pages/main/model/language_model.dart similarity index 90% rename from lib/fcs/common/pages/model/language_model.dart rename to lib/pages/main/model/language_model.dart index 47c9186..b6bd04c 100644 --- a/lib/fcs/common/pages/model/language_model.dart +++ b/lib/pages/main/model/language_model.dart @@ -1,5 +1,5 @@ -import 'package:fcs/fcs/common/localization/transalation.dart'; -import 'package:fcs/fcs/common/helpers/shared_pref.dart'; +import 'package:fcs/localization/transalation.dart'; +import 'package:fcs/helpers/shared_pref.dart'; import 'package:flutter/painting.dart'; import 'base_model.dart'; diff --git a/lib/fcs/common/pages/model/main_model.dart b/lib/pages/main/model/main_model.dart similarity index 90% rename from lib/fcs/common/pages/model/main_model.dart rename to lib/pages/main/model/main_model.dart index d8eea61..fc219d4 100644 --- a/lib/fcs/common/pages/model/main_model.dart +++ b/lib/pages/main/model/main_model.dart @@ -1,12 +1,12 @@ import 'dart:async'; -import 'package:fcs/fcs/common/domain/entities/auth_result.dart'; -import 'package:fcs/fcs/common/domain/entities/setting.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/helpers/network_connectivity.dart'; -import 'package:fcs/fcs/common/helpers/shared_pref.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; +import 'package:fcs/data/services/services.dart'; +import 'package:fcs/domain/entities/auth_result.dart'; +import 'package:fcs/domain/entities/setting.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/network_connectivity.dart'; +import 'package:fcs/helpers/shared_pref.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:flutter/foundation.dart'; import 'package:logging/logging.dart'; import 'package:package_info/package_info.dart'; diff --git a/lib/fcs/common/pages/splash_page.dart b/lib/pages/main/splash_page.dart similarity index 93% rename from lib/fcs/common/pages/splash_page.dart rename to lib/pages/main/splash_page.dart index 6658f11..4651fc0 100644 --- a/lib/fcs/common/pages/splash_page.dart +++ b/lib/pages/main/splash_page.dart @@ -1,8 +1,8 @@ import 'dart:async'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/util.dart b/lib/pages/main/util.dart similarity index 68% rename from lib/fcs/common/pages/util.dart rename to lib/pages/main/util.dart index 537e014..eed5b76 100644 --- a/lib/fcs/common/pages/util.dart +++ b/lib/pages/main/util.dart @@ -1,34 +1,13 @@ -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/chat/message_detail.dart'; -import 'package:fcs/fcs/common/pages/chat/model/message_model.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/services/services.dart'; -import 'package:fcs/widget/label_widgets.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_colorpicker/flutter_colorpicker.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; -import 'package:fcs/model/announcement_model.dart'; -import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/model/do_model.dart'; -import 'package:fcs/model/notification_model.dart'; -import 'package:fcs/model/po_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/vo/notification.dart' as Noti; -import '../../../pages/announcement.dart'; -import '../../../pages/buyer_info.dart'; -import '../../../pages/do/do_approve.dart'; -import '../../../pages/log_list.dart'; -import '../../../pages/my_registeration_info.dart'; -import '../../../pages/po/po_submission_form.dart'; -import '../../../pages/products_list.dart'; -import '../../../pages/user_editor.dart'; +import '../widgets/label_widgets.dart'; final log = Logger('Util'); @@ -52,42 +31,6 @@ Future showMsgDialog(BuildContext context, String title, String msg) { ); } -var selectedColor; -void showColorPicker(BuildContext context, Color color, callback(Color color)) { - showDialog( - context: context, - child: AlertDialog( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(32.0))), - title: const Text('Pick product color'), - content: SingleChildScrollView( - child: ColorPicker( - pickerColor: color.value == 0 ? Colors.red : color, - pickerAreaHeightPercent: 0.6, - onColorChanged: (Color value) { - selectedColor = value; - }, - ), - ), - actions: [ - FlatButton( - child: const Text('Choose'), - onPressed: () { - callback(selectedColor == null ? Colors.red : selectedColor); - Navigator.of(context).pop(); - }, - ), - FlatButton( - child: const Text('Cancel'), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - ], - ), - ); -} - Future showConfirmDialog( BuildContext context, String translationKey, ok(), {List translationVariables}) async { @@ -114,7 +57,7 @@ Future showConfirmDialog( AppTranslations.of(context).text('Cancel'), style: Provider.of(context).isEng ? TextStyle() - : TextStyle(fontFamily: 'MyanmarUnicode'), + : TextStyle(fontFamily: 'Myanmar3'), ), onPressed: () { Navigator.of(context).pop(); @@ -132,7 +75,7 @@ Future showConfirmDialog( : TextStyle( color: Colors.white, fontWeight: FontWeight.bold, - fontFamily: 'MyanmarUnicode')), + fontFamily: 'Myanmar3')), onPressed: () async { Navigator.of(context).pop(); await ok(); @@ -321,75 +264,6 @@ call(BuildContext context, String phone) { translationVariables: ["$phone"]); } -Future displayNotiContent( - BuildContext context, Noti.Notification noti) async { - if (!noti.seen) { - Provider.of(context, listen: false).seenID(noti.id); - } - - try { - if (noti.itemType == "buyer") { - BuyerModel buyerModel = Provider.of(context, listen: false); - Buyer buyer = await buyerModel.getBuyer(noti.itemID); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => BuyerInfo( - buyer: buyer, - )), - ); - } else if (noti.itemType == "announcement") { - AnnouncementModel announcementModel = - Provider.of(context, listen: false); - var announce = await announcementModel.getAnnouncement(noti.itemID); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => AnnouncementPage(announcement: announce)), - ); - } else if (noti.itemType == "reg") { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => MyRegisterationInfo()), - ); - } else if (noti.itemType == "po") { - POSubmissionModel poModel = - Provider.of(context, listen: false); - var po = await poModel.getPO(noti.itemID); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => POSubmissionForm( - poSubmission: po, - )), - ); - } else if (noti.itemType == "do") { - DOModel doModel = Provider.of(context, listen: false); - var _do = await doModel.getDO(noti.itemID); - Navigator.push( - context, - MaterialPageRoute(builder: (context) => DOApproval(doSubmission: _do)), - ); - } else if (noti.itemType == "price") { - Navigator.of(context) - .push(MaterialPageRoute(builder: (_) => ProductsList())); - } else if (noti.itemType == 'new_device_login') { - Navigator.of(context).push(MaterialPageRoute(builder: (_) => LogList())); - } else if (noti.itemType == 'user') { - UserModel userModel = Provider.of(context, listen: false); - var user = await userModel.getUser(noti.itemID); - Navigator.of(context).push(MaterialPageRoute( - builder: (_) => UserEditor( - user: user, - viewOnly: true, - ))); - } - } catch (e) { - log.warning("Error:$e \n ${noti.toString()}"); - showMsgDialog(context, "Error", "Notification item not found!"); - } finally {} -} - Widget nameWidget(String name) { return Center( child: Padding( @@ -443,37 +317,6 @@ Widget fcsInput(String label, IconData iconData, focusedBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.grey, width: 1.0)), )); - // return Row( - // children: [ - // Padding( - // padding: const EdgeInsets.only(right: 8.0), - // child: Icon(iconData), - // ), - // Expanded( - // child: Container( - // child: Row(children: [ - // Expanded( - // child: TextFormField( - // initialValue: value, - // controller: controller, - // cursorColor: primaryColor, - // maxLines: null, - // minLines: 1, - // textAlign: TextAlign.left, - // decoration: new InputDecoration( - // contentPadding: EdgeInsets.only(top: 8), - // labelText: label, - // labelStyle: TextStyle(fontSize: 14, color: Colors.grey), - // enabledBorder: UnderlineInputBorder( - // borderSide: BorderSide(color: primaryColor, width: 1.0)), - // focusedBorder: UnderlineInputBorder( - // borderSide: BorderSide(color: primaryColor, width: 1.0)), - // ), - // )), - // ]), - // )), - // ], - // ); } Widget fcsInputReadOnly(String label, IconData iconData, @@ -496,34 +339,6 @@ Widget fcsInputReadOnly(String label, IconData iconData, color: primaryColor, ), )); - // return Row( - // children: [ - // Padding( - // padding: const EdgeInsets.only(right: 8.0), - // child: Icon(iconData), - // ), - // Expanded( - // child: Container( - // child: Row(children: [ - // Expanded( - // child: TextFormField( - // initialValue: value, - // controller: controller, - // cursorColor: primaryColor, - // maxLines: null, - // minLines: 1, - // readOnly: true, - // textAlign: TextAlign.left, - // decoration: new InputDecoration( - // border: InputBorder.none, - // contentPadding: EdgeInsets.only(top: 8), - // labelText: label, - // ), - // )), - // ]), - // )), - // ], - // ); } Widget fcsDropDown(String label, IconData iconData, diff --git a/lib/fcs/common/pages/welcome_page.dart b/lib/pages/main/welcome_page.dart similarity index 91% rename from lib/fcs/common/pages/welcome_page.dart rename to lib/pages/main/welcome_page.dart index 03bb677..0098891 100644 --- a/lib/fcs/common/pages/welcome_page.dart +++ b/lib/pages/main/welcome_page.dart @@ -1,17 +1,17 @@ -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart'; -import 'package:fcs/widget/banner.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/localization/transalation.dart'; -import 'package:fcs/widget/offline_redirect.dart'; +import 'package:fcs/localization/transalation.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_widgets.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; -import '../helpers/theme.dart'; -import 'signin/signin_page.dart'; +import '../../helpers/theme.dart'; +import '../signin/signin_page.dart'; +import '../widgets/banner.dart'; +import '../widgets/bottom_up_page_route.dart'; +import '../widgets/offline_redirect.dart'; final msgLog = Logger('backgroundMessageHandler'); diff --git a/lib/pages/manual/instruction_data_page.dart b/lib/pages/manual/instruction_data_page.dart deleted file mode 100644 index 669b9a4..0000000 --- a/lib/pages/manual/instruction_data_page.dart +++ /dev/null @@ -1,227 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/pages/manual/moveable_stack_item.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/manual.dart'; -import 'package:path/path.dart' as Path; -import 'package:fcs/widget/progress.dart'; - -class InstructionDataPage extends StatefulWidget { - final SlideData slideData; - final String path; - final int slideIndex; - final int manIndex; - - InstructionDataPage( - {this.slideData, this.path, this.slideIndex, this.manIndex}); - @override - _InstructionDataPageState createState() => _InstructionDataPageState(); -} - -class _InstructionDataPageState extends State { - String selectedLanguage; - File slideImageFile; - bool isEng; - List _selection = List.generate(2, (_) => false); - String imgName; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - isEng = true; - } - - @override - Widget build(BuildContext context) { - var manualModel = Provider.of(context); - if (isEng) { - imgName = widget.slideData.image; - } else { - imgName = widget.slideData.imagemm; - } - - var screenSize = MediaQuery.of(context).size; - var width = screenSize.width; - var imgWidth = width - (width * 0.15); - var height = screenSize.height; - var imgHeight = height - (height * 0.29); - - var toggleButtons = Container( - child: ToggleButtons( - children: [ - Row( - children: [ - Image.asset( - "assets/eng_flag.png", - width: 25, - ), - Text( - "English", - style: - TextStyle(color: this.isEng ? secondaryColor : Colors.black), - ) - ], - ), - Container( - padding: EdgeInsets.only(left: 10, right: 10), - child: Row( - children: [ - Image.asset( - "assets/myan_flag.png", - width: 25, - ), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - "မြန်မာ", - style: TextStyle( - color: !this.isEng ? secondaryColor : Colors.black, - fontFamily: "MyanmarUnicode"), - ), - ) - ], - ), - ) - ], - renderBorder: false, - isSelected: _selection, - selectedColor: secondaryColor, - onPressed: (int index) { - setState(() { - _selection[index] = !_selection[index]; - if (index == 0) { - this.isEng = true; - } else { - this.isEng = false; - } - }); - }, - )); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: Text('Instruction Data'), - actions: [toggleButtons], - ), - body: Container( - alignment: Alignment.topCenter, - child: Stack( - children: [ - Container( - child: Stack( - children: instructionData( - context, imgWidth, imgHeight, manualModel), - ), - ), - Positioned( - top: 0, - right: 0, - child: IconButton( - icon: Icon(Icons.image), - onPressed: () { - pickImageFromGallery(ImageSource.gallery, manualModel); - }), - ) - ], - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: () { - addInstructionData(); - }, - tooltip: 'Pick Image', - child: Icon(Icons.add), - ), - ), - ); - } - - addInstructionData() { - var instructionList = - isEng ? widget.slideData.instructions : widget.slideData.instructionsmm; - Instruction inst; - if (instructionList.toList().length == 0) { - inst = Instruction( - id: 1, - text: '', - left: 0.0, - top: 0.0, - ); - } else { - dynamic max = instructionList.first; - instructionList.forEach((e) { - if (e.id > max.id) max = e; - }); - inst = Instruction( - id: max.id + 1, - text: '', - left: 0.0, - top: 0.0, - ); - } - - setState(() { - if (isEng) { - widget.slideData.instructions.add(inst); - } else { - widget.slideData.instructionsmm.add(inst); - } - }); - } - - instructionData( - BuildContext context, double imgW, double imgH, ManualModel manualModel) { - List textFields = []; - textFields.add( - Image.file( - File('${widget.path}/manual/img/' + imgName), - alignment: AlignmentDirectional.topCenter, - height: imgH, - width: imgW, - ), - ); - var instructionList = - isEng ? widget.slideData.instructions : widget.slideData.instructionsmm; - if (instructionList.length != 0) { - instructionList.asMap().forEach((k, instruction) { - MoveableStackItem mitem = MoveableStackItem( - instruction: instruction, - manIndex: widget.manIndex, - slideIndex: widget.slideIndex, - instIndex: k, - isEng: this.isEng, - key: Key(this.isEng.toString() + k.toString()), - ); - - textFields.add(mitem); - }); - } - return textFields; - } - - pickImageFromGallery(ImageSource source, ManualModel manualModel) async { - File tempImage = await ImagePicker.pickImage( - source: source, imageQuality: 80, maxWidth: 300); - - var fileName = Path.basename(tempImage.path); - var path = '${manualModel.dataDir}'; - File newImage = await tempImage.copy('$path/manual/img/$fileName'); - var slideData = widget.slideData; - if (this.isEng) { - slideData.image = fileName; - } else { - slideData.imagemm = fileName; - } - - manualModel.changeSlideImage(widget.manIndex, widget.slideIndex, slideData); - } -} diff --git a/lib/pages/manual/manual_item_title_dialog.dart b/lib/pages/manual/manual_item_title_dialog.dart deleted file mode 100644 index 93121a4..0000000 --- a/lib/pages/manual/manual_item_title_dialog.dart +++ /dev/null @@ -1,78 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/vo/manual.dart'; - -class ManualItemTitleDialog extends StatefulWidget { - @override - State createState() { - return _ManualItemTitleDialogState(); - } -} - -class _ManualItemTitleDialogState extends State { - TextEditingController _engTextFieldController = TextEditingController(); - TextEditingController _mmTextFieldController = TextEditingController(); - ManualItem item; - bool buyer = false; - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - return AlertDialog( - title: new Text('Enter Title'), - content: Container( - height: 200, - child: Column( - children: [ - TextField( - controller: _engTextFieldController, - decoration: InputDecoration(hintText: "Enter English"), - maxLines: null, - style: TextStyle(fontSize: 13.0), - ), - TextField( - controller: _mmTextFieldController, - decoration: InputDecoration(hintText: "Enter Myanmar"), - maxLines: null, - style: TextStyle(fontSize: 13.0), - ), - CheckboxListTile( - title: Text("For Buyer"), - value: buyer, - onChanged: (val) { - setState(() { - buyer = val; - }); - }, - ), - ], - ), - ), - actions: [ - new FlatButton( - onPressed: () { - _save(); - }, - child: new Text('Save')) - ], - ); - } - - _save() { - try { - String eng = _engTextFieldController.text; - String mm = _mmTextFieldController.text; - - ManualItem item = - ManualItem(title: eng, titlemm: mm, isBuyer: buyer, slides: []); - - Navigator.pop(context, item); - } catch (e) { - // showMsgDialog(context, "Error", e.toString()); - } - } -} diff --git a/lib/pages/manual/manual_page.dart b/lib/pages/manual/manual_page.dart deleted file mode 100644 index 3a63621..0000000 --- a/lib/pages/manual/manual_page.dart +++ /dev/null @@ -1,201 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/pages/manual/manual_item_title_dialog.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/manual.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../../fcs/common/helpers/theme.dart'; -import 'slide_page.dart'; - -class ManualPage extends StatefulWidget { - final String marketplace; - - const ManualPage({Key key, this.marketplace}) : super(key: key); - @override - _ManualPageState createState() => _ManualPageState(); -} - -class _ManualPageState extends State { - TextEditingController _manualVersionController = TextEditingController(); - final double dotSize = 10.0; - List helpList = new List(); - bool isEng; - String versionName; - bool _isLoading = false; - - @override - void initState() { - helpList.clear(); - var manualModel = Provider.of(context, listen: false); - var mainModel = Provider.of(context, listen: false); - versionName = manualModel.version; - helpList = manualModel.getHelpList(mainModel.isBuyer()); - super.initState(); - } - - @override - Widget build(BuildContext context) { - var manualModel = Provider.of(context); - var mainModel = Provider.of(context); - var languageModel = Provider.of(context); - isEng = languageModel.isEng; - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - leading: new IconButton( - icon: new Icon(Icons.close, color: Colors.white), - onPressed: () => Navigator.of(context).pop(), - ), - title: Text(widget.marketplace == null ? '' : widget.marketplace), - backgroundColor: primaryColor, - ), - body: Column( - children: [ - new Expanded( - child: new ListView.builder( - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(left: 15, right: 15, top: 5), - shrinkWrap: true, - itemCount: helpList.length, - itemBuilder: (BuildContext context, int index) { - return Card( - elevation: 10, - color: Colors.white, - child: InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => SlidePage( - helpDetail: helpList[index], - index: index, - )), - ); - }, - child: Row(children: [ - Expanded( - child: new Padding( - padding: - const EdgeInsets.symmetric(vertical: 5.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 15.0 - dotSize / 2), - child: Container( - child: Image.asset( - "assets/page.png", - width: 50, - height: 50, - )), - ), - new Expanded( - child: new Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Text( - isEng - ? helpList[index].title - : helpList[index].titlemm, - style: TextStyle( - fontSize: 15, - color: Colors.grey), - ) - ], - ), - ), - ], - ), - ), - ), - mainModel.isSysAdmin() - ? Container( - padding: EdgeInsets.only(right: 20), - child: InkWell( - onTap: () { - showConfirmDialog( - context, "manual.confirm", () { - setState(() { - manualModel.deleteManualItem( - helpList[index]); - helpList = manualModel.getHelpList( - mainModel.isBuyer()); - }); - }); - }, - child: Icon(Icons.delete), - )) - : Container() - ])), - ); - }), - ), - ], - ), - floatingActionButton: mainModel.isSysAdmin() - ? FloatingActionButton( - onPressed: () async { - ManualItem newItem = await showDialog( - context: context, - builder: (_) => ManualItemTitleDialog()); - if (helpList.toList().length == 0) { - newItem.id = 1; - } else { - dynamic max = helpList.first; - helpList.forEach((e) { - if (e.id > max.id) max = e; - }); - newItem.id = max.id + 1; - } - setState(() { - helpList.add(newItem); - }); - manualModel.addManualTitle(newItem); - }, - child: Icon(Icons.add), - ) - : null, - ), - ); - } - - _deleteManualItem(ManualItem item, ManualModel manualModel) { - return showConfirmDialog(context, "manual.confirm", () { - setState(() { - manualModel.deleteManualItem(item); - }); - }); - } - - _inputManualVersion(BuildContext context, ManualModel manModel) async { - return showDialog( - context: context, - builder: (context) { - return AlertDialog( - title: new Text('Version'), - content: TextField( - controller: _manualVersionController, - decoration: InputDecoration(hintText: "Enter manual version"), - ), - actions: [ - new FlatButton( - onPressed: () { - String version = _manualVersionController.text; - String dir = manModel.dataDir; - manModel.uploadStorageManualData(version, dir); - Navigator.of(context).pop(); - }, - child: new Text('Save')) - ], - ); - }); - } -} diff --git a/lib/pages/manual/moveable_stack_item.dart b/lib/pages/manual/moveable_stack_item.dart deleted file mode 100644 index fedb0a0..0000000 --- a/lib/pages/manual/moveable_stack_item.dart +++ /dev/null @@ -1,123 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/vo/manual.dart'; - -class MoveableStackItem extends StatefulWidget { - Instruction instruction; - final int instIndex; - final int slideIndex; - final int manIndex; - final bool isEng; - - MoveableStackItem( - {this.instIndex, - this.slideIndex, - this.manIndex, - this.instruction, - this.isEng, - Key key}) - : super(key: key); - - @override - State createState() { - return _MoveableStackItemState(); - } -} - -class _MoveableStackItemState extends State { - TextEditingController _textFieldController = TextEditingController(); - double xPosition = 0; - double yPosition = 0; - - @override - void initState() { - super.initState(); - _textFieldController.text = widget.instruction.text; - yPosition = - widget.instruction.top != null ? widget.instruction.top : yPosition; - xPosition = - widget.instruction.left != null ? widget.instruction.left : xPosition; - } - - @override - Widget build(BuildContext context) { - var manualModel = Provider.of(context); - return Positioned( - top: yPosition, - left: xPosition, - child: GestureDetector( - onPanUpdate: (tapInfo) { - setState(() { - xPosition += tapInfo.delta.dx; - yPosition += tapInfo.delta.dy; - }); - var data = Instruction( - id: widget.instruction.id, - top: yPosition, - left: xPosition, - text: _textFieldController.text, - ); - manualModel.saveInstruction(widget.manIndex, widget.slideIndex, - widget.instIndex, data, widget.instruction, widget.isEng); - }, - child: Container( - width: 250, - color: Colors.grey, - child: InkWell( - onTap: () { - _displayDialog(context, manualModel); - }, - child: Container( - child: Text( - _textFieldController.text, - maxLines: null, - style: - TextStyle(fontSize: 15.0, fontWeight: FontWeight.w700), - ))))), - ); - } - - _displayDialog(BuildContext context, ManualModel manualModel) async { - return showDialog( - context: context, - builder: (context) { - return AlertDialog( - title: new Text('Instruction'), - content: Container( - height: 100, - child: Column( - children: [ - TextField( - controller: _textFieldController, - decoration: InputDecoration(hintText: "Enter Instruction"), - maxLines: null, - style: TextStyle(fontSize: 13.0), - ), - ], - ), - ), - actions: [ - new FlatButton( - onPressed: () { - var data = Instruction( - id: widget.instruction.id, - top: yPosition, - left: xPosition, - text: _textFieldController.text, - ); - manualModel.saveInstruction( - widget.manIndex, - widget.slideIndex, - widget.instIndex, - data, - widget.instruction, - widget.isEng); - Navigator.pop(context); - }, - child: new Text('Save')) - ], - ); - }); - } -} diff --git a/lib/pages/manual/slide_data_page.dart b/lib/pages/manual/slide_data_page.dart deleted file mode 100644 index 4325f25..0000000 --- a/lib/pages/manual/slide_data_page.dart +++ /dev/null @@ -1,210 +0,0 @@ -import 'dart:io'; -import 'dart:typed_data'; - -import 'package:flutter/material.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:path/path.dart' as Path; -import 'package:provider/provider.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/pages/manual/instruction_data_page.dart'; -import 'package:fcs/vo/manual.dart'; -import 'package:fcs/widget/img_file.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -class SlideDataPage extends StatefulWidget { - final ManualItem manItem; - final int manIndex; - - SlideDataPage({this.manItem, this.manIndex}); - @override - _SlideDataPageState createState() => _SlideDataPageState(); -} - -class _SlideDataPageState extends State { - File slideImageFile; - List slideList = []; - List _initSlideList = []; - File imageFile; - File engImgFile; - File mmImgFile; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - } - - pickImageFromGallery(ImageSource source, ManualModel manualModel) async { - File tempImage = await ImagePicker.pickImage( - source: source, imageQuality: 80, maxWidth: 300); - - var fileName = Path.basename(tempImage.path); - var path = '${manualModel.dataDir}'; - File newImage = await tempImage.copy('$path/manual/img/$fileName'); - var slideData = - SlideData(id: slideList.length, image: fileName, instructions: []); - setState(() { - slideList.add(slideData); - }); - // manualModel.saveSlideData(widget.manIndex, slideList.length, slideData); - } - - @override - Widget build(BuildContext context) { - var manualModel = Provider.of(context); - slideList = manualModel.getSlideList(widget.manIndex); - - final engImgBox = Container( - padding: EdgeInsets.only(left: 20), - child: Column(children: [ - Text('English image'), - ImageFile( - imageSource: ImageSource.gallery, - enabled: true, - title: "Image", - onFile: (file) { - engImgFile = file; - }) - ])); - - final mmImgBox = Container( - padding: EdgeInsets.only(left: 20, top: 20), - child: Column(children: [ - Text('Myanmar image'), - ImageFile( - imageSource: ImageSource.gallery, - enabled: true, - title: "Image", - onFile: (file) { - mmImgFile = file; - }), - ])); - - final saveImages = Container( - padding: EdgeInsets.only(left: 20, top: 20), - child: FlatButton( - onPressed: () { - saveSlideImages(context, manualModel, widget.manIndex); - }, - child: Text('Save'))); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: Text('Slide Data'), - ), - body: Container( - child: GridView.builder( - itemCount: slideList.length, - itemBuilder: (BuildContext context, int index) { - return Card( - child: InkWell( - onTap: () => { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => InstructionDataPage( - slideData: slideList[index], - path: manualModel.dataDir, - slideIndex: index, - manIndex: widget.manIndex, - ))) - }, - child: Container( - child: Stack( - fit: StackFit.expand, - children: [ - Image.file(File('${manualModel.dataDir}/manual/img/' + - slideList[index].image)), - Positioned( - top: 0, - right: 0, - child: IconButton( - icon: Icon(Icons.delete), - onPressed: () { - setState(() { - manualModel.deleteSlideData( - widget.manIndex, slideList[index]); - }); - }), - ) - ], - ), - ), - ), - ); - }, - gridDelegate: - SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2), - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: () async => await _dialog( - context, manualModel, engImgBox, mmImgBox, saveImages), - tooltip: 'Pick Image', - child: Icon(Icons.add), - ), - ), - ); - } - - Future _dialog(BuildContext context, ManualModel manualModel, - Widget engImg, Widget mmImg, Widget saveImgs) { - return showDialog( - context: context, - builder: (BuildContext context) { - return AlertDialog( - content: Container( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - mainAxisSize: MainAxisSize.min, - children: [engImg, mmImg, saveImgs], - ), - ], - ), - ), - ), - ); - }, - ); - } - - saveSlideImages( - BuildContext context, ManualModel manualModel, int manIndex) async { - var engFileName = Path.basename(engImgFile.path); - var mmFileName = Path.basename(mmImgFile.path); - var path = '${manualModel.dataDir}'; - File engImage = await engImgFile.copy('$path/manual/img/$engFileName'); - File mmImage = await mmImgFile.copy('$path/manual/img/$mmFileName'); - var length = slideList.toList().length; - - var slideData; - if (length == 0) { - slideData = SlideData( - id: 1, - image: engFileName, - imagemm: mmFileName, - instructions: [], - instructionsmm: []); - } else { - dynamic max = slideList.first; - slideList.forEach((e) { - if (e.id > max.id) max = e; - }); - slideData = SlideData( - id: max.id + 1, - image: engFileName, - imagemm: mmFileName, - instructions: [], - instructionsmm: []); - } - manualModel.saveSlideData(manIndex, length, slideData); - Navigator.pop(context); - } -} diff --git a/lib/pages/manual/slide_page.dart b/lib/pages/manual/slide_page.dart deleted file mode 100644 index 484337f..0000000 --- a/lib/pages/manual/slide_page.dart +++ /dev/null @@ -1,249 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:introduction_screen/introduction_screen.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/manual_model.dart'; -import 'package:fcs/pages/manual/slide_data_page.dart'; -import 'package:fcs/vo/manual.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -class SlidePage extends StatefulWidget { - final ManualItem helpDetail; - final int index; - - SlidePage({this.helpDetail, this.index}); - @override - _SlidePageState createState() => _SlidePageState(); -} - -class _SlidePageState extends State { - bool isEng; - bool _isLoading = false; - - void _onIntroEnd(context) { - Navigator.pop(context); - } - - List instructionText(BuildContext context, isEng, image, imgHeight, - width, List instructions) { - List list = new List(); - var imgWidth = width - (width * 0.25); - File imgFile = File(image); - - list.add( - Card( - color: const Color(0x7f7c94b6), - child: Opacity( - opacity: 0.6, - child: Image.file( - imgFile, - alignment: AlignmentDirectional.topCenter, - height: imgHeight, - width: imgWidth, - )), - ), - ); - - for (var i = 0; i < instructions.length; i++) { - var instruction = instructions[i]; - var textPositionTop = (imgHeight / 480) * instruction.top; - var textPositionLeft = (imgWidth / 360) * instruction.left; - - list.add(Positioned( - top: double.parse(textPositionTop.toString()), - left: double.parse(textPositionLeft.toString()), - child: instruction.text.length > 1 - ? Container( - constraints: BoxConstraints(maxWidth: 300), - child: Card( - color: Colors.blue, - child: Padding( - padding: const EdgeInsets.all(3.0), - child: Text( - instruction.text, - style: TextStyle(color: Colors.white), - ), - ), - )) - : Container( - constraints: BoxConstraints(maxWidth: 200), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - alignment: Alignment.topCenter, - width: 30, - height: 30, - decoration: BoxDecoration( - shape: BoxShape.circle, color: Colors.blue), - child: isEng - ? Container( - padding: EdgeInsets.only(top: 5), - child: Text( - instruction.text, - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, fontSize: 14.0), - ), - ) - : Text( - instruction.text, - textAlign: TextAlign.center, - style: TextStyle( - color: Colors.white, fontSize: 14.0), - ), - ), - ], - ), - ), - )); - } - return list; - } - - @override - Widget build(BuildContext context) { - var mainModel = Provider.of(context); - var languageModel = Provider.of(context); - var manualModel = Provider.of(context); - isEng = languageModel.isEng; - - List pageViews = new List(); - var screenSize = MediaQuery.of(context).size; - var width = screenSize.width; - var height = screenSize.height; - var imgHeight = height - (height * 0.25); - const bodyStyle = TextStyle(fontSize: 19.0); - const pageDecoration = const PageDecoration( - titleTextStyle: TextStyle(fontSize: 28.0, fontWeight: FontWeight.w700), - bodyTextStyle: bodyStyle, - descriptionPadding: EdgeInsets.fromLTRB(16.0, 0.0, 16.0, 16.0), - pageColor: Colors.white, - imagePadding: EdgeInsets.zero, - ); - - var pageSlides = widget.helpDetail.slides; - - if (pageSlides.length == 0) { - pageViews.add( - PageViewModel( - titleWidget: Row( - children: [ - Text( - isEng ? widget.helpDetail.title : widget.helpDetail.titlemm, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 20, - color: Colors.black, - ), - ), - mainModel.isSysAdmin() - ? FlatButton( - textColor: Colors.blue, - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => SlideDataPage( - manItem: widget.helpDetail, - manIndex: widget.index)), - ); - }, - child: Icon(Icons.edit), - shape: CircleBorder( - side: BorderSide(color: Colors.transparent)), - ) - : Container(), - ], - ), - bodyWidget: Container( - width: width, - alignment: Alignment.center, - ), - decoration: pageDecoration), - ); - } - - for (var i = 0; i < pageSlides.length; i++) { - var instructions; - if (isEng) { - instructions = pageSlides[i].instructions; - } else { - instructions = pageSlides[i].instructionsmm; - } - - var imageName; - if (isEng) { - imageName = '${manualModel.dataDir}/manual/img/' + pageSlides[i].image; - } else { - imageName = - '${manualModel.dataDir}/manual/img/' + pageSlides[i].imagemm; - } - - pageViews.add( - PageViewModel( - titleWidget: Row( - children: [ - Text( - isEng ? widget.helpDetail.title : widget.helpDetail.titlemm, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 20, - color: Colors.black, - ), - ), - mainModel.isSysAdmin() - ? FlatButton( - textColor: Colors.blue, - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => SlideDataPage( - manItem: widget.helpDetail, - manIndex: widget.index)), - ); - }, - child: Icon(Icons.edit), - shape: CircleBorder( - side: BorderSide(color: Colors.transparent)), - ) - : Container(), - ], - ), - bodyWidget: Container( - width: width, - alignment: Alignment.center, - child: Stack( - alignment: AlignmentDirectional.topStart, - children: instructionText( - context, isEng, imageName, imgHeight, width, instructions), - ), - ), - decoration: pageDecoration), - ); - } - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - body: IntroductionScreen( - pages: pageViews, - onDone: () => _onIntroEnd(context), - showSkipButton: true, - skipFlex: 0, - nextFlex: 0, - skip: const Text('Skip'), - next: const Icon(Icons.arrow_forward), - done: const Text('Done', style: TextStyle(fontWeight: FontWeight.w600)), - dotsDecorator: DotsDecorator(spacing: EdgeInsets.all(1.0)), - )), - ); - } -} diff --git a/lib/fcs/common/pages/market/market_editor.dart b/lib/pages/market/market_editor.dart similarity index 91% rename from lib/fcs/common/pages/market/market_editor.dart rename to lib/pages/market/market_editor.dart index 0cf6618..a54097c 100644 --- a/lib/fcs/common/pages/market/market_editor.dart +++ b/lib/pages/market/market_editor.dart @@ -1,10 +1,10 @@ -import 'package:fcs/fcs/common/domain/entities/market.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/market/model/market_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/market.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/market/model/market_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/input_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/market/model/market_model.dart b/lib/pages/market/model/market_model.dart similarity index 83% rename from lib/fcs/common/pages/market/model/market_model.dart rename to lib/pages/market/model/market_model.dart index eddc650..c97cbdb 100644 --- a/lib/fcs/common/pages/market/model/market_model.dart +++ b/lib/pages/market/model/market_model.dart @@ -1,10 +1,10 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/market.dart'; -import 'package:fcs/fcs/common/helpers/firebase_helper.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/market.dart'; +import 'package:fcs/helpers/firebase_helper.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; class MarketModel extends BaseModel { diff --git a/lib/pages/message_detail.dart b/lib/pages/message_detail.dart deleted file mode 100644 index 5598fb0..0000000 --- a/lib/pages/message_detail.dart +++ /dev/null @@ -1,140 +0,0 @@ -import 'package:fcs/model_fcs/message_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/message.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; - -class Bubble extends StatelessWidget { - Bubble({this.message, this.time, this.delivered, this.isMe}); - - final String message, time; - final delivered, isMe; - - @override - Widget build(BuildContext context) { - final bg = isMe ? Colors.white : Colors.greenAccent.shade100; - final align = isMe ? CrossAxisAlignment.start : CrossAxisAlignment.end; - final icon = delivered ? Icons.done_all : Icons.done; - final radius = isMe - ? BorderRadius.only( - topRight: Radius.circular(5.0), - bottomLeft: Radius.circular(10.0), - bottomRight: Radius.circular(5.0), - ) - : BorderRadius.only( - topLeft: Radius.circular(5.0), - bottomLeft: Radius.circular(5.0), - bottomRight: Radius.circular(10.0), - ); - return Column( - crossAxisAlignment: align, - children: [ - Container( - margin: const EdgeInsets.all(3.0), - padding: const EdgeInsets.all(8.0), - decoration: BoxDecoration( - boxShadow: [ - BoxShadow( - blurRadius: .5, - spreadRadius: 1.0, - color: Colors.black.withOpacity(.12)) - ], - color: bg, - borderRadius: radius, - ), - child: Stack( - children: [ - Padding( - padding: EdgeInsets.only(right: 48.0), - child: Text(message), - ), - Positioned( - bottom: 0.0, - right: 0.0, - child: Row( - children: [ - Text(time, - style: TextStyle( - color: Colors.black38, - fontSize: 10.0, - )), - SizedBox(width: 3.0), - Icon( - icon, - size: 12.0, - color: Colors.black38, - ) - ], - ), - ) - ], - ), - ) - ], - ); - } -} - -class MessageDetail extends StatelessWidget { - final Message msg; - const MessageDetail({Key key, this.msg}) : super(key: key); - - @override - Widget build(BuildContext context) { - DateFormat dateFormat = DateFormat("HH:mm"); - MessageModel messageModel = Provider.of(context); - List messages = messageModel.getMessage(msg.receiverName); - List bubbles = messages - .map((e) => Bubble( - message: e.message, - time: dateFormat.format(e.date), - delivered: true, - isMe: !(e.isMe != null ? e.isMe : true))) - .toList(); - - return Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - elevation: .9, - title: Text( - msg.receiverName, - ), - actions: [], - ), - body: Padding( - padding: EdgeInsets.all(16.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: bubbles, - // children: [ - // Bubble( - // message: 'Hi there, this is a message', - // time: '12:00', - // delivered: true, - // isMe: false, - // ), - // Bubble( - // message: 'Whatsapp like bubble talk', - // time: '12:01', - // delivered: true, - // isMe: true, - // ), - // Bubble( - // message: 'Nice one, Flutter is awesome', - // time: '12:00', - // delivered: true, - // isMe: true, - // ), - // Bubble( - // message: 'I\'ve told you so dude!', - // time: '12:00', - // delivered: true, - // isMe: false, - // ), - // ], - ), - ), - ); - } -} diff --git a/lib/pages/my_registeration.dart b/lib/pages/my_registeration.dart deleted file mode 100644 index da886aa..0000000 --- a/lib/pages/my_registeration.dart +++ /dev/null @@ -1,316 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/reg_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/img_file.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import '../widget/localization/app_translations.dart'; -import 'my_registeration_item.dart'; - -enum BuyerType { shop, agent } - -class MyRegisteration extends StatefulWidget { - final Buyer buyer; - const MyRegisteration({this.buyer}); - @override - _MyRegisterationState createState() => _MyRegisterationState(); -} - -class _MyRegisterationState extends State { - TextEditingController _bizName = new TextEditingController(); - TextEditingController _bizAddress = new TextEditingController(); - BuyerType buyerType; - Buyer buyer = Buyer(); - final formKey = GlobalKey(); - bool _isLoading = false; - Attachments attachments = Attachments(); - bool _isNew = true; - - @override - void initState() { - if (widget.buyer != null) { - _isNew = false; - buyerType = - widget.buyer.bizType == "shop" ? BuyerType.shop : BuyerType.agent; - buyer = widget.buyer; - _bizName.text = buyer.bizName; - _bizAddress.text = buyer.bizAddress; - } else { - buyerType = BuyerType.shop; - } - super.initState(); - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - final companyName = Container( - padding: EdgeInsets.only(top: 0, left: 20, right: 15), - child: TextFormField( - controller: _bizName, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("reg.biz_name"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.business, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: _validateBizName, - )); - - final companyAddress = Container( - padding: EdgeInsets.only(top: 0, left: 20, right: 15), - child: TextFormField( - minLines: 2, - maxLines: 3, - controller: _bizAddress, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("reg.biz_address"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Image.asset( - "assets/address.png", - height: 25, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: _validateBizAddress, - )); - - final nricFrontBox = Container( - padding: EdgeInsets.only(left: 20), - child: Row(children: [ - LocalText(context, 'reg_info.nric_front'), - ImageFile( - enabled: true, - initialImgUrl: - widget.buyer == null ? "" : widget.buyer.nricFrontUrl, - title: "Image", - onFile: (file) { - attachments.nricFront = file; - }) - ])); - - final nricBackBox = Container( - padding: EdgeInsets.only(left: 20, top: 20), - child: Row(children: [ - LocalText(context, 'reg_info.nric_back'), - ImageFile( - enabled: true, - initialImgUrl: - widget.buyer == null ? '' : widget.buyer.nricBackUrl, - title: "Image", - onFile: (file) { - attachments.nricBack = file; - }), - ])); - final nric = Container( - padding: EdgeInsets.only(top: 20, left: 20, right: 15), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [nricFrontBox, nricBackBox], - )); - - final buyerTypeWidget = Row(children: [ - Flexible( - child: ListTile( - onTap: () => setState(() { - buyerType = BuyerType.shop; - }), - title: Text(AppTranslations.of(context).text("reg.type_shop")), - leading: Radio( - activeColor: primaryColor, - value: BuyerType.shop, - groupValue: buyerType, - onChanged: (BuyerType value) { - setState(() { - buyerType = value; - }); - }, - ), - ), - ), - Flexible( - child: ListTile( - onTap: () => setState(() { - buyerType = BuyerType.agent; - }), - title: Text(AppTranslations.of(context).text("reg.type_agent")), - leading: Radio( - activeColor: primaryColor, - value: BuyerType.agent, - groupValue: buyerType, - onChanged: (BuyerType value) { - setState(() { - buyerType = value; - }); - }, - ), - ), - ), - ]); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("reg.title")), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - showConfirmDialog(context, "reg.confirm", () { - _submit(); - }); - }, - ) - ], - ), - body: Container( - child: Form( - key: formKey, - child: ListView( - children: [ - companyName, - companyAddress, - buyerTypeWidget, - nric, - ], - ), - ), - ), - ), - ); - } - - List getProductRow(Buyer buyer) { - return buyer.buyerProducts.map((b) { - return MyDataRow( - onSelectChanged: (bool selected) async { - final BuyerProduct buyerProduct = await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => MyRegisterationItem( - buyerProduct: b, - )), - ); - _save(buyerProduct); - }, - cells: [ - MyDataCell( - new Text( - b.productName, - style: textStyle, - ), - ), - MyDataCell( - new Text(b.storageCapacityQty.toString(), style: textStyle), - ), - MyDataCell( - new Text(b.dailySaleQty.toString(), style: textStyle), - ), - ], - ); - }).toList(); - } - - String _validateBizName(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("reg.empty_biz_name"); - } - return null; - } - - String _validateBizAddress(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("reg.empty_biz_address"); - } - return null; - } - - String _validateShops(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("reg.empty_shops"); - } - return null; - } - - _save(BuyerProduct buyerProduct) { - if (buyerProduct == null) return; - if (buyerProduct.action == "create") { - if (buyer.buyerProducts.contains(buyerProduct)) { - showMsgDialog(context, "Error", "Duplicate line"); - return; - } - buyer.buyerProducts.add(buyerProduct); - } else if (buyerProduct.action == "delete") { - buyer.buyerProducts.remove(buyerProduct); - } - } - - _submit() async { - if (!formKey.currentState.validate()) { - return; - } - - if (_isNew) { - if (attachments.nricFront == null || attachments.nricBack == null) { - showMsgDialog( - context, "Error", "Required NRIC front and back attachments"); - return; - } - } - - setState(() { - _isLoading = true; - }); - try { - String type = buyerType == BuyerType.agent ? "agent" : "shop"; - - buyer.bizName = _bizName.text; - buyer.bizAddress = _bizAddress.text; - buyer.bizType = type; - - if (_isNew) { - await Provider.of(context).register(buyer, attachments); - } else { - await Provider.of(context).update(buyer, attachments); - } - Navigator.pop(context, true); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/my_registeration_info.dart b/lib/pages/my_registeration_info.dart deleted file mode 100644 index 9152366..0000000 --- a/lib/pages/my_registeration_info.dart +++ /dev/null @@ -1,121 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/reg_model.dart'; -import 'package:fcs/widget/label_widgets.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import '../util.dart'; -import '../widget/localization/app_translations.dart'; -import 'my_registeration.dart'; - -enum BuyerType { shop, agent } - -class MyRegisterationInfo extends StatefulWidget { - @override - _MyRegisterationInfoState createState() => _MyRegisterationInfoState(); -} - -class _MyRegisterationInfoState extends State { - bool inProgress = true; - - BuyerType buyerType = BuyerType.shop; - TextEditingController _bizName = new TextEditingController(); - TextEditingController _bizAddress = new TextEditingController(); - TextEditingController _status = new TextEditingController(); - - @override - Widget build(BuildContext context) { - RegModel regModel = Provider.of(context); - MainModel mainModel = Provider.of(context); - buyerType = - regModel.reg.bizType == "shop" ? BuyerType.shop : BuyerType.agent; - _bizName.text = regModel.reg.bizName; - _bizAddress.text = regModel.reg.bizAddress; - _status.text = regModel.reg.status; - bool isRegBuyer = mainModel.isRegBuyer(); - if (regModel.isLoaded) { - setState(() { - this.inProgress = false; - }); - } - - final bizNameBox = - labeledText(context, regModel.reg.bizName, "reg.biz_name"); - final bizAddressBox = - labeledText(context, regModel.reg.bizAddress, "reg.biz_address"); - final typeBox = - labeledText(context, regModel.reg.bizType, "buyer.type_biz"); - final statusBox = labeledText(context, regModel.reg.status, "reg.status"); - final dailyQuotaBox = labeledText( - context, formatNumber(regModel.reg.dailyQuota), "reg.quota", - number: true); - final dailyQuotaUsedBox = labeledText( - context, formatNumber(regModel.reg.dailyQuotaUsed), "reg.quota.used", - number: true); - final maxQuotaBox = labeledText( - context, formatNumber(regModel.reg.maxQuota), "reg.max_quota", - number: true); - final maxQuotaUsedBox = labeledText( - context, formatNumber(regModel.reg.maxQuotaUsed), "reg.max_quota.used", - number: true); - final nricFrontBox = - labeledImg(context, regModel.reg.nricFrontUrl, "reg_info.nric_front"); - final nricBackBox = - labeledImg(context, regModel.reg.nricBackUrl, "reg_info.nric_back"); - - return LocalProgress( - inAsyncCall: inProgress, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("reg_info.title")), - actions: [ - !isRegBuyer - ? Container() - : regModel.reg.isApproved() - ? Container() - : IconButton( - icon: Icon(Icons.edit), - onPressed: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (_) => MyRegisteration( - buyer: regModel.reg, - ))); - }, - ), - ], - ), - body: Container( - padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10), - child: ListView( - children: [ - bizNameBox, - Divider(), - bizAddressBox, - Divider(), - typeBox, - Divider(), - statusBox, - Divider(), - dailyQuotaBox, - Divider(), - dailyQuotaUsedBox, - Divider(), - maxQuotaBox, - Divider(), - maxQuotaUsedBox, - Divider(), - nricFrontBox, - Divider(), - nricBackBox, - Divider() - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/my_registeration_item.dart b/lib/pages/my_registeration_item.dart deleted file mode 100644 index c7f76fd..0000000 --- a/lib/pages/my_registeration_item.dart +++ /dev/null @@ -1,194 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/widget/progress.dart'; - -class MyRegisterationItem extends StatefulWidget { - final BuyerProduct buyerProduct; - const MyRegisterationItem({Key key, this.buyerProduct}) : super(key: key); - @override - _MyRegisterationItemState createState() => _MyRegisterationItemState(); -} - -class _MyRegisterationItemState extends State { - final _formKey = GlobalKey(); - bool _isLoading = false; - TextEditingController _storage = new TextEditingController(); - TextEditingController _sales = new TextEditingController(); - String currentProductID; - BuyerProduct buyerProduct = BuyerProduct(action: "create"); - - @override - void initState() { - super.initState(); - if (widget.buyerProduct != null) { - buyerProduct = widget.buyerProduct; - buyerProduct.action = "update"; - currentProductID = buyerProduct.productID; - _sales.text = buyerProduct.dailySaleQty.toString(); - _storage.text = buyerProduct.storageCapacityQty.toString(); - } - } - - Widget showProducts(BuildContext context, ProductModel productModel) { - return Row( - mainAxisSize: MainAxisSize.max, - children: [ - Icon( - FontAwesomeIcons.tag, - color: primaryColor, - size: 20, - ), - SizedBox( - width: 20, - ), - new Flexible( - child: Container( - width: 170.0, - child: DropdownButton( - value: currentProductID, - isExpanded: true, - hint: Text( - 'Select Product', - style: labelStyle, - ), - onChanged: changedProduct, - items: productModel.products - .map>((Product product) { - return new DropdownMenuItem( - value: product.id, - child: new Text(product.name, style: textStyle), - ); - }).toList(), - ), - ), - ), - ], - ); - } - - void changedProduct(selected) { - setState(() { - currentProductID = selected; - }); - } - - @override - Widget build(BuildContext context) { - ProductModel productModel = Provider.of(context); - - final volumeBox = Container( - padding: EdgeInsets.only(top: 10), - child: TextFormField( - controller: _storage, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.number, - decoration: new InputDecoration( - labelText: "Enter total storage capacity", - labelStyle: labelStyle, - icon: Image.asset( - "assets/volume.png", - width: 23, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return "Please total storage capacity"; - } - return null; - }, - ), - ); - final amountBox = Container( - child: TextFormField( - controller: _sales, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.number, - decoration: new InputDecoration( - labelText: "Enter daily sale quantity", - labelStyle: labelStyle, - icon: Image.asset( - "assets/sales.png", - width: 23, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return "Please enter daily sale quantity"; - } - return null; - }, - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text("Product registration"), - actions: [ - IconButton( - icon: Icon(Icons.delete), - onPressed: () { - buyerProduct.action = "delete"; - Navigator.pop(context, buyerProduct); - }, - ), - IconButton( - icon: Icon(Icons.save), - onPressed: () { - if (!_formKey.currentState.validate()) return; - _save(); - }, - ) - ], - ), - body: Form( - key: _formKey, - child: Column( - children: [ - Expanded( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - showProducts(context, productModel), - volumeBox, - amountBox, - ], - ), - ), - ], - ), - )), - ); - } - - _save() { - if (currentProductID == null) return; - this.buyerProduct.productID = currentProductID; - var productName = - Provider.of(context).getProductName(currentProductID); - this.buyerProduct.productName = productName; - this.buyerProduct.storageCapacityQty = int.parse(_storage.text); - this.buyerProduct.dailySaleQty = int.parse(_sales.text); - Navigator.pop(context, this.buyerProduct); - } -} diff --git a/lib/pages/notification_list.dart b/lib/pages/notification_list.dart deleted file mode 100644 index fe4c8b9..0000000 --- a/lib/pages/notification_list.dart +++ /dev/null @@ -1,131 +0,0 @@ -import 'package:fcs/model_fcs/message_model.dart'; -import 'package:fcs/pages/message_detail.dart'; -import 'package:fcs/vo/message.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/notification_model.dart'; -import 'package:fcs/vo/notification.dart' as Noti; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import '../widget/local_text.dart'; - -class NotificationList extends StatefulWidget { - @override - _NotificationListState createState() => _NotificationListState(); -} - -class _NotificationListState extends State { - var timeFormatter = new DateFormat('KK:mm a'); - var dateFormatter = new DateFormat('dd MMM yyyy'); - final double dotSize = 25.0; - int _selectedIndex = 0; - bool _isLoading = false; - bool _isClicked = false; - - @override - Widget build(BuildContext context) { - MessageModel messageModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon( - Icons.close, - ), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: LocalText( - context, - 'message.title', - fontSize: 20, - color: Colors.white, - ), - ), - body: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 5), - shrinkWrap: true, - itemCount: messageModel.lastMessage.length, - itemBuilder: (BuildContext context, int index) { - Message msg = messageModel.lastMessage[index]; - return Stack( - children: [ - InkWell( - onTap: () => _display(msg), - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 22.0 - dotSize / 2), - child: Icon( - Icons.account_circle, - color: primaryColor, - size: 60, - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - new Text( - msg.receiverName, - style: new TextStyle(fontSize: 15.0), - ), - ], - ), - ), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.only(right: 18.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - timeFormatter.format(msg.date), - style: TextStyle(color: Colors.grey), - ), - ), - msg.fromToday() - ? Container() - : Text( - dateFormatter.format(msg.date), - style: TextStyle(color: Colors.grey), - ), - ], - ), - ) - ], - ), - ), - ], - ); - }), - ), - ); - } - - _display(Message msg) { - Navigator.push(context, BottomUpPageRoute(MessageDetail(msg: msg))); - } -} diff --git a/lib/pages/offline.dart b/lib/pages/offline.dart deleted file mode 100644 index 69d0ae6..0000000 --- a/lib/pages/offline.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:fcs/widget/local_text.dart'; - - -class Offline extends StatefulWidget { - @override - _OfflineState createState() => _OfflineState(); -} - -class _OfflineState extends State { - - @override - Widget build(BuildContext context) { - final retryButton = Card( - elevation: 23, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon(Icons.offline_bolt), - LocalText(context, "offline.status"), - ], - ), - ), - ); - - return Scaffold( - body: Center(child: retryButton), - ); - } -} diff --git a/lib/fcs/common/pages/package/model/package_model.dart b/lib/pages/package/model/package_model.dart similarity index 89% rename from lib/fcs/common/pages/package/model/package_model.dart rename to lib/pages/package/model/package_model.dart index 83cdd53..9c2f9e0 100644 --- a/lib/fcs/common/pages/package/model/package_model.dart +++ b/lib/pages/package/model/package_model.dart @@ -1,14 +1,14 @@ import 'dart:async'; import 'dart:io'; +import 'package:fcs/data/services/services.dart'; import 'package:path/path.dart' as Path; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/constants.dart'; -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/helpers/firebase_helper.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; +import 'package:fcs/domain/constants.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/firebase_helper.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; class PackageModel extends BaseModel { diff --git a/lib/fcs/common/pages/package/package_editor.dart b/lib/pages/package/package_editor.dart similarity index 88% rename from lib/fcs/common/pages/package/package_editor.dart rename to lib/pages/package/package_editor.dart index 2b02700..526bfa8 100644 --- a/lib/fcs/common/pages/package/package_editor.dart +++ b/lib/pages/package/package_editor.dart @@ -1,17 +1,17 @@ -import 'package:fcs/fcs/common/domain/entities/market.dart'; -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/market/market_editor.dart'; -import 'package:fcs/fcs/common/pages/market/model/market_model.dart'; -import 'package:fcs/fcs/common/pages/package/model/package_model.dart'; -import 'package:fcs/fcs/common/pages/package/tracking_id_page.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/multi_img_controller.dart'; -import 'package:fcs/fcs/common/pages/widgets/multi_img_file.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/market.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/market/market_editor.dart'; +import 'package:fcs/pages/market/model/market_model.dart'; +import 'package:fcs/pages/package/model/package_model.dart'; +import 'package:fcs/pages/package/tracking_id_page.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/multi_img_controller.dart'; +import 'package:fcs/pages/widgets/multi_img_file.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; @@ -189,7 +189,7 @@ class _PackageEditorPageState extends State { items: markets.map>((String value) { return DropdownMenuItem( value: value, - child: Text(value, + child: Text(value ?? "", overflow: TextOverflow.ellipsis, style: TextStyle( color: value == MANAGE_MARKET diff --git a/lib/fcs/common/pages/package/package_info.dart b/lib/pages/package/package_info.dart similarity index 89% rename from lib/fcs/common/pages/package/package_info.dart rename to lib/pages/package/package_info.dart index 222614c..1d58379 100644 --- a/lib/fcs/common/pages/package/package_info.dart +++ b/lib/pages/package/package_info.dart @@ -1,14 +1,14 @@ -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/package/package_editor.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/multi_img_controller.dart'; -import 'package:fcs/fcs/common/pages/widgets/multi_img_file.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/package/package_editor.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/multi_img_controller.dart'; +import 'package:fcs/pages/widgets/multi_img_file.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; diff --git a/lib/fcs/common/pages/package/package_list.dart b/lib/pages/package/package_list.dart similarity index 78% rename from lib/fcs/common/pages/package/package_list.dart rename to lib/pages/package/package_list.dart index ce6eee7..b0613e9 100644 --- a/lib/fcs/common/pages/package/package_list.dart +++ b/lib/pages/package/package_list.dart @@ -1,16 +1,16 @@ -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/package/model/package_model.dart'; -import 'package:fcs/fcs/common/pages/package/package_info.dart'; -import 'package:fcs/fcs/common/pages/package/package_list_row.dart'; -import 'package:fcs/fcs/common/pages/package/package_new.dart'; -import 'package:fcs/fcs/common/pages/package_search/package_serach.dart'; -import 'package:fcs/fcs/common/pages/user_search/user_serach.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/package/model/package_model.dart'; +import 'package:fcs/pages/package/package_info.dart'; +import 'package:fcs/pages/package/package_list_row.dart'; +import 'package:fcs/pages/package/package_new.dart'; +import 'package:fcs/pages/package_search/package_serach.dart'; +import 'package:fcs/pages/user_search/user_serach.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/package/package_list_row.dart b/lib/pages/package/package_list_row.dart similarity index 91% rename from lib/fcs/common/pages/package/package_list_row.dart rename to lib/pages/package/package_list_row.dart index 7cf0f61..89ba4a2 100644 --- a/lib/fcs/common/pages/package/package_list_row.dart +++ b/lib/pages/package/package_list_row.dart @@ -1,7 +1,7 @@ -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/pages/package/package_info.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/pages/package/package_info.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; diff --git a/lib/fcs/common/pages/package/package_new.dart b/lib/pages/package/package_new.dart similarity index 87% rename from lib/fcs/common/pages/package/package_new.dart rename to lib/pages/package/package_new.dart index ff44211..e1f7579 100644 --- a/lib/fcs/common/pages/package/package_new.dart +++ b/lib/pages/package/package_new.dart @@ -1,15 +1,15 @@ -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/domain/entities/user.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/package/tracking_id_page.dart'; -import 'package:fcs/fcs/common/pages/user_search/user_serach.dart'; -import 'package:fcs/fcs/common/pages/staff/model/staff_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/fcs_id_icon.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/domain/entities/user.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/package/tracking_id_page.dart'; +import 'package:fcs/pages/user_search/user_serach.dart'; +import 'package:fcs/pages/staff/model/staff_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/fcs_id_icon.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/package/tracking_id_page.dart b/lib/pages/package/tracking_id_page.dart similarity index 86% rename from lib/fcs/common/pages/package/tracking_id_page.dart rename to lib/pages/package/tracking_id_page.dart index cc19ca2..402427d 100644 --- a/lib/fcs/common/pages/package/tracking_id_page.dart +++ b/lib/pages/package/tracking_id_page.dart @@ -1,20 +1,21 @@ import 'package:barcode_scan/barcode_scan.dart'; -import 'package:fcs/fcs/common/domain/entities/market.dart'; -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/market/market_editor.dart'; -import 'package:fcs/fcs/common/pages/market/model/market_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/market.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/market/market_editor.dart'; +import 'package:fcs/pages/market/model/market_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/input_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; const MANAGE_MARKET = "Manage Market"; +const SELECT_MARKET = "Select Market"; class TrackingIDPage extends StatefulWidget { const TrackingIDPage({Key key}) : super(key: key); @@ -29,6 +30,7 @@ class _TrackingIDPageState extends State { @override void initState() { super.initState(); + selectedMarket = SELECT_MARKET; } @override @@ -86,6 +88,7 @@ class _TrackingIDPageState extends State { List _markets = Provider.of(context).markets; List markets = _markets.map((e) => e.name).toList(); markets.insert(0, MANAGE_MARKET); + markets.insert(0, SELECT_MARKET); return Row( children: [ @@ -114,6 +117,10 @@ class _TrackingIDPageState extends State { _manageMarket(); return; } + if (newValue == SELECT_MARKET) { + selectedMarket = null; + return; + } selectedMarket = newValue; }); }, diff --git a/lib/fcs/common/pages/package_search/package_serach.dart b/lib/pages/package_search/package_serach.dart similarity index 93% rename from lib/fcs/common/pages/package_search/package_serach.dart rename to lib/pages/package_search/package_serach.dart index 4740a42..e834b3e 100644 --- a/lib/fcs/common/pages/package_search/package_serach.dart +++ b/lib/pages/package_search/package_serach.dart @@ -1,9 +1,9 @@ import 'package:barcode_scan/barcode_scan.dart'; -import 'package:fcs/fcs/common/domain/entities/package.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/package/model/package_model.dart'; -import 'package:fcs/fcs/common/pages/package/package_list_row.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/package/model/package_model.dart'; +import 'package:fcs/pages/package/package_list_row.dart'; +import 'package:fcs/pages/main/util.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:permission_handler/permission_handler.dart'; diff --git a/lib/pages/payment_editor.dart b/lib/pages/payment_editor.dart deleted file mode 100644 index 275764c..0000000 --- a/lib/pages/payment_editor.dart +++ /dev/null @@ -1,128 +0,0 @@ -import 'package:fcs/model/discount_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/discount.dart'; -import 'package:fcs/vo/payment_method.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_icons/flutter_icons.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -class PaymentMethodEditor extends StatefulWidget { - final PaymentMethod paymentMethod; - - const PaymentMethodEditor({Key key, this.paymentMethod}) : super(key: key); - @override - _PaymentMethodEditorState createState() => _PaymentMethodEditorState(); -} - -class _PaymentMethodEditorState extends State { - bool _isLoading = false; - PaymentMethod _paymentMethod = new PaymentMethod(); - TextEditingController _nameController = new TextEditingController(); - TextEditingController _accountNameController = new TextEditingController(); - TextEditingController _accountNumberController = new TextEditingController(); - TextEditingController _mailController = new TextEditingController(); - TextEditingController _phoneController = new TextEditingController(); - TextEditingController _linkController = new TextEditingController(); - - bool isNew = false; - - @override - void initState() { - super.initState(); - if (widget.paymentMethod != null) { - _paymentMethod = widget.paymentMethod; - _nameController.text = _paymentMethod.name; - _accountNameController.text = _paymentMethod.accountName; - _accountNumberController.text = _paymentMethod.account; - _mailController.text = _paymentMethod.mail; - _phoneController.text = _paymentMethod.phone; - _linkController.text = _paymentMethod.link; - } else { - isNew = true; - _nameController.text = ''; - } - } - - @override - Widget build(BuildContext context) { - var discountModel = Provider.of(context); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - backgroundColor: Colors.white, - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - title: Text( - AppTranslations.of(context).text("payment.method.form"), - ), - backgroundColor: primaryColor, - actions: [], - ), - body: Padding( - padding: const EdgeInsets.only(left: 20.0), - child: Column( - children: [ - Expanded( - child: ListView( - children: [ - fcsInput('Name', FontAwesomeIcons.algolia, - controller: _nameController), - fcsInput('Account Name', Feather.user, - controller: _accountNameController), - fcsInput('Account Number', FontAwesomeIcons.moneyBill, - controller: _accountNumberController), - // fcsInput('E-mail', Icons.mail, - // controller: _mailController), - // fcsInput('Phone', Icons.phone, - // controller: _phoneController), - fcsInput('Phone', Icons.link, controller: _linkController) - ], - ), - ), - widget.paymentMethod == null - ? Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - child: Text('Add Payment Method'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))) - : Align( - alignment: Alignment.bottomCenter, - child: Center( - child: Container( - width: 250, - child: FlatButton( - child: Text('Save Payment Method'), - color: primaryColor, - textColor: Colors.white, - onPressed: () { - Navigator.pop(context); - }, - ), - ))), - SizedBox( - height: 30, - ) - ], - ), - )), - ); - } -} diff --git a/lib/pages/payment_method_page.dart b/lib/pages/payment_method_page.dart deleted file mode 100644 index 86597ca..0000000 --- a/lib/pages/payment_method_page.dart +++ /dev/null @@ -1,132 +0,0 @@ -import 'package:fcs/pages/payment_editor.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -class PaymentMethodPage extends StatefulWidget { - @override - _PaymentMethodPageState createState() => _PaymentMethodPageState(); -} - -class _PaymentMethodPageState extends State { - bool _isLoading = false; - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - leading: new IconButton( - icon: new Icon(Icons.close), - onPressed: () => Navigator.of(context).pop(), - ), - centerTitle: true, - title: Text( - AppTranslations.of(context).text("payment.method.title"), - ), - backgroundColor: primaryColor, - actions: [], - ), - body: ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - itemCount: mainModel.paymentMethods.length, - itemBuilder: (BuildContext context, int index) { - var method = mainModel.paymentMethods[index]; - return InkWell( - onTap: () { - Navigator.push( - context, - BottomUpPageRoute(PaymentMethodEditor( - paymentMethod: method, - )), - ); - }, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - method.name, - style: TextStyle( - color: primaryColor, - fontWeight: FontWeight.bold, - fontSize: 18), - ), - Padding( - padding: const EdgeInsets.only(left: 8.0, top: 8.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - method.accountName, - style: TextStyle( - color: Colors.black, - fontWeight: FontWeight.normal, - fontSize: 15), - ), - ], - ), - ), - method.account != null - ? Padding( - padding: const EdgeInsets.only(left: 8.0, top: 8.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - method.account, - style: TextStyle( - color: Colors.black, - fontWeight: FontWeight.normal, - fontSize: 15), - ), - ], - ), - ) - : Padding( - padding: const EdgeInsets.only(left: 8.0, top: 8.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - method.link, - style: TextStyle( - color: Colors.black, - fontWeight: FontWeight.normal, - fontSize: 15), - ), - ], - ), - ) - ], - ), - ), - ); - }, - ), - floatingActionButton: FloatingActionButton.extended( - onPressed: () { - Navigator.push( - context, - BottomUpPageRoute(PaymentMethodEditor()), - ); - }, - icon: Icon(Icons.add), - label: Text(AppTranslations.of(context).text("payment.method.new")), - backgroundColor: primaryColor, - ), - ), - ); - } -} diff --git a/lib/fcs/common/pages/payment_methods/model/payment_method_model.dart b/lib/pages/payment_methods/model/payment_method_model.dart similarity index 87% rename from lib/fcs/common/pages/payment_methods/model/payment_method_model.dart rename to lib/pages/payment_methods/model/payment_method_model.dart index 544d699..25d9f11 100644 --- a/lib/fcs/common/pages/payment_methods/model/payment_method_model.dart +++ b/lib/pages/payment_methods/model/payment_method_model.dart @@ -1,9 +1,9 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/fcs/common/domain/entities/payment_method.dart'; -import 'package:fcs/fcs/common/pages/model/base_model.dart'; -import 'package:fcs/fcs/common/services/services.dart'; +import 'package:fcs/data/services/services.dart'; +import 'package:fcs/domain/entities/payment_method.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; class PaymentMethodModel extends BaseModel { diff --git a/lib/fcs/common/pages/payment_methods/payment_method_editor.dart b/lib/pages/payment_methods/payment_method_editor.dart similarity index 92% rename from lib/fcs/common/pages/payment_methods/payment_method_editor.dart rename to lib/pages/payment_methods/payment_method_editor.dart index c681d16..1f1bba2 100644 --- a/lib/fcs/common/pages/payment_methods/payment_method_editor.dart +++ b/lib/pages/payment_methods/payment_method_editor.dart @@ -1,11 +1,11 @@ -import 'package:fcs/fcs/common/domain/entities/payment_method.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/payment_methods/model/payment_method_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/input_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/payment_method.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/payment_methods/model/payment_method_model.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/input_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:provider/provider.dart'; diff --git a/lib/fcs/common/pages/payment_methods/payment_method_page.dart b/lib/pages/payment_methods/payment_method_page.dart similarity index 86% rename from lib/fcs/common/pages/payment_methods/payment_method_page.dart rename to lib/pages/payment_methods/payment_method_page.dart index b281297..b861fd3 100644 --- a/lib/fcs/common/pages/payment_methods/payment_method_page.dart +++ b/lib/pages/payment_methods/payment_method_page.dart @@ -1,14 +1,14 @@ -import 'package:fcs/fcs/common/domain/entities/payment_method.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/payment_methods/model/payment_method_model.dart'; -import 'package:fcs/fcs/common/pages/payment_methods/payment_method_editor.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/pages/widgets/bottom_up_page_route.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/domain/entities/payment_method.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/payment_methods/model/payment_method_model.dart'; +import 'package:fcs/pages/payment_methods/payment_method_editor.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_icons/flutter_icons.dart'; diff --git a/lib/pages/pd/pd_form.dart b/lib/pages/pd/pd_form.dart deleted file mode 100644 index 7b6a794..0000000 --- a/lib/pages/pd/pd_form.dart +++ /dev/null @@ -1,225 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/log_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/pd_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/pd.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/progress.dart'; -import '../../fcs/common/pages/util.dart'; -import 'pd_item.dart'; - -class PDForm extends StatefulWidget { - final PD pd; - const PDForm({Key key, this.pd}) : super(key: key); - @override - _PDFormState createState() => _PDFormState(); -} - -class _PDFormState extends State { - TextEditingController _date = new TextEditingController(); - TextEditingController _userName = new TextEditingController(); - - PD pd = PD(); - bool _isLoading = false; - bool isNew = true; - - @override - void initState() { - super.initState(); - if (widget.pd != null) { - _userName.text = widget.pd.userName; - } else { - var mainModel = Provider.of(context, listen: false); - _userName.text = mainModel.user.name; - } - - _load(); - } - - _load() async { - if (widget.pd != null) { - this.pd = widget.pd; - _date.text = DateFormat('dd MMM yyyy – hh:mm a').format(widget.pd.date); - isNew = false; - Provider.of(context, listen: false).loadPDLines(pd).then((_pd) { - setState(() { - this.pd = _pd; - }); - }); - } - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - final _formKey = GlobalKey(); - - final dateBox = Container( - padding: EdgeInsets.only(left: 20, right: 15), - child: TextFormField( - controller: _date, - enabled: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("pd.date"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.date_range, - color: primaryColor, - size: 23, - )), - )); - - final nameBox = Container( - padding: EdgeInsets.only(left: 20, right: 15), - child: TextFormField( - controller: _userName, - autofocus: false, - readOnly: true, - style: textStyle, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.person, - color: primaryColor, - size: 25, - )), - )); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text( - AppTranslations.of(context).text('pd'), - style: languageModel.isEng - ? TextStyle() - : TextStyle(fontFamily: 'MyanmarUnicode'), - ), - actions: [ - isNew - ? IconButton( - icon: Icon(Icons.send), - onPressed: () { - if (!_formKey.currentState.validate()) return; - showConfirmDialog(context, "pd.confirm", () { - _submit(); - }); - }, - ) - : Container() - ], - ), - floatingActionButton: isNew - ? FloatingActionButton( - backgroundColor: primaryColor, - child: Icon(Icons.add), - onPressed: () async { - final PDLine pdLine = await Navigator.push( - context, - MaterialPageRoute(builder: (context) => PDItem()), - ); - _save(pdLine); - }, - ) - : null, - body: Form( - key: _formKey, - child: ListView( - children: [ - isNew ? Container() : dateBox, - nameBox, - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - columns: [ - MyDataColumn(label: LocalText(context, "pd.product")), - MyDataColumn( - label: LocalText(context, "pd.storage"), - ), - MyDataColumn(label: LocalText(context, "pd.quantity")), - ], - rows: getProductRow(pd), - ), - ), - ], - ), - )), - ); - } - - List getProductRow(PD pd) { - return pd.pdLines.map((p) { - return MyDataRow( - onSelectChanged: (bool selected) async { - if (!isNew) return; - var pdLine = await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => PDItem( - pdLine: p, - )), - ); - _save(pdLine); - }, - cells: [ - MyDataCell( - new Text( - p.productName, - style: textStyle, - ), - ), - MyDataCell( - new Text(p.storageName, style: textStyle), - ), - MyDataCell( - new Text(p.quantity.toString(), style: textStyle), - ), - ], - ); - }).toList(); - } - - _save(PDLine pdLine) { - if (pdLine == null) return; - if (pdLine.action == "create") { - if (pd.pdLines.contains(pdLine)) { - showMsgDialog(context, "Error", "Duplicate line"); - return; - } - pd.pdLines.add(pdLine); - } else if (pdLine.action == "delete") { - pd.pdLines.remove(pdLine); - } - } - - _submit() async { - if (pd.pdLines.length == 0) { - showMsgDialog(context, "Error", "No product line"); - return; - } - setState(() { - _isLoading = true; - }); - try { - PDModel pdModel = Provider.of(context); - await pdModel.createPD(pd); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/pd/pd_item.dart b/lib/pages/pd/pd_item.dart deleted file mode 100644 index 6c39801..0000000 --- a/lib/pages/pd/pd_item.dart +++ /dev/null @@ -1,223 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/model/storage_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/pd.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/vo/storage.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -class PDItem extends StatefulWidget { - final PDLine pdLine; - const PDItem({Key key, this.pdLine}) : super(key: key); - @override - _PDItemState createState() => _PDItemState(); -} - -class _PDItemState extends State { - final _formKey = GlobalKey(); - bool _isLoading = false; - String currentStorageID; - String currentProductID; - TextEditingController _quantity = new TextEditingController(); - PDLine pdLine = PDLine(); - - @override - void initState() { - super.initState(); - if (widget.pdLine != null) { - this._quantity.text = widget.pdLine.quantity.toString(); - this.currentProductID = widget.pdLine.productID; - this.currentStorageID = widget.pdLine.storageID; - this.pdLine = widget.pdLine; - this.pdLine.action = "update"; - } else { - this.pdLine.action = "create"; - } - } - - Widget showInventoryList(BuildContext context, StorageModel storageModel) { - return Row( - mainAxisSize: MainAxisSize.max, - children: [ - Image.asset( - "assets/inventory.png", - color: primaryColor, - width: 25, - ), - SizedBox( - width: 20, - ), - new Flexible( - child: Container( - width: 170.0, - child: DropdownButton( - value: currentStorageID, - isExpanded: true, - hint: Text( - 'Select Storage', - style: labelStyle, - ), - onChanged: changedDropDownItem, - items: storageModel.storages - .map>((Storage storage) { - return new DropdownMenuItem( - value: storage.id, - child: new Text(storage.name, style: textStyle), - ); - }).toList(), - ), - ), - ), - ], - ); - } - - void changedDropDownItem(selected) { - setState(() { - currentStorageID = selected; - }); - } - - Widget showProducts(BuildContext context, ProductModel productModel) { - return Row( - mainAxisSize: MainAxisSize.max, - children: [ - Icon( - FontAwesomeIcons.tag, - color: primaryColor, - size: 20, - ), - SizedBox( - width: 20, - ), - new Flexible( - child: Container( - width: 170.0, - child: DropdownButton( - value: currentProductID, - isExpanded: true, - hint: Text( - 'Select Product', - style: labelStyle, - ), - onChanged: changedProduct, - items: productModel.products - .map>((Product product) { - return new DropdownMenuItem( - value: product.id, - child: new Text(product.name, style: textStyle), - ); - }).toList(), - ), - ), - ), - ], - ); - } - - void changedProduct(selected) { - setState(() { - currentProductID = selected; - }); - } - - @override - Widget build(BuildContext context) { - var storageModel = Provider.of(context); - var productModel = Provider.of(context); - var languageModel = Provider.of(context); - - final quantityBox = Container( - padding: EdgeInsets.only(top: 10), - child: TextFormField( - controller: _quantity, - keyboardType: TextInputType.number, - autofocus: false, - cursorColor: primaryColor, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("pd.quantity"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.sortNumericUpAlt, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("pd.form.quan"); - } - return null; - }, - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text( - AppTranslations.of(context).text('pd.product.title'), - style: languageModel.isEng - ? TextStyle() - : TextStyle(fontFamily: 'MyanmarUnicode'), - ), - actions: [ - IconButton( - icon: Icon(Icons.delete), - onPressed: () { - _delete(); - }, - ), - IconButton( - icon: Icon(Icons.save), - onPressed: () { - if (!_formKey.currentState.validate()) return; - _save(); - }, - ) - ], - ), - body: Form( - key: _formKey, - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 20.0), - children: [ - quantityBox, - showInventoryList(context, storageModel), - showProducts(context, productModel) - ], - ), - )), - ); - } - - _save() { - if (currentProductID == null || currentStorageID == null) return; - this.pdLine.storageID = currentStorageID; - var storageName = - Provider.of(context).getStorageName(currentStorageID); - this.pdLine.storageName = storageName; - this.pdLine.productID = currentProductID; - var productName = - Provider.of(context).getProductName(currentProductID); - this.pdLine.productName = productName; - this.pdLine.quantity = int.parse(_quantity.text); - Navigator.pop(context, this.pdLine); - } - - _delete() { - this.pdLine.action = "delete"; - Navigator.pop(context, this.pdLine); - } -} diff --git a/lib/pages/pd/pd_list.dart b/lib/pages/pd/pd_list.dart deleted file mode 100644 index c32b736..0000000 --- a/lib/pages/pd/pd_list.dart +++ /dev/null @@ -1,187 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/pd_model.dart'; -import 'package:fcs/pages/pd/pd_form.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -class PDList extends StatefulWidget { - @override - _PDListState createState() => _PDListState(); -} - -class _PDListState extends State { - final double dotSize = 15.0; - DateTime _selectedDate = DateTime.now(); - int _dateIndex = 0; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - - var pdModel = Provider.of(context, listen: false); - // pdModel.loadPDs(); - _selectedDate = pdModel.selectedDate; - _dateIndex = pdModel.dateIndex; - } - - Future _selectDate(BuildContext context) async { - var pdModel = Provider.of(context); - - final DateTime picked = await showDatePicker( - context: context, - initialDate: _selectedDate, - firstDate: DateTime(2015, 8), - lastDate: DateTime(2101), - builder: (BuildContext context, Widget child) { - return Theme( - data: ThemeData.light().copyWith( - primaryColor: primaryColor, //Head background - accentColor: secondaryColor, //selection color - dialogBackgroundColor: Colors.white, //Background color - ), - child: child, - ); - }, - ); - - if (picked != null) { - var pickedDate = new DateTime(picked.year, picked.month, picked.day); - var currentDate = new DateTime( - DateTime.now().year, DateTime.now().month, DateTime.now().day); - - this._dateIndex = pickedDate == currentDate ? 0 : 1; - setState(() { - _selectedDate = picked; - pdModel.filterDate(_selectedDate, _dateIndex); - }); - } - } - - @override - Widget build(BuildContext context) { - var pdModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text( - AppTranslations.of(context).text('pd.title'), - style: Provider.of(context).isEng - ? TextStyle() - : TextStyle(fontFamily: 'MyanmarUnicode'), - ), - actions: [ - InkWell( - child: Container( - padding: EdgeInsets.only(right: 15, top: 15), - child: Stack( - children: [ - Image.asset( - "assets/date_filter.png", - color: Colors.white, - width: 25, - ), - _dateIndex == 0 - ? Container() - : Positioned( - bottom: 15, - right: 10, - child: Container( - width: 10, - height: 10, - decoration: new BoxDecoration( - shape: BoxShape.circle, - color: secondaryColor, - ), - ), - ) - ], - ), - ), - onTap: () => _selectDate(context), - ), - ], - ), - floatingActionButton: FloatingActionButton( - backgroundColor: primaryColor, - child: Icon(Icons.add), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => PDForm()), - ); - }, - ), - body: new ListView.builder( - padding: EdgeInsets.only(left: 10, right: 10, top: 15), - shrinkWrap: true, - itemCount: pdModel.pds.length, - itemBuilder: (BuildContext context, int index) { - return InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => PDForm( - pd: pdModel.pds[index], - )), - ); - }, - child: Card( - elevation: 10, - color: Colors.white, - child: Row( - children: [ - new Padding( - padding: EdgeInsets.all(10), - child: Padding( - padding: EdgeInsets.all(10.0), - child: Image.asset( - "assets/pdo.png", - width: 30, - color: primaryColor, - )), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: new Text( - pdModel.pds[index].date == null - ? "" - : DateFormat('dd MMM yyyy') - .format(pdModel.pds[index].date), - style: textStyle), - ), - Padding( - padding: const EdgeInsets.only(left: 8.0), - child: new Text( - pdModel.pds[index].pdNumber == null - ? '' - : pdModel.pds[index].pdNumber, - style: new TextStyle( - fontSize: 12.0, color: Colors.grey), - ), - ), - ], - ), - SizedBox( - height: 15, - ) - ], - ), - ), - ); - }), - ), - ); - } -} diff --git a/lib/pages/phone_input.dart b/lib/pages/phone_input.dart deleted file mode 100644 index d6e6e44..0000000 --- a/lib/pages/phone_input.dart +++ /dev/null @@ -1,103 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; - -class PhoneEditor extends StatefulWidget { - @override - _PhoneEditorState createState() => _PhoneEditorState(); -} - -class _PhoneEditorState extends State { - final _formKey = GlobalKey(); - TextEditingController _phone = new TextEditingController(); - @override - void initState() { - super.initState(); - _phone.text = '09'; - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return AlertDialog( - title: Center( - child: Text( - AppTranslations.of(context).text("contact.phone.title"), - style: TextStyle( - color: primaryColor, fontWeight: FontWeight.bold, fontSize: 20), - )), - content: Form( - key: _formKey, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - new Expanded( - child: new TextFormField( - keyboardType: TextInputType.number, - autofocus: true, - controller: _phone, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), - cursorColor: primaryColor, - decoration: new InputDecoration( - fillColor: primaryColor, - icon: Icon( - Icons.phone, - color: primaryColor, - ), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.grey, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context) - .text("contact.phone.empty"); - } - return null; - }, - )) - ], - ), - ), - actions: [ - FlatButton( - child: LocalText( - context, - 'do.cancel', - color: secondaryColor, - ), - onPressed: () { - _phone.clear(); - Navigator.of(context).pop(); - }), - FlatButton( - color: primaryColor, - child: LocalText( - context, - 'do.enter', - color: Colors.white, - fontWeight: FontWeight.bold, - ), - onPressed: () async { - if (!_formKey.currentState.validate()) return; - _save(); - }) - ], - ); - } - - _save() { - try { - Navigator.pop(context, _phone.text); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } - } -} diff --git a/lib/pages/pin_login_dialog.dart b/lib/pages/pin_login_dialog.dart deleted file mode 100644 index c62bcc0..0000000 --- a/lib/pages/pin_login_dialog.dart +++ /dev/null @@ -1,102 +0,0 @@ -import 'dart:async'; - -import 'package:flutter/material.dart'; -import 'package:flutter_verification_code_input/flutter_verification_code_input.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:quiver/async.dart'; - -class PinLoginDialog extends StatefulWidget { - @override - _PinLoginDialogState createState() => _PinLoginDialogState(); -} - -class _PinLoginDialogState extends State { - String pin; - - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var mainModel = Provider.of(context); - - return AlertDialog( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(32.0))), - title: Column( - children: [ - Image.asset( - "assets/pin.png", - height: 90, - color: primaryColor, - ), - Text( - "Enter PIN Code", - style: TextStyle( - color: primaryColor, fontWeight: FontWeight.bold, fontSize: 20), - ), - ], - ), - content: Container( - width: double.maxFinite, - height: 120.0, - child: new ListView( - shrinkWrap: true, - children: [ - Center( - child: VerificationCodeInput( - keyboardType: TextInputType.number, - length: 6, - autofocus: false, - itemSize: 40, - itemDecoration: BoxDecoration( - border: Border.all( - color: Colors.grey, - ), - ), - textStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 23), - onCompleted: (String value) { - this.pin = value; - }, - ), - ), - SizedBox( - height: 15, - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - FlatButton( - child: Text("Cancel"), - onPressed: () { - Navigator.of(context).pop(); - }), - FlatButton( - color: primaryColor, - child: Text("OK", - style: TextStyle( - color: Colors.white, fontWeight: FontWeight.bold)), - onPressed: () async { - if (this.pin == null) return; - - if (mainModel.user.pin == this.pin) { - mainModel.resetPinTimer(); - Navigator.of(context).pop(); - } else { - showMsgDialog(context, "Error", "Invalid PIN Code !"); - } - }), - ], - ) - ], - ), - ), - ); - } -} diff --git a/lib/pages/po/po_files.dart b/lib/pages/po/po_files.dart deleted file mode 100644 index 0d1268d..0000000 --- a/lib/pages/po/po_files.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'dart:io'; - -class POFiles { - File poPaymentFile, storageChargeFile; - List poPaymentFilesAdded=[]; - List poPaymentFilesRemoved=[]; // only url - bool poFileChanged = false, storageFileChanged = false; - - set addPoPaymentFile(File file) { - poPaymentFilesAdded.add(file); - poFileChanged = true; - } - - set removePoPaymentFile(String url) { - poPaymentFilesRemoved.add(url); - poFileChanged = true; - } - - set setStorageChargeFile(File file) { - storageChargeFile = file; - storageFileChanged = true; - } - - bool get anyChanged => poFileChanged || storageFileChanged; - - -} diff --git a/lib/pages/po/po_item.dart b/lib/pages/po/po_item.dart deleted file mode 100644 index 6f11ba9..0000000 --- a/lib/pages/po/po_item.dart +++ /dev/null @@ -1,208 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../../fcs/common/pages/util.dart'; - -class POItem extends StatefulWidget { - final POLine poLine; - const POItem({Key key, this.poLine}) : super(key: key); - @override - _POItemState createState() => _POItemState(); -} - -class _POItemState extends State { - final _formKey = GlobalKey(); - bool _isLoading = false; - String currentProductID; - TextEditingController _qty = new TextEditingController(); - POLine poLine = POLine(); - - @override - void initState() { - super.initState(); - if (widget.poLine != null) { - this.poLine = widget.poLine; - - this._qty.text = this.poLine.qty.toString(); - this.currentProductID = this.poLine.productID; - this.poLine.action = "update"; - } else { - this.poLine.action = "create"; - } - } - - @override - void dispose() { - super.dispose(); - } - - Widget showProducts(BuildContext context, ProductModel productModel) { - return Row( - mainAxisSize: MainAxisSize.max, - children: [ - Icon( - FontAwesomeIcons.tag, - color: primaryColor, - size: 20, - ), - SizedBox( - width: 20, - ), - new Flexible( - child: Container( - width: 170.0, - child: DropdownButton( - value: currentProductID, - isExpanded: true, - hint: Text( - 'Select Product', - style: labelStyle, - ), - onChanged: changedProduct, - items: productModel.products - .map>((Product product) { - return new DropdownMenuItem( - value: product.id, - child: new Text(product.name, style: textStyle), - ); - }).toList(), - ), - ), - ), - ], - ); - } - - void changedProduct(selected) { - setState(() { - // currentProductID = selected; - }); - } - - @override - Widget build(BuildContext context) { - var productModel = Provider.of(context); - var languageModel = Provider.of(context); - - final volumeBox = Container( - padding: EdgeInsets.only(top: 10), - child: TextFormField( - controller: _qty, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.number, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("po.volume"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.sortNumericUpAlt, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("po.form.volume"); - } - return null; - }, - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - "po", - color: Colors.white, - fontSize: 20, - ), - actions: [ - // IconButton( - // icon: Icon(Icons.delete), - // onPressed: () { - // _delete(); - // }, - // ), - IconButton( - icon: Icon(Icons.save), - onPressed: () { - if (!_formKey.currentState.validate()) return; - _save(); - }, - ) - ], - ), - body: Form( - key: _formKey, - child: Column( - children: [ - Expanded( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - volumeBox, - showProducts(context, productModel) - ], - ), - ), - ], - ), - )), - ); - } - - _save() { - setState(() { - _isLoading = true; - }); - try { - this.poLine.productID = currentProductID; - var product = - Provider.of(context).getProduct(currentProductID); - this.poLine.productName = product.name; - this.poLine.price = product.price; - this.poLine.qty = int.parse(_qty.text); - this.poLine.amount = this.poLine.price * this.poLine.qty; - Navigator.pop(context, this.poLine); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _delete() { - setState(() { - _isLoading = true; - }); - try { - this.poLine.action = "delete"; - Navigator.pop(context, this.poLine); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/po/po_submission_form.dart b/lib/pages/po/po_submission_form.dart deleted file mode 100644 index daa47d2..0000000 --- a/lib/pages/po/po_submission_form.dart +++ /dev/null @@ -1,601 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/log_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/model/po_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/pages/po/po_item.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/attach.dart'; -import 'package:fcs/vo/po.dart'; -import 'package:fcs/widget/img_file.dart'; -import 'package:fcs/widget/label_widgets.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/multi_img_controller.dart'; -import 'package:fcs/widget/multi_img_file.dart'; -import 'package:fcs/widget/my_data_table.dart'; -import 'package:fcs/widget/number_cell.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../../util.dart'; -import '../document_log_page.dart'; -import '../../fcs/common/pages/util.dart'; -import 'po_files.dart'; - -class POSubmissionForm extends StatefulWidget { - final POSubmission poSubmission; - - POSubmissionForm({this.poSubmission}); - - @override - _POSubmissionFormState createState() => _POSubmissionFormState(); -} - -class _POSubmissionFormState extends State { - final numberFormatter = new NumberFormat("#,###"); - var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm a'); - MultiImgController multiImgController = MultiImgController(); - - TextEditingController _numberController = new TextEditingController(); - TextEditingController _storage = new TextEditingController(); - TextEditingController _comment = new TextEditingController(); - TextEditingController _name = new TextEditingController(); - TextEditingController _bizName = new TextEditingController(); - - List poLines = new List(); - bool _isLoading = false; - bool _isNew = true; - int _amount = 0; - String _date = "", _status = ""; - POSubmission poSubmission = POSubmission(); - AttachFile attachFile; - POFiles files = POFiles(); - - @override - void initState() { - super.initState(); - if (widget.poSubmission != null) { - _isNew = false; - poSubmission = widget.poSubmission; - - _date = dateFormatter.format(poSubmission.poDate); - _numberController.text = poSubmission.poNumber.toString(); - _comment.text = poSubmission.comment; - _name.text = poSubmission.userName; - _bizName.text = poSubmission.bizName; - poLines = poSubmission.poLines; - _status = poSubmission.status; - _storage.text = poSubmission.storageCharge.toString(); - multiImgController.setImageUrls = poSubmission.poReceiptUrls; - - Provider.of(context, listen: false) - .loadPOLines(poSubmission.id) - .then((poLines) { - setState(() { - this.poSubmission.poLines = poLines; - _amount = poSubmission.getAmount; - }); - }); - } else { - _amount = 0; - _date = dateFormatter.format(DateTime.now()); - var productModel = Provider.of(context, listen: false); - productModel.products.forEach((p) { - var _poLine = POLine( - productID: p.id, - productName: p.name, - price: p.price, - balanceQty: 0, - qty: 0, - amount: 0); - poSubmission.poLines.add(_poLine); - }); - } - } - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - bool isBuyer = mainModel.user.isBuyer(); - var logModel = Provider.of(context); - - final dateBox = Container( - padding: EdgeInsets.only(top: 15, left: 20, bottom: 5), - child: Row( - children: [ - LocalText(context, "po.date"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text(_date, style: textStyle), - ), - ], - ), - ); - - final numberBox = Container( - padding: EdgeInsets.only(top: 5, left: 20, bottom: 5), - child: Row( - children: [ - LocalText(context, "po.number"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _numberController.text, - style: textStyle, - ), - ) - ], - ), - ); - - final userNameBox = Container( - padding: EdgeInsets.only(top: 5, left: 20, bottom: 5), - child: Row( - children: [ - LocalText(context, "po.name"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _name.text, - style: textStyle, - ), - ) - ], - ), - ); - final bizNameBox = Container( - padding: EdgeInsets.only(top: 5, left: 20, bottom: 5), - child: Row( - children: [ - LocalText(context, "po.biz"), - Container( - padding: EdgeInsets.only(left: 20), - child: Text( - _bizName.text, - style: textStyle, - ), - ) - ], - ), - ); - - final statusBox = Container( - padding: EdgeInsets.only(top: 5, left: 20), - child: Row( - children: [ - LocalText(context, "po.status"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _status, - style: textStyle, - ), - ) - ], - ), - ); - final commentBox = Container( - padding: EdgeInsets.only(top: 5, left: 20), - child: Row( - children: [ - LocalText(context, "po.comment"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _comment.text, - style: textStyle, - ), - ) - ], - ), - ); - - final amountBox = Container( - padding: EdgeInsets.only(top: 5, left: 10), - child: labeledText(context, formatNumber(_amount), "po.amount", - number: true)); - - final storageBox = Container( - padding: EdgeInsets.only(top: 5, left: 20), - child: Row( - children: [ - LocalText(context, "po.storage_charge"), - Container( - padding: EdgeInsets.only(left: 10), - child: Text( - _storage.text, - style: textStyle, - ), - ) - ], - ), - ); - final poPaymentBox = Container( - padding: EdgeInsets.only(left: 20), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - LocalText(context, "po.po_payment_receipt"), - MultiImageFile( - enabled: isBuyer - ? _isNew || this.poSubmission.isPending() ? true : false - : false, - controller: multiImgController, - title: "Receipt File", - ) - ])); - - final storagePaymentBox = Container( - padding: EdgeInsets.only(left: 20), - child: Row(children: [ - LocalText(context, "po.storage_receipt"), - ImageFile( - enabled: isBuyer - ? _isNew || this.poSubmission.isPending() ? true : false - : false, - initialImgUrl: this.poSubmission.storageReceiptUrl, - title: "Receipt File", - onFile: (file) { - this.files.setStorageChargeFile = file; - }), - ])); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("po"), - style: Provider.of(context).isEng - ? TextStyle(fontSize: 18) - : TextStyle(fontSize: 18, fontFamily: 'MyanmarUnicode')), - actions: [ - _isNew || !mainModel.showHistoryBtn() - ? Container() - : IconButton( - icon: Icon(Icons.history), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - DocumentLogPage(docID: poSubmission.id)), - ); - }, - ), - isBuyer && (_isNew || poSubmission.isPending()) - ? IconButton( - icon: Icon(Icons.send), - onPressed: () { - showConfirmDialog(context, "po.confirm", () { - _submit(); - }); - }, - ) - : Container(), - isBuyer - ? Container() - : PopupMenuButton( - onSelected: _select, - itemBuilder: (context) => [ - PopupMenuItem( - enabled: poSubmission.isPending(), - value: 1, - child: Text("Approve PO"), - ), - PopupMenuItem( - enabled: poSubmission.isPending(), - value: 2, - child: Text("Reject PO"), - ), - PopupMenuItem( - enabled: mainModel.user.isOwner() && - poSubmission.isApproved(), - value: 3, - child: Text("Cancel PO"), - ), - ], - ), - ], - ), - // floatingActionButton: isBuyer && (_isNew || poSubmission.isPending()) - // ? FloatingActionButton( - // backgroundColor: primaryColor, - // child: Icon(Icons.add), - // onPressed: () async { - // final POLine poLine = await Navigator.push( - // context, - // MaterialPageRoute(builder: (context) => POItem()), - // ); - // _save(poLine); - // }, - // ) - // : null, - body: Container( - child: ListView( - children: [ - dateBox, - Divider(), - _isNew ? Container() : numberBox, - _isNew ? Container() : Divider(), - _isNew ? Container() : userNameBox, - _isNew ? Container() : Divider(), - _isNew ? Container() : bizNameBox, - _isNew ? Container() : Divider(), - _isNew ? Container() : statusBox, - _isNew || - widget.poSubmission.comment == null || - widget.poSubmission.comment == '' - ? Container() - : Divider(), - _isNew || - widget.poSubmission.comment == null || - widget.poSubmission.comment == '' - ? Container() - : commentBox, - _isNew ? Container() : Divider(), - amountBox, - Divider(), - poPaymentBox, - Divider(), - _isNew || !poSubmission.hasStorageCharge() - ? Container() - : storageBox, - _isNew || !poSubmission.hasStorageCharge() - ? Container() - : Divider(), - _isNew || !poSubmission.hasStorageCharge() - ? Container() - : storagePaymentBox, - _isNew || !poSubmission.hasStorageCharge() - ? Container() - : Divider(), - Container( - child: SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: MyDataTable( - headingRowHeight: 40, - columnSpacing: 7, - columns: _isNew - ? [ - MyDataColumn( - label: LocalText(context, "po.product")), - MyDataColumn( - label: LocalText(context, "po.price"), - numeric: true), - MyDataColumn( - label: LocalText(context, "po.volume"), - numeric: true), - MyDataColumn( - label: LocalText(context, "po.amount"), - numeric: true), - ] - : [ - MyDataColumn( - label: LocalText(context, "po.product")), - MyDataColumn( - label: LocalText(context, "po.price"), - numeric: true), - MyDataColumn( - label: LocalText(context, "po.balance.volume"), - numeric: true), - MyDataColumn( - label: LocalText(context, "po.volume"), - numeric: true), - MyDataColumn( - label: LocalText(context, "po.amount"), - numeric: true), - ], - rows: getProductRow(poSubmission.poLines), - ), - ), - ), - ], - ), - ), - ), - ); - } - - _select(s) { - if (s == 1) { - showConfirmDialog(context, "po.approve.confirm", () { - _approve(); - }); - } else if (s == 2) { - showCommentDialog(context, (comment) { - this.poSubmission.comment = comment; - _reject(); - }); - } else if (s == 3) { - showConfirmDialog(context, "po.cancel.confirm", () { - _cancel(); - }); - } - } - - List getProductRow(List poLines) { - MainModel mainModel = Provider.of(context); - bool isBuyer = mainModel.user.isBuyer(); - - ProductModel productModel = Provider.of(context); - if (poLines.isNotEmpty) { - poLines.forEach((d) { - productModel.products.forEach((p) { - if (p.id == d.productID) { - d.displayOrder = p.displayOrder; - } else { - return; - } - }); - }); - - poLines.sort((p1, p2) => p1.displayOrder.compareTo(p2.displayOrder)); - } - - return poLines.map((p) { - return MyDataRow( - onSelectChanged: (bool selected) async { - if (!isBuyer) return; - - if (_isNew || this.poSubmission.isPending()) { - var poLine = await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => POItem( - poLine: p, - )), - ); - _save(poLine); - } - }, - cells: _isNew - ? [ - MyDataCell( - new Text( - p.productName, - style: textStyle, - ), - ), - MyDataCell(NumberCell(p.price)), - MyDataCell( - Container( - alignment: Alignment.centerRight, - width: 100, - child: NumberCell( - p.qty, - textStyle: textStyleOdd, - ), - ), - ), - MyDataCell(NumberCell(p.amount)), - ] - : [ - MyDataCell( - new Text( - p.productName, - style: textStyle, - ), - ), - MyDataCell(NumberCell(p.price)), - MyDataCell(NumberCell(p.balanceQty)), - MyDataCell(NumberCell(p.qty)), - MyDataCell(NumberCell(p.amount)), - ], - ); - }).toList(); - } - - _save(POLine poLine) { - if (poLine == null) return; - if (poLine.action == "create") { - if (poSubmission.poLines.contains(poLine)) { - showMsgDialog(context, "Error", "Duplicate line"); - return; - } - poSubmission.poLines.add(poLine); - } else if (poLine.action == "delete") { - poSubmission.poLines.remove(poLine); - } - setState(() { - _amount = poSubmission.getAmount; - }); - } - - _submit() async { - if (poSubmission.poLines.length == 0) { - showMsgDialog(context, "Error", "No product line"); - return; - } - List _poLines = []; - poSubmission.poLines.forEach((p) => p.qty <= 0 ? _poLines.add(p) : p); - poSubmission.poLines.removeWhere((p) => p.qty <= 0); - - setState(() { - _isLoading = true; - }); - try { - POSubmissionModel poModel = Provider.of(context); - if (_isNew) { - await poModel.createPO(poSubmission, multiImgController.getAddedFile); - } else { - if (poSubmission.hasStorageCharge()) { - if (files.storageChargeFile == null) { - showMsgDialog( - context, "Error", "Please insert storage charge file"); - return; - } - } - await poModel.updatePO(poSubmission, multiImgController.getAddedFile, - multiImgController.getDeletedUrl); - } - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - _poLines.forEach((e) { - if (!poSubmission.poLines.contains(e)) poSubmission.poLines.add(e); - }); - }); - } - } - - _approve() async { - setState(() { - _isLoading = true; - }); - var oldStatus = poSubmission.status; - try { - POSubmissionModel poModel = Provider.of(context); - - poSubmission.status = "approved"; - await poModel.approvePO(poSubmission); - Navigator.pop(context); - } catch (e) { - poSubmission.status = oldStatus; - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _reject() async { - setState(() { - _isLoading = true; - }); - try { - POSubmissionModel poModel = Provider.of(context); - await poModel.rejectPO(poSubmission); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - _cancel() async { - setState(() { - _isLoading = true; - }); - try { - POSubmissionModel poModel = Provider.of(context); - await poModel.cancelPO(poSubmission); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/product_edit_item.dart b/lib/pages/product_edit_item.dart deleted file mode 100644 index df6596e..0000000 --- a/lib/pages/product_edit_item.dart +++ /dev/null @@ -1,223 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -class ProductEditItem extends StatefulWidget { - final Product product; - - const ProductEditItem({Key key, this.product}) : super(key: key); - @override - _ProductEditItemState createState() => _ProductEditItemState(); -} - -class _ProductEditItemState extends State { - TextEditingController nameController = new TextEditingController(); - TextEditingController priceController = new TextEditingController(); - TextEditingController orderController = new TextEditingController(); - int color = primaryColor.value; - bool isDisable = false; - - final _formKey = GlobalKey(); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - - if (widget.product != null) { - this.color = widget.product.color; - nameController.text = widget.product.name; - priceController.text = widget.product.price.toString(); - orderController.text = widget.product.displayOrder.toString(); - if (widget.product.isDisable != null) { - isDisable = widget.product.isDisable; - } else { - isDisable = false; - } - } - } - - @override - Widget build(BuildContext context) { - var maingModel = Provider.of(context); - final nameWidget = Container( - padding: EdgeInsets.only(top: 10), - child: TextFormField( - controller: nameController, - autofocus: true, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - icon: InkWell( - child: Icon( - FontAwesomeIcons.tag, - color: Color(this.color), - size: 25, - ), - onTap: () => showColorPicker(context, Color(this.color), (color) { - setState(() { - this.color = color.value; - }); - }), - ), - labelText: AppTranslations.of(context).text("product.name"), - labelStyle: maingModel.isEng ? labelStyle : labelStyleMM, - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("product.name_empty"); - } - return null; - }, - ), - ); - - final priceInput = Container( - child: TextFormField( - controller: priceController, - style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal), - keyboardType: TextInputType.number, - cursorColor: primaryColor, - decoration: new InputDecoration( - icon: Icon( - FontAwesomeIcons.moneyBill, - color: primaryColor, - size: 25, - ), - border: InputBorder.none, - labelText: AppTranslations.of(context).text("product.new_price"), - labelStyle: maingModel.isEng ? labelStyle : labelStyleMM, - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("product.price_empty"); - } - return null; - }, - ), - ); - - final orderInput = Container( - child: TextFormField( - controller: orderController, - style: TextStyle(fontSize: 16.0, fontStyle: FontStyle.normal), - keyboardType: TextInputType.number, - cursorColor: primaryColor, - decoration: new InputDecoration( - icon: Icon( - Icons.sort, - color: primaryColor, - size: 25, - ), - border: InputBorder.none, - labelText: AppTranslations.of(context).text("product.order"), - labelStyle: maingModel.isEng ? labelStyle : labelStyleMM, - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("product.order_empty"); - } - return null; - }, - ), - ); - - final disableBox = Container( - padding: EdgeInsets.only(top: 10), - child: CheckboxListTile( - title: Text("Disable"), - value: isDisable, - activeColor: primaryColor, - onChanged: (value) { - setState(() { - isDisable = value; - }); - }, - controlAffinity: ListTileControlAffinity.leading, - )); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: Text(AppTranslations.of(context).text("product.item"), - style: maingModel.isEng - ? TextStyle(color: Colors.white, fontSize: 20.0) - : TextStyle( - color: Colors.white, - fontSize: 20.0, - fontFamily: 'MyanmarUnicode')), - actions: [ - IconButton( - icon: Icon(Icons.save), - onPressed: () { - if (!_formKey.currentState.validate()) return; - Provider.of(context, listen: false).saveProduct( - widget.product, - nameController.text, - priceController.text, - orderController.text, - color, - isDisable); - Product _product = new Product(); - if (widget.product != null) { - _product = widget.product; - _product.name = nameController.text; - _product.price = int.parse(priceController.text); - _product.color = color; - _product.displayOrder = int.parse(orderController.text); - _product.isDisable = isDisable; - if (_product.id == null) { - _product.action = "create"; - } else { - _product.action = "update"; - } - } - Navigator.pop(context, _product); - }, - ) - ], - backgroundColor: primaryColor, - ), - body: Form( - key: _formKey, - child: SingleChildScrollView( - padding: EdgeInsets.only( - left: 25.0, - right: 25.0, - ), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - nameWidget, - priceInput, - orderInput, - this.widget.product != null ? disableBox : Container(), - ], - ), - ), - ), - ), - ); - } -} diff --git a/lib/pages/products_list.dart b/lib/pages/products_list.dart deleted file mode 100644 index a11d783..0000000 --- a/lib/pages/products_list.dart +++ /dev/null @@ -1,68 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/products.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../model/product_model.dart'; -import 'products_list_edit.dart'; - -class ProductsList extends StatefulWidget { - @override - _ProductsListState createState() => _ProductsListState(); -} - -class _ProductsListState extends State { - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - var productModel = Provider.of(context); - var mainModel = Provider.of(context); - bool _isLoading = false; - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("products.title"), - style: Provider.of(context).isEng - ? TextStyle() - : TextStyle(fontFamily: 'MyanmarUnicode')), - actions: [ - mainModel.user != null && mainModel.user.isOwner() || - mainModel.user.hasAdmin() - ? IconButton( - icon: Icon(Icons.edit), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ProductsListEdit( - products: productModel.productsToEdit, - )), - ); - }, - ) - : Container() - ], - ), - backgroundColor: Colors.white, - body: ListView( - children: [ - Padding( - padding: const EdgeInsets.only(top: 5), - child: ProductsWidget(isWelcomePage: false), - ), - ], - )), - ); - } -} diff --git a/lib/pages/products_list_edit.dart b/lib/pages/products_list_edit.dart deleted file mode 100644 index ef45f73..0000000 --- a/lib/pages/products_list_edit.dart +++ /dev/null @@ -1,175 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/product_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/product.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import 'product_edit_item.dart'; - -class ProductsListEdit extends StatefulWidget { - final List products; - - const ProductsListEdit({Key key, this.products}) : super(key: key); - - @override - _ProductsListEditState createState() => _ProductsListEditState(); -} - -class _ProductsListEditState extends State { - List products; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - products = widget.products; - } - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("products.title"), - style: Provider.of(context).isEng - ? TextStyle(color: Colors.white, fontSize: 20.0) - : TextStyle( - color: Colors.white, - fontSize: 20.0, - fontFamily: 'MyanmarUnicode')), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - _update(context); - }, - ) - ], - ), - floatingActionButton: FloatingActionButton( - backgroundColor: primaryColor, - child: Icon(Icons.add), - onPressed: _add, - ), - body: ListView( - shrinkWrap: true, - padding: EdgeInsets.all(5.0), - children: [ - new ListView.builder( - padding: EdgeInsets.only(left: 15, right: 15, top: 15), - shrinkWrap: true, - itemCount: products.length, - itemBuilder: (BuildContext context, int index) { - return _row(products[index]); - }), - ], - ), - ), - ); - } - - _add() { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => ProductEditItem()), - ); - } - - void _update(BuildContext context) async { - await showConfirmDialog(context, "product.confirm", () async { - setState(() { - _isLoading = true; - }); - try { - var productModel = Provider.of(context); - await productModel.updateProducts(this.products); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - }); - } - - Widget _row(Product product) { - return Container( - child: InkWell( - child: Card( - elevation: 10, - color: Colors.white, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 3.0), - child: new Row( - children: [ - InkWell( - child: new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 20.0 - 10 / 2), - child: Icon( - FontAwesomeIcons.tag, - color: Color(product.color), - size: 30, - ), - ), - ), - new Expanded( - child: new Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - product.name, - style: product.isDisable == true - ? TextStyle( - decoration: - TextDecoration.lineThrough, - color: Colors.red) - : null, - ) - ], - ), - ), - ], - ), - ), - ), - Column(children: [ - product.id == null - ? Text("New Product") - : Text("Old Price: ${product.oldPirce}"), - Text("New Price: ${product.price}") - ]), - ], - ), - ), - ), - onTap: () async { - Product _p = await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ProductEditItem( - product: product, - )), - ); - if (_p == null) return; - setState(() { - product = _p; - }); - }), - ); - } -} diff --git a/lib/fcs/common/pages/profile/profile_edit.dart b/lib/pages/profile/profile_edit.dart similarity index 87% rename from lib/fcs/common/pages/profile/profile_edit.dart rename to lib/pages/profile/profile_edit.dart index eb9e71b..58f1ed5 100644 --- a/lib/fcs/common/pages/profile/profile_edit.dart +++ b/lib/pages/profile/profile_edit.dart @@ -1,13 +1,13 @@ -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; +import 'package:fcs/pages/main/util.dart'; typedef void ProfileCallback(); diff --git a/lib/fcs/common/pages/profile/profile_page.dart b/lib/pages/profile/profile_page.dart similarity index 87% rename from lib/fcs/common/pages/profile/profile_page.dart rename to lib/pages/profile/profile_page.dart index 22bb0d0..8fab3bf 100644 --- a/lib/fcs/common/pages/profile/profile_page.dart +++ b/lib/pages/profile/profile_page.dart @@ -1,25 +1,24 @@ -import 'package:fcs/fcs/common/localization/app_translations.dart'; -import 'package:fcs/fcs/common/localization/transalation.dart'; -import 'package:fcs/fcs/common/pages/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/profile/profile_edit.dart'; -import 'package:fcs/fcs/common/pages/widgets/display_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/fcs_id_icon.dart'; -import 'package:fcs/fcs/common/pages/widgets/local_text.dart'; -import 'package:fcs/fcs/common/pages/widgets/progress.dart'; -import 'package:fcs/model/shipment_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/pages_fcs/shipping_address_row.dart'; -import 'package:fcs/vo/role.dart'; -import 'package:fcs/vo/shipping_address.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; +import 'package:fcs/domain/entities/role.dart'; +import 'package:fcs/domain/vo/shipping_address.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/localization/transalation.dart'; +import 'package:fcs/pages/main/model/language_model.dart'; +import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/profile/profile_edit.dart'; +import 'package:fcs/pages/shipment_address/model/shipment_address_model.dart'; +import 'package:fcs/pages/shipment_address/shipping_address_editor.dart'; +import 'package:fcs/pages/shipment_address/shipping_address_row.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/display_text.dart'; +import 'package:fcs/pages/widgets/fcs_id_icon.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; +import 'package:fcs/pages/widgets/progress.dart'; +import 'package:fcs/pages/main/util.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; -import '../../../../pages/shipping_address_editor.dart'; import '../../helpers/theme.dart'; typedef void ProfileCallback(); @@ -176,7 +175,7 @@ class _ProfileState extends State { } Widget getShippingAddressList(BuildContext context) { - var shipmentModel = Provider.of(context); + var shipmentModel = Provider.of(context); return Container( padding: EdgeInsets.only(top: 5, left: 10), child: ExpansionTile( @@ -234,9 +233,16 @@ class _ProfileState extends State { }).toList(); } + List privileges = [ + Privilege(name: 'Manage shipment'), + Privilege(name: 'Manage pickups'), + Privilege(name: 'Manage packages'), + Privilege(name: 'Manage deliveries'), + Privilege(name: 'Admin') + ]; + Widget getPrivilegeBox(BuildContext context) { var languageModel = Provider.of(context); - var userModel = Provider.of(context); return ListTileTheme( contentPadding: EdgeInsets.all(0), @@ -253,7 +259,7 @@ class _ProfileState extends State { fontSize: 15.0, fontWeight: FontWeight.bold, fontStyle: FontStyle.normal, - fontFamily: "MyanmarUnicode"), + fontFamily: "Myanmar3"), ), children: [ Align( @@ -262,8 +268,7 @@ class _ProfileState extends State { scrollDirection: Axis.horizontal, child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: - getRowPrivilegeWidget(userModel.getUserPrivileges())), + children: getRowPrivilegeWidget(privileges)), ), ) ], diff --git a/lib/pages/profile_edit.dart b/lib/pages/profile_edit.dart deleted file mode 100644 index 60bfde1..0000000 --- a/lib/pages/profile_edit.dart +++ /dev/null @@ -1,113 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -typedef void ProfileCallback(); - -class ProfileEdit extends StatefulWidget { - @override - _ProfileEditState createState() => _ProfileEditState(); -} - -class _ProfileEditState extends State { - final TextEditingController nameController = new TextEditingController(); - bool _loading = false; - - @override - void initState() { - super.initState(); - MainModel mainModel = Provider.of(context, listen: false); - nameController.text = mainModel.user.name; - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - final name = Container( - padding: EdgeInsets.only(top: 0, left: 20, right: 15, bottom: 30), - child: TextFormField( - controller: nameController, - autofocus: true, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("profile.name"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.account_box, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - )); - - final saveBtn = Card( - elevation: 23, - child: ButtonTheme( - minWidth: 200.0, - height: 50.0, - child: FlatButton.icon( - onPressed: () => _save(), - label: Text(AppTranslations.of(context).text("btn.save"), - style: languageModel.isEng - ? TextStyle( - fontSize: 18.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal) - : TextStyle( - fontSize: 18.0, - fontWeight: FontWeight.bold, - fontStyle: FontStyle.normal, - fontFamily: "MyanmarUnicode")), - icon: Icon( - Icons.save, - ), - ), - ), - ); - - return LocalProgress( - inAsyncCall: _loading, - child: Scaffold( - appBar: AppBar( - title: Text( - AppTranslations.of(context).text("profile.edit_title"), - ), - backgroundColor: primaryColor, - ), - body: Column( - children: [ - name, - saveBtn, - ], - ), - ), - ); - } - - _save() async { - setState(() { - _loading = true; - }); - try { - await Provider.of(context, listen: false) - .updateProfile(nameController.text); - Navigator.pop(context); - setState(() { - _loading = false; - }); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } - } -} diff --git a/lib/pages/profile_setting.dart b/lib/pages/profile_setting.dart deleted file mode 100644 index c705422..0000000 --- a/lib/pages/profile_setting.dart +++ /dev/null @@ -1,201 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import 'add_pin_editor.dart'; -import 'block_list.dart'; -import 'chage_phone_number.dart'; -import 'change_password.dart'; -import 'device_list.dart'; -import 'email_page.dart'; -import 'log_list.dart'; - -class ProfileSetting extends StatefulWidget { - @override - _ProfileSettingtate createState() => _ProfileSettingtate(); -} - -class _ProfileSettingtate extends State { - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - MainModel mainModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - title: LocalText( - context, - "setting.title", - fontSize: 20, - color: Colors.white, - ), - backgroundColor: primaryColor, - ), - body: SingleChildScrollView( - padding: EdgeInsets.only( - left: 25.0, - right: 25.0, - ), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - SizedBox( - height: 8, - ), - buildSettingTile( - context: context, - text: 'log.title', - image: "assets/message.png", - width: 25, - height: 25, - tap: () { - Navigator.push(context, - MaterialPageRoute(builder: (context) => LogList())); - }, - ), - buildSettingTile( - context: context, - text: 'profile.devices', - image: "assets/device.png", - width: 29, - height: 29, - tap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => PhoneDeviceList())); - }, - ), - buildSettingTile( - context: context, - text: 'change.password.title', - image: "assets/password.png", - width: 27, - height: 27, - tap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - ChangePassword(mainModel.user))); - }, - ), - buildSettingTile( - context: context, - text: 'change.phone', - image: "assets/phone.png", - width: 30, - height: 25, - tap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - ChangePhoneNumber(mainModel.user))); - }, - ), - buildSettingTile( - context: context, - text: 'change.email', - image: "assets/email.png", - width: 25, - height: 25, - tap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => EmailPage( - user: mainModel.user, - ))); - }, - ), - // buildSettingTile( - // context: context, - // text: 'user.block_list', - // image: "assets/block.png", - // width: 27, - // height: 27, - // tap: () { - // Navigator.push(context, - // MaterialPageRoute(builder: (context) => BlockList())); - // }, - // ), - buildSettingTile( - context: context, - text: 'change.pin.title', - image: "assets/pin.png", - width: 30, - height: 30, - tap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => AddPINEditor( - mainModel.user, - ))); - }, - ), - ], - ), - ), - ), - ); - } -} - -Widget buildSettingTile( - {@required String text, - @required BuildContext context, - @required String image, - @required double width, - @required double height, - @required GestureTapCallback tap}) { - return InkWell( - onTap: () { - tap(); - }, - child: Column( - children: [ - Padding( - padding: EdgeInsets.only(top: 8.0, bottom: 5), - child: Row( - children: [ - Expanded( - child: Row( - children: [ - Padding( - padding: EdgeInsets.only(left: 12.0, right: 20.0), - child: Image.asset( - image, - width: width, - height: height, - color: primaryColor, - ), - ), - LocalText( - context, - text, - fontSize: 15.0, - color: Colors.black87, - ) - ], - ), - ), - Icon(Icons.keyboard_arrow_right) - ], - ), - ), - Divider( - color: Colors.grey, - ) - ], - ), - ); -} diff --git a/lib/pages/quota_form.dart b/lib/pages/quota_form.dart deleted file mode 100644 index c5735d4..0000000 --- a/lib/pages/quota_form.dart +++ /dev/null @@ -1,179 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -class QuotaForm extends StatefulWidget { - final BuyerProduct buyerProduct; - const QuotaForm({Key key, this.buyerProduct}) : super(key: key); - @override - _QuotaFormState createState() => _QuotaFormState(); -} - -class _QuotaFormState extends State { - final _formKey = GlobalKey(); - TextEditingController _product = new TextEditingController(); - TextEditingController _storageQty = new TextEditingController(); - TextEditingController _saleQty = new TextEditingController(); - TextEditingController _dailyQuota = new TextEditingController(); - TextEditingController _maxQuota = new TextEditingController(); - - BuyerProduct buyerProduct; - bool _isLoading = false; - - @override - void initState() { - super.initState(); - if (widget.buyerProduct != null) { - this.buyerProduct = widget.buyerProduct; - _product.text = widget.buyerProduct.productName; - _storageQty.text = widget.buyerProduct.storageCapacityQty == null - ? "" - : widget.buyerProduct.storageCapacityQty.toString(); - _saleQty.text = widget.buyerProduct.dailySaleQty == null - ? "" - : widget.buyerProduct.dailySaleQty.toString(); - _dailyQuota.text = widget.buyerProduct.dailyQuota == null - ? "" - : widget.buyerProduct.dailyQuota.toString(); - _maxQuota.text = widget.buyerProduct.maxQuota == null - ? "" - : widget.buyerProduct.maxQuota.toString(); - } - } - - @override - Widget build(BuildContext context) { - var language = Provider.of(context); - final productbox = Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - LocalText(context, "reg.table_product"), - SizedBox( - width: 30, - ), - Text(_product.text, style: textStyle) - ], - )); - - final storageQtybox = Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - LocalText(context, "reg.table_storage_vol"), - SizedBox( - width: 30, - ), - Text(_storageQty.text, style: textStyle) - ], - )); - - final saleQtybox = Container( - padding: EdgeInsets.only(top: 10), - child: Row( - children: [ - LocalText(context, "reg.table_sale_vol"), - SizedBox( - width: 25, - ), - Text(_saleQty.text, style: textStyle) - ], - )); - - final dailyQuotaBox = Container( - child: TextFormField( - controller: _dailyQuota, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('buyer.quota'), - labelStyle: language.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.sortNumericUpAlt, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return "Please enter quota"; - } - return null; - }, - ), - ); - - final maxQuotaBox = Container( - child: TextFormField( - controller: _maxQuota, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text('buyer.max.quota'), - labelStyle: language.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.sortNumericUpAlt, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return "Please enter quota"; - } - return null; - }, - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text("Quota"), - actions: [ - IconButton( - icon: Icon(Icons.save), - onPressed: () { - if (!_formKey.currentState.validate()) return; - buyerProduct.dailyQuota = int.parse(_dailyQuota.text); - buyerProduct.maxQuota = int.parse(_maxQuota.text); - Navigator.pop(context, buyerProduct); - }, - ) - ], - ), - body: Form( - key: _formKey, - child: Container( - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - productbox, - storageQtybox, - saleQtybox, - dailyQuotaBox, - maxQuotaBox - ], - ), - ), - )), - ); - } -} diff --git a/lib/pages/quota_page.dart b/lib/pages/quota_page.dart deleted file mode 100644 index 6790715..0000000 --- a/lib/pages/quota_page.dart +++ /dev/null @@ -1,216 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/buyer.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; - -class QuotaPage extends StatefulWidget { - final Buyer buyer; - final bool isApproved; - const QuotaPage({this.buyer, this.isApproved}); - @override - _QuotaPageState createState() => _QuotaPageState(); -} - -class _QuotaPageState extends State { - final formKey = GlobalKey(); - - TextEditingController _dailyQuota = new TextEditingController(); - TextEditingController _maxQuota = new TextEditingController(); - - TextEditingController _companyName = new TextEditingController(); - TextEditingController _accountName = new TextEditingController(); - Buyer buyer = Buyer(); - bool _isLoading = false; - - @override - void initState() { - super.initState(); - if (widget.buyer != null) { - this.buyer = widget.buyer; - _companyName.text = buyer.bizName; - _accountName.text = buyer.userName; - _dailyQuota.text = buyer.dailyQuota.toString(); - _maxQuota.text = buyer.maxQuota.toString(); - Provider.of(context, listen: false) - .loadBuyerProducts(buyer, force: true) - .then((b) { - setState(() { - buyer = b; - }); - }); - } - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - - final companyNameBox = Container( - padding: EdgeInsets.only(top: 0, left: 20, right: 20), - child: TextFormField( - controller: _companyName, - autofocus: false, - cursorColor: primaryColor, - readOnly: true, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("reg.biz_name"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.business, - color: primaryColor, - ), - ), - )); - final accountNameBox = Container( - padding: EdgeInsets.only(top: 0, left: 20, right: 20), - child: TextFormField( - controller: _accountName, - autofocus: false, - cursorColor: primaryColor, - readOnly: true, - style: textStyle, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("buyer.account_name"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.business, - color: primaryColor, - ), - ), - )); - - final dailyQuotaBox = Container( - padding: EdgeInsets.only(top: 0, left: 20, right: 15), - child: TextFormField( - controller: _dailyQuota, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - keyboardType: TextInputType.number, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("reg.quota"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.business, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: _validateQuota, - )); - - final maxQuotaBox = Container( - padding: EdgeInsets.only(top: 0, left: 20, right: 15), - child: TextFormField( - controller: _maxQuota, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - keyboardType: TextInputType.number, - decoration: new InputDecoration( - labelText: AppTranslations.of(context).text("reg.max_quota"), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - Icons.business, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: _validateQuota, - )); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: Text("Quota"), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - showConfirmDialog(context, "buyer.allocate.quota.confirm", () { - _allocate(); - }); - }, - ) - ], - ), - body: Form( - key: formKey, - child: Container( - padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10), - child: ListView( - children: [ - Container( - height: 500, - child: Card( - elevation: 23, - child: Column( - children: [ - accountNameBox, - companyNameBox, - dailyQuotaBox, - maxQuotaBox, - ], - ), - ), - ) - ], - ), - ), - ), - ), - ); - } - - String _validateQuota(value) { - if (value.isEmpty) { - return "Invalid number"; - } - return null; - } - - _allocate() async { - if (!formKey.currentState.validate()) { - return; - } - setState(() { - _isLoading = true; - }); - try { - buyer.dailyQuota = int.parse(_dailyQuota.text); - buyer.maxQuota = int.parse(_maxQuota.text); - if (widget.isApproved) { - await Provider.of(context).allocate(buyer); - Navigator.pop(context, true); - } else { - Navigator.pop(context, this.buyer); - } - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages_fcs/cargo_editor.dart b/lib/pages/rates/cargo_editor.dart similarity index 89% rename from lib/pages_fcs/cargo_editor.dart rename to lib/pages/rates/cargo_editor.dart index cc6717b..7abfff9 100644 --- a/lib/pages_fcs/cargo_editor.dart +++ b/lib/pages/rates/cargo_editor.dart @@ -1,9 +1,9 @@ -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/rate.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; +import 'package:fcs/domain/entities/rate.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; -import '../fcs/common/helpers/theme.dart'; class CargoEditor extends StatefulWidget { final Rate rate; diff --git a/lib/pages/custom_editor.dart b/lib/pages/rates/custom_editor.dart similarity index 89% rename from lib/pages/custom_editor.dart rename to lib/pages/rates/custom_editor.dart index 69b5bad..adfde1c 100644 --- a/lib/pages/custom_editor.dart +++ b/lib/pages/rates/custom_editor.dart @@ -1,10 +1,10 @@ -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/custom.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; +import 'package:fcs/domain/entities/custom.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../fcs/common/helpers/theme.dart'; class CustomEditor extends StatefulWidget { final Custom custom; diff --git a/lib/pages/discount_by_weight_editor.dart b/lib/pages/rates/discount_by_weight_editor.dart similarity index 89% rename from lib/pages/discount_by_weight_editor.dart rename to lib/pages/rates/discount_by_weight_editor.dart index f8d0605..ec69681 100644 --- a/lib/pages/discount_by_weight_editor.dart +++ b/lib/pages/rates/discount_by_weight_editor.dart @@ -1,11 +1,10 @@ -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/vo/custom.dart'; -import 'package:fcs/vo/discount.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; +import 'package:fcs/domain/entities/discount.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/main/util.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../fcs/common/helpers/theme.dart'; class DiscountByWeightEditor extends StatefulWidget { final Discount discount; diff --git a/lib/model/shipment_rate_model.dart b/lib/pages/rates/model/shipment_rate_model.dart similarity index 71% rename from lib/model/shipment_rate_model.dart rename to lib/pages/rates/model/shipment_rate_model.dart index 43e0c25..f1f25c4 100644 --- a/lib/model/shipment_rate_model.dart +++ b/lib/pages/rates/model/shipment_rate_model.dart @@ -1,13 +1,12 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:fcs/vo/custom.dart'; -import 'package:fcs/vo/discount.dart'; -import 'package:fcs/vo/rate.dart'; +import 'package:fcs/domain/entities/custom.dart'; +import 'package:fcs/domain/entities/discount_rate.dart'; +import 'package:fcs/domain/entities/rate.dart'; +import 'package:fcs/pages/main/model/base_model.dart'; import 'package:logging/logging.dart'; -import 'base_model.dart'; - class ShipmentRateModel extends BaseModel { final log = Logger('ShipmentRateModel'); @@ -29,9 +28,9 @@ class ShipmentRateModel extends BaseModel { Custom(productType: 'Max Book', fee: 40) ]; - List discountsByWeight = [ - Discount(weight: 50, discountRate: 0.25), - Discount(weight: 100, discountRate: 0.50) + List discountsByWeight = [ + DiscountRate(weight: 50, discountRate: 0.25), + DiscountRate(weight: 100, discountRate: 0.50) ]; int freeDeliveryWeight = 10; diff --git a/lib/pages/shipment_rates.dart b/lib/pages/rates/shipment_rates.dart similarity index 73% rename from lib/pages/shipment_rates.dart rename to lib/pages/rates/shipment_rates.dart index f46bbbf..7f46af4 100644 --- a/lib/pages/shipment_rates.dart +++ b/lib/pages/rates/shipment_rates.dart @@ -1,51 +1,31 @@ -import 'package:fcs/model/shipment_rate_model.dart'; -import 'package:fcs/pages/shipment_rates_calculate.dart'; -import 'package:fcs/pages/shipment_rates_edit.dart'; -import 'package:fcs/vo/custom.dart'; -import 'package:fcs/vo/discount.dart'; -import 'package:fcs/vo/pickup.dart'; -import 'package:fcs/vo/rate.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; - +import 'package:fcs/domain/entities/custom.dart'; +import 'package:fcs/domain/entities/discount_rate.dart'; +import 'package:fcs/domain/entities/rate.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; +import 'package:provider/provider.dart'; -import '../fcs/common/helpers/theme.dart'; -import '../fcs/common/pages/util.dart'; +import '../main/util.dart'; +import 'shipment_rates_calculate.dart'; +import 'shipment_rates_edit.dart'; class ShipmentRates extends StatefulWidget { - final PickUp pickUp; - ShipmentRates({this.pickUp}); + ShipmentRates(); @override _ShipmentRatesState createState() => _ShipmentRatesState(); } class _ShipmentRatesState extends State { - TextEditingController _addressEditingController = new TextEditingController(); - TextEditingController _fromTimeEditingController = - new TextEditingController(); - TextEditingController _toTimeEditingController = new TextEditingController(); - TextEditingController _noOfPackageEditingController = - new TextEditingController(); - TextEditingController _weightEditingController = new TextEditingController(); - - PickUp _pickUp; bool _isLoading = false; @override void initState() { super.initState(); - if (widget.pickUp != null) { - _pickUp = widget.pickUp; - _addressEditingController.text = _pickUp.address; - _fromTimeEditingController.text = _pickUp.fromTime; - _toTimeEditingController.text = _pickUp.toTime; - _noOfPackageEditingController.text = _pickUp.numberOfPackage.toString(); - _weightEditingController.text = _pickUp.weight.toString(); - } } @override @@ -57,21 +37,6 @@ class _ShipmentRatesState extends State { Widget build(BuildContext context) { var shipmentRateModel = Provider.of(context); - final usaAddress = Container( - child: TextFormField( - maxLines: null, - controller: _addressEditingController, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: 'USA Delivery Address', - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - )); - return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( @@ -190,7 +155,7 @@ class _ShipmentRatesState extends State { }).toList(); } - List getDiscountWidget(List discounts) { + List getDiscountWidget(List discounts) { return discounts.map((d) { return Container( child: _row( diff --git a/lib/pages/shipment_rates_calculate.dart b/lib/pages/rates/shipment_rates_calculate.dart similarity index 82% rename from lib/pages/shipment_rates_calculate.dart rename to lib/pages/rates/shipment_rates_calculate.dart index 2c6da22..1b8eac0 100644 --- a/lib/pages/shipment_rates_calculate.dart +++ b/lib/pages/rates/shipment_rates_calculate.dart @@ -1,45 +1,25 @@ -import 'package:fcs/model/shipment_rate_model.dart'; -import 'package:fcs/vo/pickup.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; class ShipmentRatesCal extends StatefulWidget { - final PickUp pickUp; - ShipmentRatesCal({this.pickUp}); + ShipmentRatesCal(); @override _ShipmentRatesCalState createState() => _ShipmentRatesCalState(); } class _ShipmentRatesCalState extends State { - TextEditingController _addressEditingController = new TextEditingController(); - TextEditingController _fromTimeEditingController = - new TextEditingController(); - TextEditingController _toTimeEditingController = new TextEditingController(); - TextEditingController _noOfPackageEditingController = - new TextEditingController(); - TextEditingController _weightEditingController = new TextEditingController(); - - PickUp _pickUp; bool _isLoading = false; String cargoType; @override void initState() { super.initState(); - if (widget.pickUp != null) { - _pickUp = widget.pickUp; - _addressEditingController.text = _pickUp.address; - _fromTimeEditingController.text = _pickUp.fromTime; - _toTimeEditingController.text = _pickUp.toTime; - _noOfPackageEditingController.text = _pickUp.numberOfPackage.toString(); - _weightEditingController.text = _pickUp.weight.toString(); - } } @override diff --git a/lib/pages/shipment_rates_edit.dart b/lib/pages/rates/shipment_rates_edit.dart similarity index 90% rename from lib/pages/shipment_rates_edit.dart rename to lib/pages/rates/shipment_rates_edit.dart index 594dae4..0da6a1c 100644 --- a/lib/pages/shipment_rates_edit.dart +++ b/lib/pages/rates/shipment_rates_edit.dart @@ -1,54 +1,36 @@ -import 'package:fcs/model/shipment_rate_model.dart'; -import 'package:fcs/pages_fcs/cargo_editor.dart'; -import 'package:fcs/vo/custom.dart'; -import 'package:fcs/vo/discount.dart'; -import 'package:fcs/vo/pickup.dart'; -import 'package:fcs/vo/rate.dart'; -import 'package:fcs/widget/bottom_up_page_route.dart'; -import 'package:fcs/widget/my_data_table.dart'; +import 'package:fcs/domain/entities/custom.dart'; +import 'package:fcs/domain/entities/discount.dart'; +import 'package:fcs/domain/entities/discount_rate.dart'; +import 'package:fcs/domain/entities/rate.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/localization/app_translations.dart'; +import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; +import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/my_data_table.dart'; +import 'package:fcs/pages/widgets/progress.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; -import '../fcs/common/helpers/theme.dart'; +import '../main/util.dart'; +import 'cargo_editor.dart'; import 'custom_editor.dart'; import 'discount_by_weight_editor.dart'; -import '../fcs/common/pages/util.dart'; class ShipmentRatesEdit extends StatefulWidget { - final PickUp pickUp; - ShipmentRatesEdit({this.pickUp}); + ShipmentRatesEdit(); @override _ShipmentRatesEditState createState() => _ShipmentRatesEditState(); } class _ShipmentRatesEditState extends State { - TextEditingController _addressEditingController = new TextEditingController(); - TextEditingController _fromTimeEditingController = - new TextEditingController(); - TextEditingController _toTimeEditingController = new TextEditingController(); - TextEditingController _noOfPackageEditingController = - new TextEditingController(); - TextEditingController _weightEditingController = new TextEditingController(); - - PickUp _pickUp; bool _isLoading = false; @override void initState() { super.initState(); - if (widget.pickUp != null) { - _pickUp = widget.pickUp; - _addressEditingController.text = _pickUp.address; - _fromTimeEditingController.text = _pickUp.fromTime; - _toTimeEditingController.text = _pickUp.toTime; - _noOfPackageEditingController.text = _pickUp.numberOfPackage.toString(); - _weightEditingController.text = _pickUp.weight.toString(); - } } @override @@ -349,7 +331,7 @@ class _ShipmentRatesEditState extends State { }).toList(); } - List getDiscounts(List discounts) { + List getDiscounts(List discounts) { return discounts.map((d) { return MyDataRow( onSelectChanged: (selected) { diff --git a/lib/pages/report_user_editor.dart b/lib/pages/report_user_editor.dart deleted file mode 100644 index d3999d0..0000000 --- a/lib/pages/report_user_editor.dart +++ /dev/null @@ -1,260 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/report_user_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/report.dart'; -import 'package:fcs/vo/report_user.dart'; -import 'package:fcs/vo/user.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; -import '../fcs/common/pages/util.dart'; - -typedef void FindCallBack(); - -class ReportUserEditor extends StatefulWidget { - final Report report; - const ReportUserEditor({this.report}); - @override - _ReportUserEditorState createState() => _ReportUserEditorState(); -} - -class _ReportUserEditorState extends State { - TextEditingController _name = new TextEditingController(); - TextEditingController _searchInput = new TextEditingController(); - final GlobalKey _scaffoldKey = new GlobalKey(); - - bool _isLoading = false; - bool isSend = false; - User selectedUser; - List _users = []; - int selectedIndex; - - @override - void initState() { - super.initState(); - } - - Widget searchInputBox(BuildContext context, FindCallBack findCallBack) { - var languageModel = Provider.of(context); - return Container( - padding: EdgeInsets.only(top: 10, left: 15, right: 15), - child: Stack( - alignment: const Alignment(1.2, 1.0), - children: [ - TextFormField( - controller: _searchInput, - autofocus: false, - cursorColor: primaryColor, - style: textStyle, - decoration: new InputDecoration( - labelText: - AppTranslations.of(context).text('report.user.search'), - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - ), - new FlatButton( - onPressed: () { - findCallBack(); - }, - child: new Icon( - Icons.search, - size: 25, - )) - ], - )); - } - - @override - Widget build(BuildContext context) { - final namebox = Container( - padding: EdgeInsets.only(left: 10, top: 10), - child: TextFormField( - controller: _name, - autofocus: false, - readOnly: true, - cursorColor: primaryColor, - decoration: new InputDecoration( - border: InputBorder.none, - focusedBorder: InputBorder.none, - icon: Icon( - Icons.person, - color: primaryColor, - ), - ), - ), - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - key: _scaffoldKey, - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText(context, "user.title", - fontSize: 20, color: Colors.white), - actions: [ - IconButton( - icon: Icon( - Icons.save, - color: Colors.white, - ), - onPressed: () { - _save(context); - }) - ], - ), - body: Column( - children: [ - Expanded( - child: ListView( - shrinkWrap: true, - children: [ - searchInputBox(context, () => _findUser(context)), - this.isSend ? namebox : Container(), - Container( - padding: EdgeInsets.only( - top: this.isSend ? 10 : 20, left: 20, right: 20), - child: Column( - children: _getUsers(context), - ), - ), - ], - ), - ), - SizedBox( - height: 20, - ) - ], - )), - ); - } - - _findUser(BuildContext context) async { - var reportUserModel = Provider.of(context); - if (_searchInput.text == '') { - showMsgDialog(context, "Error", 'Please fill the search field'); - } - setState(() { - _isLoading = true; - }); - - try { - List users = await reportUserModel.findUser(_searchInput.text); - if (users.isEmpty) return; - setState(() { - this._users = users; - }); - } catch (e) { - setState(() { - this.isSend = false; - }); - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - - List _getUsers(BuildContext context) { - return _users.asMap().entries.map((u) { - return Container( - child: Card( - elevation: 10, - color: Colors.white, - child: InkWell( - onTap: () { - setState(() { - this.selectedUser = u.value; - isSend = true; - _name.text = selectedUser.name; - selectedIndex = u.key; - }); - }, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 5.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - 15.0 / 2), - child: Icon( - Icons.account_circle, - color: Colors.grey, - size: 50, - ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - u.value.name == null ? "" : u.value.name, - style: new TextStyle( - fontSize: 15.0, color: Colors.black), - ), - ], - ), - ], - ), - ), - ), - selectedIndex != null && selectedIndex == u.key - ? Container( - padding: EdgeInsets.only(right: 25), - child: Icon(Icons.check)) - : Container() - ], - ), - ), - )); - }).toList(); - } - - _save(BuildContext context) async { - var reportUserModel = Provider.of(context); - - if (selectedUser == null) return; - - setState(() { - _isLoading = true; - }); - - reportUserModel.getUsersForReport(widget.report.id).then((users) async { - if (users.any((u) => u.userID == this.selectedUser.docID)) { - setState(() { - _isLoading = false; - }); - showMsgDialog(context, "Error", 'Duplicate User'); - } else { - try { - ReportUser _reportUser = ReportUser( - userID: this.selectedUser.docID, - userName: this.selectedUser.name, - reportID: widget.report.id, - reportName: widget.report.display); - - await reportUserModel.assignUser(_reportUser); - reportUserModel.getUsersForReport(widget.report.id).then((users) { - Navigator.pop>(context, users); - }); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } - }); - } -} diff --git a/lib/pages/report_user_list.dart b/lib/pages/report_user_list.dart deleted file mode 100644 index 2b08a3a..0000000 --- a/lib/pages/report_user_list.dart +++ /dev/null @@ -1,220 +0,0 @@ -import 'package:provider/provider.dart'; -import 'package:fcs/model/report_user_model.dart'; -import 'package:fcs/vo/report.dart'; -import 'package:fcs/vo/report_user.dart'; -import 'package:fcs/widget/local_text.dart'; - -import 'package:flutter/material.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart'; -import 'report_user_editor.dart'; -import '../fcs/common/pages/util.dart'; - -class ReportUserList extends StatefulWidget { - final Report report; - - const ReportUserList({Key key, this.report}) : super(key: key); - @override - _ReportUserListState createState() => _ReportUserListState(); -} - -class _ReportUserListState extends State { - Report _report = new Report(); - final double dotSize = 15.0; - bool _isLoading = false; - List _users = []; - bool isForAllUsers = false; - - @override - void initState() { - super.initState(); - - if (widget.report != null) { - this._report = widget.report; - var reportUserModel = - Provider.of(context, listen: false); - reportUserModel.getUsersForReport(this._report.id).then((users) { - if (mounted) { - setState(() { - this._users = users; - }); - } - }); - this.isForAllUsers = - widget.report.forAllUser == null ? false : widget.report.forAllUser; - } - } - - @override - Widget build(BuildContext context) { - final allUserBox = Container( - child: new ListTile( - title: new Row( - children: [ - new Checkbox( - value: isForAllUsers, - activeColor: primaryColor, - onChanged: (bool value) async { - setState(() { - _isLoading = true; - }); - try { - setState(() { - this.isForAllUsers = value; - }); - this._report.forAllUser = this.isForAllUsers; - var reportUserModel = Provider.of(context); - await reportUserModel.updateReportForAllUsers(this._report); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - }), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Text( - 'All Users', - style: TextStyle( - fontSize: 15.0, - ), - ), - ], - ), - ], - ))); - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - 'report.users.title', - translationVariables: [this._report.display], - color: Colors.white, - fontSize: 18, - ), - ), - floatingActionButton: FloatingActionButton( - backgroundColor: primaryColor, - child: Icon(Icons.add), - onPressed: () async { - List _us = await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - ReportUserEditor(report: widget.report)), - ); - - if (_us == null) return; - setState(() { - _users.clear(); - _users.addAll(_us); - }); - }, - ), - body: ListView( - shrinkWrap: true, - children: [ - allUserBox, - Container( - padding: EdgeInsets.only(left: 10, right: 10), - child: Column( - children: _getUserRow(context), - ), - ), - SizedBox(height: 15) - ], - ), - ), - ); - } - - List _getUserRow(BuildContext context) { - _users.sort((a, b) => a.userName.compareTo(b.userName)); - return _users.map((u) { - return Container( - child: Card( - elevation: 10, - color: Colors.white, - child: InkWell( - onTap: () {}, - child: Row( - children: [ - Expanded( - child: new Padding( - padding: const EdgeInsets.symmetric(vertical: 10.0), - child: new Row( - children: [ - new Padding( - padding: new EdgeInsets.symmetric( - horizontal: 32.0 - dotSize / 2), - child: Icon( - Icons.account_circle, - color: primaryColor, - size: 50, - ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - u.userName == null ? "" : u.userName, - style: new TextStyle( - fontSize: 17.0, color: Colors.black), - ), - ], - ), - ], - ), - ), - ), - IconButton( - padding: EdgeInsets.only(right: 10), - icon: Icon( - Icons.delete, - color: Colors.grey[700], - ), - onPressed: () { - showConfirmDialog(context, "report.user_delete_confirm", - () { - _delete(context, u); - }); - }) - ], - ), - ), - )); - }).toList(); - } - - void _delete(BuildContext context, ReportUser reportUser) async { - setState(() { - _isLoading = true; - }); - try { - var reportUserModel = Provider.of(context); - await reportUserModel.deleteReportUser(reportUser); - - reportUserModel.getUsersForReport(widget.report.id).then((users) { - if (mounted) { - setState(() { - this._users = users; - }); - } - }); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/reset_password.dart b/lib/pages/reset_password.dart deleted file mode 100644 index a1eed65..0000000 --- a/lib/pages/reset_password.dart +++ /dev/null @@ -1,368 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/user_model.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/localization/app_translations.dart'; -import 'package:fcs/widget/progress.dart'; - -import '../fcs/common/helpers/theme.dart' as Theme; -import '../fcs/common/pages/util.dart'; - -class ResetPasswordPage extends StatefulWidget { - final String phoneNumber; - ResetPasswordPage( - this.phoneNumber, { - Key key, - }) : super(key: key); - - @override - _ResetPasswordPageState createState() => new _ResetPasswordPageState(); -} - -class _ResetPasswordPageState extends State - with SingleTickerProviderStateMixin { - final GlobalKey _scaffoldKey = new GlobalKey(); - - final FocusNode myFocusNodePassword = FocusNode(); - final FocusNode myFocusNodeEmail = FocusNode(); - - bool _obscureTextLogin = true; - bool _obscureTextSignup = true; - bool _obscureTextSignupConfirm = true; - - TextEditingController _smsController = new TextEditingController(); - TextEditingController _passwordController = new TextEditingController(); - TextEditingController _confirmPasswordController = - new TextEditingController(); - final formKey = GlobalKey(); - bool _isLoading = false; - - @override - Widget build(BuildContext context) { - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - key: _scaffoldKey, - body: SingleChildScrollView( - child: Container( - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height >= 775.0 - ? MediaQuery.of(context).size.height - : 580.0, - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Padding( - padding: EdgeInsets.only(top: 35.0, bottom: 10), - child: ListTile( - leading: IconButton( - icon: Icon(Icons.arrow_back), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - title: LocalText( - context, - 'reset.password.title', - color: Colors.black87, - fontSize: 17, - ), - ), - ), - Expanded( - flex: 2, - child: PageView( - children: [ - new ConstrainedBox( - constraints: const BoxConstraints.expand(), - child: _buildReset(context), - ), - ], - ), - ), - ], - ), - ), - ), - ), - ); - } - - @override - void dispose() { - myFocusNodePassword.dispose(); - myFocusNodeEmail.dispose(); - super.dispose(); - } - - @override - void initState() { - super.initState(); - - // SystemChrome.setPreferredOrientations([ - // DeviceOrientation.portraitUp, - // DeviceOrientation.portraitDown, - // ]); - - _smsController.text = ""; - } - - Widget _buildReset(BuildContext context) { - return Container( - child: ListView( - children: [ - Column( - children: [ - Form( - key: formKey, - child: Card( - elevation: 2.0, - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.0), - ), - child: Container( - width: 300.0, - child: Column( - children: [ - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodeEmail, - controller: _smsController, - keyboardType: TextInputType.phone, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.sms, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("reset.sms"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - ), - validator: _validateSMSCode), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - focusNode: myFocusNodePassword, - controller: _passwordController, - obscureText: _obscureTextSignup, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("reset.new_password"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleSignup, - child: Icon( - _obscureTextSignup - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validatePassword, - ), - ), - Container( - width: 250.0, - height: 1.0, - color: Colors.grey[400], - ), - Padding( - padding: EdgeInsets.only(left: 25.0, right: 25.0), - child: TextFormField( - controller: _confirmPasswordController, - obscureText: _obscureTextSignupConfirm, - style: TextStyle( - fontFamily: "WorkSansSemiBold", - fontSize: 16.0, - color: Colors.black), - decoration: InputDecoration( - border: InputBorder.none, - icon: Icon( - FontAwesomeIcons.lock, - color: Colors.black, - ), - labelText: AppTranslations.of(context) - .text("login.confirm_password"), - labelStyle: - Provider.of(context).isEng - ? TextStyle( - fontFamily: "WorkSansSemiBold", - color: Colors.grey) - : TextStyle( - fontFamily: "MyanmarUnicode", - color: Colors.grey), - suffixIcon: GestureDetector( - onTap: _toggleSignupConfirm, - child: Icon( - _obscureTextSignupConfirm - ? FontAwesomeIcons.eye - : FontAwesomeIcons.eyeSlash, - size: 15.0, - color: Colors.black, - ), - ), - ), - validator: _validateConfirmPassword, - ), - ), - ], - ), - ), - ), - ), - Container( - // margin: EdgeInsets.only(top: 320.0), - decoration: new BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(5.0)), - color: Theme.primaryColor, - ), - child: MaterialButton( - highlightColor: Colors.transparent, - splashColor: Theme.LoginColors.loginGradientEnd, - //shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(5.0))), - child: Padding( - padding: const EdgeInsets.symmetric( - vertical: 10.0, horizontal: 42.0), - child: Text( - AppTranslations.of(context).text("reset"), - style: Provider.of(context).isEng - ? TextStyle( - color: Colors.white, - fontSize: 18.0, - fontFamily: "WorkSansBold") - : TextStyle( - color: Colors.white, - fontSize: 18.0, - fontFamily: "MyanmarUnicode"), - ), - ), - onPressed: () => _reset(context)), - ), - ], - ), - ], - ), - ); - } - - void _toggleLogin() { - setState(() { - _obscureTextLogin = !_obscureTextLogin; - }); - } - - void _toggleSignup() { - setState(() { - _obscureTextSignup = !_obscureTextSignup; - }); - } - - void _toggleSignupConfirm() { - setState(() { - _obscureTextSignupConfirm = !_obscureTextSignupConfirm; - }); - } - - void _reset(BuildContext context) async { - if (!formKey.currentState.validate()) { - return; - } - - var smsCode = _smsController.text; - var password = _passwordController.text; - - setState(() { - _isLoading = true; - }); - - UserModel userModel = Provider.of(context); - try { - await userModel.resetPassword(widget.phoneNumber, password, smsCode); - Navigator.pushNamedAndRemoveUntil(context, "/login", (r) => false); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - Future.delayed(Duration(seconds: 1), () { - if (mounted) { - setState(() { - _isLoading = false; - }); - } - }); - } - } - - String _validatePassword(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.password_empty"); - } - if (value.length < 6) { - return AppTranslations.of(context).text("login.password_size"); - } - return null; - } - - String _validateConfirmPassword(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.confirm_password_empty"); - } - if (value.length < 6) { - return AppTranslations.of(context).text("login.password_size"); - } - if (value != _passwordController.text) { - return AppTranslations.of(context).text("login.password_mismatch"); - } - return null; - } - - String _validateSMSCode(value) { - if (value.isEmpty) { - return AppTranslations.of(context).text("login.sms_empty"); - } - if (value.length != 6) { - return AppTranslations.of(context).text("login.sms_size"); - } - return null; - } -} diff --git a/lib/pages/search_page.dart b/lib/pages/search_page.dart deleted file mode 100644 index 459c9f0..0000000 --- a/lib/pages/search_page.dart +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/buyer_model.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/buyer.dart'; - -import 'buyer_list_row.dart'; - -Future showPlacesSearch(BuildContext context) async => - await showSearch( - context: context, - delegate: UserSearchDelegate(), - ); - -class UserSearchDelegate extends SearchDelegate { - @override - ThemeData appBarTheme(BuildContext context) { - final ThemeData theme = Theme.of(context); - return theme.copyWith( - inputDecorationTheme: InputDecorationTheme( - hintStyle: TextStyle( - color: theme.primaryTextTheme.title.color, fontSize: 16)), - primaryColor: primaryColor, - primaryIconTheme: theme.primaryIconTheme.copyWith(color: Colors.white), - primaryColorBrightness: Brightness.light, - primaryTextTheme: theme.textTheme, - textTheme: theme.textTheme.copyWith( - title: theme.textTheme.title.copyWith( - color: theme.primaryTextTheme.title.color, fontSize: 16)), - ); - } - - @override - List buildActions(BuildContext context) { - return [ - IconButton( - icon: Icon(Icons.clear), - onPressed: () => query = '', - ), - ]; - } - - @override - Widget buildLeading(BuildContext context) { - return IconButton( - icon: Icon(Icons.arrow_back), - onPressed: () => close(context, null), - ); - } - - @override - Widget buildResults(BuildContext context) { - final buyerModel = Provider.of(context); - return FutureBuilder( - future: buyerModel.search(query), - builder: (context, AsyncSnapshot> snapshot) { - if (snapshot.hasData) { - if (snapshot.data.length == 0) { - return Container( - child: Center( - child: Text( - "Error :No Search Buyer", - textAlign: TextAlign.center, - ), - ), - ); - } - return Container( - padding: EdgeInsets.only(top: 15), - child: ListView( - children: - snapshot.data.map((u) => BuyerListRow(buyer: u)).toList(), - ), - ); - } else if (snapshot.hasError) { - return Container( - child: Center( - child: Text( - '${snapshot.error}', - textAlign: TextAlign.center, - ), - ), - ); - } else { - return Container( - child: Center( - child: CircularProgressIndicator( - valueColor: - new AlwaysStoppedAnimation(primaryColor)), - ), - ); - } - }); - } - - @override - Widget buildSuggestions(BuildContext context) { - return Container( - child: Center( - child: Opacity( - opacity: 0.2, - child: Icon( - Icons.supervised_user_circle, - size: 200, - )), - ), - ); - } -} diff --git a/lib/pages/setting_editor.dart b/lib/pages/setting_editor.dart deleted file mode 100644 index ba184c6..0000000 --- a/lib/pages/setting_editor.dart +++ /dev/null @@ -1,416 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/language_model.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/setting.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -class SettingEidtor extends StatefulWidget { - final Setting setting; - const SettingEidtor({this.setting}); - @override - _SettingEidtorState createState() => _SettingEidtorState(); -} - -class _SettingEidtorState extends State { - TextEditingController _doExpire = new TextEditingController(); - TextEditingController _poExpire = new TextEditingController(); - TextEditingController _poOpend = new TextEditingController(); - TextEditingController _poClosed = new TextEditingController(); - TextEditingController _latestDeliveryDay = new TextEditingController(); - TextEditingController _firstStorageDay = new TextEditingController(); - TextEditingController _firstStorageCharge = new TextEditingController(); - TextEditingController _secondStorageDay = new TextEditingController(); - TextEditingController _secondStorgeCharge = new TextEditingController(); - - final _formKey = GlobalKey(); - bool _isLoading = false; - List days = []; - - @override - void initState() { - super.initState(); - days = dayLists; - if (widget.setting != null) { - _doExpire.text = widget.setting.doExpireInHours.toString(); - _poExpire.text = widget.setting.poExpireInHours.toString(); - _poOpend.text = widget.setting.poOpenAt.toString(); - _poClosed.text = widget.setting.poCloseAt.toString(); - _latestDeliveryDay.text = widget.setting.latestDeliveryDay.toString(); - _firstStorageDay.text = widget.setting.firstStorageChargeIn.toString(); - _firstStorageCharge.text = widget.setting.firstStorageCharge.toString(); - _secondStorageDay.text = widget.setting.secondStorageChargeIn.toString(); - _secondStorgeCharge.text = widget.setting.secondStorageCharge.toString(); - - days.forEach((d) => widget.setting.poCloseOn.contains(d.id) - ? d.isChecked = true - : d.isChecked = false); - } - } - - Widget showDayList(BuildContext context, MainModel mainModel) { - return Container( - margin: EdgeInsets.symmetric(vertical: 5.0), - height: 75.0, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(left: 10, top: 10), - child: Text( - "PO submission closed Day", - style: TextStyle(color: Colors.black54), - ), - ), - Expanded( - child: ListView.builder( - itemCount: days.length, - scrollDirection: Axis.horizontal, - padding: EdgeInsets.only(top: 10), - itemBuilder: (BuildContext context, int index) { - return new Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Checkbox( - value: days[index].isChecked == null - ? false - : days[index].isChecked, - activeColor: primaryColor, - onChanged: (bool value) { - setState(() { - days[index].isChecked = value; - }); - }), - Container( - padding: EdgeInsets.only(top: 13), - child: new Text( - dayLists[index].name, - style: TextStyle( - fontSize: 15.0, - ), - ), - ), - ], - ); - }), - ), - ], - ), - ); - } - - @override - Widget build(BuildContext context) { - var languageModel = Provider.of(context); - var mainModel = Provider.of(context); - - final doExpireBox = TextFormField( - controller: _doExpire, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'DO expired Time', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.clock, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter DO expired Time'; - } - return null; - }, - ); - - final poExpireBox = TextFormField( - controller: _poExpire, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'PO expired Time', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.clock, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter PO expired Time'; - } - return null; - }, - ); - - final poOpenedBox = TextFormField( - controller: _poOpend, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'PO submission opened Time', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.clock, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter PO submission opened Time'; - } - return null; - }, - ); - - final poClosedBox = TextFormField( - controller: _poClosed, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'PO submission closed Time', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.clock, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter PO submission closed Time'; - } - return null; - }, - ); - - final latestDeliveryDayBox = TextFormField( - controller: _latestDeliveryDay, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'Latest Delivery Day', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.clock, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter Latest Delivery Day'; - } - return null; - }, - ); - - final firstStorageDayBox = TextFormField( - controller: _firstStorageDay, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'First storage charge starts Day', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.calendarDay, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter First storage charge starts Day'; - } - return null; - }, - ); - - final firstStorgeChargeBox = TextFormField( - controller: _firstStorageCharge, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'First storage charge Fees', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.sortNumericUp, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter First storage charge Fees'; - } - return null; - }, - ); - - final secondStorgeDayBox = TextFormField( - controller: _secondStorageDay, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'Second storage charge starts Day', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.calendarDay, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter Second storage charge starts Day'; - } - return null; - }, - ); - - final secondStorgeChargeBox = TextFormField( - controller: _secondStorgeCharge, - autofocus: false, - cursorColor: primaryColor, - keyboardType: TextInputType.phone, - style: textStyle, - decoration: new InputDecoration( - labelText: 'Second storage charge Fees', - labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, - icon: Icon( - FontAwesomeIcons.sortNumericUp, - color: primaryColor, - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor, width: 1.0)), - ), - validator: (value) { - if (value.isEmpty) { - return 'Please enter Second storage charge Fees'; - } - return null; - }, - ); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - "setting.title", - fontSize: 20, - color: Colors.white, - ), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - if (!_formKey.currentState.validate()) return; - showConfirmDialog(context, "setting.confirm", () { - _submit(); - }); - }) - ], - ), - body: Form( - key: _formKey, - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - // doExpireBox, - poExpireBox, - poOpenedBox, - poClosedBox, - showDayList(context, mainModel), - latestDeliveryDayBox, - firstStorageDayBox, - firstStorgeChargeBox, - secondStorgeDayBox, - secondStorgeChargeBox - ], - ), - ), - )); - } - - _submit() async { - setState(() { - _isLoading = true; - }); - try { - widget.setting.poExpireInHours = int.parse(_poExpire.text); - widget.setting.poOpenAt = int.parse(_poOpend.text); - widget.setting.poCloseAt = int.parse(_poClosed.text); - widget.setting.latestDeliveryDay = int.parse(_latestDeliveryDay.text); - widget.setting.firstStorageChargeIn = int.parse(_firstStorageDay.text); - widget.setting.firstStorageCharge = int.parse(_firstStorageCharge.text); - widget.setting.secondStorageChargeIn = int.parse(_secondStorageDay.text); - widget.setting.secondStorageCharge = int.parse(_secondStorgeCharge.text); - widget.setting.poCloseOn = - this.days.where((d) => d.isChecked == true).map((p) => p.id).toList(); - var mainModel = Provider.of(context); - await mainModel.updateSetting(widget.setting); - Navigator.pop(context); - } catch (e) { - showMsgDialog(context, "Error", e.toString()); - } finally { - setState(() { - _isLoading = false; - }); - } - } -} diff --git a/lib/pages/setting_editor_byOwner.dart b/lib/pages/setting_editor_byOwner.dart deleted file mode 100644 index 54af0e8..0000000 --- a/lib/pages/setting_editor_byOwner.dart +++ /dev/null @@ -1,256 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:fcs/model/main_model.dart'; -import 'package:fcs/fcs/common/pages/util.dart'; -import 'package:fcs/fcs/common/helpers/theme.dart'; -import 'package:fcs/vo/setting.dart'; -import 'package:fcs/widget/local_text.dart'; -import 'package:fcs/widget/progress.dart'; - -class Time { - final int value; - Time(this.value); - String get getValue => - value > 12 ? (value - 12).toString() + "PM" : value.toString() + "AM"; - - @override - bool operator ==(other) { - if (identical(this, other)) { - return true; - } - return other.value == this.value; - } - - @override - int get hashCode { - int result = 17; - result = 37 * result + value.hashCode; - return result; - } -} - -class SettingOwner extends StatefulWidget { - final Setting setting; - const SettingOwner({this.setting}); - @override - _SettingOwnerState createState() => _SettingOwnerState(); -} - -class _SettingOwnerState extends State { - final _formKey = GlobalKey(); - bool _isLoading = false; - List days = []; - int poOpenAt = 0; - int poCloseAt = 0; - - @override - void initState() { - super.initState(); - days = dayLists; - if (widget.setting != null) { - poOpenAt = widget.setting.poOpenAt; - poCloseAt = widget.setting.poCloseAt; - days.forEach((d) => widget.setting.poCloseOn.contains(d.id) - ? d.isChecked = true - : d.isChecked = false); - } - } - - Widget showDayList(BuildContext context, MainModel mainModel) { - return Container( - margin: EdgeInsets.symmetric(vertical: 5.0), - height: 500.0, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(left: 10, top: 10), - child: Text( - "PO submission closed Day", - style: TextStyle(color: Colors.black54), - ), - ), - Expanded( - child: ListView.builder( - itemCount: days.length, - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 10), - itemBuilder: (BuildContext context, int index) { - return new Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - new Checkbox( - value: days[index].isChecked == null - ? false - : days[index].isChecked, - activeColor: primaryColor, - onChanged: (bool value) { - setState(() { - days[index].isChecked = value; - }); - }), - Container( - padding: EdgeInsets.only(top: 13), - child: new Text( - dayLists[index].name, - style: TextStyle( - fontSize: 15.0, - ), - ), - ), - ], - ); - }), - ), - ], - ), - ); - } - - @override - Widget build(BuildContext context) { - var mainModel = Provider.of(context); - - return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: AppBar( - backgroundColor: primaryColor, - title: LocalText( - context, - "setting.title", - fontSize: 20, - color: Colors.white, - ), - actions: [ - IconButton( - icon: Icon(Icons.send), - onPressed: () { - if (!_formKey.currentState.validate()) return; - showConfirmDialog(context, "setting.confirm", () { - _submit(); - }); - }) - ], - ), - body: ListView( - children: [ - Padding( - padding: const EdgeInsets.only(left: 24), - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text("PO submission opened at:"), - ), - getDropDown(poOpenAt, (value) { - setState(() { - setState(() { - this.poOpenAt = value; - }); - }); - }), - ], - ), - ), - Padding( - padding: const EdgeInsets.only(left: 24), - child: Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text("PO submission closed at:"), - ), - getDropDown(poCloseAt, (value) { - setState(() { - setState(() { - this.poCloseAt = value; - }); - }); - }), - ], - ), - ), - Form( - key: _formKey, - child: ListView( - shrinkWrap: true, - padding: EdgeInsets.only(left: 24.0, right: 24.0), - children: [ - showDayList(context, mainModel), - ], - ), - ), - ], - ), - )); - } - - Widget getDropDown(int initial, Function(int) onChanged) { - Time value = Time(initial); - return DropdownButton