From 0223c53d09ff7ae3a0bd761a4c9ceb17ad13af03 Mon Sep 17 00:00:00 2001 From: Saturneric Date: Tue, 1 Sep 2020 01:01:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 31 + .mvn/wrapper/MavenWrapperDownloader.java | 118 + .mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .mvn/wrapper/maven-wrapper.properties | 2 + mvnw | 310 + mvnw.cmd | 182 + pom.xml | 228 + .../com/codesdream/ase/AseApplication.java | 13 + .../ase/component/ASESpringUtil.java | 22 + .../component/activity/ActivityConverter.java | 178 + .../component/activity/CurrentUserGetter.java | 26 + .../ase/component/activity/FileUtils.java | 129 + .../activity/NullValueAttributes.java | 12 + .../ase/component/activity/QrCodeUtils.java | 225 + .../ase/component/api/QuickJSONRespond.java | 128 + .../component/auth/AJAXRequestChecker.java | 14 + .../auth/ASEAccessDecisionManager.java | 42 + .../auth/ASEAccessDeniedHandler.java | 33 + .../auth/ASEAuthenticationEntryPoint.java | 29 + .../auth/ASEAuthenticationFailureHandler.java | 43 + .../auth/ASEAuthenticationSuccessHandler.java | 60 + .../ASEInvocationSecurityMetadataSource.java | 65 + .../ASEJSONTokenAuthenticationFilter.java | 114 + .../component/auth/ASEPasswordEncoder.java | 18 + .../ASESecurityAuthenticationProvider.java | 77 + .../auth/ASESecurityInterceptor.java | 62 + .../component/auth/ASEUsernameEncoder.java | 15 + ...EUsernamePasswordAuthenticationFilter.java | 85 + .../component/auth/AuthTokenGenerator.java | 19 + .../auth/JSONRandomCodeGenerator.java | 19 + .../component/auth/JSONSignedGenerator.java | 16 + .../auth/JSONTokenAuthenticationToken.java | 62 + ...enUsernamePasswordAuthenticationToken.java | 38 + .../ase/component/auth/SHA1Encoder.java | 17 + .../auth/TimestampExpiredChecker.java | 24 + .../datamanager/DataExcelGenerator.java | 84 + .../datamanager/DataExcelReader.java | 123 + .../component/datamanager/DataGenerator.java | 17 + .../datamanager/DataGetObjectFromRequest.java | 8 + .../DataModelRepositorySearcher.java | 57 + .../datamanager/DataModelSearcher.java | 70 + .../ase/component/datamanager/DataReader.java | 27 + .../ase/component/datamanager/DataTable.java | 89 + .../component/datamanager/DataTableRow.java | 21 + .../component/datamanager/JSONParameter.java | 89 + .../ase/component/datamanager/StringFile.java | 12 + .../datamanager/StringFileGenerator.java | 92 + .../ase/component/error/ErrorResponse.java | 24 + .../ase/component/json/JSONBaseObject.java | 12 + .../ase/component/json/form/RegisterForm.java | 5 + .../ase/component/json/model/JsonableFPC.java | 38 + .../ase/component/json/model/JsonableFSR.java | 62 + .../json/model/JsonableFunction.java | 60 + .../component/json/model/JsonablePCCList.java | 22 + .../json/model/JsonableRoleList.java | 26 + .../ase/component/json/model/JsonableSPC.java | 39 + .../ase/component/json/model/JsonableTag.java | 48 + .../json/model/JsonableUidGetter.java | 6 + .../component/json/model/JsonableUser.java | 33 + .../json/request/JSONBaseRequestObject.java | 13 + .../component/json/request/UserLeaveAuth.java | 16 + .../json/request/UserLeaveRequest.java | 15 + .../json/request/UserLoginChecker.java | 13 + .../json/request/UserRegisterChecker.java | 19 + .../UserSGettudentLeaveListRequest.java | 8 + .../json/respond/EmptyDataObjectRespond.java | 5 + .../json/respond/ErrorInfoJSONRespond.java | 12 + .../json/respond/JSONBaseRespondObject.java | 61 + .../respond/JSONStandardFailedRespond.java | 8 + .../json/respond/PermissionJSONRespond.java | 16 + .../respond/UserLoginCheckerJSONRespond.java | 17 + .../respond/UserLoginTokenJSONRespond.java | 6 + .../permission/UserAuthoritiesGenerator.java | 19 + .../permission/UserFPCListGenerator.java | 41 + .../permission/UserFSRGenerator.java | 45 + .../UserFunctionsListGenerator.java | 45 + .../permission/UserPCCListGenerator.java | 39 + .../permission/UserTagsListGenerator.java | 54 + .../permission/UsersListGenerator.java | 22 + .../ase/configure/ASESwaggerConfigure.java | 57 + .../ase/configure/ActivityFormConfigure.java | 37 + .../ase/configure/AppConfigure.java | 43 + .../ase/configure/ComponentsConfigure.java | 11 + .../configure/CustomWebSecurityConfig.java | 138 + .../ase/configure/GlobalConfigure.java | 15 + .../ase/controller/APIController.java | 14 + .../ase/controller/ASEController.java | 26 + .../ase/controller/ASEControllerAdvice.java | 77 + .../ase/controller/ASEErrorController.java | 84 + .../ase/controller/DataManagerController.java | 42 + .../ase/controller/HomeController.java | 37 + .../ase/controller/LeavesController.java | 115 + .../ase/controller/LoginController.java | 106 + .../ase/controller/RegisterController.java | 97 + .../ActivityAttendanceController.java | 16 + .../activity/ActivityCreatorController.java | 155 + .../activity/ActivityViewerController.java | 94 + .../controller/activity/QRCodeController.java | 36 + .../controller/permission/FPCController.java | 169 + .../permission/FunctionController.java | 78 + .../controller/permission/SPCController.java | 92 + .../controller/permission/TagController.java | 222 + .../controller/permission/UserController.java | 68 + ...DataReaderRowIndexOutOfRangeException.java | 9 + .../exception/JSONTokenExpiredException.java | 9 + .../JSONTokenIncorrectSignedException.java | 10 + .../LackOfActivityInformationException.java | 18 + .../exception/StringFileConvertException.java | 12 + .../badrequest/AlreadyExistException.java | 14 + .../BaseInformationAlreadyExistException.java | 17 + .../BaseInformationIllegalException.java | 17 + .../badrequest/IllegalException.java | 10 + .../UserInformationIllegalException.java | 17 + .../UsernameAlreadyExistException.java | 16 + .../RelatedObjectsExistException.java | 13 + .../innerservererror/DataIOException.java | 9 + .../DataIllegalTableFormatException.java | 9 + .../DataInvalidFormatException.java | 19 + .../innerservererror/FormatException.java | 10 + .../HandlingErrorsException.java | 13 + .../InvalidFormFormatException.java | 21 + .../innerservererror/RuntimeIOException.java | 10 + .../BaseInformationNotFoundException.java | 17 + .../notfound/DataFileNotFoundException.java | 15 + .../exception/notfound/NotFoundException.java | 12 + .../notfound/TagNotFoundException.java | 11 + .../notfound/UserNotFoundException.java | 20 + .../ase/model/achievement/AccumulatedGPA.java | 42 + .../ase/model/achievement/Award.java | 34 + .../achievement/ComprehensiveEvaluation.java | 44 + .../ase/model/achievement/ExamResult.java | 43 + .../model/achievement/StudentScoreReport.java | 33 + .../ase/model/activity/Activity.java | 198 + .../ase/model/activity/Attendance.java | 29 + .../codesdream/ase/model/activity/Period.java | 45 + .../codesdream/ase/model/activity/Report.java | 174 + .../ase/model/activity/UserActivity.java | 55 + .../codesdream/ase/model/auth/JSONToken.java | 31 + .../ase/model/auth/PreValidationCode.java | 20 + .../BaseAdministrativeDivision.java | 20 + .../information/BaseCandidateCategory.java | 19 + .../ase/model/information/BaseCollege.java | 21 + .../ase/model/information/BaseEthnic.java | 18 + .../ase/model/information/BaseMajor.java | 18 + .../information/BasePoliticalStatus.java | 18 + .../model/information/BaseStudentInfo.java | 42 + .../codesdream/ase/model/leaves/Leave.java | 48 + .../ase/model/permission/Function.java | 31 + .../FunctionalPermissionContainer.java | 51 + .../permission/FunctionalScopeRelation.java | 31 + .../PermissionContainersCollection.java | 37 + .../permission/ScopePermissionContainer.java | 39 + .../codesdream/ase/model/permission/Tag.java | 52 + .../codesdream/ase/model/permission/User.java | 93 + .../ase/model/permission/UserAuth.java | 27 + .../ase/model/permission/UserDetail.java | 50 + .../activity/ActivityRepository.java | 21 + .../activity/AttendanceRepository.java | 9 + .../repository/activity/PeriodRepository.java | 9 + .../repository/activity/ReportRepository.java | 14 + .../activity/UserActivityRepository.java | 17 + .../repository/auth/JSONTokenRepository.java | 12 + .../auth/PreValidationCodeRepository.java | 12 + .../BaseAdministrativeDivisionRepository.java | 13 + .../BaseCandidateCategoryRepository.java | 12 + .../information/BaseCollegeRepository.java | 13 + .../information/BaseEthnicRepository.java | 12 + .../information/BaseMajorRepository.java | 12 + .../BasePoliticalStatusRepository.java | 10 + .../BaseStudentInfoRepository.java | 14 + .../repository/leaves/LeaveRepository.java | 11 + .../permission/FunctionRepository.java | 12 + ...nctionalPermissionContainerRepository.java | 12 + ...missionContainersCollectionRepository.java | 13 + .../ScopePermissionContainerRepository.java | 10 + .../repository/permission/TagRepository.java | 14 + .../repository/permission/UserRepository.java | 14 + .../ase/service/ASEUserDetailsService.java | 38 + .../ase/service/AchievementService.java | 8 + .../ase/service/ActivityService.java | 180 + .../ase/service/AttendanceService.java | 18 + .../codesdream/ase/service/AuthService.java | 92 + .../ase/service/BaseInformationService.java | 287 + .../ase/service/IActivityService.java | 59 + .../codesdream/ase/service/IAuthService.java | 22 + .../ase/service/IBaseInformationService.java | 57 + .../ase/service/ILeavesService.java | 33 + .../ase/service/IPermissionService.java | 140 + .../ase/service/IReportService.java | 19 + .../codesdream/ase/service/IUserService.java | 61 + .../codesdream/ase/service/LeavesService.java | 60 + .../codesdream/ase/service/PeriodService.java | 22 + .../ase/service/PermissionService.java | 361 + .../codesdream/ase/service/ReportService.java | 46 + .../codesdream/ase/service/UserService.java | 179 + .../ase/validator/ActivityValidator.java | 20 + .../ase/validator/JSONFormValidator.java | 28 + .../ase/validator/NullValueValidator.java | 76 + .../ase/validator/TestNullValueValidator.java | 27 + src/main/resources/application-dev.properties | 23 + .../resources/application-test.properties | 24 + src/main/resources/application.properties | 23 + .../data_base_administrative_division.sql | 3518 +++++++ src/main/resources/data_base_college.sql | 25 + src/main/resources/data_base_ethnic.sql | 62 + src/main/resources/data_base_major.sql | 832 ++ .../resources/data_base_political_status.sql | 14 + src/main/resources/import.sql | 4456 ++++++++ .../resources/static/assets/css/atlantis.css | 8951 +++++++++++++++++ .../static/assets/css/atlantis.css.map | 7 + .../static/assets/css/atlantis.min.css | 74 + .../static/assets/css/bootstrap.min.css | 7 + .../resources/static/assets/css/custom.css | 26 + src/main/resources/static/assets/css/demo.css | 305 + .../resources/static/assets/css/fonts.css | 6479 ++++++++++++ .../resources/static/assets/css/fonts.min.css | 4 + .../static/assets/fonts/flaticon/Flaticon.eot | Bin 0 -> 60186 bytes .../static/assets/fonts/flaticon/Flaticon.svg | 2100 ++++ .../static/assets/fonts/flaticon/Flaticon.ttf | Bin 0 -> 60008 bytes .../assets/fonts/flaticon/Flaticon.woff | Bin 0 -> 34720 bytes .../assets/fonts/flaticon/_flaticon.scss | 437 + .../static/assets/fonts/flaticon/flaticon.css | 230 + .../assets/fonts/flaticon/flaticon.html | 1450 +++ .../fonts/fontawesome/fa-brands-400.eot | Bin 0 -> 116516 bytes .../fonts/fontawesome/fa-brands-400.svg | 1148 +++ .../fonts/fontawesome/fa-brands-400.ttf | Bin 0 -> 116280 bytes .../fonts/fontawesome/fa-brands-400.woff | Bin 0 -> 74928 bytes .../fonts/fontawesome/fa-brands-400.woff2 | Bin 0 -> 64144 bytes .../fonts/fontawesome/fa-regular-400.eot | Bin 0 -> 40644 bytes .../fonts/fontawesome/fa-regular-400.svg | 467 + .../fonts/fontawesome/fa-regular-400.ttf | Bin 0 -> 40416 bytes .../fonts/fontawesome/fa-regular-400.woff | Bin 0 -> 18156 bytes .../fonts/fontawesome/fa-regular-400.woff2 | Bin 0 -> 14888 bytes .../assets/fonts/fontawesome/fa-solid-900.eot | Bin 0 -> 168396 bytes .../assets/fonts/fontawesome/fa-solid-900.svg | 2312 +++++ .../assets/fonts/fontawesome/fa-solid-900.ttf | Bin 0 -> 168176 bytes .../fonts/fontawesome/fa-solid-900.woff | Bin 0 -> 80484 bytes .../fonts/fontawesome/fa-solid-900.woff2 | Bin 0 -> 62472 bytes .../simple-line-icons/Simple-Line-Icons.eot | Bin 0 -> 54266 bytes .../simple-line-icons/Simple-Line-Icons.svg | 200 + .../simple-line-icons/Simple-Line-Icons.ttf | Bin 0 -> 54056 bytes .../simple-line-icons/Simple-Line-Icons.woff | Bin 0 -> 81332 bytes .../simple-line-icons/Simple-Line-Icons.woff2 | Bin 0 -> 30064 bytes .../assets/fonts/summernote/summernote.eot | Bin 0 -> 16570 bytes .../assets/fonts/summernote/summernote.ttf | Bin 0 -> 16384 bytes .../assets/fonts/summernote/summernote.woff | Bin 0 -> 10184 bytes src/main/resources/static/assets/img/404.jpg | Bin 0 -> 57879 bytes .../resources/static/assets/img/arashmil.jpg | Bin 0 -> 5223 bytes .../resources/static/assets/img/bg-404.jpeg | Bin 0 -> 836122 bytes .../static/assets/img/bg-abstract.png | Bin 0 -> 1232718 bytes .../static/assets/img/bg-abstract2.png | Bin 0 -> 622962 bytes .../resources/static/assets/img/blogpost.jpg | Bin 0 -> 64728 bytes .../resources/static/assets/img/chadengle.jpg | Bin 0 -> 3849 bytes .../assets/img/examples/example1-300x300.jpg | Bin 0 -> 28014 bytes .../static/assets/img/examples/example1.jpeg | Bin 0 -> 55484 bytes .../assets/img/examples/example10-300x300.jpg | Bin 0 -> 30770 bytes .../static/assets/img/examples/example10.jpeg | Bin 0 -> 77907 bytes .../assets/img/examples/example11-300x300.jpg | Bin 0 -> 37774 bytes .../static/assets/img/examples/example11.jpeg | Bin 0 -> 91881 bytes .../assets/img/examples/example12-300x300.jpg | Bin 0 -> 40450 bytes .../static/assets/img/examples/example12.jpeg | Bin 0 -> 84041 bytes .../assets/img/examples/example2-300x300.jpg | Bin 0 -> 57129 bytes .../static/assets/img/examples/example2.jpeg | Bin 0 -> 141153 bytes .../assets/img/examples/example3-300x300.jpg | Bin 0 -> 47299 bytes .../static/assets/img/examples/example3.jpeg | Bin 0 -> 136345 bytes .../assets/img/examples/example4-300x300.jpg | Bin 0 -> 41519 bytes .../static/assets/img/examples/example4.jpeg | Bin 0 -> 90344 bytes .../assets/img/examples/example5-300x300.jpg | Bin 0 -> 60051 bytes .../static/assets/img/examples/example5.jpeg | Bin 0 -> 153185 bytes .../assets/img/examples/example6-300x300.jpg | Bin 0 -> 44738 bytes .../static/assets/img/examples/example6.jpeg | Bin 0 -> 126385 bytes .../assets/img/examples/example7-300x300.jpg | Bin 0 -> 35330 bytes .../static/assets/img/examples/example7.jpeg | Bin 0 -> 135194 bytes .../assets/img/examples/example8-300x300.jpg | Bin 0 -> 26516 bytes .../static/assets/img/examples/example8.jpeg | Bin 0 -> 89649 bytes .../assets/img/examples/example9-300x300.jpg | Bin 0 -> 31053 bytes .../static/assets/img/examples/example9.jpeg | Bin 0 -> 73924 bytes .../assets/img/examples/logoinvoice.svg | 1 + .../static/assets/img/examples/product1.jpg | Bin 0 -> 41140 bytes .../static/assets/img/examples/product10.jpeg | Bin 0 -> 95472 bytes .../static/assets/img/examples/product11.jpeg | Bin 0 -> 77279 bytes .../static/assets/img/examples/product12.jpeg | Bin 0 -> 110275 bytes .../static/assets/img/examples/product2.jpg | Bin 0 -> 93908 bytes .../static/assets/img/examples/product3.jpg | Bin 0 -> 84929 bytes .../static/assets/img/examples/product4.jpg | Bin 0 -> 83301 bytes .../static/assets/img/examples/product5.jpg | Bin 0 -> 43064 bytes .../static/assets/img/examples/product6.jpg | Bin 0 -> 52550 bytes .../static/assets/img/examples/product7.jpg | Bin 0 -> 78165 bytes .../static/assets/img/examples/product8.jpg | Bin 0 -> 61646 bytes .../resources/static/assets/img/flags/ad.png | Bin 0 -> 643 bytes .../resources/static/assets/img/flags/ae.png | Bin 0 -> 408 bytes .../resources/static/assets/img/flags/af.png | Bin 0 -> 604 bytes .../resources/static/assets/img/flags/ag.png | Bin 0 -> 591 bytes .../resources/static/assets/img/flags/ai.png | Bin 0 -> 643 bytes .../resources/static/assets/img/flags/al.png | Bin 0 -> 600 bytes .../resources/static/assets/img/flags/am.png | Bin 0 -> 497 bytes .../resources/static/assets/img/flags/an.png | Bin 0 -> 488 bytes .../resources/static/assets/img/flags/ao.png | Bin 0 -> 428 bytes .../resources/static/assets/img/flags/ar.png | Bin 0 -> 506 bytes .../resources/static/assets/img/flags/as.png | Bin 0 -> 647 bytes .../resources/static/assets/img/flags/at.png | Bin 0 -> 403 bytes .../resources/static/assets/img/flags/au.png | Bin 0 -> 673 bytes .../resources/static/assets/img/flags/aw.png | Bin 0 -> 524 bytes .../resources/static/assets/img/flags/ax.png | Bin 0 -> 663 bytes .../resources/static/assets/img/flags/az.png | Bin 0 -> 589 bytes .../resources/static/assets/img/flags/ba.png | Bin 0 -> 593 bytes .../resources/static/assets/img/flags/bb.png | Bin 0 -> 585 bytes .../resources/static/assets/img/flags/bd.png | Bin 0 -> 504 bytes .../resources/static/assets/img/flags/be.png | Bin 0 -> 449 bytes .../resources/static/assets/img/flags/bf.png | Bin 0 -> 497 bytes .../resources/static/assets/img/flags/bg.png | Bin 0 -> 462 bytes .../resources/static/assets/img/flags/bh.png | Bin 0 -> 457 bytes .../resources/static/assets/img/flags/bi.png | Bin 0 -> 675 bytes .../resources/static/assets/img/flags/bj.png | Bin 0 -> 486 bytes .../resources/static/assets/img/flags/bm.png | Bin 0 -> 611 bytes .../resources/static/assets/img/flags/bn.png | Bin 0 -> 639 bytes .../resources/static/assets/img/flags/bo.png | Bin 0 -> 500 bytes .../resources/static/assets/img/flags/br.png | Bin 0 -> 593 bytes .../resources/static/assets/img/flags/bs.png | Bin 0 -> 526 bytes .../resources/static/assets/img/flags/bt.png | Bin 0 -> 631 bytes .../resources/static/assets/img/flags/bv.png | Bin 0 -> 512 bytes .../resources/static/assets/img/flags/bw.png | Bin 0 -> 443 bytes .../resources/static/assets/img/flags/by.png | Bin 0 -> 514 bytes .../resources/static/assets/img/flags/bz.png | Bin 0 -> 600 bytes .../resources/static/assets/img/flags/ca.png | Bin 0 -> 628 bytes .../static/assets/img/flags/catalonia.png | Bin 0 -> 398 bytes .../resources/static/assets/img/flags/cc.png | Bin 0 -> 625 bytes .../resources/static/assets/img/flags/cd.png | Bin 0 -> 528 bytes .../resources/static/assets/img/flags/cf.png | Bin 0 -> 614 bytes .../resources/static/assets/img/flags/cg.png | Bin 0 -> 521 bytes .../resources/static/assets/img/flags/ch.png | Bin 0 -> 367 bytes .../resources/static/assets/img/flags/ci.png | Bin 0 -> 453 bytes .../resources/static/assets/img/flags/ck.png | Bin 0 -> 586 bytes .../resources/static/assets/img/flags/cl.png | Bin 0 -> 450 bytes .../resources/static/assets/img/flags/cm.png | Bin 0 -> 525 bytes .../resources/static/assets/img/flags/cn.png | Bin 0 -> 472 bytes .../resources/static/assets/img/flags/co.png | Bin 0 -> 483 bytes .../resources/static/assets/img/flags/cr.png | Bin 0 -> 477 bytes .../resources/static/assets/img/flags/cs.png | Bin 0 -> 439 bytes .../resources/static/assets/img/flags/cu.png | Bin 0 -> 563 bytes .../resources/static/assets/img/flags/cv.png | Bin 0 -> 529 bytes .../resources/static/assets/img/flags/cx.png | Bin 0 -> 608 bytes .../resources/static/assets/img/flags/cy.png | Bin 0 -> 428 bytes .../resources/static/assets/img/flags/cz.png | Bin 0 -> 476 bytes .../resources/static/assets/img/flags/de.png | Bin 0 -> 545 bytes .../resources/static/assets/img/flags/dj.png | Bin 0 -> 572 bytes .../resources/static/assets/img/flags/dk.png | Bin 0 -> 495 bytes .../resources/static/assets/img/flags/dm.png | Bin 0 -> 620 bytes .../resources/static/assets/img/flags/do.png | Bin 0 -> 508 bytes .../resources/static/assets/img/flags/dz.png | Bin 0 -> 582 bytes .../resources/static/assets/img/flags/ec.png | Bin 0 -> 500 bytes .../resources/static/assets/img/flags/ee.png | Bin 0 -> 429 bytes .../resources/static/assets/img/flags/eg.png | Bin 0 -> 465 bytes .../resources/static/assets/img/flags/eh.png | Bin 0 -> 508 bytes .../static/assets/img/flags/england.png | Bin 0 -> 496 bytes .../resources/static/assets/img/flags/er.png | Bin 0 -> 653 bytes .../resources/static/assets/img/flags/es.png | Bin 0 -> 469 bytes .../resources/static/assets/img/flags/et.png | Bin 0 -> 592 bytes .../static/assets/img/flags/europeanunion.png | Bin 0 -> 479 bytes .../resources/static/assets/img/flags/fam.png | Bin 0 -> 532 bytes .../resources/static/assets/img/flags/fi.png | Bin 0 -> 489 bytes .../resources/static/assets/img/flags/fj.png | Bin 0 -> 610 bytes .../resources/static/assets/img/flags/fk.png | Bin 0 -> 648 bytes .../resources/static/assets/img/flags/fm.png | Bin 0 -> 552 bytes .../resources/static/assets/img/flags/fo.png | Bin 0 -> 474 bytes .../resources/static/assets/img/flags/fr.png | Bin 0 -> 545 bytes .../resources/static/assets/img/flags/ga.png | Bin 0 -> 489 bytes .../resources/static/assets/img/flags/gb.png | Bin 0 -> 599 bytes .../resources/static/assets/img/flags/gd.png | Bin 0 -> 637 bytes .../resources/static/assets/img/flags/ge.png | Bin 0 -> 594 bytes .../resources/static/assets/img/flags/gf.png | Bin 0 -> 545 bytes .../resources/static/assets/img/flags/gh.png | Bin 0 -> 490 bytes .../resources/static/assets/img/flags/gi.png | Bin 0 -> 463 bytes .../resources/static/assets/img/flags/gl.png | Bin 0 -> 470 bytes .../resources/static/assets/img/flags/gm.png | Bin 0 -> 493 bytes .../resources/static/assets/img/flags/gn.png | Bin 0 -> 480 bytes .../resources/static/assets/img/flags/gp.png | Bin 0 -> 488 bytes .../resources/static/assets/img/flags/gq.png | Bin 0 -> 537 bytes .../resources/static/assets/img/flags/gr.png | Bin 0 -> 487 bytes .../resources/static/assets/img/flags/gs.png | Bin 0 -> 630 bytes .../resources/static/assets/img/flags/gt.png | Bin 0 -> 493 bytes .../resources/static/assets/img/flags/gu.png | Bin 0 -> 509 bytes .../resources/static/assets/img/flags/gw.png | Bin 0 -> 516 bytes .../resources/static/assets/img/flags/gy.png | Bin 0 -> 645 bytes .../resources/static/assets/img/flags/hk.png | Bin 0 -> 527 bytes .../resources/static/assets/img/flags/hm.png | Bin 0 -> 673 bytes .../resources/static/assets/img/flags/hn.png | Bin 0 -> 537 bytes .../resources/static/assets/img/flags/hr.png | Bin 0 -> 524 bytes .../resources/static/assets/img/flags/ht.png | Bin 0 -> 487 bytes .../resources/static/assets/img/flags/hu.png | Bin 0 -> 432 bytes .../resources/static/assets/img/flags/id.png | Bin 0 -> 430 bytes .../resources/static/assets/img/flags/ie.png | Bin 0 -> 481 bytes .../resources/static/assets/img/flags/il.png | Bin 0 -> 431 bytes .../resources/static/assets/img/flags/in.png | Bin 0 -> 503 bytes .../resources/static/assets/img/flags/io.png | Bin 0 -> 658 bytes .../resources/static/assets/img/flags/iq.png | Bin 0 -> 515 bytes .../resources/static/assets/img/flags/ir.png | Bin 0 -> 512 bytes .../resources/static/assets/img/flags/is.png | Bin 0 -> 532 bytes .../resources/static/assets/img/flags/it.png | Bin 0 -> 420 bytes .../resources/static/assets/img/flags/jm.png | Bin 0 -> 637 bytes .../resources/static/assets/img/flags/jo.png | Bin 0 -> 473 bytes .../resources/static/assets/img/flags/jp.png | Bin 0 -> 420 bytes .../resources/static/assets/img/flags/ke.png | Bin 0 -> 569 bytes .../resources/static/assets/img/flags/kg.png | Bin 0 -> 510 bytes .../resources/static/assets/img/flags/kh.png | Bin 0 -> 549 bytes .../resources/static/assets/img/flags/ki.png | Bin 0 -> 656 bytes .../resources/static/assets/img/flags/km.png | Bin 0 -> 577 bytes .../resources/static/assets/img/flags/kn.png | Bin 0 -> 604 bytes .../resources/static/assets/img/flags/kp.png | Bin 0 -> 561 bytes .../resources/static/assets/img/flags/kr.png | Bin 0 -> 592 bytes .../resources/static/assets/img/flags/kw.png | Bin 0 -> 486 bytes .../resources/static/assets/img/flags/ky.png | Bin 0 -> 643 bytes .../resources/static/assets/img/flags/kz.png | Bin 0 -> 616 bytes .../resources/static/assets/img/flags/la.png | Bin 0 -> 563 bytes .../resources/static/assets/img/flags/lb.png | Bin 0 -> 517 bytes .../resources/static/assets/img/flags/lc.png | Bin 0 -> 520 bytes .../resources/static/assets/img/flags/li.png | Bin 0 -> 537 bytes .../resources/static/assets/img/flags/lk.png | Bin 0 -> 627 bytes .../resources/static/assets/img/flags/lr.png | Bin 0 -> 466 bytes .../resources/static/assets/img/flags/ls.png | Bin 0 -> 628 bytes .../resources/static/assets/img/flags/lt.png | Bin 0 -> 508 bytes .../resources/static/assets/img/flags/lu.png | Bin 0 -> 481 bytes .../resources/static/assets/img/flags/lv.png | Bin 0 -> 465 bytes .../resources/static/assets/img/flags/ly.png | Bin 0 -> 419 bytes .../resources/static/assets/img/flags/ma.png | Bin 0 -> 432 bytes .../resources/static/assets/img/flags/mc.png | Bin 0 -> 380 bytes .../resources/static/assets/img/flags/md.png | Bin 0 -> 566 bytes .../resources/static/assets/img/flags/me.png | Bin 0 -> 448 bytes .../resources/static/assets/img/flags/mg.png | Bin 0 -> 453 bytes .../resources/static/assets/img/flags/mh.png | Bin 0 -> 628 bytes .../resources/static/assets/img/flags/mk.png | Bin 0 -> 664 bytes .../resources/static/assets/img/flags/ml.png | Bin 0 -> 474 bytes .../resources/static/assets/img/flags/mm.png | Bin 0 -> 483 bytes .../resources/static/assets/img/flags/mn.png | Bin 0 -> 492 bytes .../resources/static/assets/img/flags/mo.png | Bin 0 -> 588 bytes .../resources/static/assets/img/flags/mp.png | Bin 0 -> 597 bytes .../resources/static/assets/img/flags/mq.png | Bin 0 -> 655 bytes .../resources/static/assets/img/flags/mr.png | Bin 0 -> 569 bytes .../resources/static/assets/img/flags/ms.png | Bin 0 -> 614 bytes .../resources/static/assets/img/flags/mt.png | Bin 0 -> 420 bytes .../resources/static/assets/img/flags/mu.png | Bin 0 -> 496 bytes .../resources/static/assets/img/flags/mv.png | Bin 0 -> 542 bytes .../resources/static/assets/img/flags/mw.png | Bin 0 -> 529 bytes .../resources/static/assets/img/flags/mx.png | Bin 0 -> 574 bytes .../resources/static/assets/img/flags/my.png | Bin 0 -> 571 bytes .../resources/static/assets/img/flags/mz.png | Bin 0 -> 584 bytes .../resources/static/assets/img/flags/na.png | Bin 0 -> 647 bytes .../resources/static/assets/img/flags/nc.png | Bin 0 -> 591 bytes .../resources/static/assets/img/flags/ne.png | Bin 0 -> 537 bytes .../resources/static/assets/img/flags/nf.png | Bin 0 -> 602 bytes .../resources/static/assets/img/flags/ng.png | Bin 0 -> 482 bytes .../resources/static/assets/img/flags/ni.png | Bin 0 -> 508 bytes .../resources/static/assets/img/flags/nl.png | Bin 0 -> 453 bytes .../resources/static/assets/img/flags/no.png | Bin 0 -> 512 bytes .../resources/static/assets/img/flags/np.png | Bin 0 -> 443 bytes .../resources/static/assets/img/flags/nr.png | Bin 0 -> 527 bytes .../resources/static/assets/img/flags/nu.png | Bin 0 -> 572 bytes .../resources/static/assets/img/flags/nz.png | Bin 0 -> 639 bytes .../resources/static/assets/img/flags/om.png | Bin 0 -> 478 bytes .../resources/static/assets/img/flags/pa.png | Bin 0 -> 519 bytes .../resources/static/assets/img/flags/pe.png | Bin 0 -> 397 bytes .../resources/static/assets/img/flags/pf.png | Bin 0 -> 498 bytes .../resources/static/assets/img/flags/pg.png | Bin 0 -> 593 bytes .../resources/static/assets/img/flags/ph.png | Bin 0 -> 538 bytes .../resources/static/assets/img/flags/pk.png | Bin 0 -> 569 bytes .../resources/static/assets/img/flags/pl.png | Bin 0 -> 374 bytes .../resources/static/assets/img/flags/pm.png | Bin 0 -> 689 bytes .../resources/static/assets/img/flags/pn.png | Bin 0 -> 657 bytes .../resources/static/assets/img/flags/pr.png | Bin 0 -> 556 bytes .../resources/static/assets/img/flags/ps.png | Bin 0 -> 472 bytes .../resources/static/assets/img/flags/pt.png | Bin 0 -> 554 bytes .../resources/static/assets/img/flags/pw.png | Bin 0 -> 550 bytes .../resources/static/assets/img/flags/py.png | Bin 0 -> 473 bytes .../resources/static/assets/img/flags/qa.png | Bin 0 -> 450 bytes .../resources/static/assets/img/flags/re.png | Bin 0 -> 545 bytes .../static/assets/img/flags/readme.txt | 9 + .../resources/static/assets/img/flags/ro.png | Bin 0 -> 495 bytes .../resources/static/assets/img/flags/rs.png | Bin 0 -> 423 bytes .../resources/static/assets/img/flags/ru.png | Bin 0 -> 420 bytes .../resources/static/assets/img/flags/rw.png | Bin 0 -> 533 bytes .../resources/static/assets/img/flags/sa.png | Bin 0 -> 551 bytes .../resources/static/assets/img/flags/sb.png | Bin 0 -> 624 bytes .../resources/static/assets/img/flags/sc.png | Bin 0 -> 608 bytes .../static/assets/img/flags/scotland.png | Bin 0 -> 649 bytes .../resources/static/assets/img/flags/sd.png | Bin 0 -> 492 bytes .../resources/static/assets/img/flags/se.png | Bin 0 -> 542 bytes .../resources/static/assets/img/flags/sg.png | Bin 0 -> 468 bytes .../resources/static/assets/img/flags/sh.png | Bin 0 -> 645 bytes .../resources/static/assets/img/flags/si.png | Bin 0 -> 510 bytes .../resources/static/assets/img/flags/sj.png | Bin 0 -> 512 bytes .../resources/static/assets/img/flags/sk.png | Bin 0 -> 562 bytes .../resources/static/assets/img/flags/sl.png | Bin 0 -> 436 bytes .../resources/static/assets/img/flags/sm.png | Bin 0 -> 502 bytes .../resources/static/assets/img/flags/sn.png | Bin 0 -> 532 bytes .../resources/static/assets/img/flags/so.png | Bin 0 -> 527 bytes .../resources/static/assets/img/flags/sr.png | Bin 0 -> 513 bytes .../resources/static/assets/img/flags/st.png | Bin 0 -> 584 bytes .../resources/static/assets/img/flags/sv.png | Bin 0 -> 501 bytes .../resources/static/assets/img/flags/sy.png | Bin 0 -> 422 bytes .../resources/static/assets/img/flags/sz.png | Bin 0 -> 643 bytes .../resources/static/assets/img/flags/tc.png | Bin 0 -> 624 bytes .../resources/static/assets/img/flags/td.png | Bin 0 -> 570 bytes .../resources/static/assets/img/flags/tf.png | Bin 0 -> 527 bytes .../resources/static/assets/img/flags/tg.png | Bin 0 -> 562 bytes .../resources/static/assets/img/flags/th.png | Bin 0 -> 452 bytes .../resources/static/assets/img/flags/tj.png | Bin 0 -> 496 bytes .../resources/static/assets/img/flags/tk.png | Bin 0 -> 638 bytes .../resources/static/assets/img/flags/tl.png | Bin 0 -> 514 bytes .../resources/static/assets/img/flags/tm.png | Bin 0 -> 593 bytes .../resources/static/assets/img/flags/tn.png | Bin 0 -> 495 bytes .../resources/static/assets/img/flags/to.png | Bin 0 -> 426 bytes .../resources/static/assets/img/flags/tr.png | Bin 0 -> 492 bytes .../resources/static/assets/img/flags/tt.png | Bin 0 -> 617 bytes .../resources/static/assets/img/flags/tv.png | Bin 0 -> 536 bytes .../resources/static/assets/img/flags/tw.png | Bin 0 -> 465 bytes .../resources/static/assets/img/flags/tz.png | Bin 0 -> 642 bytes .../resources/static/assets/img/flags/ua.png | Bin 0 -> 446 bytes .../resources/static/assets/img/flags/ug.png | Bin 0 -> 531 bytes .../resources/static/assets/img/flags/um.png | Bin 0 -> 571 bytes .../resources/static/assets/img/flags/us.png | Bin 0 -> 609 bytes .../resources/static/assets/img/flags/uy.png | Bin 0 -> 532 bytes .../resources/static/assets/img/flags/uz.png | Bin 0 -> 515 bytes .../resources/static/assets/img/flags/va.png | Bin 0 -> 553 bytes .../resources/static/assets/img/flags/vc.png | Bin 0 -> 577 bytes .../resources/static/assets/img/flags/ve.png | Bin 0 -> 528 bytes .../resources/static/assets/img/flags/vg.png | Bin 0 -> 630 bytes .../resources/static/assets/img/flags/vi.png | Bin 0 -> 616 bytes .../resources/static/assets/img/flags/vn.png | Bin 0 -> 474 bytes .../resources/static/assets/img/flags/vu.png | Bin 0 -> 604 bytes .../static/assets/img/flags/wales.png | Bin 0 -> 652 bytes .../resources/static/assets/img/flags/wf.png | Bin 0 -> 554 bytes .../resources/static/assets/img/flags/ws.png | Bin 0 -> 476 bytes .../resources/static/assets/img/flags/ye.png | Bin 0 -> 413 bytes .../resources/static/assets/img/flags/yt.png | Bin 0 -> 593 bytes .../resources/static/assets/img/flags/za.png | Bin 0 -> 642 bytes .../resources/static/assets/img/flags/zm.png | Bin 0 -> 500 bytes .../resources/static/assets/img/flags/zw.png | Bin 0 -> 574 bytes src/main/resources/static/assets/img/icon.ico | Bin 0 -> 4286 bytes src/main/resources/static/assets/img/icon.png | Bin 0 -> 673 bytes src/main/resources/static/assets/img/icon.svg | 1 + .../static/assets/img/img-shadow.gvdesign | Bin 0 -> 1675 bytes .../static/assets/img/img-shadow.png | Bin 0 -> 26085 bytes .../resources/static/assets/img/jm_denis.jpg | Bin 0 -> 3072 bytes src/main/resources/static/assets/img/logo.svg | 1 + .../resources/static/assets/img/logo2.svg | 1 + .../static/assets/img/logoalternatif.svg | 1 + .../static/assets/img/logoproduct.svg | 1 + .../static/assets/img/logoproduct2.svg | 1 + .../static/assets/img/logoproduct3.svg | 1 + .../resources/static/assets/img/mlane.jpg | Bin 0 -> 15450 bytes .../assets/img/productimg/product1.jpeg | Bin 0 -> 7730 bytes .../assets/img/productimg/product2.jpeg | Bin 0 -> 14555 bytes .../assets/img/productimg/product3.jpeg | Bin 0 -> 8851 bytes .../assets/img/productimg/product4.jpeg | Bin 0 -> 10747 bytes .../assets/img/productimg/product5.jpeg | Bin 0 -> 14627 bytes .../assets/img/productimg/product6.jpeg | Bin 0 -> 9740 bytes .../assets/img/productimg/product7.jpeg | Bin 0 -> 17044 bytes .../assets/img/productimg/product8.jpeg | Bin 0 -> 6857 bytes .../assets/img/productimg/product9.jpeg | Bin 0 -> 14775 bytes .../resources/static/assets/img/profile.jpg | Bin 0 -> 19934 bytes .../resources/static/assets/img/profile2.jpg | Bin 0 -> 11365 bytes .../resources/static/assets/img/sauro.jpg | Bin 0 -> 3341 bytes .../resources/static/assets/img/talha.jpg | Bin 0 -> 2865 bytes src/main/resources/static/assets/img/visa.svg | 1 + .../assets/js/ase/ase-jquery-framework.js | 210 + .../static/assets/js/ase/ase-login.js | 48 + .../resources/static/assets/js/atlantis.js | 389 + .../static/assets/js/atlantis.min.js | 1 + .../resources/static/assets/js/atlantis2.js | 449 + .../static/assets/js/core/bootstrap.min.js | 7 + .../static/assets/js/core/jquery.3.2.1.min.js | 4 + .../static/assets/js/core/popper.min.js | 5 + src/main/resources/static/assets/js/demo.js | 288 + .../bootstrap-notify/bootstrap-notify.min.js | 1 + .../js/plugin/chart-circle/circles.min.js | 2 + .../assets/js/plugin/chart.js/chart.min.js | 20 + .../js/plugin/datatables/datatables.min.js | 24 + .../jquery-scrollbar/jquery.scrollbar.min.js | 16 + .../jquery-ui-1.12.1.custom/jquery-ui.min.js | 8 + .../jquery.ui.touch-punch.min.js | 11 + .../jquery.sparkline/jquery.sparkline.min.js | 5 + .../js/plugin/jqvmap/jquery.vmap.min.js | 10 + .../maps/continents/jquery.vmap.africa.js | 2 + .../maps/continents/jquery.vmap.asia.js | 2 + .../maps/continents/jquery.vmap.australia.js | 2 + .../maps/continents/jquery.vmap.europe.js | 2 + .../continents/jquery.vmap.north-america.js | 2 + .../continents/jquery.vmap.south-america.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.algeria.js | 2 + .../jqvmap/maps/jquery.vmap.argentina.js | 1 + .../plugin/jqvmap/maps/jquery.vmap.brazil.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.canada.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.croatia.js | 1 + .../plugin/jqvmap/maps/jquery.vmap.europe.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.france.js | 1 + .../plugin/jqvmap/maps/jquery.vmap.germany.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.greece.js | 1 + .../jqvmap/maps/jquery.vmap.indonesia.js | 5 + .../js/plugin/jqvmap/maps/jquery.vmap.iran.js | 6 + .../js/plugin/jqvmap/maps/jquery.vmap.iraq.js | 1 + .../maps/jquery.vmap.new_regions_france.js | 32 + .../plugin/jqvmap/maps/jquery.vmap.russia.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.serbia.js | 6 + .../plugin/jqvmap/maps/jquery.vmap.tunisia.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.turkey.js | 11 + .../plugin/jqvmap/maps/jquery.vmap.ukraine.js | 2 + .../jqvmap/maps/jquery.vmap.usa.counties.js | 2 + .../jqvmap/maps/jquery.vmap.usa.districts.js | 2 + .../js/plugin/jqvmap/maps/jquery.vmap.usa.js | 2 + .../plugin/jqvmap/maps/jquery.vmap.world.js | 2 + .../js/plugin/sweetalert/sweetalert.min.js | 1 + .../assets/js/plugin/webfont/webfont.min.js | 17 + .../static/assets/js/setting-demo.js | 94 + .../static/assets/js/setting-demo2.js | 94 + .../static/assets/sass/atlantis.scss | 90 + .../assets/sass/atlantis/_background.scss | 225 + .../assets/sass/atlantis/_components.scss | 28 + .../assets/sass/atlantis/_flaticon.scss | 434 + .../assets/sass/atlantis/_font-awesome.scss | 4865 +++++++++ .../assets/sass/atlantis/_layouts-colors.scss | 439 + .../static/assets/sass/atlantis/_layouts.scss | 1415 +++ .../static/assets/sass/atlantis/_opacity.scss | 29 + .../assets/sass/atlantis/_outlinefocus.scss | 5 + .../static/assets/sass/atlantis/_plugins.scss | 5 + .../sass/atlantis/_responsive-horizontal.scss | 497 + .../assets/sass/atlantis/_responsive.scss | 439 + .../assets/sass/atlantis/_typography.scss | 184 + .../assets/sass/atlantis/_variables.scss | 28 + .../atlantis/components/_activityfeed.scss | 71 + .../sass/atlantis/components/_alerts.scss | 86 + .../sass/atlantis/components/_avatars.scss | 191 + .../sass/atlantis/components/_badges.scss | 46 + .../atlantis/components/_breadcrumbs.scss | 31 + .../sass/atlantis/components/_buttons.scss | 307 + .../sass/atlantis/components/_cards.scss | 1078 ++ .../sass/atlantis/components/_charts.scss | 50 + .../atlantis/components/_colorinputs.scss | 42 + .../sass/atlantis/components/_dropdowns.scss | 334 + .../sass/atlantis/components/_gutters.scss | 69 + .../sass/atlantis/components/_imagecheck.scss | 95 + .../sass/atlantis/components/_inputs.scss | 727 ++ .../sass/atlantis/components/_listgroup.scss | 60 + .../sass/atlantis/components/_loader.scss | 146 + .../sass/atlantis/components/_maps.scss | 63 + .../sass/atlantis/components/_modals.scss | 11 + .../sass/atlantis/components/_navbars.scss | 208 + .../sass/atlantis/components/_navsearch.scss | 32 + .../sass/atlantis/components/_navtabs.scss | 165 + .../atlantis/components/_paginations.scss | 42 + .../sass/atlantis/components/_popovers.scss | 46 + .../sass/atlantis/components/_progress.scss | 14 + .../atlantis/components/_selectgroup.scss | 120 + .../sass/atlantis/components/_sliders.scss | 29 + .../sass/atlantis/components/_stamps.scss | 18 + .../sass/atlantis/components/_tables.scss | 177 + .../sass/atlantis/components/_timeline.scss | 170 + .../sass/atlantis/plugins/_animate.scss | 3549 +++++++ .../sass/atlantis/plugins/_datatables.scss | 226 + .../atlantis/plugins/_jqueryscrollbar.scss | 801 ++ .../sass/atlantis/plugins/_jqueryui.scss | 270 + .../sass/atlantis/plugins/_sweetalert.scss | 6 + src/main/resources/templates/error.html | 103 + src/main/resources/templates/forget.html | 56 + src/main/resources/templates/home.html | 383 + src/main/resources/templates/huodong1.html | 265 + src/main/resources/templates/huodong2.html | 626 ++ src/main/resources/templates/huodong3.html | 0 src/main/resources/templates/huodong4.html | 387 + src/main/resources/templates/index.html | 537 + src/main/resources/templates/information.html | 220 + src/main/resources/templates/layout.html | 737 ++ src/main/resources/templates/login.html | 64 + src/main/resources/templates/main.html | 394 + src/main/resources/templates/not_found.html | 31 + src/main/resources/templates/query.html | 11 + src/main/resources/templates/register.html | 51 + src/main/webapp/WEB-INF/web.xml | 6 + .../ase/test/AchievementServiceTest.java | 31 + .../ase/test/ActivityServiceTest.java | 56 + .../ase/test/AseApplicationTests.java | 13 + .../codesdream/ase/test/AuthServiceTest.java | 28 + .../ase/test/BaseInformationTest.java | 41 + .../codesdream/ase/test/DataManagerTest.java | 203 + .../ase/test/JSONFormValidatorTest.java | 58 + .../ase/test/PermissionServiceTest.java | 63 + .../com/codesdream/ase/test/UserTest.java | 86 + 686 files changed, 67023 insertions(+) create mode 100644 .gitignore create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java create mode 100644 .mvn/wrapper/maven-wrapper.jar create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 mvnw create mode 100644 mvnw.cmd create mode 100644 pom.xml create mode 100644 src/main/java/com/codesdream/ase/AseApplication.java create mode 100644 src/main/java/com/codesdream/ase/component/ASESpringUtil.java create mode 100644 src/main/java/com/codesdream/ase/component/activity/ActivityConverter.java create mode 100644 src/main/java/com/codesdream/ase/component/activity/CurrentUserGetter.java create mode 100644 src/main/java/com/codesdream/ase/component/activity/FileUtils.java create mode 100644 src/main/java/com/codesdream/ase/component/activity/NullValueAttributes.java create mode 100644 src/main/java/com/codesdream/ase/component/activity/QrCodeUtils.java create mode 100644 src/main/java/com/codesdream/ase/component/api/QuickJSONRespond.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/AJAXRequestChecker.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEAccessDecisionManager.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEAccessDeniedHandler.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationEntryPoint.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationFailureHandler.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationSuccessHandler.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEInvocationSecurityMetadataSource.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEJSONTokenAuthenticationFilter.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEPasswordEncoder.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASESecurityAuthenticationProvider.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASESecurityInterceptor.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEUsernameEncoder.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/ASEUsernamePasswordAuthenticationFilter.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/AuthTokenGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/JSONRandomCodeGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/JSONSignedGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/JSONTokenAuthenticationToken.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/JSONTokenUsernamePasswordAuthenticationToken.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/SHA1Encoder.java create mode 100644 src/main/java/com/codesdream/ase/component/auth/TimestampExpiredChecker.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataExcelGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataExcelReader.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataGetObjectFromRequest.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataModelRepositorySearcher.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataModelSearcher.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataReader.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataTable.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/DataTableRow.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/JSONParameter.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/StringFile.java create mode 100644 src/main/java/com/codesdream/ase/component/datamanager/StringFileGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/error/ErrorResponse.java create mode 100644 src/main/java/com/codesdream/ase/component/json/JSONBaseObject.java create mode 100644 src/main/java/com/codesdream/ase/component/json/form/RegisterForm.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableFPC.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableFSR.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableFunction.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonablePCCList.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableRoleList.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableSPC.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableTag.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableUidGetter.java create mode 100644 src/main/java/com/codesdream/ase/component/json/model/JsonableUser.java create mode 100644 src/main/java/com/codesdream/ase/component/json/request/JSONBaseRequestObject.java create mode 100644 src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java create mode 100644 src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java create mode 100644 src/main/java/com/codesdream/ase/component/json/request/UserLoginChecker.java create mode 100644 src/main/java/com/codesdream/ase/component/json/request/UserRegisterChecker.java create mode 100644 src/main/java/com/codesdream/ase/component/json/request/UserSGettudentLeaveListRequest.java create mode 100644 src/main/java/com/codesdream/ase/component/json/respond/EmptyDataObjectRespond.java create mode 100644 src/main/java/com/codesdream/ase/component/json/respond/ErrorInfoJSONRespond.java create mode 100644 src/main/java/com/codesdream/ase/component/json/respond/JSONBaseRespondObject.java create mode 100644 src/main/java/com/codesdream/ase/component/json/respond/JSONStandardFailedRespond.java create mode 100644 src/main/java/com/codesdream/ase/component/json/respond/PermissionJSONRespond.java create mode 100644 src/main/java/com/codesdream/ase/component/json/respond/UserLoginCheckerJSONRespond.java create mode 100644 src/main/java/com/codesdream/ase/component/json/respond/UserLoginTokenJSONRespond.java create mode 100644 src/main/java/com/codesdream/ase/component/permission/UserAuthoritiesGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/permission/UserFPCListGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/permission/UserFSRGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/permission/UserFunctionsListGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/permission/UserPCCListGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/permission/UserTagsListGenerator.java create mode 100644 src/main/java/com/codesdream/ase/component/permission/UsersListGenerator.java create mode 100644 src/main/java/com/codesdream/ase/configure/ASESwaggerConfigure.java create mode 100644 src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java create mode 100644 src/main/java/com/codesdream/ase/configure/AppConfigure.java create mode 100644 src/main/java/com/codesdream/ase/configure/ComponentsConfigure.java create mode 100644 src/main/java/com/codesdream/ase/configure/CustomWebSecurityConfig.java create mode 100644 src/main/java/com/codesdream/ase/configure/GlobalConfigure.java create mode 100644 src/main/java/com/codesdream/ase/controller/APIController.java create mode 100644 src/main/java/com/codesdream/ase/controller/ASEController.java create mode 100644 src/main/java/com/codesdream/ase/controller/ASEControllerAdvice.java create mode 100644 src/main/java/com/codesdream/ase/controller/ASEErrorController.java create mode 100644 src/main/java/com/codesdream/ase/controller/DataManagerController.java create mode 100644 src/main/java/com/codesdream/ase/controller/HomeController.java create mode 100644 src/main/java/com/codesdream/ase/controller/LeavesController.java create mode 100644 src/main/java/com/codesdream/ase/controller/LoginController.java create mode 100644 src/main/java/com/codesdream/ase/controller/RegisterController.java create mode 100644 src/main/java/com/codesdream/ase/controller/activity/ActivityAttendanceController.java create mode 100644 src/main/java/com/codesdream/ase/controller/activity/ActivityCreatorController.java create mode 100644 src/main/java/com/codesdream/ase/controller/activity/ActivityViewerController.java create mode 100644 src/main/java/com/codesdream/ase/controller/activity/QRCodeController.java create mode 100644 src/main/java/com/codesdream/ase/controller/permission/FPCController.java create mode 100644 src/main/java/com/codesdream/ase/controller/permission/FunctionController.java create mode 100644 src/main/java/com/codesdream/ase/controller/permission/SPCController.java create mode 100644 src/main/java/com/codesdream/ase/controller/permission/TagController.java create mode 100644 src/main/java/com/codesdream/ase/controller/permission/UserController.java create mode 100644 src/main/java/com/codesdream/ase/exception/DataReaderRowIndexOutOfRangeException.java create mode 100644 src/main/java/com/codesdream/ase/exception/JSONTokenExpiredException.java create mode 100644 src/main/java/com/codesdream/ase/exception/JSONTokenIncorrectSignedException.java create mode 100644 src/main/java/com/codesdream/ase/exception/LackOfActivityInformationException.java create mode 100644 src/main/java/com/codesdream/ase/exception/StringFileConvertException.java create mode 100644 src/main/java/com/codesdream/ase/exception/badrequest/AlreadyExistException.java create mode 100644 src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationAlreadyExistException.java create mode 100644 src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationIllegalException.java create mode 100644 src/main/java/com/codesdream/ase/exception/badrequest/IllegalException.java create mode 100644 src/main/java/com/codesdream/ase/exception/badrequest/UserInformationIllegalException.java create mode 100644 src/main/java/com/codesdream/ase/exception/badrequest/UsernameAlreadyExistException.java create mode 100644 src/main/java/com/codesdream/ase/exception/conflict/RelatedObjectsExistException.java create mode 100644 src/main/java/com/codesdream/ase/exception/innerservererror/DataIOException.java create mode 100644 src/main/java/com/codesdream/ase/exception/innerservererror/DataIllegalTableFormatException.java create mode 100644 src/main/java/com/codesdream/ase/exception/innerservererror/DataInvalidFormatException.java create mode 100644 src/main/java/com/codesdream/ase/exception/innerservererror/FormatException.java create mode 100644 src/main/java/com/codesdream/ase/exception/innerservererror/HandlingErrorsException.java create mode 100644 src/main/java/com/codesdream/ase/exception/innerservererror/InvalidFormFormatException.java create mode 100644 src/main/java/com/codesdream/ase/exception/innerservererror/RuntimeIOException.java create mode 100644 src/main/java/com/codesdream/ase/exception/notfound/BaseInformationNotFoundException.java create mode 100644 src/main/java/com/codesdream/ase/exception/notfound/DataFileNotFoundException.java create mode 100644 src/main/java/com/codesdream/ase/exception/notfound/NotFoundException.java create mode 100644 src/main/java/com/codesdream/ase/exception/notfound/TagNotFoundException.java create mode 100644 src/main/java/com/codesdream/ase/exception/notfound/UserNotFoundException.java create mode 100644 src/main/java/com/codesdream/ase/model/achievement/AccumulatedGPA.java create mode 100644 src/main/java/com/codesdream/ase/model/achievement/Award.java create mode 100644 src/main/java/com/codesdream/ase/model/achievement/ComprehensiveEvaluation.java create mode 100644 src/main/java/com/codesdream/ase/model/achievement/ExamResult.java create mode 100644 src/main/java/com/codesdream/ase/model/achievement/StudentScoreReport.java create mode 100644 src/main/java/com/codesdream/ase/model/activity/Activity.java create mode 100644 src/main/java/com/codesdream/ase/model/activity/Attendance.java create mode 100644 src/main/java/com/codesdream/ase/model/activity/Period.java create mode 100644 src/main/java/com/codesdream/ase/model/activity/Report.java create mode 100644 src/main/java/com/codesdream/ase/model/activity/UserActivity.java create mode 100644 src/main/java/com/codesdream/ase/model/auth/JSONToken.java create mode 100644 src/main/java/com/codesdream/ase/model/auth/PreValidationCode.java create mode 100644 src/main/java/com/codesdream/ase/model/information/BaseAdministrativeDivision.java create mode 100644 src/main/java/com/codesdream/ase/model/information/BaseCandidateCategory.java create mode 100644 src/main/java/com/codesdream/ase/model/information/BaseCollege.java create mode 100644 src/main/java/com/codesdream/ase/model/information/BaseEthnic.java create mode 100644 src/main/java/com/codesdream/ase/model/information/BaseMajor.java create mode 100644 src/main/java/com/codesdream/ase/model/information/BasePoliticalStatus.java create mode 100644 src/main/java/com/codesdream/ase/model/information/BaseStudentInfo.java create mode 100644 src/main/java/com/codesdream/ase/model/leaves/Leave.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/Function.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/FunctionalPermissionContainer.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/FunctionalScopeRelation.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/PermissionContainersCollection.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/ScopePermissionContainer.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/Tag.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/User.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/UserAuth.java create mode 100644 src/main/java/com/codesdream/ase/model/permission/UserDetail.java create mode 100644 src/main/java/com/codesdream/ase/repository/activity/ActivityRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/activity/AttendanceRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/activity/PeriodRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/activity/ReportRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/activity/UserActivityRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/auth/JSONTokenRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/auth/PreValidationCodeRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/information/BaseAdministrativeDivisionRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/information/BaseCandidateCategoryRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/information/BaseCollegeRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/information/BaseEthnicRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/information/BaseMajorRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/information/BasePoliticalStatusRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/information/BaseStudentInfoRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/leaves/LeaveRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/permission/FunctionRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/permission/FunctionalPermissionContainerRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/permission/PermissionContainersCollectionRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/permission/ScopePermissionContainerRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/permission/TagRepository.java create mode 100644 src/main/java/com/codesdream/ase/repository/permission/UserRepository.java create mode 100644 src/main/java/com/codesdream/ase/service/ASEUserDetailsService.java create mode 100644 src/main/java/com/codesdream/ase/service/AchievementService.java create mode 100644 src/main/java/com/codesdream/ase/service/ActivityService.java create mode 100644 src/main/java/com/codesdream/ase/service/AttendanceService.java create mode 100644 src/main/java/com/codesdream/ase/service/AuthService.java create mode 100644 src/main/java/com/codesdream/ase/service/BaseInformationService.java create mode 100644 src/main/java/com/codesdream/ase/service/IActivityService.java create mode 100644 src/main/java/com/codesdream/ase/service/IAuthService.java create mode 100644 src/main/java/com/codesdream/ase/service/IBaseInformationService.java create mode 100644 src/main/java/com/codesdream/ase/service/ILeavesService.java create mode 100644 src/main/java/com/codesdream/ase/service/IPermissionService.java create mode 100644 src/main/java/com/codesdream/ase/service/IReportService.java create mode 100644 src/main/java/com/codesdream/ase/service/IUserService.java create mode 100644 src/main/java/com/codesdream/ase/service/LeavesService.java create mode 100644 src/main/java/com/codesdream/ase/service/PeriodService.java create mode 100644 src/main/java/com/codesdream/ase/service/PermissionService.java create mode 100644 src/main/java/com/codesdream/ase/service/ReportService.java create mode 100644 src/main/java/com/codesdream/ase/service/UserService.java create mode 100644 src/main/java/com/codesdream/ase/validator/ActivityValidator.java create mode 100644 src/main/java/com/codesdream/ase/validator/JSONFormValidator.java create mode 100644 src/main/java/com/codesdream/ase/validator/NullValueValidator.java create mode 100644 src/main/java/com/codesdream/ase/validator/TestNullValueValidator.java create mode 100644 src/main/resources/application-dev.properties create mode 100644 src/main/resources/application-test.properties create mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/data_base_administrative_division.sql create mode 100644 src/main/resources/data_base_college.sql create mode 100644 src/main/resources/data_base_ethnic.sql create mode 100644 src/main/resources/data_base_major.sql create mode 100644 src/main/resources/data_base_political_status.sql create mode 100644 src/main/resources/import.sql create mode 100644 src/main/resources/static/assets/css/atlantis.css create mode 100644 src/main/resources/static/assets/css/atlantis.css.map create mode 100644 src/main/resources/static/assets/css/atlantis.min.css create mode 100644 src/main/resources/static/assets/css/bootstrap.min.css create mode 100644 src/main/resources/static/assets/css/custom.css create mode 100644 src/main/resources/static/assets/css/demo.css create mode 100644 src/main/resources/static/assets/css/fonts.css create mode 100644 src/main/resources/static/assets/css/fonts.min.css create mode 100644 src/main/resources/static/assets/fonts/flaticon/Flaticon.eot create mode 100644 src/main/resources/static/assets/fonts/flaticon/Flaticon.svg create mode 100644 src/main/resources/static/assets/fonts/flaticon/Flaticon.ttf create mode 100644 src/main/resources/static/assets/fonts/flaticon/Flaticon.woff create mode 100644 src/main/resources/static/assets/fonts/flaticon/_flaticon.scss create mode 100644 src/main/resources/static/assets/fonts/flaticon/flaticon.css create mode 100644 src/main/resources/static/assets/fonts/flaticon/flaticon.html create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.eot create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.svg create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.ttf create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.woff create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.woff2 create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.eot create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.svg create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.ttf create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.woff create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.woff2 create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-solid-900.eot create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-solid-900.svg create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-solid-900.ttf create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-solid-900.woff create mode 100644 src/main/resources/static/assets/fonts/fontawesome/fa-solid-900.woff2 create mode 100644 src/main/resources/static/assets/fonts/simple-line-icons/Simple-Line-Icons.eot create mode 100644 src/main/resources/static/assets/fonts/simple-line-icons/Simple-Line-Icons.svg create mode 100644 src/main/resources/static/assets/fonts/simple-line-icons/Simple-Line-Icons.ttf create mode 100644 src/main/resources/static/assets/fonts/simple-line-icons/Simple-Line-Icons.woff create mode 100644 src/main/resources/static/assets/fonts/simple-line-icons/Simple-Line-Icons.woff2 create mode 100644 src/main/resources/static/assets/fonts/summernote/summernote.eot create mode 100644 src/main/resources/static/assets/fonts/summernote/summernote.ttf create mode 100644 src/main/resources/static/assets/fonts/summernote/summernote.woff create mode 100644 src/main/resources/static/assets/img/404.jpg create mode 100644 src/main/resources/static/assets/img/arashmil.jpg create mode 100644 src/main/resources/static/assets/img/bg-404.jpeg create mode 100644 src/main/resources/static/assets/img/bg-abstract.png create mode 100644 src/main/resources/static/assets/img/bg-abstract2.png create mode 100644 src/main/resources/static/assets/img/blogpost.jpg create mode 100644 src/main/resources/static/assets/img/chadengle.jpg create mode 100644 src/main/resources/static/assets/img/examples/example1-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example1.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example10-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example10.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example11-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example11.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example12-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example12.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example2-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example2.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example3-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example3.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example4-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example4.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example5-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example5.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example6-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example6.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example7-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example7.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example8-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example8.jpeg create mode 100644 src/main/resources/static/assets/img/examples/example9-300x300.jpg create mode 100644 src/main/resources/static/assets/img/examples/example9.jpeg create mode 100644 src/main/resources/static/assets/img/examples/logoinvoice.svg create mode 100644 src/main/resources/static/assets/img/examples/product1.jpg create mode 100644 src/main/resources/static/assets/img/examples/product10.jpeg create mode 100644 src/main/resources/static/assets/img/examples/product11.jpeg create mode 100644 src/main/resources/static/assets/img/examples/product12.jpeg create mode 100644 src/main/resources/static/assets/img/examples/product2.jpg create mode 100644 src/main/resources/static/assets/img/examples/product3.jpg create mode 100644 src/main/resources/static/assets/img/examples/product4.jpg create mode 100644 src/main/resources/static/assets/img/examples/product5.jpg create mode 100644 src/main/resources/static/assets/img/examples/product6.jpg create mode 100644 src/main/resources/static/assets/img/examples/product7.jpg create mode 100644 src/main/resources/static/assets/img/examples/product8.jpg create mode 100644 src/main/resources/static/assets/img/flags/ad.png create mode 100644 src/main/resources/static/assets/img/flags/ae.png create mode 100644 src/main/resources/static/assets/img/flags/af.png create mode 100644 src/main/resources/static/assets/img/flags/ag.png create mode 100644 src/main/resources/static/assets/img/flags/ai.png create mode 100644 src/main/resources/static/assets/img/flags/al.png create mode 100644 src/main/resources/static/assets/img/flags/am.png create mode 100644 src/main/resources/static/assets/img/flags/an.png create mode 100644 src/main/resources/static/assets/img/flags/ao.png create mode 100644 src/main/resources/static/assets/img/flags/ar.png create mode 100644 src/main/resources/static/assets/img/flags/as.png create mode 100644 src/main/resources/static/assets/img/flags/at.png create mode 100644 src/main/resources/static/assets/img/flags/au.png create mode 100644 src/main/resources/static/assets/img/flags/aw.png create mode 100644 src/main/resources/static/assets/img/flags/ax.png create mode 100644 src/main/resources/static/assets/img/flags/az.png create mode 100644 src/main/resources/static/assets/img/flags/ba.png create mode 100644 src/main/resources/static/assets/img/flags/bb.png create mode 100644 src/main/resources/static/assets/img/flags/bd.png create mode 100644 src/main/resources/static/assets/img/flags/be.png create mode 100644 src/main/resources/static/assets/img/flags/bf.png create mode 100644 src/main/resources/static/assets/img/flags/bg.png create mode 100644 src/main/resources/static/assets/img/flags/bh.png create mode 100644 src/main/resources/static/assets/img/flags/bi.png create mode 100644 src/main/resources/static/assets/img/flags/bj.png create mode 100644 src/main/resources/static/assets/img/flags/bm.png create mode 100644 src/main/resources/static/assets/img/flags/bn.png create mode 100644 src/main/resources/static/assets/img/flags/bo.png create mode 100644 src/main/resources/static/assets/img/flags/br.png create mode 100644 src/main/resources/static/assets/img/flags/bs.png create mode 100644 src/main/resources/static/assets/img/flags/bt.png create mode 100644 src/main/resources/static/assets/img/flags/bv.png create mode 100644 src/main/resources/static/assets/img/flags/bw.png create mode 100644 src/main/resources/static/assets/img/flags/by.png create mode 100644 src/main/resources/static/assets/img/flags/bz.png create mode 100644 src/main/resources/static/assets/img/flags/ca.png create mode 100644 src/main/resources/static/assets/img/flags/catalonia.png create mode 100644 src/main/resources/static/assets/img/flags/cc.png create mode 100644 src/main/resources/static/assets/img/flags/cd.png create mode 100644 src/main/resources/static/assets/img/flags/cf.png create mode 100644 src/main/resources/static/assets/img/flags/cg.png create mode 100644 src/main/resources/static/assets/img/flags/ch.png create mode 100644 src/main/resources/static/assets/img/flags/ci.png create mode 100644 src/main/resources/static/assets/img/flags/ck.png create mode 100644 src/main/resources/static/assets/img/flags/cl.png create mode 100644 src/main/resources/static/assets/img/flags/cm.png create mode 100644 src/main/resources/static/assets/img/flags/cn.png create mode 100644 src/main/resources/static/assets/img/flags/co.png create mode 100644 src/main/resources/static/assets/img/flags/cr.png create mode 100644 src/main/resources/static/assets/img/flags/cs.png create mode 100644 src/main/resources/static/assets/img/flags/cu.png create mode 100644 src/main/resources/static/assets/img/flags/cv.png create mode 100644 src/main/resources/static/assets/img/flags/cx.png create mode 100644 src/main/resources/static/assets/img/flags/cy.png create mode 100644 src/main/resources/static/assets/img/flags/cz.png create mode 100644 src/main/resources/static/assets/img/flags/de.png create mode 100644 src/main/resources/static/assets/img/flags/dj.png create mode 100644 src/main/resources/static/assets/img/flags/dk.png create mode 100644 src/main/resources/static/assets/img/flags/dm.png create mode 100644 src/main/resources/static/assets/img/flags/do.png create mode 100644 src/main/resources/static/assets/img/flags/dz.png create mode 100644 src/main/resources/static/assets/img/flags/ec.png create mode 100644 src/main/resources/static/assets/img/flags/ee.png create mode 100644 src/main/resources/static/assets/img/flags/eg.png create mode 100644 src/main/resources/static/assets/img/flags/eh.png create mode 100644 src/main/resources/static/assets/img/flags/england.png create mode 100644 src/main/resources/static/assets/img/flags/er.png create mode 100644 src/main/resources/static/assets/img/flags/es.png create mode 100644 src/main/resources/static/assets/img/flags/et.png create mode 100644 src/main/resources/static/assets/img/flags/europeanunion.png create mode 100644 src/main/resources/static/assets/img/flags/fam.png create mode 100644 src/main/resources/static/assets/img/flags/fi.png create mode 100644 src/main/resources/static/assets/img/flags/fj.png create mode 100644 src/main/resources/static/assets/img/flags/fk.png create mode 100644 src/main/resources/static/assets/img/flags/fm.png create mode 100644 src/main/resources/static/assets/img/flags/fo.png create mode 100644 src/main/resources/static/assets/img/flags/fr.png create mode 100644 src/main/resources/static/assets/img/flags/ga.png create mode 100644 src/main/resources/static/assets/img/flags/gb.png create mode 100644 src/main/resources/static/assets/img/flags/gd.png create mode 100644 src/main/resources/static/assets/img/flags/ge.png create mode 100644 src/main/resources/static/assets/img/flags/gf.png create mode 100644 src/main/resources/static/assets/img/flags/gh.png create mode 100644 src/main/resources/static/assets/img/flags/gi.png create mode 100644 src/main/resources/static/assets/img/flags/gl.png create mode 100644 src/main/resources/static/assets/img/flags/gm.png create mode 100644 src/main/resources/static/assets/img/flags/gn.png create mode 100644 src/main/resources/static/assets/img/flags/gp.png create mode 100644 src/main/resources/static/assets/img/flags/gq.png create mode 100644 src/main/resources/static/assets/img/flags/gr.png create mode 100644 src/main/resources/static/assets/img/flags/gs.png create mode 100644 src/main/resources/static/assets/img/flags/gt.png create mode 100644 src/main/resources/static/assets/img/flags/gu.png create mode 100644 src/main/resources/static/assets/img/flags/gw.png create mode 100644 src/main/resources/static/assets/img/flags/gy.png create mode 100644 src/main/resources/static/assets/img/flags/hk.png create mode 100644 src/main/resources/static/assets/img/flags/hm.png create mode 100644 src/main/resources/static/assets/img/flags/hn.png create mode 100644 src/main/resources/static/assets/img/flags/hr.png create mode 100644 src/main/resources/static/assets/img/flags/ht.png create mode 100644 src/main/resources/static/assets/img/flags/hu.png create mode 100644 src/main/resources/static/assets/img/flags/id.png create mode 100644 src/main/resources/static/assets/img/flags/ie.png create mode 100644 src/main/resources/static/assets/img/flags/il.png create mode 100644 src/main/resources/static/assets/img/flags/in.png create mode 100644 src/main/resources/static/assets/img/flags/io.png create mode 100644 src/main/resources/static/assets/img/flags/iq.png create mode 100644 src/main/resources/static/assets/img/flags/ir.png create mode 100644 src/main/resources/static/assets/img/flags/is.png create mode 100644 src/main/resources/static/assets/img/flags/it.png create mode 100644 src/main/resources/static/assets/img/flags/jm.png create mode 100644 src/main/resources/static/assets/img/flags/jo.png create mode 100644 src/main/resources/static/assets/img/flags/jp.png create mode 100644 src/main/resources/static/assets/img/flags/ke.png create mode 100644 src/main/resources/static/assets/img/flags/kg.png create mode 100644 src/main/resources/static/assets/img/flags/kh.png create mode 100644 src/main/resources/static/assets/img/flags/ki.png create mode 100644 src/main/resources/static/assets/img/flags/km.png create mode 100644 src/main/resources/static/assets/img/flags/kn.png create mode 100644 src/main/resources/static/assets/img/flags/kp.png create mode 100644 src/main/resources/static/assets/img/flags/kr.png create mode 100644 src/main/resources/static/assets/img/flags/kw.png create mode 100644 src/main/resources/static/assets/img/flags/ky.png create mode 100644 src/main/resources/static/assets/img/flags/kz.png create mode 100644 src/main/resources/static/assets/img/flags/la.png create mode 100644 src/main/resources/static/assets/img/flags/lb.png create mode 100644 src/main/resources/static/assets/img/flags/lc.png create mode 100644 src/main/resources/static/assets/img/flags/li.png create mode 100644 src/main/resources/static/assets/img/flags/lk.png create mode 100644 src/main/resources/static/assets/img/flags/lr.png create mode 100644 src/main/resources/static/assets/img/flags/ls.png create mode 100644 src/main/resources/static/assets/img/flags/lt.png create mode 100644 src/main/resources/static/assets/img/flags/lu.png create mode 100644 src/main/resources/static/assets/img/flags/lv.png create mode 100644 src/main/resources/static/assets/img/flags/ly.png create mode 100644 src/main/resources/static/assets/img/flags/ma.png create mode 100644 src/main/resources/static/assets/img/flags/mc.png create mode 100644 src/main/resources/static/assets/img/flags/md.png create mode 100644 src/main/resources/static/assets/img/flags/me.png create mode 100644 src/main/resources/static/assets/img/flags/mg.png create mode 100644 src/main/resources/static/assets/img/flags/mh.png create mode 100644 src/main/resources/static/assets/img/flags/mk.png create mode 100644 src/main/resources/static/assets/img/flags/ml.png create mode 100644 src/main/resources/static/assets/img/flags/mm.png create mode 100644 src/main/resources/static/assets/img/flags/mn.png create mode 100644 src/main/resources/static/assets/img/flags/mo.png create mode 100644 src/main/resources/static/assets/img/flags/mp.png create mode 100644 src/main/resources/static/assets/img/flags/mq.png create mode 100644 src/main/resources/static/assets/img/flags/mr.png create mode 100644 src/main/resources/static/assets/img/flags/ms.png create mode 100644 src/main/resources/static/assets/img/flags/mt.png create mode 100644 src/main/resources/static/assets/img/flags/mu.png create mode 100644 src/main/resources/static/assets/img/flags/mv.png create mode 100644 src/main/resources/static/assets/img/flags/mw.png create mode 100644 src/main/resources/static/assets/img/flags/mx.png create mode 100644 src/main/resources/static/assets/img/flags/my.png create mode 100644 src/main/resources/static/assets/img/flags/mz.png create mode 100644 src/main/resources/static/assets/img/flags/na.png create mode 100644 src/main/resources/static/assets/img/flags/nc.png create mode 100644 src/main/resources/static/assets/img/flags/ne.png create mode 100644 src/main/resources/static/assets/img/flags/nf.png create mode 100644 src/main/resources/static/assets/img/flags/ng.png create mode 100644 src/main/resources/static/assets/img/flags/ni.png create mode 100644 src/main/resources/static/assets/img/flags/nl.png create mode 100644 src/main/resources/static/assets/img/flags/no.png create mode 100644 src/main/resources/static/assets/img/flags/np.png create mode 100644 src/main/resources/static/assets/img/flags/nr.png create mode 100644 src/main/resources/static/assets/img/flags/nu.png create mode 100644 src/main/resources/static/assets/img/flags/nz.png create mode 100644 src/main/resources/static/assets/img/flags/om.png create mode 100644 src/main/resources/static/assets/img/flags/pa.png create mode 100644 src/main/resources/static/assets/img/flags/pe.png create mode 100644 src/main/resources/static/assets/img/flags/pf.png create mode 100644 src/main/resources/static/assets/img/flags/pg.png create mode 100644 src/main/resources/static/assets/img/flags/ph.png create mode 100644 src/main/resources/static/assets/img/flags/pk.png create mode 100644 src/main/resources/static/assets/img/flags/pl.png create mode 100644 src/main/resources/static/assets/img/flags/pm.png create mode 100644 src/main/resources/static/assets/img/flags/pn.png create mode 100644 src/main/resources/static/assets/img/flags/pr.png create mode 100644 src/main/resources/static/assets/img/flags/ps.png create mode 100644 src/main/resources/static/assets/img/flags/pt.png create mode 100644 src/main/resources/static/assets/img/flags/pw.png create mode 100644 src/main/resources/static/assets/img/flags/py.png create mode 100644 src/main/resources/static/assets/img/flags/qa.png create mode 100644 src/main/resources/static/assets/img/flags/re.png create mode 100644 src/main/resources/static/assets/img/flags/readme.txt create mode 100644 src/main/resources/static/assets/img/flags/ro.png create mode 100644 src/main/resources/static/assets/img/flags/rs.png create mode 100644 src/main/resources/static/assets/img/flags/ru.png create mode 100644 src/main/resources/static/assets/img/flags/rw.png create mode 100644 src/main/resources/static/assets/img/flags/sa.png create mode 100644 src/main/resources/static/assets/img/flags/sb.png create mode 100644 src/main/resources/static/assets/img/flags/sc.png create mode 100644 src/main/resources/static/assets/img/flags/scotland.png create mode 100644 src/main/resources/static/assets/img/flags/sd.png create mode 100644 src/main/resources/static/assets/img/flags/se.png create mode 100644 src/main/resources/static/assets/img/flags/sg.png create mode 100644 src/main/resources/static/assets/img/flags/sh.png create mode 100644 src/main/resources/static/assets/img/flags/si.png create mode 100644 src/main/resources/static/assets/img/flags/sj.png create mode 100644 src/main/resources/static/assets/img/flags/sk.png create mode 100644 src/main/resources/static/assets/img/flags/sl.png create mode 100644 src/main/resources/static/assets/img/flags/sm.png create mode 100644 src/main/resources/static/assets/img/flags/sn.png create mode 100644 src/main/resources/static/assets/img/flags/so.png create mode 100644 src/main/resources/static/assets/img/flags/sr.png create mode 100644 src/main/resources/static/assets/img/flags/st.png create mode 100644 src/main/resources/static/assets/img/flags/sv.png create mode 100644 src/main/resources/static/assets/img/flags/sy.png create mode 100644 src/main/resources/static/assets/img/flags/sz.png create mode 100644 src/main/resources/static/assets/img/flags/tc.png create mode 100644 src/main/resources/static/assets/img/flags/td.png create mode 100644 src/main/resources/static/assets/img/flags/tf.png create mode 100644 src/main/resources/static/assets/img/flags/tg.png create mode 100644 src/main/resources/static/assets/img/flags/th.png create mode 100644 src/main/resources/static/assets/img/flags/tj.png create mode 100644 src/main/resources/static/assets/img/flags/tk.png create mode 100644 src/main/resources/static/assets/img/flags/tl.png create mode 100644 src/main/resources/static/assets/img/flags/tm.png create mode 100644 src/main/resources/static/assets/img/flags/tn.png create mode 100644 src/main/resources/static/assets/img/flags/to.png create mode 100644 src/main/resources/static/assets/img/flags/tr.png create mode 100644 src/main/resources/static/assets/img/flags/tt.png create mode 100644 src/main/resources/static/assets/img/flags/tv.png create mode 100644 src/main/resources/static/assets/img/flags/tw.png create mode 100644 src/main/resources/static/assets/img/flags/tz.png create mode 100644 src/main/resources/static/assets/img/flags/ua.png create mode 100644 src/main/resources/static/assets/img/flags/ug.png create mode 100644 src/main/resources/static/assets/img/flags/um.png create mode 100644 src/main/resources/static/assets/img/flags/us.png create mode 100644 src/main/resources/static/assets/img/flags/uy.png create mode 100644 src/main/resources/static/assets/img/flags/uz.png create mode 100644 src/main/resources/static/assets/img/flags/va.png create mode 100644 src/main/resources/static/assets/img/flags/vc.png create mode 100644 src/main/resources/static/assets/img/flags/ve.png create mode 100644 src/main/resources/static/assets/img/flags/vg.png create mode 100644 src/main/resources/static/assets/img/flags/vi.png create mode 100644 src/main/resources/static/assets/img/flags/vn.png create mode 100644 src/main/resources/static/assets/img/flags/vu.png create mode 100644 src/main/resources/static/assets/img/flags/wales.png create mode 100644 src/main/resources/static/assets/img/flags/wf.png create mode 100644 src/main/resources/static/assets/img/flags/ws.png create mode 100644 src/main/resources/static/assets/img/flags/ye.png create mode 100644 src/main/resources/static/assets/img/flags/yt.png create mode 100644 src/main/resources/static/assets/img/flags/za.png create mode 100644 src/main/resources/static/assets/img/flags/zm.png create mode 100644 src/main/resources/static/assets/img/flags/zw.png create mode 100644 src/main/resources/static/assets/img/icon.ico create mode 100644 src/main/resources/static/assets/img/icon.png create mode 100644 src/main/resources/static/assets/img/icon.svg create mode 100644 src/main/resources/static/assets/img/img-shadow.gvdesign create mode 100644 src/main/resources/static/assets/img/img-shadow.png create mode 100644 src/main/resources/static/assets/img/jm_denis.jpg create mode 100644 src/main/resources/static/assets/img/logo.svg create mode 100644 src/main/resources/static/assets/img/logo2.svg create mode 100644 src/main/resources/static/assets/img/logoalternatif.svg create mode 100644 src/main/resources/static/assets/img/logoproduct.svg create mode 100644 src/main/resources/static/assets/img/logoproduct2.svg create mode 100644 src/main/resources/static/assets/img/logoproduct3.svg create mode 100644 src/main/resources/static/assets/img/mlane.jpg create mode 100644 src/main/resources/static/assets/img/productimg/product1.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product2.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product3.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product4.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product5.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product6.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product7.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product8.jpeg create mode 100644 src/main/resources/static/assets/img/productimg/product9.jpeg create mode 100644 src/main/resources/static/assets/img/profile.jpg create mode 100644 src/main/resources/static/assets/img/profile2.jpg create mode 100644 src/main/resources/static/assets/img/sauro.jpg create mode 100644 src/main/resources/static/assets/img/talha.jpg create mode 100644 src/main/resources/static/assets/img/visa.svg create mode 100644 src/main/resources/static/assets/js/ase/ase-jquery-framework.js create mode 100644 src/main/resources/static/assets/js/ase/ase-login.js create mode 100644 src/main/resources/static/assets/js/atlantis.js create mode 100644 src/main/resources/static/assets/js/atlantis.min.js create mode 100644 src/main/resources/static/assets/js/atlantis2.js create mode 100644 src/main/resources/static/assets/js/core/bootstrap.min.js create mode 100644 src/main/resources/static/assets/js/core/jquery.3.2.1.min.js create mode 100644 src/main/resources/static/assets/js/core/popper.min.js create mode 100644 src/main/resources/static/assets/js/demo.js create mode 100644 src/main/resources/static/assets/js/plugin/bootstrap-notify/bootstrap-notify.min.js create mode 100644 src/main/resources/static/assets/js/plugin/chart-circle/circles.min.js create mode 100644 src/main/resources/static/assets/js/plugin/chart.js/chart.min.js create mode 100644 src/main/resources/static/assets/js/plugin/datatables/datatables.min.js create mode 100644 src/main/resources/static/assets/js/plugin/jquery-scrollbar/jquery.scrollbar.min.js create mode 100644 src/main/resources/static/assets/js/plugin/jquery-ui-1.12.1.custom/jquery-ui.min.js create mode 100644 src/main/resources/static/assets/js/plugin/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js create mode 100644 src/main/resources/static/assets/js/plugin/jquery.sparkline/jquery.sparkline.min.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/jquery.vmap.min.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/continents/jquery.vmap.africa.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/continents/jquery.vmap.asia.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/continents/jquery.vmap.australia.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/continents/jquery.vmap.europe.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/continents/jquery.vmap.north-america.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/continents/jquery.vmap.south-america.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.algeria.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.argentina.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.brazil.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.canada.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.croatia.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.europe.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.france.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.germany.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.greece.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.indonesia.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.iran.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.iraq.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.new_regions_france.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.russia.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.serbia.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.tunisia.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.turkey.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.ukraine.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.usa.counties.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.usa.districts.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.usa.js create mode 100644 src/main/resources/static/assets/js/plugin/jqvmap/maps/jquery.vmap.world.js create mode 100644 src/main/resources/static/assets/js/plugin/sweetalert/sweetalert.min.js create mode 100644 src/main/resources/static/assets/js/plugin/webfont/webfont.min.js create mode 100644 src/main/resources/static/assets/js/setting-demo.js create mode 100644 src/main/resources/static/assets/js/setting-demo2.js create mode 100644 src/main/resources/static/assets/sass/atlantis.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_background.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_components.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_flaticon.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_font-awesome.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_layouts-colors.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_layouts.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_opacity.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_outlinefocus.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_plugins.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_responsive-horizontal.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_responsive.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_typography.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/_variables.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_activityfeed.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_alerts.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_avatars.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_badges.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_breadcrumbs.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_buttons.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_cards.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_charts.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_colorinputs.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_dropdowns.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_gutters.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_imagecheck.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_inputs.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_listgroup.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_loader.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_maps.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_modals.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_navbars.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_navsearch.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_navtabs.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_paginations.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_popovers.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_progress.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_selectgroup.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_sliders.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_stamps.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_tables.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/components/_timeline.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/plugins/_animate.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/plugins/_datatables.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/plugins/_jqueryscrollbar.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/plugins/_jqueryui.scss create mode 100644 src/main/resources/static/assets/sass/atlantis/plugins/_sweetalert.scss create mode 100644 src/main/resources/templates/error.html create mode 100644 src/main/resources/templates/forget.html create mode 100644 src/main/resources/templates/home.html create mode 100644 src/main/resources/templates/huodong1.html create mode 100644 src/main/resources/templates/huodong2.html create mode 100644 src/main/resources/templates/huodong3.html create mode 100644 src/main/resources/templates/huodong4.html create mode 100644 src/main/resources/templates/index.html create mode 100644 src/main/resources/templates/information.html create mode 100644 src/main/resources/templates/layout.html create mode 100644 src/main/resources/templates/login.html create mode 100644 src/main/resources/templates/main.html create mode 100644 src/main/resources/templates/not_found.html create mode 100644 src/main/resources/templates/query.html create mode 100644 src/main/resources/templates/register.html create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100644 src/test/java/com/codesdream/ase/test/AchievementServiceTest.java create mode 100644 src/test/java/com/codesdream/ase/test/ActivityServiceTest.java create mode 100644 src/test/java/com/codesdream/ase/test/AseApplicationTests.java create mode 100644 src/test/java/com/codesdream/ase/test/AuthServiceTest.java create mode 100644 src/test/java/com/codesdream/ase/test/BaseInformationTest.java create mode 100644 src/test/java/com/codesdream/ase/test/DataManagerTest.java create mode 100644 src/test/java/com/codesdream/ase/test/JSONFormValidatorTest.java create mode 100644 src/test/java/com/codesdream/ase/test/PermissionServiceTest.java create mode 100644 src/test/java/com/codesdream/ase/test/UserTest.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a2a3040 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..a45eb6b --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,118 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 GIT binary patch literal 50710 zcmbTd1CVCTmM+|7+wQV$+qP}n>auOywyU~q+qUhh+uxis_~*a##hm*_WW?9E7Pb7N%LRFiwbEGCJ0XP=%-6oeT$XZcYgtzC2~q zk(K08IQL8oTl}>>+hE5YRgXTB@fZ4TH9>7=79e`%%tw*SQUa9~$xKD5rS!;ZG@ocK zQdcH}JX?W|0_Afv?y`-NgLum62B&WSD$-w;O6G0Sm;SMX65z)l%m1e-g8Q$QTI;(Q z+x$xth4KFvH@Bs6(zn!iF#nenk^Y^ce;XIItAoCsow38eq?Y-Auh!1in#Rt-_D>H^ z=EjbclGGGa6VnaMGmMLj`x3NcwA43Jb(0gzl;RUIRAUDcR1~99l2SAPkVhoRMMtN} zXvC<tOmX83grD8GSo_Lo?%lNfhD#EBgPo z*nf@ppMC#B!T)Ae0RG$mlJWmGl7CkuU~B8-==5i;rS;8i6rJ=PoQxf446XDX9g|c> zU64ePyMlsI^V5Jq5A+BPe#e73+kpc_r1tv#B)~EZ;7^67F0*QiYfrk0uVW;Qb=NsG zN>gsuCwvb?s-KQIppEaeXtEMdc9dy6Dfduz-tMTms+i01{eD9JE&h?Kht*$eOl#&L zJdM_-vXs(V#$Ed;5wyNWJdPNh+Z$+;$|%qR(t`4W@kDhd*{(7-33BOS6L$UPDeE_53j${QfKN-0v-HG z(QfyvFNbwPK%^!eIo4ac1;b>c0vyf9}Xby@YY!lkz-UvNp zwj#Gg|4B~?n?G^{;(W;|{SNoJbHTMpQJ*Wq5b{l9c8(%?Kd^1?H1om1de0Da9M;Q=n zUfn{f87iVb^>Exl*nZ0hs(Yt>&V9$Pg`zX`AI%`+0SWQ4Zc(8lUDcTluS z5a_KerZWe}a-MF9#Cd^fi!y3%@RFmg&~YnYZ6<=L`UJ0v={zr)>$A;x#MCHZy1st7 ztT+N07NR+vOwSV2pvWuN1%lO!K#Pj0Fr>Q~R40{bwdL%u9i`DSM4RdtEH#cW)6}+I-eE< z&tZs+(Ogu(H_;$a$!7w`MH0r%h&@KM+<>gJL@O~2K2?VrSYUBbhCn#yy?P)uF3qWU z0o09mIik+kvzV6w>vEZy@&Mr)SgxPzUiDA&%07m17udz9usD82afQEps3$pe!7fUf z0eiidkJ)m3qhOjVHC_M(RYCBO%CZKZXFb8}s0-+}@CIn&EF(rRWUX2g^yZCvl0bI} zbP;1S)iXnRC&}5-Tl(hASKqdSnO?ASGJ*MIhOXIblmEudj(M|W!+I3eDc}7t`^mtg z)PKlaXe(OH+q-)qcQ8a@!llRrpGI8DsjhoKvw9T;TEH&?s=LH0w$EzI>%u;oD@x83 zJL7+ncjI9nn!TlS_KYu5vn%f*@qa5F;| zEFxY&B?g=IVlaF3XNm_03PA)=3|{n-UCgJoTr;|;1AU9|kPE_if8!Zvb}0q$5okF$ zHaJdmO&gg!9oN|M{!qGE=tb|3pVQ8PbL$}e;NgXz<6ZEggI}wO@aBP**2Wo=yN#ZC z4G$m^yaM9g=|&!^ft8jOLuzc3Psca*;7`;gnHm}tS0%f4{|VGEwu45KptfNmwxlE~ z^=r30gi@?cOm8kAz!EylA4G~7kbEiRlRIzwrb~{_2(x^$-?|#e6Bi_**(vyr_~9Of z!n>Gqf+Qwiu!xhi9f53=PM3`3tNF}pCOiPU|H4;pzjcsqbwg*{{kyrTxk<;mx~(;; z1NMrpaQ`57yn34>Jo3b|HROE(UNcQash!0p2-!Cz;{IRv#Vp5!3o$P8!%SgV~k&Hnqhp`5eLjTcy93cK!3Hm-$`@yGnaE=?;*2uSpiZTs_dDd51U%i z{|Zd9ou-;laGS_x=O}a+ zB||za<795A?_~Q=r=coQ+ZK@@ zId~hWQL<%)fI_WDIX#=(WNl!Dm$a&ROfLTd&B$vatq!M-2Jcs;N2vps$b6P1(N}=oI3<3luMTmC|0*{ zm1w8bt7vgX($!0@V0A}XIK)w!AzUn7vH=pZEp0RU0p?}ch2XC-7r#LK&vyc2=-#Q2 z^L%8)JbbcZ%g0Du;|8=q8B>X=mIQirpE=&Ox{TiuNDnOPd-FLI^KfEF729!!0x#Es z@>3ursjFSpu%C-8WL^Zw!7a0O-#cnf`HjI+AjVCFitK}GXO`ME&on|^=~Zc}^LBp9 zj=-vlN;Uc;IDjtK38l7}5xxQF&sRtfn4^TNtnzXv4M{r&ek*(eNbIu!u$>Ed%` z5x7+&)2P&4>0J`N&ZP8$vcR+@FS0126s6+Jx_{{`3ZrIMwaJo6jdrRwE$>IU_JTZ} z(||hyyQ)4Z1@wSlT94(-QKqkAatMmkT7pCycEB1U8KQbFX&?%|4$yyxCtm3=W`$4fiG0WU3yI@c zx{wfmkZAYE_5M%4{J-ygbpH|(|GD$2f$3o_Vti#&zfSGZMQ5_f3xt6~+{RX=$H8at z?GFG1Tmp}}lmm-R->ve*Iv+XJ@58p|1_jRvfEgz$XozU8#iJS})UM6VNI!3RUU!{5 zXB(+Eqd-E;cHQ>)`h0(HO_zLmzR3Tu-UGp;08YntWwMY-9i^w_u#wR?JxR2bky5j9 z3Sl-dQQU$xrO0xa&>vsiK`QN<$Yd%YXXM7*WOhnRdSFt5$aJux8QceC?lA0_if|s> ze{ad*opH_kb%M&~(~&UcX0nFGq^MqjxW?HJIP462v9XG>j(5Gat_)#SiNfahq2Mz2 zU`4uV8m$S~o9(W>mu*=h%Gs(Wz+%>h;R9Sg)jZ$q8vT1HxX3iQnh6&2rJ1u|j>^Qf`A76K%_ubL`Zu?h4`b=IyL>1!=*%!_K)=XC z6d}4R5L+sI50Q4P3upXQ3Z!~1ZXLlh!^UNcK6#QpYt-YC=^H=EPg3)z*wXo*024Q4b2sBCG4I# zlTFFY=kQ>xvR+LsuDUAk)q%5pEcqr(O_|^spjhtpb1#aC& zghXzGkGDC_XDa%t(X`E+kvKQ4zrQ*uuQoj>7@@ykWvF332)RO?%AA&Fsn&MNzmFa$ zWk&&^=NNjxLjrli_8ESU)}U|N{%j&TQmvY~lk!~Jh}*=^INA~&QB9em!in_X%Rl1&Kd~Z(u z9mra#<@vZQlOY+JYUwCrgoea4C8^(xv4ceCXcejq84TQ#sF~IU2V}LKc~Xlr_P=ry zl&Hh0exdCbVd^NPCqNNlxM3vA13EI8XvZ1H9#bT7y*U8Y{H8nwGpOR!e!!}*g;mJ#}T{ekSb}5zIPmye*If(}}_=PcuAW#yidAa^9-`<8Gr0 z)Fz=NiZ{)HAvw{Pl5uu)?)&i&Us$Cx4gE}cIJ}B4Xz~-q7)R_%owbP!z_V2=Aq%Rj z{V;7#kV1dNT9-6R+H}}(ED*_!F=~uz>&nR3gb^Ce%+0s#u|vWl<~JD3MvS0T9thdF zioIG3c#Sdsv;LdtRv3ml7%o$6LTVL>(H`^@TNg`2KPIk*8-IB}X!MT0`hN9Ddf7yN z?J=GxPL!uJ7lqwowsl?iRrh@#5C$%E&h~Z>XQcvFC*5%0RN-Opq|=IwX(dq(*sjs+ zqy99+v~m|6T#zR*e1AVxZ8djd5>eIeCi(b8sUk)OGjAsKSOg^-ugwl2WSL@d#?mdl zib0v*{u-?cq}dDGyZ%$XRY=UkQwt2oGu`zQneZh$=^! zj;!pCBWQNtvAcwcWIBM2y9!*W|8LmQy$H~5BEx)78J`4Z0(FJO2P^!YyQU{*Al+fs z){!4JvT1iLrJ8aU3k0t|P}{RN)_^v%$$r;+p0DY7N8CXzmS*HB*=?qaaF9D@#_$SN zSz{moAK<*RH->%r7xX~9gVW$l7?b|_SYI)gcjf0VAUJ%FcQP(TpBs; zg$25D!Ry_`8xpS_OJdeo$qh#7U+cepZ??TII7_%AXsT$B z=e)Bx#v%J0j``00Zk5hsvv6%T^*xGNx%KN-=pocSoqE5_R)OK%-Pbu^1MNzfds)mL zxz^F4lDKV9D&lEY;I+A)ui{TznB*CE$=9(wgE{m}`^<--OzV-5V4X2w9j(_!+jpTr zJvD*y6;39&T+==$F&tsRKM_lqa1HC}aGL0o`%c9mO=fts?36@8MGm7Vi{Y z^<7m$(EtdSr#22<(rm_(l_(`j!*Pu~Y>>xc>I9M#DJYDJNHO&4=HM%YLIp?;iR&$m z#_$ZWYLfGLt5FJZhr3jpYb`*%9S!zCG6ivNHYzNHcI%khtgHBliM^Ou}ZVD7ehU9 zS+W@AV=?Ro!=%AJ>Kcy9aU3%VX3|XM_K0A+ZaknKDyIS3S-Hw1C7&BSW5)sqj5Ye_ z4OSW7Yu-;bCyYKHFUk}<*<(@TH?YZPHr~~Iy%9@GR2Yd}J2!N9K&CN7Eq{Ka!jdu; zQNB*Y;i(7)OxZK%IHGt#Rt?z`I|A{q_BmoF!f^G}XVeTbe1Wnzh%1g>j}>DqFf;Rp zz7>xIs12@Ke0gr+4-!pmFP84vCIaTjqFNg{V`5}Rdt~xE^I;Bxp4)|cs8=f)1YwHz zqI`G~s2~qqDV+h02b`PQpUE#^^Aq8l%y2|ByQeXSADg5*qMprEAE3WFg0Q39`O+i1 z!J@iV!`Y~C$wJ!5Z+j5$i<1`+@)tBG$JL=!*uk=2k;T<@{|s1$YL079FvK%mPhyHV zP8^KGZnp`(hVMZ;s=n~3r2y;LTwcJwoBW-(ndU-$03{RD zh+Qn$ja_Z^OuMf3Ub|JTY74s&Am*(n{J3~@#OJNYuEVVJd9*H%)oFoRBkySGm`hx! zT3tG|+aAkXcx-2Apy)h^BkOyFTWQVeZ%e2@;*0DtlG9I3Et=PKaPt&K zw?WI7S;P)TWED7aSH$3hL@Qde?H#tzo^<(o_sv_2ci<7M?F$|oCFWc?7@KBj-;N$P zB;q!8@bW-WJY9do&y|6~mEruZAVe$!?{)N9rZZxD-|oltkhW9~nR8bLBGXw<632!l z*TYQn^NnUy%Ds}$f^=yQ+BM-a5X4^GHF=%PDrRfm_uqC zh{sKwIu|O0&jWb27;wzg4w5uA@TO_j(1X?8E>5Zfma|Ly7Bklq|s z9)H`zoAGY3n-+&JPrT!>u^qg9Evx4y@GI4$n-Uk_5wttU1_t?6><>}cZ-U+&+~JE) zPlDbO_j;MoxdLzMd~Ew|1o^a5q_1R*JZ=#XXMzg?6Zy!^hop}qoLQlJ{(%!KYt`MK z8umEN@Z4w!2=q_oe=;QttPCQy3Nm4F@x>@v4sz_jo{4m*0r%J(w1cSo;D_hQtJs7W z><$QrmG^+<$4{d2bgGo&3-FV}avg9zI|Rr(k{wTyl3!M1q+a zD9W{pCd%il*j&Ft z5H$nENf>>k$;SONGW`qo6`&qKs*T z2^RS)pXk9b@(_Fw1bkb)-oqK|v}r$L!W&aXA>IpcdNZ_vWE#XO8X`#Yp1+?RshVcd zknG%rPd*4ECEI0wD#@d+3NbHKxl}n^Sgkx==Iu%}HvNliOqVBqG?P2va zQ;kRJ$J6j;+wP9cS za#m;#GUT!qAV%+rdWolk+)6kkz4@Yh5LXP+LSvo9_T+MmiaP-eq6_k;)i6_@WSJ zlT@wK$zqHu<83U2V*yJ|XJU4farT#pAA&@qu)(PO^8PxEmPD4;Txpio+2)#!9 z>&=i7*#tc0`?!==vk>s7V+PL#S1;PwSY?NIXN2=Gu89x(cToFm))7L;< z+bhAbVD*bD=}iU`+PU+SBobTQ%S!=VL!>q$rfWsaaV}Smz>lO9JXT#`CcH_mRCSf4%YQAw`$^yY z3Y*^Nzk_g$xn7a_NO(2Eb*I=^;4f!Ra#Oo~LLjlcjke*k*o$~U#0ZXOQ5@HQ&T46l z7504MUgZkz2gNP1QFN8Y?nSEnEai^Rgyvl}xZfMUV6QrJcXp;jKGqB=D*tj{8(_pV zqyB*DK$2lgYGejmJUW)*s_Cv65sFf&pb(Yz8oWgDtQ0~k^0-wdF|tj}MOXaN@ydF8 zNr={U?=;&Z?wr^VC+`)S2xl}QFagy;$mG=TUs7Vi2wws5zEke4hTa2)>O0U?$WYsZ z<8bN2bB_N4AWd%+kncgknZ&}bM~eDtj#C5uRkp21hWW5gxWvc6b*4+dn<{c?w9Rmf zIVZKsPl{W2vQAlYO3yh}-{Os=YBnL8?uN5(RqfQ=-1cOiUnJu>KcLA*tQK3FU`_bM zM^T28w;nAj5EdAXFi&Kk1Nnl2)D!M{@+D-}bIEe+Lc4{s;YJc-{F#``iS2uk;2!Zp zF9#myUmO!wCeJIoi^A+T^e~20c+c2C}XltaR!|U-HfDA=^xF97ev}$l6#oY z&-&T{egB)&aV$3_aVA51XGiU07$s9vubh_kQG?F$FycvS6|IO!6q zq^>9|3U^*!X_C~SxX&pqUkUjz%!j=VlXDo$!2VLH!rKj@61mDpSr~7B2yy{>X~_nc zRI+7g2V&k zd**H++P9dg!-AOs3;GM`(g<+GRV$+&DdMVpUxY9I1@uK28$az=6oaa+PutlO9?6#? zf-OsgT>^@8KK>ggkUQRPPgC7zjKFR5spqQb3ojCHzj^(UH~v+!y*`Smv)VpVoPwa6 zWG18WJaPKMi*F6Zdk*kU^`i~NNTfn3BkJniC`yN98L-Awd)Z&mY? zprBW$!qL-OL7h@O#kvYnLsfff@kDIegt~?{-*5A7JrA;#TmTe?jICJqhub-G@e??D zqiV#g{)M!kW1-4SDel7TO{;@*h2=_76g3NUD@|c*WO#>MfYq6_YVUP+&8e4|%4T`w zXzhmVNziAHazWO2qXcaOu@R1MrPP{t)`N)}-1&~mq=ZH=w=;-E$IOk=y$dOls{6sRR`I5>|X zpq~XYW4sd;J^6OwOf**J>a7u$S>WTFPRkjY;BfVgQst)u4aMLR1|6%)CB^18XCz+r ztkYQ}G43j~Q&1em(_EkMv0|WEiKu;z2zhb(L%$F&xWwzOmk;VLBYAZ8lOCziNoPw1 zv2BOyXA`A8z^WH!nXhKXM`t0;6D*-uGds3TYGrm8SPnJJOQ^fJU#}@aIy@MYWz**H zvkp?7I5PE{$$|~{-ZaFxr6ZolP^nL##mHOErB^AqJqn^hFA=)HWj!m3WDaHW$C)i^ z9@6G$SzB=>jbe>4kqr#sF7#K}W*Cg-5y6kun3u&0L7BpXF9=#7IN8FOjWrWwUBZiU zT_se3ih-GBKx+Uw0N|CwP3D@-C=5(9T#BH@M`F2!Goiqx+Js5xC92|Sy0%WWWp={$(am!#l~f^W_oz78HX<0X#7 zp)p1u~M*o9W@O8P{0Qkg@Wa# z2{Heb&oX^CQSZWSFBXKOfE|tsAm#^U-WkDnU;IowZ`Ok4!mwHwH=s|AqZ^YD4!5!@ zPxJj+Bd-q6w_YG`z_+r;S86zwXb+EO&qogOq8h-Ect5(M2+>(O7n7)^dP*ws_3U6v zVsh)sk^@*c>)3EML|0<-YROho{lz@Nd4;R9gL{9|64xVL`n!m$-Jjrx?-Bacp!=^5 z1^T^eB{_)Y<9)y{-4Rz@9_>;_7h;5D+@QcbF4Wv7hu)s0&==&6u)33 zHRj+&Woq-vDvjwJCYES@$C4{$?f$Ibi4G()UeN11rgjF+^;YE^5nYprYoJNoudNj= zm1pXSeG64dcWHObUetodRn1Fw|1nI$D9z}dVEYT0lQnsf_E1x2vBLql7NrHH!n&Sq z6lc*mvU=WS6=v9Lrl}&zRiu_6u;6g%_DU{9b+R z#YHqX7`m9eydf?KlKu6Sb%j$%_jmydig`B*TN`cZL-g!R)iE?+Q5oOqBFKhx z%MW>BC^(F_JuG(ayE(MT{S3eI{cKiwOtPwLc0XO*{*|(JOx;uQOfq@lp_^cZo=FZj z4#}@e@dJ>Bn%2`2_WPeSN7si^{U#H=7N4o%Dq3NdGybrZgEU$oSm$hC)uNDC_M9xc zGzwh5Sg?mpBIE8lT2XsqTt3j3?We8}3bzLBTQd639vyg^$0#1epq8snlDJP2(BF)K zSx30RM+{f+b$g{9usIL8H!hCO117Xgv}ttPJm9wVRjPk;ePH@zxv%j9k5`TzdXLeT zFgFX`V7cYIcBls5WN0Pf6SMBN+;CrQ(|EsFd*xtwr#$R{Z9FP`OWtyNsq#mCgZ7+P z^Yn$haBJ)r96{ZJd8vlMl?IBxrgh=fdq_NF!1{jARCVz>jNdC)H^wfy?R94#MPdUjcYX>#wEx+LB#P-#4S-%YH>t-j+w zOFTI8gX$ard6fAh&g=u&56%3^-6E2tpk*wx3HSCQ+t7+*iOs zPk5ysqE}i*cQocFvA68xHfL|iX(C4h*67@3|5Qwle(8wT&!&{8*{f%0(5gH+m>$tq zp;AqrP7?XTEooYG1Dzfxc>W%*CyL16q|fQ0_jp%%Bk^k!i#Nbi(N9&T>#M{gez_Ws zYK=l}adalV(nH}I_!hNeb;tQFk3BHX7N}}R8%pek^E`X}%ou=cx8InPU1EE0|Hen- zyw8MoJqB5=)Z%JXlrdTXAE)eqLAdVE-=>wGHrkRet}>3Yu^lt$Kzu%$3#(ioY}@Gu zjk3BZuQH&~7H+C*uX^4}F*|P89JX;Hg2U!pt>rDi(n(Qe-c}tzb0#6_ItoR0->LSt zR~UT<-|@TO%O`M+_e_J4wx7^)5_%%u+J=yF_S#2Xd?C;Ss3N7KY^#-vx+|;bJX&8r zD?|MetfhdC;^2WG`7MCgs>TKKN=^=!x&Q~BzmQio_^l~LboTNT=I zC5pme^P@ER``p$2md9>4!K#vV-Fc1an7pl>_|&>aqP}+zqR?+~Z;f2^`a+-!Te%V? z;H2SbF>jP^GE(R1@%C==XQ@J=G9lKX+Z<@5}PO(EYkJh=GCv#)Nj{DkWJM2}F&oAZ6xu8&g7pn1ps2U5srwQ7CAK zN&*~@t{`31lUf`O;2w^)M3B@o)_mbRu{-`PrfNpF!R^q>yTR&ETS7^-b2*{-tZAZz zw@q5x9B5V8Qd7dZ!Ai$9hk%Q!wqbE1F1c96&zwBBaRW}(^axoPpN^4Aw}&a5dMe+*Gomky_l^54*rzXro$ z>LL)U5Ry>~FJi=*{JDc)_**c)-&faPz`6v`YU3HQa}pLtb5K)u%K+BOqXP0)rj5Au$zB zW1?vr?mDv7Fsxtsr+S6ucp2l#(4dnr9sD*v+@*>g#M4b|U?~s93>Pg{{a5|rm2xfI z`>E}?9S@|IoUX{Q1zjm5YJT|3S>&09D}|2~BiMo=z4YEjXlWh)V&qs;*C{`UMxp$9 zX)QB?G$fPD6z5_pNs>Jeh{^&U^)Wbr?2D6-q?)`*1k@!UvwQgl8eG$r+)NnFoT)L6 zg7lEh+E6J17krfYJCSjWzm67hEth24pomhz71|Qodn#oAILN)*Vwu2qpJirG)4Wnv}9GWOFrQg%Je+gNrPl8mw7ykE8{ z=|B4+uwC&bpp%eFcRU6{mxRV32VeH8XxX>v$du<$(DfinaaWxP<+Y97Z#n#U~V zVEu-GoPD=9$}P;xv+S~Ob#mmi$JQmE;Iz4(){y*9pFyW-jjgdk#oG$fl4o9E8bo|L zWjo4l%n51@Kz-n%zeSCD`uB?T%FVk+KBI}=ve zvlcS#wt`U6wrJo}6I6Rwb=1GzZfwE=I&Ne@p7*pH84XShXYJRgvK)UjQL%R9Zbm(m zxzTQsLTON$WO7vM)*vl%Pc0JH7WhP;$z@j=y#avW4X8iqy6mEYr@-}PW?H)xfP6fQ z&tI$F{NNct4rRMSHhaelo<5kTYq+(?pY)Ieh8*sa83EQfMrFupMM@nfEV@EmdHUv9 z35uzIrIuo4#WnF^_jcpC@uNNaYTQ~uZWOE6P@LFT^1@$o&q+9Qr8YR+ObBkpP9=F+$s5+B!mX2~T zAuQ6RenX?O{IlLMl1%)OK{S7oL}X%;!XUxU~xJN8xk z`xywS*naF(J#?vOpB(K=o~lE;m$zhgPWDB@=p#dQIW>xe_p1OLoWInJRKbEuoncf; zmS1!u-ycc1qWnDg5Nk2D)BY%jmOwCLC+Ny>`f&UxFowIsHnOXfR^S;&F(KXd{ODlm z$6#1ccqt-HIH9)|@fHnrKudu!6B$_R{fbCIkSIb#aUN|3RM>zuO>dpMbROZ`^hvS@ z$FU-;e4W}!ubzKrU@R*dW*($tFZ>}dd*4_mv)#O>X{U@zSzQt*83l9mI zI$8O<5AIDx`wo0}f2fsPC_l>ONx_`E7kdXu{YIZbp1$(^oBAH({T~&oQ&1{X951QW zmhHUxd)t%GQ9#ak5fTjk-cahWC;>^Rg7(`TVlvy0W@Y!Jc%QL3Ozu# zDPIqBCy&T2PWBj+d-JA-pxZlM=9ja2ce|3B(^VCF+a*MMp`(rH>Rt6W1$;r{n1(VK zLs>UtkT43LR2G$AOYHVailiqk7naz2yZGLo*xQs!T9VN5Q>eE(w zw$4&)&6xIV$IO^>1N-jrEUg>O8G4^@y+-hQv6@OmF@gy^nL_n1P1-Rtyy$Bl;|VcV zF=p*&41-qI5gG9UhKmmnjs932!6hceXa#-qfK;3d*a{)BrwNFeKU|ge?N!;zk+kB! zMD_uHJR#%b54c2tr~uGPLTRLg$`fupo}cRJeTwK;~}A>(Acy4k-Xk&Aa1&eWYS1ULWUj@fhBiWY$pdfy+F z@G{OG{*v*mYtH3OdUjwEr6%_ZPZ3P{@rfbNPQG!BZ7lRyC^xlMpWH`@YRar`tr}d> z#wz87t?#2FsH-jM6m{U=gp6WPrZ%*w0bFm(T#7m#v^;f%Z!kCeB5oiF`W33W5Srdt zdU?YeOdPG@98H7NpI{(uN{FJdu14r(URPH^F6tOpXuhU7T9a{3G3_#Ldfx_nT(Hec zo<1dyhsVsTw;ZkVcJ_0-h-T3G1W@q)_Q30LNv)W?FbMH+XJ* zy=$@39Op|kZv`Rt>X`zg&at(?PO^I=X8d9&myFEx#S`dYTg1W+iE?vt#b47QwoHI9 zNP+|3WjtXo{u}VG(lLUaW0&@yD|O?4TS4dfJI`HC-^q;M(b3r2;7|FONXphw-%7~* z&;2!X17|05+kZOpQ3~3!Nb>O94b&ZSs%p)TK)n3m=4eiblVtSx@KNFgBY_xV6ts;NF;GcGxMP8OKV^h6LmSb2E#Qnw ze!6Mnz7>lE9u{AgQ~8u2zM8CYD5US8dMDX-5iMlgpE9m*s+Lh~A#P1er*rF}GHV3h z=`STo?kIXw8I<`W0^*@mB1$}pj60R{aJ7>C2m=oghKyxMbFNq#EVLgP0cH3q7H z%0?L93-z6|+jiN|@v>ix?tRBU(v-4RV`}cQH*fp|)vd3)8i9hJ3hkuh^8dz{F5-~_ zUUr1T3cP%cCaTooM8dj|4*M=e6flH0&8ve32Q)0dyisl))XkZ7Wg~N}6y`+Qi2l+e zUd#F!nJp{#KIjbQdI`%oZ`?h=5G^kZ_uN`<(`3;a!~EMsWV|j-o>c?x#;zR2ktiB! z);5rrHl?GPtr6-o!tYd|uK;Vbsp4P{v_4??=^a>>U4_aUXPWQ$FPLE4PK$T^3Gkf$ zHo&9$U&G`d(Os6xt1r?sg14n)G8HNyWa^q8#nf0lbr4A-Fi;q6t-`pAx1T*$eKM*$ z|CX|gDrk#&1}>5H+`EjV$9Bm)Njw&7-ZR{1!CJTaXuP!$Pcg69`{w5BRHysB$(tWUes@@6aM69kb|Lx$%BRY^-o6bjH#0!7b;5~{6J+jKxU!Kmi# zndh@+?}WKSRY2gZ?Q`{(Uj|kb1%VWmRryOH0T)f3cKtG4oIF=F7RaRnH0Rc_&372={_3lRNsr95%ZO{IX{p@YJ^EI%+gvvKes5cY+PE@unghjdY5#9A!G z70u6}?zmd?v+{`vCu-53_v5@z)X{oPC@P)iA3jK$`r zSA2a7&!^zmUiZ82R2=1cumBQwOJUPz5Ay`RLfY(EiwKkrx%@YN^^XuET;tE zmr-6~I7j!R!KrHu5CWGSChO6deaLWa*9LLJbcAJsFd%Dy>a!>J`N)Z&oiU4OEP-!Ti^_!p}O?7`}i7Lsf$-gBkuY*`Zb z7=!nTT;5z$_5$=J=Ko+Cp|Q0J=%oFr>hBgnL3!tvFoLNhf#D0O=X^h+x08iB;@8pXdRHxX}6R4k@i6%vmsQwu^5z zk1ip`#^N)^#Lg#HOW3sPI33xqFB4#bOPVnY%d6prwxf;Y-w9{ky4{O6&94Ra8VN@K zb-lY;&`HtxW@sF!doT5T$2&lIvJpbKGMuDAFM#!QPXW87>}=Q4J3JeXlwHys?!1^#37q_k?N@+u&Ns20pEoBeZC*np;i;M{2C0Z4_br2gsh6eL z#8`#sn41+$iD?^GL%5?cbRcaa-Nx0vE(D=*WY%rXy3B%gNz0l?#noGJGP728RMY#q z=2&aJf@DcR?QbMmN)ItUe+VM_U!ryqA@1VVt$^*xYt~-qvW!J4Tp<-3>jT=7Zow5M z8mSKp0v4b%a8bxFr>3MwZHSWD73D@+$5?nZAqGM#>H@`)mIeC#->B)P8T$zh-Pxnc z8)~Zx?TWF4(YfKuF3WN_ckpCe5;x4V4AA3(i$pm|78{%!q?|~*eH0f=?j6i)n~Hso zmTo>vqEtB)`%hP55INf7HM@taH)v`Fw40Ayc*R!T?O{ziUpYmP)AH`euTK!zg9*6Z z!>M=$3pd0!&TzU=hc_@@^Yd3eUQpX4-33}b{?~5t5lgW=ldJ@dUAH%`l5US1y_`40 zs(X`Qk}vvMDYYq+@Rm+~IyCX;iD~pMgq^KY)T*aBz@DYEB={PxA>)mI6tM*sx-DmGQHEaHwRrAmNjO!ZLHO4b;;5mf@zzlPhkP($JeZGE7 z?^XN}Gf_feGoG~BjUgVa*)O`>lX=$BSR2)uD<9 z>o^|nb1^oVDhQbfW>>!;8-7<}nL6L^V*4pB=>wwW+RXAeRvKED(n1;R`A6v$6gy0I(;Vf?!4;&sgn7F%LpM}6PQ?0%2Z@b{It<(G1CZ|>913E0nR2r^Pa*Bp z@tFGi*CQ~@Yc-?{cwu1 zsilf=k^+Qs>&WZG(3WDixisHpR>`+ihiRwkL(3T|=xsoNP*@XX3BU8hr57l3k;pni zI``=3Nl4xh4oDj<%>Q1zYXHr%Xg_xrK3Nq?vKX3|^Hb(Bj+lONTz>4yhU-UdXt2>j z<>S4NB&!iE+ao{0Tx^N*^|EZU;0kJkx@zh}S^P{ieQjGl468CbC`SWnwLRYYiStXm zOxt~Rb3D{dz=nHMcY)#r^kF8|q8KZHVb9FCX2m^X*(|L9FZg!5a7((!J8%MjT$#Fs)M1Pb zq6hBGp%O1A+&%2>l0mpaIzbo&jc^!oN^3zxap3V2dNj3x<=TwZ&0eKX5PIso9j1;e zwUg+C&}FJ`k(M|%%}p=6RPUq4sT3-Y;k-<68ciZ~_j|bt>&9ZLHNVrp#+pk}XvM{8 z`?k}o-!if>hVlCP9j%&WI2V`5SW)BCeR5>MQhF)po=p~AYN%cNa_BbV6EEh_kk^@a zD>4&>uCGCUmyA-c)%DIcF4R6!>?6T~Mj_m{Hpq`*(wj>foHL;;%;?(((YOxGt)Bhx zuS+K{{CUsaC++%}S6~CJ=|vr(iIs-je)e9uJEU8ZJAz)w166q)R^2XI?@E2vUQ!R% zn@dxS!JcOimXkWJBz8Y?2JKQr>`~SmE2F2SL38$SyR1^yqj8_mkBp)o$@+3BQ~Mid z9U$XVqxX3P=XCKj0*W>}L0~Em`(vG<>srF8+*kPrw z20{z(=^w+ybdGe~Oo_i|hYJ@kZl*(9sHw#Chi&OIc?w`nBODp?ia$uF%Hs(X>xm?j zqZQ`Ybf@g#wli`!-al~3GWiE$K+LCe=Ndi!#CVjzUZ z!sD2O*;d28zkl))m)YN7HDi^z5IuNo3^w(zy8 zszJG#mp#Cj)Q@E@r-=NP2FVxxEAeOI2e=|KshybNB6HgE^(r>HD{*}S}mO>LuRGJT{*tfTzw_#+er-0${}%YPe@CMJ1Ng#j#)i)SnY@ss3gL;g zg2D~#Kpdfu#G;q1qz_TwSz1VJT(b3zby$Vk&;Y#1(A)|xj`_?i5YQ;TR%jice5E;0 zYHg;`zS5{S*9xI6o^j>rE8Ua*XhIw{_-*&@(R|C(am8__>+Ws&Q^ymy*X4~hR2b5r zm^p3sw}yv=tdyncy_Ui7{BQS732et~Z_@{-IhHDXAV`(Wlay<#hb>%H%WDi+K$862nA@BDtM#UCKMu+kM`!JHyWSi?&)A7_ z3{cyNG%a~nnH_!+;g&JxEMAmh-Z}rC!o7>OVzW&PoMyTA_g{hqXG)SLraA^OP**<7 zjWbr7z!o2n3hnx7A=2O=WL;`@9N{vQIM@&|G-ljrPvIuJHYtss0Er0fT5cMXNUf1B z7FAwBDixt0X7C3S)mPe5g`YtME23wAnbU)+AtV}z+e8G;0BP=bI;?(#|Ep!vVfDbK zvx+|CKF>yt0hWQ3drchU#XBU+HiuG*V^snFAPUp-5<#R&BUAzoB!aZ+e*KIxa26V}s6?nBK(U-7REa573wg-jqCg>H8~>O{ z*C0JL-?X-k_y%hpUFL?I>0WV{oV`Nb)nZbJG01R~AG>flIJf)3O*oB2i8~;!P?Wo_ z0|QEB*fifiL6E6%>tlAYHm2cjTFE@*<);#>689Z6S#BySQ@VTMhf9vYQyLeDg1*F} zjq>i1*x>5|CGKN{l9br3kB0EHY|k4{%^t7-uhjd#NVipUZa=EUuE5kS1_~qYX?>hJ z$}!jc9$O$>J&wnu0SgfYods^z?J4X;X7c77Me0kS-dO_VUQ39T(Kv(Y#s}Qqz-0AH z^?WRL(4RzpkD+T5FG_0NyPq-a-B7A5LHOCqwObRJi&oRi(<;OuIN7SV5PeHU$<@Zh zPozEV`dYmu0Z&Tqd>t>8JVde9#Pt+l95iHe$4Xwfy1AhI zDM4XJ;bBTTvRFtW>E+GzkN)9k!hA5z;xUOL2 zq4}zn-DP{qc^i|Y%rvi|^5k-*8;JZ~9a;>-+q_EOX+p1Wz;>i7c}M6Nv`^NY&{J-> z`(mzDJDM}QPu5i44**2Qbo(XzZ-ZDu%6vm8w@DUarqXj41VqP~ zs&4Y8F^Waik3y1fQo`bVUH;b=!^QrWb)3Gl=QVKr+6sxc=ygauUG|cm?|X=;Q)kQ8 zM(xrICifa2p``I7>g2R~?a{hmw@{!NS5`VhH8+;cV(F>B94M*S;5#O`YzZH1Z%yD? zZ61w(M`#aS-*~Fj;x|J!KM|^o;MI#Xkh0ULJcA?o4u~f%Z^16ViA27FxU5GM*rKq( z7cS~MrZ=f>_OWx8j#-Q3%!aEU2hVuTu(7`TQk-Bi6*!<}0WQi;_FpO;fhpL4`DcWp zGOw9vx0N~6#}lz(r+dxIGZM3ah-8qrqMmeRh%{z@dbUD2w15*_4P?I~UZr^anP}DB zU9CCrNiy9I3~d#&!$DX9e?A});BjBtQ7oGAyoI$8YQrkLBIH@2;lt4E^)|d6Jwj}z z&2_E}Y;H#6I4<10d_&P0{4|EUacwFHauvrjAnAm6yeR#}f}Rk27CN)vhgRqEyPMMS7zvunj2?`f;%?alsJ+-K+IzjJx>h8 zu~m_y$!J5RWAh|C<6+uiCNsOKu)E72M3xKK(a9Okw3e_*O&}7llNV!=P87VM2DkAk zci!YXS2&=P0}Hx|wwSc9JP%m8dMJA*q&VFB0yMI@5vWoAGraygwn){R+Cj6B1a2Px z5)u(K5{+;z2n*_XD!+Auv#LJEM)(~Hx{$Yb^ldQmcYF2zNH1V30*)CN_|1$v2|`LnFUT$%-tO0Eg|c5$BB~yDfzS zcOXJ$wpzVK0MfTjBJ0b$r#_OvAJ3WRt+YOLlJPYMx~qp>^$$$h#bc|`g0pF-Ao43? z>*A+8lx>}L{p(Tni2Vvk)dtzg$hUKjSjXRagj)$h#8=KV>5s)J4vGtRn5kP|AXIz! zPgbbVxW{2o4s-UM;c#We8P&mPN|DW7_uLF!a|^0S=wr6Esx9Z$2|c1?GaupU6$tb| zY_KU`(_29O_%k(;>^|6*pZURH3`@%EuKS;Ns z1lujmf;r{qAN&Q0&m{wJSZ8MeE7RM5+Sq;ul_ z`+ADrd_Um+G37js6tKsArNB}n{p*zTUxQr>3@wA;{EUbjNjlNd6$Mx zg0|MyU)v`sa~tEY5$en7^PkC=S<2@!nEdG6L=h(vT__0F=S8Y&eM=hal#7eM(o^Lu z2?^;05&|CNliYrq6gUv;|i!(W{0N)LWd*@{2q*u)}u*> z7MQgk6t9OqqXMln?zoMAJcc zMKaof_Up})q#DzdF?w^%tTI7STI^@8=Wk#enR*)&%8yje>+tKvUYbW8UAPg55xb70 zEn5&Ba~NmOJlgI#iS8W3-@N%>V!#z-ZRwfPO1)dQdQkaHsiqG|~we2ALqG7Ruup(DqSOft2RFg_X%3w?6VqvV1uzX_@F(diNVp z4{I|}35=11u$;?|JFBEE*gb;T`dy+8gWJ9~pNsecrO`t#V9jW-6mnfO@ff9od}b(3s4>p0i30gbGIv~1@a^F2kl7YO;DxmF3? zWi-RoXhzRJV0&XE@ACc?+@6?)LQ2XNm4KfalMtsc%4!Fn0rl zpHTrHwR>t>7W?t!Yc{*-^xN%9P0cs0kr=`?bQ5T*oOo&VRRu+1chM!qj%2I!@+1XF z4GWJ=7ix9;Wa@xoZ0RP`NCWw0*8247Y4jIZ>GEW7zuoCFXl6xIvz$ezsWgKdVMBH> z{o!A7f;R-@eK9Vj7R40xx)T<2$?F2E<>Jy3F;;=Yt}WE59J!1WN367 zA^6pu_zLoZIf*x031CcwotS{L8bJE(<_F%j_KJ2P_IusaZXwN$&^t716W{M6X2r_~ zaiMwdISX7Y&Qi&Uh0upS3TyEIXNDICQlT5fHXC`aji-c{U(J@qh-mWl-uMN|T&435 z5)a1dvB|oe%b2mefc=Vpm0C%IUYYh7HI*;3UdgNIz}R##(#{(_>82|zB0L*1i4B5j-xi9O4x10rs_J6*gdRBX=@VJ+==sWb&_Qc6tSOowM{BX@(zawtjl zdU!F4OYw2@Tk1L^%~JCwb|e#3CC>srRHQ*(N%!7$Mu_sKh@|*XtR>)BmWw!;8-mq7 zBBnbjwx8Kyv|hd*`5}84flTHR1Y@@uqjG`UG+jN_YK&RYTt7DVwfEDXDW4U+iO{>K zw1hr{_XE*S*K9TzzUlJH2rh^hUm2v7_XjwTuYap|>zeEDY$HOq3X4Tz^X}E9z)x4F zs+T?Ed+Hj<#jY-`Va~fT2C$=qFT-5q$@p9~0{G&eeL~tiIAHXA!f6C(rAlS^)&k<- zXU|ZVs}XQ>s5iONo~t!XXZgtaP$Iau;JT%h)>}v54yut~pykaNye4axEK#5@?TSsQ zE;Jvf9I$GVb|S`7$pG)4vgo9NXsKr?u=F!GnA%VS2z$@Z(!MR9?EPcAqi5ft)Iz6sNl`%kj+_H-X`R<>BFrBW=fSlD|{`D%@Rcbu2?%>t7i34k?Ujb)2@J-`j#4 zLK<69qcUuniIan-$A1+fR=?@+thwDIXtF1Tks@Br-xY zfB+zblrR(ke`U;6U~-;p1Kg8Lh6v~LjW@9l2P6s+?$2!ZRPX`(ZkRGe7~q(4&gEi<$ch`5kQ?*1=GSqkeV z{SA1EaW_A!t{@^UY2D^YO0(H@+kFVzZaAh0_`A`f(}G~EP~?B|%gtxu&g%^x{EYSz zk+T;_c@d;+n@$<>V%P=nk36?L!}?*=vK4>nJSm+1%a}9UlmTJTrfX4{Lb7smNQn@T zw9p2%(Zjl^bWGo1;DuMHN(djsEm)P8mEC2sL@KyPjwD@d%QnZ$ zMJ3cnn!_!iP{MzWk%PI&D?m?C(y2d|2VChluN^yHya(b`h>~GkI1y;}O_E57zOs!{ zt2C@M$^PR2U#(dZmA-sNreB@z-yb0Bf7j*yONhZG=onhx>t4)RB`r6&TP$n zgmN*)eCqvgriBO-abHQ8ECN0bw?z5Bxpx z=jF@?zFdVn?@gD5egM4o$m`}lV(CWrOKKq(sv*`mNcHcvw&Xryfw<{ch{O&qc#WCTXX6=#{MV@q#iHYba!OUY+MGeNTjP%Fj!WgM&`&RlI^=AWTOqy-o zHo9YFt!gQ*p7{Fl86>#-JLZo(b^O`LdFK~OsZBRR@6P?ad^Ujbqm_j^XycM4ZHFyg ziUbIFW#2tj`65~#2V!4z7DM8Z;fG0|APaQ{a2VNYpNotB7eZ5kp+tPDz&Lqs0j%Y4tA*URpcfi z_M(FD=fRGdqf430j}1z`O0I=;tLu81bwJXdYiN7_&a-?ly|-j*+=--XGvCq#32Gh(=|qj5F?kmihk{%M&$}udW5)DHK zF_>}5R8&&API}o0osZJRL3n~>76nUZ&L&iy^s>PMnNcYZ|9*1$v-bzbT3rpWsJ+y{ zPrg>5Zlery96Um?lc6L|)}&{992{_$J&=4%nRp9BAC6!IB=A&=tF>r8S*O-=!G(_( zwXbX_rGZgeiK*&n5E;f=k{ktyA1(;x_kiMEt0*gpp_4&(twlS2e5C?NoD{n>X2AT# zY@Zp?#!b1zNq96MQqeO*M1MMBin5v#RH52&Xd~DO6-BZLnA6xO1$sou(YJ1Dlc{WF zVa%2DyYm`V#81jP@70IJ;DX@y*iUt$MLm)ByAD$eUuji|5{ptFYq(q)mE(5bOpxjM z^Q`AHWq44SG3`_LxC9fwR)XRVIp=B%<(-lOC3jI#bb@dK(*vjom!=t|#<@dZql%>O z15y^{4tQoeW9Lu%G&V$90x6F)xN6y_oIn;!Q zs)8jT$;&;u%Y>=T3hg34A-+Y*na=|glcStr5D;&5*t5*DmD~x;zQAV5{}Ya`?RRGa zT*t9@$a~!co;pD^!J5bo?lDOWFx%)Y=-fJ+PDGc0>;=q=s?P4aHForSB+)v0WY2JH z?*`O;RHum6j%#LG)Vu#ciO#+jRC3!>T(9fr+XE7T2B7Z|0nR5jw@WG)kDDzTJ=o4~ zUpeyt7}_nd`t}j9BKqryOha{34erm)RmST)_9Aw)@ zHbiyg5n&E{_CQR@h<}34d7WM{s{%5wdty1l+KX8*?+-YkNK2Be*6&jc>@{Fd;Ps|| z26LqdI3#9le?;}risDq$K5G3yoqK}C^@-8z^wj%tdgw-6@F#Ju{Sg7+y)L?)U$ez> zoOaP$UFZ?y5BiFycir*pnaAaY+|%1%8&|(@VB)zweR%?IidwJyK5J!STzw&2RFx zZV@qeaCB01Hu#U9|1#=Msc8Pgz5P*4Lrp!Q+~(G!OiNR{qa7|r^H?FC6gVhkk3y7=uW#Sh;&>78bZ}aK*C#NH$9rX@M3f{nckYI+5QG?Aj1DM)@~z_ zw!UAD@gedTlePB*%4+55naJ8ak_;))#S;4ji!LOqY5VRI){GMwHR~}6t4g>5C_#U# ztYC!tjKjrKvRy=GAsJVK++~$|+s!w9z3H4G^mACv=EErXNSmH7qN}%PKcN|8%9=i)qS5+$L zu&ya~HW%RMVJi4T^pv?>mw*Gf<)-7gf#Qj|e#w2|v4#t!%Jk{&xlf;$_?jW*n!Pyx zkG$<18kiLOAUPuFfyu-EfWX%4jYnjBYc~~*9JEz6oa)_R|8wjZA|RNrAp%}14L7fW zi7A5Wym*K+V8pkqqO-X#3ft{0qs?KVt^)?kS>AicmeO&q+~J~ zp0YJ_P~_a8j= zsAs~G=8F=M{4GZL{|B__UorX@MRNQLn?*_gym4aW(~+i13knnk1P=khoC-ViMZk+x zLW(l}oAg1H`dU+Fv**;qw|ANDSRs>cGqL!Yw^`; zv;{E&8CNJcc)GHzTYM}f&NPw<6j{C3gaeelU#y!M)w-utYEHOCCJo|Vgp7K6C_$14 zqIrLUB0bsgz^D%V%fbo2f9#yb#CntTX?55Xy|Kps&Xek*4_r=KDZ z+`TQuv|$l}MWLzA5Ay6Cvsa^7xvwXpy?`w(6vx4XJ zWuf1bVSb#U8{xlY4+wlZ$9jjPk)X_;NFMqdgq>m&W=!KtP+6NL57`AMljW+es zzqjUjgz;V*kktJI?!NOg^s_)ph45>4UDA!Vo0hn>KZ+h-3=?Y3*R=#!fOX zP$Y~+14$f66ix?UWB_6r#fMcC^~X4R-<&OD1CSDNuX~y^YwJ>sW0j`T<2+3F9>cLo z#!j57$ll2K9(%$4>eA7(>FJX5e)pR5&EZK!IMQzOfik#FU*o*LGz~7u(8}XzIQRy- z!U7AlMTIe|DgQFmc%cHy_9^{o`eD%ja_L>ckU6$O4*U**o5uR7`FzqkU8k4gxtI=o z^P^oGFPm5jwZMI{;nH}$?p@uV8FT4r=|#GziKXK07bHJLtK}X%I0TON$uj(iJ`SY^ zc$b2CoxCQ>7LH@nxcdW&_C#fMYBtTxcg46dL{vf%EFCZ~eErMvZq&Z%Lhumnkn^4A zsx$ay(FnN7kYah}tZ@0?-0Niroa~13`?hVi6`ndno`G+E8;$<6^gsE-K3)TxyoJ4M zb6pj5=I8^FD5H@`^V#Qb2^0cx7wUz&cruA5g>6>qR5)O^t1(-qqP&1g=qvY#s&{bx zq8Hc%LsbK1*%n|Y=FfojpE;w~)G0-X4i*K3{o|J7`krhIOd*c*$y{WIKz2n2*EXEH zT{oml3Th5k*vkswuFXdGDlcLj15Nec5pFfZ*0?XHaF_lVuiB%Pv&p7z)%38}%$Gup zVTa~C8=cw%6BKn_|4E?bPNW4PT7}jZQLhDJhvf4z;~L)506IE0 zX!tWXX(QOQPRj-p80QG79t8T2^az4Zp2hOHziQlvT!|H)jv{Ixodabzv6lBj)6WRB z{)Kg@$~~(7$-az?lw$4@L%I&DI0Lo)PEJJziWP33a3azb?jyXt1v0N>2kxwA6b%l> zZqRpAo)Npi&loWbjFWtEV)783BbeIAhqyuc+~>i7aQ8shIXt)bjCWT6$~ro^>99G} z2XfmT0(|l!)XJb^E!#3z4oEGIsL(xd; zYX1`1I(cG|u#4R4T&C|m*9KB1`UzKvho5R@1eYtUL9B72{i(ir&ls8g!pD ztR|25xGaF!4z5M+U@@lQf(12?xGy`!|3E}7pI$k`jOIFjiDr{tqf0va&3pOn6Pu)% z@xtG2zjYuJXrV)DUrIF*y<1O1<$#54kZ#2;=X51J^F#0nZ0(;S$OZDt_U2bx{RZ=Q zMMdd$fH|!s{ zXq#l;{`xfV`gp&C>A`WrQU?d{!Ey5(1u*VLJt>i27aZ-^&2IIk=zP5p+{$q(K?2(b z8?9h)kvj9SF!Dr zoyF}?V|9;6abHxWk2cEvGs$-}Pg}D+ZzgkaN&$Snp%;5m%zh1E#?Wac-}x?BYlGN#U#Mek*}kek#I9XaHt?mz3*fDrRTQ#&#~xyeqJk1QJ~E$7qsw6 z?sV;|?*=-{M<1+hXoj?@-$y+(^BJ1H~wQ9G8C0#^aEAyhDduNX@haoa=PuPp zYsGv8UBfQaRHgBgLjmP^eh>fLMeh{8ic)?xz?#3kX-D#Z{;W#cd_`9OMFIaJg-=t`_3*!YDgtNQ2+QUEAJB9M{~AvT$H`E)IKmCR21H532+ata8_i_MR@ z2Xj<3w<`isF~Ah$W{|9;51ub*f4#9ziKrOR&jM{x7I_7()O@`F*5o$KtZ?fxU~g`t zUovNEVKYn$U~VX8eR)qb`7;D8pn*Pp$(otYTqL)5KH$lUS-jf}PGBjy$weoceAcPp z&5ZYB$r&P$MN{0H0AxCe4Qmd3T%M*5d4i%#!nmBCN-WU-4m4Tjxn-%j3HagwTxCZ9 z)j5vO-C7%s%D!&UfO>bi2oXiCw<-w{vVTK^rVbv#W=WjdADJy8$khnU!`ZWCIU`># zyjc^1W~pcu>@lDZ{zr6gv%)2X4n27~Ve+cQqcND%0?IFSP4sH#yIaXXYAq^z3|cg` z`I3$m%jra>e2W-=DiD@84T!cb%||k)nPmEE09NC%@PS_OLhkrX*U!cgD*;;&gIaA(DyVT4QD+q_xu z>r`tg{hiGY&DvD-)B*h+YEd+Zn)WylQl}<4>(_NlsKXCRV;a)Rcw!wtelM2_rWX`j zTh5A|i6=2BA(iMCnj_fob@*eA;V?oa4Z1kRBGaU07O70fb6-qmA$Hg$ps@^ka1=RO zTbE_2#)1bndC3VuK@e!Sftxq4=Uux}fDxXE#Q5_x=E1h>T5`DPHz zbH<_OjWx$wy7=%0!mo*qH*7N4tySm+R0~(rbus`7;+wGh;C0O%x~fEMkt!eV>U$`i z5>Q(o z=t$gPjgGh0&I7KY#k50V7DJRX<%^X z>6+ebc9efB3@eE2Tr){;?_w`vhgF>`-GDY(YkR{9RH(MiCnyRtd!LxXJ75z+?2 zGi@m^+2hKJ5sB1@Xi@s_@p_Kwbc<*LQ_`mr^Y%j}(sV_$`J(?_FWP)4NW*BIL~sR>t6 zM;qTJZ~GoY36&{h-Pf}L#y2UtR}>ZaI%A6VkU>vG4~}9^i$5WP2Tj?Cc}5oQxe2=q z8BeLa$hwCg_psjZyC2+?yX4*hJ58Wu^w9}}7X*+i5Rjqu5^@GzXiw#SUir1G1`jY% zOL=GE_ENYxhcyUrEt9XlMNP6kx6h&%6^u3@zB8KUCAa18T(R2J`%JjWZ z!{7cXaEW+Qu*iJPu+m>QqW}Lo$4Z+!I)0JNzZ&_M%=|B1yejFRM04bGAvu{=lNPd+ zJRI^DRQ(?FcVUD+bgEcAi@o(msqys9RTCG#)TjI!9~3-dc`>gW;HSJuQvH~d`MQs86R$|SKXHh zqS9Qy)u;T`>>a!$LuaE2keJV%;8g)tr&Nnc;EkvA-RanHXsy)D@XN0a>h}z2j81R; zsUNJf&g&rKpuD0WD@=dDrPHdBoK42WoBU|nMo17o(5^;M|dB4?|FsAGVrSyWcI`+FVw^vTVC`y}f(BwJl zrw3Sp151^9=}B})6@H*i4-dIN_o^br+BkcLa^H56|^2XsT0dESw2 zMX>(KqNl=x2K5=zIKg}2JpGAZu{I_IO}0$EQ5P{4zol**PCt3F4`GX}2@vr8#Y)~J zKb)gJeHcFnR@4SSh%b;c%J`l=W*40UPjF#q{<}ywv-=vHRFmDjv)NtmC zQx9qm)d%0zH&qG7AFa3VAU1S^(n8VFTC~Hb+HjYMjX8r#&_0MzlNR*mnLH5hi}`@{ zK$8qiDDvS_(L9_2vHgzEQ${DYSE;DqB!g*jhJghE&=LTnbgl&Xepo<*uRtV{2wDHN z)l;Kg$TA>Y|K8Lc&LjWGj<+bp4Hiye_@BfU(y#nF{fpR&|Ltbye?e^j0}8JC4#xi% zv29ZR%8%hk=3ZDvO-@1u8KmQ@6p%E|dlHuy#H1&MiC<*$YdLkHmR#F3ae;bKd;@*i z2_VfELG=B}JMLCO-6UQy^>RDE%K4b>c%9ki`f~Z2Qu8hO7C#t%Aeg8E%+}6P7Twtg z-)dj(w}_zFK&86KR@q9MHicUAucLVshUdmz_2@32(V`y3`&Kf8Q2I)+!n0mR=rrDU zXvv^$ho;yh*kNqJ#r1}b0|i|xRUF6;lhx$M*uG3SNLUTC@|htC z-=fsw^F%$qqz4%QdjBrS+ov}Qv!z00E+JWas>p?z@=t!WWU3K*?Z(0meTuTOC7OTx zU|kFLE0bLZ+WGcL$u4E}5dB0g`h|uwv3=H6f+{5z9oLv-=Q45+n~V4WwgO=CabjM% zBAN+RjM65(-}>Q2V#i1Na@a0`08g&y;W#@sBiX6Tpy8r}*+{RnyGUT`?XeHSqo#|J z^ww~c;ou|iyzpErDtlVU=`8N7JSu>4M z_pr9=tX0edVn9B}YFO2y(88j#S{w%E8vVOpAboK*27a7e4Ekjt0)hIX99*1oE;vex z7#%jhY=bPijA=Ce@9rRO(Vl_vnd00!^TAc<+wVvRM9{;hP*rqEL_(RzfK$er_^SN; z)1a8vo8~Dr5?;0X0J62Cusw$A*c^Sx1)dom`-)Pl7hsW4i(r*^Mw`z5K>!2ixB_mu z*Ddqjh}zceRFdmuX1akM1$3>G=#~|y?eYv(e-`Qy?bRHIq=fMaN~fB zUa6I8Rt=)jnplP>yuS+P&PxeWpJ#1$F`iqRl|jF$WL_aZFZl@kLo&d$VJtu&w?Q0O zzuXK>6gmygq(yXJy0C1SL}T8AplK|AGNUOhzlGeK_oo|haD@)5PxF}rV+5`-w{Aag zus45t=FU*{LguJ11Sr-28EZkq;!mJO7AQGih1L4rEyUmp>B!%X0YemsrV3QFvlgt* z5kwlPzaiJ+kZ^PMd-RRbl(Y?F*m`4*UIhIuf#8q>H_M=fM*L_Op-<_r zBZagV=4B|EW+KTja?srADTZXCd3Yv%^Chfpi)cg{ED${SI>InNpRj5!euKv?=Xn92 zsS&FH(*w`qLIy$doc>RE&A5R?u zzkl1sxX|{*fLpXvIW>9d<$ePROttn3oc6R!sN{&Y+>Jr@yeQN$sFR z;w6A<2-0%UA?c8Qf;sX7>>uKRBv3Ni)E9pI{uVzX|6Bb0U)`lhLE3hK58ivfRs1}d zNjlGK0hdq0qjV@q1qI%ZFMLgcpWSY~mB^LK)4GZ^h_@H+3?dAe_a~k*;9P_d7%NEFP6+ zgV(oGr*?W(ql?6SQ~`lUsjLb%MbfC4V$)1E0Y_b|OIYxz4?O|!kRb?BGrgiH5+(>s zoqM}v*;OBfg-D1l`M6T6{K`LG+0dJ1)!??G5g(2*vlNkm%Q(MPABT$r13q?|+kL4- zf)Mi5r$sn;u41aK(K#!m+goyd$c!KPl~-&-({j#D4^7hQkV3W|&>l_b!}!z?4($OA z5IrkfuT#F&S1(`?modY&I40%gtroig{YMvF{K{>5u^I51k8RriGd${z)=5k2tG zM|&Bp5kDTfb#vfuTTd?)a=>bX=lokw^y9+2LS?kwHQIWI~pYgy7 zb?A-RKVm_vM5!9?C%qYdfRAw& zAU7`up~%g=p@}pg#b7E)BFYx3g%(J36Nw(Dij!b>cMl@CSNbrW!DBDbTD4OXk!G4x zi}JBKc8HBYx$J~31PXH+4^x|UxK~(<@I;^3pWN$E=sYma@JP|8YL`L(zI6Y#c%Q{6 z*APf`DU$S4pr#_!60BH$FGViP14iJmbrzSrOkR;f3YZa{#E7Wpd@^4E-zH8EgPc-# zKWFPvh%WbqU_%ZEt`=Q?odKHc7@SUmY{GK`?40VuL~o)bS|is$Hn=<=KGHOsEC5tB zFb|q}gGlL97NUf$G$>^1b^3E18PZ~Pm9kX%*ftnolljiEt@2#F2R5ah$zbXd%V_Ev zyDd{1o_uuoBga$fB@Fw!V5F3jIr=a-ykqrK?WWZ#a(bglI_-8pq74RK*KfQ z0~Dzus7_l;pMJYf>Bk`)`S8gF!To-BdMnVw5M-pyu+aCiC5dwNH|6fgRsIKZcF&)g zr}1|?VOp}I3)IR@m1&HX1~#wsS!4iYqES zK}4J{Ei>;e3>LB#Oly>EZkW14^@YmpbgxCDi#0RgdM${&wxR+LiX}B+iRioOB0(pDKpVEI;ND?wNx>%e|m{RsqR_{(nmQ z3ZS}@t!p4a(BKx_-CYwrcyJ5u1TO9bcXti$8sy>xcLKqKCc#~UOZYD{llKTSFEjJ~ zyNWt>tLU}*>^`TvPxtP%F`ZJQw@W0^>x;!^@?k_)9#bF$j0)S3;mH-IR5y82l|%=F z2lR8zhP?XNP-ucZZ6A+o$xOyF!w;RaLHGh57GZ|TCXhJqY~GCh)aXEV$1O&$c}La1 zjuJxkY9SM4av^Hb;i7efiYaMwI%jGy`3NdY)+mcJhF(3XEiSlU3c|jMBi|;m-c?~T z+x0_@;SxcoY=(6xNgO$bBt~Pj8`-<1S|;Bsjrzw3@zSjt^JC3X3*$HI79i~!$RmTz zsblZsLYs7L$|=1CB$8qS!tXrWs!F@BVuh?kN(PvE5Av-*r^iYu+L^j^m9JG^#=m>@ z=1soa)H*w6KzoR$B8mBCXoU;f5^bVuwQ3~2LKg!yxomG1#XPmn(?YH@E~_ED+W6mxs%x{%Z<$pW`~ON1~2XjP5v(0{C{+6Dm$00tsd3w=f=ZENy zOgb-=f}|Hb*LQ$YdWg<(u7x3`PKF)B7ZfZ6;1FrNM63 z?O6tE%EiU@6%rVuwIQjvGtOofZBGZT1Sh(xLIYt9c4VI8`!=UJd2BfLjdRI#SbVAX ziT(f*RI^T!IL5Ac>ql7uduF#nuCRJ1)2bdvAyMxp-5^Ww5p#X{rb5)(X|fEhDHHW{ zw(Lfc$g;+Q`B0AiPGtmK%*aWfQQ$d!*U<|-@n2HZvCWSiw^I>#vh+LyC;aaVWGbmkENr z&kl*8o^_FW$T?rDYLO1Pyi%>@&kJKQoH2E0F`HjcN}Zlnx1ddoDA>G4Xu_jyp6vuT zPvC}pT&Owx+qB`zUeR|4G;OH(<<^_bzkjln0k40t`PQxc$7h(T8Ya~X+9gDc8Z9{Z z&y0RAU}#_kQGrM;__MK9vwIwK^aoqFhk~dK!ARf1zJqHMxF2?7-8|~yoO@_~Ed;_wvT%Vs{9RK$6uUQ|&@#6vyBsFK9eZW1Ft#D2)VpQRwpR(;x^ zdoTgMqfF9iBl%{`QDv7B0~8{8`8k`C4@cbZAXBu00v#kYl!#_Wug{)2PwD5cNp?K^ z9+|d-4z|gZ!L{57>!Ogfbzchm>J1)Y%?NThxIS8frAw@z>Zb9v%3_3~F@<=LG%r*U zaTov}{{^z~SeX!qgSYow`_5)ij*QtGp4lvF`aIGQ>@3ZTkDmsl#@^5*NGjOuu82}o zzLF~Q9SW+mP=>88%eSA1W4_W7-Q>rdq^?t=m6}^tDPaBRGFLg%ak93W!kOp#EO{6& zP%}Iff5HZQ9VW$~+9r=|Quj#z*=YwcnssS~9|ub2>v|u1JXP47vZ1&L1O%Z1DsOrDfSIMHU{VT>&>H=9}G3i@2rP+rx@eU@uE8rJNec zij~#FmuEBj03F1~ct@C@$>y)zB+tVyjV3*n`mtAhIM0$58vM9jOQC}JJOem|EpwqeMuYPxu3sv}oMS?S#o6GGK@8PN59)m&K4Dc&X% z(;XL_kKeYkafzS3Wn5DD>Yiw{LACy_#jY4op(>9q>>-*9@C0M+=b#bknAWZ37^(Ij zq>H%<@>o4a#6NydoF{_M4i4zB_KG)#PSye9bk0Ou8h%1Dtl7Q_y#7*n%g)?m>xF~( zjqvOwC;*qvN_3(*a+w2|ao0D?@okOvg8JskUw(l7n`0fncglavwKd?~l_ryKJ^Ky! zKCHkIC-o7%fFvPa$)YNh022lakMar^dgL=t#@XLyNHHw!b?%WlM)R@^!)I!smZL@k zBi=6wE5)2v&!UNV(&)oOYW(6Qa!nUjDKKBf-~Da=#^HE4(@mWk)LPvhyN3i4goB$3K8iV7uh zsv+a?#c4&NWeK(3AH;ETrMOIFgu{_@%XRwCZ;L=^8Ts)hix4Pf3yJRQ<8xb^CkdmC z?c_gB)XmRsk`9ch#tx4*hO=#qS7={~Vb4*tTf<5P%*-XMfUUYkI9T1cEF;ObfxxI-yNuA=I$dCtz3ey znVkctYD*`fUuZ(57+^B*R=Q}~{1z#2!ca?)+YsRQb+lt^LmEvZt_`=j^wqig+wz@n@ z`LIMQJT3bxMzuKg8EGBU+Q-6cs5(@5W?N>JpZL{$9VF)veF`L5%DSYTNQEypW%6$u zm_~}T{HeHj1bAlKl8ii92l9~$dm=UM21kLemA&b$;^!wB7#IKWGnF$TVq!!lBlG4 z{?Rjz?P(uvid+|i$VH?`-C&Gcb3{(~Vpg`w+O);Wk1|Mrjxrht0GfRUnZqz2MhrXa zqgVC9nemD5)H$to=~hp)c=l9?#~Z_7i~=U-`FZxb-|TR9@YCxx;Zjo-WpMNOn2)z) zFPGGVl%3N$f`gp$gPnWC+f4(rmts%fidpo^BJx72zAd7|*Xi{2VXmbOm)1`w^tm9% znM=0Fg4bDxH5PxPEm{P3#A(mxqlM7SIARP?|2&+c7qmU8kP&iApzL|F>Dz)Ixp_`O zP%xrP1M6@oYhgo$ZWwrAsYLa4 z|I;DAvJxno9HkQrhLPQk-8}=De{9U3U%)dJ$955?_AOms!9gia%)0E$Mp}$+0er@< zq7J&_SzvShM?e%V?_zUu{niL@gt5UFOjFJUJ}L?$f%eU%jUSoujr{^O=?=^{19`ON zlRIy8Uo_nqcPa6@yyz`CM?pMJ^^SN^Fqtt`GQ8Q#W4kE7`V9^LT}j#pMChl!j#g#J zr-=CCaV%xyFeQ9SK+mG(cTwW*)xa(eK;_Z(jy)woZp~> zA(4}-&VH+TEeLzPTqw&FOoK(ZjD~m{KW05fiGLe@E3Z2`rLukIDahE*`u!ubU)9`o zn^-lyht#E#-dt~S>}4y$-mSbR8{T@}22cn^refuQ08NjLOv?JiEWjyOnzk<^R5%gO zhUH_B{oz~u#IYwVnUg8?3P*#DqD8#X;%q%HY**=I>>-S|!X*-!x1{^l#OnR56O>iD zc;i;KS+t$koh)E3)w0OjWJl_aW2;xF=9D9Kr>)(5}4FqUbk# zI#$N8o0w;IChL49m9CJTzoC!|u{Ljd%ECgBOf$}&jA^$(V#P#~)`&g`H8E{uv52pp zwto`xUL-L&WTAVREEm$0g_gYPL(^vHq(*t1WCH_6alhkeW&GCZ3hL)|{O-jiFOBrF z!EW=Jej|dqQitT6!B-7&io2K)WIm~Q)v@yq%U|VpV+I?{y0@Yd%n8~-NuuM*pM~KA z85YB};IS~M(c<}4Hxx>qRK0cdl&e?t253N%vefkgds>Ubn8X}j6Vpgs>a#nFq$osY z1ZRwLqFv=+BTb=i%D2Wv>_yE0z}+niZ4?rE|*a3d7^kndWGwnFqt+iZ(7+aln<}jzbAQ(#Z2SS}3S$%Bd}^ zc9ghB%O)Z_mTZMRC&H#)I#fiLuIkGa^`4e~9oM5zKPx?zjkC&Xy0~r{;S?FS%c7w< zWbMpzc(xSw?9tGxG~_l}Acq}zjt5ClaB7-!vzqnlrX;}$#+PyQ9oU)_DfePh2E1<7 ztok6g6K^k^DuHR*iJ?jw?bs_whk|bx`dxu^nC6#e{1*m~z1eq7m}Cf$*^Eua(oi_I zAL+3opNhJteu&mWQ@kQWPucmiP)4|nFG`b2tpC;h{-PI@`+h?9v=9mn|0R-n8#t=+Z*FD(c5 zjj79Jxkgck*DV=wpFgRZuwr%}KTm+dx?RT@aUHJdaX-ODh~gByS?WGx&czAkvkg;x zrf92l8$Or_zOwJVwh>5rB`Q5_5}ef6DjS*$x30nZbuO3dijS*wvNEqTY5p1_A0gWr znH<(Qvb!os14|R)n2Ost>jS2;d1zyLHu`Svm|&dZD+PpP{Bh>U&`Md;gRl64q;>{8MJJM$?UNUd`aC>BiLe>*{ zJY15->yW+<3rLgYeTruFDtk1ovU<$(_y7#HgUq>)r0{^}Xbth}V#6?%5jeFYt;SG^ z3qF)=uWRU;Jj)Q}cpY8-H+l_n$2$6{ZR?&*IGr{>ek!69ZH0ZoJ*Ji+ezzlJ^%qL3 zO5a`6gwFw(moEzqxh=yJ9M1FTn!eo&qD#y5AZXErHs%22?A+JmS&GIolml!)rZTnUDM3YgzYfT#;OXn)`PWv3Ta z!-i|-Wojv*k&bC}_JJDjiAK(Ba|YZgUI{f}TdEOFT2+}nPmttytw7j%@bQZDV1vvj z^rp{gRkCDmYJHGrE1~e~AE!-&6B6`7UxVQuvRrfdFkGX8H~SNP_X4EodVd;lXd^>eV1jN+Tt4}Rsn)R0LxBz0c=NXU|pUe!MQQFkGBWbR3&(jLm z%RSLc#p}5_dO{GD=DEFr=Fc% z85CBF>*t!6ugI?soX(*JNxBp+-DdZ4X0LldiK}+WWGvXV(C(Ht|!3$psR=&c*HIM=BmX;pRIpz@Ale{9dhGe(U2|Giv;# zOc|;?p67J=Q(kamB*aus=|XP|m{jN^6@V*Bpm?ye56Njh#vyJqE=DweC;?Rv7faX~ zde03n^I~0B2vUmr;w^X37tVxUK?4}ifsSH5_kpKZIzpYu0;Kv}SBGfI2AKNp+VN#z`nI{UNDRbo-wqa4NEls zICRJpu)??cj^*WcZ^MAv+;bDbh~gpN$1Cor<{Y2oyIDws^JsfW^5AL$azE(T0p&pP z1Mv~6Q44R&RHoH95&OuGx2srIr<@zYJTOMKiVs;Bx3py89I87LOb@%mr`0)#;7_~Z zzcZj8?w=)>%5@HoCHE_&hnu(n_yQ-L(~VjpjjkbT7e)Dk5??fApg(d>vwLRJ-x{um z*Nt?DqTSxh_MIyogY!vf1mU1`Gld-&L)*43f6dilz`Q@HEz;+>MDDYv9u!s;WXeao zUq=TaL$P*IFgJzrGc>j1dDOd zed+=ZBo?w4mr$2)Ya}?vedDopomhW1`#P<%YOJ_j=WwClX0xJH-f@s?^tmzs_j7t!k zK@j^zS0Q|mM4tVP5Ram$VbS6|YDY&y?Q1r1joe9dj08#CM{RSMTU}(RCh`hp_Rkl- zGd|Cv~G@F{DLhCizAm9AN!^{rNs8hu!G@8RpnGx7e`-+K$ffN<0qjR zGq^$dj_Tv!n*?zOSyk5skI7JVKJ)3jysnjIu-@VSzQiP8r6MzudCU=~?v-U8yzo^7 zGf~SUTvEp+S*!X9uX!sq=o}lH;r{pzk~M*VA(uyQ`3C8!{C;)&6)95fv(cK!%Cuz$ z_Zal57H6kPN>25KNiI6z6F)jzEkh#%OqU#-__Xzy)KyH};81#N6OfX$$IXWzOn`Q& z4f$Z1t>)8&8PcYfEwY5UadU1yg+U*(1m2ZlHoC-!2?gB!!fLhmTl))D@dhvkx#+Yj z1O=LV{(T%{^IeCuFK>%QR!VZ4GnO5tK8a+thWE zg4VytZrwcS?7^ zuZfhYnB8dwd%VLO?DK7pV5Wi<(`~DYqOXn8#jUIL^)12*Dbhk4GmL_E2`WX&iT16o zk(t|hok(Y|v-wzn?4x34T)|+SfZP>fiq!><*%vnxGN~ypST-FtC+@TPv*vYv@iU!_ z@2gf|PrgQ?Ktf*9^CnJ(x*CtZVB8!OBfg0%!wL;Z8(tYYre0vcnPGlyCc$V(Ipl*P z_(J!a=o@vp^%Efme!K74(Ke7A>Y}|sxV+JL^aYa{~m%5#$$+R1? zGaQhZTTX!#s#=Xtpegqero$RNt&`4xn3g$)=y*;=N=Qai)}~`xtxI_N*#MMCIq#HFifT zz(-*m;pVH&+4bixL&Bbg)W5FN^bH87pAHp)zPkWNMfTFqS=l~AC$3FX3kQUSh_C?-ZftyClgM)o_D7cX$RGlEYblux0jv5 zTr|i-I3@ZPCGheCl~BGhImF)K4!9@?pC(gi3ozX=a!|r1)LFxy_8c&wY0<^{2cm|P zv6Y`QktY*;I)IUd5y3ne1CqpVanlY45z8hf4&$EUBnucDj16pDa4&GI&TArYhf*xh zdj>*%APH8(h~c>o@l#%T>R$e>rwVx_WUB|~V`p^JHsg*y12lzj&zF}w6W09HwB2yb z%Q~`es&(;7#*DUC_w-Dmt7|$*?TA_m;zB+-u{2;Bg{O}nV7G_@7~<)Bv8fH^G$XG8$(&{A zwXJK5LRK%M34(t$&NI~MHT{UQ9qN-V_yn|%PqC81EIiSzmMM=2zb`mIwiP_b)x+2M z7Gd`83h79j#SItpQ}luuf2uOU`my_rY5T{6P#BNlb%h%<#MZb=m@y5aW;#o1^2Z)SWo+b`y0gV^iRcZtz5!-05vF z7wNo=hc6h4hc&s@uL^jqRvD6thVYtbErDK9k!;+a0xoE0WL7zLixjn5;$fXvT=O3I zT6jI&^A7k6R{&5#lVjz#8%_RiAa2{di{`kx79K+j72$H(!ass|B%@l%KeeKchYLe_ z>!(JC2fxsv>XVen+Y42GeYPxMWqm`6F$(E<6^s|g(slNk!lL*6v^W2>f6hh^mE$s= z3D$)}{V5(Qm&A6bp%2Q}*GZ5Qrf}n7*Hr51?bJOyA-?B4vg6y_EX<*-e20h{=0Mxs zbuQGZ$fLyO5v$nQ&^kuH+mNq9O#MWSfThtH|0q1i!NrWj^S}_P;Q1OkYLW6U^?_7G zx2wg?CULj7))QU(n{$0JE%1t2dWrMi2g-Os{v|8^wK{@qlj%+1b^?NI z$}l2tjp0g>K3O+p%yK<9!XqmQ?E9>z&(|^Pi~aSRwI5x$jaA62GFz9%fmO3t3a>cq zK8Xbv=5Ps~4mKN5+Eqw12(!PEyedFXv~VLxMB~HwT1Vfo51pQ#D8e$e4pFZ{&RC2P z5gTIzl{3!&(tor^BwZfR8j4k{7Rq#`riKXP2O-Bh66#WWK2w=z;iD9GLl+3 zpHIaI4#lQ&S-xBK8PiQ%dwOh?%BO~DCo06pN7<^dnZCN@NzY{_Z1>rrB0U|nC&+!2 z2y!oBcTd2;@lzyk(B=TkyZ)zy0deK05*Q0zk+o$@nun`VI1Er7pjq>8V zNmlW{p7S^Btgb(TA}jL(uR>`0w8gHP^T~Sh5Tkip^spk4SBAhC{TZU}_Z)UJw-}zm zPq{KBm!k)?P{`-(9?LFt&YN4s%SIZ-9lJ!Ws~B%exHOeVFk3~}HewnnH(d)qkLQ_d z6h>O)pEE{vbOVw}E+jdYC^wM+AAhaI(YAibUc@B#_mDss0Ji&BK{WG`4 zOk>vSNq(Bq2IB@s>>Rxm6Wv?h;ZXkpb1l8u|+_qXWdC*jjcPCixq;!%BVPSp#hP zqo`%cNf&YoQXHC$D=D45RiT|5ngPlh?0T~?lUf*O)){K@*Kbh?3RW1j9-T?%lDk@y z4+~?wKI%Y!-=O|_IuKz|=)F;V7ps=5@g)RrE;;tvM$gUhG>jHcw2Hr@fS+k^Zr~>G z^JvPrZc}_&d_kEsqAEMTMJw!!CBw)u&ZVzmq+ZworuaE&TT>$pYsd9|g9O^0orAe8 z221?Va!l1|Y5X1Y?{G7rt1sX#qFA^?RLG^VjoxPf63;AS=_mVDfGJKg73L zsGdnTUD40y(>S##2l|W2Cy!H(@@5KBa(#gs`vlz}Y~$ot5VsqPQ{{YtjYFvIumZzt zA{CcxZLJR|4#{j7k~Tu*jkwz8QA|5G1$Cl895R`Zyp;irp1{KN){kB30O8P1W5;@bG znvX74roeMmQlUi=v9Y%(wl$ZC#9tKNFpvi3!C}f1m6Ct|l2g%psc{TJp)@yu)*e2> z((p0Fg*8gJ!|3WZke9;Z{8}&NRkv7iP=#_y-F}x^y?2m%-D_aj^)f04%mneyjo_;) z6qc_Zu$q37d~X``*eP~Q>I2gg%rrV8v=kDfpp$=%Vj}hF)^dsSWygoN(A$g*E=Do6FX?&(@F#7pbiJ`;c0c@Ul zDqW_90Wm#5f2L<(Lf3)3TeXtI7nhYwRm(F;*r_G6K@OPW4H(Y3O5SjUzBC}u3d|eQ8*8d@?;zUPE+i#QNMn=r(ap?2SH@vo*m z3HJ%XuG_S6;QbWy-l%qU;8x;>z>4pMW7>R}J%QLf%@1BY(4f_1iixd-6GlO7Vp*yU zp{VU^3?s?90i=!#>H`lxT!q8rk>W_$2~kbpz7eV{3wR|8E=8**5?qn8#n`*(bt1xRQrdGxyx2y%B$qmw#>ZV$c7%cO#%JM1lY$Y0q?Yuo> ze9KdJoiM)RH*SB%^;TAdX-zEjA7@%y=!0=Zg%iWK7jVI9b&Dk}0$Af&08KHo+ zOwDhFvA(E|ER%a^cdh@^wLUlmIv6?_3=BvX8jKk92L=Y}7Jf5OGMfh` zBdR1wFCi-i5@`9km{isRb0O%TX+f~)KNaEz{rXQa89`YIF;EN&gN)cigu6mNh>?Cm zAO&Im2flv6D{jwm+y<%WsPe4!89n~KN|7}Cb{Z;XweER73r}Qp2 zz}WP4j}U0&(uD&9yGy6`!+_v-S(yG*iytsTR#x_Rc>=6u^vnRDnf1gP{#2>`ffrAC% zTZ5WQ@hAK;P;>kX{D)mIXe4%a5p=LO1xXH@8T?mz7Q@d)$3pL{{B!2{-v70L*o1AO+|n5beiw~ zk@(>m?T3{2k2c;NWc^`4@P&Z?BjxXJ@;x1qhn)9Mn*IFdt_J-dIqx5#d`NfyfX~m( zIS~5)MfZ2Uy?_4W`47i}u0ZgPh<{D|w_d#;D}Q&U$Q-G}xM1A@1f{#%A$jh6Qp&0hQ<0bPOM z-{1Wm&p%%#eb_?x7i;bol EfAhh=DF6Tf literal 0 HcmV?d00001 diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..642d572 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/mvnw b/mvnw new file mode 100644 index 0000000..a16b543 --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..c8d4337 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..c36beed --- /dev/null +++ b/pom.xml @@ -0,0 +1,228 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.4.RELEASE + + + com.codesdream + ase + 0.0.1-SNAPSHOT + ase + All Staff Education + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-web + + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + org.springframework.security + spring-security-test + test + + + + org.springframework.boot + spring-boot-devtools + true + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + commons-codec + commons-codec + 1.11 + + + + org.springframework + spring-test + 5.2.3.RELEASE + compile + + + + org.springframework.boot + spring-boot-test + + + + org.junit.jupiter + junit-jupiter-api + 5.5.2 + compile + + + + junit + junit + + + + org.springframework.boot + spring-boot-test-autoconfigure + + + + org.hsqldb + hsqldb + runtime + + + + org.projectlombok + lombok + 1.16.10 + + + + org.apache.poi + poi + 3.14 + + + + + org.apache.poi + poi-ooxml + 3.14 + + + + com.alibaba + fastjson + 1.2.61 + + + + com.alibaba + fastjson + 1.1.71.android + + + + org.mariadb.jdbc + mariadb-java-client + 2.5.4 + + + + + com.h2database + h2 + runtime + + + + + com.google.zxing + core + 3.2.0 + + + + com.google.zxing + javase + 3.2.0 + + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + + com.github.java-json-tools + json-patch + 1.12 + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + true + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + ${JAVA_HOME}/jre/lib/rt.jar + + + + + + + + + AlibabaMaven + Maven Aliyun Mirror + http://maven.aliyun.com/nexus/content/repositories/central/ + + true + + + false + + + + + diff --git a/src/main/java/com/codesdream/ase/AseApplication.java b/src/main/java/com/codesdream/ase/AseApplication.java new file mode 100644 index 0000000..9130640 --- /dev/null +++ b/src/main/java/com/codesdream/ase/AseApplication.java @@ -0,0 +1,13 @@ +package com.codesdream.ase; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class AseApplication { + + public static void main(String[] args) { + SpringApplication.run(AseApplication.class, args); + } + +} diff --git a/src/main/java/com/codesdream/ase/component/ASESpringUtil.java b/src/main/java/com/codesdream/ase/component/ASESpringUtil.java new file mode 100644 index 0000000..e4b44cf --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/ASESpringUtil.java @@ -0,0 +1,22 @@ +package com.codesdream.ase.component; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 手动获得Bean的工具类 + */ +@Component +public class ASESpringUtil { + @Resource + private ApplicationContext applicationContext; + + public T getBean(Class tClass){ + return applicationContext.getBean(tClass); + } + +} diff --git a/src/main/java/com/codesdream/ase/component/activity/ActivityConverter.java b/src/main/java/com/codesdream/ase/component/activity/ActivityConverter.java new file mode 100644 index 0000000..5d2783f --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/activity/ActivityConverter.java @@ -0,0 +1,178 @@ +package com.codesdream.ase.component.activity; + +import com.alibaba.fastjson.JSONObject; +import com.codesdream.ase.exception.innerservererror.DataInvalidFormatException; +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.activity.Attendance; +import com.codesdream.ase.model.activity.Period; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.service.ActivityService; +import com.codesdream.ase.service.AttendanceService; +import com.codesdream.ase.service.PeriodService; +import com.codesdream.ase.service.UserService; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +/** + * JSONObject-Activity转化类 + */ +@Component +public class ActivityConverter { + + @Resource + UserService userService; + + @Resource + PeriodService periodService; + + @Resource + AttendanceService attendanceService; + + /** + * @param json 一个Optional的json对象,用以转化为Activity对象,此过程中进行值的合法校验 + * @return 一个可以被直接存储在数据库中的合法的Activity对象 + */ + public Activity convertToActivity(Optional json) { + if (!json.isPresent()) { + throw new NullPointerException(); + } + Activity activity = new Activity(); + JSONObject jsonObject = json.get(); + + //设置活动创建人 + int userId = (int) jsonObject.get("creator"); + Optional creator = userService.findUserById(userId); + activity.setCreator(creator.get()); + + //设置参与人员 + List participateGroupFromJson = (List) jsonObject.get("participate-group"); + Set participateGroup = new HashSet<>(); + for (int id : participateGroupFromJson) { + Optional user = userService.findUserById(id); + participateGroup.add(user.get()); + } + activity.setParticipateGroup(participateGroup); + + //设置活动标题 + String title = (String) jsonObject.get("title"); + activity.setTitle(title); + + //设置主要负责人 + int chiefManagerId = (int) jsonObject.get("chief-manager"); + Optional chiefManager = userService.findUserById(chiefManagerId); + activity.setChiefManager(chiefManager.get()); + + //设置次要负责人 + List assistManagersFromJSON = (List) jsonObject.get("assist-managers"); + Set assistManager = new HashSet<>(); + for (int id : assistManagersFromJSON) { + Optional user = userService.findUserById(id); + assistManager.add(user.get()); + } + activity.setAssistManagers(assistManager); + + //设置活动类型 + String type = (String) jsonObject.get("type"); + activity.setType(type); + + //设置 + String startTimeFromJSON = (String) jsonObject.get("start-time"); + String endTimeFromJSON = (String) jsonObject.get("end-time"); + LocalDateTime startTime = LocalDateTime.parse(startTimeFromJSON, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime endTime = LocalDateTime.parse(endTimeFromJSON, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + Period period = new Period(startTime, endTime); + period.setEnabled(false); + period = periodService.save(period); + activity.setPlanPeriod(period); + + String cycle = (String) jsonObject.get("cycle"); + activity.setCycle(cycle); + + String description = (String) jsonObject.get("description"); + activity.setDescription(description); + + List signGroupFromJSON = (List) jsonObject.get("sign-group"); + Set signGroup = new HashSet<>(); + for (int id : signGroupFromJSON) { + Optional user = userService.findUserById(id); + signGroup.add(user.get()); + } + activity.setSignGroup(signGroup); + + List informGroupFromJSON = (List) jsonObject.get("inform-group"); + if (informGroupFromJSON == null) { + participateGroupFromJson.removeAll(signGroupFromJSON); + participateGroupFromJson.addAll(signGroupFromJSON); + informGroupFromJSON = participateGroupFromJson; + } + Set informGroup = new HashSet<>(); + for (int id : informGroupFromJSON) { + Optional user = userService.findUserById(id); + informGroup.add(user.get()); + } + activity.setInformGroup(informGroup); + + List visibleGroupFromJSON = (List) jsonObject.get("visible-group"); + Set visibleGroup = new HashSet<>(); + for (int id : visibleGroupFromJSON) { + Optional user = userService.findUserById(id); + visibleGroup.add(user.get()); + } + activity.setVisibleGroup(informGroup); + + String remindTimeFromJSON = (String) jsonObject.get("remind-time"); + String numStr = remindTimeFromJSON.substring(0, remindTimeFromJSON.length() - 1); + int num = Integer.parseInt(numStr); + char unit = remindTimeFromJSON.charAt(remindTimeFromJSON.length() - 1); + switch (unit) { + case 'w': { + activity.setRemindTime(activity.getPlanPeriod().getStartTime().minusWeeks(num)); + break; + } + case 'd': { + activity.setRemindTime(activity.getPlanPeriod().getStartTime().minusDays(num)); + break; + } + case 'm': { + activity.setRemindTime(activity.getPlanPeriod().getStartTime().minusMinutes(num)); + break; + } + case 'h': { + activity.setRemindTime(activity.getPlanPeriod().getStartTime().minusHours(num)); + break; + } + case 's': { + activity.setRemindTime(activity.getPlanPeriod().getStartTime().minusSeconds(num)); + } + } + + Set periods = new HashSet<>(); + String[] attendanceTimes = (String[]) jsonObject.get("attendance"); + boolean attendanceOnLine = (boolean) jsonObject.get("attendance-online"); + if ((attendanceTimes.length & 1) == 1) { + throw new DataInvalidFormatException(); + } + for (int i = 0; i < attendanceTimes.length; i += 2) { + LocalDateTime start = LocalDateTime.parse(attendanceTimes[i], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime end = LocalDateTime.parse(attendanceTimes[i + 1], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + Period period1 = new Period(start, end); + periods.add(period1); + } + Attendance attendance = new Attendance(); + attendance.setClockInPeriods(periods); + attendance.setOnline(attendanceOnLine); + + attendance = attendanceService.save(attendance); + activity.setAttendance(attendance); + + activity.setOn(false); + activity.setOff(false); + + return activity; + + } +} diff --git a/src/main/java/com/codesdream/ase/component/activity/CurrentUserGetter.java b/src/main/java/com/codesdream/ase/component/activity/CurrentUserGetter.java new file mode 100644 index 0000000..cfebcbc --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/activity/CurrentUserGetter.java @@ -0,0 +1,26 @@ +package com.codesdream.ase.component.activity; + +import com.codesdream.ase.component.ASESpringUtil; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.repository.permission.UserRepository; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.security.Principal; +import java.util.Optional; + +//获取当前用户的用户名 +@Component +public class CurrentUserGetter { + private Optional user; + public Optional getCurrentUser(HttpServletRequest request){ + + Principal principal = request.getUserPrincipal(); + String username = principal.getName(); + ASESpringUtil aseSpringUtil = new ASESpringUtil(); + UserRepository userRepository = aseSpringUtil.getBean(UserRepository.class); + this.user = userRepository.findByUsername(username); + return this.user; + } + +} diff --git a/src/main/java/com/codesdream/ase/component/activity/FileUtils.java b/src/main/java/com/codesdream/ase/component/activity/FileUtils.java new file mode 100644 index 0000000..656d3d2 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/activity/FileUtils.java @@ -0,0 +1,129 @@ +package com.codesdream.ase.component.activity; + +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageOutputStream; +import java.awt.image.BufferedImage; +import java.io.*; + +@Component +public class FileUtils { + /** + * 得到图片字节流 数组大小 + */ + public static byte[] readStream(InputStream inStream) throws Exception { + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int len = -1; + while ((len = inStream.read(buffer)) != -1) { + outStream.write(buffer, 0, len); + } + outStream.close(); + inStream.close(); + return outStream.toByteArray(); + } + + /** + * 将文件转换成Byte数组 + * + * @param file + * @return + */ + public static byte[] getBytesByFile(File file) { + try { + FileInputStream fis = new FileInputStream(file); + ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); + byte[] b = new byte[1000]; + int n; + while ((n = fis.read(b)) != -1) { + bos.write(b, 0, n); + } + fis.close(); + byte[] data = bos.toByteArray(); + bos.close(); + return data; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * MultipartFile转File + * + * @param param + * @return + */ + public static File transfer(MultipartFile param) { + if (!param.isEmpty()) { + File file = null; + try { + InputStream in = param.getInputStream(); + file = new File(param.getOriginalFilename()); + OutputStream out = new FileOutputStream(file); + int bytesRead = 0; + byte[] buffer = new byte[8192]; + while ((bytesRead = in.read(buffer, 0, 8192)) != -1) { + out.write(buffer, 0, bytesRead); + } + in.close(); + out.close(); + return file; + } catch (Exception e) { + e.printStackTrace(); + return file; + } + } + return null; + } + + /** + * 获取指定文件的输入流 + * + * @param logoPath 文件的路径 + * @return + */ + public static InputStream getResourceAsStream(String logoPath) { + return FileUtils.class.getResourceAsStream(logoPath); + } + + /** + * 将InputStream写入到File中 + * + * @param ins + * @param file + * @throws IOException + */ + public void inputStreamToFile(InputStream ins, File file) throws IOException { + OutputStream os = new FileOutputStream(file); + int bytesRead = 0; + byte[] buffer = new byte[8192]; + while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { + os.write(buffer, 0, bytesRead); + } + os.close(); + ins.close(); + } + + /** + * 将图片转化成输入流 + * + * @param image 图片 + * @return inputStream 图片转化之后的输入流 + */ + public static InputStream getImageStream(BufferedImage image) { + InputStream inputStream = null; + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + ImageOutputStream imageOutputStream; + try { + imageOutputStream = ImageIO.createImageOutputStream(byteArrayOutputStream); + ImageIO.write(image, "jpg", imageOutputStream); + inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + return inputStream; + } +} diff --git a/src/main/java/com/codesdream/ase/component/activity/NullValueAttributes.java b/src/main/java/com/codesdream/ase/component/activity/NullValueAttributes.java new file mode 100644 index 0000000..dcd93ea --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/activity/NullValueAttributes.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.component.activity; + +import lombok.Data; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Data +@Component +public class NullValueAttributes { + private List nullValueAttributes; +} diff --git a/src/main/java/com/codesdream/ase/component/activity/QrCodeUtils.java b/src/main/java/com/codesdream/ase/component/activity/QrCodeUtils.java new file mode 100644 index 0000000..e18de65 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/activity/QrCodeUtils.java @@ -0,0 +1,225 @@ +package com.codesdream.ase.component.activity; + +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.MultiFormatWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; +import org.springframework.stereotype.Component; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.geom.RoundRectangle2D; +import java.awt.image.BufferedImage; +import java.io.*; +import java.util.Hashtable; +import java.util.Random; + +/** + * 二维码生成工具类 + */ +@Component +public class QrCodeUtils { + private static final String CHARSET = "utf-8"; + public static final String FORMAT = "JPG"; + // 二维码尺寸 + private static final int QRCODE_SIZE = 300; + // LOGO宽度 + private static final int LOGO_WIDTH = 60; + // LOGO高度 + private static final int LOGO_HEIGHT = 60; + + /** + * 生成二维码 + * + * @param content 二维码内容 + * @param logoPath logo地址 + * @param needCompress 是否压缩logo + * @return 图片 + * @throws Exception + */ + public static BufferedImage createImage(String content, String logoPath, boolean needCompress) throws Exception { + Hashtable hints = new Hashtable<>(); + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); + hints.put(EncodeHintType.CHARACTER_SET, CHARSET); + hints.put(EncodeHintType.MARGIN, 1); + BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, + hints); + int width = bitMatrix.getWidth(); + int height = bitMatrix.getHeight(); + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); + } + } + if (logoPath == null || "".equals(logoPath)) { + return image; + } + // 插入图片 + QrCodeUtils.insertImage(image, logoPath, needCompress); + return image; + } + + /** + * 插入LOGO + * + * @param source 二维码图片 + * @param logoPath LOGO图片地址 + * @param needCompress 是否压缩 + * @throws IOException + */ + private static void insertImage(BufferedImage source, String logoPath, boolean needCompress) throws IOException { + InputStream inputStream = null; + try { + inputStream = FileUtils.getResourceAsStream(logoPath); + Image src = ImageIO.read(inputStream); + int width = src.getWidth(null); + int height = src.getHeight(null); + if (needCompress) { // 压缩LOGO + if (width > LOGO_WIDTH) { + width = LOGO_WIDTH; + } + if (height > LOGO_HEIGHT) { + height = LOGO_HEIGHT; + } + Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH); + BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + Graphics g = tag.getGraphics(); + g.drawImage(image, 0, 0, null); // 绘制缩小后的图 + g.dispose(); + src = image; + } + // 插入LOGO + Graphics2D graph = source.createGraphics(); + int x = (QRCODE_SIZE - width) / 2; + int y = (QRCODE_SIZE - height) / 2; + graph.drawImage(src, x, y, width, height, null); + Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6); + graph.setStroke(new BasicStroke(3f)); + graph.draw(shape); + graph.dispose(); + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException(e); + } finally { + if (inputStream != null) { + inputStream.close(); + } + } + } + + /** + * 生成二维码(内嵌LOGO) + * 二维码文件名随机,文件名可能会有重复 + * + * @param content 内容 + * @param logoPath LOGO地址 + * @param destPath 存放目录 + * @param needCompress 是否压缩LOGO + * @throws Exception + */ + public static String encode(String content, String logoPath, String destPath, boolean needCompress) throws Exception { + BufferedImage image = QrCodeUtils.createImage(content, logoPath, needCompress); + mkdirs(destPath); + String fileName = new Random().nextInt(99999999) + "." + FORMAT.toLowerCase(); + ImageIO.write(image, FORMAT, new File(destPath + "/" + fileName)); + return fileName; + } + + /** + * 生成二维码(内嵌LOGO) + * 调用者指定二维码文件名 + * + * @param content 内容 + * @param logoPath LOGO地址 + * @param destPath 存放目录 + * @param fileName 二维码文件名 + * @param needCompress 是否压缩LOGO + * @throws Exception + */ + public static String encode(String content, String logoPath, String destPath, String fileName, boolean needCompress) throws Exception { + BufferedImage image = QrCodeUtils.createImage(content, logoPath, needCompress); + mkdirs(destPath); + fileName = fileName.substring(0, fileName.indexOf(".") > 0 ? fileName.indexOf(".") : fileName.length()) + + "." + FORMAT.toLowerCase(); + ImageIO.write(image, FORMAT, new File(destPath + "/" + fileName)); + return fileName; + } + + /** + * 当文件夹不存在时,mkdirs会自动创建多层目录,区别于mkdir. + * (mkdir如果父目录不存在则会抛出异常) + * + * @param destPath 存放目录 + */ + public static void mkdirs(String destPath) { + File file = new File(destPath); + if (!file.exists() && !file.isDirectory()) { + file.mkdirs(); + } + } + + /** + * 生成二维码(内嵌LOGO) + * + * @param content 内容 + * @param logoPath LOGO地址 + * @param destPath 存储地址 + * @throws Exception + */ + public static String encode(String content, String logoPath, String destPath) throws Exception { + return QrCodeUtils.encode(content, logoPath, destPath, false); + } + + /** + * 生成二维码 + * + * @param content 内容 + * @param destPath 存储地址 + * @param needCompress 是否压缩LOGO + * @throws Exception + */ + public static String encode(String content, String destPath, boolean needCompress) throws Exception { + return QrCodeUtils.encode(content, null, destPath, needCompress); + } + + /** + * 生成二维码 + * + * @param content 内容 + * @param destPath 存储地址 + * @throws Exception + */ + public static String encode(String content, String destPath) throws Exception { + return QrCodeUtils.encode(content, null, destPath, false); + } + + /** + * 生成二维码(内嵌LOGO) + * + * @param content 内容 + * @param logoPath LOGO地址 + * @param output 输出流 + * @param needCompress 是否压缩LOGO + * @throws Exception + */ + public static void encode(String content, String logoPath, OutputStream output, boolean needCompress) + throws Exception { + BufferedImage image = QrCodeUtils.createImage(content, logoPath, needCompress); + ImageIO.write(image, FORMAT, output); + } + + /** + * 生成二维码 + * + * @param content 内容 + * @param output 输出流 + * @throws Exception + */ + public static void encode(String content, OutputStream output) throws Exception { + QrCodeUtils.encode(content, null, output, false); + } + + +} diff --git a/src/main/java/com/codesdream/ase/component/api/QuickJSONRespond.java b/src/main/java/com/codesdream/ase/component/api/QuickJSONRespond.java new file mode 100644 index 0000000..69d2db0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/api/QuickJSONRespond.java @@ -0,0 +1,128 @@ +package com.codesdream.ase.component.api; + +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.respond.JSONBaseRespondObject; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +@Component +public class QuickJSONRespond { + @Resource + private JSONParameter jsonParameter; + + // 根据对象构造获得标准的JSON响应字符串返回 + public String getJSONStandardRespond(Integer status, String msg, String info, Object dataObject){ + JSONBaseRespondObject respondObject = new JSONBaseRespondObject(status, msg); + if(info != null) respondObject.setInfo(info); + else respondObject.setInfo(null); + + respondObject.setData(dataObject); + return jsonParameter.getJSONString(respondObject); + } + + // 根据对象构造获得标准的JSON响应字符串返回 + public String getJSONStandardRespond(HttpStatus status, Object dataObject){ + JSONBaseRespondObject respondObject = new JSONBaseRespondObject(status.value(), status.getReasonPhrase()); + + respondObject.setData(dataObject); + return jsonParameter.getJSONString(respondObject); + } + + // 根据对象构造获得标准的JSON响应字符串返回 + public String getJSONStandardRespond(HttpStatus status, String info, Object dataObject){ + JSONBaseRespondObject respondObject = new JSONBaseRespondObject(status.value(), status.getReasonPhrase()); + if(info != null) respondObject.setInfo(info); + else respondObject.setInfo(null); + + respondObject.setData(dataObject); + return jsonParameter.getJSONString(respondObject); + } + + // 根据对象构造获得标准的JSON响应字符串返回 + public String getJSONStandardRespond(HttpStatus status, String info){ + JSONBaseRespondObject respondObject = new JSONBaseRespondObject(status.value(), status.getReasonPhrase()); + if(info != null) respondObject.setInfo(info); + else respondObject.setInfo(null); + + return jsonParameter.getJSONString(respondObject); + } + + // 获得标准的JSON响应字符串返回特定状态码的和解释息 + public String getJSONStandardRespond(Integer code, String msg, String info){ + JSONBaseRespondObject respondObject = new JSONBaseRespondObject(code, msg); + if(info != null) respondObject.setInfo(info); + else respondObject.setInfo(null); + respondObject.setData(null); + return jsonParameter.getJSONString(respondObject); + } + + // 获得标准的JSON响应字符串返回(404状态) + public String getRespond404(String info){ + return getJSONStandardRespond(HttpStatus.NOT_FOUND, info); + } + + // 获得标准的JSON响应字符串返回(404状态) + public String getRespond404(String info, Object object){ + return getJSONStandardRespond(HttpStatus.NOT_FOUND, info, object); + } + + // 获得标准的JSON响应字符串返回(500状态) + public String getRespond500(String info){ + return getJSONStandardRespond(HttpStatus.INTERNAL_SERVER_ERROR, info); + } + + // 获得标准的JSON响应字符串返回(200状态) + public String getRespond200(String info){ + return getJSONStandardRespond(HttpStatus.OK, info); + } + + // 获得标准的JSON响应字符串返回(200状态) + public String getRespond200(String info, Object object){ + return getJSONStandardRespond(HttpStatus.OK, info, object); + } + + // 获得标准的JSON响应字符串返回(403状态) + public String getRespond403(String info){ + return getJSONStandardRespond(HttpStatus.FORBIDDEN, info); + } + + // 获得标准的JSON响应字符串返回(406状态) + public String getRespond406(String info){ + return getJSONStandardRespond(HttpStatus.NOT_ACCEPTABLE, info); + } + + // 获得标准的JSON响应字符串返回(406状态) + public String getRespond406(String info, Object object){ + return getJSONStandardRespond(HttpStatus.NOT_ACCEPTABLE, info, object); + } + + // 获得标准的JSON响应字符串返回(501态) + public String getRespond501(String info){ + return getJSONStandardRespond(501, "Not Implemented", info) ; + } + + // 获得标准的JSON响应字符串返回(401状态) + public String getRespond401(String info){ + return getJSONStandardRespond(401, "Unauthorized", info); + } + + // 获得标准的JSON响应字符串返回(400状态) + public String getRespond400(String info){ + return getJSONStandardRespond(400, "Bad Request", info); + } + + // 获得标准的JSON响应字符串返回(404状态) + public String getRespond400(String info, Object object){ + return getJSONStandardRespond(400, "Bad Request", info, object); + } + + // 获得标准的JSON响应字符串返回(400状态) + public String getRespond409(String info){ + return getJSONStandardRespond(409, "Conflict", info); + } + + +} diff --git a/src/main/java/com/codesdream/ase/component/auth/AJAXRequestChecker.java b/src/main/java/com/codesdream/ase/component/auth/AJAXRequestChecker.java new file mode 100644 index 0000000..77c9bed --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/AJAXRequestChecker.java @@ -0,0 +1,14 @@ +package com.codesdream.ase.component.auth; + +import org.springframework.security.authentication.AuthenticationServiceException; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.Optional; + +@Component +public class AJAXRequestChecker { + public boolean checkAjaxPOSTRequest(HttpServletRequest request){ + return Optional.ofNullable(request.getHeader("X-Requested-With")).isPresent(); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEAccessDecisionManager.java b/src/main/java/com/codesdream/ase/component/auth/ASEAccessDecisionManager.java new file mode 100644 index 0000000..ae22d9e --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEAccessDecisionManager.java @@ -0,0 +1,42 @@ +package com.codesdream.ase.component.auth; + +import org.springframework.security.access.AccessDecisionManager; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.authentication.InsufficientAuthenticationException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.stereotype.Component; + +import java.util.Collection; +import java.util.Iterator; + +@Component +public class ASEAccessDecisionManager implements AccessDecisionManager { + @Override + public void decide(Authentication authentication, Object object, Collection configAttributes) throws AccessDeniedException, InsufficientAuthenticationException { + if(null == configAttributes || configAttributes.size() <= 0) { + return; + } + + for (ConfigAttribute c : configAttributes) { + String needRole = c.getAttribute(); + for (GrantedAuthority ga : authentication.getAuthorities()) { + if (needRole.trim().equals(ga.getAuthority())) { + return; + } + } + } + throw new AccessDeniedException("Access Denied"); + } + + @Override + public boolean supports(ConfigAttribute attribute) { + return true; + } + + @Override + public boolean supports(Class clazz) { + return true; + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEAccessDeniedHandler.java b/src/main/java/com/codesdream/ase/component/auth/ASEAccessDeniedHandler.java new file mode 100644 index 0000000..0c3350e --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEAccessDeniedHandler.java @@ -0,0 +1,33 @@ +package com.codesdream.ase.component.auth; + +import com.codesdream.ase.component.api.QuickJSONRespond; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.web.access.AccessDeniedHandler; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +// 认证用户访问无权限资源 +@Slf4j +@Component +public class ASEAccessDeniedHandler implements AccessDeniedHandler { + + @Resource + private QuickJSONRespond quickJSONRespond; + + @Override + public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) + throws IOException, ServletException { + log.info("ASEAccessDeniedHandler Found!"); + + // 对无权限操作返回403 + response.getWriter().print(quickJSONRespond.getRespond403(null)); + + + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationEntryPoint.java b/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationEntryPoint.java new file mode 100644 index 0000000..296cc2b --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationEntryPoint.java @@ -0,0 +1,29 @@ +package com.codesdream.ase.component.auth; + +import com.codesdream.ase.component.api.QuickJSONRespond; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +// 匿名用户访问无权限资源 +@Slf4j +@Component +public class ASEAuthenticationEntryPoint implements AuthenticationEntryPoint { + @Resource + private QuickJSONRespond quickJSONRespond; + + @Override + public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) + throws IOException { + + // 对匿名用户返回401 + response.getWriter().print(quickJSONRespond.getRespond401(null)); + + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationFailureHandler.java b/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationFailureHandler.java new file mode 100644 index 0000000..d90a784 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationFailureHandler.java @@ -0,0 +1,43 @@ +package com.codesdream.ase.component.auth; + +import com.codesdream.ase.component.api.QuickJSONRespond; +import com.codesdream.ase.component.json.respond.ErrorInfoJSONRespond; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Date; + +// 认证失败返回 +@Slf4j +@Component +public class ASEAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler { + + @Resource + private QuickJSONRespond quickJSONRespond; + + @Override + public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) + throws IOException + { + log.info("ASEAuthenticationFailureHandler Login Fail!"); + + // 填写异常信息存储对象 + ErrorInfoJSONRespond errorInfoJSONRespond = new ErrorInfoJSONRespond(); + errorInfoJSONRespond.setDate(new Date()); + errorInfoJSONRespond.setExceptionMessage(exception.getMessage()); + errorInfoJSONRespond.setException(exception.getClass().getSimpleName()); + + // 认证失败返回406 + response.getWriter().write(quickJSONRespond.getJSONStandardRespond( + 406, + "Not Acceptable", + "Authentication Failure", + errorInfoJSONRespond)); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationSuccessHandler.java b/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationSuccessHandler.java new file mode 100644 index 0000000..f73d445 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEAuthenticationSuccessHandler.java @@ -0,0 +1,60 @@ +package com.codesdream.ase.component.auth; + +import com.codesdream.ase.component.api.QuickJSONRespond; +import com.codesdream.ase.component.json.respond.UserLoginCheckerJSONRespond; +import com.codesdream.ase.model.permission.User; + +import com.codesdream.ase.service.IAuthService; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.security.core.Authentication; + +import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; + +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Optional; + +// 认证成功返回 +@Slf4j +@Component +public class ASEAuthenticationSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler { + @Resource + private QuickJSONRespond quickJSONRespond; + + @Resource + private IAuthService authService; + + @Override + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) + throws IOException, ServletException + { + + UserLoginCheckerJSONRespond respond = new UserLoginCheckerJSONRespond(); + respond.setUserExist(authentication.isAuthenticated()); + respond.setLoginStatus(authentication.isAuthenticated()); + respond.setPvc(authService.preValidationCodeGetter()); + + // 获得 JSONTokenAuthenticationToken + JSONTokenAuthenticationToken authenticationToken = (JSONTokenAuthenticationToken) authentication; + + User user = (User) authenticationToken.getPrincipal(); + + Optional tokenOptional = authService.userNewTokenGetter( + user.getUsername(), authenticationToken.getClientCode()); + + if(tokenOptional.isPresent()){ + respond.setToken(tokenOptional.get()); + } + else respond.setToken(""); + + // 认证成功返回200 + response.getWriter().write(quickJSONRespond.getRespond200("Authentication Success", respond)); + + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEInvocationSecurityMetadataSource.java b/src/main/java/com/codesdream/ase/component/auth/ASEInvocationSecurityMetadataSource.java new file mode 100644 index 0000000..3c1f359 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEInvocationSecurityMetadataSource.java @@ -0,0 +1,65 @@ +package com.codesdream.ase.component.auth; + +import com.codesdream.ase.model.permission.Function; +import com.codesdream.ase.repository.permission.FunctionRepository; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.access.SecurityConfig; +import org.springframework.security.web.FilterInvocation; +import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; + +@Component +public class ASEInvocationSecurityMetadataSource implements FilterInvocationSecurityMetadataSource { + + private HashMap> map = null; + + @Resource + private FunctionRepository functionRepository; + + private void loadFunctionDefine(){ + map = new HashMap<>(); + Iterable functions = functionRepository.findAll(); + for(Function function : functions) { + Collection array = new ArrayList<>(); + ConfigAttribute cfg = new SecurityConfig(function.getName()); + + array.add(cfg); + + map.put(function.getUrl(), array); + } + } + + @Override + public Collection getAttributes(Object object) throws IllegalArgumentException { + + if(map == null) loadFunctionDefine(); + + HttpServletRequest request = ((FilterInvocation) object).getHttpRequest(); + + for (String url : map.keySet()) { + AntPathRequestMatcher matcher = new AntPathRequestMatcher(url); + if (matcher.matches(request)) { + return map.get(url); + } + } + return null; + } + + @Override + public Collection getAllConfigAttributes() { + return null; + } + + @Override + public boolean supports(Class clazz) { + return true; + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEJSONTokenAuthenticationFilter.java b/src/main/java/com/codesdream/ase/component/auth/ASEJSONTokenAuthenticationFilter.java new file mode 100644 index 0000000..f7f54f2 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEJSONTokenAuthenticationFilter.java @@ -0,0 +1,114 @@ +package com.codesdream.ase.component.auth; + +import com.codesdream.ase.model.auth.JSONToken; +import com.codesdream.ase.service.AuthService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.annotation.Resource; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Collection; +import java.util.Date; +import java.util.Optional; + + +// API请求验证过滤 +@Slf4j +public class ASEJSONTokenAuthenticationFilter extends OncePerRequestFilter { + + @Resource + private JSONRandomCodeGenerator randomCodeGenerator; + + @Resource + private AuthService authService; + + @Resource + private JSONSignedGenerator signedGenerator; + + @Resource + private UserDetailsService userDetailsService; + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws ServletException, IOException { + + // 用户名 + String username = request.getHeader( "username"); + // 客户端签名 + String signed = request.getHeader("signed"); + // 时间戳 + String timestamp = request.getHeader("timestamp"); + + // 服务端API测试豁免签名 + if(signed != null && signed.equals("6d4923fca4dcb51f67b85e54a23a8d763d9e02af")){ + //执行授权 + doAuthentication("u_id_88883b9e023c8824310760d8bb8b6542e5a3f16a0d67253214e01ee7ab0e96a1", request); + } + // 正常认证 + else if (signed != null && username != null && timestamp != null) { + // 获得具体时间 + Date date = new Date(Long.parseLong(timestamp)); + + Date now = new Date(); + + // 限制时间戳有效区间为60s + long dtTime = 60*1000; + Date maxDate = new Date(now.getTime() + dtTime); + + // 检查时间戳是否合理 + if(maxDate.after(date)) { + // 从服务器中查找token + Optional optionalJSONToken = authService.findTokenByUserName(username); + if (optionalJSONToken.isPresent()) { + JSONToken token = optionalJSONToken.get(); + + // 检查token是否过期 + if (!authService.checkTokenIfExpired(token)) { + // 生成特征随机代码 + String randomCode = randomCodeGenerator.generateRandomCode(username, date, token.getClientCode()); + + log.info(String.format("Determined Signed: %s", + signedGenerator.generateSigned(username, randomCode, token.getToken()))); + + // 检查签名是否正确 + if (signed.equals(signedGenerator.generateSigned(username, randomCode, token.getToken()))) { + // 执行授权操作 + doAuthentication(username, request); + } + } + } + } + } + + filterChain.doFilter(request, response); + + } + + // 执行授权 + private void doAuthentication(String username, HttpServletRequest request){ + // 查询用户的相关信息 + UserDetails user = userDetailsService.loadUserByUsername(username); + + // 生成用户权限列表 + Collection authorities = user.getAuthorities(); + + // 生成授权柄 (储存上下文信息) + JSONTokenAuthenticationToken authentication = + new JSONTokenAuthenticationToken(user, null, authorities); + + authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); + + // 执行授权 + SecurityContextHolder.getContext().setAuthentication(authentication); + } + +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEPasswordEncoder.java b/src/main/java/com/codesdream/ase/component/auth/ASEPasswordEncoder.java new file mode 100644 index 0000000..95c66c4 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEPasswordEncoder.java @@ -0,0 +1,18 @@ +package com.codesdream.ase.component.auth; + +import org.apache.commons.codec.digest.DigestUtils; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Component; + +@Component +public class ASEPasswordEncoder implements PasswordEncoder { + @Override + public String encode(CharSequence charSequence) { + return DigestUtils.sha256Hex(charSequence.toString()); + } + + @Override + public boolean matches(CharSequence charSequence, String s) { + return s.equals(DigestUtils.sha256Hex(charSequence.toString())); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASESecurityAuthenticationProvider.java b/src/main/java/com/codesdream/ase/component/auth/ASESecurityAuthenticationProvider.java new file mode 100644 index 0000000..fc70128 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASESecurityAuthenticationProvider.java @@ -0,0 +1,77 @@ +package com.codesdream.ase.component.auth; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.authentication.*; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Collection; + +// 普通用户名密码验证, 用户获得Token +@Slf4j +@Component +public class ASESecurityAuthenticationProvider implements AuthenticationProvider { + @Resource + UserDetailsService userDetailsService; + + @Resource + ASEUsernameEncoder usernameEncoder; + + @Resource + PasswordEncoder passwordEncoder; + + @Override + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + JSONTokenUsernamePasswordAuthenticationToken authenticationToken = + (JSONTokenUsernamePasswordAuthenticationToken) authentication; + + // 获得JSON中的学号 + String username = usernameEncoder.encode((CharSequence) authenticationToken.getPrincipal()); + // 获得JSON中的加密密码 + String encrypted_password = (String) authenticationToken.getCredentials(); + // 获得客户端代码 + String clientCode = authenticationToken.getClientCode(); + // 判断用户是否存在 + UserDetails userInfo = userDetailsService.loadUserByUsername(username); + + if (userInfo == null) { + throw new UsernameNotFoundException("User Not Exist"); + } + + String sha256_password = userInfo.getPassword(); + + // 判断密码是否正确 + if(!passwordEncoder.encode(String.format( + "PASS_ENCODE [%s][%s]", sha256_password, clientCode)).equals(encrypted_password)){ + throw new BadCredentialsException("Password IS INCORRECT"); + } + + // 判断账号是否停用/删除 + if (!userInfo.isEnabled()) { + throw new DisabledException("User IS Disabled"); + } + else if(!userInfo.isAccountNonLocked()) { + throw new LockedException("User IS Locked"); + } + else if(!userInfo.isAccountNonExpired()) { + throw new AccountExpiredException("User IS Expired"); + } + + // 生成权限列表 + Collection authorities = userInfo.getAuthorities(); + + return new JSONTokenAuthenticationToken(userInfo, clientCode, authorities); + } + + @Override + public boolean supports(Class aClass) { + return aClass.equals(JSONTokenUsernamePasswordAuthenticationToken.class); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASESecurityInterceptor.java b/src/main/java/com/codesdream/ase/component/auth/ASESecurityInterceptor.java new file mode 100644 index 0000000..f8ea470 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASESecurityInterceptor.java @@ -0,0 +1,62 @@ +package com.codesdream.ase.component.auth; + +import javax.annotation.Resource; +import javax.servlet.*; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.SecurityMetadataSource; +import org.springframework.security.access.intercept.AbstractSecurityInterceptor; +import org.springframework.security.access.intercept.InterceptorStatusToken; +import org.springframework.security.web.FilterInvocation; +import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +@Component +public class ASESecurityInterceptor extends AbstractSecurityInterceptor implements Filter { + + @Resource + private FilterInvocationSecurityMetadataSource securityMetadataSource; + + @Resource + public void setASEAccessDecisionManager(ASEAccessDecisionManager accessDecisionManager) { + super.setAccessDecisionManager(accessDecisionManager); + } + + @Override + public Class getSecureObjectClass() { + return FilterInvocation.class; + } + + @Override + public SecurityMetadataSource obtainSecurityMetadataSource() { + return this.securityMetadataSource; + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + FilterInvocation fi = new FilterInvocation(request, response, chain); + invoke(fi); + } + + public void invoke(FilterInvocation fi) throws IOException, ServletException { + InterceptorStatusToken token = super.beforeInvocation(fi); + try { + //执行下一个拦截器 + fi.getChain().doFilter(fi.getRequest(), fi.getResponse()); + } finally { + super.afterInvocation(token, null); + } + } + + @Override + public void destroy() { + + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEUsernameEncoder.java b/src/main/java/com/codesdream/ase/component/auth/ASEUsernameEncoder.java new file mode 100644 index 0000000..c4dc157 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEUsernameEncoder.java @@ -0,0 +1,15 @@ +package com.codesdream.ase.component.auth; + +import org.apache.commons.codec.digest.DigestUtils; +import org.springframework.stereotype.Component; + +@Component +public class ASEUsernameEncoder { + public String encode(CharSequence charSequence){ + return "u_id_" + DigestUtils.sha256Hex(charSequence.toString()); + } + + public boolean matches(CharSequence charSequence, String s){ + return s.equals(encode(charSequence.toString())); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/ASEUsernamePasswordAuthenticationFilter.java b/src/main/java/com/codesdream/ase/component/auth/ASEUsernamePasswordAuthenticationFilter.java new file mode 100644 index 0000000..3297622 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/ASEUsernamePasswordAuthenticationFilter.java @@ -0,0 +1,85 @@ +package com.codesdream.ase.component.auth; + +import com.codesdream.ase.component.auth.AJAXRequestChecker; +import com.codesdream.ase.component.auth.JSONTokenUsernamePasswordAuthenticationToken; +import com.codesdream.ase.component.auth.TimestampExpiredChecker; +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.request.UserLoginChecker; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.authentication.AuthenticationServiceException; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Optional; + +// 普通登录验证过滤器 +@Slf4j +public class ASEUsernamePasswordAuthenticationFilter extends UsernamePasswordAuthenticationFilter { + + @Resource + private JSONParameter jsonParameter; + + @Resource + private AJAXRequestChecker ajaxRequestChecker; + + @Resource + private TimestampExpiredChecker timestampExpiredChecker; + + @Override + public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) + throws AuthenticationException { + + String timestamp = request.getHeader("timestamp"); + + // 检查时间戳是否合理(60秒内) + if(timestamp == null || !timestampExpiredChecker.checkTimestampBeforeMaxTime(timestamp, 60)){ + throw new AuthenticationServiceException("Timestamp Expired."); + } + + // 判断是否为AJAX请求格式的数据 + if(!ajaxRequestChecker.checkAjaxPOSTRequest(request)) { + throw new AuthenticationServiceException("Authentication method not supported: NOT Ajax Method."); + } + + Optional checkerOptional = jsonParameter.getJavaObjectByRequest(request, UserLoginChecker.class); + if(!checkerOptional.isPresent()) throw new BadCredentialsException("Invalid AJAX JSON Request"); + + UserLoginChecker checker = checkerOptional.get(); + + if(checker.getUsername() == null + || checker.getPassword() == null + || checker.getClientCode() == null + || checker.getCheckType() == null) + throw new AuthenticationServiceException("Request Data IS Incomplete"); + + if (!checker.getCheckType().equals("UsernamePasswordChecker")) + throw new AuthenticationServiceException("Authentication not supported: NOT Username Password Type."); + + // 获得相应的用户名密码 + String username = checker.getUsername(); + // 得到加密密码 + String password = checker.getPassword(); + String clientCode = checker.getClientCode(); + + if (username == null) username = ""; + if (password == null) password = ""; + + // 去除首尾两端的空白字符 + username = username.trim(); + password = password.trim(); + + + JSONTokenUsernamePasswordAuthenticationToken authRequest = + new JSONTokenUsernamePasswordAuthenticationToken(username, password, clientCode); + + authRequest.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); + + return this.getAuthenticationManager().authenticate(authRequest); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/AuthTokenGenerator.java b/src/main/java/com/codesdream/ase/component/auth/AuthTokenGenerator.java new file mode 100644 index 0000000..8977670 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/AuthTokenGenerator.java @@ -0,0 +1,19 @@ +package com.codesdream.ase.component.auth; + +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.UUID; + +@Component +public class AuthTokenGenerator { + @Resource + private SHA1Encoder encoder; + + public String generateAuthToken(String username){ + Date dateNow = new Date(); + UUID uuid = UUID.randomUUID(); + return encoder.encode(String.format("Token [%s][%d][%s]",username,dateNow.getTime(), uuid.toString())); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/JSONRandomCodeGenerator.java b/src/main/java/com/codesdream/ase/component/auth/JSONRandomCodeGenerator.java new file mode 100644 index 0000000..fe2ce6c --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/JSONRandomCodeGenerator.java @@ -0,0 +1,19 @@ +package com.codesdream.ase.component.auth; + +import com.alibaba.fastjson.JSONObject; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; + +// 随机特征码生成器 +@Component +public class JSONRandomCodeGenerator { + @Resource + private SHA1Encoder encoder; + + public String generateRandomCode(String username, Date date, String clientCode){ + return encoder.encode(String.format("RandomCode [%s][%s][%s]", + username, Long.toString(date.getTime()), clientCode)); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/JSONSignedGenerator.java b/src/main/java/com/codesdream/ase/component/auth/JSONSignedGenerator.java new file mode 100644 index 0000000..b67a76c --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/JSONSignedGenerator.java @@ -0,0 +1,16 @@ +package com.codesdream.ase.component.auth; + +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +// 用来给JSON生成签名 +@Component +public class JSONSignedGenerator { + @Resource + SHA1Encoder encoder; + + public String generateSigned(String username, String randomCode, String token){ + return encoder.encode(String.format("SIGN [%s][%s][%s]",username, randomCode, token)); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/JSONTokenAuthenticationToken.java b/src/main/java/com/codesdream/ase/component/auth/JSONTokenAuthenticationToken.java new file mode 100644 index 0000000..92bf5f9 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/JSONTokenAuthenticationToken.java @@ -0,0 +1,62 @@ +package com.codesdream.ase.component.auth; + + +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; + +// 关联Token与其他用户的相关数据的授权柄 +public class JSONTokenAuthenticationToken extends AbstractAuthenticationToken { + // 客户端签名 + private String signed = null; + // 用户名 + private Object principal = null; + // 客户端代码 + private String clientCode = null; + + + /** + * Creates a token with the supplied array of authorities. + * + * @param authorities the collection of GrantedAuthoritys for the principal + * represented by this authentication object. + */ + public JSONTokenAuthenticationToken(UserDetails principal, + String clientCode, + Collection authorities) + { + super(authorities); + this.principal = principal; + this.clientCode = clientCode; + this.signed = null; + setAuthenticated(true); + } + + public JSONTokenAuthenticationToken(String principal, String clientCode, String signed) { + super(null); + this.principal = principal; + this.clientCode = clientCode; + this.signed = signed; + setAuthenticated(false); + } + + @Override + public String getCredentials() { + return signed; + } + + @Override + public Object getPrincipal() { + return principal; + } + + public String getClientCode() { + return clientCode; + } + + public void setClientCode(String clientCode) { + this.clientCode = clientCode; + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/JSONTokenUsernamePasswordAuthenticationToken.java b/src/main/java/com/codesdream/ase/component/auth/JSONTokenUsernamePasswordAuthenticationToken.java new file mode 100644 index 0000000..14cc5fd --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/JSONTokenUsernamePasswordAuthenticationToken.java @@ -0,0 +1,38 @@ +package com.codesdream.ase.component.auth; + +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; + +import java.util.Collection; + +// 明文用户名密码验证授权柄 +public class JSONTokenUsernamePasswordAuthenticationToken extends AbstractAuthenticationToken { + // 用户名 + private String username = null; + // 明文密码 + private String password = null; + // 授权柄 + private String clientCode = null; + + public JSONTokenUsernamePasswordAuthenticationToken(String username, String password, String clientCode) { + super(null); + this.username = username; + this.password = password; + this.clientCode = clientCode; + setAuthenticated(false); + } + + @Override + public Object getCredentials() { + return password; + } + + @Override + public Object getPrincipal() { + return username; + } + // 扩展接口 获得客户端代码 + public String getClientCode() { + return clientCode; + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/SHA1Encoder.java b/src/main/java/com/codesdream/ase/component/auth/SHA1Encoder.java new file mode 100644 index 0000000..9216ab9 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/SHA1Encoder.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.component.auth; + +import org.apache.commons.codec.cli.Digest; +import org.apache.commons.codec.digest.DigestUtils; +import org.springframework.stereotype.Component; + +// SHA1算法不可逆加密 主要用于JSON签名 +@Component +public class SHA1Encoder { + public String encode(CharSequence charSequence){ + return DigestUtils.sha1Hex(charSequence.toString()); + } + + public boolean match (CharSequence charSequence, String s){ + return s.equals(encode(charSequence)); + } +} diff --git a/src/main/java/com/codesdream/ase/component/auth/TimestampExpiredChecker.java b/src/main/java/com/codesdream/ase/component/auth/TimestampExpiredChecker.java new file mode 100644 index 0000000..667d801 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/auth/TimestampExpiredChecker.java @@ -0,0 +1,24 @@ +package com.codesdream.ase.component.auth; + +import org.springframework.stereotype.Component; + +import java.util.Date; + +// 验证时间戳是否有效 +@Component +public class TimestampExpiredChecker { + + public boolean checkTimestampBeforeMaxTime(String timestamp, int seconds){ + Date timestampDate = new Date(Long.parseLong(timestamp)); + long currentTime = System.currentTimeMillis(); + Date maxDate = new Date(currentTime + seconds * 1000); + return timestampDate.before(maxDate); + } + + public boolean checkDateBeforeMaxTime(Date date, int seconds){ + long currentTime = System.currentTimeMillis(); + Date maxDate = new Date(currentTime + seconds * 1000); + return date.before(maxDate); + } + +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataExcelGenerator.java b/src/main/java/com/codesdream/ase/component/datamanager/DataExcelGenerator.java new file mode 100644 index 0000000..c11d01b --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataExcelGenerator.java @@ -0,0 +1,84 @@ +package com.codesdream.ase.component.datamanager; + +import com.codesdream.ase.exception.notfound.DataFileNotFoundException; +import com.codesdream.ase.exception.innerservererror.DataIOException; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 利用数据生成Excel文件 + */ +public class DataExcelGenerator implements DataGenerator { + Workbook workbook = new XSSFWorkbook(); + + Sheet sheet; + Integer colNumber; + String path; + + public DataExcelGenerator(String path) { + sheet = workbook.createSheet("Data"); + this.path = path; + } + + public void setTableTitle(Collection titles){ + Row sheetRow = sheet.createRow(0); + int idx = 0; + for(String title : titles){ + sheetRow.createCell(idx).setCellValue(title); + idx++; + } + colNumber = titles.size(); + } + + public void insertRow(int rowIndex, Collection dataCollection){ + Row row = sheet.createRow(rowIndex); + int idx = 0; + for(String data : dataCollection){ + // 限制表头与表体的数据数目 + if(idx >= colNumber) break; + row.createCell(idx).setCellValue(data); + idx++; + } + } + + public void insertRow(Collection dataCollection){ + insertRow(sheet.getLastRowNum() + 1, dataCollection); + + } + + public void insertRowDataALL(Collection dataCollections){ + int cellIdx = 0; + Collection dataCollection = new ArrayList<>(); + for(String dataCollectionItem :dataCollections){ + dataCollection.add(dataCollectionItem); + cellIdx++; + if(cellIdx % colNumber == 0) { + insertRow(dataCollection); + dataCollection.clear(); + cellIdx = 0; + } + + } + } + + + public void save() { + try { + FileOutputStream stream = new FileOutputStream(path, false); + workbook.write(stream); + stream.close(); + } catch (FileNotFoundException e) { + throw new DataFileNotFoundException(path); + } catch (IOException e) { + throw new DataIOException(); + } + } +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataExcelReader.java b/src/main/java/com/codesdream/ase/component/datamanager/DataExcelReader.java new file mode 100644 index 0000000..794f8c3 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataExcelReader.java @@ -0,0 +1,123 @@ +package com.codesdream.ase.component.datamanager; + + +import com.codesdream.ase.exception.*; +import com.codesdream.ase.exception.innerservererror.DataIOException; +import com.codesdream.ase.exception.innerservererror.DataIllegalTableFormatException; +import com.codesdream.ase.exception.innerservererror.DataInvalidFormatException; +import com.codesdream.ase.exception.notfound.DataFileNotFoundException; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.ss.usermodel.*; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 读取简单表格式的Excel文件 + */ +public class DataExcelReader implements DataReader { + Workbook workbook = null; + Sheet sheet = null; + short colNumber = 0; + int rowNumberNow = 0; + String path; + boolean hasReadFile = false; + + public DataExcelReader(String path){ + this.path = path; + readFile(); + } + + public void readFile(){ + if(hasReadFile) return; + try{ + FileInputStream fileInputStream = new FileInputStream(path); + workbook = WorkbookFactory.create(fileInputStream); + sheet = workbook.getSheetAt(0); + fileInputStream.close(); + } catch (FileNotFoundException e) { + throw new DataFileNotFoundException(path); + } catch (InvalidFormatException e) { + throw new DataInvalidFormatException(e); + } catch (IOException e) { + throw new DataIOException(); + } + } + + public Collection readColsTitle(){ + Row titleRow = sheet.getRow(0); + colNumber = titleRow.getLastCellNum(); + // 表头项目个数不可为0 + if(colNumber == 0) throw new DataIllegalTableFormatException(); + Collection title = new ArrayList<>(); + for(int cellIdx = 0; cellIdx < colNumber; cellIdx++){ + title.add(readCell(titleRow.getCell(cellIdx))); + } + return title; + } + + public Collection readRow(int idx){ + // 检查是否获取表头数据 + if(this.colNumber == 0) readColsTitle(); + if(idx > getRowsSize()) throw new DataReaderRowIndexOutOfRangeException(); + this.rowNumberNow = idx; + Collection data = new ArrayList<>(); + Row dataRow = sheet.getRow(rowNumberNow); + // 检查列数是否合适 + if(dataRow.getLastCellNum() > colNumber) throw new DataIllegalTableFormatException(); + for(int cellIdx = 0; cellIdx < colNumber; cellIdx++){ + data.add(readCell(dataRow.getCell(cellIdx))); + } + return data; + } + + @Override + public int getRowsSize() { + return lastDataRowIndex() - firstDataRowIndex(); + } + + @Override + public int firstDataRowIndex() { + return 1; + } + + @Override + public int lastDataRowIndex() { + return sheet.getLastRowNum(); + } + + public Collection readRow(){ + if(rowNumberNow >= getRowsSize()) return null; + return readRow(rowNumberNow + 1); + } + + private String readCell(Cell cell){ + String cellValue = ""; + switch (cell.getCellType()) { + case Cell.CELL_TYPE_STRING: + cellValue = cell.getRichStringCellValue().getString(); + break; + case Cell.CELL_TYPE_NUMERIC: + if (DateUtil.isCellDateFormatted(cell)) { + cellValue = cell.getDateCellValue().toString(); + } else { + cellValue = String.valueOf(cell.getNumericCellValue()); + } + break; + case Cell.CELL_TYPE_BOOLEAN: + cellValue = String.valueOf(cell.getBooleanCellValue()); + break; + case Cell.CELL_TYPE_FORMULA: + cellValue = String.valueOf(cell.getCellFormula()); + break; + case Cell.CELL_TYPE_BLANK: + break; + default: + } + return cellValue; + } + +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataGenerator.java b/src/main/java/com/codesdream/ase/component/datamanager/DataGenerator.java new file mode 100644 index 0000000..4a9f061 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataGenerator.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.component.datamanager; + +import java.util.Collection; + +/** + * 表给狗数据文件生成器接口 + */ +public interface DataGenerator { + // 读取表头信息 + void setTableTitle(Collection titles); + + // 向表中写入一行数据 + void insertRow(int rowIndex, Collection dataCollection); + + // 将修改保存表到文件中 + void save(); +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataGetObjectFromRequest.java b/src/main/java/com/codesdream/ase/component/datamanager/DataGetObjectFromRequest.java new file mode 100644 index 0000000..3d59371 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataGetObjectFromRequest.java @@ -0,0 +1,8 @@ +package com.codesdream.ase.component.datamanager; + +import org.springframework.stereotype.Component; + +// 解析request请求,获得对应的Java对象 +@Component +public class DataGetObjectFromRequest { +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataModelRepositorySearcher.java b/src/main/java/com/codesdream/ase/component/datamanager/DataModelRepositorySearcher.java new file mode 100644 index 0000000..3844039 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataModelRepositorySearcher.java @@ -0,0 +1,57 @@ +package com.codesdream.ase.component.datamanager; + +import com.codesdream.ase.component.ASESpringUtil; +import lombok.Data; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * Model对应的Repository层查询器 + */ +@Data +@Component +@Scope("prototype") +public class DataModelRepositorySearcher { + @Resource + ASESpringUtil springUtil; + + public final String repositoryPath = "com.codesdream.ase.repository."; + + private Class repositoryClass = null; + + private boolean present; + + public void getDataModelRepositoryClass(String subSystem, String dataModel){ + dataModel = doCheckName(dataModel); + try { + this.repositoryClass = Class.forName(dataModelFullNameGenerator(subSystem, dataModel)); + this.setPresent(true); + } catch (ClassNotFoundException e) { + this.setPresent(false); + } + } + + public T getDataModelRepositoryInstance() { + // 确保可以引用 + if(isPresent()) { + @SuppressWarnings("unchecked") + T repository = (T) springUtil.getBean(repositoryClass); + return repository; + } + return null; + } + + public static String doCheckName(String string) { + char[] charArray = string.toCharArray(); + if(Character.isLowerCase(charArray[0])) charArray[0] -= 32; + else return string; + return String.valueOf(charArray); + } + + private String dataModelFullNameGenerator(String subSystem, String dataModel){ + return new String(repositoryPath + subSystem + "." + dataModel + "Repository"); + } + +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataModelSearcher.java b/src/main/java/com/codesdream/ase/component/datamanager/DataModelSearcher.java new file mode 100644 index 0000000..0493d1c --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataModelSearcher.java @@ -0,0 +1,70 @@ +package com.codesdream.ase.component.datamanager; + +import lombok.Data; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import javax.swing.text.html.parser.Entity; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 根据子系统及名称查找特定的MModel + */ +@Data +@Component +@Scope("prototype") +public class DataModelSearcher { + public final String modelPath = "com.codesdream.ase.model."; + private Class dataModelClass = null; + + private boolean present; + + public void getDataModelClass(String subSystem, String dataModel) { + dataModel = doCheckName(dataModel); + try { + dataModelClass = Class.forName(dataModelFullNameGenerator(subSystem, dataModel)); + this.setPresent(true); + }catch (ClassNotFoundException e){ + this.setPresent(false); + } + } + + public Collection getDataModelParamArgs() { + if(isPresent()) { + Collection paramArgs = new ArrayList<>(); + for (Field field : dataModelClass.getDeclaredFields()) { + paramArgs.add(field.getName()); + } + return paramArgs; + } + return null; + } + + public T getDataModelInstance(Class dataModelClass) { + if(isPresent()){ + try { + return dataModelClass.newInstance(); + } catch (IllegalAccessException e) { + this.setPresent(false); + return null; + } catch (InstantiationException e) { + e.printStackTrace(); + return null; + } + } + return null; + } + + public static String doCheckName(String string) { + char[] charArray = string.toCharArray(); + if(Character.isLowerCase(charArray[0])) charArray[0] -= 32; + else return string; + return String.valueOf(charArray); + } + + private String dataModelFullNameGenerator(String subSystem, String dataModel){ + return new String(modelPath + subSystem + "." + dataModel); + } +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataReader.java b/src/main/java/com/codesdream/ase/component/datamanager/DataReader.java new file mode 100644 index 0000000..4b9dd21 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataReader.java @@ -0,0 +1,27 @@ +package com.codesdream.ase.component.datamanager; + +import java.util.Collection; + +/** + * 表结构信息读取器接口 + */ +public interface DataReader { + // 从文件中读取数据(在使用上要求这个调用可有可无) + void readFile(); + + // 获得表头列的数目 + Collection readColsTitle(); + + // 读取特定序号的行的数据 + Collection readRow(int row); + + // 得到数据的总行数 + int getRowsSize(); + + // 得到第一数据行的序号 + int firstDataRowIndex(); + + // 得到最后一行数据行的序号 + int lastDataRowIndex(); + +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataTable.java b/src/main/java/com/codesdream/ase/component/datamanager/DataTable.java new file mode 100644 index 0000000..97d04f5 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataTable.java @@ -0,0 +1,89 @@ +package com.codesdream.ase.component.datamanager; + +import com.codesdream.ase.exception.innerservererror.DataIllegalTableFormatException; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import java.util.*; + +// 描述一张数据表 +@Component +@Scope("prototype") +public class DataTable { + Collection titleCollection = new ArrayList<>(); + Vector dataRows = new Vector<>(); + + // 为表添加列及列名 + public DataTable addColTitle(String title){ + titleCollection.add(title); + return this; + } + + // 获得特定行的数据 + public Collection getRow(int index){ + if(index >= getRowsSize()) throw new IndexOutOfBoundsException(); + return dataRows.elementAt(index).getRow(); + } + + // 获得特定行的数据 + public Vector getRowVector(int index){ + if(index >= getRowsSize()) throw new IndexOutOfBoundsException(); + return new Vector<>(dataRows.elementAt(index).getRow()); + } + + // 从DataReader导入特定表 + public void importTable(DataReader reader){ + // 从文件中读取数据 + reader.readFile(); + // 读取列信息 + titleCollection = reader.readColsTitle(); + + int rowsSize = reader.getRowsSize(); + int index = 0; + for(int i = reader.firstDataRowIndex(); i < reader.lastDataRowIndex(); i++){ + dataRows.add(new DataTableRow(index++, reader.readRow(i))); + // 检查是否列数一致 + if(dataRows.lastElement().getColsSize() != this.getColsSize()) { + // 清空表数据 + this.dataRows.clear(); + throw new DataIllegalTableFormatException(); + } + } + } + + // 查找有无相关表头项 + public Optional getTitleIndex(String title){ + int index = 0; + for(String dataTitle :titleCollection){ + if(dataTitle.equals(title)) + return Optional.of(index); + index++; + } + return Optional.empty(); + } + + // 导出表数据 + public void exportTable(DataGenerator dataGenerator){ + dataGenerator.setTableTitle(titleCollection); + for(DataTableRow row : dataRows){ + dataGenerator.insertRow(row.getIndex(), row.getRow()); + } + dataGenerator.save(); + } + + // 为表添加行 + public void addRow(Collection row){ + Collection dataRow = new ArrayList<>(row); + dataRows.add(new DataTableRow(dataRows.size() + 1, dataRow)); + } + + // 获得表的列数 + public int getColsSize(){ + return titleCollection.size(); + } + + // 获得表的行数 + public int getRowsSize(){ + return dataRows.size(); + } +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/DataTableRow.java b/src/main/java/com/codesdream/ase/component/datamanager/DataTableRow.java new file mode 100644 index 0000000..ca07c1b --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/DataTableRow.java @@ -0,0 +1,21 @@ +package com.codesdream.ase.component.datamanager; + +import lombok.Data; + +import java.util.Collection; + +// 描述数据表的行 +@Data +public class DataTableRow { + private int index; + private Collection row; + + public DataTableRow(int index, Collection row){ + this.index = index; + this.row = row; + } + + public int getColsSize(){ + return row.size(); + } +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/JSONParameter.java b/src/main/java/com/codesdream/ase/component/datamanager/JSONParameter.java new file mode 100644 index 0000000..c87dea7 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/JSONParameter.java @@ -0,0 +1,89 @@ +package com.codesdream.ase.component.datamanager; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.codesdream.ase.component.json.respond.JSONBaseRespondObject; +import com.codesdream.ase.exception.innerservererror.HandlingErrorsException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.fge.jsonpatch.JsonPatch; +import com.github.fge.jsonpatch.JsonPatchException; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.Optional; + +/** + * 处理JSON相关数据 + */ +@Component +public class JSONParameter { + + // 处理Request Body + public String getRequestBody(HttpServletRequest request){ + try { + StringBuilder stringBuilder = new StringBuilder(); + BufferedReader reader = request.getReader(); + reader.reset(); + String line; + while ((line = reader.readLine()) != null) + stringBuilder.append(line); + return stringBuilder.toString(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + // 提取Request中的JSON数据 + public Optional getJSONByRequest(HttpServletRequest request){ + try { + JSONObject jsonParam = null; + String content = getRequestBody(request); + jsonParam = JSONObject.parseObject(content); + return Optional.ofNullable(jsonParam); + } catch (Exception e) { + e.printStackTrace(); + return Optional.empty(); + } + + } + + // 根据JSON对象构造JSON字符串用于返回 + public String getJSONString(JSONObject json){ + return json.toJSONString(); + } + + // 根据Java对象构造JSON字符串用于返回 + public String getJSONString(Object object){ + return JSON.toJSONString(object); + } + + // 由JSON对象获得对应的Java对象 + public T getJavaObject(JSONObject json, Class type){ + return json.toJavaObject(type); + } + + // 由Request获得对应的Java对象(常用于Post请求中) + public Optional getJavaObjectByRequest(HttpServletRequest request, Class type){ + Optional json = getJSONByRequest(request); + return json.map(jsonObject -> getJavaObject(jsonObject, type)); + } + + public T parsePathToObject(JsonPatch patch, T object){ + try { + ObjectMapper mapper = new ObjectMapper(); + JsonNode patched = patch.apply(mapper.convertValue(object, JsonNode.class)); + return (T) mapper.treeToValue(patched, object.getClass()); + } catch (JsonPatchException | JsonProcessingException e) { + throw new HandlingErrorsException(e.getMessage()); + } + + } + +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/StringFile.java b/src/main/java/com/codesdream/ase/component/datamanager/StringFile.java new file mode 100644 index 0000000..7ef0f5e --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/StringFile.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.component.datamanager; + +import lombok.Data; + +// 储存字符串标识的文件,并可以转换为json进行传输 +@Data +public class StringFile { + private String strData = null; + private String sha1Checker = null; + private Integer size = null; + private String type = "none"; +} diff --git a/src/main/java/com/codesdream/ase/component/datamanager/StringFileGenerator.java b/src/main/java/com/codesdream/ase/component/datamanager/StringFileGenerator.java new file mode 100644 index 0000000..a64fd32 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/datamanager/StringFileGenerator.java @@ -0,0 +1,92 @@ +package com.codesdream.ase.component.datamanager; + +import com.codesdream.ase.component.auth.SHA1Encoder; +import com.codesdream.ase.exception.StringFileConvertException; +import com.sun.xml.internal.messaging.saaj.util.ByteInputStream; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.*; +import java.util.Base64; +import java.util.Optional; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +// 将文件处理成可发送的字符串文件对象 +@Component +public class StringFileGenerator { + + @Resource + private SHA1Encoder encoder; + + // 用过读入流创建一个字符串文件 + public Optional generateStringFile(InputStream stream){ + StringFile file = new StringFile(); + // 字符串内容计算 + file.setStrData(generateFile2String(stream)); + if(file.getStrData() == null) return Optional.empty(); + // 相关校验值计算 + file.setSha1Checker(generateSHA1Checker(file.getStrData())); + file.setSize(file.getStrData().length()); + return Optional.of(file); + } + + private byte[] readSteamAll(InputStream stream) { + try { + byte[] bytes = new byte[stream.available()]; + + //检查文件书否完全读取 + if (stream.read(bytes) != bytes.length) return null; + else return bytes; + } catch (IOException e){ + return null; + } + } + + private String generateFile2String(InputStream stream){ + ByteArrayOutputStream zipDataStream = new ByteArrayOutputStream(); + try { + GZIPOutputStream gzipOutputStream = new GZIPOutputStream(zipDataStream); + byte[] bytes = readSteamAll(stream); + if(bytes == null) return null; + gzipOutputStream.write(bytes); + gzipOutputStream.close(); + return Base64.getEncoder().encodeToString(zipDataStream.toByteArray()); + } catch (IOException e) { + return null; + } + } + + // 生成字符串文件的校验码 + private String generateSHA1Checker(String str){ + return encoder.encode(str); + } + + // 检查文件内容是否正确,包括大小与校验码 + public boolean checkStringFile(StringFile file){ + return file.getStrData().length() == file.getSize() + && encoder.match(file.getStrData(), file.getSha1Checker()); + } + + // 从字符串文件中读取真实的文件数据 + public InputStream readFileString(StringFile file){ + try { + // 字符串转换为二进制数据 + byte[] bytes = Base64.getDecoder().decode(file.getStrData()); + GZIPInputStream stream = new GZIPInputStream(new ByteArrayInputStream(bytes), bytes.length); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + + // 数据解压缩 + int readBits = 0; + byte[] rawBytes = new byte[1024]; + while ((readBits = stream.read(rawBytes)) != -1) { + outputStream.write(rawBytes, 0, readBits); + } + + stream.close(); + return new ByteArrayInputStream(outputStream.toByteArray()); + } catch (IOException e) { + throw new StringFileConvertException("Read FileString Failed"); + } + } +} diff --git a/src/main/java/com/codesdream/ase/component/error/ErrorResponse.java b/src/main/java/com/codesdream/ase/component/error/ErrorResponse.java new file mode 100644 index 0000000..0aee4ca --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/error/ErrorResponse.java @@ -0,0 +1,24 @@ +package com.codesdream.ase.component.error; + +import lombok.Data; + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; + +@XmlRootElement(name = "error") +public class ErrorResponse +{ + public ErrorResponse(String message, List details) { + super(); + this.message = message; + this.details = details; + } + + //General error message about nature of error + private String message; + + //Specific errors in API request processing + private List details; + + //Getter and setters +} diff --git a/src/main/java/com/codesdream/ase/component/json/JSONBaseObject.java b/src/main/java/com/codesdream/ase/component/json/JSONBaseObject.java new file mode 100644 index 0000000..86504b4 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/JSONBaseObject.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.component.json; + +import lombok.extern.slf4j.Slf4j; + +import java.util.Date; + +// 所有有效的JSON对象模板 +@Slf4j +public class JSONBaseObject { + Date time = new Date(); + +} diff --git a/src/main/java/com/codesdream/ase/component/json/form/RegisterForm.java b/src/main/java/com/codesdream/ase/component/json/form/RegisterForm.java new file mode 100644 index 0000000..ccd73f0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/form/RegisterForm.java @@ -0,0 +1,5 @@ +package com.codesdream.ase.component.json.form; + +public class RegisterForm { + +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableFPC.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableFPC.java new file mode 100644 index 0000000..af57a91 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableFPC.java @@ -0,0 +1,38 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.NoArgsConstructor; +import springfox.documentation.spring.web.json.Json; + +@Data +@NoArgsConstructor +@ApiModel("功能性权限容器") +public class JsonableFPC { + private Integer id; + + private String name; + + private String description; + + private boolean enabled; + + private boolean deleted; + + public JsonableFPC(FunctionalPermissionContainer fpc){ + this.id = fpc.getId(); + this.name = fpc.getName(); + this.description = fpc.getDescription(); + this.enabled = fpc.isEnabled(); + this.deleted = fpc.isDeleted(); + } + + public FunctionalPermissionContainer parseObject(FunctionalPermissionContainer fpc){ + fpc.setName(this.name); + fpc.setDescription(this.description); + fpc.setEnabled(this.enabled); + fpc.setDeleted(this.deleted); + return fpc; + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableFSR.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableFSR.java new file mode 100644 index 0000000..c72f333 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableFSR.java @@ -0,0 +1,62 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import com.codesdream.ase.model.permission.FunctionalScopeRelation; +import com.codesdream.ase.model.permission.ScopePermissionContainer; +import com.codesdream.ase.service.IPermissionService; +import com.codesdream.ase.service.PermissionService; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.annotation.Resource; +import java.util.Optional; + +@Data +@NoArgsConstructor +@ApiModel("单项权力") +public class JsonableFSR { + private Integer id; + + private String name; + + private String description; + + private Integer fpcId; + + private Integer spcId; + + @Resource + @ApiModelProperty(hidden = true) + private IPermissionService permissionService; + + public JsonableFSR(FunctionalScopeRelation fsr){ + this.id = fsr.getId(); + this.name = fsr.getName(); + this.description = fsr.getDescription(); + this.fpcId = fsr.getFunctionalPermissionContainer().getId(); + this.spcId = fsr.getScopePermissionContainer().getId(); + } + + public FunctionalScopeRelation parseObject(FunctionalScopeRelation fsr){ + fsr.setName(this.name); + fsr.setDescription(this.description); + if(this.fpcId != null){ + Optional fpc = permissionService.findFPC(this.fpcId); + if(!fpc.isPresent()) throw new NotFoundException(this.fpcId.toString()); + fsr.setFunctionalPermissionContainer(fpc.get()); + } + + if(this.spcId != null){ + Optional spc = permissionService.findSPC(this.spcId); + if(!spc.isPresent()) throw new NotFoundException(this.spcId.toString()); + fsr.setScopePermissionContainer(spc.get()); + } + + return fsr; + + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableFunction.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableFunction.java new file mode 100644 index 0000000..afdd13b --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableFunction.java @@ -0,0 +1,60 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.Function; +import com.codesdream.ase.service.IPermissionService; +import com.codesdream.ase.service.PermissionService; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiParam; +import io.swagger.models.auth.In; +import lombok.Data; +import lombok.NoArgsConstructor; +import springfox.documentation.annotations.ApiIgnore; + +import javax.annotation.Resource; +import java.util.Optional; + +@Data +@NoArgsConstructor +@ApiModel("功能") +public class JsonableFunction { + + private Integer id; + + private String name; + + private String description; + + private Integer fatherId; + + private String url; + + @Resource + @ApiModelProperty(hidden = true) + private IPermissionService permissionService; + + public JsonableFunction(Function function){ + this.id = function.getId(); + this.name = function.getName(); + this.description = function.getDescription(); + if(function.getFather() != null) { + this.fatherId = function.getFather().getId(); + } + else this.fatherId = null; + this.url = function.getUrl(); + } + + public Function parseObject(Function function){ + function.setName(this.name); + function.setDescription(this.description); + if(this.fatherId != null) { + Optional fatherFunction = permissionService.findFunction(this.fatherId); + if (!fatherFunction.isPresent()) throw new NotFoundException(fatherId.toString()); + function.setFather(fatherFunction.get()); + } + function.setUrl(this.url); + + return function; + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonablePCCList.java b/src/main/java/com/codesdream/ase/component/json/model/JsonablePCCList.java new file mode 100644 index 0000000..870743e --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonablePCCList.java @@ -0,0 +1,22 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.model.permission.PermissionContainersCollection; +import com.codesdream.ase.model.permission.Tag; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@ApiModel("权限容器集合列表") +public class JsonablePCCList { + List pccIdList; + + public JsonablePCCList(Tag tag){ + for(PermissionContainersCollection pcc : tag.getPermissionContainersCollections()){ + pccIdList.add(pcc.getId()); + } + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableRoleList.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableRoleList.java new file mode 100644 index 0000000..efacf0f --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableRoleList.java @@ -0,0 +1,26 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.model.permission.Function; +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.HashSet; +import java.util.Set; + +@Data +@NoArgsConstructor +@ApiModel("功能性权限容器所属角色集合") +public class JsonableRoleList { + private Integer id; + private Set functions = new HashSet<>(); + + public JsonableRoleList(FunctionalPermissionContainer fpc){ + this.id = fpc.getId(); + if(fpc.getFunctions() != null) { + for(Function function : fpc.getFunctions()) + this.functions.add(function.getId()); + } + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableSPC.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableSPC.java new file mode 100644 index 0000000..14fffd1 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableSPC.java @@ -0,0 +1,39 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.model.permission.ScopePermissionContainer; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@ApiModel("范围性权限容器") +public class JsonableSPC { + private Integer id; + + private String name; + + private String description; + + private boolean enabled; + + private boolean deleted; + + public JsonableSPC(ScopePermissionContainer spc){ + this.id = spc.getId(); + this.name = spc.getName(); + this.description = spc.getDescription(); + this.enabled = spc.isEnabled(); + this.deleted = spc.isDeleted(); + } + + public ScopePermissionContainer parseObject(ScopePermissionContainer spc){ + spc.setName(this.name); + spc.setDescription(this.description); + spc.setEnabled(this.enabled); + spc.setDeleted(this.deleted); + + return spc; + } + +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableTag.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableTag.java new file mode 100644 index 0000000..8b518ec --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableTag.java @@ -0,0 +1,48 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; +import net.bytebuddy.implementation.bind.annotation.DefaultMethod; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Data +@NoArgsConstructor +@ApiModel("标签") +public class JsonableTag { + @ApiModelProperty(value = "标签id") + private Integer id = null; + @ApiModelProperty(value = "标签名", example = "系统管理员") + private String name; + @ApiModelProperty(value = "标签说明", example = "该系统的管理员") + private String description; + + private boolean enabled; + + private boolean deleted; + + + public JsonableTag(Tag tag){ + this.id = tag.getId(); + this.name = tag.getName(); + this.description = tag.getDescription(); + this.enabled = tag.isEnabled(); + this.deleted = tag.isDeleted(); + } + + public Tag parseObject(Tag tag){ + tag.setName(this.name); + tag.setDescription(this.description); + tag.setDeleted(this.deleted); + tag.setEnabled(this.enabled); + return tag; + } + +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableUidGetter.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableUidGetter.java new file mode 100644 index 0000000..9eee677 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableUidGetter.java @@ -0,0 +1,6 @@ +package com.codesdream.ase.component.json.model; + +public class JsonableUidGetter { + private String checkType; + private String username; +} diff --git a/src/main/java/com/codesdream/ase/component/json/model/JsonableUser.java b/src/main/java/com/codesdream/ase/component/json/model/JsonableUser.java new file mode 100644 index 0000000..ad72dec --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/model/JsonableUser.java @@ -0,0 +1,33 @@ +package com.codesdream.ase.component.json.model; + +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.model.permission.UserAuth; +import com.codesdream.ase.model.permission.UserDetail; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@ApiModel("用户") +@NoArgsConstructor +public class JsonableUser { + private Integer id; + private String username; + private boolean enabled; + private boolean deleted; + + + public JsonableUser(User user){ + this.id = user.getId(); + this.username = user.getUsername(); + + this.enabled = user.isEnabled(); + this.deleted= user.isDeleted(); + } + + public User parseObject(User user){ + user.setEnabled(this.enabled); + user.setDeleted(this.deleted); + return user; + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/request/JSONBaseRequestObject.java b/src/main/java/com/codesdream/ase/component/json/request/JSONBaseRequestObject.java new file mode 100644 index 0000000..910ee53 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/request/JSONBaseRequestObject.java @@ -0,0 +1,13 @@ +package com.codesdream.ase.component.json.request; + +import com.codesdream.ase.component.json.JSONBaseObject; +import lombok.extern.slf4j.Slf4j; + +import java.util.Date; + +// 客户端请求的JSON模板 +@Slf4j +public class JSONBaseRequestObject extends JSONBaseObject { + String signed; + +} diff --git a/src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java new file mode 100644 index 0000000..92452c6 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java @@ -0,0 +1,16 @@ +package com.codesdream.ase.component.json.request; + +import lombok.Data; + +@Data +public class UserLeaveAuth { + /* + 备注 + */ + private int id; + private String Comment; + /* + 审核结果 + */ + private String newStat; +} diff --git a/src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java new file mode 100644 index 0000000..df05547 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java @@ -0,0 +1,15 @@ +package com.codesdream.ase.component.json.request; + +import lombok.Data; + +import java.util.Date; +@Data +public class UserLeaveRequest { + private String UserId;//用户名 + private String Type;//请假类型 + private String Reason;//请假原因 + private String Addon;//附件 + private Date Starttime;//开始时间 + private Date EndTime;//结束时间 + +} diff --git a/src/main/java/com/codesdream/ase/component/json/request/UserLoginChecker.java b/src/main/java/com/codesdream/ase/component/json/request/UserLoginChecker.java new file mode 100644 index 0000000..0f706cf --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/request/UserLoginChecker.java @@ -0,0 +1,13 @@ +package com.codesdream.ase.component.json.request; + +import lombok.Data; + +@Data +public class UserLoginChecker { + // 请求类型 + private String checkType; + private String username; + private String password; + private String clientCode; + +} diff --git a/src/main/java/com/codesdream/ase/component/json/request/UserRegisterChecker.java b/src/main/java/com/codesdream/ase/component/json/request/UserRegisterChecker.java new file mode 100644 index 0000000..491cda6 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/request/UserRegisterChecker.java @@ -0,0 +1,19 @@ +package com.codesdream.ase.component.json.request; + +import lombok.Data; + +@Data +public class UserRegisterChecker { + + // 学号 + private String studentId; + + // 密码 + private String password; + + // 密保问题 + private String userQuestion; + + // 密保答案 + private String userAnswer; +} diff --git a/src/main/java/com/codesdream/ase/component/json/request/UserSGettudentLeaveListRequest.java b/src/main/java/com/codesdream/ase/component/json/request/UserSGettudentLeaveListRequest.java new file mode 100644 index 0000000..b97c771 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/request/UserSGettudentLeaveListRequest.java @@ -0,0 +1,8 @@ +package com.codesdream.ase.component.json.request; + +import lombok.Data; + +@Data +public class UserSGettudentLeaveListRequest { + private int studentId; +} diff --git a/src/main/java/com/codesdream/ase/component/json/respond/EmptyDataObjectRespond.java b/src/main/java/com/codesdream/ase/component/json/respond/EmptyDataObjectRespond.java new file mode 100644 index 0000000..e3ae905 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/respond/EmptyDataObjectRespond.java @@ -0,0 +1,5 @@ +package com.codesdream.ase.component.json.respond; + +public class EmptyDataObjectRespond { + +} diff --git a/src/main/java/com/codesdream/ase/component/json/respond/ErrorInfoJSONRespond.java b/src/main/java/com/codesdream/ase/component/json/respond/ErrorInfoJSONRespond.java new file mode 100644 index 0000000..4495e20 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/respond/ErrorInfoJSONRespond.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.component.json.respond; + +import lombok.Data; + +import java.util.Date; + +@Data +public class ErrorInfoJSONRespond { + String exception = null; + String exceptionMessage = null; + Date date = null; +} diff --git a/src/main/java/com/codesdream/ase/component/json/respond/JSONBaseRespondObject.java b/src/main/java/com/codesdream/ase/component/json/respond/JSONBaseRespondObject.java new file mode 100644 index 0000000..d1a2d2f --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/respond/JSONBaseRespondObject.java @@ -0,0 +1,61 @@ +package com.codesdream.ase.component.json.respond; + +import com.codesdream.ase.component.json.JSONBaseObject; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +// 服务端返回的JSON对象模板 +@EqualsAndHashCode(callSuper = true) +@Data +public class JSONBaseRespondObject extends JSONBaseObject { + + // 存放返回内容 + private Object data = new EmptyDataObjectRespond(); + + // 存放响应信息提示 + private String msg = ""; + + // 额外信息 + private String info = null; + + // 状态 + private Integer status = 200; + + public JSONBaseRespondObject(String msg){ + super(); + this.status = 200; + this.msg = msg; + } + + public JSONBaseRespondObject(Integer status, String msg){ + super(); + this.status = status; + this.msg = msg; + } + + public void setStatusNotFound(){ + this.status = 404; + } + + public void setStatusBadRequest(){ + this.status = 400; + } + + public void setStatusUnauthorized(){ + this.status = 401; + } + + public void setStatusForbidden(){ + this.status = 403; + } + + public void setStatusInternalServerError(){ + this.status = 500; + } + + public void setStatusOK(){ + this.status = 200; + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/respond/JSONStandardFailedRespond.java b/src/main/java/com/codesdream/ase/component/json/respond/JSONStandardFailedRespond.java new file mode 100644 index 0000000..ba1626f --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/respond/JSONStandardFailedRespond.java @@ -0,0 +1,8 @@ +package com.codesdream.ase.component.json.respond; + +// 请求失败返回JSON +public class JSONStandardFailedRespond extends JSONBaseRespondObject { + public JSONStandardFailedRespond(){ + super(500, "failed"); + } +} diff --git a/src/main/java/com/codesdream/ase/component/json/respond/PermissionJSONRespond.java b/src/main/java/com/codesdream/ase/component/json/respond/PermissionJSONRespond.java new file mode 100644 index 0000000..915804a --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/respond/PermissionJSONRespond.java @@ -0,0 +1,16 @@ +package com.codesdream.ase.component.json.respond; + +import com.sun.org.apache.xpath.internal.operations.Bool; +import lombok.Data; + +import java.util.List; +import java.util.Set; + +@Data +public class PermissionJSONRespond { + private Boolean tagExist = null; + private Boolean actionSuccess = null; + private Integer tagId = null; + private String tagName = null; + private Set users = null; +} diff --git a/src/main/java/com/codesdream/ase/component/json/respond/UserLoginCheckerJSONRespond.java b/src/main/java/com/codesdream/ase/component/json/respond/UserLoginCheckerJSONRespond.java new file mode 100644 index 0000000..e12c077 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/respond/UserLoginCheckerJSONRespond.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.component.json.respond; + +import com.sun.org.apache.xpath.internal.operations.Bool; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +public class UserLoginCheckerJSONRespond { + Boolean userExist = null; + Boolean userBanned = null; + Boolean loginStatus = null; + String respondInformation = null; + String token = null; + String uid = null; + String pvc = null; + +} diff --git a/src/main/java/com/codesdream/ase/component/json/respond/UserLoginTokenJSONRespond.java b/src/main/java/com/codesdream/ase/component/json/respond/UserLoginTokenJSONRespond.java new file mode 100644 index 0000000..43272ab --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/respond/UserLoginTokenJSONRespond.java @@ -0,0 +1,6 @@ +package com.codesdream.ase.component.json.respond; + +// 返回登录后的授权码(用于客户端生成签名) +public class UserLoginTokenJSONRespond { + String token; +} diff --git a/src/main/java/com/codesdream/ase/component/permission/UserAuthoritiesGenerator.java b/src/main/java/com/codesdream/ase/component/permission/UserAuthoritiesGenerator.java new file mode 100644 index 0000000..ded5ff7 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/permission/UserAuthoritiesGenerator.java @@ -0,0 +1,19 @@ +package com.codesdream.ase.component.permission; + +import com.codesdream.ase.model.permission.User; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Collection; + +@Component +public class UserAuthoritiesGenerator { + @Resource + UserFunctionsListGenerator userFunctionsListGenerator; + + public Collection grantedAuthorities(User user){ + return userFunctionsListGenerator.generateRoles(user); + } + +} diff --git a/src/main/java/com/codesdream/ase/component/permission/UserFPCListGenerator.java b/src/main/java/com/codesdream/ase/component/permission/UserFPCListGenerator.java new file mode 100644 index 0000000..964973d --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/permission/UserFPCListGenerator.java @@ -0,0 +1,41 @@ +package com.codesdream.ase.component.permission; + +import com.codesdream.ase.model.permission.*; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 生成功能性权限容器列表 + */ +@Component +public class UserFPCListGenerator { + @Resource + private UserFSRGenerator fsrListGenerator; + + public Collection generateFPC( + Collection functionalScopeRelations){ + Collection functionalPermissionContainers + = new ArrayList<>(); + + for (FunctionalScopeRelation functionalScopeRelation : functionalScopeRelations){ + functionalPermissionContainers.add(functionalScopeRelation.getFunctionalPermissionContainer()); + } + + return functionalPermissionContainers; + } + + public Collection generateFPCs(User user){ + return generateFPC( + fsrListGenerator.generateFSRs(user) + ); + } + + public Collection generateFPCs(String username){ + return generateFPC( + fsrListGenerator.generateFSRs(username) + ); + } +} diff --git a/src/main/java/com/codesdream/ase/component/permission/UserFSRGenerator.java b/src/main/java/com/codesdream/ase/component/permission/UserFSRGenerator.java new file mode 100644 index 0000000..077dddd --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/permission/UserFSRGenerator.java @@ -0,0 +1,45 @@ +package com.codesdream.ase.component.permission; + +import com.codesdream.ase.model.permission.FunctionalScopeRelation; +import com.codesdream.ase.model.permission.PermissionContainersCollection; +import com.codesdream.ase.model.permission.User; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 生成功能性权限容器与范围性权限容器关联对列表 + */ +@Component +public class UserFSRGenerator { + + @Resource + private UserPCCListGenerator userPCCListGenerator; + + + public Collection generateFSRs( + Collection pccs){ + Collection fsrs = + new ArrayList<>(); + + for(PermissionContainersCollection pcc : pccs){ + fsrs.addAll(pcc.getFunctionalScopeRelations()); + } + + return fsrs; + } + + public Collection generateFSRs( + User user){ + return generateFSRs( + userPCCListGenerator.generatePCCs(user)); + } + + public Collection generateFSRs( + String username){ + return generateFSRs( + userPCCListGenerator.generatePCCs(username)); + } +} diff --git a/src/main/java/com/codesdream/ase/component/permission/UserFunctionsListGenerator.java b/src/main/java/com/codesdream/ase/component/permission/UserFunctionsListGenerator.java new file mode 100644 index 0000000..337ddad --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/permission/UserFunctionsListGenerator.java @@ -0,0 +1,45 @@ +package com.codesdream.ase.component.permission; + +import com.codesdream.ase.model.permission.Function; +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import com.codesdream.ase.model.permission.User; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 生成用户访问权限角色列表 + */ +@Component +public class UserFunctionsListGenerator { + @Resource + private UserFPCListGenerator fpcListGenerator; + + public Collection generateRoles( + Collection fpcs){ + Collection authorities = new ArrayList<>(); + for(FunctionalPermissionContainer fpc :fpcs){ + for(Function function :fpc.getFunctions()){ + authorities.add(new SimpleGrantedAuthority(function.getName())); + } + } + return authorities; + } + + public Collection generateRoles(String username){ + return generateRoles( + fpcListGenerator.generateFPCs(username) + ); + } + + public Collection generateRoles(User user){ + + return generateRoles( + fpcListGenerator.generateFPCs(user) + ); + } +} diff --git a/src/main/java/com/codesdream/ase/component/permission/UserPCCListGenerator.java b/src/main/java/com/codesdream/ase/component/permission/UserPCCListGenerator.java new file mode 100644 index 0000000..ffb22f9 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/permission/UserPCCListGenerator.java @@ -0,0 +1,39 @@ +package com.codesdream.ase.component.permission; + +import com.codesdream.ase.model.permission.PermissionContainersCollection; +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 生成权限容器集合列表 + */ +@Component +public class UserPCCListGenerator { + @Resource + private UserTagsListGenerator userTagsListGenerator; + + public Collection generatePCCs( + Collection tags){ + Collection pccs = + new ArrayList<>(); + for(Tag tag : tags){ + pccs.addAll(tag.getPermissionContainersCollections()); + } + return pccs; + } + + public Collection generatePCCs( + User user) { + return generatePCCs(userTagsListGenerator.generateTags(user)); + } + + public Collection generatePCCs( + String username){ + return generatePCCs(userTagsListGenerator.generateTags(username)); + } +} diff --git a/src/main/java/com/codesdream/ase/component/permission/UserTagsListGenerator.java b/src/main/java/com/codesdream/ase/component/permission/UserTagsListGenerator.java new file mode 100644 index 0000000..d53bfe4 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/permission/UserTagsListGenerator.java @@ -0,0 +1,54 @@ +package com.codesdream.ase.component.permission; + +import com.codesdream.ase.model.permission.ScopePermissionContainer; +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.repository.permission.UserRepository; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Optional; + +/** + * 生成用户标签列表 + */ +@Component +public class UserTagsListGenerator { + @Resource + UserRepository userRepository; + + public Collection generateTags(ScopePermissionContainer spc){ + return new ArrayList<>(spc.getTags()); + } + + public Collection generateTags(User user){ + return new ArrayList(user.getTags()); + } + + public Collection generateTags(String username){ + Optional user = userRepository.findByUsername(username); + // 检查用户是否存在 + if(!user.isPresent()) throw new RuntimeException("User Not Found"); + + return generateTags(user.get()); + } + + public Collection generateTagsName(User user){ + Collection tagsName = new ArrayList<>(); + Collection tags = generateTags(user); + for(Tag tag : tags){ + tagsName.add(tag.getName()); + } + return tagsName; + } + + public Collection generateTagsName(String username){ + Optional user = userRepository.findByUsername(username); + + if(!user.isPresent()) throw new RuntimeException("User Not Found"); + + return generateTagsName(user.get()); + } +} diff --git a/src/main/java/com/codesdream/ase/component/permission/UsersListGenerator.java b/src/main/java/com/codesdream/ase/component/permission/UsersListGenerator.java new file mode 100644 index 0000000..db0abf1 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/permission/UsersListGenerator.java @@ -0,0 +1,22 @@ +package com.codesdream.ase.component.permission; + +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * 生成用户列表 + */ +@Component +public class UsersListGenerator { + public Collection generateUsers(Collection tags){ + Collection users = new ArrayList<>(); + for(Tag tag : tags){ + users.addAll(tag.getUsers()); + } + return users; + } +} diff --git a/src/main/java/com/codesdream/ase/configure/ASESwaggerConfigure.java b/src/main/java/com/codesdream/ase/configure/ASESwaggerConfigure.java new file mode 100644 index 0000000..1e2061e --- /dev/null +++ b/src/main/java/com/codesdream/ase/configure/ASESwaggerConfigure.java @@ -0,0 +1,57 @@ +package com.codesdream.ase.configure; + +import com.google.common.collect.Sets; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.parameters.P; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Configuration +@EnableSwagger2 +public class ASESwaggerConfigure { + @Bean + public Docket createRestApi() { + + List pars = new ArrayList(); + + pars.add(new ParameterBuilder().name("username").description("真实用户名").hidden(true).order(1) + .modelRef(new ModelRef("string")).parameterType("header") + .required(false).defaultValue("u_id_88883b9e023c8824310760d8bb8b6542e5a3f16a0d67253214e01ee7ab0e96a1").build()); + pars.add(new ParameterBuilder().name("signed").description("客户端签名").hidden(true).order(2) + .modelRef(new ModelRef("string")).parameterType("header") + .required(false).defaultValue("6d4923fca4dcb51f67b85e54a23a8d763d9e02af").build()); + pars.add(new ParameterBuilder().name("timestamp").description("时间戳").hidden(true).order(3) + .modelRef(new ModelRef("string")).parameterType("header") + .required(false).defaultValue(Long.toString(new Date().getTime())).build()); + + return new Docket(DocumentationType.SWAGGER_2) + .protocols(Sets.newHashSet("http")) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.codesdream.ase.controller")) + .paths(PathSelectors.any()) + .build() + .globalOperationParameters(pars); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("全员育人管理系统后端接口定义") + .version("0.0.1") + .description("用于对后端接口进行说明") + .build(); + } +} diff --git a/src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java b/src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java new file mode 100644 index 0000000..48e34b9 --- /dev/null +++ b/src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java @@ -0,0 +1,37 @@ +package com.codesdream.ase.configure; + +import lombok.Data; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +@Component +public class ActivityFormConfigure { + + private final HashSet stdActivityForm = new HashSet(){{ + add("title"); + add("creator"); + add("type"); + add("description"); + add("cycle"); + add("volunteers"); + add("participate"); + add("sign"); + add("visible"); + add("inform"); + add("start-time"); + add("remind"); + add("enclosure"); + add("chief-manager"); + add("assist-manager"); + add("attendance"); + }}; + + + public HashSet getStdActivityForm() { + return stdActivityForm; + } +} diff --git a/src/main/java/com/codesdream/ase/configure/AppConfigure.java b/src/main/java/com/codesdream/ase/configure/AppConfigure.java new file mode 100644 index 0000000..2d606c6 --- /dev/null +++ b/src/main/java/com/codesdream/ase/configure/AppConfigure.java @@ -0,0 +1,43 @@ +package com.codesdream.ase.configure; + +import org.springframework.stereotype.Component; + +/** + * 应用程序常用配置信息 + * 用于常见的应用程序本身的相关信息的引用 + */ +@Component +public class AppConfigure { + /** + * 获得应用程序的中文名 + * @return 返回包含完整内容的字符串 + */ + public String getName() { + return "全员育人"; + } + + /** + * 获得应用程序的版本号 + * @return 返回版本号内容的字符串 + */ + public String getVersion() { + return "0.0.1_200204"; + } + + /** + * 获得应用程序的英文名 + * @return 返回包含完整内容的字符串 + */ + public String getEnglishName() { + return "All Staff Education"; + } + + /** + * 获得开发小组的名称 + * @return 包含完整内容的字符串 + */ + public String getOrganization() { + return "全员育人WEB端开发组"; + } + +} diff --git a/src/main/java/com/codesdream/ase/configure/ComponentsConfigure.java b/src/main/java/com/codesdream/ase/configure/ComponentsConfigure.java new file mode 100644 index 0000000..85708af --- /dev/null +++ b/src/main/java/com/codesdream/ase/configure/ComponentsConfigure.java @@ -0,0 +1,11 @@ +package com.codesdream.ase.configure; + +import com.codesdream.ase.component.*; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class ComponentsConfigure { + + +} diff --git a/src/main/java/com/codesdream/ase/configure/CustomWebSecurityConfig.java b/src/main/java/com/codesdream/ase/configure/CustomWebSecurityConfig.java new file mode 100644 index 0000000..0e3d814 --- /dev/null +++ b/src/main/java/com/codesdream/ase/configure/CustomWebSecurityConfig.java @@ -0,0 +1,138 @@ +package com.codesdream.ase.configure; + +import com.codesdream.ase.component.auth.*; +import com.codesdream.ase.service.ASEUserDetailsService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.builders.WebSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.core.session.SessionRegistry; +import org.springframework.security.core.session.SessionRegistryImpl; +import org.springframework.security.web.access.intercept.FilterSecurityInterceptor; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.security.web.authentication.session.ConcurrentSessionControlAuthenticationStrategy; +import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; + +import javax.annotation.Resource; + +/** + * Spring Security 配置类 + * 用于Spring Security相关参数的配置 + */ +@Configuration +@EnableWebSecurity +public class CustomWebSecurityConfig extends WebSecurityConfigurerAdapter { + + @Resource + ASEUserDetailsService aseUserDetailService; + + @Resource + ASEPasswordEncoder asePasswordEncoder; + + @Resource + ASESecurityAuthenticationProvider aseSecurityAuthenticationProvider; + + @Resource + ASEAuthenticationSuccessHandler successHandler; + + @Resource + ASEAuthenticationFailureHandler failureHandler; + + @Resource + ASEAuthenticationEntryPoint authenticationEntryPoint; + + @Resource + ASEAccessDeniedHandler accessDeniedHandler; + + @Resource + ASESecurityInterceptor securityInterceptor; + + + @Override + protected void configure(HttpSecurity http) throws Exception { + http + .authorizeRequests() + .anyRequest().authenticated() + .and() + .csrf().disable() + .logout().permitAll(); + + http.exceptionHandling() + .authenticationEntryPoint(authenticationEntryPoint) + .accessDeniedHandler(accessDeniedHandler); + + // 替换掉原有的UsernamePasswordAuthenticationFilter + http.addFilterAt(aseUsernamePasswordAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class) + .addFilterBefore(asejsonTokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class) + .addFilterAt(securityInterceptor, FilterSecurityInterceptor.class); + + http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); + + } + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + auth.authenticationProvider(aseSecurityAuthenticationProvider) + .userDetailsService(aseUserDetailService) + .passwordEncoder(asePasswordEncoder); + } + + @Override + public void configure(WebSecurity web) throws Exception { + web + .ignoring() + .antMatchers( + "/assets/**", + "/register/**", + "/forget/**", + "/not_found/**", + "/error/**", + "/login/**", + "/swagger-ui.html", + "/webjars/**", + "/swagger-resources/**", + "/v2/api-docs", + "/configuration/ui", + "/configuration/security"); + } + + //注册自定义的UsernamePasswordAuthenticationFilter + @Bean + ASEJSONTokenAuthenticationFilter asejsonTokenAuthenticationFilter() throws Exception { + return new ASEJSONTokenAuthenticationFilter(); + } + + //注册自定义的UsernamePasswordAuthenticationFilter + @Bean + ASEUsernamePasswordAuthenticationFilter aseUsernamePasswordAuthenticationFilter() throws Exception { + ASEUsernamePasswordAuthenticationFilter filter = new ASEUsernamePasswordAuthenticationFilter(); + filter.setAuthenticationSuccessHandler(successHandler); + filter.setAuthenticationFailureHandler(failureHandler); + filter.setSessionAuthenticationStrategy(sessionAuthenticationStrategy(sessionRegistry())); + filter.setAllowSessionCreation(true); + filter.setRequiresAuthenticationRequestMatcher( + new AntPathRequestMatcher("/login/token", "POST")); + + filter.setAuthenticationManager(authenticationManagerBean()); + return filter; + } + + @Bean + public SessionRegistry sessionRegistry() { + return new SessionRegistryImpl(); + } + + + @Bean + public SessionAuthenticationStrategy sessionAuthenticationStrategy(SessionRegistry sessionRegistry){ + return new ConcurrentSessionControlAuthenticationStrategy(sessionRegistry){{ + setMaximumSessions(1); + }}; + } + +} diff --git a/src/main/java/com/codesdream/ase/configure/GlobalConfigure.java b/src/main/java/com/codesdream/ase/configure/GlobalConfigure.java new file mode 100644 index 0000000..a6efbb8 --- /dev/null +++ b/src/main/java/com/codesdream/ase/configure/GlobalConfigure.java @@ -0,0 +1,15 @@ +package com.codesdream.ase.configure; + + +import org.springframework.context.annotation.Configuration; + +/** + * Spring 框架全局配置类 + * 主要用于注册或者管理Bean + */ +@Configuration +public class GlobalConfigure { + + + +} diff --git a/src/main/java/com/codesdream/ase/controller/APIController.java b/src/main/java/com/codesdream/ase/controller/APIController.java new file mode 100644 index 0000000..f2a574d --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/APIController.java @@ -0,0 +1,14 @@ +package com.codesdream.ase.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api") +public class APIController { + + @RequestMapping("hello") + String hello(){ + return "hello"; + } +} diff --git a/src/main/java/com/codesdream/ase/controller/ASEController.java b/src/main/java/com/codesdream/ase/controller/ASEController.java new file mode 100644 index 0000000..ee66e6c --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/ASEController.java @@ -0,0 +1,26 @@ +package com.codesdream.ase.controller; + + +import com.codesdream.ase.configure.GlobalConfigure; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.annotation.Resource; +import java.security.Principal; + +/** + * 管理界面主页控制器类 + * 现阶段主要用于管理界面主页 + */ +@Controller +public class ASEController { + @Resource + GlobalConfigure globalConfigure; + + @RequestMapping(value = "/") + public String printIndex(Model model, Principal principal){ + model.addAttribute("username",principal.getName()); + return "index"; + } +} diff --git a/src/main/java/com/codesdream/ase/controller/ASEControllerAdvice.java b/src/main/java/com/codesdream/ase/controller/ASEControllerAdvice.java new file mode 100644 index 0000000..281ced4 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/ASEControllerAdvice.java @@ -0,0 +1,77 @@ +package com.codesdream.ase.controller; + +import com.codesdream.ase.component.api.QuickJSONRespond; +import com.codesdream.ase.component.json.respond.ErrorInfoJSONRespond; +import com.codesdream.ase.exception.badrequest.AlreadyExistException; +import com.codesdream.ase.exception.badrequest.IllegalException; +import com.codesdream.ase.exception.conflict.RelatedObjectsExistException; +import com.codesdream.ase.exception.innerservererror.FormatException; +import com.codesdream.ase.exception.innerservererror.HandlingErrorsException; +import com.codesdream.ase.exception.innerservererror.RuntimeIOException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import javax.annotation.Resource; +import java.util.Date; + +@RestControllerAdvice +public class ASEControllerAdvice { + + @Resource + private QuickJSONRespond quickJSONRespond; + + @ExceptionHandler(value = { + NullPointerException.class, + AlreadyExistException.class, + IllegalException.class + }) + public ResponseEntity handleBadRequest(Exception ex) { + return getResponse(HttpStatus.BAD_REQUEST, ex); + } + + @ExceptionHandler(value = {NotFoundException.class}) + public ResponseEntity handleNotFound(Exception ex) { + + return getResponse(HttpStatus.NOT_FOUND, ex); + } + + @ExceptionHandler(value = {}) + public ResponseEntity handleNotAcceptable(Exception ex) { + return getResponse(HttpStatus.NOT_ACCEPTABLE, ex); + } + + @ExceptionHandler(value = {RelatedObjectsExistException.class}) + public ResponseEntity handleConflict(Exception ex) { + return getResponse(HttpStatus.CONFLICT, ex); + } + + @ExceptionHandler(value = { + HandlingErrorsException.class, + FormatException.class, + RuntimeIOException.class}) + public ResponseEntity handleInnerServerError(Exception ex){ + return getResponse(HttpStatus.INTERNAL_SERVER_ERROR, ex); + } + + private ResponseEntity getResponse(HttpStatus status, Exception ex){ + return ResponseEntity.status(status).body(getJSON(status, ex)); + + } + + private String getJSON(HttpStatus status, Exception ex){ + return quickJSONRespond.getJSONStandardRespond(status, getJSONRespondObject(ex)); + } + + private Object getJSONRespondObject(Exception ex){ + ErrorInfoJSONRespond errorInfoJSONRespond = new ErrorInfoJSONRespond(); + errorInfoJSONRespond.setException(ex.getClass().getName()); + errorInfoJSONRespond.setExceptionMessage(ex.getMessage()); + errorInfoJSONRespond.setDate(new Date()); + return errorInfoJSONRespond; + } + + +} diff --git a/src/main/java/com/codesdream/ase/controller/ASEErrorController.java b/src/main/java/com/codesdream/ase/controller/ASEErrorController.java new file mode 100644 index 0000000..23d166d --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/ASEErrorController.java @@ -0,0 +1,84 @@ +package com.codesdream.ase.controller; + +import com.codesdream.ase.component.api.QuickJSONRespond; +import com.codesdream.ase.component.json.respond.ErrorInfoJSONRespond; +import org.springframework.boot.web.servlet.error.ErrorController; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; + +@Controller +public class ASEErrorController implements ErrorController { + +/* @RequestMapping("/error") + public String handleError(HttpServletRequest request, Model model){ + Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); + Exception exception = (Exception) request.getAttribute("javax.servlet.error.exception"); + // 无效异常访问检查 + if(statusCode == null || exception == null) + model.addAttribute("if_active", false); + else { + + model.addAttribute("if_active", true); + // 检查返回的状态 + if (statusCode == HttpStatus.NOT_FOUND.value()) return "not_found"; + model.addAttribute("http_status", statusCode); + // 检查是否含有引发异常 + if (exception.getCause() == null) { + model.addAttribute("exception_name", exception.getClass().getName()); + model.addAttribute("exception_message", exception.getMessage()); + } else { + model.addAttribute("exception_name", exception.getCause().getClass().getName()); + model.addAttribute("exception_message", exception.getCause().getMessage()); + } + List stack_infos = new ArrayList<>(); + for (StackTraceElement element : exception.getStackTrace()) { + String s = element.toString(); + stack_infos.add(s); + } + model.addAttribute("error_stack", stack_infos); + model.addAttribute("exception_date", new Date()); + } + return "error"; + }*/ + + @Resource + private QuickJSONRespond quickJSONRespond; + + @RequestMapping("/error") + @ResponseBody + public String handleError(HttpServletRequest request){ + Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); + Exception exception = (Exception) request.getAttribute("javax.servlet.error.exception"); + + // 检查返回的状态 + if (statusCode == HttpStatus.NOT_FOUND.value()) return quickJSONRespond.getRespond404(null); + ErrorInfoJSONRespond errorInfoJSONRespond = new ErrorInfoJSONRespond(); + + // 检查是否含有引发异常 + if (exception.getCause() == null) { + errorInfoJSONRespond.setException(exception.getClass().getName()); + errorInfoJSONRespond.setExceptionMessage(exception.getMessage()); + } else { + errorInfoJSONRespond.setException(exception.getCause().getClass().getName()); + errorInfoJSONRespond.setExceptionMessage(exception.getCause().getMessage()); + } + errorInfoJSONRespond.setDate(new Date()); + + return quickJSONRespond.getJSONStandardRespond( + statusCode, + "Internal Server Error", + null, + errorInfoJSONRespond); + } + + @Override + public String getErrorPath() { + return "/error"; + } +} diff --git a/src/main/java/com/codesdream/ase/controller/DataManagerController.java b/src/main/java/com/codesdream/ase/controller/DataManagerController.java new file mode 100644 index 0000000..4ca4e7a --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/DataManagerController.java @@ -0,0 +1,42 @@ +package com.codesdream.ase.controller; + +import com.codesdream.ase.component.ASESpringUtil; +import com.codesdream.ase.component.datamanager.DataModelRepositorySearcher; +import com.codesdream.ase.component.datamanager.DataModelSearcher; +import org.apache.catalina.core.ApplicationContext; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.w3c.dom.Entity; + +import javax.annotation.Resource; +import java.lang.reflect.Array; +import java.lang.reflect.Field; +import java.util.*; + +@Controller +@RequestMapping(value = "/database") +public class DataManagerController { + + @Resource + ASESpringUtil springUtil; + + @RequestMapping(value = "{subSystem}/{dataModel}/query") + public String queryView(Model model, @PathVariable String dataModel, @PathVariable String subSystem) { + DataModelRepositorySearcher dataModelRepositorySearcher = springUtil.getBean(DataModelRepositorySearcher.class); + DataModelSearcher dataModelSearcher = springUtil.getBean(DataModelSearcher.class); + + dataModelSearcher.getDataModelClass(subSystem, dataModel); + if(!dataModelSearcher.isPresent()){ + throw new RuntimeException("Data Model Not Found"); + } + dataModelRepositorySearcher.getDataModelRepositoryClass(subSystem, dataModel); + if(!dataModelRepositorySearcher.isPresent()){ + throw new RuntimeException("Data Model Repository Not Found"); + } + + Map data; + return "query"; + } +} diff --git a/src/main/java/com/codesdream/ase/controller/HomeController.java b/src/main/java/com/codesdream/ase/controller/HomeController.java new file mode 100644 index 0000000..1748b9c --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/HomeController.java @@ -0,0 +1,37 @@ +package com.codesdream.ase.controller; + +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.service.IUserService; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.annotation.Resource; +import java.security.Principal; +import java.util.Optional; + +@Controller +public class HomeController { + @Resource + IUserService userService; + + @RequestMapping(value = "/home") + public String showHomeView(Model model, Principal principal){ + Optional userOptional = userService.findUserByUsername(principal.getName()); + if(!userOptional.isPresent()) return "error"; + User user = userOptional.get(); + // 为视图模板指定参数 + model.addAttribute("username", user.getUsername().substring(0, 18)); + model.addAttribute("real_name", user.getUserDetail().getRealName()); + model.addAttribute("sex", user.getUserDetail().getSex()); + model.addAttribute("student_id", user.getUserAuth().getStudentID()); + model.addAttribute("class_id", user.getUserDetail().getClassId()); + model.addAttribute("college", user.getUserDetail().getBaseCollege().getName()); + model.addAttribute("ethnic", user.getUserDetail().getBaseEthnic().getName()); + model.addAttribute("major", user.getUserDetail().getBaseMajor().getName()); + model.addAttribute("is_at_school", user.getUserDetail().isAtSchool()); + model.addAttribute("ethnic", user.getUserDetail().getBaseEthnic().getName()); + model.addAttribute("mail", user.getUserAuth().getMail()); + return "home"; + } +} diff --git a/src/main/java/com/codesdream/ase/controller/LeavesController.java b/src/main/java/com/codesdream/ase/controller/LeavesController.java new file mode 100644 index 0000000..ae85621 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/LeavesController.java @@ -0,0 +1,115 @@ +package com.codesdream.ase.controller; + +import com.alibaba.fastjson.JSONObject; +import com.codesdream.ase.component.api.QuickJSONRespond; +import com.codesdream.ase.component.auth.ASEUsernameEncoder; +import com.codesdream.ase.component.datamanager.JSONParameter; + +import com.codesdream.ase.component.json.request.UserLeaveAuth; +import com.codesdream.ase.component.json.request.UserLeaveRequest; +import com.codesdream.ase.component.json.request.UserSGettudentLeaveListRequest; +import com.codesdream.ase.component.json.respond.JSONStandardFailedRespond; +import com.codesdream.ase.exception.innerservererror.InvalidFormFormatException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.leaves.Leave; +import com.codesdream.ase.service.LeavesService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Calendar; +import java.util.Date; +import java.util.Optional; + + +/** + * 登录界面控制器类 + */ +@Slf4j +@Controller +public class LeavesController { + + @Resource + private JSONParameter jsonParameter; + + @Resource + private QuickJSONRespond quickJSONRespond; + + @Resource + private LeavesService leavesService; + + @Resource + private ASEUsernameEncoder usernameEncoder; + +/* @RequestMapping(value = "/") + String printLeave(Model model) { + return "Leave"; + }*/ + + //提交请假申请 + @RequestMapping(value = "/Leave/check", method = RequestMethod.POST) + @ResponseBody + String leaveRequest(HttpServletRequest request){ + + // 检查是否为JSON + Optional json = jsonParameter.getJSONByRequest(request); + if(!json.isPresent()) return jsonParameter.getJSONString(new JSONStandardFailedRespond()); + UserLeaveRequest userLeaveRequest=json.get().toJavaObject(UserLeaveRequest.class); + Leave newleave=new Leave(); + newleave.setUserFrom(userLeaveRequest.getUserId()); + newleave.setType(userLeaveRequest.getType()); + newleave.setReasonToLeave(userLeaveRequest.getReason()); + //newleave.set + newleave.setStartTime(userLeaveRequest.getStarttime()); + newleave.setEndTime(userLeaveRequest.getEndTime()); + Calendar calendar =Calendar.getInstance(); + Date time = calendar.getTime(); + newleave.setApplyTime(time); + + leavesService.save(newleave); + //eturn quickJSONRespond.getRespond200(null, respond); + + return quickJSONRespond.getRespond200("申请已提交"); + // 检查类型 + + } + @RequestMapping(value = "/Leave/auth", method = RequestMethod.POST) + @ResponseBody + String getLeaveAuth(HttpServletRequest request){ + + // 检查是否为JSON + Optional json = jsonParameter.getJSONByRequest(request); + if(!json.isPresent()) return jsonParameter.getJSONString(new JSONStandardFailedRespond()); + UserLeaveAuth userLeaveAuth=json.get().toJavaObject(UserLeaveAuth.class); + Optional leave =leavesService.findLeaveById(userLeaveAuth.getId()); + if(!leave.isPresent()){ + return quickJSONRespond.getRespond500("No such entry"); + } + Leave newLeave=leave.get(); + newLeave.setComment(userLeaveAuth.getComment()); + newLeave.setAuthentication(userLeaveAuth.getNewStat()); + return quickJSONRespond.getRespond200("Authentication status updated"); + } + + @RequestMapping(value = "/Leave/getStuLeaveList", method = RequestMethod.POST) + @ResponseBody + Leave getStuLeavelist(HttpServletRequest request) throws InvalidFormFormatException { + Optional json = jsonParameter.getJSONByRequest(request); + if(!json.isPresent()) throw new InvalidFormFormatException("json request not recognized"); + UserSGettudentLeaveListRequest userSGettudentLeaveListRequest=json.get().toJavaObject(UserSGettudentLeaveListRequest.class); + if(leavesService.findLeaveById(userSGettudentLeaveListRequest.getStudentId()).isPresent()){ + Leave leave =leavesService.findLeaveById(userSGettudentLeaveListRequest.getStudentId()).get(); + return leave; + }else{ + throw new NotFoundException("Student Does not exist"); + } + + } + + +} diff --git a/src/main/java/com/codesdream/ase/controller/LoginController.java b/src/main/java/com/codesdream/ase/controller/LoginController.java new file mode 100644 index 0000000..fc3a5ce --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/LoginController.java @@ -0,0 +1,106 @@ +package com.codesdream.ase.controller; + +import com.alibaba.fastjson.JSONObject; +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.api.QuickJSONRespond; +import com.codesdream.ase.component.json.respond.JSONStandardFailedRespond; +import com.codesdream.ase.component.json.request.UserLoginChecker; +import com.codesdream.ase.component.json.respond.UserLoginCheckerJSONRespond; +import com.codesdream.ase.service.IAuthService; +import com.codesdream.ase.service.IUserService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Optional; + + +/** + * 登录界面控制器类 + */ +@Slf4j +@Controller +@Api(tags = "用户登录有关接口") +public class LoginController { + + @Resource + private JSONParameter jsonParameter; + + @Resource + private QuickJSONRespond quickJSONRespond; + + @Resource + private IUserService userService; + + @Resource + private IAuthService authService; + + @PostMapping(value = "/login/check_exists") + @ResponseBody + String checkExists(HttpServletRequest request){ + + // 检查是否为JSON + Optional json = jsonParameter.getJSONByRequest(request); + if(!json.isPresent()) return quickJSONRespond.getRespond400("Invalid JSON Form"); + + + UserLoginChecker loginChecker = json.get().toJavaObject(UserLoginChecker.class); + + // 检查学号对应的用户名是否存在 + if(loginChecker.getCheckType().equals("UsernameExistChecker")){ + // 根据学号计算用户名 + String user = userService.getUsernameByStudentId(loginChecker.getUsername()); + // 查询用户名存在状态 + boolean existStatus = userService.checkIfUserExists(user).getKey(); + // 构造返回对象 + UserLoginCheckerJSONRespond respond = new UserLoginCheckerJSONRespond(); + respond.setUserExist(existStatus); + return quickJSONRespond.getRespond200(null, respond); + } + else { + // 返回失败对象 + return quickJSONRespond.getRespond400("CheckType Mismatch"); + } + } + + // 根据学号计算对应的username + @RequestMapping(value = "/login/check_uid", method = RequestMethod.POST) + @ResponseBody + String checkUsernameByStudentID(HttpServletRequest request){ + + String preValidationCode = request.getHeader("pvc"); + + // 检查随机预验证码 + if(preValidationCode == null || !authService.preValidationCodeChecker(preValidationCode)) + return quickJSONRespond.getRespond403("Invalid PreValidationCode"); + + // 检查是否为JSON + Optional json = jsonParameter.getJSONByRequest(request); + if(!json.isPresent()) return jsonParameter.getJSONString(new JSONStandardFailedRespond()); + + UserLoginChecker loginChecker = json.get().toJavaObject(UserLoginChecker.class); + + if(loginChecker.getUsername() == null || loginChecker.getCheckType() == null) + return quickJSONRespond.getRespond406("Request Violates The Interface Protocol"); + + if(loginChecker.getCheckType().equals("UIDGeneratorChecker")) { + UserLoginCheckerJSONRespond respond = new UserLoginCheckerJSONRespond(); + respond.setUid(userService.getUsernameByStudentId(loginChecker.getUsername())); + return quickJSONRespond.getRespond200(null, respond); + } + else { + // 返回失败对象 + return quickJSONRespond.getRespond400("CheckType Mismatch"); + } + } + + + +} diff --git a/src/main/java/com/codesdream/ase/controller/RegisterController.java b/src/main/java/com/codesdream/ase/controller/RegisterController.java new file mode 100644 index 0000000..0908a34 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/RegisterController.java @@ -0,0 +1,97 @@ +package com.codesdream.ase.controller; + +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.api.QuickJSONRespond; +import com.codesdream.ase.component.json.request.UserRegisterChecker; +import com.codesdream.ase.model.information.BaseStudentInfo; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.service.BaseInformationService; +import com.codesdream.ase.service.UserService; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Optional; + +@Controller +public class RegisterController { + @Resource + private UserService userService; + + @Resource + private BaseInformationService baseInformationService; + + @Resource + private JSONParameter jsonParameter; + + @Resource + private QuickJSONRespond quickJSONRespond; + + @RequestMapping(value = "/register") + String registerView(Model model){ + return "register"; + } + + // 处理注册表单 + @PostMapping(value = "/register/do_register") + @ResponseBody + String doRegister(HttpServletRequest request){ + + Optional registerCheckerOptional = + jsonParameter.getJavaObjectByRequest(request, UserRegisterChecker.class); + + // 检查JSON是否完整 + if(!registerCheckerOptional.isPresent()){ + return quickJSONRespond.getRespond400("Illegal JSON Format"); + } + + // 检查数据是否完整 + UserRegisterChecker registerChecker = registerCheckerOptional.get(); + if(registerChecker.getPassword() == null + || registerChecker.getStudentId() == null + || registerChecker.getUserAnswer() == null + || registerChecker.getUserQuestion() == null){ + return quickJSONRespond.getRespond400("Incomplete Data"); + } + + // 获得提交学号 + String student_id = registerChecker.getStudentId(); + // 获得密保问题 + String user_question = registerChecker.getUserQuestion(); + // 获得密保答案 + String user_answer = registerChecker.getUserAnswer(); + + // 检查用户的基本信息是否录入系统 + if(!baseInformationService.checkStudentInfo(student_id)) + return quickJSONRespond.getRespond500("StudentID Base Information Not Found"); + + // 检查学号是否已被注册 + if(userService.checkIfUserExists(userService.getUsernameByStudentId(student_id)).getKey()){ + return quickJSONRespond.getRespond500("StudentID Already Used"); + } + + // 查找对应的基本信息 + BaseStudentInfo studentInfo = baseInformationService.findStudentInfoByStudentId(student_id); + + // 根据基本信息生成对应用户 + User user = userService.createUserByStudentInfo(studentInfo); + + // 填充密保问题 + user.getUserAuth().setUserQuestion(user_question); + user.getUserAuth().setUserAnswer(user_answer); + user.getUserAuth().setMail(""); + + String password = registerChecker.getPassword(); + + user.setPassword(password); + userService.save(user); + + // 成功注册 + return quickJSONRespond.getRespond200("Register Success"); + } + +} diff --git a/src/main/java/com/codesdream/ase/controller/activity/ActivityAttendanceController.java b/src/main/java/com/codesdream/ase/controller/activity/ActivityAttendanceController.java new file mode 100644 index 0000000..568e2cb --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/activity/ActivityAttendanceController.java @@ -0,0 +1,16 @@ +package com.codesdream.ase.controller.activity; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.annotation.Resource; + +@Controller +@RequestMapping("/act") +public class ActivityAttendanceController { + + private final String url = "/forget"; + + +} diff --git a/src/main/java/com/codesdream/ase/controller/activity/ActivityCreatorController.java b/src/main/java/com/codesdream/ase/controller/activity/ActivityCreatorController.java new file mode 100644 index 0000000..a1ea1e2 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/activity/ActivityCreatorController.java @@ -0,0 +1,155 @@ +package com.codesdream.ase.controller.activity; + +import com.alibaba.fastjson.JSONObject; +import com.codesdream.ase.component.ASESpringUtil; +import com.codesdream.ase.component.activity.ActivityConverter; +import com.codesdream.ase.component.activity.NullValueAttributes; +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.respond.JSONStandardFailedRespond; +import com.codesdream.ase.configure.ActivityFormConfigure; +import com.codesdream.ase.exception.innerservererror.InvalidFormFormatException; +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.activity.UserActivity; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.repository.activity.UserActivityRepository; +import com.codesdream.ase.service.ActivityService; +import com.codesdream.ase.service.UserService; +import com.codesdream.ase.validator.ActivityValidator; +import com.codesdream.ase.validator.NullValueValidator; +import com.codesdream.ase.validator.JSONFormValidator; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Optional; + +@Controller +@RequestMapping("/forget/act") +public class ActivityCreatorController { + + @Resource + ActivityService activityService; + + @Resource + JSONParameter jsonParameter; + + @Resource + ASESpringUtil aseSpringUtil; + + @Resource + ActivityFormConfigure activityFormConfigure; + + @Resource + JSONFormValidator jsonFormValidator; + + @Resource + NullValueValidator nullValueValidator; + + @Resource + NullValueAttributes nullValueAttributes; + + @Resource + ActivityValidator activityValidator; + + @Resource + UserService userService; + + @Resource + UserActivityRepository userActivityRepository; + + @Resource + ActivityConverter activityConverter; + + + @PostMapping(value = "/creator") + @ResponseBody + @ApiOperation(value = "创建活动", notes = "所有有关用户的数据传递均使用id,类型为int") + @ApiImplicitParams({ + @ApiImplicitParam(name = "title", value = "活动标题", dataType = "String", required = true), + @ApiImplicitParam(name = "type", value = "活动类型", dataType = "String", required = true), + @ApiImplicitParam(name = "start-time", value = "活动开始时间,格式为yyyy-MM-dd HH:mm:ss", required = true), + @ApiImplicitParam(name = "end-time", value = "活动结束时间,格式为yyyy-MM-dd HH:mm:ss", required = true), + @ApiImplicitParam(name = "chief-manager", dataType = "int", value = "主要负责人", required = true), + @ApiImplicitParam(name = "assist-managers", dataType = "int", value = "次要负责人"), + @ApiImplicitParam(name = "description", dataType = "String", value = "活动描述"), + @ApiImplicitParam(name = "cycle", dataType = "String", value = "活动周期,格式为阿拉伯数字数字+单位,0表示无周期"), + @ApiImplicitParam(name = "participate-group", value = "预定参与人员"), + @ApiImplicitParam(name = "sign-group", dataType = "List", value = "可参与人员"), + @ApiImplicitParam(name = "inform-group", dataType = "List", value = "通知人群,若为空,则默认为预定参与人员和可报名人员的并集"), + @ApiImplicitParam(name = "visible-group", dataType = "List", value = "活动可见人群,若为空,则默认为负责人、活动创建者预定参和可报名人员以及通知人员的并集"), + @ApiImplicitParam(name = "remind-time", dataType = "String", defaultValue = "30m", value = "活动提醒时间,格式为数字+单位,可接受的单位从大到小有:w,d,h,m,s"), + }) + String activityCreator(HttpServletRequest request) throws InvalidFormFormatException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { + + JSONObject error = new JSONObject(); + aseSpringUtil = new ASESpringUtil(); + //判断是否为JSON对象 + Optional json = jsonParameter.getJSONByRequest(request); + if (!json.isPresent()) return jsonParameter.getJSONString(new JSONStandardFailedRespond()); + + List formatCheckResult = jsonFormValidator.check(activityFormConfigure.getStdActivityForm(), json.get()); + + //检验JSON格式是否有误 + if (!formatCheckResult.isEmpty()) { + error.put("error", formatCheckResult); + throw new InvalidFormFormatException(error.toJSONString()); + } + Activity activity = activityConverter.convertToActivity(json); + List nullValues = nullValueValidator.checkNullValues(activity); + + for (String str : nullValues){ + if(str.equals("title")){ + nullValueAttributes.getNullValueAttributes().add("title"); + } + else if(str.equals("creator")){ + nullValueAttributes.getNullValueAttributes().add("creator"); + } + else if(str.equals("type")){ + nullValueAttributes.getNullValueAttributes().add("type"); + } + else if(str.equals("planPeriod")){ + nullValueAttributes.getNullValueAttributes().add("planPeriod"); + } + else if(str.equals("chiefManager")){ + nullValueAttributes.getNullValueAttributes().add("chiefManager"); + } + } + //如果为空,存下此活动并跳转至成功创建页面 + if (!nullValueAttributes.getNullValueAttributes().isEmpty()) { + + String[] errorParameters = activityValidator.check(json); + if(errorParameters != null){ + JSONObject invalidParameters = new JSONObject(); + invalidParameters.put("invalid_parameters", errorParameters); + return invalidParameters.toJSONString(); + + } + else{ + activity = activityService.createActivity(activity); + String username = json.get().get("creator").toString(); + Optional user = userService.findUserByUsername(username); + UserActivity userActivity = userActivityRepository.findByUser(user.get()); + userActivity.getCreatedActs().add(activity); + userActivityRepository.save(userActivity); + } + } + //否则返回一个JSON对象给前端 + else{ + JSONObject nullParameters = new JSONObject(); + nullParameters.put("null_values",nullValueAttributes.getNullValueAttributes()); + return nullParameters.toJSONString(); + } + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(activity); + return jsonObject.toJSONString(); + } +} + + diff --git a/src/main/java/com/codesdream/ase/controller/activity/ActivityViewerController.java b/src/main/java/com/codesdream/ase/controller/activity/ActivityViewerController.java new file mode 100644 index 0000000..27ffa82 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/activity/ActivityViewerController.java @@ -0,0 +1,94 @@ +package com.codesdream.ase.controller.activity; + +import com.alibaba.fastjson.JSONObject; +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.service.ActivityService; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@Controller +@RequestMapping("/forget/act") +public class ActivityViewerController { + + + @Resource + ActivityService activityService; + + @GetMapping("/created_acts") + String showCreated() { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findCreatedActs(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/parting_acts") + String showParticipate(HttpServletRequest request) { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findParticipatingActs(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/parted_acts") + String showParticipated() { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findParticipatedActs(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/sign_acts") + String showSign() { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findSignActs(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/vis_acts") + String showVisible() { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findVisibleActs(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/all") + String showAll() { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findAll(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/main_responsible_acts") + String showMainResponsible() { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findMainResponsibleActs(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/sec_responsible_acts") + String showSecondaryResponsible() { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findSecondaryResponsibleActs(user); + return JSONObject.toJSONString(activities); + } + + @GetMapping("/acts_by_type") + String showInType(@RequestParam(defaultValue = "考勤", name = "type") String type) { + + User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + List activities = activityService.findActivityByType(user, type); + return JSONObject.toJSONString(activities); + } +} diff --git a/src/main/java/com/codesdream/ase/controller/activity/QRCodeController.java b/src/main/java/com/codesdream/ase/controller/activity/QRCodeController.java new file mode 100644 index 0000000..3c5d7d0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/activity/QRCodeController.java @@ -0,0 +1,36 @@ +package com.codesdream.ase.controller.activity; + +import com.codesdream.ase.component.activity.QrCodeUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; + +@Controller +public class QRCodeController { + + /** + * 二维码 + * + * @param request + * @param response + */ + @GetMapping("/qrcode") + public void qrCode(HttpServletRequest request, HttpServletResponse response) { + StringBuffer url = request.getRequestURL(); + // 域名 + String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append("/").toString(); + + // 再加上请求链接 + String requestUrl = tempContextUrl + "/index"; + try { + OutputStream os = response.getOutputStream(); + QrCodeUtils.encode(requestUrl, "", os, true); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/codesdream/ase/controller/permission/FPCController.java b/src/main/java/com/codesdream/ase/controller/permission/FPCController.java new file mode 100644 index 0000000..bd8cb3d --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/permission/FPCController.java @@ -0,0 +1,169 @@ +package com.codesdream.ase.controller.permission; + +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.model.JsonableFPC; +import com.codesdream.ase.component.json.model.JsonableFunction; +import com.codesdream.ase.component.json.model.JsonableRoleList; +import com.codesdream.ase.component.json.model.JsonableUser; +import com.codesdream.ase.exception.badrequest.AlreadyExistException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.Function; +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.service.PermissionService; +import com.github.fge.jsonpatch.JsonPatch; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.spring.web.json.Json; + +import javax.annotation.Resource; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +@RestController +@RequestMapping(value = "pmt") +@Api(tags = "功能性权限容器接口") +public class FPCController { + + @Resource + private PermissionService permissionService; + + @Resource + private JSONParameter jsonParameter; + + @GetMapping("fpc") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "查找功能性权限容器") + public JsonableFPC getFPC(@RequestParam(value = "id") Integer id){ + Optional fpc = permissionService.findFPC(id); + if(!fpc.isPresent()) throw new NotFoundException(id.toString()); + return new JsonableFPC(fpc.get()); + } + + @PostMapping("fpc") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "创建新的功能性权限容器") + public JsonableFPC createFPC(@RequestBody JsonableFPC fpc){ + if(permissionService.findFPC(fpc.getName()).isPresent()) throw new AlreadyExistException(fpc.getName()); + FunctionalPermissionContainer functionalPermissionContainer = new FunctionalPermissionContainer(); + + + return new JsonableFPC(permissionService.save(fpc.parseObject(functionalPermissionContainer))); + } + + @GetMapping("fpcs") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "获得所有功能性权限容器的信息") + public Set listFPC(){ + Iterable fpcs = permissionService.findAllFPC(); + Set jsonableFPCS = new HashSet<>(); + for(FunctionalPermissionContainer fpc : fpcs){ + jsonableFPCS.add(new JsonableFPC(fpc)); + } + return jsonableFPCS; + } + + @GetMapping("fpc/roles") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "获得功能性权限容器所属角色") + public JsonableRoleList getFPCRoleList(@RequestParam(value = "id") Integer id){ + Optional functionalPermissionContainer = + permissionService.findFPC(id); + if(!functionalPermissionContainer.isPresent()) throw new NotFoundException(id.toString()); + + return new JsonableRoleList(functionalPermissionContainer.get()); + } + + @PatchMapping("fpc") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "更新标功能性权限容器内容") + public JsonableFPC patchFPC(@RequestParam(value = "id") Integer id, @RequestBody JsonPatch patch){ + Optional fpc = permissionService.findFPC(id); + if(!fpc.isPresent()) throw new NotFoundException(id.toString()); + + JsonableFPC jsonableFPC = new JsonableFPC(fpc.get()); + + jsonableFPC = jsonParameter.parsePathToObject(patch, jsonableFPC); + + return new JsonableFPC(permissionService.update(jsonableFPC.parseObject(fpc.get()))); + } + + @GetMapping("fpc/funcs") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "功能性权限容器所含功能集合") + public Set getFunctionFPC(@RequestParam(value = "id") Integer id){ + Optional fpc = permissionService.findFPC(id); + if(!fpc.isPresent()) throw new NotFoundException(id.toString()); + + + Set jsonableFunctions = new HashSet<>(); + for(Function function : fpc.get().getFunctions()){ + jsonableFunctions.add(new JsonableFunction(function)); + } + return jsonableFunctions; + } + + @PutMapping("fpc/funcs") + @ApiOperation("搜索单个功能性权限容器所属功能集合信息") + public Set setFunctionFPC(@RequestParam(value = "id") Integer id, + @RequestBody List functionIdList){ + Optional fpc = permissionService.findFPC(id); + if(!fpc.isPresent()) throw new NotFoundException(id.toString()); + + Set functionSet = new HashSet<>(functionIdList); + fpc.get().setFunctions(permissionService.findFunctions(functionSet)); + + Set jsonableFunctions = new HashSet<>(); + for(Function function : permissionService.update(fpc.get()).getFunctions()){ + jsonableFunctions.add(new JsonableFunction(function)); + } + return jsonableFunctions; + } + + @PostMapping("fpc/funcs") + @ApiOperation("从单个功能性权限容器所属功能集合中添加一个或多个功能") + public Set addFunctionFPC(@RequestParam(value = "id") Integer id, + @RequestBody List functionIdList){ + Optional fpc = permissionService.findFPC(id); + if(!fpc.isPresent()) throw new NotFoundException(id.toString()); + Set newFunctionSet = permissionService.findFunctions(new HashSet<>(functionIdList)); + + Set functionSet = fpc.get().getFunctions(); + + functionSet.addAll(newFunctionSet); + fpc.get().setFunctions(functionSet); + + Set jsonableFunctions = new HashSet<>(); + for(Function function : permissionService.update(fpc.get()).getFunctions()){ + jsonableFunctions.add(new JsonableFunction(function)); + } + return jsonableFunctions; + } + + @DeleteMapping("fpc/funcs") + @ResponseStatus(HttpStatus.OK) + @ApiOperation("从单个功能性权限容器所属功能集合中删除一个或多个功能") + public Set deleteUserTag(@RequestParam Integer id, + @RequestBody List functionIdList){ + Optional fpc = permissionService.findFPC(id); + if(!fpc.isPresent()) throw new NotFoundException(id.toString()); + Set functionSet = fpc.get().getFunctions(); + Set deleteFuncSet = permissionService.findFunctions(new HashSet<>(functionIdList)); + + functionSet.removeAll(deleteFuncSet); + fpc.get().setFunctions(functionSet); + + Set jsonableFunctions = new HashSet<>(); + for(Function function : permissionService.update(fpc.get()).getFunctions()){ + jsonableFunctions.add(new JsonableFunction(function)); + } + return jsonableFunctions; + } + +} diff --git a/src/main/java/com/codesdream/ase/controller/permission/FunctionController.java b/src/main/java/com/codesdream/ase/controller/permission/FunctionController.java new file mode 100644 index 0000000..f31a831 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/permission/FunctionController.java @@ -0,0 +1,78 @@ +package com.codesdream.ase.controller.permission; + +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.model.JsonableFPC; +import com.codesdream.ase.component.json.model.JsonableFunction; +import com.codesdream.ase.component.json.model.JsonableRoleList; +import com.codesdream.ase.exception.badrequest.AlreadyExistException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.Function; +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import com.codesdream.ase.service.PermissionService; +import com.github.fge.jsonpatch.JsonPatch; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + + +@RestController +@RequestMapping(value = "pmt") +@Api(tags = "功能接口") +public class FunctionController { + @Resource + private PermissionService permissionService; + + @Resource + private JSONParameter jsonParameter; + + @GetMapping("func") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "查找功能") + public JsonableFunction getFunction(@RequestParam(value = "id") Integer id){ + Optional function = permissionService.findFunction(id); + if(!function.isPresent()) throw new NotFoundException(id.toString()); + return new JsonableFunction(function.get()); + } + + @PostMapping("func") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "创建新的功能") + public JsonableFunction createFunction(@RequestBody JsonableFunction function){ + if(permissionService.findFunction(function.getName()).isPresent()) + throw new AlreadyExistException(function.getName()); + + return new JsonableFunction(permissionService.save(function.parseObject(new Function()))); + } + + @GetMapping("funcs") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "获得所有功能的信息") + public Set listFunction(){ + Iterable functions = permissionService.findAllFunction(); + Set jsonableFunctions = new HashSet<>(); + for(Function function : functions){ + jsonableFunctions.add(new JsonableFunction(function)); + } + return jsonableFunctions; + } + + @PatchMapping("func") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "更新标功能内容") + public JsonableFunction patchFunction(@RequestParam(value = "id") Integer id, @RequestBody JsonPatch patch){ + Optional function = permissionService.findFunction(id); + if(!function.isPresent()) throw new NotFoundException(id.toString()); + + JsonableFunction jsonableFunction = new JsonableFunction(function.get()); + + jsonableFunction = jsonParameter.parsePathToObject(patch, jsonableFunction); + + return new JsonableFunction(permissionService.update(jsonableFunction.parseObject(function.get()))); + } +} diff --git a/src/main/java/com/codesdream/ase/controller/permission/SPCController.java b/src/main/java/com/codesdream/ase/controller/permission/SPCController.java new file mode 100644 index 0000000..8cf9963 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/permission/SPCController.java @@ -0,0 +1,92 @@ +package com.codesdream.ase.controller.permission; + +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.model.JsonableSPC; +import com.codesdream.ase.component.json.model.JsonableTag; +import com.codesdream.ase.exception.badrequest.AlreadyExistException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.ScopePermissionContainer; +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.service.PermissionService; +import com.github.fge.jsonpatch.JsonPatch; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + +@RestController +@RequestMapping(value = "pmt") +@Api(tags = "范围性权限容器接口") +public class SPCController { + + @Resource + private PermissionService permissionService; + + @Resource + private JSONParameter jsonParameter; + + @GetMapping(value = "spc") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "获得范围性权限容器信息") + public JsonableSPC getSPC(@RequestParam(value = "id") Integer id){ + Optional spc = permissionService.findSPC(id); + if(!spc.isPresent()) throw new NotFoundException(id.toString()); + + return new JsonableSPC(spc.get()); + + } + + @GetMapping(value = "spcs") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "获得所有的范围性权限容器信息") + public Set listSPC(){ + Iterable spcs = permissionService.findALLSPC(); + Set jsonableSPCS = new HashSet<>(); + for(ScopePermissionContainer spc : spcs){ + jsonableSPCS.add(new JsonableSPC(spc)); + } + return jsonableSPCS; + } + + @GetMapping(value = "spc/tags") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "查询范围性权限容器下的所有标签集合") + public Set listSPCTag(@RequestParam(value = "id") Integer id){ + Optional spc = permissionService.findSPC(id); + if(!spc.isPresent()) throw new NotFoundException(id.toString()); + + Set tags = new HashSet<>(); + for(Tag tag : spc.get().getTags()){ + tags.add(new JsonableTag(tag)); + } + return tags; + } + + @PostMapping(value = "spc") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "创建范围性权限容器") + public JsonableSPC createSPC(@RequestBody JsonableSPC spc) { + if(permissionService.findSPC(spc.getName()).isPresent()) throw new AlreadyExistException(spc.getName()); + + return new JsonableSPC(permissionService.save(spc.parseObject(permissionService.getDefaultSPC(spc.getName())))); + } + + @PatchMapping(value = "spc") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "更新范围性权限容器信息") + public JsonableSPC updateSPC(@RequestParam(value = "id") Integer id, @RequestBody JsonPatch patch){ + Optional spc = permissionService.findSPC(id); + if(!spc.isPresent()) throw new NotFoundException(id.toString()); + JsonableSPC jsonableSPC = jsonParameter.parsePathToObject(patch, new JsonableSPC(spc.get())); + + return new JsonableSPC(permissionService.update(jsonableSPC.parseObject(spc.get()))); + } + + + +} diff --git a/src/main/java/com/codesdream/ase/controller/permission/TagController.java b/src/main/java/com/codesdream/ase/controller/permission/TagController.java new file mode 100644 index 0000000..1ad8d60 --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/permission/TagController.java @@ -0,0 +1,222 @@ +package com.codesdream.ase.controller.permission; + +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.model.JsonablePCCList; +import com.codesdream.ase.component.json.model.JsonableTag; +import com.codesdream.ase.component.json.model.JsonableUser; +import com.codesdream.ase.exception.badrequest.AlreadyExistException; +import com.codesdream.ase.exception.conflict.RelatedObjectsExistException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.PermissionContainersCollection; +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.service.IUserService; +import com.codesdream.ase.service.PermissionService; + +import com.github.fge.jsonpatch.JsonPatch; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +@RestController +@RequestMapping("pmt") +@Api(tags = "标签管理接口") +public class TagController { + + @Resource + private PermissionService permissionService; + + @Resource + private IUserService userService; + + @Resource + private JSONParameter jsonParameter; + + // 根据名字创建新的标签 + @PostMapping("tag") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "创建新的标签", notes = "创建标签时其ID自动分配,指定ID无效") + public JsonableTag createTag(@RequestBody JsonableTag tag){ + String tagName = tag.getName(); + Optional tagOptional = permissionService.findTag(tagName); + if(tagOptional.isPresent()) throw new AlreadyExistException(tagName); + + return new JsonableTag(permissionService.save(tag.parseObject(permissionService.getDefaultTag(tag.getName())))); + } + + // 根据名字搜索标签的简要信息 + @GetMapping("tag") + @ResponseStatus(HttpStatus.OK) + @ApiOperation("搜索标签信息") + public JsonableTag checkTag(@RequestParam(value = "id") Integer id){ + Optional tagOptional = permissionService.findTag(id); + if(tagOptional.isPresent()){ + return new JsonableTag(tagOptional.get()); + } + else throw new NotFoundException(id.toString()); + } + + // 根据名字搜索标签的简要信息 + @GetMapping("tags") + @ResponseStatus(HttpStatus.OK) + @ApiOperation("列出所有的标签信息") + public Set listTag(){ + Iterable tagIterable = permissionService.findAllTag(); + Set jsonableTagSet = new HashSet<>(); + for(Tag tag : tagIterable){ + jsonableTagSet.add(new JsonableTag(tag)); + } + return jsonableTagSet; + } + + // 根据名字搜索标签的简要信息 + @DeleteMapping("tag") + @ResponseStatus(HttpStatus.NO_CONTENT) + @ApiOperation("删除标签") + public void deleteTag(@RequestParam(value = "id") Integer id){ + Optional tag = permissionService.findTag(id); + if(!tag.isPresent()) throw new NotFoundException(id.toString()); + + // 检查外键关联 + if(tag.get().getUsers().size() > 0) throw new RelatedObjectsExistException(); + if(tag.get().getPermissionContainersCollections().size() > 0) throw new RelatedObjectsExistException(); + + permissionService.delete(tag.get()); + } + + // 根据名字搜索标签的简要信息 + @PatchMapping(path = "tag") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation("修改标签属性") + public JsonableTag updateTag(@RequestParam(value = "id") Integer id, @RequestBody JsonPatch patch){ + Optional tag = permissionService.findTag(id); + if(!tag.isPresent()) throw new NotFoundException(id.toString()); + + JsonableTag jsonableTag = new JsonableTag(tag.get()); + jsonableTag = jsonParameter.parsePathToObject(patch, jsonableTag); + + return new JsonableTag(permissionService.update(jsonableTag.parseObject(tag.get()))); + + } + + @GetMapping("tag/users") + @ResponseStatus(HttpStatus.OK) + @ApiOperation("搜索单个标签所属用户集合信息") + public Set getUserTag(@RequestParam(value = "id") Integer id){ + Optional tag = permissionService.findTag(id); + if(!tag.isPresent()) throw new NotFoundException(id.toString()); + Set jsonableUsers = new HashSet<>(); + for(User user : tag.get().getUsers()){ + jsonableUsers.add(new JsonableUser(user)); + } + return jsonableUsers; + } + + @PutMapping("tag/users") + @ApiOperation("搜索单个标签所属用户集合信息") + public Set setUserTag(@RequestParam(value = "id") Integer id, + @RequestBody List userIdList){ + Optional tag = permissionService.findTag(id); + if(!tag.isPresent()) throw new NotFoundException(id.toString()); + + Set userSet = new HashSet<>(userIdList); + tag.get().setUsers(userService.findUsersById(userSet)); + + Set jsonableUsers = new HashSet<>(); + for(User user : permissionService.update(tag.get()).getUsers()){ + jsonableUsers.add(new JsonableUser(user)); + } + return jsonableUsers; + } + + @PostMapping("tag/users") + @ApiOperation("从单个标签所属用户集合中添加一个或多个用户") + public Set addUserTag(@RequestParam(value = "id") Integer id, + @RequestBody List userIdList){ + Optional tag = permissionService.findTag(id); + if(!tag.isPresent()) throw new NotFoundException(id.toString()); + Set newUserSet = userService.findUsersById(new HashSet<>(userIdList)); + + Set userSet = tag.get().getUsers(); + + userSet.addAll(newUserSet); + tag.get().setUsers(userSet); + + Set jsonableUsers = new HashSet<>(); + for(User user : permissionService.update(tag.get()).getUsers()){ + jsonableUsers.add(new JsonableUser(user)); + } + return jsonableUsers; + } + + @DeleteMapping("tag/users") + @ResponseStatus(HttpStatus.OK) + @ApiOperation("从单个标签所属用户集合中删除一个或多个用户") + public Set deleteUserTag(@RequestParam Integer id, + @RequestBody List userIdList){ + Optional tag = permissionService.findTag(id); + if(!tag.isPresent()) throw new NotFoundException(id.toString()); + Set userSet = tag.get().getUsers(); + Set deleteUserSet = userService.findUsersById(new HashSet<>(userIdList)); + + userSet.removeAll(deleteUserSet); + tag.get().setUsers(userSet); + + Set jsonableUsers = new HashSet<>(); + for(User user : permissionService.update(tag.get()).getUsers()){ + jsonableUsers.add(new JsonableUser(user)); + } + return jsonableUsers; + } + + @GetMapping("tags/users") + @ResponseStatus(HttpStatus.OK) + @ApiOperation("搜索多个标签所属用户集合信息") + public Set getUserTags(@RequestParam(value = "id") List ids){ + Set tagSet = permissionService.findTags(ids); + Set userSet = new HashSet<>(); + Set jsonableUsers = new HashSet<>(); + for(Tag tag : tagSet){ + userSet.addAll(tag.getUsers()); + } + for(User user : userSet){ + jsonableUsers.add(new JsonableUser(user)); + } + return jsonableUsers; + } + + @GetMapping("tag/pcc") + @ResponseStatus(HttpStatus.OK) + @ApiOperation("获取标签所含权力列表") + public JsonablePCCList getPCCTag(@RequestParam(value = "id") Integer id){ + Optional tagOptional = permissionService.findTag(id); + if(!tagOptional.isPresent()) throw new NotFoundException(id.toString()); + + return new JsonablePCCList(tagOptional.get()); + } + + @PostMapping("tag/pcc") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation("在指定标签的权限列表中添加一个或多个权限容器") + public JsonablePCCList addPCCTag(@RequestParam(value = "id") Integer id, JsonablePCCList jsonablePCCList){ + Optional tagOptional = permissionService.findTag(id); + if(!tagOptional.isPresent()) throw new NotFoundException(id.toString()); + + Set pccs = tagOptional.get().getPermissionContainersCollections(); + pccs.addAll(permissionService.findPCCs(new HashSet<>(jsonablePCCList.getPccIdList()))); + + tagOptional.get().setPermissionContainersCollections(pccs); + + return new JsonablePCCList(permissionService.save(tagOptional.get())); + } + + + +} diff --git a/src/main/java/com/codesdream/ase/controller/permission/UserController.java b/src/main/java/com/codesdream/ase/controller/permission/UserController.java new file mode 100644 index 0000000..2ded81d --- /dev/null +++ b/src/main/java/com/codesdream/ase/controller/permission/UserController.java @@ -0,0 +1,68 @@ +package com.codesdream.ase.controller.permission; + +import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.json.model.JsonableFunction; +import com.codesdream.ase.component.json.model.JsonableUser; +import com.codesdream.ase.exception.badrequest.AlreadyExistException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.Function; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.service.PermissionService; +import com.codesdream.ase.service.UserService; +import com.github.fge.jsonpatch.JsonPatch; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + +@RestController +@RequestMapping(value = "pmt") +@Api(tags = "用户管理接口") +public class UserController { + + @Resource + private UserService userService; + + @Resource + private JSONParameter jsonParameter; + + @GetMapping("user") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "查找用户") + public JsonableUser getUser(@RequestParam(value = "id") Integer id){ + Optional user = userService.findUserById(id); + if(!user.isPresent()) throw new NotFoundException(id.toString()); + return new JsonableUser(user.get()); + } + + @GetMapping("users") + @ResponseStatus(HttpStatus.OK) + @ApiOperation(value = "获得所有用户的信息") + public Set listUser(){ + Iterable users = userService.findAll(); + Set jsonableUsers = new HashSet<>(); + for(User user : users){ + jsonableUsers.add(new JsonableUser(user)); + } + return jsonableUsers; + } + + @PatchMapping("user") + @ResponseStatus(HttpStatus.CREATED) + @ApiOperation(value = "更新标用户的部分信息") + public JsonableUser patchUser(@RequestParam(value = "id") Integer id, @RequestBody JsonPatch patch){ + Optional userOptional = userService.findUserById(id); + if(!userOptional.isPresent()) throw new NotFoundException(id.toString()); + + JsonableUser jsonableUser = new JsonableUser(userOptional.get()); + + jsonableUser = jsonParameter.parsePathToObject(patch, jsonableUser); + + return new JsonableUser(userService.update(jsonableUser.parseObject(userOptional.get()))); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/DataReaderRowIndexOutOfRangeException.java b/src/main/java/com/codesdream/ase/exception/DataReaderRowIndexOutOfRangeException.java new file mode 100644 index 0000000..fb004a4 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/DataReaderRowIndexOutOfRangeException.java @@ -0,0 +1,9 @@ +package com.codesdream.ase.exception; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class DataReaderRowIndexOutOfRangeException extends RuntimeException { +} diff --git a/src/main/java/com/codesdream/ase/exception/JSONTokenExpiredException.java b/src/main/java/com/codesdream/ase/exception/JSONTokenExpiredException.java new file mode 100644 index 0000000..8c90908 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/JSONTokenExpiredException.java @@ -0,0 +1,9 @@ +package com.codesdream.ase.exception; + +import org.springframework.security.core.AuthenticationException; + +public class JSONTokenExpiredException extends AuthenticationException { + public JSONTokenExpiredException(String msg) { + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/JSONTokenIncorrectSignedException.java b/src/main/java/com/codesdream/ase/exception/JSONTokenIncorrectSignedException.java new file mode 100644 index 0000000..edef8c0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/JSONTokenIncorrectSignedException.java @@ -0,0 +1,10 @@ +package com.codesdream.ase.exception; + +import org.springframework.security.core.AuthenticationException; + +public class JSONTokenIncorrectSignedException extends AuthenticationException { + + public JSONTokenIncorrectSignedException(String msg) { + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/LackOfActivityInformationException.java b/src/main/java/com/codesdream/ase/exception/LackOfActivityInformationException.java new file mode 100644 index 0000000..656d2ca --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/LackOfActivityInformationException.java @@ -0,0 +1,18 @@ +package com.codesdream.ase.exception; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class LackOfActivityInformationException extends Throwable { + private String message = ""; + + public LackOfActivityInformationException() { + super(); + } + + public LackOfActivityInformationException(String message) { + this.message = message; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/StringFileConvertException.java b/src/main/java/com/codesdream/ase/exception/StringFileConvertException.java new file mode 100644 index 0000000..86675c1 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/StringFileConvertException.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.exception; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class StringFileConvertException extends RuntimeException { + public StringFileConvertException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/badrequest/AlreadyExistException.java b/src/main/java/com/codesdream/ase/exception/badrequest/AlreadyExistException.java new file mode 100644 index 0000000..81fa88b --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/badrequest/AlreadyExistException.java @@ -0,0 +1,14 @@ +package com.codesdream.ase.exception.badrequest; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +public class AlreadyExistException extends RuntimeException { + public AlreadyExistException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationAlreadyExistException.java b/src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationAlreadyExistException.java new file mode 100644 index 0000000..47fda13 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationAlreadyExistException.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.exception.badrequest; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class BaseInformationAlreadyExistException extends AlreadyExistException { + private String className; + private String value; + + public BaseInformationAlreadyExistException(Class aClass, String value){ + super(String.format("%s: %s", aClass.getName(), value)); + this.className = aClass.getName(); + this.value = value; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationIllegalException.java b/src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationIllegalException.java new file mode 100644 index 0000000..1cd9768 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/badrequest/BaseInformationIllegalException.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.exception.badrequest; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class BaseInformationIllegalException extends IllegalException { + String type; + String value; + + public BaseInformationIllegalException(Class aClass, String value){ + super(); + this.type = aClass.getName(); + this.value = value; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/badrequest/IllegalException.java b/src/main/java/com/codesdream/ase/exception/badrequest/IllegalException.java new file mode 100644 index 0000000..c62f81a --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/badrequest/IllegalException.java @@ -0,0 +1,10 @@ +package com.codesdream.ase.exception.badrequest; + +import lombok.NoArgsConstructor; + +@NoArgsConstructor +public class IllegalException extends RuntimeException { + public IllegalException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/badrequest/UserInformationIllegalException.java b/src/main/java/com/codesdream/ase/exception/badrequest/UserInformationIllegalException.java new file mode 100644 index 0000000..1107c14 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/badrequest/UserInformationIllegalException.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.exception.badrequest; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class UserInformationIllegalException extends IllegalException { + + String username; + + public UserInformationIllegalException(String username){ + super(); + this.username = username; + } + +} diff --git a/src/main/java/com/codesdream/ase/exception/badrequest/UsernameAlreadyExistException.java b/src/main/java/com/codesdream/ase/exception/badrequest/UsernameAlreadyExistException.java new file mode 100644 index 0000000..c08d0e0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/badrequest/UsernameAlreadyExistException.java @@ -0,0 +1,16 @@ +package com.codesdream.ase.exception.badrequest; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class UsernameAlreadyExistException extends AlreadyExistException { + + String username; + + public UsernameAlreadyExistException(String username){ + super(username); + this.username = username; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/conflict/RelatedObjectsExistException.java b/src/main/java/com/codesdream/ase/exception/conflict/RelatedObjectsExistException.java new file mode 100644 index 0000000..48fb482 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/conflict/RelatedObjectsExistException.java @@ -0,0 +1,13 @@ +package com.codesdream.ase.exception.conflict; + +import lombok.NoArgsConstructor; + +/** + * 存在与之相关联的对象 + */ +@NoArgsConstructor +public class RelatedObjectsExistException extends RuntimeException { + public RelatedObjectsExistException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/innerservererror/DataIOException.java b/src/main/java/com/codesdream/ase/exception/innerservererror/DataIOException.java new file mode 100644 index 0000000..7c3615e --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/innerservererror/DataIOException.java @@ -0,0 +1,9 @@ +package com.codesdream.ase.exception.innerservererror; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class DataIOException extends RuntimeIOException { +} diff --git a/src/main/java/com/codesdream/ase/exception/innerservererror/DataIllegalTableFormatException.java b/src/main/java/com/codesdream/ase/exception/innerservererror/DataIllegalTableFormatException.java new file mode 100644 index 0000000..d68b2d8 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/innerservererror/DataIllegalTableFormatException.java @@ -0,0 +1,9 @@ +package com.codesdream.ase.exception.innerservererror; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class DataIllegalTableFormatException extends FormatException { +} diff --git a/src/main/java/com/codesdream/ase/exception/innerservererror/DataInvalidFormatException.java b/src/main/java/com/codesdream/ase/exception/innerservererror/DataInvalidFormatException.java new file mode 100644 index 0000000..99f6dd9 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/innerservererror/DataInvalidFormatException.java @@ -0,0 +1,19 @@ +package com.codesdream.ase.exception.innerservererror; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class DataInvalidFormatException extends FormatException { + String information; + + public DataInvalidFormatException(Exception e){ + super(); + information = e.getMessage(); + } + + public DataInvalidFormatException(){ + super(); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/innerservererror/FormatException.java b/src/main/java/com/codesdream/ase/exception/innerservererror/FormatException.java new file mode 100644 index 0000000..dd6a734 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/innerservererror/FormatException.java @@ -0,0 +1,10 @@ +package com.codesdream.ase.exception.innerservererror; + +import lombok.NoArgsConstructor; + +@NoArgsConstructor +public class FormatException extends RuntimeException { + public FormatException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/innerservererror/HandlingErrorsException.java b/src/main/java/com/codesdream/ase/exception/innerservererror/HandlingErrorsException.java new file mode 100644 index 0000000..e87c712 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/innerservererror/HandlingErrorsException.java @@ -0,0 +1,13 @@ +package com.codesdream.ase.exception.innerservererror; + +import lombok.Data; +import lombok.NoArgsConstructor; + +// 处理错误对应的异常类 +@Data +@NoArgsConstructor +public class HandlingErrorsException extends RuntimeException { + public HandlingErrorsException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/innerservererror/InvalidFormFormatException.java b/src/main/java/com/codesdream/ase/exception/innerservererror/InvalidFormFormatException.java new file mode 100644 index 0000000..fc49abb --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/innerservererror/InvalidFormFormatException.java @@ -0,0 +1,21 @@ +package com.codesdream.ase.exception.innerservererror; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.persistence.criteria.CriteriaBuilder; + +@EqualsAndHashCode(callSuper = true) +@Data +public class InvalidFormFormatException extends FormatException { + + private String message = "Invalid form format"; + + public InvalidFormFormatException(){ + super(); + } + + public InvalidFormFormatException(String message){ + this.message = message; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/innerservererror/RuntimeIOException.java b/src/main/java/com/codesdream/ase/exception/innerservererror/RuntimeIOException.java new file mode 100644 index 0000000..df0c511 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/innerservererror/RuntimeIOException.java @@ -0,0 +1,10 @@ +package com.codesdream.ase.exception.innerservererror; + +import lombok.NoArgsConstructor; + +@NoArgsConstructor +public class RuntimeIOException extends RuntimeException { + public RuntimeIOException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/notfound/BaseInformationNotFoundException.java b/src/main/java/com/codesdream/ase/exception/notfound/BaseInformationNotFoundException.java new file mode 100644 index 0000000..961d435 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/notfound/BaseInformationNotFoundException.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.exception.notfound; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class BaseInformationNotFoundException extends NotFoundException { + private String className; + private String value; + + public BaseInformationNotFoundException(Class baseInformationClass, String value){ + super(String.format("%s: %s", baseInformationClass.getName(), value)); + this.className = baseInformationClass.getName(); + this.value = value; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/notfound/DataFileNotFoundException.java b/src/main/java/com/codesdream/ase/exception/notfound/DataFileNotFoundException.java new file mode 100644 index 0000000..6ff26be --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/notfound/DataFileNotFoundException.java @@ -0,0 +1,15 @@ +package com.codesdream.ase.exception.notfound; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class DataFileNotFoundException extends NotFoundException { + private String path; + + public DataFileNotFoundException(String msg){ + super(msg); + this.path = msg; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/notfound/NotFoundException.java b/src/main/java/com/codesdream/ase/exception/notfound/NotFoundException.java new file mode 100644 index 0000000..a632648 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/notfound/NotFoundException.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.exception.notfound; + + +public class NotFoundException extends RuntimeException { + public NotFoundException(String msg){ + super(msg); + } + + public NotFoundException(){ + super(); + } +} diff --git a/src/main/java/com/codesdream/ase/exception/notfound/TagNotFoundException.java b/src/main/java/com/codesdream/ase/exception/notfound/TagNotFoundException.java new file mode 100644 index 0000000..a7509ac --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/notfound/TagNotFoundException.java @@ -0,0 +1,11 @@ +package com.codesdream.ase.exception.notfound; + + +public class TagNotFoundException extends NotFoundException { + String tagName; + + public TagNotFoundException(String tagName){ + super(tagName); + this.tagName = tagName; + } +} diff --git a/src/main/java/com/codesdream/ase/exception/notfound/UserNotFoundException.java b/src/main/java/com/codesdream/ase/exception/notfound/UserNotFoundException.java new file mode 100644 index 0000000..65a58c0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/exception/notfound/UserNotFoundException.java @@ -0,0 +1,20 @@ +package com.codesdream.ase.exception.notfound; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class UserNotFoundException extends NotFoundException { + Integer id; + String username; + public UserNotFoundException(Integer id, String username){ + super(); + this.id = id; + this.username = username; + } + + public UserNotFoundException(String msg){ + super(msg); + } +} diff --git a/src/main/java/com/codesdream/ase/model/achievement/AccumulatedGPA.java b/src/main/java/com/codesdream/ase/model/achievement/AccumulatedGPA.java new file mode 100644 index 0000000..aa89fcf --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/achievement/AccumulatedGPA.java @@ -0,0 +1,42 @@ +package com.codesdream.ase.model.achievement; + +import com.codesdream.ase.model.activity.Period; +import lombok.Data; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +@Data +@Entity +@Table(name = "accumulated_gpa") + +public class AccumulatedGPA { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 课程-得分集合 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH}, fetch = FetchType.LAZY) + private Set examResults = new HashSet<>(); + + // 个人学分积 + @JoinColumn(nullable = true) + private float accumulatedGPA; + + + //除数为零exception待加 + public AccumulatedGPA(Set initExamResults) { + int totalProduct = 0, totalCredit = 0; + for(ExamResult er : initExamResults){ + totalProduct += er.getCredit() * er.getScore(); + totalCredit += er.getCredit(); + } + this.accumulatedGPA = totalProduct / totalCredit; + } + + +} diff --git a/src/main/java/com/codesdream/ase/model/achievement/Award.java b/src/main/java/com/codesdream/ase/model/achievement/Award.java new file mode 100644 index 0000000..8a6026c --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/achievement/Award.java @@ -0,0 +1,34 @@ +package com.codesdream.ase.model.achievement; + +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.model.permission.UserDetail; +import lombok.Data; + +import javax.persistence.*; +import java.util.HashSet; +import java.util.Set; + +@Data +@Entity +@Table(name = "award") + +public class Award { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 标题 + private String title = ""; + + // 描述 + private String description = ""; + + // 分类 + private String type = ""; + + // 加分 + private int bonus; + + +} diff --git a/src/main/java/com/codesdream/ase/model/achievement/ComprehensiveEvaluation.java b/src/main/java/com/codesdream/ase/model/achievement/ComprehensiveEvaluation.java new file mode 100644 index 0000000..0393edd --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/achievement/ComprehensiveEvaluation.java @@ -0,0 +1,44 @@ +package com.codesdream.ase.model.achievement; + +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.model.permission.UserDetail; +import lombok.Data; + +import javax.persistence.*; +import java.util.HashSet; +import java.util.Set; + +@Data +@Entity +@Table(name = "comprehensive_evaluation") + +public class ComprehensiveEvaluation { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 学分积 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private AccumulatedGPA accumulatedGPA; + + // G2项得分 + private int g2; + + // G3项得分 + private int g3; + + // G4项得分 + private int g4; + + // G5项得分 + private int g5; + + // G6项得分 + private int g6; + + // 获奖 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH}, fetch = FetchType.LAZY) + private Set awards = new HashSet<>(); + +} diff --git a/src/main/java/com/codesdream/ase/model/achievement/ExamResult.java b/src/main/java/com/codesdream/ase/model/achievement/ExamResult.java new file mode 100644 index 0000000..2543fca --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/achievement/ExamResult.java @@ -0,0 +1,43 @@ +package com.codesdream.ase.model.achievement; + +import com.codesdream.ase.model.activity.Period; +import lombok.Data; + +import javax.persistence.*; + +@Data +@Entity +@Table(name = "exam_result") + +public class ExamResult { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 课程名称 + @Column(name = "subject", nullable = false) + private String subject = ""; + + // 课程学分 + @Column(name = "credit", nullable = false) + private float credit; + + // 课程成绩 + @Column(name = "score", nullable = true) + private int score; + + // 课程绩点 + @Column(name = "grade_point", nullable = true) + private float gradePoint; + + + public float getCredit() { + return credit; + } + + public int getScore() { + return score; + } + +} diff --git a/src/main/java/com/codesdream/ase/model/achievement/StudentScoreReport.java b/src/main/java/com/codesdream/ase/model/achievement/StudentScoreReport.java new file mode 100644 index 0000000..32550ba --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/achievement/StudentScoreReport.java @@ -0,0 +1,33 @@ +package com.codesdream.ase.model.achievement; + +import com.codesdream.ase.model.activity.Period; +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import lombok.Data; + +import javax.persistence.*; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +@Data +@Entity +@Table(name = "student_score_report") + +public class StudentScoreReport { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 课程-得分集合 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH}, fetch = FetchType.LAZY) + private Set examResults = new HashSet<>(); + + // 个人学分积 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinColumn(nullable = true) + private AccumulatedGPA accumulatedGPA; + +} diff --git a/src/main/java/com/codesdream/ase/model/activity/Activity.java b/src/main/java/com/codesdream/ase/model/activity/Activity.java new file mode 100644 index 0000000..a99a6e6 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/activity/Activity.java @@ -0,0 +1,198 @@ +package com.codesdream.ase.model.activity; + +import com.codesdream.ase.model.permission.User; +import lombok.Data; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.*; + +@Data +@Entity +@Table(name = "activity") +public class Activity { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + //活动标题 + @Column(name = "title", nullable = false) + private String title; + + //创建人 + @ManyToOne(cascade = CascadeType.MERGE) + @JoinColumn(nullable = false) + private User creator; + + //活动类型 + @Column(nullable = false) + private String type; + + //活动描述 + @Column + private String description; + + //活动周期,格式:阿拉伯数字数字+单位,0表示无周期 + @Column + private String cycle; + + //自愿参与人列表 + @ManyToMany(cascade = CascadeType.DETACH) + @JoinTable(name = "act_volunteer") + private Set volunteers; + + //参与人列表 + @ManyToMany(cascade = CascadeType.DETACH) + @JoinTable(name = "act_participate", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "participate_id") + } + ) + private Set participateGroup; + + //实际参与人列表 + @ManyToMany(cascade = CascadeType.DETACH) + @JoinTable(name = "act_participated", + joinColumns = { + @JoinColumn(name = "act_id" ) + }, + inverseJoinColumns = { + @JoinColumn(name = "participated_id") + } + ) + private Set participatedGroup; + + //可报名人员列表 + @ManyToMany(cascade = CascadeType.DETACH) + @JoinTable(name = "act_sign", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "sign_id") + } + ) + private Set signGroup; + + //已报名人员列表 + @ManyToMany(cascade = CascadeType.MERGE) + @JoinTable(name = "act_signed", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "signed_id") + } + ) + private Set signedGroup; + + //可见人员列表 + @ManyToMany(cascade = CascadeType.DETACH) + @JoinTable(name = "act_vis", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "vis_id") + } + ) + private Set visibleGroup; + + //通知人员列表 + @ManyToMany(cascade = CascadeType.DETACH) + @JoinTable(name = "act_inform", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "inform_id") + } + ) + private Set informGroup; + + //已通知人员列表 + @ManyToMany(cascade = CascadeType.DETACH) + @JoinTable(name = "act_informed", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "informed_id") + } + ) + private Set informedGroup; + + //计划开始时间 + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(nullable = false) + private Period planPeriod; + + //实际开始时间 + @OneToOne(cascade = CascadeType.ALL) + private Period realPeriod; + + //提前提醒时间 + @Column(name = "remind_time", nullable = true) + private LocalDateTime remindTime; + + //附件组(名字) + @ElementCollection(targetClass = String.class) + private List enclosures; + + //主要负责人 + @OneToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) + @JoinColumn(nullable = false) + private User chiefManager; + + //次要负责人 + @OneToMany(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) + @JoinColumn(name = "act_id") + private Set assistManagers; + + //是否开始 + @Column(name = "is_on", nullable = false) + boolean isOn; + + //是否结束 + @Column(name = "is_off", nullable = false) + boolean isOff; + + //考勤安排 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private Attendance attendance; + + //活动报告 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private Report report; + + public Activity(){ + initDefault(); + } + + private void initDefault(){ + this.title = ""; + this.creator = new User(); + this.type = ""; + this.description = ""; + this.cycle = ""; + this.volunteers = new HashSet<>(); + this.participateGroup = new HashSet<>(); + this.participatedGroup = new HashSet<>(); + this.participatedGroup = new HashSet<>(); + this.signGroup = new HashSet<>(); + this.signedGroup = new HashSet<>(); + this.visibleGroup = new HashSet<>(); + this.informGroup = new HashSet<>(); + this.informedGroup = new HashSet<>(); + this.planPeriod = new Period(); + this.realPeriod = new Period(); + this.enclosures = new ArrayList<>(); + this.chiefManager = new User(); + this.assistManagers = new HashSet<>(); + this.isOn = false; + this.isOff = false; + } +} \ No newline at end of file diff --git a/src/main/java/com/codesdream/ase/model/activity/Attendance.java b/src/main/java/com/codesdream/ase/model/activity/Attendance.java new file mode 100644 index 0000000..d72852c --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/activity/Attendance.java @@ -0,0 +1,29 @@ +package com.codesdream.ase.model.activity; + +import lombok.Data; + +import javax.persistence.*; +import java.util.List; +import java.util.Set; + +@Data +@Entity +@Table(name = "attendance") +public class Attendance { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + //是否在线 + @Column(name = "is_online")//, nullable = false) + private boolean isOnline; + + //打卡时段列表 + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) + private Set clockInPeriods; + + //打卡方式,0表示被扫,1表示扫 + @Column//(nullable = false) + private boolean means; +} diff --git a/src/main/java/com/codesdream/ase/model/activity/Period.java b/src/main/java/com/codesdream/ase/model/activity/Period.java new file mode 100644 index 0000000..c0ec4d7 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/activity/Period.java @@ -0,0 +1,45 @@ +package com.codesdream.ase.model.activity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.Calendar; +import java.util.Date; +import java.util.Objects; + +@Entity +@Table(name = "period_container") +@Data +public class Period { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + //开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @Column(name = "start_time")//, nullable = false) + private LocalDateTime startTime = LocalDateTime.of(2020,2,18,16,36); + + //结束时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @Column(name = "end_time")//, nullable = false) + private LocalDateTime endTime = LocalDateTime.of(2020,2,18,16,37); + + //启用状态 + @Column(name = "enabled")//, nullable = false) + private boolean enabled; + + public Period(LocalDateTime startTime, LocalDateTime endTime) { + this.startTime = startTime; + this.endTime = endTime; + } + + public Period(){ + + } + +} diff --git a/src/main/java/com/codesdream/ase/model/activity/Report.java b/src/main/java/com/codesdream/ase/model/activity/Report.java new file mode 100644 index 0000000..2bc6a0f --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/activity/Report.java @@ -0,0 +1,174 @@ +package com.codesdream.ase.model.activity; + +import com.codesdream.ase.model.permission.User; +import lombok.Data; + +import javax.persistence.*; +import java.awt.*; +import java.util.Date; +import java.util.List; +import java.util.Set; + +@Data +@Entity +@Table(name = "report") +public class Report { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + //活动标题 + @Column(nullable = false, unique = true) + private String title; + + //创建人 + @OneToOne(cascade = CascadeType.MERGE) + private User creator; + + //活动类型 + @Column(nullable = false) + private String type; + + //活动描述 + @Column(nullable = true) + private String description; + + //活动周期,格式:阿拉伯数字数字+单位,0表示无周期 + @Column(nullable = true) + private String cycle; + + //自愿参与人列表 + @ManyToMany(cascade = CascadeType.MERGE) + @JoinTable(name = "act_volunteer") + private Set volunteers; + + //参与人列表 + @ManyToMany(cascade = CascadeType.MERGE) + @JoinTable(name = "act_participate", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "participate_id") + } + ) + private Set participateGroup; + + //实际参与人列表 + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(name = "act_participated", + joinColumns = { + @JoinColumn(name = "act_id" ) + }, + inverseJoinColumns = { + @JoinColumn(name = "participated_id") + } + ) + private Set participatedGroup; + + //可报名人员列表 + @ManyToMany(cascade = CascadeType.MERGE) + @JoinTable(name = "act_sign", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "sign_id") + } + ) + private Set signGroup; + + //已报名人员列表 + @ManyToMany(cascade = CascadeType.MERGE) + @JoinTable(name = "act_signed", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "signed_id") + } + ) + private Set signedGroup; + + //可见人员列表 + @ManyToMany(cascade = CascadeType.MERGE) + @JoinTable(name = "act_vis", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "vis_id") + } + ) + private Set visibleGroup; + + //通知人员列表 + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(name = "act_inform", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "inform_id") + } + ) + private Set informGroup; + + //已通知人员列表 + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(name = "act_informed", + joinColumns = { + @JoinColumn(name = "act_id") + }, + inverseJoinColumns = { + @JoinColumn(name = "informed_id") + } + ) + private Set informedGroup; + + //计划开始时间 + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "plan_period") + private Period planPeriod; + + //实际开始时间 + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "real_period") + private Period realPeriod; + + //主要负责人 + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "chief_manager", nullable = false) + private User chiefManager; + + //次要负责人 + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinColumn(name = "act_id") + private List assistManagers; + + + //考勤安排 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinColumn(name = "attendance") + private Attendance attendance; + + //活动笔记 + @Column(name = "notes") + private String notes; + + //图表 + @ElementCollection(targetClass = java.lang.String.class) + @Column(name = "charts") + private List charts; + + //附件url + @Column(name = "enclosure") + private String enclosure; + + //活动 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinColumn(name = "activity") + private Activity activity; + +} diff --git a/src/main/java/com/codesdream/ase/model/activity/UserActivity.java b/src/main/java/com/codesdream/ase/model/activity/UserActivity.java new file mode 100644 index 0000000..7e54c53 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/activity/UserActivity.java @@ -0,0 +1,55 @@ +package com.codesdream.ase.model.activity; + +import com.codesdream.ase.model.permission.User; +import javafx.scene.chart.ScatterChart; +import lombok.Data; + +import javax.persistence.*; +import java.util.List; + +@Data +@Entity +@Table(name = "user_act") +public class UserActivity { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + //关联的用户 + @OneToOne(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY, mappedBy = "userActivity") + @JoinColumn(nullable = false, unique = true) + private User user; + + //主要负责的活动 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List mainResponsibleActs; + + //次要负责的活动 + @ManyToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List secondaryResponsibleActs; + + //可见的活动 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List visibleActs; + + //创建的活动 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List createdActs; + + //可报名的活动 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List signUpActs; + + //已经参与的活动 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List participatedActs; + + //正在(将要)参与的活动 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List participatingActs; + + //打卡签到活动 + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST}, fetch = FetchType.LAZY) + private List clockIns; +} diff --git a/src/main/java/com/codesdream/ase/model/auth/JSONToken.java b/src/main/java/com/codesdream/ase/model/auth/JSONToken.java new file mode 100644 index 0000000..751ebf1 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/auth/JSONToken.java @@ -0,0 +1,31 @@ +package com.codesdream.ase.model.auth; + +import lombok.Data; + +import javax.persistence.*; +import java.util.Date; + +// token记录 +@Data +@Entity +@Table(name = "json_tokens") +public class JSONToken { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Integer id; + + // token对应的用户 + @Column(unique = true) + private String username; + + // token值 + @Column(unique = true) + private String token; + + // 客户端标识口令 + private String clientCode; + + // token过期时间 + private Date expiredDate; +} diff --git a/src/main/java/com/codesdream/ase/model/auth/PreValidationCode.java b/src/main/java/com/codesdream/ase/model/auth/PreValidationCode.java new file mode 100644 index 0000000..41c9f3b --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/auth/PreValidationCode.java @@ -0,0 +1,20 @@ +package com.codesdream.ase.model.auth; + +import lombok.Data; + +import javax.persistence.*; +import java.util.Date; + +@Data +@Entity +@Table(name = "pre_validation_code") +public class PreValidationCode { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + private String value; + + private Date date = new Date(); + +} diff --git a/src/main/java/com/codesdream/ase/model/information/BaseAdministrativeDivision.java b/src/main/java/com/codesdream/ase/model/information/BaseAdministrativeDivision.java new file mode 100644 index 0000000..39dd5c7 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/information/BaseAdministrativeDivision.java @@ -0,0 +1,20 @@ +package com.codesdream.ase.model.information; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 行政区划基本信息 + */ +@Data +@Entity +@Table(name = "base_administrative_division") +public class BaseAdministrativeDivision { + @Id + private int id; + + private String name; + + private int parentId; +} diff --git a/src/main/java/com/codesdream/ase/model/information/BaseCandidateCategory.java b/src/main/java/com/codesdream/ase/model/information/BaseCandidateCategory.java new file mode 100644 index 0000000..a399a15 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/information/BaseCandidateCategory.java @@ -0,0 +1,19 @@ +package com.codesdream.ase.model.information; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 考生类别基本信息 + */ +@Data +@Entity +@Table(name = "base_candidate_category") +public class BaseCandidateCategory { + @Id + private int id; + + private String name; + +} diff --git a/src/main/java/com/codesdream/ase/model/information/BaseCollege.java b/src/main/java/com/codesdream/ase/model/information/BaseCollege.java new file mode 100644 index 0000000..a2cdae9 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/information/BaseCollege.java @@ -0,0 +1,21 @@ +package com.codesdream.ase.model.information; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 学院基本信息 + */ +@Data +@Entity +@Table(name = "base_college") +public class BaseCollege { + @Id + private int id; + + private String name; + + // 学院代码 + private int number; +} diff --git a/src/main/java/com/codesdream/ase/model/information/BaseEthnic.java b/src/main/java/com/codesdream/ase/model/information/BaseEthnic.java new file mode 100644 index 0000000..4188845 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/information/BaseEthnic.java @@ -0,0 +1,18 @@ +package com.codesdream.ase.model.information; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 民族基本信息 + */ +@Data +@Entity +@Table(name = "base_ethnic") +public class BaseEthnic { + @Id + private int id; + + private String name; +} diff --git a/src/main/java/com/codesdream/ase/model/information/BaseMajor.java b/src/main/java/com/codesdream/ase/model/information/BaseMajor.java new file mode 100644 index 0000000..1bc53ba --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/information/BaseMajor.java @@ -0,0 +1,18 @@ +package com.codesdream.ase.model.information; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 专业基本信息 + */ +@Data +@Entity +@Table(name = "base_major") +public class BaseMajor { + @Id + private String id; + + private String name; +} diff --git a/src/main/java/com/codesdream/ase/model/information/BasePoliticalStatus.java b/src/main/java/com/codesdream/ase/model/information/BasePoliticalStatus.java new file mode 100644 index 0000000..1cc2584 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/information/BasePoliticalStatus.java @@ -0,0 +1,18 @@ +package com.codesdream.ase.model.information; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 政治面貌基本信息 + */ +@Data +@Entity +@Table(name = "base_political_status") +public class BasePoliticalStatus { + @Id + private int id; + + private String name; +} diff --git a/src/main/java/com/codesdream/ase/model/information/BaseStudentInfo.java b/src/main/java/com/codesdream/ase/model/information/BaseStudentInfo.java new file mode 100644 index 0000000..dcf0113 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/information/BaseStudentInfo.java @@ -0,0 +1,42 @@ +package com.codesdream.ase.model.information; + +import lombok.Data; + +import javax.persistence.*; + +/** + * 学生基本真实信息 + */ +@Data +@Entity +@Table(name = "base_student_info") +public class BaseStudentInfo { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + // 真实姓名 + private String name = ""; + // 学号 + private String studentId = ""; + // 班号 + private String classId = ""; + // 性别 + private String sex = ""; + // 民族 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseEthnic ethnic = null; + // 学院 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseCollege college = null; + // 专业 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseMajor major = null; + // 政治面貌 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BasePoliticalStatus politicalStatus = null; + // 省份地区 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseAdministrativeDivision administrativeDivision = null; + +} diff --git a/src/main/java/com/codesdream/ase/model/leaves/Leave.java b/src/main/java/com/codesdream/ase/model/leaves/Leave.java new file mode 100644 index 0000000..5f65fc7 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/leaves/Leave.java @@ -0,0 +1,48 @@ +package com.codesdream.ase.model.leaves; + +import com.codesdream.ase.model.permission.User; +import lombok.Data; +import java.util.*; +import javax.persistence.*; + +@Data +@Entity +@Table(name = "leaves") +public class Leave { + //请假的编号 + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + //发出人 + @Column + private String userFrom; + //审批人容器 + @ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private Set userTo; + //请假原因 + @Column + private String reasonToLeave; + + + //请假类型 病假,事假等 + @Column(nullable = false) + private String type; + //批准状态 + @Column(nullable = false) + private String authentication="Pending"; + + //审核备注 + @Column + private String comment; + //开始时间 + @Column(nullable = false) + private Date startTime; + + @Column(nullable = false) + private Date endTime; + //申请时间 + private Date applyTime; + //认证时间 + private Date authTime; + +} diff --git a/src/main/java/com/codesdream/ase/model/permission/Function.java b/src/main/java/com/codesdream/ase/model/permission/Function.java new file mode 100644 index 0000000..b1b1cf5 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/Function.java @@ -0,0 +1,31 @@ +package com.codesdream.ase.model.permission; + +import io.swagger.models.auth.In; +import lombok.Data; +import org.hibernate.annotations.GeneratorType; + +import javax.persistence.*; + +/** + * 功能 + */ +@Data +@Entity +@Table(name = "function") +public class Function { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Integer id; + + // 功能名称 + private String name; + + // 功能描述 + private String description; + + @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private Function father = null; + + // 授权url + private String url; +} diff --git a/src/main/java/com/codesdream/ase/model/permission/FunctionalPermissionContainer.java b/src/main/java/com/codesdream/ase/model/permission/FunctionalPermissionContainer.java new file mode 100644 index 0000000..281f724 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/FunctionalPermissionContainer.java @@ -0,0 +1,51 @@ +package com.codesdream.ase.model.permission; + +import lombok.Data; + +import javax.persistence.*; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + + +/** + * 功能性权限容器 + */ +@Data +@Entity +@Table(name = "functional_permit_container") +public class FunctionalPermissionContainer { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 功能性权限容器名 + @Column(unique = true) + private String name = ""; + + // 功能性权限容器解释 + private String description = ""; + + // 对应访问控制角色列表W + @ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + @Column(nullable = false) + private Set functions = new HashSet<>(); + + // 是否启用 + @Column(nullable = false) + private boolean enabled = true; + + // 是否删除 + @Column(nullable = false) + private boolean deleted = false; + + public FunctionalPermissionContainer(String name) { + this.name = name; + } + + public FunctionalPermissionContainer(){ + + } + +} diff --git a/src/main/java/com/codesdream/ase/model/permission/FunctionalScopeRelation.java b/src/main/java/com/codesdream/ase/model/permission/FunctionalScopeRelation.java new file mode 100644 index 0000000..cb76aa6 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/FunctionalScopeRelation.java @@ -0,0 +1,31 @@ +package com.codesdream.ase.model.permission; + + +import lombok.Data; + +import javax.persistence.*; + +/** + * 功能性权限容器与范围性权限容器关联对 (单项权力) + */ +@Data +@Entity +@Table(name = "functional_scope_relation") +public class FunctionalScopeRelation { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + private String name; + + private String description; + + // 对应功能性权限容器 + @OneToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) + private FunctionalPermissionContainer functionalPermissionContainer; + + // 对应范围性权限容器 + @OneToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) + private ScopePermissionContainer scopePermissionContainer; +} diff --git a/src/main/java/com/codesdream/ase/model/permission/PermissionContainersCollection.java b/src/main/java/com/codesdream/ase/model/permission/PermissionContainersCollection.java new file mode 100644 index 0000000..f7b75c0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/PermissionContainersCollection.java @@ -0,0 +1,37 @@ +package com.codesdream.ase.model.permission; + +import lombok.Data; +import javax.persistence.*; +import java.util.HashSet; +import java.util.Set; + +/** + * 权限容器集合(多项权力) + */ +@Data +@Entity +@Table(name = "permission_container_collection") +public class PermissionContainersCollection { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 权限容器集合名称 + @Column(unique = true) + private String name = ""; + + // 权限容器集合概述 + private String description = ""; + + // 对应功能性权限容器与范围性权限容器关联对 + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private Set functionalScopeRelations = new HashSet<>(); + + public PermissionContainersCollection(String name){ + this.name = name; + } + + public PermissionContainersCollection(){ + + } +} diff --git a/src/main/java/com/codesdream/ase/model/permission/ScopePermissionContainer.java b/src/main/java/com/codesdream/ase/model/permission/ScopePermissionContainer.java new file mode 100644 index 0000000..5c60e36 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/ScopePermissionContainer.java @@ -0,0 +1,39 @@ +package com.codesdream.ase.model.permission; + +import lombok.Data; + +import javax.persistence.*; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +@Data +@Entity +@Table(name = "scope_permit_container") +public class ScopePermissionContainer { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + @Column(unique = true) + private String name = ""; + + private String description = ""; + + @OneToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH}, fetch = FetchType.LAZY) + private List tags = new LinkedList<>(); + + @Column(nullable = false) + private boolean enabled = true; + + @Column(nullable = false) + private boolean deleted = false; + + public ScopePermissionContainer(String name){ + this.name = name; + } + + public ScopePermissionContainer(){ + + } +} diff --git a/src/main/java/com/codesdream/ase/model/permission/Tag.java b/src/main/java/com/codesdream/ase/model/permission/Tag.java new file mode 100644 index 0000000..ef59aa5 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/Tag.java @@ -0,0 +1,52 @@ +package com.codesdream.ase.model.permission; + +import lombok.Data; + + +import javax.persistence.*; +import java.util.HashSet; +import java.util.Set; + +/** + * 标签 + */ +@Data +@Entity +@Table(name = "tag") +public class Tag { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 标签名 + @Column(unique = true) + private String name = ""; + + // 标签解释 + private String description = ""; + + // 标签关联用户 + @ManyToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH}, fetch = FetchType.LAZY) + private Set users = new HashSet<>(); + + // 启用标志 + @Column(nullable = false) + private boolean enabled = true; + + // 删除标志 + @Column(nullable = false) + private boolean deleted = false; + + // 对应权限容器集合 + @ManyToMany(cascade = {CascadeType.MERGE, CascadeType.DETACH}, fetch = FetchType.LAZY) + private Set permissionContainersCollections = new HashSet<>(); + + public Tag(String name) { + this.name = name; + } + + public Tag(){ + + } + +} diff --git a/src/main/java/com/codesdream/ase/model/permission/User.java b/src/main/java/com/codesdream/ase/model/permission/User.java new file mode 100644 index 0000000..6819bdc --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/User.java @@ -0,0 +1,93 @@ +package com.codesdream.ase.model.permission; + +import com.codesdream.ase.model.activity.UserActivity; +import lombok.Data; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +@Data +@Entity +@Table(name = "user") +public class User implements UserDetails { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + // 用户名 + @Column(unique = true, nullable = false) + private String username; + + // 密码(必须以哈希值sha256储存) + @Column(nullable = false) + private String password; + + // 账号是否过期 + private boolean accountNonExpired; + + // 账号是否被封禁 + private boolean accountNonLocked; + + // 证书是否过期 + private boolean credentialsNonExpired; + + // 账号是否激活 + private boolean enabled; + + // 是否删除 + @Column(nullable = false) + private boolean deleted; + + // 访问控制角色(不在数据表中) Spring Security + private transient Collection authorities; + + // 用户关联标签 + @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private Set tags; + + // 用户详细信息 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private UserDetail userDetail; + + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private UserActivity userActivity; + + // 用户认证表 + @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private UserAuth userAuth; + + + public User(String username, String password) { + this.username = username; + this.password = password; + + initDefault(); + } + + public User() { + this.username = null; + this.password = null; + this.deleted = false; + + initDefault(); + } + + // 用默认的方式初始化User对象的值 + private void initDefault(){ + this.accountNonExpired = true; + this.accountNonLocked = true; + this.credentialsNonExpired = true; + this.deleted = false; + this.enabled = true; + this.tags = new HashSet<>(); + this.userDetail = new UserDetail(); + this.userAuth = new UserAuth(); + this.authorities = new ArrayList<>(); + } + +} diff --git a/src/main/java/com/codesdream/ase/model/permission/UserAuth.java b/src/main/java/com/codesdream/ase/model/permission/UserAuth.java new file mode 100644 index 0000000..f4dc777 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/UserAuth.java @@ -0,0 +1,27 @@ +package com.codesdream.ase.model.permission; + +import lombok.Data; + +import javax.persistence.*; + +@Data +@Entity +@Table(name = "user_auth") +public class UserAuth { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 密保问题 + private String userQuestion = null; + + // 密保问题答案 + private String userAnswer = null; + + // 用户邮箱 + private String mail = null; + + // 学生ID + private String studentID = null; +} diff --git a/src/main/java/com/codesdream/ase/model/permission/UserDetail.java b/src/main/java/com/codesdream/ase/model/permission/UserDetail.java new file mode 100644 index 0000000..42cf013 --- /dev/null +++ b/src/main/java/com/codesdream/ase/model/permission/UserDetail.java @@ -0,0 +1,50 @@ +package com.codesdream.ase.model.permission; + +import com.codesdream.ase.model.information.*; +import lombok.Data; + +import javax.persistence.*; + +/** + * 用户相关详细信息 + */ +@Data +@Entity +@Table(name = "user_detail") +public class UserDetail { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private int id; + + // 学生班号 + private String classId = null; + + // 所属地区 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseAdministrativeDivision baseAdministrativeDivision = null; + + // 所属学院 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseCollege baseCollege = null; + + // 所属专业 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseMajor baseMajor = null; + + // 民族 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BaseEthnic baseEthnic = null; + + // 政治面貌 + @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + private BasePoliticalStatus basePoliticalStatus = null; + + // 真实姓名 + private String realName = null; + + // 性别 + private String sex = null; + + // 在校认证状态 + private boolean atSchool = false; +} diff --git a/src/main/java/com/codesdream/ase/repository/activity/ActivityRepository.java b/src/main/java/com/codesdream/ase/repository/activity/ActivityRepository.java new file mode 100644 index 0000000..aa5ea5b --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/activity/ActivityRepository.java @@ -0,0 +1,21 @@ +package com.codesdream.ase.repository.activity; + +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.permission.User; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Optional; + +@Repository +public interface ActivityRepository extends JpaRepository { + + Optional findByTitle(String Title); + + Optional findByCreator(String creatorName); + +} \ No newline at end of file diff --git a/src/main/java/com/codesdream/ase/repository/activity/AttendanceRepository.java b/src/main/java/com/codesdream/ase/repository/activity/AttendanceRepository.java new file mode 100644 index 0000000..31776a3 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/activity/AttendanceRepository.java @@ -0,0 +1,9 @@ +package com.codesdream.ase.repository.activity; + +import com.codesdream.ase.model.activity.Attendance; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface AttendanceRepository extends CrudRepository { +} diff --git a/src/main/java/com/codesdream/ase/repository/activity/PeriodRepository.java b/src/main/java/com/codesdream/ase/repository/activity/PeriodRepository.java new file mode 100644 index 0000000..24a45ad --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/activity/PeriodRepository.java @@ -0,0 +1,9 @@ +package com.codesdream.ase.repository.activity; + +import com.codesdream.ase.model.activity.Period; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface PeriodRepository extends CrudRepository { +} diff --git a/src/main/java/com/codesdream/ase/repository/activity/ReportRepository.java b/src/main/java/com/codesdream/ase/repository/activity/ReportRepository.java new file mode 100644 index 0000000..fd2e581 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/activity/ReportRepository.java @@ -0,0 +1,14 @@ +package com.codesdream.ase.repository.activity; + +import com.codesdream.ase.model.activity.Report; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface ReportRepository extends CrudRepository { + Optional findByTitle(String reportTitle); + + Optional findByCreator(String creatorName); +} diff --git a/src/main/java/com/codesdream/ase/repository/activity/UserActivityRepository.java b/src/main/java/com/codesdream/ase/repository/activity/UserActivityRepository.java new file mode 100644 index 0000000..dbbef67 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/activity/UserActivityRepository.java @@ -0,0 +1,17 @@ +package com.codesdream.ase.repository.activity; + +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.activity.UserActivity; +import com.codesdream.ase.model.permission.User; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Optional; + +@Repository +public interface UserActivityRepository extends CrudRepository { + + UserActivity findByUser(User user); + +} diff --git a/src/main/java/com/codesdream/ase/repository/auth/JSONTokenRepository.java b/src/main/java/com/codesdream/ase/repository/auth/JSONTokenRepository.java new file mode 100644 index 0000000..a2a4f68 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/auth/JSONTokenRepository.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.repository.auth; + +import com.codesdream.ase.model.auth.JSONToken; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface JSONTokenRepository extends CrudRepository { + Optional findByUsername(String username); +} diff --git a/src/main/java/com/codesdream/ase/repository/auth/PreValidationCodeRepository.java b/src/main/java/com/codesdream/ase/repository/auth/PreValidationCodeRepository.java new file mode 100644 index 0000000..8b1d389 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/auth/PreValidationCodeRepository.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.repository.auth; + +import com.codesdream.ase.model.auth.PreValidationCode; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface PreValidationCodeRepository extends CrudRepository { + Optional findByValue(String value); +} diff --git a/src/main/java/com/codesdream/ase/repository/information/BaseAdministrativeDivisionRepository.java b/src/main/java/com/codesdream/ase/repository/information/BaseAdministrativeDivisionRepository.java new file mode 100644 index 0000000..825bb3a --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/information/BaseAdministrativeDivisionRepository.java @@ -0,0 +1,13 @@ +package com.codesdream.ase.repository.information; + +import com.codesdream.ase.model.information.BaseAdministrativeDivision; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface BaseAdministrativeDivisionRepository extends CrudRepository { + Optional findByName(String name); + Optional findByNameContainsAndParentId(String name, int parentId); +} diff --git a/src/main/java/com/codesdream/ase/repository/information/BaseCandidateCategoryRepository.java b/src/main/java/com/codesdream/ase/repository/information/BaseCandidateCategoryRepository.java new file mode 100644 index 0000000..1536e41 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/information/BaseCandidateCategoryRepository.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.repository.information; + +import com.codesdream.ase.model.information.BaseCandidateCategory; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface BaseCandidateCategoryRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/information/BaseCollegeRepository.java b/src/main/java/com/codesdream/ase/repository/information/BaseCollegeRepository.java new file mode 100644 index 0000000..d149b4d --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/information/BaseCollegeRepository.java @@ -0,0 +1,13 @@ +package com.codesdream.ase.repository.information; + +import com.codesdream.ase.model.information.BaseCollege; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface BaseCollegeRepository extends CrudRepository { + Optional findByName(String name); + Optional findByNumber(Integer number); +} diff --git a/src/main/java/com/codesdream/ase/repository/information/BaseEthnicRepository.java b/src/main/java/com/codesdream/ase/repository/information/BaseEthnicRepository.java new file mode 100644 index 0000000..b007952 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/information/BaseEthnicRepository.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.repository.information; + +import com.codesdream.ase.model.information.BaseEthnic; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface BaseEthnicRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/information/BaseMajorRepository.java b/src/main/java/com/codesdream/ase/repository/information/BaseMajorRepository.java new file mode 100644 index 0000000..9282167 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/information/BaseMajorRepository.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.repository.information; + +import com.codesdream.ase.model.information.BaseMajor; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface BaseMajorRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/information/BasePoliticalStatusRepository.java b/src/main/java/com/codesdream/ase/repository/information/BasePoliticalStatusRepository.java new file mode 100644 index 0000000..1a42b33 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/information/BasePoliticalStatusRepository.java @@ -0,0 +1,10 @@ +package com.codesdream.ase.repository.information; + +import com.codesdream.ase.model.information.BasePoliticalStatus; +import org.springframework.data.repository.CrudRepository; + +import java.util.Optional; + +public interface BasePoliticalStatusRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/information/BaseStudentInfoRepository.java b/src/main/java/com/codesdream/ase/repository/information/BaseStudentInfoRepository.java new file mode 100644 index 0000000..69f2d85 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/information/BaseStudentInfoRepository.java @@ -0,0 +1,14 @@ +package com.codesdream.ase.repository.information; + +import com.codesdream.ase.model.information.BaseStudentInfo; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface BaseStudentInfoRepository extends CrudRepository { + // 通过学号查找 + Optional findByStudentId(String student_id); + +} diff --git a/src/main/java/com/codesdream/ase/repository/leaves/LeaveRepository.java b/src/main/java/com/codesdream/ase/repository/leaves/LeaveRepository.java new file mode 100644 index 0000000..ee238b0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/leaves/LeaveRepository.java @@ -0,0 +1,11 @@ +package com.codesdream.ase.repository.leaves; +import com.codesdream.ase.model.activity.Report; +import com.codesdream.ase.model.leaves.Leave; +import org.springframework.data.repository.CrudRepository; + +import java.util.Optional; + +public interface LeaveRepository extends CrudRepository{ + + +} diff --git a/src/main/java/com/codesdream/ase/repository/permission/FunctionRepository.java b/src/main/java/com/codesdream/ase/repository/permission/FunctionRepository.java new file mode 100644 index 0000000..49f34f2 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/permission/FunctionRepository.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.repository.permission; + +import com.codesdream.ase.model.permission.Function; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface FunctionRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/permission/FunctionalPermissionContainerRepository.java b/src/main/java/com/codesdream/ase/repository/permission/FunctionalPermissionContainerRepository.java new file mode 100644 index 0000000..91cc1c8 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/permission/FunctionalPermissionContainerRepository.java @@ -0,0 +1,12 @@ +package com.codesdream.ase.repository.permission; + +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface FunctionalPermissionContainerRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/permission/PermissionContainersCollectionRepository.java b/src/main/java/com/codesdream/ase/repository/permission/PermissionContainersCollectionRepository.java new file mode 100644 index 0000000..1b7b242 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/permission/PermissionContainersCollectionRepository.java @@ -0,0 +1,13 @@ +package com.codesdream.ase.repository.permission; + +import com.codesdream.ase.model.permission.PermissionContainersCollection; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface PermissionContainersCollectionRepository + extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/permission/ScopePermissionContainerRepository.java b/src/main/java/com/codesdream/ase/repository/permission/ScopePermissionContainerRepository.java new file mode 100644 index 0000000..1b808ce --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/permission/ScopePermissionContainerRepository.java @@ -0,0 +1,10 @@ +package com.codesdream.ase.repository.permission; + +import com.codesdream.ase.model.permission.ScopePermissionContainer; +import org.springframework.data.repository.CrudRepository; + +import java.util.Optional; + +public interface ScopePermissionContainerRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/permission/TagRepository.java b/src/main/java/com/codesdream/ase/repository/permission/TagRepository.java new file mode 100644 index 0000000..f46de40 --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/permission/TagRepository.java @@ -0,0 +1,14 @@ +package com.codesdream.ase.repository.permission; + +import com.codesdream.ase.model.permission.FunctionalPermissionContainer; +import com.codesdream.ase.model.permission.Tag; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; +import java.util.Set; + +@Repository +public interface TagRepository extends CrudRepository { + Optional findByName(String name); +} diff --git a/src/main/java/com/codesdream/ase/repository/permission/UserRepository.java b/src/main/java/com/codesdream/ase/repository/permission/UserRepository.java new file mode 100644 index 0000000..6ba5c8e --- /dev/null +++ b/src/main/java/com/codesdream/ase/repository/permission/UserRepository.java @@ -0,0 +1,14 @@ +package com.codesdream.ase.repository.permission; + +import com.codesdream.ase.model.permission.Tag; +import com.codesdream.ase.model.permission.User; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + + +@Repository +public interface UserRepository extends CrudRepository { + Optional findByUsername(String username); +} diff --git a/src/main/java/com/codesdream/ase/service/ASEUserDetailsService.java b/src/main/java/com/codesdream/ase/service/ASEUserDetailsService.java new file mode 100644 index 0000000..6aae6c0 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/ASEUserDetailsService.java @@ -0,0 +1,38 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.component.permission.UserAuthoritiesGenerator; +import com.codesdream.ase.exception.notfound.UserNotFoundException; +import com.codesdream.ase.model.permission.User; +import org.springframework.security.authentication.AuthenticationServiceException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.transaction.Transactional; +import java.util.Optional; + +@Service +public class ASEUserDetailsService implements UserDetailsService { + + @Resource + IUserService userService; + + @Resource + UserAuthoritiesGenerator userAuthoritiesGenerator; + + @Override + @Transactional + public UserDetails loadUserByUsername(String s) { + try { + Optional userOptional = userService.findUserByUsername(s); + if(!userOptional.isPresent()) throw new UserNotFoundException(s); + User user = userOptional.get(); + user.setAuthorities(userAuthoritiesGenerator.grantedAuthorities(user)); + return user; + } catch (UserNotFoundException e){ + throw new AuthenticationServiceException("User Not Exist"); + } + + } +} diff --git a/src/main/java/com/codesdream/ase/service/AchievementService.java b/src/main/java/com/codesdream/ase/service/AchievementService.java new file mode 100644 index 0000000..e2f7a0a --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/AchievementService.java @@ -0,0 +1,8 @@ +package com.codesdream.ase.service; + +import org.springframework.stereotype.Service; + +@Service +public class AchievementService { + +} diff --git a/src/main/java/com/codesdream/ase/service/ActivityService.java b/src/main/java/com/codesdream/ase/service/ActivityService.java new file mode 100644 index 0000000..9c42112 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/ActivityService.java @@ -0,0 +1,180 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.activity.Period; +import com.codesdream.ase.model.activity.Report; +import com.codesdream.ase.model.activity.UserActivity; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.repository.activity.ActivityRepository; +import com.codesdream.ase.repository.activity.UserActivityRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.*; + +@Service +public class ActivityService implements IActivityService { + + @Resource + private ActivityRepository activityRepository; + + @Resource + private UserActivityRepository userActivityRepository; + + @Override + public Optional findActivityByTitle(String title) { + return activityRepository.findByTitle(title); + } + + @Override + public Optional findActivityByCreator(String creatorName) { + return activityRepository.findByCreator(creatorName); + } + + + @Override + public List findActivityByType(User user, String type) { + + List activities = this.findAll(user); + List actsByType = new ArrayList<>(); + for (Activity activity : activities) { + if (activity.getType().equals(type)) { + actsByType.add(activity); + } + } + return actsByType; + } + + @Override + public Activity save(Activity activity) { + return activityRepository.save(activity); + } + + @Override + public Activity addReport(Activity activity, Report report) { + activity.setReport(report); + return update(activity); + } + + @Override + public void delete(Activity activity) { + activityRepository.delete(activity); + } + + @Override + public Activity update(Activity activity) { + return activityRepository.save(activity); + } + + @Override + public Activity createActivity(Activity activity) { + return activityRepository.save(activity); + } + + @Override + public List findMainResponsibleActs(User user) { + + UserActivity userActivity = userActivityRepository.findByUser(user); + List acts = userActivity.getMainResponsibleActs(); + Collections.sort(acts, new ActivityComparator()); + return acts; + } + + @Override + public List findSecondaryResponsibleActs(User user) { + + UserActivity userActivity = userActivityRepository.findByUser(user); + List acts = userActivity.getSecondaryResponsibleActs(); + Collections.sort(acts, new ActivityComparator()); + return acts; + } + + @Override + public List findVisibleActs(User user) { + + UserActivity userActivity = userActivityRepository.findByUser(user); + List acts = userActivity.getVisibleActs(); + Collections.sort(acts, new ActivityComparator()); + return acts; + } + + @Override + public List findSignActs(User user) { + + UserActivity userActivity = userActivityRepository.findByUser(user); + List acts = userActivity.getSignUpActs(); + Collections.sort(acts, new ActivityComparator()); + return acts; + } + + @Override + public List findParticipatedActs(User user) { + + UserActivity userActivity = userActivityRepository.findByUser(user); + List acts = userActivity.getParticipatedActs(); + Collections.sort(acts, new ActivityComparator()); + return acts; + } + + @Override + public List findParticipatingActs(User user) { + + UserActivity userActivity = userActivityRepository.findByUser(user); + List acts = userActivity.getParticipatingActs(); + Collections.sort(acts, new ActivityComparator()); + return acts; + } + + @Override + public List findCreatedActs(User user) { + + UserActivity userActivity = userActivityRepository.findByUser(user); + List acts = userActivity.getCreatedActs(); + Collections.sort(acts, new ActivityComparator()); + return acts; + } + + @Override + public List findAll(User user) { + + List activities = findCreatedActs(user); + List activities1 = findMainResponsibleActs(user); + List activities2 = findSecondaryResponsibleActs(user); + List activities3 = findParticipatingActs(user); + List activities4 = findParticipatedActs(user); + List activities5 = findParticipatingActs(user); + List activities6 = findSignActs(user); + List activities7 = findVisibleActs(user); + Set activitySet = new HashSet<>(); + activitySet.addAll(activities); + activitySet.addAll(activities1); + activitySet.addAll(activities2); + activitySet.addAll(activities3); + activitySet.addAll(activities4); + activitySet.addAll(activities5); + activitySet.addAll(activities6); + activitySet.addAll(activities7); + List res = new ArrayList<>(activitySet); + Collections.sort(res, new ActivityComparator()); + return res; + } + + +} + +class ActivityComparator implements Comparator { + + + @Override + public int compare(Activity o1, Activity o2) { + + Period p1 = o1.getRealPeriod(); + Period p2 = o2.getRealPeriod(); + LocalDateTime s1 = p1.getStartTime(); + LocalDateTime s2 = p2.getStartTime(); + if (s1.isBefore(s2)) return -1; + else if (s1.isAfter(s2)) return 1; + else return 0; + } +} \ No newline at end of file diff --git a/src/main/java/com/codesdream/ase/service/AttendanceService.java b/src/main/java/com/codesdream/ase/service/AttendanceService.java new file mode 100644 index 0000000..5484358 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/AttendanceService.java @@ -0,0 +1,18 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.activity.Attendance; +import com.codesdream.ase.repository.activity.AttendanceRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class AttendanceService { + + @Resource + AttendanceRepository attendanceRepository; + + public Attendance save(Attendance attendance) { + return attendanceRepository.save(attendance); + } +} diff --git a/src/main/java/com/codesdream/ase/service/AuthService.java b/src/main/java/com/codesdream/ase/service/AuthService.java new file mode 100644 index 0000000..85891f7 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/AuthService.java @@ -0,0 +1,92 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.component.auth.AuthTokenGenerator; +import com.codesdream.ase.component.auth.TimestampExpiredChecker; +import com.codesdream.ase.model.auth.JSONToken; +import com.codesdream.ase.model.auth.PreValidationCode; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.repository.auth.JSONTokenRepository; +import com.codesdream.ase.repository.auth.PreValidationCodeRepository; +import javafx.util.Pair; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.Optional; +import java.util.UUID; + +// 认证服务 +@Service +public class AuthService implements IAuthService { + + @Resource + private JSONTokenRepository jsonTokenRepository; + + @Resource + private IUserService userService; + + @Resource + private AuthTokenGenerator authTokenGenerator; + + @Resource + private PreValidationCodeRepository preValidationCodeRepository; + + @Resource + private TimestampExpiredChecker timestampExpiredChecker; + + @Override + public Optional findTokenByUserName(String username) { + return jsonTokenRepository.findByUsername(username); + } + + @Override + public boolean checkTokenIfExpired(JSONToken token) { + return token.getExpiredDate().compareTo(new Date()) <= 0; + } + + @Override + public Optional userNewTokenGetter(String username, String clientCode) { + Pair userPair = userService.checkIfUserExists(username); + if(userPair.getKey()){ + Optional jsonTokenOptional = jsonTokenRepository.findByUsername(username); + JSONToken token = jsonTokenOptional.orElseGet(JSONToken::new); + + // 过期时间设置为三十分钟后 + long currentTime = System.currentTimeMillis(); + currentTime +=30*60*1000; + token.setExpiredDate(new Date(currentTime)); + token.setToken(authTokenGenerator.generateAuthToken(username)); + + + // 设置用户名 + token.setUsername(username); + // 设置客户端代号 + token.setClientCode(clientCode); + + // 在数据库中更新新的token + token = jsonTokenRepository.save(token); + return Optional.ofNullable(token.getToken()); + } + else return Optional.empty(); + } + + @Override + public String preValidationCodeGetter() { + PreValidationCode preValidationCode = new + PreValidationCode(); + preValidationCode.setValue(UUID.randomUUID().toString()); + preValidationCode = preValidationCodeRepository.save(preValidationCode); + return preValidationCode.getValue(); + } + + @Override + public boolean preValidationCodeChecker(String pvc) { + Optional preValidationCode = + preValidationCodeRepository.findByValue(pvc); + if(preValidationCode.filter(validationCode -> timestampExpiredChecker.checkDateBeforeMaxTime(validationCode.getDate(), 60)).isPresent()){ + preValidationCodeRepository.delete(preValidationCode.get()); + return true; + } + else return false; + } +} diff --git a/src/main/java/com/codesdream/ase/service/BaseInformationService.java b/src/main/java/com/codesdream/ase/service/BaseInformationService.java new file mode 100644 index 0000000..b659029 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/BaseInformationService.java @@ -0,0 +1,287 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.component.datamanager.DataTable; +import com.codesdream.ase.exception.badrequest.BaseInformationAlreadyExistException; +import com.codesdream.ase.exception.badrequest.BaseInformationIllegalException; +import com.codesdream.ase.exception.notfound.BaseInformationNotFoundException; +import com.codesdream.ase.model.information.*; +import com.codesdream.ase.repository.information.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Optional; +import java.util.Vector; + +@Slf4j +@Service +public class BaseInformationService implements IBaseInformationService { + + @Resource + private BaseAdministrativeDivisionRepository administrativeDivisionRepository; + + @Resource + private BaseCandidateCategoryRepository candidateCategoryRepository; + + @Resource + private BaseCollegeRepository collegeRepository; + + @Resource + private BaseEthnicRepository ethnicRepository; + + @Resource + private BaseMajorRepository majorRepository; + + @Resource + private BasePoliticalStatusRepository politicalStatusRepository; + + @Resource + private BaseStudentInfoRepository studentInfoRepository; + + @Override + public boolean checkAdministrativeDivision(String name) { + Optional administrativeDivision = + administrativeDivisionRepository.findByName(name); + return administrativeDivision.isPresent(); + } + + @Override + public boolean checkCollege(String name) { + Optional college = + collegeRepository.findByName(name); + return college.isPresent(); + } + + @Override + public boolean checkEthnic(String name) { + Optional ethnic = + ethnicRepository.findByName(name); + return ethnic.isPresent(); + } + + @Override + public boolean checkMajor(String name) { + Optional major = + majorRepository.findByName(name); + return major.isPresent(); + } + + @Override + public boolean checkPoliticalStatus(String name) { + Optional politicalStatus = + politicalStatusRepository.findByName(name); + return politicalStatus.isPresent(); + } + + @Override + public boolean checkCandidateStatus(String name) { + Optional candidateCategory = + candidateCategoryRepository.findByName(name); + + return false; + } + + @Override + public boolean checkStudentInfo(String studentId) { + Optional studentInfo = + studentInfoRepository.findByStudentId(studentId); + return studentInfo.isPresent(); + } + + // 查找省级行政区域 + @Override + public BaseAdministrativeDivision findAdministrativeDivisionByName(String name) { + Optional administrativeDivision = + administrativeDivisionRepository.findByNameContainsAndParentId(name, 0); + // 检查 + if(!administrativeDivision.isPresent()) { + // 如果填入未知数据 + log.warn("省级行政区域: " + name + " 未在数据库中找到,将使用未知符号占位"); + administrativeDivision = administrativeDivisionRepository.findByName("未知"); + if(administrativeDivision.isPresent()) { + return administrativeDivision.get(); + } + else throw new BaseInformationNotFoundException(BaseAdministrativeDivision.class, name); + + } + return administrativeDivision.get(); + } + + @Override + public BaseCollege findCollegeByName(String name) { + Optional college = + collegeRepository.findByName(name); + // 检查 + if(!college.isPresent()) throw new BaseInformationNotFoundException(BaseCollege.class, name); + return college.get(); + } + + @Override + public BaseEthnic findEthnicByName(String name) { + Optional ethnic = + ethnicRepository.findByName(name); + if(!ethnic.isPresent()) throw new BaseInformationNotFoundException(BaseEthnic.class, name); + return ethnic.get(); + } + + @Override + public BaseMajor findMajorByName(String name) { + Optional major = + majorRepository.findByName(name); + if(!major.isPresent()) throw new BaseInformationNotFoundException(BaseMajor.class, name); + return major.get(); + } + + @Override + public BasePoliticalStatus findPoliticalStatusByName(String name) { + Optional politicalStatus = + politicalStatusRepository.findByName(name); + if(!politicalStatus.isPresent()) + throw new BaseInformationNotFoundException(BasePoliticalStatus.class, name); + return politicalStatus.get(); + } + + @Override + public BaseCandidateCategory findCandidateCategoryByName(String name) { + Optional candidateCategory = + candidateCategoryRepository.findByName(name); + if(!candidateCategory.isPresent()) + throw new BaseInformationNotFoundException(BaseCandidateCategory.class, name); + return candidateCategory.get(); + } + + @Override + public BaseStudentInfo findStudentInfoByStudentId(String studentId) { + Optional studentInfo = + studentInfoRepository.findByStudentId(studentId); + if(!studentInfo.isPresent()) + throw new BaseInformationNotFoundException(BaseStudentInfo.class, studentId); + return studentInfo.get(); + } + + @Override + public void studentInfoImportFromDataTable(DataTable table) { + Collection> infoIndexOptional = new ArrayList<>(); + + infoIndexOptional.add(table.getTitleIndex("学号")); + infoIndexOptional.add(table.getTitleIndex("班号")); + infoIndexOptional.add(table.getTitleIndex("姓名")); + infoIndexOptional.add(table.getTitleIndex("性别")); + infoIndexOptional.add(table.getTitleIndex("学院名称")); + infoIndexOptional.add(table.getTitleIndex("专业名称")); + infoIndexOptional.add(table.getTitleIndex("民族名称")); + infoIndexOptional.add(table.getTitleIndex("政治面貌名称")); + infoIndexOptional.add(table.getTitleIndex("省份名称")); + + + Vector infoIndex = new Vector<>(); + + for(Optional infoIdx : infoIndexOptional){ + if(!infoIdx.isPresent()){ + log.error("所提供的数据表不符合学生信息导入规范, 有关键数据缺失"); + throw new RuntimeException("Unfit Data Table"); + } + else infoIndex.add(infoIdx.get()); + } + + int dataRowsSize = table.getRowsSize(); + + for(int i = 0; i < dataRowsSize; i++){ + Vector row = table.getRowVector(i); + try { + BaseStudentInfo studentInfo = + constructStudentInfo(row.elementAt(infoIndex.elementAt(0)), + row.elementAt(infoIndex.elementAt(1)), + row.elementAt(infoIndex.elementAt(2)), + row.elementAt(infoIndex.elementAt(3)), + row.elementAt(infoIndex.elementAt(4)), + row.elementAt(infoIndex.elementAt(5)), + row.elementAt(infoIndex.elementAt(6)), + row.elementAt(infoIndex.elementAt(7)), + row.elementAt(infoIndex.elementAt(8))); + save(studentInfo); + } catch (BaseInformationNotFoundException e){ + String log_info = String.format("一项学生信息的某项基本信息未在数据库找到, 该项数据无效." + + " %s: %s",e.getClassName(), e.getValue()); + log.warn(log_info); + } catch (BaseInformationIllegalException e){ + String log_info = String.format("一项学生信息的某项基本信息不合法, 该项数据无效." + + " %s: %s", e.getType(), e.getValue()); + log.warn(log_info); + } catch (BaseInformationAlreadyExistException e){ + String log_info = String.format("一项学生信息的学号已在数据库中包含." + + " %s: %s",e.getClassName(), e.getValue()); + log.warn(log_info); + } + } + } + + @Override + public BaseStudentInfo constructStudentInfo(String studentId, + String classId, + String realName, String sex, + String college, + String major, String ethnic, + String politicalStatus, + String administrativeDivision) + { + // 检查 + if(!sex.equals("男") && !sex.equals("女")) + throw new BaseInformationIllegalException(String.class, sex); + if(classId.length() != 8) + throw new BaseInformationIllegalException(String.class, classId); + if(studentId.length() != 10) + throw new BaseInformationIllegalException(String.class, studentId); + if(realName.length() > 64) + throw new BaseInformationIllegalException(String.class, realName); + + BaseStudentInfo studentInfo = new BaseStudentInfo(); + studentInfo.setSex(sex); + studentInfo.setClassId(classId); + studentInfo.setName(realName); + studentInfo.setStudentId(studentId); + studentInfo.setAdministrativeDivision(findAdministrativeDivisionByName(administrativeDivision)); + studentInfo.setCollege(findCollegeByName(college)); + studentInfo.setEthnic(findEthnicByName(ethnic)); + studentInfo.setMajor(findMajorByName(major)); + studentInfo.setPoliticalStatus(findPoliticalStatusByName(politicalStatus)); + + return studentInfo; + } + + @Override + public BaseStudentInfo save(BaseStudentInfo baseStudentInfo) { + if(baseStudentInfo.getAdministrativeDivision() == null + || baseStudentInfo.getCollege() == null + || baseStudentInfo.getEthnic() == null + || baseStudentInfo.getMajor() == null + || baseStudentInfo.getPoliticalStatus() == null + || baseStudentInfo.getClassId().equals("") + || baseStudentInfo.getStudentId().equals("") + || baseStudentInfo.getName().equals("")) + + throw new BaseInformationIllegalException( + baseStudentInfo.getClass(), + "One of the Attributes IS NULL or Empty"); + + // 检查学号重复 + if(checkStudentInfo(baseStudentInfo.getStudentId())) + throw new BaseInformationAlreadyExistException( + baseStudentInfo.getClass(), + baseStudentInfo.getStudentId()); + + + + return studentInfoRepository.save(baseStudentInfo); + } + + @Override + public BaseStudentInfo update(BaseStudentInfo baseStudentInfo) { + // 更新前检查 + if(!checkStudentInfo(baseStudentInfo.getStudentId())) + throw new BaseInformationNotFoundException(BaseStudentInfo.class, baseStudentInfo.getStudentId()); + return studentInfoRepository.save(baseStudentInfo); + } +} diff --git a/src/main/java/com/codesdream/ase/service/IActivityService.java b/src/main/java/com/codesdream/ase/service/IActivityService.java new file mode 100644 index 0000000..0e85465 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/IActivityService.java @@ -0,0 +1,59 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.activity.Report; +import com.codesdream.ase.model.permission.User; + +import java.util.List; +import java.util.Optional; + +public interface IActivityService { + //通过标题查找活动 + Optional findActivityByTitle(String title); + + //通过创建人姓名查找活动 + Optional findActivityByCreator(String creatorName); + + //通过活动类型查找活动 + List findActivityByType(User user, String type); + + //活动持久化 + Activity save(Activity activity); + + //添加活动报告 + Activity addReport(Activity activity, Report report); + + //活动删除 + void delete(Activity activity); + + //活动信息更新 + Activity update(Activity activity); + + //活动创建 + Activity createActivity(Activity activity); + + //查询主要负责的活动 + List findMainResponsibleActs(User user); + + //查询次要负责的活动 + List findSecondaryResponsibleActs(User user); + + //查询所有可见活动(即可报名活动、主次要负责的活动、参与过的活动等等之外却仍然可见的活动并集) + List findVisibleActs(User user); + + //查找可报名的活动 + List findSignActs(User user); + + //查询参与过的活动 + List findParticipatedActs(User user); + + //查询将要参与的活动 + List findParticipatingActs(User user); + + //查询创建的活动 + List findCreatedActs(User user); + + //查询所有活动(权限内) + List findAll(User user); + +} diff --git a/src/main/java/com/codesdream/ase/service/IAuthService.java b/src/main/java/com/codesdream/ase/service/IAuthService.java new file mode 100644 index 0000000..0adae64 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/IAuthService.java @@ -0,0 +1,22 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.auth.JSONToken; + +import java.util.Optional; + +public interface IAuthService { + // 通过用户名查找与对应用户相关联的token + Optional findTokenByUserName(String username); + + // 检查token是否过期 + boolean checkTokenIfExpired(JSONToken token); + + // 为用户获得一个新的API Token + Optional userNewTokenGetter(String username, String clientCode); + + // 获得一个新的预验证码 + String preValidationCodeGetter(); + + // 检验预验证码 + boolean preValidationCodeChecker(String pvc); +} diff --git a/src/main/java/com/codesdream/ase/service/IBaseInformationService.java b/src/main/java/com/codesdream/ase/service/IBaseInformationService.java new file mode 100644 index 0000000..1a1e5c8 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/IBaseInformationService.java @@ -0,0 +1,57 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.component.datamanager.DataTable; +import com.codesdream.ase.model.information.*; +import com.fasterxml.jackson.databind.ser.Serializers; + +import java.util.Optional; + +public interface IBaseInformationService { + // 检查行政区域是否合法 + boolean checkAdministrativeDivision(String name); + + // 检查学院名称是否合法 + boolean checkCollege(String name); + + // 检查民族名称是否合法 + boolean checkEthnic(String name); + + // 检查专业信息是否合法 + boolean checkMajor(String name); + + // 检查政治面貌信息是否合法 + boolean checkPoliticalStatus(String name); + + // 检查考生类型是否合法 + boolean checkCandidateStatus(String name); + + // 检查学生信息是否存在 + boolean checkStudentInfo(String studentId); + + // 根据名字查找有效的省级行政区划 + BaseAdministrativeDivision findAdministrativeDivisionByName(String name); + + // 查找学院 + BaseCollege findCollegeByName(String name); + + BaseEthnic findEthnicByName(String name); + + BaseMajor findMajorByName(String name); + + BasePoliticalStatus findPoliticalStatusByName(String name); + + BaseCandidateCategory findCandidateCategoryByName(String name); + + BaseStudentInfo findStudentInfoByStudentId(String studentId); + + // 从文件中导入学生基本信息 + void studentInfoImportFromDataTable(DataTable table); + + BaseStudentInfo constructStudentInfo(String studentId, + String classId, String realName, String sex, String college, String major, String ethnic, String politicalStatus, + String administrativeDivision); + + BaseStudentInfo save(BaseStudentInfo baseStudentInfo); + + BaseStudentInfo update(BaseStudentInfo baseStudentInfo); +} diff --git a/src/main/java/com/codesdream/ase/service/ILeavesService.java b/src/main/java/com/codesdream/ase/service/ILeavesService.java new file mode 100644 index 0000000..4f64f43 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/ILeavesService.java @@ -0,0 +1,33 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.leaves.Leave; + + +import java.util.Optional; +import java.util.OptionalInt; + +public interface ILeavesService { + //通过标题查找活动 + Optional findLeaveByTitle(String title); + + //通过创建人姓名查找活动 + Optional findLeaveByCreator(String creatorName); + + OptionalfindLeaveById(int id); + + //活动 + Leave save(Leave leave); + + + //请假删除 + void delete(Leave Leave); + + //请假信息更新 + Leave update(Leave Leave); + //创建请假条目 + Leave createLeave(Leave Leave); + + //查询主要负责的活动 + //Leave findActivitiesInTheCharge(User user); + +} diff --git a/src/main/java/com/codesdream/ase/service/IPermissionService.java b/src/main/java/com/codesdream/ase/service/IPermissionService.java new file mode 100644 index 0000000..5bd47ad --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/IPermissionService.java @@ -0,0 +1,140 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.permission.*; +import javafx.util.Pair; + +import java.util.*; + +public interface IPermissionService { + + FunctionalPermissionContainer getDefaultFPC(String name); + + ScopePermissionContainer getDefaultSPC(String name); + + PermissionContainersCollection getDefaultPCC(String name); + + Tag getDefaultTag(String name); + + // 查找用户标签 + Optional findTag(String name); + + // 查找用户标签 + Optional findTag(Integer id); + + // 列出所有的标签 + Iterable findAllTag(); + + Set findTags(List ids); + + // 查找功能性权限容器 + Optional findFPC(String name); + + Iterable findAllFPC(); + + // 查找范围性权限容器 + Optional findSPC(String name); + + // 根据id查找功能性权限容器 + Optional findFPC(int id); + + Iterable findALLSPC(); + + // 根据id查找范围性权限容器 + Optional findSPC(int id); + + // 标签下所有的获得权限容器集合列表 + Collection getPCCs(Tag tag); + + Set findPCCs(Set pccs); + + Optional findPCC(Integer id); + + // 查找功能 + Optional findFunction(Integer id); + + // 查找功能 + Optional findFunction(String name); + + // 根据序号列表寻找功能 + Set findFunctions(Set funcs); + + Iterable findAllFunction(); + + // 获得范围性权限容器下的所有标签列表 + Collection getTagsFromSPC( + ScopePermissionContainer spc); + + // 查找用户下的所有标签列表 + Collection getTagsFromUser(User user); + + + // 查找功能性权限容器下的所有范围性权限容器列表 + Collection getFPCs( + PermissionContainersCollection pcc); + + // 查找标签下的所有用户 + Set getUsersFromTag(Tag tag); + + // 指定一对功能性权限容器与对应的范围性权限容器并添加到指定权限容器集合中 + PermissionContainersCollection addRelationItemToPCC( + PermissionContainersCollection pcc, + FunctionalPermissionContainer fpc, + ScopePermissionContainer spc); + + // 指定多对功能性权限容器与对应的范围性权限容器并添加到指定权限容器集合中 + PermissionContainersCollection addRelationItemsToPCC( + PermissionContainersCollection pcc, + Collection> + fspcPairs); + + // 添加一个用户到指定标签中 + Tag addUserToTag(Tag tag, User user); + + // 添加多个用户到指定标签中 + Tag addUsersToTag(Tag tag, Collection users); + + // 为功能性权限容器添加一个访问控制角色 + FunctionalPermissionContainer addRoleToFPC( + FunctionalPermissionContainer fpc, + Function function); + + // 为功能性权限容器添加多个访问控制角色 + FunctionalPermissionContainer addRolesToFPC( + FunctionalPermissionContainer fpc, + Collection functions); + + // 为范围性权限容器添加一个标签 + ScopePermissionContainer addTagToSPC(ScopePermissionContainer spc, Tag tag); + + // 为范围性权限容器添加多个标签 + ScopePermissionContainer addTagsToSPC(ScopePermissionContainer spc, Collection tags); + + // 将一个权限容器集合添加到标签中 + Tag addPCCToTag(Tag tag, PermissionContainersCollection pcc); + + // 将多个权限容器集合添加到标签中 + Tag addPCCsToTag(Tag tag, Collection pccs); + + Tag save(Tag tag); + + Function save(Function tag); + + void delete(Tag tag); + + FunctionalPermissionContainer save(FunctionalPermissionContainer fpc); + + ScopePermissionContainer save(ScopePermissionContainer spc); + + PermissionContainersCollection save(PermissionContainersCollection pcc); + + Tag update(Tag tag); + + Function update(Function function); + + FunctionalPermissionContainer update(FunctionalPermissionContainer fpc); + + ScopePermissionContainer update(ScopePermissionContainer spc); + + PermissionContainersCollection update(PermissionContainersCollection pcc); + +} diff --git a/src/main/java/com/codesdream/ase/service/IReportService.java b/src/main/java/com/codesdream/ase/service/IReportService.java new file mode 100644 index 0000000..2ac8614 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/IReportService.java @@ -0,0 +1,19 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.activity.Report; + +import java.util.Optional; + +public interface IReportService { + + Optional findByTitle(String title); + + Optional findByCreator(String creatorName); + + Report save(Activity activity, Report report); + + void delete(Report report); + + Report update (Report report); +} diff --git a/src/main/java/com/codesdream/ase/service/IUserService.java b/src/main/java/com/codesdream/ase/service/IUserService.java new file mode 100644 index 0000000..8426fd2 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/IUserService.java @@ -0,0 +1,61 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.information.BaseStudentInfo; +import com.codesdream.ase.model.permission.User; +import javafx.util.Pair; +import org.springframework.security.core.GrantedAuthority; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.Set; + + +public interface IUserService { + + // 获得一个空的默认用户 + User getDefaultUser(); + + // 由学生基本信息生成对应用户 + User createUserByStudentInfo(BaseStudentInfo studentInfo); + + List findAll(); + + Optional findUserById(int id); + + Optional findUserByUsername(String username); + + // 查询用户是否存在 + public Pair checkIfUserExists(String username); + + // 获得用户所有的权限角色 + Collection getUserAuthorities(User user); + + // 更新用户的密码 + User updatePassword(User user, String password); + + // 封禁用户 + User disableUser(User user); + + // 根据学号生成随机用户名 + void generateRandomUsernameByStudentID(User user, String id); + + // 更具学号获得对应的用户名 + String getUsernameByStudentId(String studentId); + + Set findUsersById(Set usersId); + + // 随机生成一个用户名 + void generateRandomUsername(User user); + + // 注册用户 + User save(User user); + + // 更新用户信息 + User update(User user); + + // 删除用户 + void delete(User user); + + +} diff --git a/src/main/java/com/codesdream/ase/service/LeavesService.java b/src/main/java/com/codesdream/ase/service/LeavesService.java new file mode 100644 index 0000000..0e58d35 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/LeavesService.java @@ -0,0 +1,60 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.leaves.Leave; +import com.codesdream.ase.repository.leaves.LeaveRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Optional; + +@Service +public class LeavesService implements ILeavesService { + + @Resource + private LeaveRepository leaveRepository; + + + @Override + public Optional findLeaveByTitle(String title) { + return Optional.empty(); + } + + @Override + public Optional findLeaveByCreator(String creatorName) { + return Optional.empty(); + } + + @Override + public Leave save( Leave leave) { + return leaveRepository.save(leave); + } + + @Override + public Optional findLeaveById(int id) { + return leaveRepository.findById(id); + } + + + + @Override + public void delete(Leave leave) { + leaveRepository.delete(leave); + } + + @Override + public Leave update(Leave leave) { + return leaveRepository.save(leave); + } + + @Override + public Leave createLeave(Leave leave) { + return leaveRepository.save(leave); + } + + +/*@Override + public Leave findActivitiesInTheCharge(User user) { + + }*/ + +} diff --git a/src/main/java/com/codesdream/ase/service/PeriodService.java b/src/main/java/com/codesdream/ase/service/PeriodService.java new file mode 100644 index 0000000..879de10 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/PeriodService.java @@ -0,0 +1,22 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.activity.Period; +import com.codesdream.ase.repository.activity.PeriodRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class PeriodService { + + @Resource + PeriodRepository periodRepository; + + public Period save(Period period) { + return periodRepository.save(period); + } + + public void delete(Period period) { + periodRepository.delete(period); + } +} diff --git a/src/main/java/com/codesdream/ase/service/PermissionService.java b/src/main/java/com/codesdream/ase/service/PermissionService.java new file mode 100644 index 0000000..21c7774 --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/PermissionService.java @@ -0,0 +1,361 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.component.permission.UserFPCListGenerator; +import com.codesdream.ase.component.permission.UserFSRGenerator; +import com.codesdream.ase.exception.badrequest.AlreadyExistException; +import com.codesdream.ase.exception.notfound.NotFoundException; +import com.codesdream.ase.model.permission.*; +import com.codesdream.ase.repository.permission.*; +import javafx.util.Pair; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class PermissionService implements IPermissionService { + + @Resource + private TagRepository tagRepository; + + @Resource + private FunctionalPermissionContainerRepository fpcRepository; + + @Resource + private ScopePermissionContainerRepository spcRepository; + + @Resource + private PermissionContainersCollectionRepository pccRepository; + + @Resource + private IUserService userService; + + @Resource + private UserFPCListGenerator userFPCListGenerator; + + @Resource + private UserFSRGenerator userFSRGenerator; + + @Resource + private FunctionRepository functionRepository; + + @Override + public FunctionalPermissionContainer getDefaultFPC(String name) { + return new FunctionalPermissionContainer(name); + } + + @Override + public ScopePermissionContainer getDefaultSPC(String name) { + return new ScopePermissionContainer(name); + } + + @Override + public PermissionContainersCollection getDefaultPCC(String name) { + return new PermissionContainersCollection(name); + } + + @Override + public Tag getDefaultTag(String name) { + return new Tag(name); + } + + @Override + public Optional findTag(String name) { + return tagRepository.findByName(name); + } + + @Override + public Optional findTag(Integer id) { + return tagRepository.findById(id); + } + + @Override + public Iterable findAllTag() { + return tagRepository.findAll(); + } + + @Override + public Set findTags(List ids) { + Set tagSet = new HashSet<>(); + for(Integer id : ids){ + Optional tag = findTag(id); + if(!tag.isPresent()) throw new NotFoundException(id.toString()); + tagSet.add(tag.get()); + } + return tagSet; + } + + @Override + public Optional findFPC(String name) { + return fpcRepository.findByName(name); + } + + public Iterable findAllFPC() { + return fpcRepository.findAll(); + } + + @Override + public Optional findSPC(String name) { + return spcRepository.findByName(name); + } + + @Override + public Optional findFPC(int id) { + return fpcRepository.findById(id); + } + + @Override + public Iterable findALLSPC() { + return spcRepository.findAll(); + } + + @Override + public Optional findSPC(int id) { + return spcRepository.findById(id); + } + + @Override + public Collection getPCCs(Tag tag) { + return new ArrayList<>(tag.getPermissionContainersCollections()); + } + + @Override + public Set findPCCs(Set pccs) { + Set set = new HashSet<>(); + for(Integer id : pccs){ + Optional pcc = findPCC(id); + if(!pcc.isPresent()) throw new NotFoundException(String.format("PCCId: %d",id)); + set.add(pcc.get()); + } + return set; + } + + @Override + public Optional findPCC(Integer id) { + return pccRepository.findById(id); + } + + @Override + public Optional findFunction(Integer id) { + return functionRepository.findById(id); + } + + @Override + public Optional findFunction(String name) { + return functionRepository.findByName(name); + } + + @Override + public Set findFunctions(Set funcs) { + Set set = new HashSet<>(); + for(Integer id : funcs){ + Optional function = findFunction(id); + if(!function.isPresent()) throw new NotFoundException(id.toString()); + set.add(function.get()); + } + return set; + } + + @Override + public Iterable findAllFunction() { + return functionRepository.findAll(); + } + + @Override + public Collection getTagsFromSPC(ScopePermissionContainer spc) { + return new ArrayList<>(spc.getTags()); + } + + @Override + public Collection getTagsFromUser(User user) { + return new ArrayList<>(user.getTags()); + } + + @Override + public Collection getFPCs( + PermissionContainersCollection pcc) + { + + Collection pccCollections = + new ArrayList(){{ + add(pcc); + }}; + + // 生成功能性与范围性权限容器关联对 + Collection fsr = + userFSRGenerator.generateFSRs(pccCollections); + return userFPCListGenerator.generateFPC(fsr); + } + + @Override + public Set getUsersFromTag(Tag tag) { + return new HashSet<>(tag.getUsers()); + } + + @Override + public PermissionContainersCollection addRelationItemToPCC(PermissionContainersCollection pcc, + FunctionalPermissionContainer fpc, + ScopePermissionContainer spc) + { + if(!findFPC(fpc.getId()).isPresent()){ + throw new RuntimeException("FPC NOT In Database"); + } + if(!findSPC(spc.getId()).isPresent()){ + throw new RuntimeException("SPC NOT In Database"); + } + FunctionalScopeRelation relation = new FunctionalScopeRelation(); + relation.setFunctionalPermissionContainer(fpc); + relation.setScopePermissionContainer(spc); + pcc.getFunctionalScopeRelations().add(relation); + return update(pcc); + + } + + @Override + public PermissionContainersCollection addRelationItemsToPCC(PermissionContainersCollection pcc, + Collection> fspcPairs) + { + for(Pair fspc :fspcPairs){ + pcc = addRelationItemToPCC(pcc, fspc.getKey(), fspc.getValue()); + } + return pcc; + } + + @Override + public Tag addUserToTag(Tag tag, User user) { + // 检查用户是否存在 + if(!userService.checkIfUserExists(user.getUsername()).getKey()) + throw new RuntimeException("User Not Exist"); + tag.getUsers().add(user); + return update(tag); + } + + @Override + public Tag addUsersToTag(Tag tag, Collection users) { + for(User user :users){ + tag = addUserToTag(tag, user); + } + return tag; + } + + @Override + public FunctionalPermissionContainer addRoleToFPC(FunctionalPermissionContainer fpc, Function function) { + fpc.getFunctions().add(function); + return update(fpc); + } + + @Override + public FunctionalPermissionContainer addRolesToFPC(FunctionalPermissionContainer fpc, Collection functions) { + for(Function function : functions){ + fpc = addRoleToFPC(fpc, function); + } + return fpc; + } + + @Override + public ScopePermissionContainer addTagToSPC(ScopePermissionContainer spc, Tag tag) { + if(!tagRepository.findByName(tag.getName()).isPresent()) + throw new RuntimeException("Tag Not Exist"); + spc.getTags().add(tag); + return update(spc); + } + + @Override + public ScopePermissionContainer addTagsToSPC(ScopePermissionContainer spc, Collection tags) { + for(Tag tag :tags){ + spc = addTagToSPC(spc, tag); + } + return spc; + } + + @Override + public Tag addPCCToTag(Tag tag, PermissionContainersCollection pcc) { + if(!pccRepository.findByName(pcc.getName()).isPresent()) + throw new RuntimeException("PCC Not Exist"); + tag.getPermissionContainersCollections().add(pcc); + return update(tag); + } + + @Override + public Tag addPCCsToTag(Tag tag, Collection pccs) { + for(PermissionContainersCollection pcc : pccs) { + tag = addPCCToTag(tag, pcc); + } + return tag; + } + + @Override + public Tag save(Tag tag) { + if(tagRepository.findByName(tag.getName()).isPresent()) + throw new AlreadyExistException(tag.getName()); + return tagRepository.save(tag); + } + + @Override + public Function save(Function function) { + if(functionRepository.findByName(function.getName()).isPresent()) + throw new AlreadyExistException(function.getName()); + return functionRepository.save(function); + } + + @Override + public void delete(Tag tag) { + tagRepository.delete(tag); + } + + @Override + public FunctionalPermissionContainer save(FunctionalPermissionContainer fpc) { + if(fpcRepository.findByName(fpc.getName()).isPresent()) + throw new AlreadyExistException(fpc.getName()); + return fpcRepository.save(fpc); + } + + @Override + public ScopePermissionContainer save(ScopePermissionContainer spc) { + if(spcRepository.findByName(spc.getName()).isPresent()) + throw new AlreadyExistException(spc.getName()); + return spcRepository.save(spc); + } + + @Override + public PermissionContainersCollection save(PermissionContainersCollection pcc) { + if(pccRepository.findByName(pcc.getName()).isPresent()) + throw new RuntimeException(pcc.getName()); + return pccRepository.save(pcc); + } + + @Override + public Tag update(Tag tag) { + if(!tagRepository.findByName(tag.getName()).isPresent()) + throw new NotFoundException(tag.getName()); + return tagRepository.save(tag); + } + + @Override + public Function update(Function function) { + if(!functionRepository.findByName(function.getName()).isPresent()) + throw new NotFoundException(function.getName()); + return functionRepository.save(function); + } + + @Override + public FunctionalPermissionContainer update(FunctionalPermissionContainer fpc) { + if(!fpcRepository.findByName(fpc.getName()).isPresent()) + throw new NotFoundException(fpc.getName()); + return fpcRepository.save(fpc); + } + + @Override + public ScopePermissionContainer update(ScopePermissionContainer spc) { + if(!spcRepository.findByName(spc.getName()).isPresent()) + throw new NotFoundException(spc.getName()); + return spcRepository.save(spc); + } + + @Override + public PermissionContainersCollection update(PermissionContainersCollection pcc) { + if(!pccRepository.findByName(pcc.getName()).isPresent()) + throw new NotFoundException(pcc.getName()); + return pccRepository.save(pcc); + } +} diff --git a/src/main/java/com/codesdream/ase/service/ReportService.java b/src/main/java/com/codesdream/ase/service/ReportService.java new file mode 100644 index 0000000..4077aff --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/ReportService.java @@ -0,0 +1,46 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.model.activity.Activity; +import com.codesdream.ase.model.activity.Report; +import com.codesdream.ase.repository.activity.ReportRepository; + +import javax.annotation.Resource; +import java.util.Optional; + +public class ReportService implements IReportService { + + @Resource + ReportRepository reportRepository; + ActivityService activityService; + + @Override + public Optional findByTitle(String title) { + return reportRepository.findByTitle(title); + } + + @Override + public Optional findByCreator(String creatorName) { + return reportRepository.findByCreator(creatorName); + } + + @Override + public Report save(Activity activity, Report report) { + if(activity == null){ + throw new RuntimeException("Activity does not exist."); + } + activityService.addReport(activity, report); + return reportRepository.save(report); + } + + @Override + public void delete(Report report) { + if(reportRepository.findById(report.getId()).isPresent()) reportRepository.delete(report); + else throw new RuntimeException("Report does not exist."); + } + + @Override + public Report update(Report report) { + reportRepository.save(report); + return report; + } +} diff --git a/src/main/java/com/codesdream/ase/service/UserService.java b/src/main/java/com/codesdream/ase/service/UserService.java new file mode 100644 index 0000000..29b70fa --- /dev/null +++ b/src/main/java/com/codesdream/ase/service/UserService.java @@ -0,0 +1,179 @@ +package com.codesdream.ase.service; + +import com.codesdream.ase.component.auth.ASEPasswordEncoder; +import com.codesdream.ase.component.auth.ASEUsernameEncoder; +import com.codesdream.ase.component.permission.UserFunctionsListGenerator; +import com.codesdream.ase.exception.badrequest.UserInformationIllegalException; +import com.codesdream.ase.exception.notfound.UserNotFoundException; +import com.codesdream.ase.exception.badrequest.UsernameAlreadyExistException; +import com.codesdream.ase.model.information.BaseStudentInfo; +import com.codesdream.ase.model.permission.User; +import com.codesdream.ase.repository.permission.UserRepository; +import javafx.util.Pair; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class UserService implements IUserService { + @Resource + UserFunctionsListGenerator userFunctionsListGenerator; + + @Resource + UserRepository userRepository; + + @Resource + ASEPasswordEncoder passwordEncoder; + + @Resource + ASEUsernameEncoder usernameEncoder; + + @Override + public List findAll() { + return (List) userRepository.findAll(); + } + + @Override + public Optional findUserById(int id) { + return userRepository.findById(id); + } + + @Override + public Optional findUserByUsername(String username) { + Optional user = userRepository.findByUsername(username); + if(!user.isPresent()) throw new UsernameNotFoundException(username); + return user; + } + + @Override + public Pair checkIfUserExists(String username){ + Optional user = userRepository.findByUsername(username); + return user.map(value -> new Pair<>(true, value)).orElseGet(() -> new Pair<>(false, null)); + } + + @Override + public Collection getUserAuthorities(User user) { + return userFunctionsListGenerator.generateRoles(user); + } + + @Override + public User updatePassword(User user, String password) { + user.setPassword(passwordEncoder.encode(password)); + return update(user); + } + + // 封禁用户 + @Override + public User disableUser(User user){ + user.setEnabled(false); + return update(user); + } + + @Override + public void generateRandomUsernameByStudentID(User user, String id) { + user.getUserAuth().setStudentID(id); + user.setUsername(usernameEncoder.encode(id)); + } + + @Override + public String getUsernameByStudentId(String studentId) { + return usernameEncoder.encode(studentId); + } + + @Override + public Set findUsersById(Set usersId) { + Set userSet = new HashSet<>(); + for(Integer id : usersId){ + Optional user = findUserById(id); + if(!user.isPresent()) throw new UserNotFoundException(String.format("ID: %d", id)); + userSet.add(user.get()); + } + return userSet; + } + + @Override + public void generateRandomUsername(User user) { + user.setUsername(usernameEncoder.encode(UUID.randomUUID().toString())); + } + + @Override + public User save(User user) { + // 查找用户名是否已经被注册 + if(userRepository.findByUsername(user.getUsername()).isPresent()) + throw new UsernameAlreadyExistException(user.getUsername()); + + // 用户关键信息一般性规范检查 + if(user.getUserAuth().getUserAnswer() == null + || user.getUserAuth().getUserQuestion() == null + || user.getUserAuth().getStudentID() == null + || user.getUserDetail().getRealName() == null + || user.getUserAuth().getMail() == null){ + throw new RuntimeException("Some Key Information IS NULL"); + } + + + // 用户信息一般性规范检查 + if(user.getUserAuth().getUserAnswer().length() > 255 + || user.getUserAuth().getUserQuestion().length() > 255 + || user.getUserAuth().getStudentID().length() > 24 + || user.getUserAuth().getMail().length() > 64 + || user.getUserDetail().getRealName().length() > 64) + throw new UserInformationIllegalException(user.getUsername()); + + // 强制以哈希值(sha256)保存密码 + user.setPassword(passwordEncoder.encode(user.getPassword())); + return userRepository.save(user); + } + + @Override + public User update(User user) { + // 执行前检查 + if(!userRepository.findById(user.getId()).isPresent()) + throw new UserNotFoundException(user.getId(), user.getUsername()); + return userRepository.save(user); + + } + + @Override + public void delete(User user) { + // 执行前检查 + if(!userRepository.findById(user.getId()).isPresent()) + throw new UserNotFoundException(user.getId(), user.getUsername()); + userRepository.delete(user); + } + + // 获得一个默认初始化的用户对象 + @Override + public User getDefaultUser() { + return new User(); + } + + @Override + public User createUserByStudentInfo(BaseStudentInfo studentInfo) { + User user = getDefaultUser(); + // 根据学生id生成用户名 + generateRandomUsernameByStudentID(user, studentInfo.getStudentId()); + // 填充用户基本信息 + user.getUserAuth().setStudentID(studentInfo.getStudentId()); + user.getUserDetail().setClassId(studentInfo.getClassId()); + user.getUserDetail().setRealName(studentInfo.getName()); + + // 填充用户详细信息 + user.getUserDetail().setBaseAdministrativeDivision(studentInfo.getAdministrativeDivision()); + user.getUserDetail().setBaseCollege(studentInfo.getCollege()); + user.getUserDetail().setBaseMajor(studentInfo.getMajor()); + user.getUserDetail().setBaseEthnic(studentInfo.getEthnic()); + user.getUserDetail().setBasePoliticalStatus(studentInfo.getPoliticalStatus()); + user.getUserDetail().setSex(studentInfo.getSex()); + + // 添加在校学生认证 + user.getUserDetail().setAtSchool(true); + + return user; + } + + +} diff --git a/src/main/java/com/codesdream/ase/validator/ActivityValidator.java b/src/main/java/com/codesdream/ase/validator/ActivityValidator.java new file mode 100644 index 0000000..3f6488f --- /dev/null +++ b/src/main/java/com/codesdream/ase/validator/ActivityValidator.java @@ -0,0 +1,20 @@ +package com.codesdream.ase.validator; + +import com.alibaba.fastjson.JSONObject; +import com.codesdream.ase.model.activity.Activity; +import org.springframework.stereotype.Component; + +import java.nio.file.OpenOption; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +//检查当前活动各属性值是否合法(存在) +@Component +public class ActivityValidator { + + public String[] check(Optional json) { + return null; + } +} diff --git a/src/main/java/com/codesdream/ase/validator/JSONFormValidator.java b/src/main/java/com/codesdream/ase/validator/JSONFormValidator.java new file mode 100644 index 0000000..a54272c --- /dev/null +++ b/src/main/java/com/codesdream/ase/validator/JSONFormValidator.java @@ -0,0 +1,28 @@ +package com.codesdream.ase.validator; + +import com.alibaba.fastjson.JSONObject; +import org.springframework.stereotype.Component; + +import java.util.*; + +//用于检查JSON格式是否合法 +@Component +public class JSONFormValidator { + + /** + * @param stdForm 标准表单格式,根据需求自定义 + * @param json 待检验的json对象 + * @return 空列表或者缺失的表单信息列表 + */ + public List check(Set stdForm, JSONObject json) { + + List res = new ArrayList<>(); + Set jsonForm = json.keySet(); + for (String str : stdForm) { + if (!jsonForm.contains(str)) { + res.add(str); + } + } + return res; + } +} diff --git a/src/main/java/com/codesdream/ase/validator/NullValueValidator.java b/src/main/java/com/codesdream/ase/validator/NullValueValidator.java new file mode 100644 index 0000000..d6249bd --- /dev/null +++ b/src/main/java/com/codesdream/ase/validator/NullValueValidator.java @@ -0,0 +1,76 @@ +package com.codesdream.ase.validator; + +import com.codesdream.ase.model.activity.Attendance; +import com.codesdream.ase.model.activity.Period; +import com.codesdream.ase.model.activity.Report; +import com.codesdream.ase.model.permission.User; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Set; + +@Component +public class NullValueValidator { + + /** + * 传入一个对象,利用Java的反射机制判断各个属性的值是否为空,并返回空值列表 + * @param object 传入的对象 + * @return 一个字符串列表,维护值为空的属性的名字 + * @throws NoSuchMethodException + * @throws InvocationTargetException + * @throws IllegalAccessException + */ + public List checkNullValues (Object object) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Field[] fields = object.getClass().getDeclaredFields(); + List result = new ArrayList<>(); + for (Field field : fields){ + String name = field.getName(); + String type = field.getGenericType().toString(); + Method method = object.getClass().getMethod("get" + name); + name = field.getName(); + if(type.equals("class java.lang.String")){ + String str = (String) method.invoke(object); + if(str.isEmpty()) result.add(name); + } + else if(type.equals("class com.codesdream.ase.model.permission.User")){ + User user = (User) method.invoke(object); + if(user == null) result.add(name); + } + else if(type.equals("java.util.Set")){ + Set users = (Set) method.invoke(object); + if(users.isEmpty()) result.add(name); + } + else if(type.equals("class com.codesdream.ase.model.activity.Period")){ + Period period = (Period) method.invoke(object); + if(period == null) result.add(name); + } + else if(type.equals(("class java.time.LocalDateTime"))){ + LocalDateTime date = (LocalDateTime) method.invoke(object); + if(date == null) result.add(name); + } + else if(type.equals("java.util.List")){ + List strings = (List) method.invoke(object); + if(strings.isEmpty()) result.add(name); + } + else if(type.equals("boolean")){ + boolean a = (boolean) method.invoke(object); + if(!a) result.add(name); + } + else if(type.equals("class com.codesdream.ase.model.activity.Attendance")){ + Attendance attendance = (Attendance) method.invoke(object); + if(attendance == null) result.add(name); + } + else if(type.equals("class com.codesdream.ase.model.activity.Report")){ + Report report = (Report) method.invoke(object); + if(report == null) result.add(name); + } + } + return result; + } +} diff --git a/src/main/java/com/codesdream/ase/validator/TestNullValueValidator.java b/src/main/java/com/codesdream/ase/validator/TestNullValueValidator.java new file mode 100644 index 0000000..a7c4a84 --- /dev/null +++ b/src/main/java/com/codesdream/ase/validator/TestNullValueValidator.java @@ -0,0 +1,27 @@ +package com.codesdream.ase.validator; + +import com.codesdream.ase.model.activity.Activity; +import javafx.beans.binding.ObjectExpression; + +import java.lang.reflect.Field; + +public class TestNullValueValidator { + + public static void main(String[] args){ + Activity activity = new Activity(); + TestNullValueValidator.run(activity); + + } + + static void run(Object object){ + Field[] fields = object.getClass().getDeclaredFields(); + for (Field field : fields){ + String name = field.getName(); + name = name.substring(0,1).toUpperCase()+name.substring(1); + String type = field.getGenericType().toString(); + System.out.println("name: " + name); + System.out.println("Type: " + type); + System.out.println(); + } + } +} diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties new file mode 100644 index 0000000..240adf1 --- /dev/null +++ b/src/main/resources/application-dev.properties @@ -0,0 +1,23 @@ +server.port=8081 + +spring.thymeleaf.prefix=classpath:templates/ +spring.thymeleaf.suffix=.html +spring.thymeleaf.mode=HTML +spring.thymeleaf.encoding=UTF-8 + +spring.jpa.generate-ddl=false +spring.jpa.show-sql=true +spring.jpa.hibernate.ddl-auto=update +spring.jooq.sql-dialect=org.hibernate.dialect.MariaDB102Dialect +spring.jpa.open-in-view=true +spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true + +spring.datasource.url=jdbc:mariadb://localhost:3306/ase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC +spring.datasource.username=root +spring.datasource.password=#a9b9fa6422 +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver + +server.error.whitelabel.enabled=false + +logging.level.root=info +logging.level.org.springframework.security=info \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties new file mode 100644 index 0000000..c9dc072 --- /dev/null +++ b/src/main/resources/application-test.properties @@ -0,0 +1,24 @@ +server.port=8081 + +spring.thymeleaf.prefix=classpath:templates/ +spring.thymeleaf.suffix=.html +spring.thymeleaf.mode=HTML +spring.thymeleaf.encoding=UTF-8 + +spring.jpa.generate-ddl=false +spring.jpa.show-sql=true +spring.jpa.hibernate.ddl-auto=create-drop +spring.jooq.sql-dialect=org.hibernate.dialect.MariaDB102Dialect +spring.jpa.open-in-view=true +spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true + +spring.datasource.url=jdbc:h2:mem:test +spring.datasource.username= +spring.datasource.password= +spring.datasource.driver-class-name=org.h2.Driver + + +server.error.whitelabel.enabled=false + +logging.level.root=info +logging.level.org.springframework.security=info diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..258e642 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,23 @@ +server.port=8081 + +spring.thymeleaf.prefix=classpath:templates/ +spring.thymeleaf.suffix=.html +spring.thymeleaf.mode=HTML +spring.thymeleaf.encoding=UTF-8 + +spring.jpa.generate-ddl=false +spring.jpa.show-sql=true +spring.jpa.hibernate.ddl-auto=update +spring.jooq.sql-dialect=org.hibernate.dialect.MariaDB102Dialect +spring.jpa.open-in-view=true +spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true + +spring.datasource.url=jdbc:mariadb://39.100.94.111:3306/ase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC +spring.datasource.username=codedream +spring.datasource.password=codedreampasswd +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver + +server.error.whitelabel.enabled=false + +logging.level.root=info +logging.level.org.springframework.security=info diff --git a/src/main/resources/data_base_administrative_division.sql b/src/main/resources/data_base_administrative_division.sql new file mode 100644 index 0000000..0653887 --- /dev/null +++ b/src/main/resources/data_base_administrative_division.sql @@ -0,0 +1,3518 @@ +-- ---------------------------- +-- Records of base_administrative_division +-- ---------------------------- +INSERT INTO `base_administrative_division` VALUES ('000000', '未知', '0'); +INSERT INTO `base_administrative_division` VALUES ('110000', '北京市', '0'); +INSERT INTO `base_administrative_division` VALUES ('110100', '北京市市辖区', '110000'); +INSERT INTO `base_administrative_division` VALUES ('110101', '北京市东城区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110102', '北京市西城区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110105', '北京市朝阳区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110106', '北京市丰台区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110107', '北京市石景山区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110108', '北京市海淀区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110109', '北京市门头沟区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110111', '北京市房山区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110112', '北京市通州区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110113', '北京市顺义区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110114', '北京市昌平区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110115', '北京市大兴区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110116', '北京市怀柔区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110117', '北京市平谷区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110200', '北京市县', '110000'); +INSERT INTO `base_administrative_division` VALUES ('110228', '北京市密云县', '110200'); +INSERT INTO `base_administrative_division` VALUES ('110229', '北京市延庆县', '110200'); +INSERT INTO `base_administrative_division` VALUES ('120000', '天津市', '0'); +INSERT INTO `base_administrative_division` VALUES ('120100', '天津市市辖区', '120000'); +INSERT INTO `base_administrative_division` VALUES ('120101', '天津市和平区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120102', '天津市河东区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120103', '天津市河西区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120104', '天津市南开区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120105', '天津市河北区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120106', '天津市红桥区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120110', '天津市东丽区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120111', '天津市西青区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120112', '天津市津南区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120113', '天津市北辰区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120114', '天津市武清区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120115', '天津市宝坻区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120116', '天津市滨海新区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120200', '天津市县', '120000'); +INSERT INTO `base_administrative_division` VALUES ('120221', '天津市宁河县', '120200'); +INSERT INTO `base_administrative_division` VALUES ('120223', '天津市静海县', '120200'); +INSERT INTO `base_administrative_division` VALUES ('120225', '天津市蓟县', '120200'); +INSERT INTO `base_administrative_division` VALUES ('130000', '河北省', '0'); +INSERT INTO `base_administrative_division` VALUES ('130100', '河北省石家庄市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130101', '河北省石家庄市市辖区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130102', '河北省石家庄市长安区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130103', '河北省石家庄市桥东区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130104', '河北省石家庄市桥西区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130105', '河北省石家庄市新华区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130107', '河北省石家庄市井陉矿区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130108', '河北省石家庄市裕华区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130121', '河北省井陉县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130123', '河北省正定县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130124', '河北省栾城县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130125', '河北省行唐县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130126', '河北省灵寿县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130127', '河北省高邑县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130128', '河北省深泽县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130129', '河北省赞皇县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130130', '河北省无极县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130131', '河北省平山县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130132', '河北省元氏县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130133', '河北省赵县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130181', '河北省辛集市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130182', '河北省藁城市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130183', '河北省晋州市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130184', '河北省新乐市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130185', '河北省鹿泉市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130200', '河北省唐山市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130201', '河北省唐山市市辖区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130202', '河北省唐山市路南区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130203', '河北省唐山市路北区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130204', '河北省唐山市古冶区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130205', '河北省唐山市开平区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130207', '河北省唐山市丰南区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130208', '河北省唐山市丰润区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130223', '河北省滦县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130224', '河北省滦南县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130225', '河北省乐亭县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130227', '河北省迁西县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130229', '河北省玉田县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130230', '河北省唐海县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130281', '河北省遵化市', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130283', '河北省迁安市', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130300', '河北省秦皇岛市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130301', '河北省秦皇岛市市辖区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130302', '河北省秦皇岛市海港区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130303', '河北省秦皇岛市山海关区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130304', '河北省秦皇岛市北戴河区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130321', '河北省青龙满族自治县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130322', '河北省昌黎县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130323', '河北省抚宁县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130324', '河北省卢龙县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130400', '河北省邯郸市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130401', '河北省邯郸市市辖区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130402', '河北省邯郸市邯山区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130403', '河北省邯郸市丛台区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130404', '河北省邯郸市复兴区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130406', '河北省邯郸市峰峰矿区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130421', '河北省邯郸县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130423', '河北省临漳县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130424', '河北省成安县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130425', '河北省大名县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130426', '河北省涉县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130427', '河北省磁县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130428', '河北省肥乡县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130429', '河北省永年县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130430', '河北省邱县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130431', '河北省鸡泽县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130432', '河北省广平县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130433', '河北省馆陶县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130434', '河北省魏县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130435', '河北省曲周县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130481', '河北省武安市', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130500', '河北省邢台市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130501', '河北省邢台市市辖区', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130502', '河北省邢台市桥东区', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130503', '河北省邢台市桥西区', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130521', '河北省邢台县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130522', '河北省临城县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130523', '河北省内丘县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130524', '河北省柏乡县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130525', '河北省隆尧县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130526', '河北省任县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130527', '河北省南和县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130528', '河北省宁晋县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130529', '河北省巨鹿县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130530', '河北省新河县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130531', '河北省广宗县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130532', '河北省平乡县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130533', '河北省威县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130534', '河北省清河县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130535', '河北省临西县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130581', '河北省南宫市', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130582', '河北省沙河市', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130600', '河北省保定市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130601', '河北省保定市市辖区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130602', '河北省保定市新市区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130603', '河北省保定市北市区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130604', '河北省保定市南市区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130621', '河北省满城县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130622', '河北省清苑县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130623', '河北省涞水县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130624', '河北省阜平县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130625', '河北省徐水县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130626', '河北省定兴县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130627', '河北省唐县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130628', '河北省高阳县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130629', '河北省容城县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130630', '河北省涞源县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130631', '河北省望都县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130632', '河北省安新县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130633', '河北省易县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130634', '河北省曲阳县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130635', '河北省蠡县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130636', '河北省顺平县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130637', '河北省博野县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130638', '河北省雄县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130681', '河北省涿州市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130682', '河北省定州市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130683', '河北省安国市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130684', '河北省高碑店市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130700', '河北省张家口市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130701', '河北省张家口市市辖区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130702', '河北省张家口市桥东区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130703', '河北省张家口市桥西区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130705', '河北省张家口市宣化区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130706', '河北省张家口市下花园区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130721', '河北省宣化县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130722', '河北省张北县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130723', '河北省康保县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130724', '河北省沽源县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130725', '河北省尚义县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130726', '河北省蔚县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130727', '河北省阳原县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130728', '河北省怀安县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130729', '河北省万全县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130730', '河北省怀来县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130731', '河北省涿鹿县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130732', '河北省赤城县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130733', '河北省崇礼县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130800', '河北省承德市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130801', '河北省承德市市辖区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130802', '河北省承德市双桥区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130803', '河北省承德市双滦区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130804', '河北省承德市鹰手营子矿区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130821', '河北省承德县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130822', '河北省兴隆县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130823', '河北省平泉县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130824', '河北省滦平县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130825', '河北省隆化县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130826', '河北省丰宁满族自治县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130827', '河北省宽城满族自治县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130828', '河北省围场满族蒙古族自治县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130900', '河北省沧州市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130901', '河北省沧州市市辖区', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130902', '河北省沧州市新华区', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130903', '河北省沧州市运河区', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130921', '河北省沧县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130922', '河北省青县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130923', '河北省东光县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130924', '河北省海兴县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130925', '河北省盐山县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130926', '河北省肃宁县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130927', '河北省南皮县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130928', '河北省吴桥县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130929', '河北省献县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130930', '河北省孟村回族自治县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130981', '河北省泊头市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130982', '河北省任丘市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130983', '河北省黄骅市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130984', '河北省河间市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('131000', '河北省廊坊市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('131001', '河北省廊坊市市辖区', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131002', '河北省廊坊市安次区', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131003', '河北省廊坊市广阳区', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131022', '河北省固安县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131023', '河北省永清县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131024', '河北省香河县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131025', '河北省大城县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131026', '河北省文安县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131028', '河北省大厂回族自治县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131081', '河北省霸州市', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131082', '河北省三河市', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131100', '河北省衡水市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('131101', '河北省衡水市市辖区', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131102', '河北省衡水市桃城区', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131121', '河北省枣强县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131122', '河北省武邑县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131123', '河北省武强县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131124', '河北省饶阳县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131125', '河北省安平县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131126', '河北省故城县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131127', '河北省景县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131128', '河北省阜城县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131181', '河北省冀州市', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131182', '河北省深州市', '131100'); +INSERT INTO `base_administrative_division` VALUES ('140000', '山西省', '0'); +INSERT INTO `base_administrative_division` VALUES ('140100', '山西省太原市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140101', '山西省太原市市辖区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140105', '山西省太原市小店区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140106', '山西省太原市迎泽区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140107', '山西省太原市杏花岭区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140108', '山西省太原市尖草坪区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140109', '山西省太原市万柏林区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140110', '山西省太原市晋源区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140121', '山西省清徐县', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140122', '山西省阳曲县', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140123', '山西省娄烦县', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140181', '山西省古交市', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140200', '山西省大同市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140201', '山西省大同市市辖区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140202', '山西省大同市城区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140203', '山西省大同市矿区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140211', '山西省大同市南郊区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140212', '山西省大同市新荣区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140221', '山西省阳高县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140222', '山西省天镇县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140223', '山西省广灵县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140224', '山西省灵丘县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140225', '山西省浑源县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140226', '山西省左云县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140227', '山西省大同县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140300', '山西省阳泉市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140301', '山西省阳泉市市辖区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140302', '山西省阳泉市城区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140303', '山西省阳泉市矿区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140311', '山西省阳泉市郊区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140321', '山西省平定县', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140322', '山西省盂县', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140400', '山西省长治市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140401', '山西省长治市市辖区', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140402', '山西省长治市城区', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140411', '山西省长治市郊区', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140421', '山西省长治县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140423', '山西省襄垣县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140424', '山西省屯留县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140425', '山西省平顺县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140426', '山西省黎城县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140427', '山西省壶关县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140428', '山西省长子县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140429', '山西省武乡县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140430', '山西省沁县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140431', '山西省沁源县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140481', '山西省潞城市', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140500', '山西省晋城市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140501', '山西省晋城市市辖区', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140502', '山西省晋城市城区', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140521', '山西省沁水县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140522', '山西省阳城县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140524', '山西省陵川县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140525', '山西省泽州县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140581', '山西省高平市', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140600', '山西省朔州市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140601', '山西省朔州市市辖区', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140602', '山西省朔州市朔城区', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140603', '山西省朔州市平鲁区', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140621', '山西省山阴县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140622', '山西省应县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140623', '山西省右玉县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140624', '山西省怀仁县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140700', '山西省晋中市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140701', '山西省晋中市市辖区', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140702', '山西省晋中市榆次区', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140721', '山西省榆社县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140722', '山西省左权县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140723', '山西省和顺县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140724', '山西省昔阳县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140725', '山西省寿阳县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140726', '山西省太谷县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140727', '山西省祁县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140728', '山西省平遥县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140729', '山西省灵石县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140781', '山西省介休市', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140800', '山西省运城市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140801', '山西省运城市市辖区', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140802', '山西省运城市盐湖区', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140821', '山西省临猗县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140822', '山西省万荣县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140823', '山西省闻喜县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140824', '山西省稷山县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140825', '山西省新绛县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140826', '山西省绛县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140827', '山西省垣曲县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140828', '山西省夏县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140829', '山西省平陆县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140830', '山西省芮城县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140881', '山西省永济市', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140882', '山西省河津市', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140900', '山西省忻州市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140901', '山西省忻州市市辖区', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140902', '山西省忻州市忻府区', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140921', '山西省定襄县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140922', '山西省五台县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140923', '山西省代县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140924', '山西省繁峙县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140925', '山西省宁武县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140926', '山西省静乐县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140927', '山西省神池县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140928', '山西省五寨县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140929', '山西省岢岚县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140930', '山西省河曲县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140931', '山西省保德县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140932', '山西省偏关县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140981', '山西省原平市', '140900'); +INSERT INTO `base_administrative_division` VALUES ('141000', '山西省临汾市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('141001', '山西省临汾市市辖区', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141002', '山西省临汾市尧都区', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141021', '山西省曲沃县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141022', '山西省翼城县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141023', '山西省襄汾县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141024', '山西省洪洞县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141025', '山西省古县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141026', '山西省安泽县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141027', '山西省浮山县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141028', '山西省吉县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141029', '山西省乡宁县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141030', '山西省大宁县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141031', '山西省隰县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141032', '山西省永和县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141033', '山西省蒲县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141034', '山西省汾西县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141081', '山西省侯马市', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141082', '山西省霍州市', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141100', '山西省吕梁市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('141101', '山西省吕梁市市辖区', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141102', '山西省吕梁市离石区', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141121', '山西省文水县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141122', '山西省交城县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141123', '山西省兴县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141124', '山西省临县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141125', '山西省柳林县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141126', '山西省石楼县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141127', '山西省岚县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141128', '山西省方山县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141129', '山西省中阳县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141130', '山西省交口县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141181', '山西省孝义市', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141182', '山西省汾阳市', '141100'); +INSERT INTO `base_administrative_division` VALUES ('150000', '内蒙古自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('150100', '内蒙古呼和浩特市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150101', '内蒙古呼和浩特市市辖区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150102', '内蒙古呼和浩特市新城区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150103', '内蒙古呼和浩特市回民区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150104', '内蒙古呼和浩特市玉泉区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150105', '内蒙古呼和浩特市赛罕区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150121', '内蒙古土默特左旗', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150122', '内蒙古托克托县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150123', '内蒙古和林格尔县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150124', '内蒙古清水河县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150125', '内蒙古武川县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150200', '内蒙古包头市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150201', '内蒙古包头市市辖区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150202', '内蒙古包头市东河区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150203', '内蒙古包头市昆都仑区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150204', '内蒙古包头市青山区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150205', '内蒙古包头市石拐区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150206', '内蒙古包头市白云鄂博矿区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150207', '内蒙古包头市九原区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150221', '内蒙古土默特右旗', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150222', '内蒙古固阳县', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150223', '内蒙古达尔罕茂明安联合旗', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150300', '内蒙古乌海市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150301', '内蒙古乌海市市辖区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150302', '内蒙古乌海市海勃湾区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150303', '内蒙古乌海市海南区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150304', '内蒙古乌海市乌达区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150400', '内蒙古赤峰市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150401', '内蒙古赤峰市市辖区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150402', '内蒙古赤峰市红山区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150403', '内蒙古赤峰市元宝山区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150404', '内蒙古赤峰市松山区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150421', '内蒙古阿鲁科尔沁旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150422', '内蒙古巴林左旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150423', '内蒙古巴林右旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150424', '内蒙古林西县', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150425', '内蒙古克什克腾旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150426', '内蒙古翁牛特旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150428', '内蒙古喀喇沁旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150429', '内蒙古宁城县', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150430', '内蒙古敖汉旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150500', '内蒙古通辽市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150501', '内蒙古通辽市市辖区', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150502', '内蒙古通辽市科尔沁区', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150521', '内蒙古科尔沁左翼中旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150522', '内蒙古科尔沁左翼后旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150523', '内蒙古开鲁县', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150524', '内蒙古库伦旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150525', '内蒙古奈曼旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150526', '内蒙古扎鲁特旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150581', '内蒙古霍林郭勒市', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150600', '内蒙古鄂尔多斯市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150601', '内蒙古鄂尔多斯市市辖区', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150602', '内蒙古鄂尔多斯市东胜区', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150621', '内蒙古达拉特旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150622', '内蒙古准格尔旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150623', '内蒙古鄂托克前旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150624', '内蒙古鄂托克旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150625', '内蒙古杭锦旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150626', '内蒙古乌审旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150627', '内蒙古伊金霍洛旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150700', '内蒙古呼伦贝尔市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150701', '内蒙古呼伦贝尔市市辖区', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150702', '内蒙古呼伦贝尔市海拉尔区', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150721', '内蒙古阿荣旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150722', '内蒙古莫力达瓦达斡尔族自治旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150723', '内蒙古鄂伦春自治旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150724', '内蒙古鄂温克族自治旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150725', '内蒙古陈巴尔虎旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150726', '内蒙古新巴尔虎左旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150727', '内蒙古新巴尔虎右旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150781', '内蒙古满洲里市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150782', '内蒙古牙克石市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150783', '内蒙古扎兰屯市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150784', '内蒙古额尔古纳市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150785', '内蒙古根河市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150800', '内蒙古巴彦淖尔市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150801', '内蒙古巴彦淖尔市市辖区', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150802', '内蒙古巴彦淖尔市临河区', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150821', '内蒙古五原县', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150822', '内蒙古磴口县', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150823', '内蒙古乌拉特前旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150824', '内蒙古乌拉特中旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150825', '内蒙古乌拉特后旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150826', '内蒙古杭锦后旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150900', '内蒙古乌兰察布市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150901', '内蒙古乌兰察布市市辖区', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150902', '内蒙古乌兰察布市集宁区', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150921', '内蒙古卓资县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150922', '内蒙古化德县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150923', '内蒙古商都县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150924', '内蒙古兴和县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150925', '内蒙古凉城县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150926', '内蒙古察哈尔右翼前旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150927', '内蒙古察哈尔右翼中旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150928', '内蒙古察哈尔右翼后旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150929', '内蒙古四子王旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150981', '内蒙古丰镇市', '150900'); +INSERT INTO `base_administrative_division` VALUES ('152200', '内蒙古兴安盟', '150000'); +INSERT INTO `base_administrative_division` VALUES ('152201', '内蒙古乌兰浩特市', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152202', '内蒙古阿尔山市', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152221', '内蒙古科尔沁右翼前旗', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152222', '内蒙古科尔沁右翼中旗', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152223', '内蒙古扎赉特旗', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152224', '内蒙古突泉县', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152500', '内蒙古锡林郭勒盟', '150000'); +INSERT INTO `base_administrative_division` VALUES ('152501', '内蒙古二连浩特市', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152502', '内蒙古锡林浩特市', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152522', '内蒙古阿巴嘎旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152523', '内蒙古苏尼特左旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152524', '内蒙古苏尼特右旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152525', '内蒙古东乌珠穆沁旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152526', '内蒙古西乌珠穆沁旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152527', '内蒙古太仆寺旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152528', '内蒙古镶黄旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152529', '内蒙古正镶白旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152530', '内蒙古正蓝旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152531', '内蒙古多伦县', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152900', '内蒙古阿拉善盟', '150000'); +INSERT INTO `base_administrative_division` VALUES ('152921', '内蒙古阿拉善左旗', '152900'); +INSERT INTO `base_administrative_division` VALUES ('152922', '内蒙古阿拉善右旗', '152900'); +INSERT INTO `base_administrative_division` VALUES ('152923', '内蒙古额济纳旗', '152900'); +INSERT INTO `base_administrative_division` VALUES ('210000', '辽宁省', '0'); +INSERT INTO `base_administrative_division` VALUES ('210100', '辽宁省沈阳市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210101', '辽宁省沈阳市市辖区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210102', '辽宁省沈阳市和平区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210103', '辽宁省沈阳市沈河区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210104', '辽宁省沈阳市大东区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210105', '辽宁省沈阳市皇姑区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210106', '辽宁省沈阳市铁西区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210111', '辽宁省沈阳市苏家屯区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210112', '辽宁省沈阳市东陵区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210113', '辽宁省沈阳市沈北新区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210114', '辽宁省沈阳市于洪区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210122', '辽宁省辽中县', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210123', '辽宁省康平县', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210124', '辽宁省法库县', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210181', '辽宁省新民市', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210200', '辽宁省大连市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210201', '辽宁省大连市市辖区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210202', '辽宁省大连市中山区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210203', '辽宁省大连市西岗区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210204', '辽宁省大连市沙河口区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210211', '辽宁省大连市甘井子区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210212', '辽宁省大连市旅顺口区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210213', '辽宁省大连市金州区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210224', '辽宁省长海县', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210281', '辽宁省瓦房店市', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210282', '辽宁省普兰店市', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210283', '辽宁省庄河市', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210300', '辽宁省鞍山市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210301', '辽宁省鞍山市市辖区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210302', '辽宁省鞍山市铁东区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210303', '辽宁省鞍山市铁西区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210304', '辽宁省鞍山市立山区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210311', '辽宁省鞍山市千山区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210321', '辽宁省台安县', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210323', '辽宁省岫岩满族自治县', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210381', '辽宁省海城市', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210400', '辽宁省抚顺市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210401', '辽宁省抚顺市市辖区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210402', '辽宁省抚顺市新抚区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210403', '辽宁省抚顺市东洲区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210404', '辽宁省抚顺市望花区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210411', '辽宁省抚顺市顺城区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210421', '辽宁省抚顺县', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210422', '辽宁省新宾满族自治县', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210423', '辽宁省清原满族自治县', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210500', '辽宁省本溪市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210501', '辽宁省本溪市市辖区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210502', '辽宁省本溪市平山区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210503', '辽宁省本溪市溪湖区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210504', '辽宁省本溪市明山区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210505', '辽宁省本溪市南芬区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210521', '辽宁省本溪满族自治县', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210522', '辽宁省桓仁满族自治县', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210600', '辽宁省丹东市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210601', '辽宁省丹东市市辖区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210602', '辽宁省丹东市元宝区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210603', '辽宁省丹东市振兴区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210604', '辽宁省丹东市振安区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210624', '辽宁省宽甸满族自治县', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210681', '辽宁省东港市', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210682', '辽宁省凤城市', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210700', '辽宁省锦州市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210701', '辽宁省锦州市市辖区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210702', '辽宁省锦州市古塔区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210703', '辽宁省锦州市凌河区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210711', '辽宁省锦州市太和区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210726', '辽宁省黑山县', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210727', '辽宁省义县', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210781', '辽宁省凌海市', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210782', '辽宁省北镇市', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210800', '辽宁省营口市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210801', '辽宁省营口市市辖区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210802', '辽宁省营口市站前区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210803', '辽宁省营口市西市区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210804', '辽宁省营口市鲅鱼圈区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210811', '辽宁省营口市老边区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210881', '辽宁省盖州市', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210882', '辽宁省大石桥市', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210900', '辽宁省阜新市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210901', '辽宁省阜新市市辖区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210902', '辽宁省阜新市海州区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210903', '辽宁省阜新市新邱区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210904', '辽宁省阜新市太平区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210905', '辽宁省阜新市清河门区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210911', '辽宁省阜新市细河区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210921', '辽宁省阜新蒙古族自治县', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210922', '辽宁省彰武县', '210900'); +INSERT INTO `base_administrative_division` VALUES ('211000', '辽宁省辽阳市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211001', '辽宁省辽阳市市辖区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211002', '辽宁省辽阳市白塔区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211003', '辽宁省辽阳市文圣区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211004', '辽宁省辽阳市宏伟区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211005', '辽宁省辽阳市弓长岭区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211011', '辽宁省辽阳市太子河区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211021', '辽宁省辽阳县', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211081', '辽宁省灯塔市', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211100', '辽宁省盘锦市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211101', '辽宁省盘锦市市辖区', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211102', '辽宁省盘锦市双台子区', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211103', '辽宁省盘锦市兴隆台区', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211121', '辽宁省大洼县', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211122', '辽宁省盘山县', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211200', '辽宁省铁岭市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211201', '辽宁省铁岭市市辖区', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211202', '辽宁省铁岭市银州区', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211204', '辽宁省铁岭市清河区', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211221', '辽宁省铁岭县', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211223', '辽宁省西丰县', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211224', '辽宁省昌图县', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211281', '辽宁省调兵山市', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211282', '辽宁省开原市', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211300', '辽宁省朝阳市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211301', '辽宁省朝阳市市辖区', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211302', '辽宁省朝阳市双塔区', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211303', '辽宁省朝阳市龙城区', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211321', '辽宁省朝阳县', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211322', '辽宁省建平县', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211324', '辽宁省喀喇沁左翼蒙古族自治县', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211381', '辽宁省北票市', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211382', '辽宁省凌源市', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211400', '辽宁省葫芦岛市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211401', '辽宁省葫芦岛市市辖区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211402', '辽宁省葫芦岛市连山区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211403', '辽宁省葫芦岛市龙港区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211404', '辽宁省葫芦岛市南票区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211421', '辽宁省绥中县', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211422', '辽宁省建昌县', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211481', '辽宁省兴城市', '211400'); +INSERT INTO `base_administrative_division` VALUES ('220000', '吉林省', '0'); +INSERT INTO `base_administrative_division` VALUES ('220100', '吉林省长春市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220101', '吉林省长春市市辖区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220102', '吉林省长春市南关区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220103', '吉林省长春市宽城区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220104', '吉林省长春市朝阳区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220105', '吉林省长春市二道区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220106', '吉林省长春市绿园区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220112', '吉林省长春市双阳区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220122', '吉林省农安县', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220181', '吉林省九台市', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220182', '吉林省榆树市', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220183', '吉林省德惠市', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220200', '吉林省吉林市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220201', '吉林省吉林市市辖区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220202', '吉林省吉林市昌邑区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220203', '吉林省吉林市龙潭区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220204', '吉林省吉林市船营区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220211', '吉林省吉林市丰满区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220221', '吉林省永吉县', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220281', '吉林省蛟河市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220282', '吉林省桦甸市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220283', '吉林省舒兰市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220284', '吉林省磐石市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220300', '吉林省四平市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220301', '吉林省四平市市辖区', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220302', '吉林省四平市铁西区', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220303', '吉林省四平市铁东区', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220322', '吉林省梨树县', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220323', '吉林省伊通满族自治县', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220381', '吉林省公主岭市', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220382', '吉林省双辽市', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220400', '吉林省辽源市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220401', '吉林省辽源市市辖区', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220402', '吉林省辽源市龙山区', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220403', '吉林省辽源市西安区', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220421', '吉林省东丰县', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220422', '吉林省东辽县', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220500', '吉林省通化市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220501', '吉林省通化市市辖区', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220502', '吉林省通化市东昌区', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220503', '吉林省通化市二道江区', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220521', '吉林省通化县', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220523', '吉林省辉南县', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220524', '吉林省柳河县', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220581', '吉林省梅河口市', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220582', '吉林省集安市', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220600', '吉林省白山市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220601', '吉林省白山市市辖区', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220602', '吉林省白山市八道江区', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220605', '吉林省白山市江源区', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220621', '吉林省抚松县', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220622', '吉林省靖宇县', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220623', '吉林省长白朝鲜族自治县', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220681', '吉林省临江市', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220700', '吉林省松原市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220701', '吉林省松原市市辖区', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220702', '吉林省松原市宁江区', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220721', '吉林省前郭尔罗斯蒙古族自治县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220722', '吉林省长岭县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220723', '吉林省乾安县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220724', '吉林省扶余县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220800', '吉林省白城市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220801', '吉林省白城市市辖区', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220802', '吉林省白城市洮北区', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220821', '吉林省镇赉县', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220822', '吉林省通榆县', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220881', '吉林省洮南市', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220882', '吉林省大安市', '220800'); +INSERT INTO `base_administrative_division` VALUES ('222400', '吉林省延边朝鲜族自治州', '220000'); +INSERT INTO `base_administrative_division` VALUES ('222401', '吉林省延吉市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222402', '吉林省图们市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222403', '吉林省敦化市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222404', '吉林省珲春市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222405', '吉林省龙井市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222406', '吉林省和龙市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222424', '吉林省汪清县', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222426', '吉林省安图县', '222400'); +INSERT INTO `base_administrative_division` VALUES ('230000', '黑龙江省', '0'); +INSERT INTO `base_administrative_division` VALUES ('230100', '黑龙江省哈尔滨市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230101', '黑龙江省哈尔滨市市辖区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230102', '黑龙江省哈尔滨市道里区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230103', '黑龙江省哈尔滨市南岗区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230104', '黑龙江省哈尔滨市道外区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230108', '黑龙江省哈尔滨市平房区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230109', '黑龙江省哈尔滨市松北区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230110', '黑龙江省哈尔滨市香坊区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230111', '黑龙江省哈尔滨市呼兰区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230112', '黑龙江省哈尔滨市阿城区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230123', '黑龙江省依兰县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230124', '黑龙江省方正县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230125', '黑龙江省宾县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230126', '黑龙江省巴彦县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230127', '黑龙江省木兰县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230128', '黑龙江省通河县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230129', '黑龙江省延寿县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230182', '黑龙江省双城市', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230183', '黑龙江省尚志市', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230184', '黑龙江省五常市', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230200', '黑龙江省齐齐哈尔市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230201', '黑龙江省齐齐哈尔市市辖区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230202', '黑龙江省齐齐哈尔市龙沙区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230203', '黑龙江省齐齐哈尔市建华区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230204', '黑龙江省齐齐哈尔市铁锋区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230205', '黑龙江省齐齐哈尔市昂昂溪区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230206', '黑龙江省齐齐哈尔市富拉尔基区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230207', '黑龙江省齐齐哈尔市碾子山区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230208', '黑龙江省齐齐哈尔市梅里斯达斡尔族区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230221', '黑龙江省龙江县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230223', '黑龙江省依安县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230224', '黑龙江省泰来县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230225', '黑龙江省甘南县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230227', '黑龙江省富裕县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230229', '黑龙江省克山县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230230', '黑龙江省克东县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230231', '黑龙江省拜泉县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230281', '黑龙江省讷河市', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230300', '黑龙江省鸡西市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230301', '黑龙江省鸡西市市辖区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230302', '黑龙江省鸡西市鸡冠区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230303', '黑龙江省鸡西市恒山区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230304', '黑龙江省鸡西市滴道区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230305', '黑龙江省鸡西市梨树区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230306', '黑龙江省鸡西市城子河区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230307', '黑龙江省鸡西市麻山区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230321', '黑龙江省鸡东县', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230381', '黑龙江省虎林市', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230382', '黑龙江省密山市', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230400', '黑龙江省鹤岗市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230401', '黑龙江省鹤岗市市辖区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230402', '黑龙江省鹤岗市向阳区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230403', '黑龙江省鹤岗市工农区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230404', '黑龙江省鹤岗市南山区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230405', '黑龙江省鹤岗市兴安区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230406', '黑龙江省鹤岗市东山区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230407', '黑龙江省鹤岗市兴山区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230421', '黑龙江省萝北县', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230422', '黑龙江省绥滨县', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230500', '黑龙江省双鸭山市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230501', '黑龙江省双鸭山市市辖区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230502', '黑龙江省双鸭山市尖山区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230503', '黑龙江省双鸭山市岭东区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230505', '黑龙江省双鸭山市四方台区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230506', '黑龙江省双鸭山市宝山区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230521', '黑龙江省集贤县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230522', '黑龙江省友谊县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230523', '黑龙江省宝清县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230524', '黑龙江省饶河县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230600', '黑龙江省大庆市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230601', '黑龙江省大庆市市辖区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230602', '黑龙江省大庆市萨尔图区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230603', '黑龙江省大庆市龙凤区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230604', '黑龙江省大庆市让胡路区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230605', '黑龙江省大庆市红岗区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230606', '黑龙江省大庆市大同区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230621', '黑龙江省肇州县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230622', '黑龙江省肇源县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230623', '黑龙江省林甸县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230624', '黑龙江省杜尔伯特蒙古族自治县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230700', '黑龙江省伊春市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230701', '黑龙江省伊春市市辖区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230702', '黑龙江省伊春市伊春区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230703', '黑龙江省伊春市南岔区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230704', '黑龙江省伊春市友好区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230705', '黑龙江省伊春市西林区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230706', '黑龙江省伊春市翠峦区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230707', '黑龙江省伊春市新青区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230708', '黑龙江省伊春市美溪区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230709', '黑龙江省伊春市金山屯区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230710', '黑龙江省伊春市五营区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230711', '黑龙江省伊春市乌马河区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230712', '黑龙江省伊春市汤旺河区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230713', '黑龙江省伊春市带岭区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230714', '黑龙江省伊春市乌伊岭区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230715', '黑龙江省伊春市红星区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230716', '黑龙江省伊春市上甘岭区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230722', '黑龙江省嘉荫县', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230781', '黑龙江省铁力市', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230800', '黑龙江省佳木斯市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230801', '黑龙江省佳木斯市市辖区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230803', '黑龙江省佳木斯市向阳区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230804', '黑龙江省佳木斯市前进区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230805', '黑龙江省佳木斯市东风区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230811', '黑龙江省佳木斯市郊区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230822', '黑龙江省桦南县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230826', '黑龙江省桦川县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230828', '黑龙江省汤原县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230833', '黑龙江省抚远县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230881', '黑龙江省同江市', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230882', '黑龙江省富锦市', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230900', '黑龙江省七台河市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230901', '黑龙江省七台河市市辖区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230902', '黑龙江省七台河市新兴区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230903', '黑龙江省七台河市桃山区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230904', '黑龙江省七台河市茄子河区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230921', '黑龙江省勃利县', '230900'); +INSERT INTO `base_administrative_division` VALUES ('231000', '黑龙江省牡丹江市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('231001', '黑龙江省牡丹江市市辖区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231002', '黑龙江省牡丹江市东安区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231003', '黑龙江省牡丹江市阳明区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231004', '黑龙江省牡丹江市爱民区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231005', '黑龙江省牡丹江市西安区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231024', '黑龙江省东宁县', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231025', '黑龙江省林口县', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231081', '黑龙江省绥芬河市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231083', '黑龙江省海林市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231084', '黑龙江省宁安市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231085', '黑龙江省穆棱市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231100', '黑龙江省黑河市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('231101', '黑龙江省黑河市市辖区', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231102', '黑龙江省黑河市爱辉区', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231121', '黑龙江省嫩江县', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231123', '黑龙江省逊克县', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231124', '黑龙江省孙吴县', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231181', '黑龙江省北安市', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231182', '黑龙江省五大连池市', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231200', '黑龙江省绥化市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('231201', '黑龙江省绥化市市辖区', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231202', '黑龙江省绥化市北林区', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231221', '黑龙江省望奎县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231222', '黑龙江省兰西县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231223', '黑龙江省青冈县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231224', '黑龙江省庆安县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231225', '黑龙江省明水县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231226', '黑龙江省绥棱县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231281', '黑龙江省安达市', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231282', '黑龙江省肇东市', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231283', '黑龙江省海伦市', '231200'); +INSERT INTO `base_administrative_division` VALUES ('232700', '黑龙江省大兴安岭地区', '230000'); +INSERT INTO `base_administrative_division` VALUES ('232721', '黑龙江省呼玛县', '232700'); +INSERT INTO `base_administrative_division` VALUES ('232722', '黑龙江省塔河县', '232700'); +INSERT INTO `base_administrative_division` VALUES ('232723', '黑龙江省漠河县', '232700'); +INSERT INTO `base_administrative_division` VALUES ('310000', '上海市', '0'); +INSERT INTO `base_administrative_division` VALUES ('310100', '上海市市辖区', '310000'); +INSERT INTO `base_administrative_division` VALUES ('310101', '上海市黄浦区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310104', '上海市徐汇区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310105', '上海市长宁区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310106', '上海市静安区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310107', '上海市普陀区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310108', '上海市闸北区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310109', '上海市虹口区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310110', '上海市杨浦区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310112', '上海市闵行区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310113', '上海市宝山区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310114', '上海市嘉定区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310115', '上海市浦东新区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310116', '上海市金山区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310117', '上海市松江区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310118', '上海市青浦区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310120', '上海市奉贤区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310200', '上海市县', '310000'); +INSERT INTO `base_administrative_division` VALUES ('310230', '上海市崇明县', '310200'); +INSERT INTO `base_administrative_division` VALUES ('320000', '江苏省', '0'); +INSERT INTO `base_administrative_division` VALUES ('320100', '江苏省南京市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320101', '江苏省南京市市辖区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320102', '江苏省南京市玄武区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320103', '江苏省南京市白下区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320104', '江苏省南京市秦淮区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320105', '江苏省南京市建邺区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320106', '江苏省南京市鼓楼区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320107', '江苏省南京市下关区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320111', '江苏省南京市浦口区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320113', '江苏省南京市栖霞区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320114', '江苏省南京市雨花台区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320115', '江苏省南京市江宁区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320116', '江苏省南京市六合区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320117', '江苏省南京市溧水区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320125', '江苏省高淳县', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320200', '江苏省无锡市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320201', '江苏省无锡市市辖区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320202', '江苏省无锡市崇安区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320203', '江苏省无锡市南长区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320204', '江苏省无锡市北塘区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320205', '江苏省无锡市锡山区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320206', '江苏省无锡市惠山区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320211', '江苏省无锡市滨湖区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320281', '江苏省江阴市', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320282', '江苏省宜兴市', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320300', '江苏省徐州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320301', '江苏省徐州市市辖区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320302', '江苏省徐州市鼓楼区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320303', '江苏省徐州市云龙区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320304', '江苏省徐州市九里区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320305', '江苏省徐州市贾汪区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320311', '江苏省徐州市泉山区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320312', '江苏省徐州市铜山区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320321', '江苏省丰县', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320322', '江苏省沛县', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320324', '江苏省睢宁县', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320381', '江苏省新沂市', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320382', '江苏省邳州市', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320400', '江苏省常州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320401', '江苏省常州市市辖区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320402', '江苏省常州市天宁区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320404', '江苏省常州市钟楼区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320405', '江苏省常州市戚墅堰区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320411', '江苏省常州市新北区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320412', '江苏省常州市武进区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320481', '江苏省溧阳市', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320482', '江苏省金坛市', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320500', '江苏省苏州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320501', '江苏省苏州市市辖区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320502', '江苏省苏州市沧浪区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320503', '江苏省苏州市平江区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320504', '江苏省苏州市金阊区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320505', '江苏省苏州市虎丘区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320506', '江苏省苏州市吴中区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320507', '江苏省苏州市相城区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320581', '江苏省常熟市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320582', '江苏省张家港市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320583', '江苏省昆山市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320584', '江苏省吴江市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320585', '江苏省太仓市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320600', '江苏省南通市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320601', '江苏省南通市市辖区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320602', '江苏省南通市崇川区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320611', '江苏省南通市港闸区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320612', '江苏省南通市通州区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320621', '江苏省海安县', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320623', '江苏省如东县', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320681', '江苏省启东市', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320682', '江苏省如皋市', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320684', '江苏省海门市', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320700', '江苏省连云港市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320701', '江苏省连云港市市辖区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320703', '江苏省连云港市连云区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320705', '江苏省连云港市新浦区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320706', '江苏省连云港市海州区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320721', '江苏省赣榆县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320722', '江苏省东海县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320723', '江苏省灌云县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320724', '江苏省灌南县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320800', '江苏省淮安市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320801', '江苏省淮安市市辖区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320802', '江苏省淮安市清河区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320803', '江苏省淮安市楚州区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320804', '江苏省淮安市淮阴区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320811', '江苏省淮安市清浦区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320826', '江苏省涟水县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320829', '江苏省洪泽县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320830', '江苏省盱眙县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320831', '江苏省金湖县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320900', '江苏省盐城市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320901', '江苏省盐城市市辖区', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320902', '江苏省盐城市亭湖区', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320903', '江苏省盐城市盐都区', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320921', '江苏省响水县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320922', '江苏省滨海县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320923', '江苏省阜宁县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320924', '江苏省射阳县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320925', '江苏省建湖县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320981', '江苏省东台市', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320982', '江苏省大丰市', '320900'); +INSERT INTO `base_administrative_division` VALUES ('321000', '江苏省扬州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321001', '江苏省扬州市市辖区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321002', '江苏省扬州市广陵区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321003', '江苏省扬州市邗江区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321012', '江苏省扬州市江都区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321023', '江苏省宝应县', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321081', '江苏省仪征市', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321084', '江苏省高邮市', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321100', '江苏省镇江市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321101', '江苏省镇江市市辖区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321102', '江苏省镇江市京口区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321111', '江苏省镇江市润州区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321112', '江苏省镇江市丹徒区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321181', '江苏省丹阳市', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321182', '江苏省扬中市', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321183', '江苏省句容市', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321200', '江苏省泰州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321201', '江苏省泰州市市辖区', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321202', '江苏省泰州市海陵区', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321203', '江苏省泰州市高港区', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321281', '江苏省兴化市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321282', '江苏省靖江市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321283', '江苏省泰兴市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321284', '江苏省姜堰市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321300', '江苏省宿迁市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321301', '江苏省宿迁市市辖区', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321302', '江苏省宿迁市宿城区', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321311', '江苏省宿迁市宿豫区', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321322', '江苏省沭阳县', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321323', '江苏省泗阳县', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321324', '江苏省泗洪县', '321300'); +INSERT INTO `base_administrative_division` VALUES ('330000', '浙江省', '0'); +INSERT INTO `base_administrative_division` VALUES ('330100', '浙江省杭州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330101', '浙江省杭州市市辖区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330102', '浙江省杭州市上城区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330103', '浙江省杭州市下城区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330104', '浙江省杭州市江干区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330105', '浙江省杭州市拱墅区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330106', '浙江省杭州市西湖区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330108', '浙江省杭州市滨江区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330109', '浙江省杭州市萧山区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330110', '浙江省杭州市余杭区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330122', '浙江省桐庐县', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330127', '浙江省淳安县', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330182', '浙江省建德市', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330183', '浙江省富阳市', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330185', '浙江省临安市', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330200', '浙江省宁波市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330201', '浙江省宁波市市辖区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330203', '浙江省宁波市海曙区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330204', '浙江省宁波市江东区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330205', '浙江省宁波市江北区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330206', '浙江省宁波市北仑区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330211', '浙江省宁波市镇海区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330212', '浙江省宁波市鄞州区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330225', '浙江省象山县', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330226', '浙江省宁海县', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330281', '浙江省余姚市', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330282', '浙江省慈溪市', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330283', '浙江省奉化市', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330300', '浙江省温州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330301', '浙江省温州市市辖区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330302', '浙江省温州市鹿城区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330303', '浙江省温州市龙湾区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330304', '浙江省温州市瓯海区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330322', '浙江省洞头县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330324', '浙江省永嘉县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330326', '浙江省平阳县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330327', '浙江省苍南县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330328', '浙江省文成县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330329', '浙江省泰顺县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330381', '浙江省瑞安市', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330382', '浙江省乐清市', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330400', '浙江省嘉兴市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330401', '浙江省嘉兴市市辖区', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330402', '浙江省嘉兴市南湖区', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330411', '浙江省嘉兴市秀洲区', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330421', '浙江省嘉善县', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330424', '浙江省海盐县', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330481', '浙江省海宁市', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330482', '浙江省平湖市', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330483', '浙江省桐乡市', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330500', '浙江省湖州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330501', '浙江省湖州市市辖区', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330502', '浙江省湖州市吴兴区', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330503', '浙江省湖州市南浔区', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330521', '浙江省德清县', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330522', '浙江省长兴县', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330523', '浙江省安吉县', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330600', '浙江省绍兴市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330601', '浙江省绍兴市市辖区', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330602', '浙江省绍兴市越城区', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330621', '浙江省绍兴县', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330624', '浙江省新昌县', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330681', '浙江省诸暨市', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330682', '浙江省上虞市', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330683', '浙江省嵊州市', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330700', '浙江省金华市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330701', '浙江省金华市市辖区', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330702', '浙江省金华市婺城区', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330703', '浙江省金华市金东区', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330723', '浙江省武义县', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330726', '浙江省浦江县', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330727', '浙江省磐安县', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330781', '浙江省兰溪市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330782', '浙江省义乌市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330783', '浙江省东阳市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330784', '浙江省永康市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330800', '浙江省衢州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330801', '浙江省衢州市市辖区', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330802', '浙江省衢州市柯城区', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330803', '浙江省衢州市衢江区', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330822', '浙江省常山县', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330824', '浙江省开化县', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330825', '浙江省龙游县', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330881', '浙江省江山市', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330900', '浙江省舟山市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330901', '浙江省舟山市市辖区', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330902', '浙江省舟山市定海区', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330903', '浙江省舟山市普陀区', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330921', '浙江省岱山县', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330922', '浙江省嵊泗县', '330900'); +INSERT INTO `base_administrative_division` VALUES ('331000', '浙江省台州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('331001', '浙江省台州市市辖区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331002', '浙江省台州市椒江区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331003', '浙江省台州市黄岩区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331004', '浙江省台州市路桥区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331021', '浙江省玉环县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331022', '浙江省三门县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331023', '浙江省天台县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331024', '浙江省仙居县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331081', '浙江省温岭市', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331082', '浙江省临海市', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331100', '浙江省丽水市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('331101', '浙江省丽水市市辖区', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331102', '浙江省丽水市莲都区', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331121', '浙江省青田县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331122', '浙江省缙云县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331123', '浙江省遂昌县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331124', '浙江省松阳县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331125', '浙江省云和县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331126', '浙江省庆元县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331127', '浙江省景宁畲族自治县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331181', '浙江省龙泉市', '331100'); +INSERT INTO `base_administrative_division` VALUES ('340000', '安徽省', '0'); +INSERT INTO `base_administrative_division` VALUES ('340100', '安徽省合肥市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340101', '安徽省合肥市市辖区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340102', '安徽省合肥市瑶海区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340103', '安徽省合肥市庐阳区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340104', '安徽省合肥市蜀山区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340111', '安徽省合肥市包河区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340121', '安徽省长丰县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340122', '安徽省肥东县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340123', '安徽省肥西县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340124', '安徽省庐江县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340181', '安徽省巢湖市', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340200', '安徽省芜湖市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340201', '安徽省芜湖市市辖区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340202', '安徽省芜湖市镜湖区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340203', '安徽省芜湖市弋江区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340207', '安徽省芜湖市鸠江区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340208', '安徽省芜湖市三山区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340221', '安徽省芜湖县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340222', '安徽省繁昌县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340223', '安徽省南陵县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340225', '安徽省无为县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340300', '安徽省蚌埠市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340301', '安徽省蚌埠市市辖区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340302', '安徽省蚌埠市龙子湖区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340303', '安徽省蚌埠市蚌山区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340304', '安徽省蚌埠市禹会区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340311', '安徽省蚌埠市淮上区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340321', '安徽省怀远县', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340322', '安徽省五河县', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340323', '安徽省固镇县', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340400', '安徽省淮南市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340401', '安徽省淮南市市辖区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340402', '安徽省淮南市大通区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340403', '安徽省淮南市田家庵区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340404', '安徽省淮南市谢家集区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340405', '安徽省淮南市八公山区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340406', '安徽省淮南市潘集区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340421', '安徽省凤台县', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340500', '安徽省马鞍山市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340501', '安徽省马鞍山市市辖区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340502', '安徽省马鞍山市金家庄区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340503', '安徽省马鞍山市花山区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340504', '安徽省马鞍山市雨山区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340521', '安徽省当涂县', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340522', '安徽省含山县', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340523', '安徽省和县', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340600', '安徽省淮北市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340601', '安徽省淮北市市辖区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340602', '安徽省淮北市杜集区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340603', '安徽省淮北市相山区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340604', '安徽省淮北市烈山区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340621', '安徽省濉溪县', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340700', '安徽省铜陵市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340701', '安徽省铜陵市市辖区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340702', '安徽省铜陵市铜官山区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340703', '安徽省铜陵市狮子山区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340711', '安徽省铜陵市郊区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340721', '安徽省铜陵县', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340800', '安徽省安庆市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340801', '安徽省安庆市市辖区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340802', '安徽省安庆市迎江区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340803', '安徽省安庆市大观区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340811', '安徽省安庆市宜秀区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340822', '安徽省怀宁县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340823', '安徽省枞阳县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340824', '安徽省潜山县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340825', '安徽省太湖县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340826', '安徽省宿松县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340827', '安徽省望江县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340828', '安徽省岳西县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340881', '安徽省桐城市', '340800'); +INSERT INTO `base_administrative_division` VALUES ('341000', '安徽省黄山市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341001', '安徽省黄山市市辖区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341002', '安徽省黄山市屯溪区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341003', '安徽省黄山市黄山区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341004', '安徽省黄山市徽州区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341021', '安徽省歙县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341022', '安徽省休宁县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341023', '安徽省黟县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341024', '安徽省祁门县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341100', '安徽省滁州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341101', '安徽省滁州市市辖区', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341102', '安徽省滁州市琅琊区', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341103', '安徽省滁州市南谯区', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341122', '安徽省来安县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341124', '安徽省全椒县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341125', '安徽省定远县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341126', '安徽省凤阳县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341181', '安徽省天长市', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341182', '安徽省明光市', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341200', '安徽省阜阳市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341201', '安徽省阜阳市市辖区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341202', '安徽省阜阳市颍州区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341203', '安徽省阜阳市颍东区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341204', '安徽省阜阳市颍泉区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341221', '安徽省临泉县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341222', '安徽省太和县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341225', '安徽省阜南县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341226', '安徽省颍上县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341282', '安徽省界首市', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341300', '安徽省宿州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341301', '安徽省宿州市市辖区', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341302', '安徽省宿州市埇桥区', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341321', '安徽省砀山县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341322', '安徽省萧县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341323', '安徽省灵璧县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341324', '安徽省泗县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341500', '安徽省六安市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341501', '安徽省六安市市辖区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341502', '安徽省六安市金安区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341503', '安徽省六安市裕安区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341504', '安徽省叶集试验区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341521', '安徽省寿县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341522', '安徽省霍邱县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341523', '安徽省舒城县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341524', '安徽省金寨县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341525', '安徽省霍山县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341600', '安徽省亳州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341601', '安徽省亳州市市辖区', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341602', '安徽省亳州市谯城区', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341621', '安徽省涡阳县', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341622', '安徽省蒙城县', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341623', '安徽省利辛县', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341700', '安徽省池州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341701', '安徽省池州市市辖区', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341702', '安徽省池州市贵池区', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341721', '安徽省东至县', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341722', '安徽省石台县', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341723', '安徽省青阳县', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341800', '安徽省宣城市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341801', '安徽省宣城市市辖区', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341802', '安徽省宣城市宣州区', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341821', '安徽省郎溪县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341822', '安徽省广德县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341823', '安徽省泾县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341824', '安徽省绩溪县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341825', '安徽省旌德县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341881', '安徽省宁国市', '341800'); +INSERT INTO `base_administrative_division` VALUES ('350000', '福建省', '0'); +INSERT INTO `base_administrative_division` VALUES ('350100', '福建省福州市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350101', '福建省福州市市辖区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350102', '福建省福州市鼓楼区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350103', '福建省福州市台江区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350104', '福建省福州市仓山区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350105', '福建省福州市马尾区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350111', '福建省福州市晋安区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350121', '福建省闽侯县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350122', '福建省连江县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350123', '福建省罗源县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350124', '福建省闽清县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350125', '福建省永泰县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350128', '福建省平潭县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350181', '福建省福清市', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350182', '福建省长乐市', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350200', '福建省厦门市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350201', '福建省厦门市市辖区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350203', '福建省厦门市思明区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350205', '福建省厦门市海沧区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350206', '福建省厦门市湖里区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350211', '福建省厦门市集美区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350212', '福建省厦门市同安区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350213', '福建省厦门市翔安区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350300', '福建省莆田市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350301', '福建省莆田市市辖区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350302', '福建省莆田市城厢区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350303', '福建省莆田市涵江区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350304', '福建省莆田市荔城区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350305', '福建省莆田市秀屿区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350322', '福建省仙游县', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350400', '福建省三明市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350401', '福建省三明市市辖区', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350402', '福建省三明市梅列区', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350403', '福建省三明市三元区', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350421', '福建省明溪县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350423', '福建省清流县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350424', '福建省宁化县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350425', '福建省大田县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350426', '福建省尤溪县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350427', '福建省沙县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350428', '福建省将乐县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350429', '福建省泰宁县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350430', '福建省建宁县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350481', '福建省永安市', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350500', '福建省泉州市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350501', '福建省泉州市市辖区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350502', '福建省泉州市鲤城区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350503', '福建省泉州市丰泽区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350504', '福建省泉州市洛江区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350505', '福建省泉州市泉港区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350521', '福建省惠安县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350524', '福建省安溪县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350525', '福建省永春县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350526', '福建省德化县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350527', '福建省金门县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350581', '福建省石狮市', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350582', '福建省晋江市', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350583', '福建省南安市', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350600', '福建省漳州市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350601', '福建省漳州市市辖区', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350602', '福建省漳州市芗城区', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350603', '福建省漳州市龙文区', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350622', '福建省云霄县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350623', '福建省漳浦县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350624', '福建省诏安县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350625', '福建省长泰县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350626', '福建省东山县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350627', '福建省南靖县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350628', '福建省平和县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350629', '福建省华安县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350681', '福建省龙海市', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350700', '福建省南平市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350701', '福建省南平市市辖区', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350702', '福建省南平市延平区', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350721', '福建省顺昌县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350722', '福建省浦城县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350723', '福建省光泽县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350724', '福建省松溪县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350725', '福建省政和县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350781', '福建省邵武市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350782', '福建省武夷山市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350783', '福建省建瓯市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350784', '福建省建阳市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350800', '福建省龙岩市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350801', '福建省龙岩市市辖区', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350802', '福建省龙岩市新罗区', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350821', '福建省长汀县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350822', '福建省永定县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350823', '福建省上杭县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350824', '福建省武平县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350825', '福建省连城县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350881', '福建省漳平市', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350900', '福建省宁德市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350901', '福建省宁德市市辖区', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350902', '福建省宁德市蕉城区', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350921', '福建省霞浦县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350922', '福建省古田县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350923', '福建省屏南县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350924', '福建省寿宁县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350925', '福建省周宁县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350926', '福建省柘荣县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350981', '福建省福安市', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350982', '福建省福鼎市', '350900'); +INSERT INTO `base_administrative_division` VALUES ('360000', '江西省', '0'); +INSERT INTO `base_administrative_division` VALUES ('360100', '江西省南昌市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360101', '江西省南昌市市辖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360102', '江西省南昌市东湖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360103', '江西省南昌市西湖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360104', '江西省南昌市青云谱区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360105', '江西省南昌市湾里区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360111', '江西省南昌市青山湖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360121', '江西省南昌县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360122', '江西省新建县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360123', '江西省安义县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360124', '江西省进贤县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360200', '江西省景德镇市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360201', '江西省景德镇市市辖区', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360202', '江西省景德镇市昌江区', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360203', '江西省景德镇市珠山区', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360222', '江西省浮梁县', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360281', '江西省乐平市', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360300', '江西省萍乡市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360301', '江西省萍乡市市辖区', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360302', '江西省萍乡市安源区', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360313', '江西省萍乡市湘东区', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360321', '江西省莲花县', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360322', '江西省上栗县', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360323', '江西省芦溪县', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360400', '江西省九江市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360401', '江西省九江市市辖区', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360402', '江西省九江市庐山区', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360403', '江西省九江市浔阳区', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360421', '江西省九江县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360423', '江西省武宁县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360424', '江西省修水县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360425', '江西省永修县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360426', '江西省德安县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360427', '江西省星子县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360428', '江西省都昌县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360429', '江西省湖口县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360430', '江西省彭泽县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360481', '江西省瑞昌市', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360482', '江西省共青城市', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360500', '江西省新余市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360501', '江西省新余市市辖区', '360500'); +INSERT INTO `base_administrative_division` VALUES ('360502', '江西省新余市渝水区', '360500'); +INSERT INTO `base_administrative_division` VALUES ('360521', '江西省分宜县', '360500'); +INSERT INTO `base_administrative_division` VALUES ('360600', '江西省鹰潭市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360601', '江西省鹰潭市市辖区', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360602', '江西省鹰潭市月湖区', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360622', '江西省余江县', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360681', '江西省贵溪市', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360700', '江西省赣州市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360701', '江西省赣州市市辖区', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360702', '江西省赣州市章贡区', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360721', '江西省赣县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360722', '江西省信丰县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360723', '江西省大余县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360724', '江西省上犹县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360725', '江西省崇义县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360726', '江西省安远县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360727', '江西省龙南县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360728', '江西省定南县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360729', '江西省全南县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360730', '江西省宁都县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360731', '江西省于都县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360732', '江西省兴国县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360733', '江西省会昌县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360734', '江西省寻乌县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360735', '江西省石城县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360781', '江西省瑞金市', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360782', '江西省南康市', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360800', '江西省吉安市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360801', '江西省吉安市市辖区', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360802', '江西省吉安市吉州区', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360803', '江西省吉安市青原区', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360821', '江西省吉安县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360822', '江西省吉水县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360823', '江西省峡江县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360824', '江西省新干县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360825', '江西省永丰县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360826', '江西省泰和县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360827', '江西省遂川县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360828', '江西省万安县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360829', '江西省安福县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360830', '江西省永新县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360881', '江西省井冈山市', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360900', '江西省宜春市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360901', '江西省宜春市市辖区', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360902', '江西省宜春市袁州区', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360921', '江西省奉新县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360922', '江西省万载县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360923', '江西省上高县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360924', '江西省宜丰县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360925', '江西省靖安县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360926', '江西省铜鼓县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360981', '江西省丰城市', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360982', '江西省樟树市', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360983', '江西省高安市', '360900'); +INSERT INTO `base_administrative_division` VALUES ('361000', '江西省抚州市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('361001', '江西省抚州市市辖区', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361002', '江西省抚州市临川区', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361021', '江西省南城县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361022', '江西省黎川县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361023', '江西省南丰县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361024', '江西省崇仁县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361025', '江西省乐安县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361026', '江西省宜黄县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361027', '江西省金溪县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361028', '江西省资溪县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361029', '江西省东乡县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361030', '江西省广昌县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361100', '江西省上饶市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('361101', '江西省上饶市市辖区', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361102', '江西省上饶市信州区', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361121', '江西省上饶县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361122', '江西省广丰县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361123', '江西省玉山县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361124', '江西省铅山县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361125', '江西省横峰县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361126', '江西省弋阳县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361127', '江西省余干县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361128', '江西省鄱阳县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361129', '江西省万年县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361130', '江西省婺源县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361181', '江西省德兴市', '361100'); +INSERT INTO `base_administrative_division` VALUES ('370000', '山东省', '0'); +INSERT INTO `base_administrative_division` VALUES ('370100', '山东省济南市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370101', '山东省济南市市辖区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370102', '山东省济南市历下区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370103', '山东省济南市市中区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370104', '山东省济南市槐荫区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370105', '山东省济南市天桥区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370112', '山东省济南市历城区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370113', '山东省济南市长清区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370124', '山东省平阴县', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370125', '山东省济阳县', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370126', '山东省商河县', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370181', '山东省章丘市', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370200', '山东省青岛市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370201', '山东省青岛市市辖区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370202', '山东省青岛市市南区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370203', '山东省青岛市市北区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370205', '山东省青岛市四方区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370211', '山东省青岛市黄岛区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370212', '山东省青岛市崂山区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370213', '山东省青岛市李沧区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370214', '山东省青岛市城阳区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370281', '山东省胶州市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370282', '山东省即墨市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370283', '山东省平度市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370284', '山东省胶南市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370285', '山东省莱西市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370300', '山东省淄博市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370301', '山东省淄博市市辖区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370302', '山东省淄博市淄川区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370303', '山东省淄博市张店区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370304', '山东省淄博市博山区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370305', '山东省淄博市临淄区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370306', '山东省淄博市周村区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370321', '山东省桓台县', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370322', '山东省高青县', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370323', '山东省沂源县', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370400', '山东省枣庄市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370401', '山东省枣庄市市辖区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370402', '山东省枣庄市市中区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370403', '山东省枣庄市薛城区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370404', '山东省枣庄市峄城区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370405', '山东省枣庄市台儿庄区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370406', '山东省枣庄市山亭区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370481', '山东省滕州市', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370500', '山东省东营市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370501', '山东省东营市市辖区', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370502', '山东省东营市东营区', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370503', '山东省东营市河口区', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370521', '山东省垦利县', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370522', '山东省利津县', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370523', '山东省广饶县', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370600', '山东省烟台市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370601', '山东省烟台市市辖区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370602', '山东省烟台市芝罘区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370611', '山东省烟台市福山区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370612', '山东省烟台市牟平区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370613', '山东省烟台市莱山区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370634', '山东省长岛县', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370681', '山东省龙口市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370682', '山东省莱阳市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370683', '山东省莱州市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370684', '山东省蓬莱市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370685', '山东省招远市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370686', '山东省栖霞市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370687', '山东省海阳市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370700', '山东省潍坊市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370701', '山东省潍坊市市辖区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370702', '山东省潍坊市潍城区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370703', '山东省潍坊市寒亭区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370704', '山东省潍坊市坊子区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370705', '山东省潍坊市奎文区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370724', '山东省临朐县', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370725', '山东省昌乐县', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370781', '山东省青州市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370782', '山东省诸城市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370783', '山东省寿光市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370784', '山东省安丘市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370785', '山东省高密市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370786', '山东省昌邑市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370800', '山东省济宁市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370801', '山东省济宁市市辖区', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370802', '山东省济宁市市中区', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370811', '山东省济宁市任城区', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370826', '山东省微山县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370827', '山东省鱼台县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370828', '山东省金乡县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370829', '山东省嘉祥县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370830', '山东省汶上县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370831', '山东省泗水县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370832', '山东省梁山县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370881', '山东省曲阜市', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370882', '山东省兖州市', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370883', '山东省邹城市', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370900', '山东省泰安市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370901', '山东省泰安市市辖区', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370902', '山东省泰安市泰山区', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370903', '山东省泰安市岱岳区', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370921', '山东省宁阳县', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370923', '山东省东平县', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370982', '山东省新泰市', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370983', '山东省肥城市', '370900'); +INSERT INTO `base_administrative_division` VALUES ('371000', '山东省威海市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371001', '山东省威海市市辖区', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371002', '山东省威海市环翠区', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371081', '山东省文登市', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371082', '山东省荣成市', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371083', '山东省乳山市', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371100', '山东省日照市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371101', '山东省日照市市辖区', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371102', '山东省日照市东港区', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371103', '山东省日照市岚山区', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371121', '山东省五莲县', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371122', '山东省莒县', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371200', '山东省莱芜市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371201', '山东省莱芜市市辖区', '371200'); +INSERT INTO `base_administrative_division` VALUES ('371202', '山东省莱芜市莱城区', '371200'); +INSERT INTO `base_administrative_division` VALUES ('371203', '山东省莱芜市钢城区', '371200'); +INSERT INTO `base_administrative_division` VALUES ('371300', '山东省临沂市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371301', '山东省临沂市市辖区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371302', '山东省临沂市兰山区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371311', '山东省临沂市罗庄区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371312', '山东省临沂市河东区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371321', '山东省沂南县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371322', '山东省郯城县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371323', '山东省沂水县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371324', '山东省苍山县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371325', '山东省费县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371326', '山东省平邑县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371327', '山东省莒南县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371328', '山东省蒙阴县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371329', '山东省临沭县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371400', '山东省德州市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371401', '山东省德州市市辖区', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371402', '山东省德州市德城区', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371421', '山东省陵县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371422', '山东省宁津县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371423', '山东省庆云县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371424', '山东省临邑县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371425', '山东省齐河县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371426', '山东省平原县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371427', '山东省夏津县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371428', '山东省武城县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371481', '山东省乐陵市', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371482', '山东省禹城市', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371500', '山东省聊城市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371501', '山东省聊城市市辖区', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371502', '山东省聊城市东昌府区', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371521', '山东省阳谷县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371522', '山东省莘县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371523', '山东省茌平县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371524', '山东省东阿县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371525', '山东省冠县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371526', '山东省高唐县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371581', '山东省临清市', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371600', '山东省滨州市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371601', '山东省滨州市市辖区', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371602', '山东省滨州市滨城区', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371621', '山东省惠民县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371622', '山东省阳信县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371623', '山东省无棣县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371624', '山东省沾化县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371625', '山东省博兴县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371626', '山东省邹平县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371700', '山东省菏泽市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371701', '山东省菏泽市市辖区', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371702', '山东省菏泽市牡丹区', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371721', '山东省曹县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371722', '山东省单县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371723', '山东省成武县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371724', '山东省巨野县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371725', '山东省郓城县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371726', '山东省鄄城县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371727', '山东省定陶县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371728', '山东省东明县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('410000', '河南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('410100', '河南省郑州市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410101', '河南省郑州市市辖区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410102', '河南省郑州市中原区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410103', '河南省郑州市二七区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410104', '河南省郑州市管城回族区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410105', '河南省郑州市金水区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410106', '河南省郑州市上街区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410108', '河南省郑州市惠济区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410122', '河南省中牟县', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410181', '河南省巩义市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410182', '河南省荥阳市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410183', '河南省新密市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410184', '河南省新郑市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410185', '河南省登封市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410200', '河南省开封市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410201', '河南省开封市市辖区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410202', '河南省开封市龙亭区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410203', '河南省开封市顺河回族区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410204', '河南省开封市鼓楼区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410205', '河南省开封市禹王台区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410211', '河南省开封市金明区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410221', '河南省杞县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410222', '河南省通许县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410223', '河南省尉氏县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410224', '河南省开封县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410225', '河南省兰考县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410300', '河南省洛阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410301', '河南省洛阳市市辖区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410302', '河南省洛阳市老城区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410303', '河南省洛阳市西工区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410304', '河南省洛阳市廛河回族区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410305', '河南省洛阳市涧西区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410306', '河南省洛阳市吉利区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410307', '河南省洛阳市洛龙区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410322', '河南省孟津县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410323', '河南省新安县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410324', '河南省栾川县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410325', '河南省嵩县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410326', '河南省汝阳县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410327', '河南省宜阳县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410328', '河南省洛宁县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410329', '河南省伊川县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410381', '河南省偃师市', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410400', '河南省平顶山市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410401', '河南省平顶山市市辖区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410402', '河南省平顶山市新华区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410403', '河南省平顶山市卫东区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410404', '河南省平顶山市石龙区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410411', '河南省平顶山市湛河区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410421', '河南省宝丰县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410422', '河南省叶县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410423', '河南省鲁山县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410425', '河南省郏县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410481', '河南省舞钢市', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410482', '河南省汝州市', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410500', '河南省安阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410501', '河南省安阳市市辖区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410502', '河南省安阳市文峰区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410503', '河南省安阳市北关区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410505', '河南省安阳市殷都区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410506', '河南省安阳市龙安区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410522', '河南省安阳县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410523', '河南省汤阴县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410526', '河南省滑县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410527', '河南省内黄县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410581', '河南省林州市', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410600', '河南省鹤壁市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410601', '河南省鹤壁市市辖区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410602', '河南省鹤壁市鹤山区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410603', '河南省鹤壁市山城区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410611', '河南省鹤壁市淇滨区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410621', '河南省浚县', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410622', '河南省淇县', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410700', '河南省新乡市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410701', '河南省新乡市市辖区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410702', '河南省新乡市红旗区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410703', '河南省新乡市卫滨区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410704', '河南省新乡市凤泉区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410711', '河南省新乡市牧野区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410721', '河南省新乡县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410724', '河南省获嘉县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410725', '河南省原阳县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410726', '河南省延津县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410727', '河南省封丘县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410728', '河南省长垣县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410781', '河南省卫辉市', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410782', '河南省辉县市', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410800', '河南省焦作市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410801', '河南省焦作市市辖区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410802', '河南省焦作市解放区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410803', '河南省焦作市中站区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410804', '河南省焦作市马村区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410811', '河南省焦作市山阳区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410821', '河南省修武县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410822', '河南省博爱县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410823', '河南省武陟县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410825', '河南省温县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410882', '河南省沁阳市', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410883', '河南省孟州市', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410900', '河南省濮阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410901', '河南省濮阳市市辖区', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410902', '河南省濮阳市华龙区', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410922', '河南省清丰县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410923', '河南省南乐县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410926', '河南省范县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410927', '河南省台前县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410928', '河南省濮阳县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('411000', '河南省许昌市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411001', '河南省许昌市市辖区', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411002', '河南省许昌市魏都区', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411023', '河南省许昌县', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411024', '河南省鄢陵县', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411025', '河南省襄城县', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411081', '河南省禹州市', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411082', '河南省长葛市', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411100', '河南省漯河市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411101', '河南省漯河市市辖区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411102', '河南省漯河市源汇区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411103', '河南省漯河市郾城区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411104', '河南省漯河市召陵区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411121', '河南省舞阳县', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411122', '河南省临颍县', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411200', '河南省三门峡市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411201', '河南省三门峡市市辖区', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411202', '河南省三门峡市湖滨区', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411221', '河南省渑池县', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411222', '河南省陕县', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411224', '河南省卢氏县', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411281', '河南省义马市', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411282', '河南省灵宝市', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411300', '河南省南阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411301', '河南省南阳市市辖区', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411302', '河南省南阳市宛城区', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411303', '河南省南阳市卧龙区', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411321', '河南省南召县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411322', '河南省方城县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411323', '河南省西峡县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411324', '河南省镇平县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411325', '河南省内乡县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411326', '河南省淅川县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411327', '河南省社旗县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411328', '河南省唐河县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411329', '河南省新野县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411330', '河南省桐柏县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411381', '河南省邓州市', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411400', '河南省商丘市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411401', '河南省商丘市市辖区', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411402', '河南省商丘市梁园区', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411403', '河南省商丘市睢阳区', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411421', '河南省民权县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411422', '河南省睢县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411423', '河南省宁陵县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411424', '河南省柘城县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411425', '河南省虞城县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411426', '河南省夏邑县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411481', '河南省永城市', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411500', '河南省信阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411501', '河南省信阳市市辖区', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411502', '河南省信阳市师河区', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411503', '河南省信阳市平桥区', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411521', '河南省罗山县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411522', '河南省光山县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411523', '河南省新县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411524', '河南省商城县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411525', '河南省固始县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411526', '河南省潢川县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411527', '河南省淮滨县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411528', '河南省息县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411600', '河南省周口市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411601', '河南省周口市市辖区', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411602', '河南省周口市川汇区', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411621', '河南省扶沟县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411622', '河南省西华县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411623', '河南省商水县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411624', '河南省沈丘县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411625', '河南省郸城县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411626', '河南省淮阳县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411627', '河南省太康县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411628', '河南省鹿邑县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411681', '河南省项城市', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411700', '河南省驻马店市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411701', '河南省驻马店市市辖区', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411702', '河南省驻马店市驿城区', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411721', '河南省西平县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411722', '河南省上蔡县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411723', '河南省平舆县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411724', '河南省正阳县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411725', '河南省确山县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411726', '河南省泌阳县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411727', '河南省汝南县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411728', '河南省遂平县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411729', '河南省新蔡县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('419000', '河南省省直辖县级行政区划', '410000'); +INSERT INTO `base_administrative_division` VALUES ('419001', '河南省济源市', '419000'); +INSERT INTO `base_administrative_division` VALUES ('420000', '湖北省', '0'); +INSERT INTO `base_administrative_division` VALUES ('420100', '湖北省武汉市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420101', '湖北省武汉市市辖区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420102', '湖北省武汉市江岸区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420103', '湖北省武汉市江汉区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420104', '湖北省武汉市硚口区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420105', '湖北省武汉市汉阳区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420106', '湖北省武汉市武昌区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420107', '湖北省武汉市青山区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420111', '湖北省武汉市洪山区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420112', '湖北省武汉市东西湖区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420113', '湖北省武汉市汉南区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420114', '湖北省武汉市蔡甸区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420115', '湖北省武汉市江夏区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420116', '湖北省武汉市黄陂区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420117', '湖北省武汉市新洲区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420200', '湖北省黄石市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420201', '湖北省黄石市市辖区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420202', '湖北省黄石市黄石港区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420203', '湖北省黄石市西塞山区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420204', '湖北省黄石市下陆区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420205', '湖北省黄石市铁山区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420222', '湖北省阳新县', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420281', '湖北省大冶市', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420300', '湖北省十堰市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420301', '湖北省十堰市市辖区', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420302', '湖北省十堰市茅箭区', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420303', '湖北省十堰市张湾区', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420321', '湖北省郧县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420322', '湖北省郧西县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420323', '湖北省竹山县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420324', '湖北省竹溪县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420325', '湖北省房县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420381', '湖北省丹江口市', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420500', '湖北省宜昌市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420501', '湖北省宜昌市市辖区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420502', '湖北省宜昌市西陵区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420503', '湖北省宜昌市伍家岗区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420504', '湖北省宜昌市点军区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420505', '湖北省宜昌市猇亭区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420506', '湖北省宜昌市夷陵区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420525', '湖北省远安县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420526', '湖北省兴山县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420527', '湖北省秭归县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420528', '湖北省长阳土家族自治县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420529', '湖北省五峰土家族自治县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420581', '湖北省宜都市', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420582', '湖北省当阳市', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420583', '湖北省枝江市', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420600', '湖北省襄阳市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420601', '湖北省襄阳市市辖区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420602', '湖北省襄阳市襄城区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420606', '湖北省襄阳市樊城区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420607', '湖北省襄阳市襄州区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420624', '湖北省南漳县', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420625', '湖北省谷城县', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420626', '湖北省保康县', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420682', '湖北省老河口市', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420683', '湖北省枣阳市', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420684', '湖北省宜城市', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420700', '湖北省鄂州市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420701', '湖北省鄂州市市辖区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420702', '湖北省鄂州市梁子湖区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420703', '湖北省鄂州市华容区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420704', '湖北省鄂州市鄂城区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420800', '湖北省荆门市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420801', '湖北省荆门市市辖区', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420802', '湖北省荆门市东宝区', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420804', '湖北省荆门市掇刀区', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420821', '湖北省京山县', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420822', '湖北省沙洋县', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420881', '湖北省钟祥市', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420900', '湖北省孝感市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420901', '湖北省孝感市市辖区', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420902', '湖北省孝感市孝南区', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420921', '湖北省孝昌县', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420922', '湖北省大悟县', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420923', '湖北省云梦县', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420981', '湖北省应城市', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420982', '湖北省安陆市', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420984', '湖北省汉川市', '420900'); +INSERT INTO `base_administrative_division` VALUES ('421000', '湖北省荆州市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421001', '湖北省荆州市市辖区', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421002', '湖北省荆州市沙市区', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421003', '湖北省荆州市荆州区', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421022', '湖北省公安县', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421023', '湖北省监利县', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421024', '湖北省江陵县', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421081', '湖北省石首市', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421083', '湖北省洪湖市', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421087', '湖北省松滋市', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421100', '湖北省黄冈市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421101', '湖北省黄冈市市辖区', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421102', '湖北省黄冈市黄州区', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421121', '湖北省团风县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421122', '湖北省红安县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421123', '湖北省罗田县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421124', '湖北省英山县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421125', '湖北省浠水县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421126', '湖北省蕲春县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421127', '湖北省黄梅县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421181', '湖北省麻城市', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421182', '湖北省武穴市', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421200', '湖北省咸宁市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421201', '湖北省咸宁市市辖区', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421202', '湖北省咸宁市咸安区', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421221', '湖北省嘉鱼县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421222', '湖北省通城县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421223', '湖北省崇阳县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421224', '湖北省通山县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421281', '湖北省赤壁市', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421300', '湖北省随州市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421301', '湖北省随州市市辖区', '421300'); +INSERT INTO `base_administrative_division` VALUES ('421302', '湖北省随州市曾都区', '421300'); +INSERT INTO `base_administrative_division` VALUES ('421381', '湖北省广水市', '421300'); +INSERT INTO `base_administrative_division` VALUES ('422800', '湖北省恩施土家族苗族自治州', '420000'); +INSERT INTO `base_administrative_division` VALUES ('422801', '湖北省恩施市', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422802', '湖北省利川市', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422822', '湖北省建始县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422823', '湖北省巴东县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422825', '湖北省宣恩县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422826', '湖北省咸丰县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422827', '湖北省来凤县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422828', '湖北省鹤峰县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('429000', '湖北省省直辖县级行政区划', '420000'); +INSERT INTO `base_administrative_division` VALUES ('429004', '湖北省仙桃市', '429000'); +INSERT INTO `base_administrative_division` VALUES ('429005', '湖北省潜江市', '429000'); +INSERT INTO `base_administrative_division` VALUES ('429006', '湖北省天门市', '429000'); +INSERT INTO `base_administrative_division` VALUES ('429021', '湖北省神农架林区', '429000'); +INSERT INTO `base_administrative_division` VALUES ('430000', '湖南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('430100', '湖南省长沙市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430101', '湖南省长沙市市辖区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430102', '湖南省长沙市芙蓉区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430103', '湖南省长沙市天心区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430104', '湖南省长沙市岳麓区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430105', '湖南省长沙市开福区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430111', '湖南省长沙市雨花区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430112', '湖南省长沙市望城区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430121', '湖南省长沙县', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430124', '湖南省宁乡县', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430181', '湖南省浏阳市', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430200', '湖南省株洲市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430201', '湖南省株洲市市辖区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430202', '湖南省株洲市荷塘区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430203', '湖南省株洲市芦淞区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430204', '湖南省株洲市石峰区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430211', '湖南省株洲市天元区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430221', '湖南省株洲县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430223', '湖南省攸县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430224', '湖南省茶陵县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430225', '湖南省炎陵县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430281', '湖南省醴陵市', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430300', '湖南省湘潭市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430301', '湖南省湘潭市市辖区', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430302', '湖南省湘潭市雨湖区', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430304', '湖南省湘潭市岳塘区', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430321', '湖南省湘潭县', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430381', '湖南省湘乡市', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430382', '湖南省韶山市', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430400', '湖南省衡阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430401', '湖南省衡阳市市辖区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430405', '湖南省衡阳市珠晖区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430406', '湖南省衡阳市雁峰区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430407', '湖南省衡阳市石鼓区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430408', '湖南省衡阳市蒸湘区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430412', '湖南省衡阳市南岳区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430421', '湖南省衡阳县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430422', '湖南省衡南县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430423', '湖南省衡山县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430424', '湖南省衡东县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430426', '湖南省祁东县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430481', '湖南省耒阳市', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430482', '湖南省常宁市', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430500', '湖南省邵阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430501', '湖南省邵阳市市辖区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430502', '湖南省邵阳市双清区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430503', '湖南省邵阳市大祥区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430511', '湖南省邵阳市北塔区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430521', '湖南省邵东县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430522', '湖南省新邵县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430523', '湖南省邵阳县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430524', '湖南省隆回县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430525', '湖南省洞口县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430527', '湖南省绥宁县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430528', '湖南省新宁县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430529', '湖南省城步苗族自治县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430581', '湖南省武冈市', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430600', '湖南省岳阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430601', '湖南省岳阳市市辖区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430602', '湖南省岳阳市岳阳楼区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430603', '湖南省岳阳市云溪区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430611', '湖南省岳阳市君山区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430621', '湖南省岳阳县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430623', '湖南省华容县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430624', '湖南省湘阴县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430626', '湖南省平江县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430681', '湖南省汨罗市', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430682', '湖南省临湘市', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430700', '湖南省常德市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430701', '湖南省常德市市辖区', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430702', '湖南省常德市武陵区', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430703', '湖南省常德市鼎城区', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430721', '湖南省安乡县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430722', '湖南省汉寿县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430723', '湖南省澧县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430724', '湖南省临澧县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430725', '湖南省桃源县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430726', '湖南省石门县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430781', '湖南省津市市', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430800', '湖南省张家界市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430801', '湖南省张家界市市辖区', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430802', '湖南省张家界市永定区', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430811', '湖南省张家界市武陵源区', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430821', '湖南省慈利县', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430822', '湖南省桑植县', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430900', '湖南省益阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430901', '湖南省益阳市市辖区', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430902', '湖南省益阳市资阳区', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430903', '湖南省益阳市赫山区', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430921', '湖南省南县', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430922', '湖南省桃江县', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430923', '湖南省安化县', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430981', '湖南省沅江市', '430900'); +INSERT INTO `base_administrative_division` VALUES ('431000', '湖南省郴州市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431001', '湖南省郴州市市辖区', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431002', '湖南省郴州市北湖区', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431003', '湖南省郴州市苏仙区', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431021', '湖南省桂阳县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431022', '湖南省宜章县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431023', '湖南省永兴县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431024', '湖南省嘉禾县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431025', '湖南省临武县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431026', '湖南省汝城县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431027', '湖南省桂东县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431028', '湖南省安仁县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431081', '湖南省资兴市', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431100', '湖南省永州市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431101', '湖南省永州市市辖区', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431102', '湖南省永州市零陵区', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431103', '湖南省永州市冷水滩区', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431121', '湖南省祁阳县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431122', '湖南省东安县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431123', '湖南省双牌县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431124', '湖南省道县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431125', '湖南省江永县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431126', '湖南省宁远县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431127', '湖南省蓝山县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431128', '湖南省新田县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431129', '湖南省江华瑶族自治县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431200', '湖南省怀化市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431201', '湖南省怀化市市辖区', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431202', '湖南省怀化市鹤城区', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431221', '湖南省中方县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431222', '湖南省沅陵县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431223', '湖南省辰溪县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431224', '湖南省溆浦县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431225', '湖南省会同县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431226', '湖南省麻阳苗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431227', '湖南省新晃侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431228', '湖南省芷江侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431229', '湖南省靖州苗族侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431230', '湖南省通道侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431281', '湖南省洪江市', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431300', '湖南省娄底市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431301', '湖南省娄底市市辖区', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431302', '湖南省娄底市娄星区', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431321', '湖南省双峰县', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431322', '湖南省新化县', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431381', '湖南省冷水江市', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431382', '湖南省涟源市', '431300'); +INSERT INTO `base_administrative_division` VALUES ('433100', '湖南省湘西土家族苗族自治州', '430000'); +INSERT INTO `base_administrative_division` VALUES ('433101', '湖南省吉首市', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433122', '湖南省泸溪县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433123', '湖南省凤凰县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433124', '湖南省花垣县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433125', '湖南省保靖县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433126', '湖南省古丈县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433127', '湖南省永顺县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433130', '湖南省龙山县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('440000', '广东省', '0'); +INSERT INTO `base_administrative_division` VALUES ('440100', '广东省广州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440101', '广东省广州市市辖区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440103', '广东省广州市荔湾区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440104', '广东省广州市越秀区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440105', '广东省广州市海珠区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440106', '广东省广州市天河区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440111', '广东省广州市白云区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440112', '广东省广州市黄埔区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440113', '广东省广州市番禺区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440114', '广东省广州市花都区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440115', '广东省广州市南沙区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440116', '广东省广州市萝岗区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440183', '广东省增城市', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440184', '广东省从化市', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440200', '广东省韶关市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440201', '广东省韶关市市辖区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440203', '广东省韶关市武江区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440204', '广东省韶关市浈江区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440205', '广东省韶关市曲江区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440222', '广东省始兴县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440224', '广东省仁化县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440229', '广东省翁源县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440232', '广东省乳源瑶族自治县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440233', '广东省新丰县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440281', '广东省乐昌市', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440282', '广东省南雄市', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440300', '广东省深圳市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440301', '广东省深圳市市辖区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440303', '广东省深圳市罗湖区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440304', '广东省深圳市福田区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440305', '广东省深圳市南山区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440306', '广东省深圳市宝安区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440307', '广东省深圳市龙岗区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440308', '广东省深圳市盐田区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440400', '广东省珠海市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440401', '广东省珠海市市辖区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440402', '广东省珠海市香洲区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440403', '广东省珠海市斗门区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440404', '广东省珠海市金湾区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440500', '广东省汕头市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440501', '广东省汕头市市辖区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440507', '广东省汕头市龙湖区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440511', '广东省汕头市金平区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440512', '广东省汕头市濠江区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440513', '广东省汕头市潮阳区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440514', '广东省汕头市潮南区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440515', '广东省汕头市澄海区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440523', '广东省南澳县', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440600', '广东省佛山市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440601', '广东省佛山市市辖区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440604', '广东省佛山市禅城区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440605', '广东省佛山市南海区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440606', '广东省佛山市顺德区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440607', '广东省佛山市三水区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440608', '广东省佛山市高明区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440700', '广东省江门市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440701', '广东省江门市市辖区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440703', '广东省江门市蓬江区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440704', '广东省江门市江海区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440705', '广东省江门市新会区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440781', '广东省台山市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440783', '广东省开平市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440784', '广东省鹤山市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440785', '广东省恩平市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440800', '广东省湛江市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440801', '广东省湛江市市辖区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440802', '广东省湛江市赤坎区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440803', '广东省湛江市霞山区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440804', '广东省湛江市坡头区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440811', '广东省湛江市麻章区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440823', '广东省遂溪县', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440825', '广东省徐闻县', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440881', '广东省廉江市', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440882', '广东省雷州市', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440883', '广东省吴川市', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440900', '广东省茂名市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440901', '广东省茂名市市辖区', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440902', '广东省茂名市茂南区', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440903', '广东省茂名市茂港区', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440923', '广东省电白县', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440981', '广东省高州市', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440982', '广东省化州市', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440983', '广东省信宜市', '440900'); +INSERT INTO `base_administrative_division` VALUES ('441200', '广东省肇庆市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441201', '广东省肇庆市市辖区', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441202', '广东省肇庆市端州区', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441203', '广东省肇庆市鼎湖区', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441223', '广东省广宁县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441224', '广东省怀集县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441225', '广东省封开县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441226', '广东省德庆县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441283', '广东省高要市', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441284', '广东省四会市', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441300', '广东省惠州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441301', '广东省惠州市市辖区', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441302', '广东省惠州市惠城区', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441303', '广东省惠州市惠阳区', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441322', '广东省博罗县', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441323', '广东省惠东县', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441324', '广东省龙门县', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441400', '广东省梅州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441401', '广东省梅州市市辖区', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441402', '广东省梅州市梅江区', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441421', '广东省梅县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441422', '广东省大埔县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441423', '广东省丰顺县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441424', '广东省五华县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441426', '广东省平远县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441427', '广东省蕉岭县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441481', '广东省兴宁市', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441500', '广东省汕尾市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441501', '广东省汕尾市市辖区', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441502', '广东省汕尾市城区', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441521', '广东省海丰县', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441523', '广东省陆河县', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441581', '广东省陆丰市', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441600', '广东省河源市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441601', '广东省河源市市辖区', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441602', '广东省河源市源城区', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441621', '广东省紫金县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441622', '广东省龙川县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441623', '广东省连平县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441624', '广东省和平县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441625', '广东省东源县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441700', '广东省阳江市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441701', '广东省阳江市市辖区', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441702', '广东省阳江市江城区', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441721', '广东省阳西县', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441723', '广东省阳东县', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441781', '广东省阳春市', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441800', '广东省清远市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441801', '广东省清远市市辖区', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441802', '广东省清远市清城区', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441821', '广东省佛冈县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441823', '广东省阳山县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441825', '广东省连山壮族瑶族自治县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441826', '广东省连南瑶族自治县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441827', '广东省清新县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441881', '广东省英德市', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441882', '广东省连州市', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441900', '广东省东莞市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('442000', '广东省中山市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445100', '广东省潮州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445101', '广东省潮州市市辖区', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445102', '广东省潮州市湘桥区', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445121', '广东省潮安县', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445122', '广东省饶平县', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445200', '广东省揭阳市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445201', '广东省揭阳市市辖区', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445202', '广东省揭阳市榕城区', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445221', '广东省揭东县', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445222', '广东省揭西县', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445224', '广东省惠来县', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445281', '广东省普宁市', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445300', '广东省云浮市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445301', '广东省云浮市市辖区', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445302', '广东省云浮市云城区', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445321', '广东省新兴县', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445322', '广东省郁南县', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445323', '广东省云安县', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445381', '广东省罗定市', '445300'); +INSERT INTO `base_administrative_division` VALUES ('450000', '广西壮族自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('450100', '广西南宁市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450101', '广西南宁市市辖区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450102', '广西南宁市兴宁区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450103', '广西南宁市青秀区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450105', '广西南宁市江南区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450107', '广西南宁市西乡塘区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450108', '广西南宁市良庆区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450109', '广西南宁市邕宁区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450122', '广西武鸣县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450123', '广西隆安县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450124', '广西马山县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450125', '广西上林县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450126', '广西宾阳县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450127', '广西横县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450200', '广西柳州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450201', '广西柳州市市辖区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450202', '广西柳州市城中区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450203', '广西柳州市鱼峰区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450204', '广西柳州市柳南区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450205', '广西柳州市柳北区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450221', '广西柳江县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450222', '广西柳城县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450223', '广西鹿寨县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450224', '广西融安县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450225', '广西融水苗族自治县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450226', '广西三江侗族自治县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450300', '广西桂林市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450301', '广西桂林市市辖区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450302', '广西桂林市秀峰区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450303', '广西桂林市叠彩区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450304', '广西桂林市象山区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450305', '广西桂林市七星区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450311', '广西桂林市雁山区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450321', '广西阳朔县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450322', '广西临桂县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450323', '广西灵川县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450324', '广西全州县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450325', '广西兴安县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450326', '广西永福县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450327', '广西灌阳县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450328', '广西龙胜各族自治县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450329', '广西资源县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450330', '广西平乐县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450331', '广西荔蒲县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450332', '广西恭城瑶族自治县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450400', '广西梧州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450401', '广西梧州市市辖区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450403', '广西梧州市万秀区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450404', '广西梧州市蝶山区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450405', '广西梧州市长洲区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450421', '广西苍梧县', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450422', '广西藤县', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450423', '广西蒙山县', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450481', '广西岑溪市', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450500', '广西北海市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450501', '广西北海市市辖区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450502', '广西北海市海城区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450503', '广西北海市银海区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450512', '广西北海市铁山港区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450521', '广西合浦县', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450600', '广西防城港市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450601', '广西防城港市市辖区', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450602', '广西防城港市港口区', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450603', '广西防城港市防城区', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450621', '广西上思县', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450681', '广西东兴市', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450700', '广西钦州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450701', '广西钦州市市辖区', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450702', '广西钦州市钦南区', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450703', '广西钦州市钦北区', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450721', '广西灵山县', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450722', '广西浦北县', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450800', '广西贵港市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450801', '广西贵港市市辖区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450802', '广西贵港市港北区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450803', '广西贵港市港南区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450804', '广西贵港市覃塘区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450821', '广西平南县', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450881', '广西桂平市', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450900', '广西玉林市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450901', '广西玉林市市辖区', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450902', '广西玉林市玉州区', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450921', '广西容县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450922', '广西陆川县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450923', '广西博白县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450924', '广西兴业县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450981', '广西北流市', '450900'); +INSERT INTO `base_administrative_division` VALUES ('451000', '广西百色市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451001', '广西百色市市辖区', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451002', '广西百色市右江区', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451021', '广西田阳县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451022', '广西田东县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451023', '广西平果县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451024', '广西德保县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451025', '广西靖西县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451026', '广西那坡县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451027', '广西凌云县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451028', '广西乐业县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451029', '广西田林县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451030', '广西西林县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451031', '广西隆林各族自治县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451100', '广西贺州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451101', '广西贺州市市辖区', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451102', '广西贺州市八步区', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451121', '广西昭平县', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451122', '广西钟山县', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451123', '广西富川瑶族自治县', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451200', '广西河池市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451201', '广西河池市市辖区', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451202', '广西河池市金城江区', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451221', '广西南丹县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451222', '广西天峨县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451223', '广西凤山县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451224', '广西东兰县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451225', '广西罗城仫佬族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451226', '广西环江毛南族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451227', '广西巴马瑶族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451228', '广西都安瑶族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451229', '广西大化瑶族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451281', '广西宜州市', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451300', '广西来宾市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451301', '广西来宾市市辖区', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451302', '广西来宾市兴宾区', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451321', '广西忻城县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451322', '广西象州县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451323', '广西武宣县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451324', '广西金秀瑶族自治县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451381', '广西合山市', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451400', '广西崇左市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451401', '广西崇左市市辖区', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451402', '广西崇左市江洲区', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451421', '广西扶绥县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451422', '广西宁明县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451423', '广西龙州县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451424', '广西大新县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451425', '广西天等县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451481', '广西凭祥市', '451400'); +INSERT INTO `base_administrative_division` VALUES ('460000', '海南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('460100', '海南省海口市', '460000'); +INSERT INTO `base_administrative_division` VALUES ('460101', '海南省海口市市辖区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460105', '海南省海口市秀英区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460106', '海南省海口市龙华区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460107', '海南省海口市琼山区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460108', '海南省海口市美兰区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460200', '海南省三亚市', '460000'); +INSERT INTO `base_administrative_division` VALUES ('460201', '海南省三亚市市辖区', '460200'); +INSERT INTO `base_administrative_division` VALUES ('469000', '海南省省直辖县级行政区划', '460000'); +INSERT INTO `base_administrative_division` VALUES ('469001', '海南省五指山市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469002', '海南省琼海市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469003', '海南省儋州市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469005', '海南省文昌市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469006', '海南省万宁市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469007', '海南省东方市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469025', '海南省定安县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469026', '海南省屯昌县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469027', '海南省澄迈县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469028', '海南省临高县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469030', '海南省白沙黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469031', '海南省昌江黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469033', '海南省乐东黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469034', '海南省陵水黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469035', '海南省保亭黎族苗族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469036', '海南省琼中黎族苗族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469037', '海南省西沙群岛', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469038', '海南省南沙群岛', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469039', '海南省中沙群岛的岛礁及其海域', '469000'); +INSERT INTO `base_administrative_division` VALUES ('500000', '重庆市', '0'); +INSERT INTO `base_administrative_division` VALUES ('500100', '重庆市市辖区', '500000'); +INSERT INTO `base_administrative_division` VALUES ('500101', '重庆市万州区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500102', '重庆市涪陵区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500103', '重庆市渝中区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500104', '重庆市大渡口区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500105', '重庆市江北区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500106', '重庆市沙坪坝区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500107', '重庆市九龙坡区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500108', '重庆市南岸区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500109', '重庆市北碚区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500110', '重庆市綦江区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500111', '重庆市大足区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500112', '重庆市渝北区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500113', '重庆市巴南区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500114', '重庆市黔江区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500115', '重庆市长寿区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500116', '重庆市江津区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500117', '重庆市合川区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500118', '重庆市永川区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500119', '重庆市南川区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500200', '重庆市县', '500000'); +INSERT INTO `base_administrative_division` VALUES ('500223', '重庆市潼南县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500224', '重庆市铜梁县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500226', '重庆市荣昌县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500227', '重庆市璧山县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500228', '重庆市梁平县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500229', '重庆市城口县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500230', '重庆市丰都县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500231', '重庆市垫江县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500232', '重庆市武隆县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500233', '重庆市忠县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500234', '重庆市开县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500235', '重庆市云阳县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500236', '重庆市奉节县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500237', '重庆市巫山县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500238', '重庆市巫溪县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500240', '重庆市石柱土家族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500241', '重庆市秀山土家族苗族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500242', '重庆市酉阳土家族苗族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500243', '重庆市彭水苗族土家族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('510000', '四川省', '0'); +INSERT INTO `base_administrative_division` VALUES ('510100', '四川省成都市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510101', '四川省成都市市辖区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510104', '四川省成都市锦江区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510105', '四川省成都市青羊区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510106', '四川省成都市金牛区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510107', '四川省成都市武侯区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510108', '四川省成都市成华区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510112', '四川省成都市龙泉驿区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510113', '四川省成都市青白江区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510114', '四川省成都市新都区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510115', '四川省成都市温江区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510121', '四川省金堂县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510122', '四川省双流县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510124', '四川省郫县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510129', '四川省大邑县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510131', '四川省蒲江县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510132', '四川省新津县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510181', '四川省都江堰市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510182', '四川省彭州市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510183', '四川省邛崃市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510184', '四川省崇州市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510300', '四川省自贡市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510301', '四川省自贡市市辖区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510302', '四川省自贡市自流井区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510303', '四川省自贡市贡井区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510304', '四川省自贡市大安区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510311', '四川省自贡市沿滩区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510321', '四川省荣县', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510322', '四川省富顺县', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510400', '四川省攀枝花市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510401', '四川省攀枝花市市辖区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510402', '四川省攀枝花市东区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510403', '四川省攀枝花市西区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510411', '四川省攀枝花市仁和区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510421', '四川省米易县', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510422', '四川省盐边县', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510500', '四川省泸州市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510501', '四川省泸州市市辖区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510502', '四川省泸州市江阳区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510503', '四川省泸州市纳溪区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510504', '四川省泸州市龙马潭区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510521', '四川省泸县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510522', '四川省合江县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510524', '四川省叙永县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510525', '四川省古蔺县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510600', '四川省德阳市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510601', '四川省德阳市市辖区', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510603', '四川省德阳市旌阳区', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510623', '四川省中江县', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510626', '四川省罗江县', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510681', '四川省广汉市', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510682', '四川省什邡市', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510683', '四川省绵竹市', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510700', '四川省绵阳市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510701', '四川省绵阳市市辖区', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510703', '四川省绵阳市涪城区', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510704', '四川省绵阳市游仙区', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510722', '四川省三台县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510723', '四川省盐亭县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510724', '四川省安县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510725', '四川省梓潼县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510726', '四川省北川羌族自治县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510727', '四川省平武县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510781', '四川省江油市', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510800', '四川省广元市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510801', '四川省广元市市辖区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510802', '四川省广元市利州区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510811', '四川省广元市元坝区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510812', '四川省广元市朝天区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510821', '四川省旺苍县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510822', '四川省青川县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510823', '四川省剑阁县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510824', '四川省苍溪县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510900', '四川省遂宁市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510901', '四川省遂宁市市辖区', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510903', '四川省遂宁市船山区', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510904', '四川省遂宁市安居区', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510921', '四川省蓬溪县', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510922', '四川省射洪县', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510923', '四川省大英县', '510900'); +INSERT INTO `base_administrative_division` VALUES ('511000', '四川省内江市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511001', '四川省内江市市辖区', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511002', '四川省内江市市中区', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511011', '四川省内江市东兴区', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511024', '四川省威远县', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511025', '四川省资中县', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511028', '四川省隆昌县', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511100', '四川省乐山市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511101', '四川省乐山市市辖区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511102', '四川省乐山市市中区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511111', '四川省乐山市沙湾区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511112', '四川省乐山市五通桥区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511113', '四川省乐山市金口河区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511123', '四川省犍为县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511124', '四川省井研县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511126', '四川省夹江县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511129', '四川省沐川县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511132', '四川省峨边彝族自治县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511133', '四川省马边彝族自治县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511181', '四川省峨眉山市', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511300', '四川省南充市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511301', '四川省南充市市辖区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511302', '四川省南充市顺庆区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511303', '四川省南充市高坪区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511304', '四川省南充市嘉陵区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511321', '四川省南部县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511322', '四川省营山县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511323', '四川省蓬安县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511324', '四川省仪陇县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511325', '四川省西充县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511381', '四川省阆中市', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511400', '四川省眉山市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511401', '四川省眉山市市辖区', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511402', '四川省眉山市东坡区', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511421', '四川省仁寿县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511422', '四川省彭山县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511423', '四川省洪雅县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511424', '四川省丹棱县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511425', '四川省青神县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511500', '四川省宜宾市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511501', '四川省宜宾市市辖区', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511502', '四川省宜宾市翠屏区', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511503', '四川省宜宾市南溪区', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511521', '四川省宜宾县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511523', '四川省江安县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511524', '四川省长宁县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511525', '四川省高县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511526', '四川省珙县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511527', '四川省筠连县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511528', '四川省兴文县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511529', '四川省屏山县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511600', '四川省广安市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511601', '四川省广安市市辖区', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511602', '四川省广安市广安区', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511621', '四川省岳池县', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511622', '四川省武胜县', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511623', '四川省邻水县', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511681', '四川省华蓥市', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511700', '四川省达州市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511701', '四川省达州市市辖区', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511702', '四川省达州市通川区', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511721', '四川省达县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511722', '四川省宣汉县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511723', '四川省开江县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511724', '四川省大竹县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511725', '四川省渠县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511781', '四川省万源市', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511800', '四川省雅安市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511801', '四川省雅安市市辖区', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511802', '四川省雅安市雨城区', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511821', '四川省名山县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511822', '四川省荥经县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511823', '四川省汉源县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511824', '四川省石棉县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511825', '四川省天全县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511826', '四川省芦山县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511827', '四川省宝兴县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511900', '四川省巴中市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511901', '四川省巴中市市辖区', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511902', '四川省巴中市巴州区', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511921', '四川省通江县', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511922', '四川省南江县', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511923', '四川省平昌县', '511900'); +INSERT INTO `base_administrative_division` VALUES ('512000', '四川省资阳市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('512001', '四川省资阳市市辖区', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512002', '四川省资阳市雁江区', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512021', '四川省安岳县', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512022', '四川省乐至县', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512081', '四川省简阳市', '512000'); +INSERT INTO `base_administrative_division` VALUES ('513200', '四川省阿坝藏族羌族自治州', '510000'); +INSERT INTO `base_administrative_division` VALUES ('513221', '四川省汶川县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513222', '四川省理县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513223', '四川省茂县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513224', '四川省松潘县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513225', '四川省九寨沟县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513226', '四川省金川县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513227', '四川省小金县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513228', '四川省黑水县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513229', '四川省马尔康县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513230', '四川省壤塘县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513231', '四川省阿坝县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513232', '四川省若尔盖县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513233', '四川省红原县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513300', '四川省甘孜藏族自治州', '510000'); +INSERT INTO `base_administrative_division` VALUES ('513321', '四川省康定县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513322', '四川省泸定县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513323', '四川省丹巴县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513324', '四川省九龙县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513325', '四川省雅江县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513326', '四川省道孚县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513327', '四川省炉霍县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513328', '四川省甘孜县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513329', '四川省新龙县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513330', '四川省德格县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513331', '四川省白玉县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513332', '四川省石渠县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513333', '四川省色达县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513334', '四川省理塘县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513335', '四川省巴塘县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513336', '四川省乡城县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513337', '四川省稻城县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513338', '四川省得荣县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513400', '四川省凉山彝族自治州', '510000'); +INSERT INTO `base_administrative_division` VALUES ('513401', '四川省西昌市', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513422', '四川省木里藏族自治县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513423', '四川省盐源县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513424', '四川省德昌县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513425', '四川省会理县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513426', '四川省会东县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513427', '四川省宁南县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513428', '四川省普格县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513429', '四川省布拖县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513430', '四川省金阳县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513431', '四川省昭觉县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513432', '四川省喜德县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513433', '四川省冕宁县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513434', '四川省越西县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513435', '四川省甘洛县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513436', '四川省美姑县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513437', '四川省雷波县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('520000', '贵州省', '0'); +INSERT INTO `base_administrative_division` VALUES ('520100', '贵州省贵阳市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520101', '贵州省贵阳市市辖区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520102', '贵州省贵阳市南明区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520103', '贵州省贵阳市云岩区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520111', '贵州省贵阳市花溪区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520112', '贵州省贵阳市乌当区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520113', '贵州省贵阳市白云区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520114', '贵州省贵阳市小河区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520121', '贵州省开阳县', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520122', '贵州省息烽县', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520123', '贵州省修文县', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520181', '贵州省清镇市', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520200', '贵州省六盘水市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520201', '贵州省六盘水市钟山区', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520203', '贵州省六盘水市六枝特区', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520221', '贵州省水城县', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520222', '贵州省盘县', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520300', '贵州省遵义市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520301', '贵州省遵义市市辖区', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520302', '贵州省遵义市红花岗区', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520303', '贵州省遵义市汇川区', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520321', '贵州省遵义县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520322', '贵州省桐梓县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520323', '贵州省绥阳县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520324', '贵州省正安县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520325', '贵州省道真仡佬族苗族自治县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520326', '贵州省务川仡佬族苗族自治县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520327', '贵州省凤冈县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520328', '贵州省湄潭县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520329', '贵州省余庆县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520330', '贵州省习水县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520381', '贵州省赤水市', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520382', '贵州省仁怀市', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520400', '贵州省安顺市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520401', '贵州省安顺市市辖区', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520402', '贵州省安顺市西秀区', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520421', '贵州省平坝县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520422', '贵州省普定县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520423', '贵州省镇宁布依族苗族自治县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520424', '贵州省关岭布依族苗族自治县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520425', '贵州省紫云苗族布依族自治县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520500', '贵州省毕节市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520501', '贵州省毕节市市辖区', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520502', '贵州省毕节市七星关区', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520521', '贵州省大方县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520522', '贵州省黔西县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520523', '贵州省金沙县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520524', '贵州省织金县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520525', '贵州省纳雍县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520526', '贵州省威宁彝族回族苗族自治县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520527', '贵州省赫章县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520600', '贵州省铜仁市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520601', '贵州省铜仁市市辖区', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520602', '贵州省铜仁市碧江区', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520603', '贵州省铜仁市万山区', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520621', '贵州省江口县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520622', '贵州省玉屏侗族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520623', '贵州省石阡县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520624', '贵州省思南县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520625', '贵州省印江土家族苗族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520626', '贵州省德江县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520627', '贵州省沿河土家族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520628', '贵州省松桃苗族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('522300', '贵州省黔西南布依族苗族自治州', '520000'); +INSERT INTO `base_administrative_division` VALUES ('522301', '贵州省兴义市', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522322', '贵州省兴仁县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522323', '贵州省普安县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522324', '贵州省晴隆县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522325', '贵州省贞丰县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522326', '贵州省望谟县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522327', '贵州省册亨县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522328', '贵州省安龙县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522600', '贵州省黔东南苗族侗族自治州', '520000'); +INSERT INTO `base_administrative_division` VALUES ('522601', '贵州省凯里市', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522622', '贵州省黄平县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522623', '贵州省施秉县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522624', '贵州省三穗县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522625', '贵州省镇远县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522626', '贵州省岑巩县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522627', '贵州省天柱县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522628', '贵州省锦屏县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522629', '贵州省剑河县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522630', '贵州省台江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522631', '贵州省黎平县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522632', '贵州省榕江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522633', '贵州省从江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522634', '贵州省雷山县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522635', '贵州省麻江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522636', '贵州省丹寨县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522700', '贵州省黔南布依族苗族自治州', '520000'); +INSERT INTO `base_administrative_division` VALUES ('522701', '贵州省都匀市', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522702', '贵州省福泉市', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522722', '贵州省荔波县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522723', '贵州省贵定县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522725', '贵州省瓮安县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522726', '贵州省独山县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522727', '贵州省平塘县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522728', '贵州省罗甸县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522729', '贵州省长顺县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522730', '贵州省龙里县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522731', '贵州省惠水县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522732', '贵州省三都水族自治县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('530000', '云南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('530100', '云南省昆明市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530101', '云南省昆明市市辖区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530102', '云南省昆明市五华区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530103', '云南省昆明市盘龙区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530111', '云南省昆明市官渡区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530112', '云南省昆明市西山区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530113', '云南省昆明市东川区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530114', '云南省昆明市呈贡区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530122', '云南省晋宁县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530124', '云南省富民县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530125', '云南省宜良县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530126', '云南省石林彝族自治县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530127', '云南省嵩明县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530128', '云南省禄劝彝族苗族自治县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530129', '云南省寻甸回族彝族自治县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530181', '云南省安宁市', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530300', '云南省曲靖市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530301', '云南省曲靖市市辖区', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530302', '云南省曲靖市麒麟区', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530321', '云南省马龙县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530322', '云南省陆良县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530323', '云南省师宗县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530324', '云南省罗平县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530325', '云南省富源县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530326', '云南省会泽县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530328', '云南省沾益县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530381', '云南省宣威市', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530400', '云南省玉溪市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530401', '云南省玉溪市市辖区', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530402', '云南省玉溪市红塔区', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530421', '云南省江川县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530422', '云南省澄江县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530423', '云南省通海县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530424', '云南省华宁县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530425', '云南省易门县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530426', '云南省峨山彝族自治县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530427', '云南省新平彝族傣族自治县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530428', '云南省元江哈尼族彝族傣族自治县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530500', '云南省保山市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530501', '云南省保山市市辖区', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530502', '云南省保山市隆阳区', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530521', '云南省施甸县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530522', '云南省腾冲县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530523', '云南省龙陵县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530524', '云南省昌宁县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530600', '云南省昭通市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530601', '云南省昭通市市辖区', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530602', '云南省昭通市昭阳区', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530621', '云南省鲁甸县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530622', '云南省巧家县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530623', '云南省盐津县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530624', '云南省大关县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530625', '云南省永善县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530626', '云南省绥江县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530627', '云南省镇雄县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530628', '云南省彝良县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530629', '云南省威信县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530630', '云南省水富县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530700', '云南省丽江市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530701', '云南省丽江市市辖区', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530702', '云南省丽江市古城区', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530721', '云南省玉龙纳西族自治县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530722', '云南省永胜县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530723', '云南省华坪县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530724', '云南省宁蒗彝族自治县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530800', '云南省普洱市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530801', '云南省普洱市市辖区', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530802', '云南省普洱市思茅区', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530821', '云南省宁洱哈尼族彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530822', '云南省墨江哈尼族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530823', '云南省景东彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530824', '云南省景谷傣族彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530825', '云南省镇沅彝族哈尼族拉祜族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530826', '云南省江城哈尼族彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530827', '云南省孟连傣族拉祜族佤族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530828', '云南省澜沧拉祜族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530829', '云南省西盟佤族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530900', '云南省临沧市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530901', '云南省临沧市市辖区', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530902', '云南省临沧市临翔区', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530921', '云南省凤庆县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530922', '云南省云县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530923', '云南省永德县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530924', '云南省镇康县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530925', '云南省双江拉祜族佤族布朗族傣族自治县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530926', '云南省耿马傣族佤族自治县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530927', '云南省沧源佤族自治县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('532300', '云南省楚雄彝族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532301', '云南省楚雄市', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532322', '云南省双柏县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532323', '云南省牟定县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532324', '云南省南华县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532325', '云南省姚安县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532326', '云南省大姚县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532327', '云南省永仁县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532328', '云南省元谋县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532329', '云南省武定县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532331', '云南省禄丰县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532500', '云南省红河哈尼族彝族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532501', '云南省个旧市', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532502', '云南省开远市', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532503', '云南省蒙自市', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532523', '云南省屏边苗族自治县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532524', '云南省建水县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532525', '云南省石屏县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532526', '云南省弥勒县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532527', '云南省泸西县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532528', '云南省元阳县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532529', '云南省红河县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532530', '云南省金平苗族瑶族傣族自治县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532531', '云南省绿春县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532532', '云南省河口瑶族自治县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532600', '云南省文山壮族苗族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532601', '云南省文山市', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532622', '云南省砚山县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532623', '云南省西畴县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532624', '云南省麻栗坡县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532625', '云南省马关县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532626', '云南省丘北县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532627', '云南省广南县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532628', '云南省富宁县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532800', '云南省西双版纳傣族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532801', '云南省景洪市', '532800'); +INSERT INTO `base_administrative_division` VALUES ('532822', '云南省勐海县', '532800'); +INSERT INTO `base_administrative_division` VALUES ('532823', '云南省勐腊县', '532800'); +INSERT INTO `base_administrative_division` VALUES ('532900', '云南省大理白族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532901', '云南省大理市', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532922', '云南省漾濞彝族自治县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532923', '云南省祥云县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532924', '云南省宾川县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532925', '云南省弥渡县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532926', '云南省南涧彝族自治县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532927', '云南省巍山彝族回族自治县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532928', '云南省永平县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532929', '云南省云龙县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532930', '云南省洱源县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532931', '云南省剑川县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532932', '云南省鹤庆县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('533100', '云南省德宏傣族景颇族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('533102', '云南省瑞丽市', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533103', '云南省芒市', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533122', '云南省梁河县', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533123', '云南省盈江县', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533124', '云南省陇川县', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533300', '云南省怒江傈僳族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('533321', '云南省泸水县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533323', '云南省福贡县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533324', '云南省贡山独龙族怒族自治县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533325', '云南省兰坪白族普米族自治县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533400', '云南省迪庆藏族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('533421', '云南省香格里拉县', '533400'); +INSERT INTO `base_administrative_division` VALUES ('533422', '云南省德钦县', '533400'); +INSERT INTO `base_administrative_division` VALUES ('533423', '云南省维西傈僳族自治县', '533400'); +INSERT INTO `base_administrative_division` VALUES ('540000', '西藏自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('540100', '西藏拉萨市', '540000'); +INSERT INTO `base_administrative_division` VALUES ('540101', '西藏拉萨市市辖区', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540102', '西藏拉萨市城关区', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540121', '西藏林周县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540122', '西藏当雄县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540123', '西藏尼木县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540124', '西藏曲水县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540125', '西藏堆龙德庆县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540126', '西藏达孜县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540127', '西藏墨竹工卡县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('542100', '西藏昌都地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542121', '西藏昌都县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542122', '西藏江达县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542123', '西藏贡觉县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542124', '西藏类乌齐县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542125', '西藏丁青县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542126', '西藏察雅县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542127', '西藏八宿县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542128', '西藏左贡县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542129', '西藏芒康县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542132', '西藏洛隆县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542133', '西藏边坝县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542200', '西藏山南地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542221', '西藏乃东县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542222', '西藏扎囊县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542223', '西藏贡嘎县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542224', '西藏桑日县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542225', '西藏琼结县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542226', '西藏曲松县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542227', '西藏措美县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542228', '西藏洛扎县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542229', '西藏加查县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542231', '西藏隆子县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542232', '西藏错那县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542233', '西藏浪卡子县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542300', '西藏日喀则地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542301', '西藏日喀则市', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542322', '西藏南木林县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542323', '西藏江孜县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542324', '西藏定日县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542325', '西藏萨迦县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542326', '西藏拉孜县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542327', '西藏昂仁县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542328', '西藏谢通门县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542329', '西藏白朗县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542330', '西藏仁布县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542331', '西藏康马县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542332', '西藏定结县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542333', '西藏仲巴县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542334', '西藏亚东县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542335', '西藏吉隆县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542336', '西藏聂拉木县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542337', '西藏萨嘎县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542338', '西藏岗巴县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542400', '西藏那曲地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542421', '西藏那曲县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542422', '西藏嘉黎县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542423', '西藏比如县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542424', '西藏聂荣县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542425', '西藏安多县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542426', '西藏申扎县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542427', '西藏索县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542428', '西藏班戈县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542429', '西藏巴青县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542430', '西藏尼玛县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542500', '西藏阿里地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542521', '西藏普兰县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542522', '西藏札达县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542523', '西藏噶尔县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542524', '西藏日土县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542525', '西藏革吉县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542526', '西藏改则县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542527', '西藏措勤县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542600', '西藏林芝地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542621', '西藏林芝县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542622', '西藏工布江达县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542623', '西藏米林县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542624', '西藏墨脱县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542625', '西藏波密县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542626', '西藏察隅县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542627', '西藏朗县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('610000', '陕西省', '0'); +INSERT INTO `base_administrative_division` VALUES ('610100', '陕西省西安市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610101', '陕西省西安市市辖区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610102', '陕西省西安市新城区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610103', '陕西省西安市碑林区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610104', '陕西省西安市莲湖区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610111', '陕西省西安市灞桥区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610112', '陕西省西安市未央区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610113', '陕西省西安市雁塔区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610114', '陕西省西安市阎良区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610115', '陕西省西安市临潼区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610116', '陕西省西安市长安区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610122', '陕西省蓝田县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610124', '陕西省周至县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610125', '陕西省户县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610126', '陕西省高陵县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610200', '陕西省铜川市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610201', '陕西省铜川市市辖区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610202', '陕西省铜川市王益区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610203', '陕西省铜川市印台区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610204', '陕西省铜川市耀州区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610222', '陕西省宜君县', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610300', '陕西省宝鸡市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610301', '陕西省宝鸡市市辖区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610302', '陕西省宝鸡市渭滨区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610303', '陕西省宝鸡市金台区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610304', '陕西省宝鸡市陈仓区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610322', '陕西省凤翔县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610323', '陕西省岐山县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610324', '陕西省扶风县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610326', '陕西省眉县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610327', '陕西省陇县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610328', '陕西省千阳县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610329', '陕西省麟游县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610330', '陕西省凤县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610331', '陕西省太白县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610400', '陕西省咸阳市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610401', '陕西省咸阳市市辖区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610402', '陕西省咸阳市秦都区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610403', '陕西省杨凌示范区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610404', '陕西省咸阳市渭城区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610422', '陕西省三原县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610423', '陕西省泾阳县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610424', '陕西省乾县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610425', '陕西省礼泉县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610426', '陕西省永寿县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610427', '陕西省彬县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610428', '陕西省长武县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610429', '陕西省旬邑县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610430', '陕西省淳化县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610431', '陕西省武功县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610481', '陕西省兴平市', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610500', '陕西省渭南市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610501', '陕西省渭南市市辖区', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610502', '陕西省渭南市临渭区', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610521', '陕西省华县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610522', '陕西省潼关县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610523', '陕西省大荔县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610524', '陕西省合阳县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610525', '陕西省澄城县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610526', '陕西省蒲城县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610527', '陕西省白水县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610528', '陕西省富平县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610581', '陕西省韩城市', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610582', '陕西省华阴市', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610600', '陕西省延安市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610601', '陕西省延安市市辖区', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610602', '陕西省延安市宝塔区', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610621', '陕西省延长县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610622', '陕西省延川县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610623', '陕西省子长县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610624', '陕西省安塞县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610625', '陕西省志丹县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610626', '陕西省吴起县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610627', '陕西省甘泉县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610628', '陕西省富县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610629', '陕西省洛川县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610630', '陕西省宜川县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610631', '陕西省黄龙县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610632', '陕西省黄陵县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610700', '陕西省汉中市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610701', '陕西省汉中市市辖区', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610702', '陕西省汉中市汉台区', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610721', '陕西省南郑县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610722', '陕西省城固县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610723', '陕西省洋县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610724', '陕西省西乡县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610725', '陕西省勉县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610726', '陕西省宁强县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610727', '陕西省略阳县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610728', '陕西省镇巴县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610729', '陕西省留坝县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610730', '陕西省佛坪县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610800', '陕西省榆林市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610801', '陕西省榆林市市辖区', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610802', '陕西省榆林市榆阳区', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610821', '陕西省神木县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610822', '陕西省府谷县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610823', '陕西省横山县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610824', '陕西省靖边县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610825', '陕西省定边县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610826', '陕西省绥德县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610827', '陕西省米脂县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610828', '陕西省佳县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610829', '陕西省吴堡县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610830', '陕西省清涧县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610831', '陕西省子洲县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610900', '陕西省安康市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610901', '陕西省安康市市辖区', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610902', '陕西省安康市汉滨区', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610921', '陕西省汉阴县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610922', '陕西省石泉县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610923', '陕西省宁陕县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610924', '陕西省紫阳县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610925', '陕西省岚皋县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610926', '陕西省平利县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610927', '陕西省镇坪县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610928', '陕西省旬阳县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610929', '陕西省白河县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('611000', '陕西省商洛市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('611001', '陕西省商洛市市辖区', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611002', '陕西省商洛市商州区', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611021', '陕西省洛南县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611022', '陕西省丹凤县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611023', '陕西省商南县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611024', '陕西省山阳县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611025', '陕西省镇安县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611026', '陕西省柞水县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('620000', '甘肃省', '0'); +INSERT INTO `base_administrative_division` VALUES ('620100', '甘肃省兰州市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620101', '甘肃省兰州市市辖区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620102', '甘肃省兰州市城关区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620103', '甘肃省兰州市七里河区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620104', '甘肃省兰州市西固区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620105', '甘肃省兰州市安宁区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620111', '甘肃省兰州市红古区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620121', '甘肃省永登县', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620122', '甘肃省皋兰县', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620123', '甘肃省榆中县', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620200', '甘肃省嘉峪关市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620201', '甘肃省嘉峪关市市辖区', '620200'); +INSERT INTO `base_administrative_division` VALUES ('620300', '甘肃省金昌市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620301', '甘肃省金昌市市辖区', '620300'); +INSERT INTO `base_administrative_division` VALUES ('620302', '甘肃省金昌市金川区', '620300'); +INSERT INTO `base_administrative_division` VALUES ('620321', '甘肃省永昌县', '620300'); +INSERT INTO `base_administrative_division` VALUES ('620400', '甘肃省白银市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620401', '甘肃省白银市市辖区', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620402', '甘肃省白银市白银区', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620403', '甘肃省白银市平川区', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620421', '甘肃省靖远县', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620422', '甘肃省会宁县', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620423', '甘肃省景泰县', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620500', '甘肃省天水市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620501', '甘肃省天水市市辖区', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620502', '甘肃省天水市秦州区', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620503', '甘肃省天水市麦积区', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620521', '甘肃省清水县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620522', '甘肃省秦安县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620523', '甘肃省甘谷县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620524', '甘肃省武山县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620525', '甘肃省张家川回族自治县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620600', '甘肃省武威市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620601', '甘肃省武威市市辖区', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620602', '甘肃省武威市凉州区', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620621', '甘肃省民勤县', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620622', '甘肃省古浪县', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620623', '甘肃省天祝藏族自治县', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620700', '甘肃省张掖市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620701', '甘肃省张掖市市辖区', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620702', '甘肃省张掖市甘州区', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620721', '甘肃省肃南裕固族自治县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620722', '甘肃省民乐县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620723', '甘肃省临泽县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620724', '甘肃省高台县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620725', '甘肃省山丹县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620800', '甘肃省平凉市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620801', '甘肃省平凉市市辖区', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620802', '甘肃省平凉市崆峒区', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620821', '甘肃省泾川县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620822', '甘肃省灵台县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620823', '甘肃省崇信县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620824', '甘肃省华亭县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620825', '甘肃省庄浪县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620826', '甘肃省静宁县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620900', '甘肃省酒泉市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620901', '甘肃省酒泉市市辖区', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620902', '甘肃省酒泉市肃州区', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620921', '甘肃省金塔县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620922', '甘肃省瓜州县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620923', '甘肃省肃北蒙古族自治县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620924', '甘肃省阿克塞哈萨克族自治县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620981', '甘肃省玉门市', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620982', '甘肃省敦煌市', '620900'); +INSERT INTO `base_administrative_division` VALUES ('621000', '甘肃省庆阳市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('621001', '甘肃省庆阳市市辖区', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621002', '甘肃省庆阳市西峰区', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621021', '甘肃省庆城县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621022', '甘肃省环县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621023', '甘肃省华池县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621024', '甘肃省合水县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621025', '甘肃省正宁县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621026', '甘肃省宁县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621027', '甘肃省镇原县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621100', '甘肃省定西市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('621101', '甘肃省定西市市辖区', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621102', '甘肃省定西市安定区', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621121', '甘肃省通渭县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621122', '甘肃省陇西县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621123', '甘肃省渭源县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621124', '甘肃省临洮县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621125', '甘肃省漳县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621126', '甘肃省岷县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621200', '甘肃省陇南市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('621201', '甘肃省陇南市市辖区', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621202', '甘肃省陇南市武都区', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621221', '甘肃省成县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621222', '甘肃省文县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621223', '甘肃省宕昌县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621224', '甘肃省康县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621225', '甘肃省西和县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621226', '甘肃省礼县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621227', '甘肃省徽县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621228', '甘肃省两当县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('622900', '甘肃省临夏回族自治州', '620000'); +INSERT INTO `base_administrative_division` VALUES ('622901', '甘肃省临夏市', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622921', '甘肃省临夏县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622922', '甘肃省康乐县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622923', '甘肃省永靖县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622924', '甘肃省广河县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622925', '甘肃省和政县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622926', '甘肃省东乡族自治县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622927', '甘肃省积石山保安族东乡族撒拉族自治县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('623000', '甘肃省甘南藏族自治州', '620000'); +INSERT INTO `base_administrative_division` VALUES ('623001', '甘肃省合作市', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623021', '甘肃省临潭县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623022', '甘肃省卓尼县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623023', '甘肃省舟曲县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623024', '甘肃省迭部县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623025', '甘肃省玛曲县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623026', '甘肃省碌曲县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623027', '甘肃省夏河县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('630000', '青海省', '0'); +INSERT INTO `base_administrative_division` VALUES ('630100', '青海省西宁市', '630000'); +INSERT INTO `base_administrative_division` VALUES ('630101', '青海省西宁市市辖区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630102', '青海省西宁市城东区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630103', '青海省西宁市城中区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630104', '青海省西宁市城西区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630105', '青海省西宁市城北区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630121', '青海省大通回族土族自治县', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630122', '青海省湟中县', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630123', '青海省湟源县', '630100'); +INSERT INTO `base_administrative_division` VALUES ('632100', '青海省海东地区', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632121', '青海省平安县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632122', '青海省民和回族土族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632123', '青海省乐都县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632126', '青海省互助土族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632127', '青海省化隆回族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632128', '青海省循化撒拉族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632200', '青海省海北藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632221', '青海省门源回族自治县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632222', '青海省祁连县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632223', '青海省海晏县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632224', '青海省刚察县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632300', '青海省黄南藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632321', '青海省同仁县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632322', '青海省尖扎县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632323', '青海省泽库县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632324', '青海省河南蒙古族自治县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632500', '青海省海南藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632521', '青海省共和县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632522', '青海省同德县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632523', '青海省贵德县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632524', '青海省兴海县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632525', '青海省贵南县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632600', '青海省果洛藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632621', '青海省玛沁县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632622', '青海省班玛县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632623', '青海省甘德县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632624', '青海省达日县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632625', '青海省久治县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632626', '青海省玛多县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632700', '青海省玉树藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632721', '青海省玉树县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632722', '青海省杂多县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632723', '青海省称多县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632724', '青海省治多县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632725', '青海省囊谦县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632726', '青海省曲麻莱县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632800', '青海省海西蒙古族藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632801', '青海省格尔木市', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632802', '青海省德令哈市', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632821', '青海省乌兰县', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632822', '青海省都兰县', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632823', '青海省天峻县', '632800'); +INSERT INTO `base_administrative_division` VALUES ('640000', '宁夏回族自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('640100', '宁夏银川市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640101', '宁夏银川市市辖区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640104', '宁夏银川市兴庆区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640105', '宁夏银川市西夏区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640106', '宁夏银川市金凤区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640121', '宁夏永宁县', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640122', '宁夏贺兰县', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640181', '宁夏灵武市', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640200', '宁夏石嘴山市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640201', '宁夏石嘴山市市辖区', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640202', '宁夏石嘴山市大武口区', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640205', '宁夏石嘴山市惠农区', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640221', '宁夏平罗县', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640300', '宁夏吴忠市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640301', '宁夏吴忠市市辖区', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640302', '宁夏吴忠市利通区', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640323', '宁夏盐池县', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640324', '宁夏同心县', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640381', '宁夏青铜峡市', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640400', '宁夏固原市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640401', '宁夏固原市市辖区', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640402', '宁夏固原市原州区', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640422', '宁夏西吉县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640423', '宁夏隆德县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640424', '宁夏泾源县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640425', '宁夏彭阳县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640500', '宁夏中卫市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640501', '宁夏中卫市市辖区', '640500'); +INSERT INTO `base_administrative_division` VALUES ('640502', '宁夏中卫市沙坡头区', '640500'); +INSERT INTO `base_administrative_division` VALUES ('640521', '宁夏中宁县', '640500'); +INSERT INTO `base_administrative_division` VALUES ('640522', '宁夏海原县', '640500'); +INSERT INTO `base_administrative_division` VALUES ('650000', '新疆维吾尔自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('650100', '新疆乌鲁木齐市', '650000'); +INSERT INTO `base_administrative_division` VALUES ('650101', '新疆乌鲁木齐市市辖区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650102', '新疆乌鲁木齐市天山区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650103', '新疆乌鲁木齐市沙依巴克区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650104', '新疆乌鲁木齐市新市区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650105', '新疆乌鲁木齐市水磨沟区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650106', '新疆乌鲁木齐市头屯河区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650107', '新疆乌鲁木齐市达坂城区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650109', '新疆乌鲁木齐市米东区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650121', '新疆乌鲁木齐县', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650200', '新疆克拉玛依市', '650000'); +INSERT INTO `base_administrative_division` VALUES ('650201', '新疆克拉玛依市市辖区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650202', '新疆克拉玛依市独山子区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650203', '新疆克拉玛依市克拉玛依区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650204', '新疆克拉玛依市白碱滩区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650205', '新疆克拉玛依市乌尔禾区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('652100', '新疆克拉玛依市吐鲁番地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652101', '新疆吐鲁番市', '652100'); +INSERT INTO `base_administrative_division` VALUES ('652122', '新疆鄯善县', '652100'); +INSERT INTO `base_administrative_division` VALUES ('652123', '新疆托克逊县', '652100'); +INSERT INTO `base_administrative_division` VALUES ('652200', '新疆哈密地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652201', '新疆哈密市', '652200'); +INSERT INTO `base_administrative_division` VALUES ('652222', '新疆巴里坤哈萨克自治县', '652200'); +INSERT INTO `base_administrative_division` VALUES ('652223', '新疆伊吾县', '652200'); +INSERT INTO `base_administrative_division` VALUES ('652300', '新疆昌吉回族自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652301', '新疆昌吉市', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652302', '新疆阜康市', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652323', '新疆呼图壁县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652324', '新疆玛纳斯县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652325', '新疆奇台县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652327', '新疆吉木萨尔县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652328', '新疆木垒哈萨克自治县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652700', '新疆博尔塔拉蒙古自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652701', '新疆博乐市', '652700'); +INSERT INTO `base_administrative_division` VALUES ('652722', '新疆精河县', '652700'); +INSERT INTO `base_administrative_division` VALUES ('652723', '新疆温泉县', '652700'); +INSERT INTO `base_administrative_division` VALUES ('652800', '新疆巴音郭楞蒙古自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652801', '新疆库尔勒市', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652822', '新疆轮台县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652823', '新疆尉犁县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652824', '新疆若羌县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652825', '新疆且末县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652826', '新疆焉耆回族自治县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652827', '新疆和静县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652828', '新疆和硕县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652829', '新疆博湖县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652900', '新疆阿克苏地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652901', '新疆阿克苏市', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652922', '新疆温宿县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652923', '新疆库车县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652924', '新疆沙雅县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652925', '新疆新和县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652926', '新疆拜城县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652927', '新疆乌什县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652928', '新疆阿瓦提县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652929', '新疆柯坪县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('653000', '新疆克孜勒苏柯尔克孜自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('653001', '新疆阿图什市', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653022', '新疆阿克陶县', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653023', '新疆阿合奇县', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653024', '新疆乌恰县', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653100', '新疆喀什地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('653101', '新疆喀什市', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653121', '新疆疏附县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653122', '新疆疏勒县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653123', '新疆英吉沙县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653124', '新疆泽普县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653125', '新疆莎车县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653126', '新疆叶城县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653127', '新疆麦盖提县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653128', '新疆岳普湖县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653129', '新疆伽师县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653130', '新疆巴楚县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653131', '新疆塔什库尔干塔吉克自治县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653200', '新疆和田地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('653201', '新疆和田市', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653221', '新疆和田县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653222', '新疆墨玉县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653223', '新疆皮山县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653224', '新疆洛浦县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653225', '新疆策勒县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653226', '新疆于田县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653227', '新疆民丰县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('654000', '新疆伊犁哈萨克自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('654002', '新疆伊宁市', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654003', '新疆奎屯市', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654021', '新疆伊宁县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654022', '新疆察布查尔锡伯自治县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654023', '新疆霍城县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654024', '新疆巩留县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654025', '新疆新源县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654026', '新疆昭苏县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654027', '新疆特克斯县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654028', '新疆尼勒克县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654200', '新疆塔城地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('654201', '新疆塔城市', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654202', '新疆乌苏市', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654221', '新疆额敏县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654223', '新疆沙湾县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654224', '新疆托里县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654225', '新疆裕民县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654226', '新疆和布克赛尔蒙古自治县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654300', '新疆阿勒泰地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('654301', '新疆阿勒泰市', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654321', '新疆布尔津县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654322', '新疆富蕴县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654323', '新疆福海县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654324', '新疆哈巴河县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654325', '新疆青河县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654326', '新疆吉木乃县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('659000', '新疆省直辖县级行政区划', '650000'); +INSERT INTO `base_administrative_division` VALUES ('659001', '新疆石河子市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('659002', '新疆阿拉尔市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('659003', '新疆图木舒克市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('659004', '新疆五家渠市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('710000', '台湾省', '0'); +INSERT INTO `base_administrative_division` VALUES ('810000', '香港特别行政区', '0'); +INSERT INTO `base_administrative_division` VALUES ('820000', '澳门特别行政区', '0'); \ No newline at end of file diff --git a/src/main/resources/data_base_college.sql b/src/main/resources/data_base_college.sql new file mode 100644 index 0000000..44425f7 --- /dev/null +++ b/src/main/resources/data_base_college.sql @@ -0,0 +1,25 @@ +-- ---------------------------- +-- Records of base_college +-- ---------------------------- +INSERT INTO `base_college` VALUES ('01', '航空学院', '1'); +INSERT INTO `base_college` VALUES ('02', '航天学院', '2'); +INSERT INTO `base_college` VALUES ('03', '航海学院', '3'); +INSERT INTO `base_college` VALUES ('04', '材料学院', '4'); +INSERT INTO `base_college` VALUES ('05', '机电学院', '5'); +INSERT INTO `base_college` VALUES ('06', '力学与土木建筑学院', '6'); +INSERT INTO `base_college` VALUES ('07', '动力与能源学院', '7'); +INSERT INTO `base_college` VALUES ('08', '电子信息学院', '8'); +INSERT INTO `base_college` VALUES ('09', '自动化学院', '9'); +INSERT INTO `base_college` VALUES ('10', '计算机学院', '10'); +INSERT INTO `base_college` VALUES ('11', '理学院', '11'); +INSERT INTO `base_college` VALUES ('12', '管理学院', '12'); +INSERT INTO `base_college` VALUES ('13', '人文与经法学院', '13'); +INSERT INTO `base_college` VALUES ('14', '软件学院', '14'); +INSERT INTO `base_college` VALUES ('15', '生命学院', '15'); +INSERT INTO `base_college` VALUES ('16', '外国语学院', '16'); +INSERT INTO `base_college` VALUES ('17', '教育实验学院', '17'); +INSERT INTO `base_college` VALUES ('18', '西北工业大学伦敦玛丽女王大学工程学院', '18'); +INSERT INTO `base_college` VALUES ('19', '马克思主义学院', '19'); +INSERT INTO `base_college` VALUES ('20', '微电子学院', '20'); +INSERT INTO `base_college` VALUES ('21', '网络空间安全学院', '21'); +INSERT INTO `base_college` VALUES ('22', '民航学院', '22'); diff --git a/src/main/resources/data_base_ethnic.sql b/src/main/resources/data_base_ethnic.sql new file mode 100644 index 0000000..c8bcdaf --- /dev/null +++ b/src/main/resources/data_base_ethnic.sql @@ -0,0 +1,62 @@ +-- ---------------------------- +-- Records of base_ethnic +-- ---------------------------- +INSERT INTO `base_ethnic` VALUES ('00', '----'); +INSERT INTO `base_ethnic` VALUES ('01', '汉族'); +INSERT INTO `base_ethnic` VALUES ('02', '蒙古族'); +INSERT INTO `base_ethnic` VALUES ('03', '回族'); +INSERT INTO `base_ethnic` VALUES ('04', '藏族'); +INSERT INTO `base_ethnic` VALUES ('05', '维吾尔族'); +INSERT INTO `base_ethnic` VALUES ('06', '苗族'); +INSERT INTO `base_ethnic` VALUES ('07', '彝族'); +INSERT INTO `base_ethnic` VALUES ('08', '壮族'); +INSERT INTO `base_ethnic` VALUES ('09', '布依族'); +INSERT INTO `base_ethnic` VALUES ('10', '朝鲜族'); +INSERT INTO `base_ethnic` VALUES ('11', '满族'); +INSERT INTO `base_ethnic` VALUES ('12', '侗族'); +INSERT INTO `base_ethnic` VALUES ('13', '瑶族'); +INSERT INTO `base_ethnic` VALUES ('14', '白族'); +INSERT INTO `base_ethnic` VALUES ('15', '土家族'); +INSERT INTO `base_ethnic` VALUES ('16', '哈尼族'); +INSERT INTO `base_ethnic` VALUES ('17', '哈萨克族'); +INSERT INTO `base_ethnic` VALUES ('18', '傣族'); +INSERT INTO `base_ethnic` VALUES ('19', '黎族'); +INSERT INTO `base_ethnic` VALUES ('20', '傈傈族'); +INSERT INTO `base_ethnic` VALUES ('21', '佤族'); +INSERT INTO `base_ethnic` VALUES ('22', '畲族'); +INSERT INTO `base_ethnic` VALUES ('23', '高山族'); +INSERT INTO `base_ethnic` VALUES ('24', '拉祜族'); +INSERT INTO `base_ethnic` VALUES ('25', '水族'); +INSERT INTO `base_ethnic` VALUES ('26', '东乡族'); +INSERT INTO `base_ethnic` VALUES ('27', '纳西族'); +INSERT INTO `base_ethnic` VALUES ('28', '景颇族'); +INSERT INTO `base_ethnic` VALUES ('29', '柯尔克孜族'); +INSERT INTO `base_ethnic` VALUES ('30', '土族'); +INSERT INTO `base_ethnic` VALUES ('31', '达斡尔族'); +INSERT INTO `base_ethnic` VALUES ('32', '仫佬族'); +INSERT INTO `base_ethnic` VALUES ('33', '羌族'); +INSERT INTO `base_ethnic` VALUES ('34', '布朗族'); +INSERT INTO `base_ethnic` VALUES ('35', '撒拉族'); +INSERT INTO `base_ethnic` VALUES ('36', '毛难族'); +INSERT INTO `base_ethnic` VALUES ('37', '仡佬族'); +INSERT INTO `base_ethnic` VALUES ('38', '锡伯族'); +INSERT INTO `base_ethnic` VALUES ('39', '阿昌族'); +INSERT INTO `base_ethnic` VALUES ('40', '普米族'); +INSERT INTO `base_ethnic` VALUES ('41', '塔吉克族'); +INSERT INTO `base_ethnic` VALUES ('42', '怒族'); +INSERT INTO `base_ethnic` VALUES ('43', '乌孜别克族'); +INSERT INTO `base_ethnic` VALUES ('44', '俄罗斯族'); +INSERT INTO `base_ethnic` VALUES ('45', '鄂温克族'); +INSERT INTO `base_ethnic` VALUES ('46', '崩龙族'); +INSERT INTO `base_ethnic` VALUES ('47', '保安族'); +INSERT INTO `base_ethnic` VALUES ('48', '裕固族'); +INSERT INTO `base_ethnic` VALUES ('49', '京族'); +INSERT INTO `base_ethnic` VALUES ('50', '塔塔尔族'); +INSERT INTO `base_ethnic` VALUES ('51', '独龙族'); +INSERT INTO `base_ethnic` VALUES ('52', '鄂伦春族'); +INSERT INTO `base_ethnic` VALUES ('53', '赫哲族'); +INSERT INTO `base_ethnic` VALUES ('54', '门巴族'); +INSERT INTO `base_ethnic` VALUES ('55', '珞巴族'); +INSERT INTO `base_ethnic` VALUES ('56', '基诺族'); +INSERT INTO `base_ethnic` VALUES ('97', '其他'); +INSERT INTO `base_ethnic` VALUES ('98', '外国血统'); \ No newline at end of file diff --git a/src/main/resources/data_base_major.sql b/src/main/resources/data_base_major.sql new file mode 100644 index 0000000..3e7bb67 --- /dev/null +++ b/src/main/resources/data_base_major.sql @@ -0,0 +1,832 @@ +-- ---------------------------- +-- Records of base_major +-- ---------------------------- +INSERT INTO `base_major` VALUES ('010100', '哲学类'); +INSERT INTO `base_major` VALUES ('010101', '哲学'); +INSERT INTO `base_major` VALUES ('010102', '逻辑学'); +INSERT INTO `base_major` VALUES ('010103', '宗教学'); +INSERT INTO `base_major` VALUES ('010104', '伦理学'); +INSERT INTO `base_major` VALUES ('01010J', '哲学基地班'); +INSERT INTO `base_major` VALUES ('01SY00', '人文科学试验班类'); +INSERT INTO `base_major` VALUES ('01SY01', '人文科学试验班'); +INSERT INTO `base_major` VALUES ('020100', '经济学类'); +INSERT INTO `base_major` VALUES ('020101', '经济学'); +INSERT INTO `base_major` VALUES ('020102', '国际经济与贸易'); +INSERT INTO `base_major` VALUES ('020103', '财政学'); +INSERT INTO `base_major` VALUES ('020104', '金融学'); +INSERT INTO `base_major` VALUES ('020105', '国民经济管理'); +INSERT INTO `base_major` VALUES ('020106', '贸易经济'); +INSERT INTO `base_major` VALUES ('020107', '保险'); +INSERT INTO `base_major` VALUES ('020108', '环境经济'); +INSERT INTO `base_major` VALUES ('020109', '金融工程'); +INSERT INTO `base_major` VALUES ('02010J', '经济学基地班'); +INSERT INTO `base_major` VALUES ('020110', '税务'); +INSERT INTO `base_major` VALUES ('020111', '信用管理'); +INSERT INTO `base_major` VALUES ('020112', '网络经济学'); +INSERT INTO `base_major` VALUES ('020113', '体育经济'); +INSERT INTO `base_major` VALUES ('020114', '投资学'); +INSERT INTO `base_major` VALUES ('020115', '环境资源与发展经济学'); +INSERT INTO `base_major` VALUES ('020116', '海洋经济学'); +INSERT INTO `base_major` VALUES ('020117', '国际文化贸易'); +INSERT INTO `base_major` VALUES ('020119', '金融数学'); +INSERT INTO `base_major` VALUES ('020120', '经济与金融'); +INSERT INTO `base_major` VALUES ('020121', '能源经济'); +INSERT INTO `base_major` VALUES ('020303', '保险学'); +INSERT INTO `base_major` VALUES ('030100', '法学类'); +INSERT INTO `base_major` VALUES ('030101', '法学'); +INSERT INTO `base_major` VALUES ('030102', '知识产权法'); +INSERT INTO `base_major` VALUES ('030103', '知识产权'); +INSERT INTO `base_major` VALUES ('030120', '监狱学'); +INSERT INTO `base_major` VALUES ('030200', '马克思主义理论类'); +INSERT INTO `base_major` VALUES ('030201', '科学社会主义与国际共产主义运动'); +INSERT INTO `base_major` VALUES ('030202', '中国革命史与中国共产党党史'); +INSERT INTO `base_major` VALUES ('030300', '社会学类'); +INSERT INTO `base_major` VALUES ('030301', '社会学'); +INSERT INTO `base_major` VALUES ('030302', '社会工作'); +INSERT INTO `base_major` VALUES ('030303', '家政学'); +INSERT INTO `base_major` VALUES ('030304', '人类学'); +INSERT INTO `base_major` VALUES ('030305', '女性学'); +INSERT INTO `base_major` VALUES ('030400', '政治学类'); +INSERT INTO `base_major` VALUES ('030401', '政治学与行政学'); +INSERT INTO `base_major` VALUES ('030402', '国际政治'); +INSERT INTO `base_major` VALUES ('030403', '外交学'); +INSERT INTO `base_major` VALUES ('030404', '思想政治教育'); +INSERT INTO `base_major` VALUES ('030405', '国际文化交流'); +INSERT INTO `base_major` VALUES ('030406', '国际政治经济学'); +INSERT INTO `base_major` VALUES ('030407', '国际事务'); +INSERT INTO `base_major` VALUES ('030408', '国际事务与国际关系'); +INSERT INTO `base_major` VALUES ('030409', '欧洲事务与欧洲关系'); +INSERT INTO `base_major` VALUES ('030500', '公安学类'); +INSERT INTO `base_major` VALUES ('030501', '治安学'); +INSERT INTO `base_major` VALUES ('030502', '侦查学'); +INSERT INTO `base_major` VALUES ('030503', '边防管理'); +INSERT INTO `base_major` VALUES ('030504', '火灾勘查'); +INSERT INTO `base_major` VALUES ('030505', '禁毒学'); +INSERT INTO `base_major` VALUES ('030506', '警犬技术'); +INSERT INTO `base_major` VALUES ('030507', '经济犯罪侦查'); +INSERT INTO `base_major` VALUES ('030508', '边防指挥'); +INSERT INTO `base_major` VALUES ('030509', '消防指挥'); +INSERT INTO `base_major` VALUES ('030510', '警卫学'); +INSERT INTO `base_major` VALUES ('030511', '公安情报学'); +INSERT INTO `base_major` VALUES ('030512', '犯罪学'); +INSERT INTO `base_major` VALUES ('030513', '公安管理学'); +INSERT INTO `base_major` VALUES ('030514', '涉外警务'); +INSERT INTO `base_major` VALUES ('030515', '国内安全保卫'); +INSERT INTO `base_major` VALUES ('030516', '警务指挥与战术'); +INSERT INTO `base_major` VALUES ('03SY01', '社会科学试验班'); +INSERT INTO `base_major` VALUES ('040100', '教育学类'); +INSERT INTO `base_major` VALUES ('040101', '教育学'); +INSERT INTO `base_major` VALUES ('040102', '学前教育'); +INSERT INTO `base_major` VALUES ('040103', '特殊教育'); +INSERT INTO `base_major` VALUES ('040104', '教育技术学'); +INSERT INTO `base_major` VALUES ('040105', '小学教育'); +INSERT INTO `base_major` VALUES ('040106', '艺术教育'); +INSERT INTO `base_major` VALUES ('040107', '人文教育'); +INSERT INTO `base_major` VALUES ('040108', '科学教育'); +INSERT INTO `base_major` VALUES ('040109', '言语听觉科学'); +INSERT INTO `base_major` VALUES ('040110', '华文教育'); +INSERT INTO `base_major` VALUES ('040200', '体育学类'); +INSERT INTO `base_major` VALUES ('040201', '体育教育'); +INSERT INTO `base_major` VALUES ('040202', '运动训练'); +INSERT INTO `base_major` VALUES ('040203', '社会体育'); +INSERT INTO `base_major` VALUES ('040204', '运动人体科学'); +INSERT INTO `base_major` VALUES ('040205', '民族传统体育'); +INSERT INTO `base_major` VALUES ('040206', '运动康复与健康'); +INSERT INTO `base_major` VALUES ('040207', '休闲体育'); +INSERT INTO `base_major` VALUES ('040300', '职业技术教育类'); +INSERT INTO `base_major` VALUES ('040301', '农艺教育'); +INSERT INTO `base_major` VALUES ('040302', '园艺教育'); +INSERT INTO `base_major` VALUES ('040303', '特用作物教育'); +INSERT INTO `base_major` VALUES ('040304', '林木生产教育'); +INSERT INTO `base_major` VALUES ('040305', '特用动物教育'); +INSERT INTO `base_major` VALUES ('040306', '畜禽生产教育'); +INSERT INTO `base_major` VALUES ('040307', '水产养殖教育'); +INSERT INTO `base_major` VALUES ('040308', '应用生物教育'); +INSERT INTO `base_major` VALUES ('040309', '农业机械教育'); +INSERT INTO `base_major` VALUES ('040310', '农业建筑与环境控制教育'); +INSERT INTO `base_major` VALUES ('040311', '农产品储运与加工教育'); +INSERT INTO `base_major` VALUES ('040312', '农业经营管理教育'); +INSERT INTO `base_major` VALUES ('040313', '机械制造工艺教育'); +INSERT INTO `base_major` VALUES ('040314', '机械维修及检测技术教育'); +INSERT INTO `base_major` VALUES ('040315', '机电技术教育'); +INSERT INTO `base_major` VALUES ('040316', '电气技术教育'); +INSERT INTO `base_major` VALUES ('040317', '汽车维修工程教育'); +INSERT INTO `base_major` VALUES ('040318', '应用电子技术教育'); +INSERT INTO `base_major` VALUES ('040319', '制浆造纸工艺教育'); +INSERT INTO `base_major` VALUES ('040320', '印刷工艺教育'); +INSERT INTO `base_major` VALUES ('040321', '橡塑制品成型工艺教育'); +INSERT INTO `base_major` VALUES ('040322', '食品工艺教育'); +INSERT INTO `base_major` VALUES ('040323', '纺织工艺教育'); +INSERT INTO `base_major` VALUES ('040324', '染整工艺教育'); +INSERT INTO `base_major` VALUES ('040325', '化工工艺教育'); +INSERT INTO `base_major` VALUES ('040326', '化工分析与检测技术教育'); +INSERT INTO `base_major` VALUES ('040327', '建筑材料工程教育'); +INSERT INTO `base_major` VALUES ('040328', '建筑工程教育'); +INSERT INTO `base_major` VALUES ('040329', '服装设计与工艺教育'); +INSERT INTO `base_major` VALUES ('040330', '装潢设计与工艺教育'); +INSERT INTO `base_major` VALUES ('040331', '旅游管理与服务教育'); +INSERT INTO `base_major` VALUES ('040332', '食品营养与检验教育'); +INSERT INTO `base_major` VALUES ('040333', '烹饪与营养教育'); +INSERT INTO `base_major` VALUES ('040334', '财务会计教育'); +INSERT INTO `base_major` VALUES ('040335', '文秘教育'); +INSERT INTO `base_major` VALUES ('040336', '市场营销教育'); +INSERT INTO `base_major` VALUES ('040337', '职业技术教育管理'); +INSERT INTO `base_major` VALUES ('050100', '中国语言文学类'); +INSERT INTO `base_major` VALUES ('050101', '汉语言文学'); +INSERT INTO `base_major` VALUES ('050102', '汉语言'); +INSERT INTO `base_major` VALUES ('050103', '对外汉语'); +INSERT INTO `base_major` VALUES ('050104', '中国少数民族语言文学'); +INSERT INTO `base_major` VALUES ('050105', '古典文献'); +INSERT INTO `base_major` VALUES ('050106', '中国语言文化'); +INSERT INTO `base_major` VALUES ('050107', '应用语言学'); +INSERT INTO `base_major` VALUES ('05010J', '中国语言文学基地班'); +INSERT INTO `base_major` VALUES ('050200', '外国语言文学类'); +INSERT INTO `base_major` VALUES ('050201', '英语'); +INSERT INTO `base_major` VALUES ('050202', '俄语'); +INSERT INTO `base_major` VALUES ('050203', '德语'); +INSERT INTO `base_major` VALUES ('050204', '法语'); +INSERT INTO `base_major` VALUES ('050205', '西班牙语'); +INSERT INTO `base_major` VALUES ('050206', '阿拉伯语'); +INSERT INTO `base_major` VALUES ('050207', '日语'); +INSERT INTO `base_major` VALUES ('050208', '波斯语'); +INSERT INTO `base_major` VALUES ('050209', '朝鲜语'); +INSERT INTO `base_major` VALUES ('050210', '菲律宾语'); +INSERT INTO `base_major` VALUES ('050211', '梵语巴利语'); +INSERT INTO `base_major` VALUES ('050212', '印度尼西亚语'); +INSERT INTO `base_major` VALUES ('050213', '印地语'); +INSERT INTO `base_major` VALUES ('050214', '柬埔寨语'); +INSERT INTO `base_major` VALUES ('050215', '老挝语'); +INSERT INTO `base_major` VALUES ('050216', '缅甸语'); +INSERT INTO `base_major` VALUES ('050217', '马来语'); +INSERT INTO `base_major` VALUES ('050218', '蒙古语'); +INSERT INTO `base_major` VALUES ('050219', '僧加罗语'); +INSERT INTO `base_major` VALUES ('050220', '泰语'); +INSERT INTO `base_major` VALUES ('050221', '乌尔都语'); +INSERT INTO `base_major` VALUES ('050222', '希伯莱语'); +INSERT INTO `base_major` VALUES ('050223', '越南语'); +INSERT INTO `base_major` VALUES ('050224', '豪萨语'); +INSERT INTO `base_major` VALUES ('050225', '斯瓦希里语'); +INSERT INTO `base_major` VALUES ('050226', '阿尔巴尼亚语'); +INSERT INTO `base_major` VALUES ('050227', '保加利亚语'); +INSERT INTO `base_major` VALUES ('050228', '波兰语'); +INSERT INTO `base_major` VALUES ('050229', '捷克语'); +INSERT INTO `base_major` VALUES ('050230', '罗马尼亚语'); +INSERT INTO `base_major` VALUES ('050231', '葡萄牙语'); +INSERT INTO `base_major` VALUES ('050232', '瑞典语'); +INSERT INTO `base_major` VALUES ('050233', '塞尔维亚—克罗地亚语'); +INSERT INTO `base_major` VALUES ('050234', '土耳其语'); +INSERT INTO `base_major` VALUES ('050235', '希腊语'); +INSERT INTO `base_major` VALUES ('050236', '匈牙利语'); +INSERT INTO `base_major` VALUES ('050237', '意大利语'); +INSERT INTO `base_major` VALUES ('050238', '捷克语—斯洛伐克语'); +INSERT INTO `base_major` VALUES ('050239', '泰米尔语'); +INSERT INTO `base_major` VALUES ('050240', '普什图语'); +INSERT INTO `base_major` VALUES ('050241', '世界语'); +INSERT INTO `base_major` VALUES ('050242', '孟加拉语'); +INSERT INTO `base_major` VALUES ('050243', '尼泊尔语'); +INSERT INTO `base_major` VALUES ('050244', '塞尔维亚语—克罗地亚语'); +INSERT INTO `base_major` VALUES ('050245', '荷兰语'); +INSERT INTO `base_major` VALUES ('050246', '芬兰语'); +INSERT INTO `base_major` VALUES ('050247', '乌克兰语'); +INSERT INTO `base_major` VALUES ('050248', '韩国语'); +INSERT INTO `base_major` VALUES ('050249', '商务英语'); +INSERT INTO `base_major` VALUES ('050250', '塞尔维亚语'); +INSERT INTO `base_major` VALUES ('050251', '克罗地亚语'); +INSERT INTO `base_major` VALUES ('050252', '挪威语'); +INSERT INTO `base_major` VALUES ('050253', '丹麦语'); +INSERT INTO `base_major` VALUES ('050254', '冰岛语'); +INSERT INTO `base_major` VALUES ('050255', '翻译'); +INSERT INTO `base_major` VALUES ('050300', '新闻传播学类'); +INSERT INTO `base_major` VALUES ('050301', '新闻学'); +INSERT INTO `base_major` VALUES ('050302', '广播电视新闻学'); +INSERT INTO `base_major` VALUES ('050303', '广告学'); +INSERT INTO `base_major` VALUES ('050304', '编辑出版学'); +INSERT INTO `base_major` VALUES ('050305', '传播学'); +INSERT INTO `base_major` VALUES ('050306', '媒体创意'); +INSERT INTO `base_major` VALUES ('050307', '新媒体与信息网络'); +INSERT INTO `base_major` VALUES ('050308', '数字出版'); +INSERT INTO `base_major` VALUES ('050400', '艺术类'); +INSERT INTO `base_major` VALUES ('050401', '音乐学'); +INSERT INTO `base_major` VALUES ('050402', '作曲与作曲技术理论'); +INSERT INTO `base_major` VALUES ('050403', '音乐表演'); +INSERT INTO `base_major` VALUES ('050404', '绘画'); +INSERT INTO `base_major` VALUES ('050405', '雕塑'); +INSERT INTO `base_major` VALUES ('050406', '美术学'); +INSERT INTO `base_major` VALUES ('050407', '艺术设计学'); +INSERT INTO `base_major` VALUES ('050408', '艺术设计'); +INSERT INTO `base_major` VALUES ('050409', '舞蹈学'); +INSERT INTO `base_major` VALUES ('050410', '舞蹈编导'); +INSERT INTO `base_major` VALUES ('050411', '戏剧学'); +INSERT INTO `base_major` VALUES ('050412', '表演'); +INSERT INTO `base_major` VALUES ('050413', '导演'); +INSERT INTO `base_major` VALUES ('050414', '戏剧影视文学'); +INSERT INTO `base_major` VALUES ('050415', '戏剧影视美术设计'); +INSERT INTO `base_major` VALUES ('050416', '摄影'); +INSERT INTO `base_major` VALUES ('050417', '录音艺术'); +INSERT INTO `base_major` VALUES ('050418', '动画'); +INSERT INTO `base_major` VALUES ('050419', '播音与主持艺术'); +INSERT INTO `base_major` VALUES ('050420', '广播电视编导'); +INSERT INTO `base_major` VALUES ('050422', '艺术学'); +INSERT INTO `base_major` VALUES ('050423', '影视学'); +INSERT INTO `base_major` VALUES ('050424', '广播影视编导'); +INSERT INTO `base_major` VALUES ('050425', '书法学'); +INSERT INTO `base_major` VALUES ('050426', '照明艺术'); +INSERT INTO `base_major` VALUES ('050427', '会展艺术与技术'); +INSERT INTO `base_major` VALUES ('050428', '音乐科技与艺术'); +INSERT INTO `base_major` VALUES ('050429', '中国画'); +INSERT INTO `base_major` VALUES ('050430', '公共艺术'); +INSERT INTO `base_major` VALUES ('050431', '数字游戏设计'); +INSERT INTO `base_major` VALUES ('050432', '数字电影技术'); +INSERT INTO `base_major` VALUES ('05SY00', '文科试验班类'); +INSERT INTO `base_major` VALUES ('060100', '历史学类'); +INSERT INTO `base_major` VALUES ('060101', '历史学'); +INSERT INTO `base_major` VALUES ('060102', '世界历史'); +INSERT INTO `base_major` VALUES ('060103', '考古学'); +INSERT INTO `base_major` VALUES ('060104', '博物馆学'); +INSERT INTO `base_major` VALUES ('060105', '民族学'); +INSERT INTO `base_major` VALUES ('060106', '文物保护技术'); +INSERT INTO `base_major` VALUES ('06010J', '历史学基地班'); +INSERT INTO `base_major` VALUES ('070100', '数学类'); +INSERT INTO `base_major` VALUES ('070101', '数学与应用数学'); +INSERT INTO `base_major` VALUES ('070102', '信息与计算科学'); +INSERT INTO `base_major` VALUES ('070103', '数理基础科学'); +INSERT INTO `base_major` VALUES ('07010J', '数学基地班'); +INSERT INTO `base_major` VALUES ('070200', '物理学类'); +INSERT INTO `base_major` VALUES ('070201', '物理学'); +INSERT INTO `base_major` VALUES ('070202', '应用物理学'); +INSERT INTO `base_major` VALUES ('070203', '声学'); +INSERT INTO `base_major` VALUES ('070204', '核物理'); +INSERT INTO `base_major` VALUES ('07020J', '物理学基地班'); +INSERT INTO `base_major` VALUES ('070300', '化学类'); +INSERT INTO `base_major` VALUES ('070301', '化学'); +INSERT INTO `base_major` VALUES ('070302', '应用化学'); +INSERT INTO `base_major` VALUES ('070303', '化学生物学'); +INSERT INTO `base_major` VALUES ('070304', '分子科学与工程'); +INSERT INTO `base_major` VALUES ('07030J', '化学基地班'); +INSERT INTO `base_major` VALUES ('070400', '生物科学类'); +INSERT INTO `base_major` VALUES ('070401', '生物科学'); +INSERT INTO `base_major` VALUES ('070402', '生物技术'); +INSERT INTO `base_major` VALUES ('070403', '生物信息学'); +INSERT INTO `base_major` VALUES ('070404', '生物信息技术'); +INSERT INTO `base_major` VALUES ('070405', '生物科学与生物技术'); +INSERT INTO `base_major` VALUES ('070406', '动植物检疫'); +INSERT INTO `base_major` VALUES ('070407', '生物化学与分子生物学'); +INSERT INTO `base_major` VALUES ('070408', '医学信息学'); +INSERT INTO `base_major` VALUES ('070409', '植物生物技术'); +INSERT INTO `base_major` VALUES ('07040J', '生物学基地班'); +INSERT INTO `base_major` VALUES ('070410', '动物生物技术'); +INSERT INTO `base_major` VALUES ('070411', '生物资源科学'); +INSERT INTO `base_major` VALUES ('070412', '生物安全'); +INSERT INTO `base_major` VALUES ('070413', '生物医学英语'); +INSERT INTO `base_major` VALUES ('07041J', '生命科学与技术基地班'); +INSERT INTO `base_major` VALUES ('070500', '天文学类'); +INSERT INTO `base_major` VALUES ('070501', '天文学'); +INSERT INTO `base_major` VALUES ('070600', '地质学类'); +INSERT INTO `base_major` VALUES ('070601', '地质学'); +INSERT INTO `base_major` VALUES ('070602', '地球化学'); +INSERT INTO `base_major` VALUES ('07060J', '地质学基地班'); +INSERT INTO `base_major` VALUES ('070700', '地理科学类'); +INSERT INTO `base_major` VALUES ('070701', '地理科学'); +INSERT INTO `base_major` VALUES ('070702', '资源环境与城乡规划管理'); +INSERT INTO `base_major` VALUES ('070703', '地理信息系统'); +INSERT INTO `base_major` VALUES ('070704', '地球信息科学与技术'); +INSERT INTO `base_major` VALUES ('07070J', '地理学基地班'); +INSERT INTO `base_major` VALUES ('070800', '地球物理学类'); +INSERT INTO `base_major` VALUES ('070801', '地球物理学'); +INSERT INTO `base_major` VALUES ('070802', '地球与空间科学'); +INSERT INTO `base_major` VALUES ('070803', '空间科学与技术'); +INSERT INTO `base_major` VALUES ('070900', '大气科学类'); +INSERT INTO `base_major` VALUES ('070901', '大气科学'); +INSERT INTO `base_major` VALUES ('070902', '应用气象学'); +INSERT INTO `base_major` VALUES ('071000', '海洋科学类'); +INSERT INTO `base_major` VALUES ('071001', '海洋科学'); +INSERT INTO `base_major` VALUES ('071002', '海洋技术'); +INSERT INTO `base_major` VALUES ('071003', '海洋管理'); +INSERT INTO `base_major` VALUES ('071004', '军事海洋学'); +INSERT INTO `base_major` VALUES ('071005', '海洋生物资源与环境'); +INSERT INTO `base_major` VALUES ('071100', '力学类'); +INSERT INTO `base_major` VALUES ('071101', '理论与应用力学'); +INSERT INTO `base_major` VALUES ('071200', '电子信息科学类'); +INSERT INTO `base_major` VALUES ('071201', '电子信息科学与技术'); +INSERT INTO `base_major` VALUES ('071202', '微电子学'); +INSERT INTO `base_major` VALUES ('071203', '光信息科学与技术'); +INSERT INTO `base_major` VALUES ('071204', '科技防卫'); +INSERT INTO `base_major` VALUES ('071205', '信息安全'); +INSERT INTO `base_major` VALUES ('071206', '信息科学技术'); +INSERT INTO `base_major` VALUES ('071207', '光电子技术科学'); +INSERT INTO `base_major` VALUES ('071300', '材料科学类'); +INSERT INTO `base_major` VALUES ('071301', '材料物理'); +INSERT INTO `base_major` VALUES ('071302', '材料化学'); +INSERT INTO `base_major` VALUES ('071400', '环境科学类'); +INSERT INTO `base_major` VALUES ('071401', '环境科学'); +INSERT INTO `base_major` VALUES ('071402', '生态学'); +INSERT INTO `base_major` VALUES ('071403', '资源环境科学'); +INSERT INTO `base_major` VALUES ('071404', '地球环境科学'); +INSERT INTO `base_major` VALUES ('071500', '心理学类'); +INSERT INTO `base_major` VALUES ('071501', '心理学'); +INSERT INTO `base_major` VALUES ('071502', '应用心理学'); +INSERT INTO `base_major` VALUES ('071600', '统计学类'); +INSERT INTO `base_major` VALUES ('071601', '统计学'); +INSERT INTO `base_major` VALUES ('071700', '系统科学类'); +INSERT INTO `base_major` VALUES ('071701', '系统理论'); +INSERT INTO `base_major` VALUES ('071702', '系统科学与工程'); +INSERT INTO `base_major` VALUES ('07SY00', '理科试验班类'); +INSERT INTO `base_major` VALUES ('07SY01', '理科试验班'); +INSERT INTO `base_major` VALUES ('07SY02', '自然科学试验班'); +INSERT INTO `base_major` VALUES ('080100', '地矿类'); +INSERT INTO `base_major` VALUES ('080101', '采矿工程'); +INSERT INTO `base_major` VALUES ('080102', '石油工程'); +INSERT INTO `base_major` VALUES ('080103', '矿物加工工程'); +INSERT INTO `base_major` VALUES ('080104', '勘查技术与工程'); +INSERT INTO `base_major` VALUES ('080105', '资源勘查工程'); +INSERT INTO `base_major` VALUES ('080106', '地质工程'); +INSERT INTO `base_major` VALUES ('080107', '矿物资源工程'); +INSERT INTO `base_major` VALUES ('080108', '煤及煤层气工程'); +INSERT INTO `base_major` VALUES ('080109', '地下水科学与工程'); +INSERT INTO `base_major` VALUES ('080110', '能源与资源工程'); +INSERT INTO `base_major` VALUES ('080111', '海洋油气工程'); +INSERT INTO `base_major` VALUES ('080200', '材料类'); +INSERT INTO `base_major` VALUES ('080201', '冶金工程'); +INSERT INTO `base_major` VALUES ('080202', '金属材料工程'); +INSERT INTO `base_major` VALUES ('080203', '无机非金属材料工程'); +INSERT INTO `base_major` VALUES ('080204', '高分子材料与工程'); +INSERT INTO `base_major` VALUES ('080205', '材料科学与工程'); +INSERT INTO `base_major` VALUES ('080206', '复合材料与工程'); +INSERT INTO `base_major` VALUES ('080207', '焊接技术与工程'); +INSERT INTO `base_major` VALUES ('080208', '宝石及材料工艺学'); +INSERT INTO `base_major` VALUES ('080209', '粉体材料科学与工程'); +INSERT INTO `base_major` VALUES ('080210', '再生资源科学与技术'); +INSERT INTO `base_major` VALUES ('080211', '稀土工程'); +INSERT INTO `base_major` VALUES ('080212', '高分子材料加工工程'); +INSERT INTO `base_major` VALUES ('080213', '生物功能材料'); +INSERT INTO `base_major` VALUES ('080214', '电子封装技术'); +INSERT INTO `base_major` VALUES ('080215', '功能材料'); +INSERT INTO `base_major` VALUES ('080216', '纳米材料与技术'); +INSERT INTO `base_major` VALUES ('080217', '新能源材料与器件'); +INSERT INTO `base_major` VALUES ('080218', '资源循环科学与工程'); +INSERT INTO `base_major` VALUES ('080300', '机械类'); +INSERT INTO `base_major` VALUES ('080301', '机械设计制造及其自动化'); +INSERT INTO `base_major` VALUES ('080302', '材料成型及控制工程'); +INSERT INTO `base_major` VALUES ('080303', '工业设计'); +INSERT INTO `base_major` VALUES ('080304', '过程装备与控制工程'); +INSERT INTO `base_major` VALUES ('080305', '机械工程及自动化'); +INSERT INTO `base_major` VALUES ('080306', '车辆工程'); +INSERT INTO `base_major` VALUES ('080307', '机械电子工程'); +INSERT INTO `base_major` VALUES ('080308', '汽车服务工程'); +INSERT INTO `base_major` VALUES ('080309', '制造自动化与测控技术'); +INSERT INTO `base_major` VALUES ('080310', '微机电系统工程'); +INSERT INTO `base_major` VALUES ('080311', '制造工程'); +INSERT INTO `base_major` VALUES ('080312', '体育装备工程'); +INSERT INTO `base_major` VALUES ('080313', '工程机械'); +INSERT INTO `base_major` VALUES ('080400', '仪器仪表类'); +INSERT INTO `base_major` VALUES ('080401', '测控技术与仪器'); +INSERT INTO `base_major` VALUES ('080402', '电子信息技术及仪器'); +INSERT INTO `base_major` VALUES ('080500', '能源动力类'); +INSERT INTO `base_major` VALUES ('080501', '热能与动力工程'); +INSERT INTO `base_major` VALUES ('080502', '核工程与核技术'); +INSERT INTO `base_major` VALUES ('080503', '工程物理'); +INSERT INTO `base_major` VALUES ('080504', '能源与环境系统工程'); +INSERT INTO `base_major` VALUES ('080505', '能源工程及自动化'); +INSERT INTO `base_major` VALUES ('080506', '能源动力系统及自动化'); +INSERT INTO `base_major` VALUES ('080507', '风能与动力工程'); +INSERT INTO `base_major` VALUES ('080508', '核技术'); +INSERT INTO `base_major` VALUES ('080509', '辐射防护与环境工程'); +INSERT INTO `base_major` VALUES ('080510', '核化工与核燃料工程'); +INSERT INTO `base_major` VALUES ('080511', '核反应堆工程'); +INSERT INTO `base_major` VALUES ('080512', '新能源科学与工程'); +INSERT INTO `base_major` VALUES ('080600', '电气信息类'); +INSERT INTO `base_major` VALUES ('080601', '电气工程及其自动化'); +INSERT INTO `base_major` VALUES ('080602', '自动化'); +INSERT INTO `base_major` VALUES ('080603', '电子信息工程'); +INSERT INTO `base_major` VALUES ('080604', '通信工程'); +INSERT INTO `base_major` VALUES ('080605', '计算机科学与技术'); +INSERT INTO `base_major` VALUES ('080606', '电子科学与技术'); +INSERT INTO `base_major` VALUES ('080607', '生物医学工程'); +INSERT INTO `base_major` VALUES ('080608', '电气工程与自动化'); +INSERT INTO `base_major` VALUES ('080609', '信息工程'); +INSERT INTO `base_major` VALUES ('080610', '光源与照明'); +INSERT INTO `base_major` VALUES ('080611', '软件工程'); +INSERT INTO `base_major` VALUES ('080612', '影视艺术技术'); +INSERT INTO `base_major` VALUES ('080613', '网络工程'); +INSERT INTO `base_major` VALUES ('080614', '信息显示与光电技术'); +INSERT INTO `base_major` VALUES ('080615', '集成电路设计与集成系统'); +INSERT INTO `base_major` VALUES ('080616', '光电信息工程'); +INSERT INTO `base_major` VALUES ('080617', '广播电视工程'); +INSERT INTO `base_major` VALUES ('080618', '电气信息工程'); +INSERT INTO `base_major` VALUES ('080619', '计算机软件'); +INSERT INTO `base_major` VALUES ('080620', '电力工程与管理'); +INSERT INTO `base_major` VALUES ('080621', '微电子制造工程'); +INSERT INTO `base_major` VALUES ('080622', '假肢矫形工程'); +INSERT INTO `base_major` VALUES ('080623', '数字媒体艺术'); +INSERT INTO `base_major` VALUES ('080624', '医学信息工程'); +INSERT INTO `base_major` VALUES ('080625', '信息物理工程'); +INSERT INTO `base_major` VALUES ('080626', '医疗器械工程'); +INSERT INTO `base_major` VALUES ('080627', '智能科学与技术'); +INSERT INTO `base_major` VALUES ('080628', '数字媒体技术'); +INSERT INTO `base_major` VALUES ('080629', '医学影像工程'); +INSERT INTO `base_major` VALUES ('080630', '真空电子技术'); +INSERT INTO `base_major` VALUES ('080631', '电磁场与无线技术'); +INSERT INTO `base_major` VALUES ('080632', '电信工程及管理'); +INSERT INTO `base_major` VALUES ('080633', '电气工程与智能控制'); +INSERT INTO `base_major` VALUES ('080634', '信息与通信工程'); +INSERT INTO `base_major` VALUES ('080635', '电波传播与天线'); +INSERT INTO `base_major` VALUES ('080636', '船舶电子电气工程'); +INSERT INTO `base_major` VALUES ('080637', '电子与计算机工程'); +INSERT INTO `base_major` VALUES ('080638', '仿真科学与技术'); +INSERT INTO `base_major` VALUES ('080639', '电机电器智能化'); +INSERT INTO `base_major` VALUES ('080640', '物联网工程'); +INSERT INTO `base_major` VALUES ('080641', '传感网技术'); +INSERT INTO `base_major` VALUES ('080643', '光电子材料与器件'); +INSERT INTO `base_major` VALUES ('080644', '水声工程'); +INSERT INTO `base_major` VALUES ('080645', '智能电网信息工程'); +INSERT INTO `base_major` VALUES ('080700', '土建类'); +INSERT INTO `base_major` VALUES ('080701', '建筑学'); +INSERT INTO `base_major` VALUES ('080702', '城市规划'); +INSERT INTO `base_major` VALUES ('080703', '土木工程'); +INSERT INTO `base_major` VALUES ('080704', '建筑环境与设备工程'); +INSERT INTO `base_major` VALUES ('080705', '给水排水工程'); +INSERT INTO `base_major` VALUES ('080706', '城市地下空间工程'); +INSERT INTO `base_major` VALUES ('080707', '历史建筑保护工程'); +INSERT INTO `base_major` VALUES ('080708', '景观建筑设计'); +INSERT INTO `base_major` VALUES ('080709', '水务工程'); +INSERT INTO `base_major` VALUES ('080710', '建筑设施智能技术'); +INSERT INTO `base_major` VALUES ('080711', '给排水科学与工程'); +INSERT INTO `base_major` VALUES ('080712', '建筑电气与智能化'); +INSERT INTO `base_major` VALUES ('080713', '景观学'); +INSERT INTO `base_major` VALUES ('080714', '风景园林'); +INSERT INTO `base_major` VALUES ('080715', '总图设计与工业运输'); +INSERT INTO `base_major` VALUES ('080716', '建筑节能技术与工程'); +INSERT INTO `base_major` VALUES ('080724', '道路桥梁与渡河工程'); +INSERT INTO `base_major` VALUES ('080800', '水利类'); +INSERT INTO `base_major` VALUES ('080801', '水利水电工程'); +INSERT INTO `base_major` VALUES ('080802', '水文与水资源工程'); +INSERT INTO `base_major` VALUES ('080803', '港口航道与海岸工程'); +INSERT INTO `base_major` VALUES ('080804', '港口海岸及治河工程'); +INSERT INTO `base_major` VALUES ('080805', '水资源与海洋工程'); +INSERT INTO `base_major` VALUES ('080900', '测绘类'); +INSERT INTO `base_major` VALUES ('080901', '测绘工程'); +INSERT INTO `base_major` VALUES ('080902', '遥感科学与技术'); +INSERT INTO `base_major` VALUES ('080903', '空间信息与数字技术'); +INSERT INTO `base_major` VALUES ('081000', '环境与安全类'); +INSERT INTO `base_major` VALUES ('081001', '环境工程'); +INSERT INTO `base_major` VALUES ('081002', '安全工程'); +INSERT INTO `base_major` VALUES ('081003', '水质科学与技术'); +INSERT INTO `base_major` VALUES ('081004', '灾害防治工程'); +INSERT INTO `base_major` VALUES ('081005', '环境科学与工程'); +INSERT INTO `base_major` VALUES ('081006', '环境监察'); +INSERT INTO `base_major` VALUES ('081007', '雷电防护科学与技术'); +INSERT INTO `base_major` VALUES ('081008', '核安全工程'); +INSERT INTO `base_major` VALUES ('081009', '环保设备工程'); +INSERT INTO `base_major` VALUES ('081100', '化工与制药类'); +INSERT INTO `base_major` VALUES ('081101', '化学工程与工艺'); +INSERT INTO `base_major` VALUES ('081102', '制药工程'); +INSERT INTO `base_major` VALUES ('081103', '化工与制药'); +INSERT INTO `base_major` VALUES ('081104', '化学工程与工业生物工程'); +INSERT INTO `base_major` VALUES ('081105', '资源科学与工程'); +INSERT INTO `base_major` VALUES ('081106', '能源化学工程'); +INSERT INTO `base_major` VALUES ('081107', '生物制药'); +INSERT INTO `base_major` VALUES ('081200', '交通运输类'); +INSERT INTO `base_major` VALUES ('081201', '交通运输'); +INSERT INTO `base_major` VALUES ('081202', '交通工程'); +INSERT INTO `base_major` VALUES ('081203', '油气储运工程'); +INSERT INTO `base_major` VALUES ('081204', '飞行技术'); +INSERT INTO `base_major` VALUES ('081205', '航海技术'); +INSERT INTO `base_major` VALUES ('081206', '轮机工程'); +INSERT INTO `base_major` VALUES ('081207', '物流工程'); +INSERT INTO `base_major` VALUES ('081208', '海事管理'); +INSERT INTO `base_major` VALUES ('081209', '交通设备信息工程'); +INSERT INTO `base_major` VALUES ('081210', '交通建设与装备'); +INSERT INTO `base_major` VALUES ('081211', '救助与打捞工程'); +INSERT INTO `base_major` VALUES ('081212', '航空器适航技术'); +INSERT INTO `base_major` VALUES ('081213', '交通信息与控制工程'); +INSERT INTO `base_major` VALUES ('081300', '海洋工程类'); +INSERT INTO `base_major` VALUES ('081301', '船舶与海洋工程'); +INSERT INTO `base_major` VALUES ('081302', '海洋工程与技术'); +INSERT INTO `base_major` VALUES ('081303', '海洋资源开发技术'); +INSERT INTO `base_major` VALUES ('081400', '轻工纺织食品类'); +INSERT INTO `base_major` VALUES ('081401', '食品科学与工程'); +INSERT INTO `base_major` VALUES ('081402', '轻化工程'); +INSERT INTO `base_major` VALUES ('081403', '包装工程'); +INSERT INTO `base_major` VALUES ('081404', '印刷工程'); +INSERT INTO `base_major` VALUES ('081405', '纺织工程'); +INSERT INTO `base_major` VALUES ('081406', '服装设计与工程'); +INSERT INTO `base_major` VALUES ('081407', '食品质量与安全'); +INSERT INTO `base_major` VALUES ('081408', '酿酒工程'); +INSERT INTO `base_major` VALUES ('081409', '葡萄与葡萄酒工程'); +INSERT INTO `base_major` VALUES ('081410', '轻工生物技术'); +INSERT INTO `base_major` VALUES ('081411', '农产品质量与安全'); +INSERT INTO `base_major` VALUES ('081412', '非织造材料与工程'); +INSERT INTO `base_major` VALUES ('081413', '数字印刷'); +INSERT INTO `base_major` VALUES ('081414', '植物资源工程'); +INSERT INTO `base_major` VALUES ('081415', '粮食工程'); +INSERT INTO `base_major` VALUES ('081416', '乳品工程'); +INSERT INTO `base_major` VALUES ('081500', '航空航天类'); +INSERT INTO `base_major` VALUES ('081501', '飞行器设计与工程'); +INSERT INTO `base_major` VALUES ('081502', '飞行器动力工程'); +INSERT INTO `base_major` VALUES ('081503', '飞行器制造工程'); +INSERT INTO `base_major` VALUES ('081504', '飞行器环境与生命保障工程'); +INSERT INTO `base_major` VALUES ('081505', '航空航天工程'); +INSERT INTO `base_major` VALUES ('081506', '工程力学与航天航空工程'); +INSERT INTO `base_major` VALUES ('081507', '航天运输与控制'); +INSERT INTO `base_major` VALUES ('081508', '质量与可靠性工程'); +INSERT INTO `base_major` VALUES ('081600', '武器类'); +INSERT INTO `base_major` VALUES ('081601', '武器系统与发射工程'); +INSERT INTO `base_major` VALUES ('081602', '探测制导与控制技术'); +INSERT INTO `base_major` VALUES ('081603', '弹药工程与爆炸技术'); +INSERT INTO `base_major` VALUES ('081604', '特种能源工程与烟火技术'); +INSERT INTO `base_major` VALUES ('081605', '地面武器机动工程'); +INSERT INTO `base_major` VALUES ('081606', '信息对抗技术'); +INSERT INTO `base_major` VALUES ('081607', '武器系统与工程'); +INSERT INTO `base_major` VALUES ('081700', '工程力学类'); +INSERT INTO `base_major` VALUES ('081701', '工程力学'); +INSERT INTO `base_major` VALUES ('081702', '工程结构分析'); +INSERT INTO `base_major` VALUES ('081800', '生物工程类'); +INSERT INTO `base_major` VALUES ('081801', '生物工程'); +INSERT INTO `base_major` VALUES ('081900', '农业工程类'); +INSERT INTO `base_major` VALUES ('081901', '农业机械化及其自动化'); +INSERT INTO `base_major` VALUES ('081902', '农业电气化与自动化'); +INSERT INTO `base_major` VALUES ('081903', '农业建筑环境与能源工程'); +INSERT INTO `base_major` VALUES ('081904', '农业水利工程'); +INSERT INTO `base_major` VALUES ('081905', '农业工程'); +INSERT INTO `base_major` VALUES ('081906', '生物系统工程'); +INSERT INTO `base_major` VALUES ('082000', '林业工程类'); +INSERT INTO `base_major` VALUES ('082001', '森林工程'); +INSERT INTO `base_major` VALUES ('082002', '木材科学与工程'); +INSERT INTO `base_major` VALUES ('082003', '林产化工'); +INSERT INTO `base_major` VALUES ('082100', '公安技术类'); +INSERT INTO `base_major` VALUES ('082101', '刑事科学技术'); +INSERT INTO `base_major` VALUES ('082102', '消防工程'); +INSERT INTO `base_major` VALUES ('082103', '安全防范工程'); +INSERT INTO `base_major` VALUES ('082104', '交通管理工程'); +INSERT INTO `base_major` VALUES ('082105', '核生化消防'); +INSERT INTO `base_major` VALUES ('082106', '公安视听技术'); +INSERT INTO `base_major` VALUES ('082107', '网络安全与执法'); +INSERT INTO `base_major` VALUES ('082303', '农业电气化'); +INSERT INTO `base_major` VALUES ('082802', '城乡规划'); +INSERT INTO `base_major` VALUES ('08SY00', '工科试验班类'); +INSERT INTO `base_major` VALUES ('08SY01', '工科试验班'); +INSERT INTO `base_major` VALUES ('08SY02', '科技与创意设计试验班'); +INSERT INTO `base_major` VALUES ('090100', '植物生产类'); +INSERT INTO `base_major` VALUES ('090101', '农学'); +INSERT INTO `base_major` VALUES ('090102', '园艺'); +INSERT INTO `base_major` VALUES ('090103', '植物保护'); +INSERT INTO `base_major` VALUES ('090104', '茶学'); +INSERT INTO `base_major` VALUES ('090105', '烟草'); +INSERT INTO `base_major` VALUES ('090106', '植物科学与技术'); +INSERT INTO `base_major` VALUES ('090107', '种子科学与工程'); +INSERT INTO `base_major` VALUES ('090108', '应用生物科学'); +INSERT INTO `base_major` VALUES ('090109', '设施农业科学与工程'); +INSERT INTO `base_major` VALUES ('090200', '草业科学类'); +INSERT INTO `base_major` VALUES ('090201', '草业科学'); +INSERT INTO `base_major` VALUES ('090300', '森林资源类'); +INSERT INTO `base_major` VALUES ('090301', '林学'); +INSERT INTO `base_major` VALUES ('090302', '森林资源保护与游憩'); +INSERT INTO `base_major` VALUES ('090303', '野生动物与自然保护区管理'); +INSERT INTO `base_major` VALUES ('090400', '环境生态类'); +INSERT INTO `base_major` VALUES ('090401', '园林'); +INSERT INTO `base_major` VALUES ('090402', '水土保持与荒漠化防治'); +INSERT INTO `base_major` VALUES ('090403', '农业资源与环境'); +INSERT INTO `base_major` VALUES ('090500', '动物生产类'); +INSERT INTO `base_major` VALUES ('090501', '动物科学'); +INSERT INTO `base_major` VALUES ('090502', '蚕学'); +INSERT INTO `base_major` VALUES ('090503', '蜂学'); +INSERT INTO `base_major` VALUES ('090600', '动物医学类'); +INSERT INTO `base_major` VALUES ('090601', '动物医学'); +INSERT INTO `base_major` VALUES ('090602', '动物药学'); +INSERT INTO `base_major` VALUES ('090700', '水产类'); +INSERT INTO `base_major` VALUES ('090701', '水产养殖学'); +INSERT INTO `base_major` VALUES ('090702', '海洋渔业科学与技术'); +INSERT INTO `base_major` VALUES ('090703', '水族科学与技术'); +INSERT INTO `base_major` VALUES ('100100', '基础医学类'); +INSERT INTO `base_major` VALUES ('100101', '基础医学'); +INSERT INTO `base_major` VALUES ('100200', '预防医学类'); +INSERT INTO `base_major` VALUES ('100201', '预防医学'); +INSERT INTO `base_major` VALUES ('100202', '卫生检验'); +INSERT INTO `base_major` VALUES ('100203', '妇幼保健医学'); +INSERT INTO `base_major` VALUES ('100204', '营养学'); +INSERT INTO `base_major` VALUES ('100300', '临床医学与医学技术类'); +INSERT INTO `base_major` VALUES ('100301', '临床医学'); +INSERT INTO `base_major` VALUES ('100302', '麻醉学'); +INSERT INTO `base_major` VALUES ('100303', '医学影像学'); +INSERT INTO `base_major` VALUES ('100304', '医学检验'); +INSERT INTO `base_major` VALUES ('100305', '放射医学'); +INSERT INTO `base_major` VALUES ('100306', '眼视光学'); +INSERT INTO `base_major` VALUES ('100307', '康复治疗学'); +INSERT INTO `base_major` VALUES ('100308', '精神医学'); +INSERT INTO `base_major` VALUES ('100309', '医学技术'); +INSERT INTO `base_major` VALUES ('100310', '听力学'); +INSERT INTO `base_major` VALUES ('100311', '医学实验学'); +INSERT INTO `base_major` VALUES ('100312', '医学美容技术'); +INSERT INTO `base_major` VALUES ('100400', '口腔医学类'); +INSERT INTO `base_major` VALUES ('100401', '口腔医学'); +INSERT INTO `base_major` VALUES ('100402', '口腔修复工艺学'); +INSERT INTO `base_major` VALUES ('100500', '中医学类'); +INSERT INTO `base_major` VALUES ('100501', '中医学'); +INSERT INTO `base_major` VALUES ('100502', '针灸推拿学'); +INSERT INTO `base_major` VALUES ('100503', '蒙医学'); +INSERT INTO `base_major` VALUES ('100504', '藏医学'); +INSERT INTO `base_major` VALUES ('100505', '中西医临床医学'); +INSERT INTO `base_major` VALUES ('100506', '维医学'); +INSERT INTO `base_major` VALUES ('100600', '法医学类'); +INSERT INTO `base_major` VALUES ('100601', '法医学'); +INSERT INTO `base_major` VALUES ('100700', '护理学类'); +INSERT INTO `base_major` VALUES ('100701', '护理学'); +INSERT INTO `base_major` VALUES ('100800', '药学类'); +INSERT INTO `base_major` VALUES ('100801', '药学'); +INSERT INTO `base_major` VALUES ('100802', '中药学'); +INSERT INTO `base_major` VALUES ('100803', '药物制剂'); +INSERT INTO `base_major` VALUES ('100804', '中草药栽培与鉴定'); +INSERT INTO `base_major` VALUES ('100805', '藏药学'); +INSERT INTO `base_major` VALUES ('100806', '中药资源与开发'); +INSERT INTO `base_major` VALUES ('100807', '应用药学'); +INSERT INTO `base_major` VALUES ('100808', '临床药学'); +INSERT INTO `base_major` VALUES ('100809', '海洋药学'); +INSERT INTO `base_major` VALUES ('10080J', '基础药学基地班'); +INSERT INTO `base_major` VALUES ('100810', '药事管理'); +INSERT INTO `base_major` VALUES ('100811', '蒙药学'); +INSERT INTO `base_major` VALUES ('100812', '药物分析'); +INSERT INTO `base_major` VALUES ('100813', '药物化学'); +INSERT INTO `base_major` VALUES ('100814', '中药制药'); +INSERT INTO `base_major` VALUES ('101001', '医学检验技术'); +INSERT INTO `base_major` VALUES ('101003', '医学影像技术'); +INSERT INTO `base_major` VALUES ('101007', '卫生检验与检疫'); +INSERT INTO `base_major` VALUES ('10SY00', '医学试验班类'); +INSERT INTO `base_major` VALUES ('10SY01', '医学试验班'); +INSERT INTO `base_major` VALUES ('110100', '管理科学与工程类'); +INSERT INTO `base_major` VALUES ('110101', '管理科学'); +INSERT INTO `base_major` VALUES ('110102', '信息管理与信息系统'); +INSERT INTO `base_major` VALUES ('110103', '工业工程'); +INSERT INTO `base_major` VALUES ('110104', '工程管理'); +INSERT INTO `base_major` VALUES ('110105', '工程造价'); +INSERT INTO `base_major` VALUES ('110106', '房地产经营管理'); +INSERT INTO `base_major` VALUES ('110107', '产品质量工程'); +INSERT INTO `base_major` VALUES ('110108', '项目管理'); +INSERT INTO `base_major` VALUES ('110109', '管理科学工程'); +INSERT INTO `base_major` VALUES ('110110', '标准化工程'); +INSERT INTO `base_major` VALUES ('110200', '工商管理类'); +INSERT INTO `base_major` VALUES ('110201', '工商管理'); +INSERT INTO `base_major` VALUES ('110202', '市场营销'); +INSERT INTO `base_major` VALUES ('110203', '会计学'); +INSERT INTO `base_major` VALUES ('110204', '财务管理'); +INSERT INTO `base_major` VALUES ('110205', '人力资源管理'); +INSERT INTO `base_major` VALUES ('110206', '旅游管理'); +INSERT INTO `base_major` VALUES ('110207', '商品学'); +INSERT INTO `base_major` VALUES ('110208', '审计学'); +INSERT INTO `base_major` VALUES ('110209', '电子商务'); +INSERT INTO `base_major` VALUES ('110210', '物流管理'); +INSERT INTO `base_major` VALUES ('110211', '国际商务'); +INSERT INTO `base_major` VALUES ('110212', '物业管理'); +INSERT INTO `base_major` VALUES ('110213', '特许经营管理'); +INSERT INTO `base_major` VALUES ('110214', '连锁经营管理'); +INSERT INTO `base_major` VALUES ('110215', '资产评估'); +INSERT INTO `base_major` VALUES ('110216', '电子商务及法律'); +INSERT INTO `base_major` VALUES ('110217', '商务策划管理'); +INSERT INTO `base_major` VALUES ('110218', '酒店管理'); +INSERT INTO `base_major` VALUES ('110219', '采购管理'); +INSERT INTO `base_major` VALUES ('110300', '公共管理类'); +INSERT INTO `base_major` VALUES ('110301', '行政管理'); +INSERT INTO `base_major` VALUES ('110302', '公共事业管理'); +INSERT INTO `base_major` VALUES ('110303', '劳动与社会保障'); +INSERT INTO `base_major` VALUES ('110304', '土地资源管理'); +INSERT INTO `base_major` VALUES ('110305', '公共关系学'); +INSERT INTO `base_major` VALUES ('110306', '高等教育管理'); +INSERT INTO `base_major` VALUES ('110307', '公共政策学'); +INSERT INTO `base_major` VALUES ('110308', '城市管理'); +INSERT INTO `base_major` VALUES ('110309', '公共管理'); +INSERT INTO `base_major` VALUES ('110310', '文化产业管理'); +INSERT INTO `base_major` VALUES ('110311', '会展经济与管理'); +INSERT INTO `base_major` VALUES ('110312', '国防教育与管理'); +INSERT INTO `base_major` VALUES ('110313', '航运管理'); +INSERT INTO `base_major` VALUES ('110314', '劳动关系'); +INSERT INTO `base_major` VALUES ('110315', '公共安全管理'); +INSERT INTO `base_major` VALUES ('110316', '体育产业管理'); +INSERT INTO `base_major` VALUES ('110317', '食品经济管理'); +INSERT INTO `base_major` VALUES ('110318', '应急管理'); +INSERT INTO `base_major` VALUES ('110319', '海关管理'); +INSERT INTO `base_major` VALUES ('110400', '农业经济管理类'); +INSERT INTO `base_major` VALUES ('110401', '农林经济管理'); +INSERT INTO `base_major` VALUES ('110402', '农村区域发展'); +INSERT INTO `base_major` VALUES ('110500', '图书档案学类'); +INSERT INTO `base_major` VALUES ('110501', '图书馆学'); +INSERT INTO `base_major` VALUES ('110502', '档案学'); +INSERT INTO `base_major` VALUES ('110503', '信息资源管理'); +INSERT INTO `base_major` VALUES ('120201', '政治经济学'); +INSERT INTO `base_major` VALUES ('120301', '政治学'); +INSERT INTO `base_major` VALUES ('120302', '国际关系与安全'); +INSERT INTO `base_major` VALUES ('120303', '军事外交'); +INSERT INTO `base_major` VALUES ('120501', '中国语言文学'); +INSERT INTO `base_major` VALUES ('120502', '外国语言文学(外国军事)'); +INSERT INTO `base_major` VALUES ('120601', '军事历史'); +INSERT INTO `base_major` VALUES ('120701', '应用数学'); +INSERT INTO `base_major` VALUES ('120702', '军事气象学'); +INSERT INTO `base_major` VALUES ('120703', '军事海洋学'); +INSERT INTO `base_major` VALUES ('120704', '军事心理学'); +INSERT INTO `base_major` VALUES ('120801', '军用材料工程'); +INSERT INTO `base_major` VALUES ('120802', '机械装备类'); +INSERT INTO `base_major` VALUES ('120803', '车辆运用工程'); +INSERT INTO `base_major` VALUES ('120804', '油料储运工程'); +INSERT INTO `base_major` VALUES ('120805', '舰船动力工程'); +INSERT INTO `base_major` VALUES ('120806', '核动力工程'); +INSERT INTO `base_major` VALUES ('120807', '电力工程及其自动化'); +INSERT INTO `base_major` VALUES ('120808', '电子工程'); +INSERT INTO `base_major` VALUES ('120809', '雷达工程'); +INSERT INTO `base_major` VALUES ('120810', '导航工程'); +INSERT INTO `base_major` VALUES ('120811', '军用光电工程'); +INSERT INTO `base_major` VALUES ('120812', '航空反潜工程'); +INSERT INTO `base_major` VALUES ('120813', '侦测工程'); +INSERT INTO `base_major` VALUES ('120814', '信息研究与安全(密码学)'); +INSERT INTO `base_major` VALUES ('120815', '密码装备工程'); +INSERT INTO `base_major` VALUES ('120816', '仿真工程'); +INSERT INTO `base_major` VALUES ('120817', '指挥自动化工程'); +INSERT INTO `base_major` VALUES ('120818', '国防建筑学'); +INSERT INTO `base_major` VALUES ('120819', '土木工程'); +INSERT INTO `base_major` VALUES ('120820', '野战给水工程'); +INSERT INTO `base_major` VALUES ('120821', '国防建筑设备工程'); +INSERT INTO `base_major` VALUES ('120822', '道路桥梁与渡河濒海工程'); +INSERT INTO `base_major` VALUES ('120823', '测绘遥感类'); +INSERT INTO `base_major` VALUES ('120824', '测量工程'); +INSERT INTO `base_major` VALUES ('120825', '地图学与地理信息工程'); +INSERT INTO `base_major` VALUES ('120826', '工程物理'); +INSERT INTO `base_major` VALUES ('120827', '生化防护工程'); +INSERT INTO `base_major` VALUES ('120828', '国防工程与防护'); +INSERT INTO `base_major` VALUES ('120829', '伪装工程'); +INSERT INTO `base_major` VALUES ('120830', '舰船与海洋工程'); +INSERT INTO `base_major` VALUES ('120831', '飞行器系统与工程'); +INSERT INTO `base_major` VALUES ('120832', '空间工程'); +INSERT INTO `base_major` VALUES ('120833', '兵器工程'); +INSERT INTO `base_major` VALUES ('120834', '导弹工程'); +INSERT INTO `base_major` VALUES ('120835', '弹药工程'); +INSERT INTO `base_major` VALUES ('120836', '地雷爆破与破障工程'); +INSERT INTO `base_major` VALUES ('120837', '控制测试类'); +INSERT INTO `base_major` VALUES ('120838', '火力指挥与控制工程'); +INSERT INTO `base_major` VALUES ('120839', '测控工程'); +INSERT INTO `base_major` VALUES ('120840', '无人机运用工程'); +INSERT INTO `base_major` VALUES ('120841', '探测工程'); +INSERT INTO `base_major` VALUES ('121101', '管理工程'); +INSERT INTO `base_major` VALUES ('121102', '系统工程'); +INSERT INTO `base_major` VALUES ('121103', '经济管理类'); +INSERT INTO `base_major` VALUES ('121104', '军队财务管理'); +INSERT INTO `base_major` VALUES ('121105', '装备经济管理'); +INSERT INTO `base_major` VALUES ('121106', '军队审计'); +INSERT INTO `base_major` VALUES ('121107', '军队采办'); +INSERT INTO `base_major` VALUES ('121300', '兵种指挥类'); +INSERT INTO `base_major` VALUES ('121301', '炮兵指挥'); +INSERT INTO `base_major` VALUES ('121302', '防空兵指挥'); +INSERT INTO `base_major` VALUES ('121303', '装甲兵指挥'); +INSERT INTO `base_major` VALUES ('121304', '工程兵指挥'); +INSERT INTO `base_major` VALUES ('121305', '防化兵指挥'); +INSERT INTO `base_major` VALUES ('121400', '航空航天指挥类'); +INSERT INTO `base_major` VALUES ('121401', '航空飞行与指挥'); +INSERT INTO `base_major` VALUES ('121402', '地面领航与航空管制'); +INSERT INTO `base_major` VALUES ('121403', '航天指挥'); +INSERT INTO `base_major` VALUES ('121500', '信息作战指挥类'); +INSERT INTO `base_major` VALUES ('121501', '侦察与特种兵指挥'); +INSERT INTO `base_major` VALUES ('121502', '通信指挥'); +INSERT INTO `base_major` VALUES ('121503', '电子对抗指挥与工程'); +INSERT INTO `base_major` VALUES ('121504', '军事情报'); +INSERT INTO `base_major` VALUES ('121505', '作战信息管理'); +INSERT INTO `base_major` VALUES ('121506', '预警探测指挥'); +INSERT INTO `base_major` VALUES ('121600', '保障指挥类'); +INSERT INTO `base_major` VALUES ('121601', '军事交通指挥与工程'); +INSERT INTO `base_major` VALUES ('121602', '汽车指挥'); +INSERT INTO `base_major` VALUES ('121603', '船艇指挥'); +INSERT INTO `base_major` VALUES ('121604', '航空兵场站指挥'); +INSERT INTO `base_major` VALUES ('121605', '国防工程指挥'); +INSERT INTO `base_major` VALUES ('121606', '装备保障指挥'); +INSERT INTO `base_major` VALUES ('121607', '军需勤务指挥'); +INSERT INTO `base_major` VALUES ('121700', '武警指挥类'); +INSERT INTO `base_major` VALUES ('121701', '武警指挥'); +INSERT INTO `base_major` VALUES ('130101', '艺术史论'); +INSERT INTO `base_major` VALUES ('130201', '音乐表演'); +INSERT INTO `base_major` VALUES ('130202', '音乐学'); +INSERT INTO `base_major` VALUES ('130203', '作曲与作曲技术理论'); +INSERT INTO `base_major` VALUES ('130204', '舞蹈表演'); +INSERT INTO `base_major` VALUES ('130205', '舞蹈学'); +INSERT INTO `base_major` VALUES ('130206', '舞蹈编导'); +INSERT INTO `base_major` VALUES ('130301', '表演'); +INSERT INTO `base_major` VALUES ('130302', '戏剧学'); +INSERT INTO `base_major` VALUES ('130303', '电影学'); +INSERT INTO `base_major` VALUES ('130304', '戏剧影视文学'); +INSERT INTO `base_major` VALUES ('130305', '广播电视编导'); +INSERT INTO `base_major` VALUES ('130306', '戏剧影视导演'); +INSERT INTO `base_major` VALUES ('130307', '戏剧影视美术设计'); +INSERT INTO `base_major` VALUES ('130308', '录音艺术'); +INSERT INTO `base_major` VALUES ('130309', '播音与主持艺术'); +INSERT INTO `base_major` VALUES ('130310', '动画'); +INSERT INTO `base_major` VALUES ('130311', '影视摄影与制作'); +INSERT INTO `base_major` VALUES ('130401', '美术学'); +INSERT INTO `base_major` VALUES ('130402', '绘画'); +INSERT INTO `base_major` VALUES ('130403', '雕塑'); +INSERT INTO `base_major` VALUES ('130404', '摄影'); +INSERT INTO `base_major` VALUES ('130405', '书法学'); +INSERT INTO `base_major` VALUES ('130406', '中国画'); +INSERT INTO `base_major` VALUES ('130500', '设计学类'); +INSERT INTO `base_major` VALUES ('130501', '艺术设计学'); +INSERT INTO `base_major` VALUES ('130502', '视觉传达设计'); +INSERT INTO `base_major` VALUES ('130503', '环境设计'); +INSERT INTO `base_major` VALUES ('130504', '产品设计'); +INSERT INTO `base_major` VALUES ('130505', '服装与服饰设计'); +INSERT INTO `base_major` VALUES ('130506', '公共艺术'); +INSERT INTO `base_major` VALUES ('130507', '工艺美术'); +INSERT INTO `base_major` VALUES ('130508', '数字媒体艺术'); +INSERT INTO `base_major` VALUES ('130509', '艺术与科技'); \ No newline at end of file diff --git a/src/main/resources/data_base_political_status.sql b/src/main/resources/data_base_political_status.sql new file mode 100644 index 0000000..bba8879 --- /dev/null +++ b/src/main/resources/data_base_political_status.sql @@ -0,0 +1,14 @@ +INSERT INTO `base_political_status`(`id`, `name`) VALUES (0, '----'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (1, '中共党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (2, '中共预备党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (3, '共青团员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (4, '民革会员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (5, '民盟盟员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (6, '民建会员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (7, '民进会员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (8, '农工党党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (9, '致公党党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (10, '九三学社社员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (11, '台盟盟员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (12, '无党派民主人士'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (13, '群众'); diff --git a/src/main/resources/import.sql b/src/main/resources/import.sql new file mode 100644 index 0000000..b95a9a2 --- /dev/null +++ b/src/main/resources/import.sql @@ -0,0 +1,4456 @@ +-- ---------------------------- +-- Records of base_administrative_division +-- ---------------------------- +INSERT INTO `base_administrative_division` VALUES ('000000', '未知', '0'); +INSERT INTO `base_administrative_division` VALUES ('110000', '北京市', '0'); +INSERT INTO `base_administrative_division` VALUES ('110100', '北京市市辖区', '110000'); +INSERT INTO `base_administrative_division` VALUES ('110101', '北京市东城区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110102', '北京市西城区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110105', '北京市朝阳区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110106', '北京市丰台区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110107', '北京市石景山区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110108', '北京市海淀区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110109', '北京市门头沟区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110111', '北京市房山区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110112', '北京市通州区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110113', '北京市顺义区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110114', '北京市昌平区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110115', '北京市大兴区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110116', '北京市怀柔区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110117', '北京市平谷区', '110100'); +INSERT INTO `base_administrative_division` VALUES ('110200', '北京市县', '110000'); +INSERT INTO `base_administrative_division` VALUES ('110228', '北京市密云县', '110200'); +INSERT INTO `base_administrative_division` VALUES ('110229', '北京市延庆县', '110200'); +INSERT INTO `base_administrative_division` VALUES ('120000', '天津市', '0'); +INSERT INTO `base_administrative_division` VALUES ('120100', '天津市市辖区', '120000'); +INSERT INTO `base_administrative_division` VALUES ('120101', '天津市和平区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120102', '天津市河东区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120103', '天津市河西区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120104', '天津市南开区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120105', '天津市河北区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120106', '天津市红桥区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120110', '天津市东丽区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120111', '天津市西青区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120112', '天津市津南区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120113', '天津市北辰区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120114', '天津市武清区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120115', '天津市宝坻区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120116', '天津市滨海新区', '120100'); +INSERT INTO `base_administrative_division` VALUES ('120200', '天津市县', '120000'); +INSERT INTO `base_administrative_division` VALUES ('120221', '天津市宁河县', '120200'); +INSERT INTO `base_administrative_division` VALUES ('120223', '天津市静海县', '120200'); +INSERT INTO `base_administrative_division` VALUES ('120225', '天津市蓟县', '120200'); +INSERT INTO `base_administrative_division` VALUES ('130000', '河北省', '0'); +INSERT INTO `base_administrative_division` VALUES ('130100', '河北省石家庄市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130101', '河北省石家庄市市辖区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130102', '河北省石家庄市长安区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130103', '河北省石家庄市桥东区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130104', '河北省石家庄市桥西区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130105', '河北省石家庄市新华区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130107', '河北省石家庄市井陉矿区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130108', '河北省石家庄市裕华区', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130121', '河北省井陉县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130123', '河北省正定县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130124', '河北省栾城县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130125', '河北省行唐县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130126', '河北省灵寿县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130127', '河北省高邑县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130128', '河北省深泽县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130129', '河北省赞皇县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130130', '河北省无极县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130131', '河北省平山县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130132', '河北省元氏县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130133', '河北省赵县', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130181', '河北省辛集市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130182', '河北省藁城市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130183', '河北省晋州市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130184', '河北省新乐市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130185', '河北省鹿泉市', '130100'); +INSERT INTO `base_administrative_division` VALUES ('130200', '河北省唐山市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130201', '河北省唐山市市辖区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130202', '河北省唐山市路南区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130203', '河北省唐山市路北区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130204', '河北省唐山市古冶区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130205', '河北省唐山市开平区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130207', '河北省唐山市丰南区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130208', '河北省唐山市丰润区', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130223', '河北省滦县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130224', '河北省滦南县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130225', '河北省乐亭县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130227', '河北省迁西县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130229', '河北省玉田县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130230', '河北省唐海县', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130281', '河北省遵化市', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130283', '河北省迁安市', '130200'); +INSERT INTO `base_administrative_division` VALUES ('130300', '河北省秦皇岛市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130301', '河北省秦皇岛市市辖区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130302', '河北省秦皇岛市海港区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130303', '河北省秦皇岛市山海关区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130304', '河北省秦皇岛市北戴河区', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130321', '河北省青龙满族自治县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130322', '河北省昌黎县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130323', '河北省抚宁县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130324', '河北省卢龙县', '130300'); +INSERT INTO `base_administrative_division` VALUES ('130400', '河北省邯郸市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130401', '河北省邯郸市市辖区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130402', '河北省邯郸市邯山区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130403', '河北省邯郸市丛台区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130404', '河北省邯郸市复兴区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130406', '河北省邯郸市峰峰矿区', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130421', '河北省邯郸县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130423', '河北省临漳县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130424', '河北省成安县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130425', '河北省大名县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130426', '河北省涉县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130427', '河北省磁县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130428', '河北省肥乡县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130429', '河北省永年县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130430', '河北省邱县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130431', '河北省鸡泽县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130432', '河北省广平县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130433', '河北省馆陶县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130434', '河北省魏县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130435', '河北省曲周县', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130481', '河北省武安市', '130400'); +INSERT INTO `base_administrative_division` VALUES ('130500', '河北省邢台市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130501', '河北省邢台市市辖区', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130502', '河北省邢台市桥东区', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130503', '河北省邢台市桥西区', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130521', '河北省邢台县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130522', '河北省临城县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130523', '河北省内丘县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130524', '河北省柏乡县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130525', '河北省隆尧县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130526', '河北省任县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130527', '河北省南和县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130528', '河北省宁晋县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130529', '河北省巨鹿县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130530', '河北省新河县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130531', '河北省广宗县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130532', '河北省平乡县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130533', '河北省威县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130534', '河北省清河县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130535', '河北省临西县', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130581', '河北省南宫市', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130582', '河北省沙河市', '130500'); +INSERT INTO `base_administrative_division` VALUES ('130600', '河北省保定市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130601', '河北省保定市市辖区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130602', '河北省保定市新市区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130603', '河北省保定市北市区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130604', '河北省保定市南市区', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130621', '河北省满城县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130622', '河北省清苑县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130623', '河北省涞水县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130624', '河北省阜平县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130625', '河北省徐水县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130626', '河北省定兴县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130627', '河北省唐县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130628', '河北省高阳县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130629', '河北省容城县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130630', '河北省涞源县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130631', '河北省望都县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130632', '河北省安新县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130633', '河北省易县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130634', '河北省曲阳县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130635', '河北省蠡县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130636', '河北省顺平县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130637', '河北省博野县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130638', '河北省雄县', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130681', '河北省涿州市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130682', '河北省定州市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130683', '河北省安国市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130684', '河北省高碑店市', '130600'); +INSERT INTO `base_administrative_division` VALUES ('130700', '河北省张家口市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130701', '河北省张家口市市辖区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130702', '河北省张家口市桥东区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130703', '河北省张家口市桥西区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130705', '河北省张家口市宣化区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130706', '河北省张家口市下花园区', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130721', '河北省宣化县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130722', '河北省张北县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130723', '河北省康保县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130724', '河北省沽源县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130725', '河北省尚义县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130726', '河北省蔚县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130727', '河北省阳原县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130728', '河北省怀安县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130729', '河北省万全县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130730', '河北省怀来县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130731', '河北省涿鹿县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130732', '河北省赤城县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130733', '河北省崇礼县', '130700'); +INSERT INTO `base_administrative_division` VALUES ('130800', '河北省承德市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130801', '河北省承德市市辖区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130802', '河北省承德市双桥区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130803', '河北省承德市双滦区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130804', '河北省承德市鹰手营子矿区', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130821', '河北省承德县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130822', '河北省兴隆县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130823', '河北省平泉县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130824', '河北省滦平县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130825', '河北省隆化县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130826', '河北省丰宁满族自治县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130827', '河北省宽城满族自治县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130828', '河北省围场满族蒙古族自治县', '130800'); +INSERT INTO `base_administrative_division` VALUES ('130900', '河北省沧州市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('130901', '河北省沧州市市辖区', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130902', '河北省沧州市新华区', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130903', '河北省沧州市运河区', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130921', '河北省沧县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130922', '河北省青县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130923', '河北省东光县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130924', '河北省海兴县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130925', '河北省盐山县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130926', '河北省肃宁县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130927', '河北省南皮县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130928', '河北省吴桥县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130929', '河北省献县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130930', '河北省孟村回族自治县', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130981', '河北省泊头市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130982', '河北省任丘市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130983', '河北省黄骅市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('130984', '河北省河间市', '130900'); +INSERT INTO `base_administrative_division` VALUES ('131000', '河北省廊坊市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('131001', '河北省廊坊市市辖区', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131002', '河北省廊坊市安次区', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131003', '河北省廊坊市广阳区', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131022', '河北省固安县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131023', '河北省永清县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131024', '河北省香河县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131025', '河北省大城县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131026', '河北省文安县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131028', '河北省大厂回族自治县', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131081', '河北省霸州市', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131082', '河北省三河市', '131000'); +INSERT INTO `base_administrative_division` VALUES ('131100', '河北省衡水市', '130000'); +INSERT INTO `base_administrative_division` VALUES ('131101', '河北省衡水市市辖区', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131102', '河北省衡水市桃城区', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131121', '河北省枣强县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131122', '河北省武邑县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131123', '河北省武强县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131124', '河北省饶阳县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131125', '河北省安平县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131126', '河北省故城县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131127', '河北省景县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131128', '河北省阜城县', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131181', '河北省冀州市', '131100'); +INSERT INTO `base_administrative_division` VALUES ('131182', '河北省深州市', '131100'); +INSERT INTO `base_administrative_division` VALUES ('140000', '山西省', '0'); +INSERT INTO `base_administrative_division` VALUES ('140100', '山西省太原市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140101', '山西省太原市市辖区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140105', '山西省太原市小店区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140106', '山西省太原市迎泽区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140107', '山西省太原市杏花岭区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140108', '山西省太原市尖草坪区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140109', '山西省太原市万柏林区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140110', '山西省太原市晋源区', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140121', '山西省清徐县', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140122', '山西省阳曲县', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140123', '山西省娄烦县', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140181', '山西省古交市', '140100'); +INSERT INTO `base_administrative_division` VALUES ('140200', '山西省大同市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140201', '山西省大同市市辖区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140202', '山西省大同市城区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140203', '山西省大同市矿区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140211', '山西省大同市南郊区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140212', '山西省大同市新荣区', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140221', '山西省阳高县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140222', '山西省天镇县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140223', '山西省广灵县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140224', '山西省灵丘县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140225', '山西省浑源县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140226', '山西省左云县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140227', '山西省大同县', '140200'); +INSERT INTO `base_administrative_division` VALUES ('140300', '山西省阳泉市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140301', '山西省阳泉市市辖区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140302', '山西省阳泉市城区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140303', '山西省阳泉市矿区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140311', '山西省阳泉市郊区', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140321', '山西省平定县', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140322', '山西省盂县', '140300'); +INSERT INTO `base_administrative_division` VALUES ('140400', '山西省长治市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140401', '山西省长治市市辖区', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140402', '山西省长治市城区', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140411', '山西省长治市郊区', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140421', '山西省长治县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140423', '山西省襄垣县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140424', '山西省屯留县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140425', '山西省平顺县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140426', '山西省黎城县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140427', '山西省壶关县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140428', '山西省长子县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140429', '山西省武乡县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140430', '山西省沁县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140431', '山西省沁源县', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140481', '山西省潞城市', '140400'); +INSERT INTO `base_administrative_division` VALUES ('140500', '山西省晋城市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140501', '山西省晋城市市辖区', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140502', '山西省晋城市城区', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140521', '山西省沁水县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140522', '山西省阳城县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140524', '山西省陵川县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140525', '山西省泽州县', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140581', '山西省高平市', '140500'); +INSERT INTO `base_administrative_division` VALUES ('140600', '山西省朔州市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140601', '山西省朔州市市辖区', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140602', '山西省朔州市朔城区', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140603', '山西省朔州市平鲁区', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140621', '山西省山阴县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140622', '山西省应县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140623', '山西省右玉县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140624', '山西省怀仁县', '140600'); +INSERT INTO `base_administrative_division` VALUES ('140700', '山西省晋中市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140701', '山西省晋中市市辖区', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140702', '山西省晋中市榆次区', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140721', '山西省榆社县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140722', '山西省左权县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140723', '山西省和顺县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140724', '山西省昔阳县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140725', '山西省寿阳县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140726', '山西省太谷县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140727', '山西省祁县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140728', '山西省平遥县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140729', '山西省灵石县', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140781', '山西省介休市', '140700'); +INSERT INTO `base_administrative_division` VALUES ('140800', '山西省运城市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140801', '山西省运城市市辖区', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140802', '山西省运城市盐湖区', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140821', '山西省临猗县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140822', '山西省万荣县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140823', '山西省闻喜县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140824', '山西省稷山县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140825', '山西省新绛县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140826', '山西省绛县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140827', '山西省垣曲县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140828', '山西省夏县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140829', '山西省平陆县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140830', '山西省芮城县', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140881', '山西省永济市', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140882', '山西省河津市', '140800'); +INSERT INTO `base_administrative_division` VALUES ('140900', '山西省忻州市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('140901', '山西省忻州市市辖区', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140902', '山西省忻州市忻府区', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140921', '山西省定襄县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140922', '山西省五台县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140923', '山西省代县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140924', '山西省繁峙县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140925', '山西省宁武县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140926', '山西省静乐县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140927', '山西省神池县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140928', '山西省五寨县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140929', '山西省岢岚县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140930', '山西省河曲县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140931', '山西省保德县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140932', '山西省偏关县', '140900'); +INSERT INTO `base_administrative_division` VALUES ('140981', '山西省原平市', '140900'); +INSERT INTO `base_administrative_division` VALUES ('141000', '山西省临汾市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('141001', '山西省临汾市市辖区', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141002', '山西省临汾市尧都区', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141021', '山西省曲沃县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141022', '山西省翼城县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141023', '山西省襄汾县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141024', '山西省洪洞县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141025', '山西省古县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141026', '山西省安泽县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141027', '山西省浮山县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141028', '山西省吉县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141029', '山西省乡宁县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141030', '山西省大宁县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141031', '山西省隰县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141032', '山西省永和县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141033', '山西省蒲县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141034', '山西省汾西县', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141081', '山西省侯马市', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141082', '山西省霍州市', '141000'); +INSERT INTO `base_administrative_division` VALUES ('141100', '山西省吕梁市', '140000'); +INSERT INTO `base_administrative_division` VALUES ('141101', '山西省吕梁市市辖区', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141102', '山西省吕梁市离石区', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141121', '山西省文水县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141122', '山西省交城县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141123', '山西省兴县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141124', '山西省临县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141125', '山西省柳林县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141126', '山西省石楼县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141127', '山西省岚县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141128', '山西省方山县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141129', '山西省中阳县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141130', '山西省交口县', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141181', '山西省孝义市', '141100'); +INSERT INTO `base_administrative_division` VALUES ('141182', '山西省汾阳市', '141100'); +INSERT INTO `base_administrative_division` VALUES ('150000', '内蒙古自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('150100', '内蒙古呼和浩特市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150101', '内蒙古呼和浩特市市辖区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150102', '内蒙古呼和浩特市新城区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150103', '内蒙古呼和浩特市回民区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150104', '内蒙古呼和浩特市玉泉区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150105', '内蒙古呼和浩特市赛罕区', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150121', '内蒙古土默特左旗', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150122', '内蒙古托克托县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150123', '内蒙古和林格尔县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150124', '内蒙古清水河县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150125', '内蒙古武川县', '150100'); +INSERT INTO `base_administrative_division` VALUES ('150200', '内蒙古包头市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150201', '内蒙古包头市市辖区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150202', '内蒙古包头市东河区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150203', '内蒙古包头市昆都仑区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150204', '内蒙古包头市青山区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150205', '内蒙古包头市石拐区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150206', '内蒙古包头市白云鄂博矿区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150207', '内蒙古包头市九原区', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150221', '内蒙古土默特右旗', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150222', '内蒙古固阳县', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150223', '内蒙古达尔罕茂明安联合旗', '150200'); +INSERT INTO `base_administrative_division` VALUES ('150300', '内蒙古乌海市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150301', '内蒙古乌海市市辖区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150302', '内蒙古乌海市海勃湾区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150303', '内蒙古乌海市海南区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150304', '内蒙古乌海市乌达区', '150300'); +INSERT INTO `base_administrative_division` VALUES ('150400', '内蒙古赤峰市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150401', '内蒙古赤峰市市辖区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150402', '内蒙古赤峰市红山区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150403', '内蒙古赤峰市元宝山区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150404', '内蒙古赤峰市松山区', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150421', '内蒙古阿鲁科尔沁旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150422', '内蒙古巴林左旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150423', '内蒙古巴林右旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150424', '内蒙古林西县', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150425', '内蒙古克什克腾旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150426', '内蒙古翁牛特旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150428', '内蒙古喀喇沁旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150429', '内蒙古宁城县', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150430', '内蒙古敖汉旗', '150400'); +INSERT INTO `base_administrative_division` VALUES ('150500', '内蒙古通辽市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150501', '内蒙古通辽市市辖区', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150502', '内蒙古通辽市科尔沁区', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150521', '内蒙古科尔沁左翼中旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150522', '内蒙古科尔沁左翼后旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150523', '内蒙古开鲁县', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150524', '内蒙古库伦旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150525', '内蒙古奈曼旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150526', '内蒙古扎鲁特旗', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150581', '内蒙古霍林郭勒市', '150500'); +INSERT INTO `base_administrative_division` VALUES ('150600', '内蒙古鄂尔多斯市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150601', '内蒙古鄂尔多斯市市辖区', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150602', '内蒙古鄂尔多斯市东胜区', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150621', '内蒙古达拉特旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150622', '内蒙古准格尔旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150623', '内蒙古鄂托克前旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150624', '内蒙古鄂托克旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150625', '内蒙古杭锦旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150626', '内蒙古乌审旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150627', '内蒙古伊金霍洛旗', '150600'); +INSERT INTO `base_administrative_division` VALUES ('150700', '内蒙古呼伦贝尔市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150701', '内蒙古呼伦贝尔市市辖区', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150702', '内蒙古呼伦贝尔市海拉尔区', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150721', '内蒙古阿荣旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150722', '内蒙古莫力达瓦达斡尔族自治旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150723', '内蒙古鄂伦春自治旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150724', '内蒙古鄂温克族自治旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150725', '内蒙古陈巴尔虎旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150726', '内蒙古新巴尔虎左旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150727', '内蒙古新巴尔虎右旗', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150781', '内蒙古满洲里市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150782', '内蒙古牙克石市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150783', '内蒙古扎兰屯市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150784', '内蒙古额尔古纳市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150785', '内蒙古根河市', '150700'); +INSERT INTO `base_administrative_division` VALUES ('150800', '内蒙古巴彦淖尔市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150801', '内蒙古巴彦淖尔市市辖区', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150802', '内蒙古巴彦淖尔市临河区', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150821', '内蒙古五原县', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150822', '内蒙古磴口县', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150823', '内蒙古乌拉特前旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150824', '内蒙古乌拉特中旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150825', '内蒙古乌拉特后旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150826', '内蒙古杭锦后旗', '150800'); +INSERT INTO `base_administrative_division` VALUES ('150900', '内蒙古乌兰察布市', '150000'); +INSERT INTO `base_administrative_division` VALUES ('150901', '内蒙古乌兰察布市市辖区', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150902', '内蒙古乌兰察布市集宁区', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150921', '内蒙古卓资县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150922', '内蒙古化德县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150923', '内蒙古商都县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150924', '内蒙古兴和县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150925', '内蒙古凉城县', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150926', '内蒙古察哈尔右翼前旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150927', '内蒙古察哈尔右翼中旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150928', '内蒙古察哈尔右翼后旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150929', '内蒙古四子王旗', '150900'); +INSERT INTO `base_administrative_division` VALUES ('150981', '内蒙古丰镇市', '150900'); +INSERT INTO `base_administrative_division` VALUES ('152200', '内蒙古兴安盟', '150000'); +INSERT INTO `base_administrative_division` VALUES ('152201', '内蒙古乌兰浩特市', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152202', '内蒙古阿尔山市', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152221', '内蒙古科尔沁右翼前旗', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152222', '内蒙古科尔沁右翼中旗', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152223', '内蒙古扎赉特旗', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152224', '内蒙古突泉县', '152200'); +INSERT INTO `base_administrative_division` VALUES ('152500', '内蒙古锡林郭勒盟', '150000'); +INSERT INTO `base_administrative_division` VALUES ('152501', '内蒙古二连浩特市', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152502', '内蒙古锡林浩特市', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152522', '内蒙古阿巴嘎旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152523', '内蒙古苏尼特左旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152524', '内蒙古苏尼特右旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152525', '内蒙古东乌珠穆沁旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152526', '内蒙古西乌珠穆沁旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152527', '内蒙古太仆寺旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152528', '内蒙古镶黄旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152529', '内蒙古正镶白旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152530', '内蒙古正蓝旗', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152531', '内蒙古多伦县', '152500'); +INSERT INTO `base_administrative_division` VALUES ('152900', '内蒙古阿拉善盟', '150000'); +INSERT INTO `base_administrative_division` VALUES ('152921', '内蒙古阿拉善左旗', '152900'); +INSERT INTO `base_administrative_division` VALUES ('152922', '内蒙古阿拉善右旗', '152900'); +INSERT INTO `base_administrative_division` VALUES ('152923', '内蒙古额济纳旗', '152900'); +INSERT INTO `base_administrative_division` VALUES ('210000', '辽宁省', '0'); +INSERT INTO `base_administrative_division` VALUES ('210100', '辽宁省沈阳市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210101', '辽宁省沈阳市市辖区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210102', '辽宁省沈阳市和平区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210103', '辽宁省沈阳市沈河区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210104', '辽宁省沈阳市大东区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210105', '辽宁省沈阳市皇姑区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210106', '辽宁省沈阳市铁西区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210111', '辽宁省沈阳市苏家屯区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210112', '辽宁省沈阳市东陵区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210113', '辽宁省沈阳市沈北新区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210114', '辽宁省沈阳市于洪区', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210122', '辽宁省辽中县', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210123', '辽宁省康平县', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210124', '辽宁省法库县', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210181', '辽宁省新民市', '210100'); +INSERT INTO `base_administrative_division` VALUES ('210200', '辽宁省大连市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210201', '辽宁省大连市市辖区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210202', '辽宁省大连市中山区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210203', '辽宁省大连市西岗区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210204', '辽宁省大连市沙河口区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210211', '辽宁省大连市甘井子区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210212', '辽宁省大连市旅顺口区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210213', '辽宁省大连市金州区', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210224', '辽宁省长海县', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210281', '辽宁省瓦房店市', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210282', '辽宁省普兰店市', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210283', '辽宁省庄河市', '210200'); +INSERT INTO `base_administrative_division` VALUES ('210300', '辽宁省鞍山市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210301', '辽宁省鞍山市市辖区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210302', '辽宁省鞍山市铁东区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210303', '辽宁省鞍山市铁西区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210304', '辽宁省鞍山市立山区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210311', '辽宁省鞍山市千山区', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210321', '辽宁省台安县', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210323', '辽宁省岫岩满族自治县', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210381', '辽宁省海城市', '210300'); +INSERT INTO `base_administrative_division` VALUES ('210400', '辽宁省抚顺市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210401', '辽宁省抚顺市市辖区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210402', '辽宁省抚顺市新抚区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210403', '辽宁省抚顺市东洲区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210404', '辽宁省抚顺市望花区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210411', '辽宁省抚顺市顺城区', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210421', '辽宁省抚顺县', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210422', '辽宁省新宾满族自治县', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210423', '辽宁省清原满族自治县', '210400'); +INSERT INTO `base_administrative_division` VALUES ('210500', '辽宁省本溪市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210501', '辽宁省本溪市市辖区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210502', '辽宁省本溪市平山区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210503', '辽宁省本溪市溪湖区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210504', '辽宁省本溪市明山区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210505', '辽宁省本溪市南芬区', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210521', '辽宁省本溪满族自治县', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210522', '辽宁省桓仁满族自治县', '210500'); +INSERT INTO `base_administrative_division` VALUES ('210600', '辽宁省丹东市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210601', '辽宁省丹东市市辖区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210602', '辽宁省丹东市元宝区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210603', '辽宁省丹东市振兴区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210604', '辽宁省丹东市振安区', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210624', '辽宁省宽甸满族自治县', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210681', '辽宁省东港市', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210682', '辽宁省凤城市', '210600'); +INSERT INTO `base_administrative_division` VALUES ('210700', '辽宁省锦州市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210701', '辽宁省锦州市市辖区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210702', '辽宁省锦州市古塔区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210703', '辽宁省锦州市凌河区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210711', '辽宁省锦州市太和区', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210726', '辽宁省黑山县', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210727', '辽宁省义县', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210781', '辽宁省凌海市', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210782', '辽宁省北镇市', '210700'); +INSERT INTO `base_administrative_division` VALUES ('210800', '辽宁省营口市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210801', '辽宁省营口市市辖区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210802', '辽宁省营口市站前区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210803', '辽宁省营口市西市区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210804', '辽宁省营口市鲅鱼圈区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210811', '辽宁省营口市老边区', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210881', '辽宁省盖州市', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210882', '辽宁省大石桥市', '210800'); +INSERT INTO `base_administrative_division` VALUES ('210900', '辽宁省阜新市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('210901', '辽宁省阜新市市辖区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210902', '辽宁省阜新市海州区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210903', '辽宁省阜新市新邱区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210904', '辽宁省阜新市太平区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210905', '辽宁省阜新市清河门区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210911', '辽宁省阜新市细河区', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210921', '辽宁省阜新蒙古族自治县', '210900'); +INSERT INTO `base_administrative_division` VALUES ('210922', '辽宁省彰武县', '210900'); +INSERT INTO `base_administrative_division` VALUES ('211000', '辽宁省辽阳市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211001', '辽宁省辽阳市市辖区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211002', '辽宁省辽阳市白塔区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211003', '辽宁省辽阳市文圣区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211004', '辽宁省辽阳市宏伟区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211005', '辽宁省辽阳市弓长岭区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211011', '辽宁省辽阳市太子河区', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211021', '辽宁省辽阳县', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211081', '辽宁省灯塔市', '211000'); +INSERT INTO `base_administrative_division` VALUES ('211100', '辽宁省盘锦市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211101', '辽宁省盘锦市市辖区', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211102', '辽宁省盘锦市双台子区', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211103', '辽宁省盘锦市兴隆台区', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211121', '辽宁省大洼县', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211122', '辽宁省盘山县', '211100'); +INSERT INTO `base_administrative_division` VALUES ('211200', '辽宁省铁岭市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211201', '辽宁省铁岭市市辖区', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211202', '辽宁省铁岭市银州区', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211204', '辽宁省铁岭市清河区', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211221', '辽宁省铁岭县', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211223', '辽宁省西丰县', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211224', '辽宁省昌图县', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211281', '辽宁省调兵山市', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211282', '辽宁省开原市', '211200'); +INSERT INTO `base_administrative_division` VALUES ('211300', '辽宁省朝阳市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211301', '辽宁省朝阳市市辖区', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211302', '辽宁省朝阳市双塔区', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211303', '辽宁省朝阳市龙城区', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211321', '辽宁省朝阳县', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211322', '辽宁省建平县', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211324', '辽宁省喀喇沁左翼蒙古族自治县', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211381', '辽宁省北票市', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211382', '辽宁省凌源市', '211300'); +INSERT INTO `base_administrative_division` VALUES ('211400', '辽宁省葫芦岛市', '210000'); +INSERT INTO `base_administrative_division` VALUES ('211401', '辽宁省葫芦岛市市辖区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211402', '辽宁省葫芦岛市连山区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211403', '辽宁省葫芦岛市龙港区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211404', '辽宁省葫芦岛市南票区', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211421', '辽宁省绥中县', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211422', '辽宁省建昌县', '211400'); +INSERT INTO `base_administrative_division` VALUES ('211481', '辽宁省兴城市', '211400'); +INSERT INTO `base_administrative_division` VALUES ('220000', '吉林省', '0'); +INSERT INTO `base_administrative_division` VALUES ('220100', '吉林省长春市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220101', '吉林省长春市市辖区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220102', '吉林省长春市南关区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220103', '吉林省长春市宽城区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220104', '吉林省长春市朝阳区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220105', '吉林省长春市二道区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220106', '吉林省长春市绿园区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220112', '吉林省长春市双阳区', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220122', '吉林省农安县', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220181', '吉林省九台市', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220182', '吉林省榆树市', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220183', '吉林省德惠市', '220100'); +INSERT INTO `base_administrative_division` VALUES ('220200', '吉林省吉林市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220201', '吉林省吉林市市辖区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220202', '吉林省吉林市昌邑区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220203', '吉林省吉林市龙潭区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220204', '吉林省吉林市船营区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220211', '吉林省吉林市丰满区', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220221', '吉林省永吉县', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220281', '吉林省蛟河市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220282', '吉林省桦甸市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220283', '吉林省舒兰市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220284', '吉林省磐石市', '220200'); +INSERT INTO `base_administrative_division` VALUES ('220300', '吉林省四平市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220301', '吉林省四平市市辖区', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220302', '吉林省四平市铁西区', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220303', '吉林省四平市铁东区', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220322', '吉林省梨树县', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220323', '吉林省伊通满族自治县', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220381', '吉林省公主岭市', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220382', '吉林省双辽市', '220300'); +INSERT INTO `base_administrative_division` VALUES ('220400', '吉林省辽源市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220401', '吉林省辽源市市辖区', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220402', '吉林省辽源市龙山区', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220403', '吉林省辽源市西安区', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220421', '吉林省东丰县', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220422', '吉林省东辽县', '220400'); +INSERT INTO `base_administrative_division` VALUES ('220500', '吉林省通化市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220501', '吉林省通化市市辖区', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220502', '吉林省通化市东昌区', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220503', '吉林省通化市二道江区', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220521', '吉林省通化县', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220523', '吉林省辉南县', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220524', '吉林省柳河县', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220581', '吉林省梅河口市', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220582', '吉林省集安市', '220500'); +INSERT INTO `base_administrative_division` VALUES ('220600', '吉林省白山市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220601', '吉林省白山市市辖区', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220602', '吉林省白山市八道江区', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220605', '吉林省白山市江源区', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220621', '吉林省抚松县', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220622', '吉林省靖宇县', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220623', '吉林省长白朝鲜族自治县', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220681', '吉林省临江市', '220600'); +INSERT INTO `base_administrative_division` VALUES ('220700', '吉林省松原市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220701', '吉林省松原市市辖区', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220702', '吉林省松原市宁江区', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220721', '吉林省前郭尔罗斯蒙古族自治县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220722', '吉林省长岭县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220723', '吉林省乾安县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220724', '吉林省扶余县', '220700'); +INSERT INTO `base_administrative_division` VALUES ('220800', '吉林省白城市', '220000'); +INSERT INTO `base_administrative_division` VALUES ('220801', '吉林省白城市市辖区', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220802', '吉林省白城市洮北区', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220821', '吉林省镇赉县', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220822', '吉林省通榆县', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220881', '吉林省洮南市', '220800'); +INSERT INTO `base_administrative_division` VALUES ('220882', '吉林省大安市', '220800'); +INSERT INTO `base_administrative_division` VALUES ('222400', '吉林省延边朝鲜族自治州', '220000'); +INSERT INTO `base_administrative_division` VALUES ('222401', '吉林省延吉市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222402', '吉林省图们市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222403', '吉林省敦化市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222404', '吉林省珲春市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222405', '吉林省龙井市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222406', '吉林省和龙市', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222424', '吉林省汪清县', '222400'); +INSERT INTO `base_administrative_division` VALUES ('222426', '吉林省安图县', '222400'); +INSERT INTO `base_administrative_division` VALUES ('230000', '黑龙江省', '0'); +INSERT INTO `base_administrative_division` VALUES ('230100', '黑龙江省哈尔滨市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230101', '黑龙江省哈尔滨市市辖区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230102', '黑龙江省哈尔滨市道里区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230103', '黑龙江省哈尔滨市南岗区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230104', '黑龙江省哈尔滨市道外区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230108', '黑龙江省哈尔滨市平房区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230109', '黑龙江省哈尔滨市松北区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230110', '黑龙江省哈尔滨市香坊区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230111', '黑龙江省哈尔滨市呼兰区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230112', '黑龙江省哈尔滨市阿城区', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230123', '黑龙江省依兰县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230124', '黑龙江省方正县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230125', '黑龙江省宾县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230126', '黑龙江省巴彦县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230127', '黑龙江省木兰县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230128', '黑龙江省通河县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230129', '黑龙江省延寿县', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230182', '黑龙江省双城市', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230183', '黑龙江省尚志市', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230184', '黑龙江省五常市', '230100'); +INSERT INTO `base_administrative_division` VALUES ('230200', '黑龙江省齐齐哈尔市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230201', '黑龙江省齐齐哈尔市市辖区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230202', '黑龙江省齐齐哈尔市龙沙区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230203', '黑龙江省齐齐哈尔市建华区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230204', '黑龙江省齐齐哈尔市铁锋区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230205', '黑龙江省齐齐哈尔市昂昂溪区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230206', '黑龙江省齐齐哈尔市富拉尔基区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230207', '黑龙江省齐齐哈尔市碾子山区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230208', '黑龙江省齐齐哈尔市梅里斯达斡尔族区', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230221', '黑龙江省龙江县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230223', '黑龙江省依安县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230224', '黑龙江省泰来县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230225', '黑龙江省甘南县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230227', '黑龙江省富裕县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230229', '黑龙江省克山县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230230', '黑龙江省克东县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230231', '黑龙江省拜泉县', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230281', '黑龙江省讷河市', '230200'); +INSERT INTO `base_administrative_division` VALUES ('230300', '黑龙江省鸡西市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230301', '黑龙江省鸡西市市辖区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230302', '黑龙江省鸡西市鸡冠区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230303', '黑龙江省鸡西市恒山区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230304', '黑龙江省鸡西市滴道区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230305', '黑龙江省鸡西市梨树区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230306', '黑龙江省鸡西市城子河区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230307', '黑龙江省鸡西市麻山区', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230321', '黑龙江省鸡东县', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230381', '黑龙江省虎林市', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230382', '黑龙江省密山市', '230300'); +INSERT INTO `base_administrative_division` VALUES ('230400', '黑龙江省鹤岗市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230401', '黑龙江省鹤岗市市辖区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230402', '黑龙江省鹤岗市向阳区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230403', '黑龙江省鹤岗市工农区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230404', '黑龙江省鹤岗市南山区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230405', '黑龙江省鹤岗市兴安区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230406', '黑龙江省鹤岗市东山区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230407', '黑龙江省鹤岗市兴山区', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230421', '黑龙江省萝北县', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230422', '黑龙江省绥滨县', '230400'); +INSERT INTO `base_administrative_division` VALUES ('230500', '黑龙江省双鸭山市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230501', '黑龙江省双鸭山市市辖区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230502', '黑龙江省双鸭山市尖山区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230503', '黑龙江省双鸭山市岭东区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230505', '黑龙江省双鸭山市四方台区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230506', '黑龙江省双鸭山市宝山区', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230521', '黑龙江省集贤县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230522', '黑龙江省友谊县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230523', '黑龙江省宝清县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230524', '黑龙江省饶河县', '230500'); +INSERT INTO `base_administrative_division` VALUES ('230600', '黑龙江省大庆市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230601', '黑龙江省大庆市市辖区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230602', '黑龙江省大庆市萨尔图区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230603', '黑龙江省大庆市龙凤区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230604', '黑龙江省大庆市让胡路区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230605', '黑龙江省大庆市红岗区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230606', '黑龙江省大庆市大同区', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230621', '黑龙江省肇州县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230622', '黑龙江省肇源县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230623', '黑龙江省林甸县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230624', '黑龙江省杜尔伯特蒙古族自治县', '230600'); +INSERT INTO `base_administrative_division` VALUES ('230700', '黑龙江省伊春市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230701', '黑龙江省伊春市市辖区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230702', '黑龙江省伊春市伊春区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230703', '黑龙江省伊春市南岔区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230704', '黑龙江省伊春市友好区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230705', '黑龙江省伊春市西林区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230706', '黑龙江省伊春市翠峦区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230707', '黑龙江省伊春市新青区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230708', '黑龙江省伊春市美溪区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230709', '黑龙江省伊春市金山屯区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230710', '黑龙江省伊春市五营区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230711', '黑龙江省伊春市乌马河区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230712', '黑龙江省伊春市汤旺河区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230713', '黑龙江省伊春市带岭区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230714', '黑龙江省伊春市乌伊岭区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230715', '黑龙江省伊春市红星区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230716', '黑龙江省伊春市上甘岭区', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230722', '黑龙江省嘉荫县', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230781', '黑龙江省铁力市', '230700'); +INSERT INTO `base_administrative_division` VALUES ('230800', '黑龙江省佳木斯市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230801', '黑龙江省佳木斯市市辖区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230803', '黑龙江省佳木斯市向阳区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230804', '黑龙江省佳木斯市前进区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230805', '黑龙江省佳木斯市东风区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230811', '黑龙江省佳木斯市郊区', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230822', '黑龙江省桦南县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230826', '黑龙江省桦川县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230828', '黑龙江省汤原县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230833', '黑龙江省抚远县', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230881', '黑龙江省同江市', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230882', '黑龙江省富锦市', '230800'); +INSERT INTO `base_administrative_division` VALUES ('230900', '黑龙江省七台河市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('230901', '黑龙江省七台河市市辖区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230902', '黑龙江省七台河市新兴区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230903', '黑龙江省七台河市桃山区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230904', '黑龙江省七台河市茄子河区', '230900'); +INSERT INTO `base_administrative_division` VALUES ('230921', '黑龙江省勃利县', '230900'); +INSERT INTO `base_administrative_division` VALUES ('231000', '黑龙江省牡丹江市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('231001', '黑龙江省牡丹江市市辖区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231002', '黑龙江省牡丹江市东安区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231003', '黑龙江省牡丹江市阳明区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231004', '黑龙江省牡丹江市爱民区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231005', '黑龙江省牡丹江市西安区', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231024', '黑龙江省东宁县', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231025', '黑龙江省林口县', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231081', '黑龙江省绥芬河市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231083', '黑龙江省海林市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231084', '黑龙江省宁安市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231085', '黑龙江省穆棱市', '231000'); +INSERT INTO `base_administrative_division` VALUES ('231100', '黑龙江省黑河市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('231101', '黑龙江省黑河市市辖区', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231102', '黑龙江省黑河市爱辉区', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231121', '黑龙江省嫩江县', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231123', '黑龙江省逊克县', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231124', '黑龙江省孙吴县', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231181', '黑龙江省北安市', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231182', '黑龙江省五大连池市', '231100'); +INSERT INTO `base_administrative_division` VALUES ('231200', '黑龙江省绥化市', '230000'); +INSERT INTO `base_administrative_division` VALUES ('231201', '黑龙江省绥化市市辖区', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231202', '黑龙江省绥化市北林区', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231221', '黑龙江省望奎县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231222', '黑龙江省兰西县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231223', '黑龙江省青冈县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231224', '黑龙江省庆安县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231225', '黑龙江省明水县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231226', '黑龙江省绥棱县', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231281', '黑龙江省安达市', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231282', '黑龙江省肇东市', '231200'); +INSERT INTO `base_administrative_division` VALUES ('231283', '黑龙江省海伦市', '231200'); +INSERT INTO `base_administrative_division` VALUES ('232700', '黑龙江省大兴安岭地区', '230000'); +INSERT INTO `base_administrative_division` VALUES ('232721', '黑龙江省呼玛县', '232700'); +INSERT INTO `base_administrative_division` VALUES ('232722', '黑龙江省塔河县', '232700'); +INSERT INTO `base_administrative_division` VALUES ('232723', '黑龙江省漠河县', '232700'); +INSERT INTO `base_administrative_division` VALUES ('310000', '上海市', '0'); +INSERT INTO `base_administrative_division` VALUES ('310100', '上海市市辖区', '310000'); +INSERT INTO `base_administrative_division` VALUES ('310101', '上海市黄浦区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310104', '上海市徐汇区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310105', '上海市长宁区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310106', '上海市静安区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310107', '上海市普陀区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310108', '上海市闸北区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310109', '上海市虹口区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310110', '上海市杨浦区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310112', '上海市闵行区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310113', '上海市宝山区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310114', '上海市嘉定区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310115', '上海市浦东新区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310116', '上海市金山区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310117', '上海市松江区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310118', '上海市青浦区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310120', '上海市奉贤区', '310100'); +INSERT INTO `base_administrative_division` VALUES ('310200', '上海市县', '310000'); +INSERT INTO `base_administrative_division` VALUES ('310230', '上海市崇明县', '310200'); +INSERT INTO `base_administrative_division` VALUES ('320000', '江苏省', '0'); +INSERT INTO `base_administrative_division` VALUES ('320100', '江苏省南京市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320101', '江苏省南京市市辖区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320102', '江苏省南京市玄武区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320103', '江苏省南京市白下区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320104', '江苏省南京市秦淮区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320105', '江苏省南京市建邺区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320106', '江苏省南京市鼓楼区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320107', '江苏省南京市下关区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320111', '江苏省南京市浦口区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320113', '江苏省南京市栖霞区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320114', '江苏省南京市雨花台区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320115', '江苏省南京市江宁区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320116', '江苏省南京市六合区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320117', '江苏省南京市溧水区', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320125', '江苏省高淳县', '320100'); +INSERT INTO `base_administrative_division` VALUES ('320200', '江苏省无锡市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320201', '江苏省无锡市市辖区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320202', '江苏省无锡市崇安区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320203', '江苏省无锡市南长区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320204', '江苏省无锡市北塘区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320205', '江苏省无锡市锡山区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320206', '江苏省无锡市惠山区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320211', '江苏省无锡市滨湖区', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320281', '江苏省江阴市', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320282', '江苏省宜兴市', '320200'); +INSERT INTO `base_administrative_division` VALUES ('320300', '江苏省徐州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320301', '江苏省徐州市市辖区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320302', '江苏省徐州市鼓楼区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320303', '江苏省徐州市云龙区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320304', '江苏省徐州市九里区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320305', '江苏省徐州市贾汪区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320311', '江苏省徐州市泉山区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320312', '江苏省徐州市铜山区', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320321', '江苏省丰县', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320322', '江苏省沛县', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320324', '江苏省睢宁县', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320381', '江苏省新沂市', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320382', '江苏省邳州市', '320300'); +INSERT INTO `base_administrative_division` VALUES ('320400', '江苏省常州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320401', '江苏省常州市市辖区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320402', '江苏省常州市天宁区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320404', '江苏省常州市钟楼区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320405', '江苏省常州市戚墅堰区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320411', '江苏省常州市新北区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320412', '江苏省常州市武进区', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320481', '江苏省溧阳市', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320482', '江苏省金坛市', '320400'); +INSERT INTO `base_administrative_division` VALUES ('320500', '江苏省苏州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320501', '江苏省苏州市市辖区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320502', '江苏省苏州市沧浪区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320503', '江苏省苏州市平江区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320504', '江苏省苏州市金阊区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320505', '江苏省苏州市虎丘区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320506', '江苏省苏州市吴中区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320507', '江苏省苏州市相城区', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320581', '江苏省常熟市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320582', '江苏省张家港市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320583', '江苏省昆山市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320584', '江苏省吴江市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320585', '江苏省太仓市', '320500'); +INSERT INTO `base_administrative_division` VALUES ('320600', '江苏省南通市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320601', '江苏省南通市市辖区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320602', '江苏省南通市崇川区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320611', '江苏省南通市港闸区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320612', '江苏省南通市通州区', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320621', '江苏省海安县', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320623', '江苏省如东县', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320681', '江苏省启东市', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320682', '江苏省如皋市', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320684', '江苏省海门市', '320600'); +INSERT INTO `base_administrative_division` VALUES ('320700', '江苏省连云港市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320701', '江苏省连云港市市辖区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320703', '江苏省连云港市连云区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320705', '江苏省连云港市新浦区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320706', '江苏省连云港市海州区', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320721', '江苏省赣榆县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320722', '江苏省东海县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320723', '江苏省灌云县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320724', '江苏省灌南县', '320700'); +INSERT INTO `base_administrative_division` VALUES ('320800', '江苏省淮安市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320801', '江苏省淮安市市辖区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320802', '江苏省淮安市清河区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320803', '江苏省淮安市楚州区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320804', '江苏省淮安市淮阴区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320811', '江苏省淮安市清浦区', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320826', '江苏省涟水县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320829', '江苏省洪泽县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320830', '江苏省盱眙县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320831', '江苏省金湖县', '320800'); +INSERT INTO `base_administrative_division` VALUES ('320900', '江苏省盐城市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('320901', '江苏省盐城市市辖区', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320902', '江苏省盐城市亭湖区', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320903', '江苏省盐城市盐都区', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320921', '江苏省响水县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320922', '江苏省滨海县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320923', '江苏省阜宁县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320924', '江苏省射阳县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320925', '江苏省建湖县', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320981', '江苏省东台市', '320900'); +INSERT INTO `base_administrative_division` VALUES ('320982', '江苏省大丰市', '320900'); +INSERT INTO `base_administrative_division` VALUES ('321000', '江苏省扬州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321001', '江苏省扬州市市辖区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321002', '江苏省扬州市广陵区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321003', '江苏省扬州市邗江区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321012', '江苏省扬州市江都区', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321023', '江苏省宝应县', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321081', '江苏省仪征市', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321084', '江苏省高邮市', '321000'); +INSERT INTO `base_administrative_division` VALUES ('321100', '江苏省镇江市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321101', '江苏省镇江市市辖区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321102', '江苏省镇江市京口区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321111', '江苏省镇江市润州区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321112', '江苏省镇江市丹徒区', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321181', '江苏省丹阳市', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321182', '江苏省扬中市', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321183', '江苏省句容市', '321100'); +INSERT INTO `base_administrative_division` VALUES ('321200', '江苏省泰州市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321201', '江苏省泰州市市辖区', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321202', '江苏省泰州市海陵区', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321203', '江苏省泰州市高港区', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321281', '江苏省兴化市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321282', '江苏省靖江市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321283', '江苏省泰兴市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321284', '江苏省姜堰市', '321200'); +INSERT INTO `base_administrative_division` VALUES ('321300', '江苏省宿迁市', '320000'); +INSERT INTO `base_administrative_division` VALUES ('321301', '江苏省宿迁市市辖区', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321302', '江苏省宿迁市宿城区', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321311', '江苏省宿迁市宿豫区', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321322', '江苏省沭阳县', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321323', '江苏省泗阳县', '321300'); +INSERT INTO `base_administrative_division` VALUES ('321324', '江苏省泗洪县', '321300'); +INSERT INTO `base_administrative_division` VALUES ('330000', '浙江省', '0'); +INSERT INTO `base_administrative_division` VALUES ('330100', '浙江省杭州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330101', '浙江省杭州市市辖区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330102', '浙江省杭州市上城区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330103', '浙江省杭州市下城区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330104', '浙江省杭州市江干区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330105', '浙江省杭州市拱墅区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330106', '浙江省杭州市西湖区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330108', '浙江省杭州市滨江区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330109', '浙江省杭州市萧山区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330110', '浙江省杭州市余杭区', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330122', '浙江省桐庐县', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330127', '浙江省淳安县', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330182', '浙江省建德市', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330183', '浙江省富阳市', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330185', '浙江省临安市', '330100'); +INSERT INTO `base_administrative_division` VALUES ('330200', '浙江省宁波市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330201', '浙江省宁波市市辖区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330203', '浙江省宁波市海曙区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330204', '浙江省宁波市江东区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330205', '浙江省宁波市江北区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330206', '浙江省宁波市北仑区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330211', '浙江省宁波市镇海区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330212', '浙江省宁波市鄞州区', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330225', '浙江省象山县', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330226', '浙江省宁海县', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330281', '浙江省余姚市', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330282', '浙江省慈溪市', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330283', '浙江省奉化市', '330200'); +INSERT INTO `base_administrative_division` VALUES ('330300', '浙江省温州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330301', '浙江省温州市市辖区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330302', '浙江省温州市鹿城区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330303', '浙江省温州市龙湾区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330304', '浙江省温州市瓯海区', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330322', '浙江省洞头县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330324', '浙江省永嘉县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330326', '浙江省平阳县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330327', '浙江省苍南县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330328', '浙江省文成县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330329', '浙江省泰顺县', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330381', '浙江省瑞安市', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330382', '浙江省乐清市', '330300'); +INSERT INTO `base_administrative_division` VALUES ('330400', '浙江省嘉兴市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330401', '浙江省嘉兴市市辖区', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330402', '浙江省嘉兴市南湖区', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330411', '浙江省嘉兴市秀洲区', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330421', '浙江省嘉善县', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330424', '浙江省海盐县', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330481', '浙江省海宁市', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330482', '浙江省平湖市', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330483', '浙江省桐乡市', '330400'); +INSERT INTO `base_administrative_division` VALUES ('330500', '浙江省湖州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330501', '浙江省湖州市市辖区', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330502', '浙江省湖州市吴兴区', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330503', '浙江省湖州市南浔区', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330521', '浙江省德清县', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330522', '浙江省长兴县', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330523', '浙江省安吉县', '330500'); +INSERT INTO `base_administrative_division` VALUES ('330600', '浙江省绍兴市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330601', '浙江省绍兴市市辖区', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330602', '浙江省绍兴市越城区', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330621', '浙江省绍兴县', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330624', '浙江省新昌县', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330681', '浙江省诸暨市', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330682', '浙江省上虞市', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330683', '浙江省嵊州市', '330600'); +INSERT INTO `base_administrative_division` VALUES ('330700', '浙江省金华市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330701', '浙江省金华市市辖区', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330702', '浙江省金华市婺城区', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330703', '浙江省金华市金东区', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330723', '浙江省武义县', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330726', '浙江省浦江县', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330727', '浙江省磐安县', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330781', '浙江省兰溪市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330782', '浙江省义乌市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330783', '浙江省东阳市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330784', '浙江省永康市', '330700'); +INSERT INTO `base_administrative_division` VALUES ('330800', '浙江省衢州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330801', '浙江省衢州市市辖区', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330802', '浙江省衢州市柯城区', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330803', '浙江省衢州市衢江区', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330822', '浙江省常山县', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330824', '浙江省开化县', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330825', '浙江省龙游县', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330881', '浙江省江山市', '330800'); +INSERT INTO `base_administrative_division` VALUES ('330900', '浙江省舟山市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('330901', '浙江省舟山市市辖区', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330902', '浙江省舟山市定海区', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330903', '浙江省舟山市普陀区', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330921', '浙江省岱山县', '330900'); +INSERT INTO `base_administrative_division` VALUES ('330922', '浙江省嵊泗县', '330900'); +INSERT INTO `base_administrative_division` VALUES ('331000', '浙江省台州市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('331001', '浙江省台州市市辖区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331002', '浙江省台州市椒江区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331003', '浙江省台州市黄岩区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331004', '浙江省台州市路桥区', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331021', '浙江省玉环县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331022', '浙江省三门县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331023', '浙江省天台县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331024', '浙江省仙居县', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331081', '浙江省温岭市', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331082', '浙江省临海市', '331000'); +INSERT INTO `base_administrative_division` VALUES ('331100', '浙江省丽水市', '330000'); +INSERT INTO `base_administrative_division` VALUES ('331101', '浙江省丽水市市辖区', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331102', '浙江省丽水市莲都区', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331121', '浙江省青田县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331122', '浙江省缙云县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331123', '浙江省遂昌县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331124', '浙江省松阳县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331125', '浙江省云和县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331126', '浙江省庆元县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331127', '浙江省景宁畲族自治县', '331100'); +INSERT INTO `base_administrative_division` VALUES ('331181', '浙江省龙泉市', '331100'); +INSERT INTO `base_administrative_division` VALUES ('340000', '安徽省', '0'); +INSERT INTO `base_administrative_division` VALUES ('340100', '安徽省合肥市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340101', '安徽省合肥市市辖区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340102', '安徽省合肥市瑶海区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340103', '安徽省合肥市庐阳区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340104', '安徽省合肥市蜀山区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340111', '安徽省合肥市包河区', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340121', '安徽省长丰县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340122', '安徽省肥东县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340123', '安徽省肥西县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340124', '安徽省庐江县', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340181', '安徽省巢湖市', '340100'); +INSERT INTO `base_administrative_division` VALUES ('340200', '安徽省芜湖市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340201', '安徽省芜湖市市辖区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340202', '安徽省芜湖市镜湖区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340203', '安徽省芜湖市弋江区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340207', '安徽省芜湖市鸠江区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340208', '安徽省芜湖市三山区', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340221', '安徽省芜湖县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340222', '安徽省繁昌县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340223', '安徽省南陵县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340225', '安徽省无为县', '340200'); +INSERT INTO `base_administrative_division` VALUES ('340300', '安徽省蚌埠市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340301', '安徽省蚌埠市市辖区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340302', '安徽省蚌埠市龙子湖区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340303', '安徽省蚌埠市蚌山区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340304', '安徽省蚌埠市禹会区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340311', '安徽省蚌埠市淮上区', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340321', '安徽省怀远县', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340322', '安徽省五河县', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340323', '安徽省固镇县', '340300'); +INSERT INTO `base_administrative_division` VALUES ('340400', '安徽省淮南市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340401', '安徽省淮南市市辖区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340402', '安徽省淮南市大通区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340403', '安徽省淮南市田家庵区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340404', '安徽省淮南市谢家集区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340405', '安徽省淮南市八公山区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340406', '安徽省淮南市潘集区', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340421', '安徽省凤台县', '340400'); +INSERT INTO `base_administrative_division` VALUES ('340500', '安徽省马鞍山市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340501', '安徽省马鞍山市市辖区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340502', '安徽省马鞍山市金家庄区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340503', '安徽省马鞍山市花山区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340504', '安徽省马鞍山市雨山区', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340521', '安徽省当涂县', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340522', '安徽省含山县', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340523', '安徽省和县', '340500'); +INSERT INTO `base_administrative_division` VALUES ('340600', '安徽省淮北市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340601', '安徽省淮北市市辖区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340602', '安徽省淮北市杜集区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340603', '安徽省淮北市相山区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340604', '安徽省淮北市烈山区', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340621', '安徽省濉溪县', '340600'); +INSERT INTO `base_administrative_division` VALUES ('340700', '安徽省铜陵市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340701', '安徽省铜陵市市辖区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340702', '安徽省铜陵市铜官山区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340703', '安徽省铜陵市狮子山区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340711', '安徽省铜陵市郊区', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340721', '安徽省铜陵县', '340700'); +INSERT INTO `base_administrative_division` VALUES ('340800', '安徽省安庆市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('340801', '安徽省安庆市市辖区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340802', '安徽省安庆市迎江区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340803', '安徽省安庆市大观区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340811', '安徽省安庆市宜秀区', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340822', '安徽省怀宁县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340823', '安徽省枞阳县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340824', '安徽省潜山县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340825', '安徽省太湖县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340826', '安徽省宿松县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340827', '安徽省望江县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340828', '安徽省岳西县', '340800'); +INSERT INTO `base_administrative_division` VALUES ('340881', '安徽省桐城市', '340800'); +INSERT INTO `base_administrative_division` VALUES ('341000', '安徽省黄山市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341001', '安徽省黄山市市辖区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341002', '安徽省黄山市屯溪区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341003', '安徽省黄山市黄山区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341004', '安徽省黄山市徽州区', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341021', '安徽省歙县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341022', '安徽省休宁县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341023', '安徽省黟县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341024', '安徽省祁门县', '341000'); +INSERT INTO `base_administrative_division` VALUES ('341100', '安徽省滁州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341101', '安徽省滁州市市辖区', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341102', '安徽省滁州市琅琊区', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341103', '安徽省滁州市南谯区', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341122', '安徽省来安县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341124', '安徽省全椒县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341125', '安徽省定远县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341126', '安徽省凤阳县', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341181', '安徽省天长市', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341182', '安徽省明光市', '341100'); +INSERT INTO `base_administrative_division` VALUES ('341200', '安徽省阜阳市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341201', '安徽省阜阳市市辖区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341202', '安徽省阜阳市颍州区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341203', '安徽省阜阳市颍东区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341204', '安徽省阜阳市颍泉区', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341221', '安徽省临泉县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341222', '安徽省太和县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341225', '安徽省阜南县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341226', '安徽省颍上县', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341282', '安徽省界首市', '341200'); +INSERT INTO `base_administrative_division` VALUES ('341300', '安徽省宿州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341301', '安徽省宿州市市辖区', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341302', '安徽省宿州市埇桥区', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341321', '安徽省砀山县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341322', '安徽省萧县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341323', '安徽省灵璧县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341324', '安徽省泗县', '341300'); +INSERT INTO `base_administrative_division` VALUES ('341500', '安徽省六安市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341501', '安徽省六安市市辖区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341502', '安徽省六安市金安区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341503', '安徽省六安市裕安区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341504', '安徽省叶集试验区', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341521', '安徽省寿县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341522', '安徽省霍邱县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341523', '安徽省舒城县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341524', '安徽省金寨县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341525', '安徽省霍山县', '341500'); +INSERT INTO `base_administrative_division` VALUES ('341600', '安徽省亳州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341601', '安徽省亳州市市辖区', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341602', '安徽省亳州市谯城区', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341621', '安徽省涡阳县', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341622', '安徽省蒙城县', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341623', '安徽省利辛县', '341600'); +INSERT INTO `base_administrative_division` VALUES ('341700', '安徽省池州市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341701', '安徽省池州市市辖区', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341702', '安徽省池州市贵池区', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341721', '安徽省东至县', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341722', '安徽省石台县', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341723', '安徽省青阳县', '341700'); +INSERT INTO `base_administrative_division` VALUES ('341800', '安徽省宣城市', '340000'); +INSERT INTO `base_administrative_division` VALUES ('341801', '安徽省宣城市市辖区', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341802', '安徽省宣城市宣州区', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341821', '安徽省郎溪县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341822', '安徽省广德县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341823', '安徽省泾县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341824', '安徽省绩溪县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341825', '安徽省旌德县', '341800'); +INSERT INTO `base_administrative_division` VALUES ('341881', '安徽省宁国市', '341800'); +INSERT INTO `base_administrative_division` VALUES ('350000', '福建省', '0'); +INSERT INTO `base_administrative_division` VALUES ('350100', '福建省福州市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350101', '福建省福州市市辖区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350102', '福建省福州市鼓楼区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350103', '福建省福州市台江区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350104', '福建省福州市仓山区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350105', '福建省福州市马尾区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350111', '福建省福州市晋安区', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350121', '福建省闽侯县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350122', '福建省连江县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350123', '福建省罗源县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350124', '福建省闽清县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350125', '福建省永泰县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350128', '福建省平潭县', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350181', '福建省福清市', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350182', '福建省长乐市', '350100'); +INSERT INTO `base_administrative_division` VALUES ('350200', '福建省厦门市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350201', '福建省厦门市市辖区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350203', '福建省厦门市思明区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350205', '福建省厦门市海沧区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350206', '福建省厦门市湖里区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350211', '福建省厦门市集美区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350212', '福建省厦门市同安区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350213', '福建省厦门市翔安区', '350200'); +INSERT INTO `base_administrative_division` VALUES ('350300', '福建省莆田市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350301', '福建省莆田市市辖区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350302', '福建省莆田市城厢区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350303', '福建省莆田市涵江区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350304', '福建省莆田市荔城区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350305', '福建省莆田市秀屿区', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350322', '福建省仙游县', '350300'); +INSERT INTO `base_administrative_division` VALUES ('350400', '福建省三明市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350401', '福建省三明市市辖区', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350402', '福建省三明市梅列区', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350403', '福建省三明市三元区', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350421', '福建省明溪县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350423', '福建省清流县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350424', '福建省宁化县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350425', '福建省大田县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350426', '福建省尤溪县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350427', '福建省沙县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350428', '福建省将乐县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350429', '福建省泰宁县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350430', '福建省建宁县', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350481', '福建省永安市', '350400'); +INSERT INTO `base_administrative_division` VALUES ('350500', '福建省泉州市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350501', '福建省泉州市市辖区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350502', '福建省泉州市鲤城区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350503', '福建省泉州市丰泽区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350504', '福建省泉州市洛江区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350505', '福建省泉州市泉港区', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350521', '福建省惠安县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350524', '福建省安溪县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350525', '福建省永春县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350526', '福建省德化县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350527', '福建省金门县', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350581', '福建省石狮市', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350582', '福建省晋江市', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350583', '福建省南安市', '350500'); +INSERT INTO `base_administrative_division` VALUES ('350600', '福建省漳州市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350601', '福建省漳州市市辖区', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350602', '福建省漳州市芗城区', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350603', '福建省漳州市龙文区', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350622', '福建省云霄县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350623', '福建省漳浦县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350624', '福建省诏安县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350625', '福建省长泰县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350626', '福建省东山县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350627', '福建省南靖县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350628', '福建省平和县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350629', '福建省华安县', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350681', '福建省龙海市', '350600'); +INSERT INTO `base_administrative_division` VALUES ('350700', '福建省南平市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350701', '福建省南平市市辖区', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350702', '福建省南平市延平区', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350721', '福建省顺昌县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350722', '福建省浦城县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350723', '福建省光泽县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350724', '福建省松溪县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350725', '福建省政和县', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350781', '福建省邵武市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350782', '福建省武夷山市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350783', '福建省建瓯市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350784', '福建省建阳市', '350700'); +INSERT INTO `base_administrative_division` VALUES ('350800', '福建省龙岩市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350801', '福建省龙岩市市辖区', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350802', '福建省龙岩市新罗区', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350821', '福建省长汀县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350822', '福建省永定县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350823', '福建省上杭县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350824', '福建省武平县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350825', '福建省连城县', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350881', '福建省漳平市', '350800'); +INSERT INTO `base_administrative_division` VALUES ('350900', '福建省宁德市', '350000'); +INSERT INTO `base_administrative_division` VALUES ('350901', '福建省宁德市市辖区', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350902', '福建省宁德市蕉城区', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350921', '福建省霞浦县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350922', '福建省古田县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350923', '福建省屏南县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350924', '福建省寿宁县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350925', '福建省周宁县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350926', '福建省柘荣县', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350981', '福建省福安市', '350900'); +INSERT INTO `base_administrative_division` VALUES ('350982', '福建省福鼎市', '350900'); +INSERT INTO `base_administrative_division` VALUES ('360000', '江西省', '0'); +INSERT INTO `base_administrative_division` VALUES ('360100', '江西省南昌市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360101', '江西省南昌市市辖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360102', '江西省南昌市东湖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360103', '江西省南昌市西湖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360104', '江西省南昌市青云谱区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360105', '江西省南昌市湾里区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360111', '江西省南昌市青山湖区', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360121', '江西省南昌县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360122', '江西省新建县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360123', '江西省安义县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360124', '江西省进贤县', '360100'); +INSERT INTO `base_administrative_division` VALUES ('360200', '江西省景德镇市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360201', '江西省景德镇市市辖区', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360202', '江西省景德镇市昌江区', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360203', '江西省景德镇市珠山区', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360222', '江西省浮梁县', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360281', '江西省乐平市', '360200'); +INSERT INTO `base_administrative_division` VALUES ('360300', '江西省萍乡市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360301', '江西省萍乡市市辖区', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360302', '江西省萍乡市安源区', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360313', '江西省萍乡市湘东区', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360321', '江西省莲花县', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360322', '江西省上栗县', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360323', '江西省芦溪县', '360300'); +INSERT INTO `base_administrative_division` VALUES ('360400', '江西省九江市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360401', '江西省九江市市辖区', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360402', '江西省九江市庐山区', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360403', '江西省九江市浔阳区', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360421', '江西省九江县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360423', '江西省武宁县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360424', '江西省修水县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360425', '江西省永修县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360426', '江西省德安县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360427', '江西省星子县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360428', '江西省都昌县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360429', '江西省湖口县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360430', '江西省彭泽县', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360481', '江西省瑞昌市', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360482', '江西省共青城市', '360400'); +INSERT INTO `base_administrative_division` VALUES ('360500', '江西省新余市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360501', '江西省新余市市辖区', '360500'); +INSERT INTO `base_administrative_division` VALUES ('360502', '江西省新余市渝水区', '360500'); +INSERT INTO `base_administrative_division` VALUES ('360521', '江西省分宜县', '360500'); +INSERT INTO `base_administrative_division` VALUES ('360600', '江西省鹰潭市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360601', '江西省鹰潭市市辖区', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360602', '江西省鹰潭市月湖区', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360622', '江西省余江县', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360681', '江西省贵溪市', '360600'); +INSERT INTO `base_administrative_division` VALUES ('360700', '江西省赣州市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360701', '江西省赣州市市辖区', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360702', '江西省赣州市章贡区', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360721', '江西省赣县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360722', '江西省信丰县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360723', '江西省大余县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360724', '江西省上犹县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360725', '江西省崇义县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360726', '江西省安远县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360727', '江西省龙南县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360728', '江西省定南县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360729', '江西省全南县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360730', '江西省宁都县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360731', '江西省于都县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360732', '江西省兴国县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360733', '江西省会昌县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360734', '江西省寻乌县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360735', '江西省石城县', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360781', '江西省瑞金市', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360782', '江西省南康市', '360700'); +INSERT INTO `base_administrative_division` VALUES ('360800', '江西省吉安市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360801', '江西省吉安市市辖区', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360802', '江西省吉安市吉州区', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360803', '江西省吉安市青原区', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360821', '江西省吉安县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360822', '江西省吉水县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360823', '江西省峡江县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360824', '江西省新干县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360825', '江西省永丰县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360826', '江西省泰和县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360827', '江西省遂川县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360828', '江西省万安县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360829', '江西省安福县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360830', '江西省永新县', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360881', '江西省井冈山市', '360800'); +INSERT INTO `base_administrative_division` VALUES ('360900', '江西省宜春市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('360901', '江西省宜春市市辖区', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360902', '江西省宜春市袁州区', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360921', '江西省奉新县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360922', '江西省万载县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360923', '江西省上高县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360924', '江西省宜丰县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360925', '江西省靖安县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360926', '江西省铜鼓县', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360981', '江西省丰城市', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360982', '江西省樟树市', '360900'); +INSERT INTO `base_administrative_division` VALUES ('360983', '江西省高安市', '360900'); +INSERT INTO `base_administrative_division` VALUES ('361000', '江西省抚州市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('361001', '江西省抚州市市辖区', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361002', '江西省抚州市临川区', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361021', '江西省南城县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361022', '江西省黎川县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361023', '江西省南丰县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361024', '江西省崇仁县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361025', '江西省乐安县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361026', '江西省宜黄县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361027', '江西省金溪县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361028', '江西省资溪县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361029', '江西省东乡县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361030', '江西省广昌县', '361000'); +INSERT INTO `base_administrative_division` VALUES ('361100', '江西省上饶市', '360000'); +INSERT INTO `base_administrative_division` VALUES ('361101', '江西省上饶市市辖区', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361102', '江西省上饶市信州区', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361121', '江西省上饶县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361122', '江西省广丰县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361123', '江西省玉山县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361124', '江西省铅山县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361125', '江西省横峰县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361126', '江西省弋阳县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361127', '江西省余干县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361128', '江西省鄱阳县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361129', '江西省万年县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361130', '江西省婺源县', '361100'); +INSERT INTO `base_administrative_division` VALUES ('361181', '江西省德兴市', '361100'); +INSERT INTO `base_administrative_division` VALUES ('370000', '山东省', '0'); +INSERT INTO `base_administrative_division` VALUES ('370100', '山东省济南市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370101', '山东省济南市市辖区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370102', '山东省济南市历下区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370103', '山东省济南市市中区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370104', '山东省济南市槐荫区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370105', '山东省济南市天桥区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370112', '山东省济南市历城区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370113', '山东省济南市长清区', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370124', '山东省平阴县', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370125', '山东省济阳县', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370126', '山东省商河县', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370181', '山东省章丘市', '370100'); +INSERT INTO `base_administrative_division` VALUES ('370200', '山东省青岛市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370201', '山东省青岛市市辖区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370202', '山东省青岛市市南区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370203', '山东省青岛市市北区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370205', '山东省青岛市四方区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370211', '山东省青岛市黄岛区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370212', '山东省青岛市崂山区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370213', '山东省青岛市李沧区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370214', '山东省青岛市城阳区', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370281', '山东省胶州市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370282', '山东省即墨市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370283', '山东省平度市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370284', '山东省胶南市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370285', '山东省莱西市', '370200'); +INSERT INTO `base_administrative_division` VALUES ('370300', '山东省淄博市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370301', '山东省淄博市市辖区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370302', '山东省淄博市淄川区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370303', '山东省淄博市张店区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370304', '山东省淄博市博山区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370305', '山东省淄博市临淄区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370306', '山东省淄博市周村区', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370321', '山东省桓台县', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370322', '山东省高青县', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370323', '山东省沂源县', '370300'); +INSERT INTO `base_administrative_division` VALUES ('370400', '山东省枣庄市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370401', '山东省枣庄市市辖区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370402', '山东省枣庄市市中区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370403', '山东省枣庄市薛城区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370404', '山东省枣庄市峄城区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370405', '山东省枣庄市台儿庄区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370406', '山东省枣庄市山亭区', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370481', '山东省滕州市', '370400'); +INSERT INTO `base_administrative_division` VALUES ('370500', '山东省东营市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370501', '山东省东营市市辖区', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370502', '山东省东营市东营区', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370503', '山东省东营市河口区', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370521', '山东省垦利县', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370522', '山东省利津县', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370523', '山东省广饶县', '370500'); +INSERT INTO `base_administrative_division` VALUES ('370600', '山东省烟台市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370601', '山东省烟台市市辖区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370602', '山东省烟台市芝罘区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370611', '山东省烟台市福山区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370612', '山东省烟台市牟平区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370613', '山东省烟台市莱山区', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370634', '山东省长岛县', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370681', '山东省龙口市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370682', '山东省莱阳市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370683', '山东省莱州市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370684', '山东省蓬莱市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370685', '山东省招远市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370686', '山东省栖霞市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370687', '山东省海阳市', '370600'); +INSERT INTO `base_administrative_division` VALUES ('370700', '山东省潍坊市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370701', '山东省潍坊市市辖区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370702', '山东省潍坊市潍城区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370703', '山东省潍坊市寒亭区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370704', '山东省潍坊市坊子区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370705', '山东省潍坊市奎文区', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370724', '山东省临朐县', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370725', '山东省昌乐县', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370781', '山东省青州市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370782', '山东省诸城市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370783', '山东省寿光市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370784', '山东省安丘市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370785', '山东省高密市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370786', '山东省昌邑市', '370700'); +INSERT INTO `base_administrative_division` VALUES ('370800', '山东省济宁市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370801', '山东省济宁市市辖区', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370802', '山东省济宁市市中区', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370811', '山东省济宁市任城区', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370826', '山东省微山县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370827', '山东省鱼台县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370828', '山东省金乡县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370829', '山东省嘉祥县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370830', '山东省汶上县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370831', '山东省泗水县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370832', '山东省梁山县', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370881', '山东省曲阜市', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370882', '山东省兖州市', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370883', '山东省邹城市', '370800'); +INSERT INTO `base_administrative_division` VALUES ('370900', '山东省泰安市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('370901', '山东省泰安市市辖区', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370902', '山东省泰安市泰山区', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370903', '山东省泰安市岱岳区', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370921', '山东省宁阳县', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370923', '山东省东平县', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370982', '山东省新泰市', '370900'); +INSERT INTO `base_administrative_division` VALUES ('370983', '山东省肥城市', '370900'); +INSERT INTO `base_administrative_division` VALUES ('371000', '山东省威海市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371001', '山东省威海市市辖区', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371002', '山东省威海市环翠区', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371081', '山东省文登市', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371082', '山东省荣成市', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371083', '山东省乳山市', '371000'); +INSERT INTO `base_administrative_division` VALUES ('371100', '山东省日照市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371101', '山东省日照市市辖区', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371102', '山东省日照市东港区', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371103', '山东省日照市岚山区', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371121', '山东省五莲县', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371122', '山东省莒县', '371100'); +INSERT INTO `base_administrative_division` VALUES ('371200', '山东省莱芜市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371201', '山东省莱芜市市辖区', '371200'); +INSERT INTO `base_administrative_division` VALUES ('371202', '山东省莱芜市莱城区', '371200'); +INSERT INTO `base_administrative_division` VALUES ('371203', '山东省莱芜市钢城区', '371200'); +INSERT INTO `base_administrative_division` VALUES ('371300', '山东省临沂市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371301', '山东省临沂市市辖区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371302', '山东省临沂市兰山区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371311', '山东省临沂市罗庄区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371312', '山东省临沂市河东区', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371321', '山东省沂南县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371322', '山东省郯城县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371323', '山东省沂水县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371324', '山东省苍山县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371325', '山东省费县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371326', '山东省平邑县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371327', '山东省莒南县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371328', '山东省蒙阴县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371329', '山东省临沭县', '371300'); +INSERT INTO `base_administrative_division` VALUES ('371400', '山东省德州市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371401', '山东省德州市市辖区', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371402', '山东省德州市德城区', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371421', '山东省陵县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371422', '山东省宁津县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371423', '山东省庆云县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371424', '山东省临邑县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371425', '山东省齐河县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371426', '山东省平原县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371427', '山东省夏津县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371428', '山东省武城县', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371481', '山东省乐陵市', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371482', '山东省禹城市', '371400'); +INSERT INTO `base_administrative_division` VALUES ('371500', '山东省聊城市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371501', '山东省聊城市市辖区', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371502', '山东省聊城市东昌府区', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371521', '山东省阳谷县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371522', '山东省莘县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371523', '山东省茌平县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371524', '山东省东阿县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371525', '山东省冠县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371526', '山东省高唐县', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371581', '山东省临清市', '371500'); +INSERT INTO `base_administrative_division` VALUES ('371600', '山东省滨州市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371601', '山东省滨州市市辖区', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371602', '山东省滨州市滨城区', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371621', '山东省惠民县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371622', '山东省阳信县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371623', '山东省无棣县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371624', '山东省沾化县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371625', '山东省博兴县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371626', '山东省邹平县', '371600'); +INSERT INTO `base_administrative_division` VALUES ('371700', '山东省菏泽市', '370000'); +INSERT INTO `base_administrative_division` VALUES ('371701', '山东省菏泽市市辖区', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371702', '山东省菏泽市牡丹区', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371721', '山东省曹县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371722', '山东省单县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371723', '山东省成武县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371724', '山东省巨野县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371725', '山东省郓城县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371726', '山东省鄄城县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371727', '山东省定陶县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('371728', '山东省东明县', '371700'); +INSERT INTO `base_administrative_division` VALUES ('410000', '河南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('410100', '河南省郑州市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410101', '河南省郑州市市辖区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410102', '河南省郑州市中原区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410103', '河南省郑州市二七区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410104', '河南省郑州市管城回族区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410105', '河南省郑州市金水区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410106', '河南省郑州市上街区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410108', '河南省郑州市惠济区', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410122', '河南省中牟县', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410181', '河南省巩义市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410182', '河南省荥阳市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410183', '河南省新密市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410184', '河南省新郑市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410185', '河南省登封市', '410100'); +INSERT INTO `base_administrative_division` VALUES ('410200', '河南省开封市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410201', '河南省开封市市辖区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410202', '河南省开封市龙亭区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410203', '河南省开封市顺河回族区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410204', '河南省开封市鼓楼区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410205', '河南省开封市禹王台区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410211', '河南省开封市金明区', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410221', '河南省杞县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410222', '河南省通许县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410223', '河南省尉氏县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410224', '河南省开封县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410225', '河南省兰考县', '410200'); +INSERT INTO `base_administrative_division` VALUES ('410300', '河南省洛阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410301', '河南省洛阳市市辖区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410302', '河南省洛阳市老城区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410303', '河南省洛阳市西工区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410304', '河南省洛阳市廛河回族区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410305', '河南省洛阳市涧西区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410306', '河南省洛阳市吉利区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410307', '河南省洛阳市洛龙区', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410322', '河南省孟津县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410323', '河南省新安县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410324', '河南省栾川县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410325', '河南省嵩县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410326', '河南省汝阳县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410327', '河南省宜阳县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410328', '河南省洛宁县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410329', '河南省伊川县', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410381', '河南省偃师市', '410300'); +INSERT INTO `base_administrative_division` VALUES ('410400', '河南省平顶山市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410401', '河南省平顶山市市辖区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410402', '河南省平顶山市新华区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410403', '河南省平顶山市卫东区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410404', '河南省平顶山市石龙区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410411', '河南省平顶山市湛河区', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410421', '河南省宝丰县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410422', '河南省叶县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410423', '河南省鲁山县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410425', '河南省郏县', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410481', '河南省舞钢市', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410482', '河南省汝州市', '410400'); +INSERT INTO `base_administrative_division` VALUES ('410500', '河南省安阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410501', '河南省安阳市市辖区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410502', '河南省安阳市文峰区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410503', '河南省安阳市北关区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410505', '河南省安阳市殷都区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410506', '河南省安阳市龙安区', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410522', '河南省安阳县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410523', '河南省汤阴县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410526', '河南省滑县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410527', '河南省内黄县', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410581', '河南省林州市', '410500'); +INSERT INTO `base_administrative_division` VALUES ('410600', '河南省鹤壁市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410601', '河南省鹤壁市市辖区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410602', '河南省鹤壁市鹤山区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410603', '河南省鹤壁市山城区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410611', '河南省鹤壁市淇滨区', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410621', '河南省浚县', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410622', '河南省淇县', '410600'); +INSERT INTO `base_administrative_division` VALUES ('410700', '河南省新乡市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410701', '河南省新乡市市辖区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410702', '河南省新乡市红旗区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410703', '河南省新乡市卫滨区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410704', '河南省新乡市凤泉区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410711', '河南省新乡市牧野区', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410721', '河南省新乡县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410724', '河南省获嘉县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410725', '河南省原阳县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410726', '河南省延津县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410727', '河南省封丘县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410728', '河南省长垣县', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410781', '河南省卫辉市', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410782', '河南省辉县市', '410700'); +INSERT INTO `base_administrative_division` VALUES ('410800', '河南省焦作市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410801', '河南省焦作市市辖区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410802', '河南省焦作市解放区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410803', '河南省焦作市中站区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410804', '河南省焦作市马村区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410811', '河南省焦作市山阳区', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410821', '河南省修武县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410822', '河南省博爱县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410823', '河南省武陟县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410825', '河南省温县', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410882', '河南省沁阳市', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410883', '河南省孟州市', '410800'); +INSERT INTO `base_administrative_division` VALUES ('410900', '河南省濮阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('410901', '河南省濮阳市市辖区', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410902', '河南省濮阳市华龙区', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410922', '河南省清丰县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410923', '河南省南乐县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410926', '河南省范县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410927', '河南省台前县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('410928', '河南省濮阳县', '410900'); +INSERT INTO `base_administrative_division` VALUES ('411000', '河南省许昌市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411001', '河南省许昌市市辖区', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411002', '河南省许昌市魏都区', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411023', '河南省许昌县', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411024', '河南省鄢陵县', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411025', '河南省襄城县', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411081', '河南省禹州市', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411082', '河南省长葛市', '411000'); +INSERT INTO `base_administrative_division` VALUES ('411100', '河南省漯河市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411101', '河南省漯河市市辖区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411102', '河南省漯河市源汇区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411103', '河南省漯河市郾城区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411104', '河南省漯河市召陵区', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411121', '河南省舞阳县', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411122', '河南省临颍县', '411100'); +INSERT INTO `base_administrative_division` VALUES ('411200', '河南省三门峡市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411201', '河南省三门峡市市辖区', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411202', '河南省三门峡市湖滨区', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411221', '河南省渑池县', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411222', '河南省陕县', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411224', '河南省卢氏县', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411281', '河南省义马市', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411282', '河南省灵宝市', '411200'); +INSERT INTO `base_administrative_division` VALUES ('411300', '河南省南阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411301', '河南省南阳市市辖区', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411302', '河南省南阳市宛城区', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411303', '河南省南阳市卧龙区', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411321', '河南省南召县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411322', '河南省方城县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411323', '河南省西峡县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411324', '河南省镇平县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411325', '河南省内乡县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411326', '河南省淅川县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411327', '河南省社旗县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411328', '河南省唐河县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411329', '河南省新野县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411330', '河南省桐柏县', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411381', '河南省邓州市', '411300'); +INSERT INTO `base_administrative_division` VALUES ('411400', '河南省商丘市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411401', '河南省商丘市市辖区', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411402', '河南省商丘市梁园区', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411403', '河南省商丘市睢阳区', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411421', '河南省民权县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411422', '河南省睢县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411423', '河南省宁陵县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411424', '河南省柘城县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411425', '河南省虞城县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411426', '河南省夏邑县', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411481', '河南省永城市', '411400'); +INSERT INTO `base_administrative_division` VALUES ('411500', '河南省信阳市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411501', '河南省信阳市市辖区', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411502', '河南省信阳市师河区', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411503', '河南省信阳市平桥区', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411521', '河南省罗山县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411522', '河南省光山县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411523', '河南省新县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411524', '河南省商城县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411525', '河南省固始县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411526', '河南省潢川县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411527', '河南省淮滨县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411528', '河南省息县', '411500'); +INSERT INTO `base_administrative_division` VALUES ('411600', '河南省周口市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411601', '河南省周口市市辖区', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411602', '河南省周口市川汇区', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411621', '河南省扶沟县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411622', '河南省西华县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411623', '河南省商水县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411624', '河南省沈丘县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411625', '河南省郸城县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411626', '河南省淮阳县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411627', '河南省太康县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411628', '河南省鹿邑县', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411681', '河南省项城市', '411600'); +INSERT INTO `base_administrative_division` VALUES ('411700', '河南省驻马店市', '410000'); +INSERT INTO `base_administrative_division` VALUES ('411701', '河南省驻马店市市辖区', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411702', '河南省驻马店市驿城区', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411721', '河南省西平县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411722', '河南省上蔡县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411723', '河南省平舆县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411724', '河南省正阳县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411725', '河南省确山县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411726', '河南省泌阳县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411727', '河南省汝南县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411728', '河南省遂平县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('411729', '河南省新蔡县', '411700'); +INSERT INTO `base_administrative_division` VALUES ('419000', '河南省省直辖县级行政区划', '410000'); +INSERT INTO `base_administrative_division` VALUES ('419001', '河南省济源市', '419000'); +INSERT INTO `base_administrative_division` VALUES ('420000', '湖北省', '0'); +INSERT INTO `base_administrative_division` VALUES ('420100', '湖北省武汉市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420101', '湖北省武汉市市辖区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420102', '湖北省武汉市江岸区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420103', '湖北省武汉市江汉区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420104', '湖北省武汉市硚口区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420105', '湖北省武汉市汉阳区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420106', '湖北省武汉市武昌区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420107', '湖北省武汉市青山区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420111', '湖北省武汉市洪山区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420112', '湖北省武汉市东西湖区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420113', '湖北省武汉市汉南区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420114', '湖北省武汉市蔡甸区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420115', '湖北省武汉市江夏区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420116', '湖北省武汉市黄陂区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420117', '湖北省武汉市新洲区', '420100'); +INSERT INTO `base_administrative_division` VALUES ('420200', '湖北省黄石市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420201', '湖北省黄石市市辖区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420202', '湖北省黄石市黄石港区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420203', '湖北省黄石市西塞山区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420204', '湖北省黄石市下陆区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420205', '湖北省黄石市铁山区', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420222', '湖北省阳新县', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420281', '湖北省大冶市', '420200'); +INSERT INTO `base_administrative_division` VALUES ('420300', '湖北省十堰市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420301', '湖北省十堰市市辖区', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420302', '湖北省十堰市茅箭区', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420303', '湖北省十堰市张湾区', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420321', '湖北省郧县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420322', '湖北省郧西县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420323', '湖北省竹山县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420324', '湖北省竹溪县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420325', '湖北省房县', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420381', '湖北省丹江口市', '420300'); +INSERT INTO `base_administrative_division` VALUES ('420500', '湖北省宜昌市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420501', '湖北省宜昌市市辖区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420502', '湖北省宜昌市西陵区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420503', '湖北省宜昌市伍家岗区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420504', '湖北省宜昌市点军区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420505', '湖北省宜昌市猇亭区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420506', '湖北省宜昌市夷陵区', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420525', '湖北省远安县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420526', '湖北省兴山县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420527', '湖北省秭归县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420528', '湖北省长阳土家族自治县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420529', '湖北省五峰土家族自治县', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420581', '湖北省宜都市', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420582', '湖北省当阳市', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420583', '湖北省枝江市', '420500'); +INSERT INTO `base_administrative_division` VALUES ('420600', '湖北省襄阳市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420601', '湖北省襄阳市市辖区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420602', '湖北省襄阳市襄城区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420606', '湖北省襄阳市樊城区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420607', '湖北省襄阳市襄州区', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420624', '湖北省南漳县', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420625', '湖北省谷城县', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420626', '湖北省保康县', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420682', '湖北省老河口市', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420683', '湖北省枣阳市', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420684', '湖北省宜城市', '420600'); +INSERT INTO `base_administrative_division` VALUES ('420700', '湖北省鄂州市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420701', '湖北省鄂州市市辖区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420702', '湖北省鄂州市梁子湖区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420703', '湖北省鄂州市华容区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420704', '湖北省鄂州市鄂城区', '420700'); +INSERT INTO `base_administrative_division` VALUES ('420800', '湖北省荆门市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420801', '湖北省荆门市市辖区', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420802', '湖北省荆门市东宝区', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420804', '湖北省荆门市掇刀区', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420821', '湖北省京山县', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420822', '湖北省沙洋县', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420881', '湖北省钟祥市', '420800'); +INSERT INTO `base_administrative_division` VALUES ('420900', '湖北省孝感市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('420901', '湖北省孝感市市辖区', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420902', '湖北省孝感市孝南区', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420921', '湖北省孝昌县', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420922', '湖北省大悟县', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420923', '湖北省云梦县', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420981', '湖北省应城市', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420982', '湖北省安陆市', '420900'); +INSERT INTO `base_administrative_division` VALUES ('420984', '湖北省汉川市', '420900'); +INSERT INTO `base_administrative_division` VALUES ('421000', '湖北省荆州市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421001', '湖北省荆州市市辖区', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421002', '湖北省荆州市沙市区', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421003', '湖北省荆州市荆州区', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421022', '湖北省公安县', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421023', '湖北省监利县', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421024', '湖北省江陵县', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421081', '湖北省石首市', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421083', '湖北省洪湖市', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421087', '湖北省松滋市', '421000'); +INSERT INTO `base_administrative_division` VALUES ('421100', '湖北省黄冈市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421101', '湖北省黄冈市市辖区', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421102', '湖北省黄冈市黄州区', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421121', '湖北省团风县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421122', '湖北省红安县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421123', '湖北省罗田县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421124', '湖北省英山县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421125', '湖北省浠水县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421126', '湖北省蕲春县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421127', '湖北省黄梅县', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421181', '湖北省麻城市', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421182', '湖北省武穴市', '421100'); +INSERT INTO `base_administrative_division` VALUES ('421200', '湖北省咸宁市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421201', '湖北省咸宁市市辖区', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421202', '湖北省咸宁市咸安区', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421221', '湖北省嘉鱼县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421222', '湖北省通城县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421223', '湖北省崇阳县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421224', '湖北省通山县', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421281', '湖北省赤壁市', '421200'); +INSERT INTO `base_administrative_division` VALUES ('421300', '湖北省随州市', '420000'); +INSERT INTO `base_administrative_division` VALUES ('421301', '湖北省随州市市辖区', '421300'); +INSERT INTO `base_administrative_division` VALUES ('421302', '湖北省随州市曾都区', '421300'); +INSERT INTO `base_administrative_division` VALUES ('421381', '湖北省广水市', '421300'); +INSERT INTO `base_administrative_division` VALUES ('422800', '湖北省恩施土家族苗族自治州', '420000'); +INSERT INTO `base_administrative_division` VALUES ('422801', '湖北省恩施市', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422802', '湖北省利川市', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422822', '湖北省建始县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422823', '湖北省巴东县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422825', '湖北省宣恩县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422826', '湖北省咸丰县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422827', '湖北省来凤县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('422828', '湖北省鹤峰县', '422800'); +INSERT INTO `base_administrative_division` VALUES ('429000', '湖北省省直辖县级行政区划', '420000'); +INSERT INTO `base_administrative_division` VALUES ('429004', '湖北省仙桃市', '429000'); +INSERT INTO `base_administrative_division` VALUES ('429005', '湖北省潜江市', '429000'); +INSERT INTO `base_administrative_division` VALUES ('429006', '湖北省天门市', '429000'); +INSERT INTO `base_administrative_division` VALUES ('429021', '湖北省神农架林区', '429000'); +INSERT INTO `base_administrative_division` VALUES ('430000', '湖南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('430100', '湖南省长沙市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430101', '湖南省长沙市市辖区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430102', '湖南省长沙市芙蓉区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430103', '湖南省长沙市天心区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430104', '湖南省长沙市岳麓区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430105', '湖南省长沙市开福区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430111', '湖南省长沙市雨花区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430112', '湖南省长沙市望城区', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430121', '湖南省长沙县', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430124', '湖南省宁乡县', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430181', '湖南省浏阳市', '430100'); +INSERT INTO `base_administrative_division` VALUES ('430200', '湖南省株洲市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430201', '湖南省株洲市市辖区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430202', '湖南省株洲市荷塘区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430203', '湖南省株洲市芦淞区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430204', '湖南省株洲市石峰区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430211', '湖南省株洲市天元区', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430221', '湖南省株洲县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430223', '湖南省攸县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430224', '湖南省茶陵县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430225', '湖南省炎陵县', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430281', '湖南省醴陵市', '430200'); +INSERT INTO `base_administrative_division` VALUES ('430300', '湖南省湘潭市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430301', '湖南省湘潭市市辖区', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430302', '湖南省湘潭市雨湖区', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430304', '湖南省湘潭市岳塘区', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430321', '湖南省湘潭县', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430381', '湖南省湘乡市', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430382', '湖南省韶山市', '430300'); +INSERT INTO `base_administrative_division` VALUES ('430400', '湖南省衡阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430401', '湖南省衡阳市市辖区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430405', '湖南省衡阳市珠晖区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430406', '湖南省衡阳市雁峰区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430407', '湖南省衡阳市石鼓区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430408', '湖南省衡阳市蒸湘区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430412', '湖南省衡阳市南岳区', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430421', '湖南省衡阳县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430422', '湖南省衡南县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430423', '湖南省衡山县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430424', '湖南省衡东县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430426', '湖南省祁东县', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430481', '湖南省耒阳市', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430482', '湖南省常宁市', '430400'); +INSERT INTO `base_administrative_division` VALUES ('430500', '湖南省邵阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430501', '湖南省邵阳市市辖区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430502', '湖南省邵阳市双清区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430503', '湖南省邵阳市大祥区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430511', '湖南省邵阳市北塔区', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430521', '湖南省邵东县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430522', '湖南省新邵县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430523', '湖南省邵阳县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430524', '湖南省隆回县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430525', '湖南省洞口县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430527', '湖南省绥宁县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430528', '湖南省新宁县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430529', '湖南省城步苗族自治县', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430581', '湖南省武冈市', '430500'); +INSERT INTO `base_administrative_division` VALUES ('430600', '湖南省岳阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430601', '湖南省岳阳市市辖区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430602', '湖南省岳阳市岳阳楼区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430603', '湖南省岳阳市云溪区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430611', '湖南省岳阳市君山区', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430621', '湖南省岳阳县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430623', '湖南省华容县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430624', '湖南省湘阴县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430626', '湖南省平江县', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430681', '湖南省汨罗市', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430682', '湖南省临湘市', '430600'); +INSERT INTO `base_administrative_division` VALUES ('430700', '湖南省常德市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430701', '湖南省常德市市辖区', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430702', '湖南省常德市武陵区', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430703', '湖南省常德市鼎城区', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430721', '湖南省安乡县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430722', '湖南省汉寿县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430723', '湖南省澧县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430724', '湖南省临澧县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430725', '湖南省桃源县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430726', '湖南省石门县', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430781', '湖南省津市市', '430700'); +INSERT INTO `base_administrative_division` VALUES ('430800', '湖南省张家界市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430801', '湖南省张家界市市辖区', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430802', '湖南省张家界市永定区', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430811', '湖南省张家界市武陵源区', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430821', '湖南省慈利县', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430822', '湖南省桑植县', '430800'); +INSERT INTO `base_administrative_division` VALUES ('430900', '湖南省益阳市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('430901', '湖南省益阳市市辖区', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430902', '湖南省益阳市资阳区', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430903', '湖南省益阳市赫山区', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430921', '湖南省南县', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430922', '湖南省桃江县', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430923', '湖南省安化县', '430900'); +INSERT INTO `base_administrative_division` VALUES ('430981', '湖南省沅江市', '430900'); +INSERT INTO `base_administrative_division` VALUES ('431000', '湖南省郴州市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431001', '湖南省郴州市市辖区', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431002', '湖南省郴州市北湖区', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431003', '湖南省郴州市苏仙区', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431021', '湖南省桂阳县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431022', '湖南省宜章县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431023', '湖南省永兴县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431024', '湖南省嘉禾县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431025', '湖南省临武县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431026', '湖南省汝城县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431027', '湖南省桂东县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431028', '湖南省安仁县', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431081', '湖南省资兴市', '431000'); +INSERT INTO `base_administrative_division` VALUES ('431100', '湖南省永州市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431101', '湖南省永州市市辖区', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431102', '湖南省永州市零陵区', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431103', '湖南省永州市冷水滩区', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431121', '湖南省祁阳县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431122', '湖南省东安县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431123', '湖南省双牌县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431124', '湖南省道县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431125', '湖南省江永县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431126', '湖南省宁远县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431127', '湖南省蓝山县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431128', '湖南省新田县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431129', '湖南省江华瑶族自治县', '431100'); +INSERT INTO `base_administrative_division` VALUES ('431200', '湖南省怀化市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431201', '湖南省怀化市市辖区', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431202', '湖南省怀化市鹤城区', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431221', '湖南省中方县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431222', '湖南省沅陵县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431223', '湖南省辰溪县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431224', '湖南省溆浦县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431225', '湖南省会同县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431226', '湖南省麻阳苗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431227', '湖南省新晃侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431228', '湖南省芷江侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431229', '湖南省靖州苗族侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431230', '湖南省通道侗族自治县', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431281', '湖南省洪江市', '431200'); +INSERT INTO `base_administrative_division` VALUES ('431300', '湖南省娄底市', '430000'); +INSERT INTO `base_administrative_division` VALUES ('431301', '湖南省娄底市市辖区', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431302', '湖南省娄底市娄星区', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431321', '湖南省双峰县', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431322', '湖南省新化县', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431381', '湖南省冷水江市', '431300'); +INSERT INTO `base_administrative_division` VALUES ('431382', '湖南省涟源市', '431300'); +INSERT INTO `base_administrative_division` VALUES ('433100', '湖南省湘西土家族苗族自治州', '430000'); +INSERT INTO `base_administrative_division` VALUES ('433101', '湖南省吉首市', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433122', '湖南省泸溪县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433123', '湖南省凤凰县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433124', '湖南省花垣县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433125', '湖南省保靖县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433126', '湖南省古丈县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433127', '湖南省永顺县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('433130', '湖南省龙山县', '433100'); +INSERT INTO `base_administrative_division` VALUES ('440000', '广东省', '0'); +INSERT INTO `base_administrative_division` VALUES ('440100', '广东省广州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440101', '广东省广州市市辖区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440103', '广东省广州市荔湾区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440104', '广东省广州市越秀区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440105', '广东省广州市海珠区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440106', '广东省广州市天河区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440111', '广东省广州市白云区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440112', '广东省广州市黄埔区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440113', '广东省广州市番禺区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440114', '广东省广州市花都区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440115', '广东省广州市南沙区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440116', '广东省广州市萝岗区', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440183', '广东省增城市', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440184', '广东省从化市', '440100'); +INSERT INTO `base_administrative_division` VALUES ('440200', '广东省韶关市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440201', '广东省韶关市市辖区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440203', '广东省韶关市武江区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440204', '广东省韶关市浈江区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440205', '广东省韶关市曲江区', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440222', '广东省始兴县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440224', '广东省仁化县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440229', '广东省翁源县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440232', '广东省乳源瑶族自治县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440233', '广东省新丰县', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440281', '广东省乐昌市', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440282', '广东省南雄市', '440200'); +INSERT INTO `base_administrative_division` VALUES ('440300', '广东省深圳市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440301', '广东省深圳市市辖区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440303', '广东省深圳市罗湖区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440304', '广东省深圳市福田区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440305', '广东省深圳市南山区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440306', '广东省深圳市宝安区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440307', '广东省深圳市龙岗区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440308', '广东省深圳市盐田区', '440300'); +INSERT INTO `base_administrative_division` VALUES ('440400', '广东省珠海市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440401', '广东省珠海市市辖区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440402', '广东省珠海市香洲区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440403', '广东省珠海市斗门区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440404', '广东省珠海市金湾区', '440400'); +INSERT INTO `base_administrative_division` VALUES ('440500', '广东省汕头市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440501', '广东省汕头市市辖区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440507', '广东省汕头市龙湖区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440511', '广东省汕头市金平区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440512', '广东省汕头市濠江区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440513', '广东省汕头市潮阳区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440514', '广东省汕头市潮南区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440515', '广东省汕头市澄海区', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440523', '广东省南澳县', '440500'); +INSERT INTO `base_administrative_division` VALUES ('440600', '广东省佛山市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440601', '广东省佛山市市辖区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440604', '广东省佛山市禅城区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440605', '广东省佛山市南海区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440606', '广东省佛山市顺德区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440607', '广东省佛山市三水区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440608', '广东省佛山市高明区', '440600'); +INSERT INTO `base_administrative_division` VALUES ('440700', '广东省江门市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440701', '广东省江门市市辖区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440703', '广东省江门市蓬江区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440704', '广东省江门市江海区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440705', '广东省江门市新会区', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440781', '广东省台山市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440783', '广东省开平市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440784', '广东省鹤山市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440785', '广东省恩平市', '440700'); +INSERT INTO `base_administrative_division` VALUES ('440800', '广东省湛江市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440801', '广东省湛江市市辖区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440802', '广东省湛江市赤坎区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440803', '广东省湛江市霞山区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440804', '广东省湛江市坡头区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440811', '广东省湛江市麻章区', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440823', '广东省遂溪县', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440825', '广东省徐闻县', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440881', '广东省廉江市', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440882', '广东省雷州市', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440883', '广东省吴川市', '440800'); +INSERT INTO `base_administrative_division` VALUES ('440900', '广东省茂名市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('440901', '广东省茂名市市辖区', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440902', '广东省茂名市茂南区', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440903', '广东省茂名市茂港区', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440923', '广东省电白县', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440981', '广东省高州市', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440982', '广东省化州市', '440900'); +INSERT INTO `base_administrative_division` VALUES ('440983', '广东省信宜市', '440900'); +INSERT INTO `base_administrative_division` VALUES ('441200', '广东省肇庆市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441201', '广东省肇庆市市辖区', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441202', '广东省肇庆市端州区', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441203', '广东省肇庆市鼎湖区', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441223', '广东省广宁县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441224', '广东省怀集县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441225', '广东省封开县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441226', '广东省德庆县', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441283', '广东省高要市', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441284', '广东省四会市', '441200'); +INSERT INTO `base_administrative_division` VALUES ('441300', '广东省惠州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441301', '广东省惠州市市辖区', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441302', '广东省惠州市惠城区', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441303', '广东省惠州市惠阳区', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441322', '广东省博罗县', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441323', '广东省惠东县', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441324', '广东省龙门县', '441300'); +INSERT INTO `base_administrative_division` VALUES ('441400', '广东省梅州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441401', '广东省梅州市市辖区', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441402', '广东省梅州市梅江区', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441421', '广东省梅县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441422', '广东省大埔县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441423', '广东省丰顺县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441424', '广东省五华县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441426', '广东省平远县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441427', '广东省蕉岭县', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441481', '广东省兴宁市', '441400'); +INSERT INTO `base_administrative_division` VALUES ('441500', '广东省汕尾市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441501', '广东省汕尾市市辖区', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441502', '广东省汕尾市城区', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441521', '广东省海丰县', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441523', '广东省陆河县', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441581', '广东省陆丰市', '441500'); +INSERT INTO `base_administrative_division` VALUES ('441600', '广东省河源市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441601', '广东省河源市市辖区', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441602', '广东省河源市源城区', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441621', '广东省紫金县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441622', '广东省龙川县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441623', '广东省连平县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441624', '广东省和平县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441625', '广东省东源县', '441600'); +INSERT INTO `base_administrative_division` VALUES ('441700', '广东省阳江市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441701', '广东省阳江市市辖区', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441702', '广东省阳江市江城区', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441721', '广东省阳西县', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441723', '广东省阳东县', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441781', '广东省阳春市', '441700'); +INSERT INTO `base_administrative_division` VALUES ('441800', '广东省清远市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('441801', '广东省清远市市辖区', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441802', '广东省清远市清城区', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441821', '广东省佛冈县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441823', '广东省阳山县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441825', '广东省连山壮族瑶族自治县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441826', '广东省连南瑶族自治县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441827', '广东省清新县', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441881', '广东省英德市', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441882', '广东省连州市', '441800'); +INSERT INTO `base_administrative_division` VALUES ('441900', '广东省东莞市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('442000', '广东省中山市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445100', '广东省潮州市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445101', '广东省潮州市市辖区', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445102', '广东省潮州市湘桥区', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445121', '广东省潮安县', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445122', '广东省饶平县', '445100'); +INSERT INTO `base_administrative_division` VALUES ('445200', '广东省揭阳市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445201', '广东省揭阳市市辖区', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445202', '广东省揭阳市榕城区', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445221', '广东省揭东县', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445222', '广东省揭西县', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445224', '广东省惠来县', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445281', '广东省普宁市', '445200'); +INSERT INTO `base_administrative_division` VALUES ('445300', '广东省云浮市', '440000'); +INSERT INTO `base_administrative_division` VALUES ('445301', '广东省云浮市市辖区', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445302', '广东省云浮市云城区', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445321', '广东省新兴县', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445322', '广东省郁南县', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445323', '广东省云安县', '445300'); +INSERT INTO `base_administrative_division` VALUES ('445381', '广东省罗定市', '445300'); +INSERT INTO `base_administrative_division` VALUES ('450000', '广西壮族自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('450100', '广西南宁市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450101', '广西南宁市市辖区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450102', '广西南宁市兴宁区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450103', '广西南宁市青秀区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450105', '广西南宁市江南区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450107', '广西南宁市西乡塘区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450108', '广西南宁市良庆区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450109', '广西南宁市邕宁区', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450122', '广西武鸣县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450123', '广西隆安县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450124', '广西马山县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450125', '广西上林县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450126', '广西宾阳县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450127', '广西横县', '450100'); +INSERT INTO `base_administrative_division` VALUES ('450200', '广西柳州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450201', '广西柳州市市辖区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450202', '广西柳州市城中区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450203', '广西柳州市鱼峰区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450204', '广西柳州市柳南区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450205', '广西柳州市柳北区', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450221', '广西柳江县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450222', '广西柳城县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450223', '广西鹿寨县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450224', '广西融安县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450225', '广西融水苗族自治县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450226', '广西三江侗族自治县', '450200'); +INSERT INTO `base_administrative_division` VALUES ('450300', '广西桂林市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450301', '广西桂林市市辖区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450302', '广西桂林市秀峰区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450303', '广西桂林市叠彩区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450304', '广西桂林市象山区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450305', '广西桂林市七星区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450311', '广西桂林市雁山区', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450321', '广西阳朔县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450322', '广西临桂县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450323', '广西灵川县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450324', '广西全州县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450325', '广西兴安县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450326', '广西永福县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450327', '广西灌阳县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450328', '广西龙胜各族自治县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450329', '广西资源县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450330', '广西平乐县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450331', '广西荔蒲县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450332', '广西恭城瑶族自治县', '450300'); +INSERT INTO `base_administrative_division` VALUES ('450400', '广西梧州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450401', '广西梧州市市辖区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450403', '广西梧州市万秀区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450404', '广西梧州市蝶山区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450405', '广西梧州市长洲区', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450421', '广西苍梧县', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450422', '广西藤县', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450423', '广西蒙山县', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450481', '广西岑溪市', '450400'); +INSERT INTO `base_administrative_division` VALUES ('450500', '广西北海市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450501', '广西北海市市辖区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450502', '广西北海市海城区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450503', '广西北海市银海区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450512', '广西北海市铁山港区', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450521', '广西合浦县', '450500'); +INSERT INTO `base_administrative_division` VALUES ('450600', '广西防城港市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450601', '广西防城港市市辖区', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450602', '广西防城港市港口区', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450603', '广西防城港市防城区', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450621', '广西上思县', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450681', '广西东兴市', '450600'); +INSERT INTO `base_administrative_division` VALUES ('450700', '广西钦州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450701', '广西钦州市市辖区', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450702', '广西钦州市钦南区', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450703', '广西钦州市钦北区', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450721', '广西灵山县', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450722', '广西浦北县', '450700'); +INSERT INTO `base_administrative_division` VALUES ('450800', '广西贵港市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450801', '广西贵港市市辖区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450802', '广西贵港市港北区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450803', '广西贵港市港南区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450804', '广西贵港市覃塘区', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450821', '广西平南县', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450881', '广西桂平市', '450800'); +INSERT INTO `base_administrative_division` VALUES ('450900', '广西玉林市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('450901', '广西玉林市市辖区', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450902', '广西玉林市玉州区', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450921', '广西容县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450922', '广西陆川县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450923', '广西博白县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450924', '广西兴业县', '450900'); +INSERT INTO `base_administrative_division` VALUES ('450981', '广西北流市', '450900'); +INSERT INTO `base_administrative_division` VALUES ('451000', '广西百色市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451001', '广西百色市市辖区', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451002', '广西百色市右江区', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451021', '广西田阳县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451022', '广西田东县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451023', '广西平果县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451024', '广西德保县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451025', '广西靖西县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451026', '广西那坡县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451027', '广西凌云县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451028', '广西乐业县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451029', '广西田林县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451030', '广西西林县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451031', '广西隆林各族自治县', '451000'); +INSERT INTO `base_administrative_division` VALUES ('451100', '广西贺州市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451101', '广西贺州市市辖区', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451102', '广西贺州市八步区', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451121', '广西昭平县', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451122', '广西钟山县', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451123', '广西富川瑶族自治县', '451100'); +INSERT INTO `base_administrative_division` VALUES ('451200', '广西河池市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451201', '广西河池市市辖区', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451202', '广西河池市金城江区', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451221', '广西南丹县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451222', '广西天峨县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451223', '广西凤山县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451224', '广西东兰县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451225', '广西罗城仫佬族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451226', '广西环江毛南族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451227', '广西巴马瑶族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451228', '广西都安瑶族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451229', '广西大化瑶族自治县', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451281', '广西宜州市', '451200'); +INSERT INTO `base_administrative_division` VALUES ('451300', '广西来宾市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451301', '广西来宾市市辖区', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451302', '广西来宾市兴宾区', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451321', '广西忻城县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451322', '广西象州县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451323', '广西武宣县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451324', '广西金秀瑶族自治县', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451381', '广西合山市', '451300'); +INSERT INTO `base_administrative_division` VALUES ('451400', '广西崇左市', '450000'); +INSERT INTO `base_administrative_division` VALUES ('451401', '广西崇左市市辖区', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451402', '广西崇左市江洲区', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451421', '广西扶绥县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451422', '广西宁明县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451423', '广西龙州县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451424', '广西大新县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451425', '广西天等县', '451400'); +INSERT INTO `base_administrative_division` VALUES ('451481', '广西凭祥市', '451400'); +INSERT INTO `base_administrative_division` VALUES ('460000', '海南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('460100', '海南省海口市', '460000'); +INSERT INTO `base_administrative_division` VALUES ('460101', '海南省海口市市辖区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460105', '海南省海口市秀英区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460106', '海南省海口市龙华区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460107', '海南省海口市琼山区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460108', '海南省海口市美兰区', '460100'); +INSERT INTO `base_administrative_division` VALUES ('460200', '海南省三亚市', '460000'); +INSERT INTO `base_administrative_division` VALUES ('460201', '海南省三亚市市辖区', '460200'); +INSERT INTO `base_administrative_division` VALUES ('469000', '海南省省直辖县级行政区划', '460000'); +INSERT INTO `base_administrative_division` VALUES ('469001', '海南省五指山市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469002', '海南省琼海市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469003', '海南省儋州市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469005', '海南省文昌市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469006', '海南省万宁市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469007', '海南省东方市', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469025', '海南省定安县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469026', '海南省屯昌县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469027', '海南省澄迈县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469028', '海南省临高县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469030', '海南省白沙黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469031', '海南省昌江黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469033', '海南省乐东黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469034', '海南省陵水黎族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469035', '海南省保亭黎族苗族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469036', '海南省琼中黎族苗族自治县', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469037', '海南省西沙群岛', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469038', '海南省南沙群岛', '469000'); +INSERT INTO `base_administrative_division` VALUES ('469039', '海南省中沙群岛的岛礁及其海域', '469000'); +INSERT INTO `base_administrative_division` VALUES ('500000', '重庆市', '0'); +INSERT INTO `base_administrative_division` VALUES ('500100', '重庆市市辖区', '500000'); +INSERT INTO `base_administrative_division` VALUES ('500101', '重庆市万州区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500102', '重庆市涪陵区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500103', '重庆市渝中区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500104', '重庆市大渡口区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500105', '重庆市江北区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500106', '重庆市沙坪坝区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500107', '重庆市九龙坡区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500108', '重庆市南岸区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500109', '重庆市北碚区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500110', '重庆市綦江区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500111', '重庆市大足区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500112', '重庆市渝北区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500113', '重庆市巴南区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500114', '重庆市黔江区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500115', '重庆市长寿区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500116', '重庆市江津区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500117', '重庆市合川区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500118', '重庆市永川区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500119', '重庆市南川区', '500100'); +INSERT INTO `base_administrative_division` VALUES ('500200', '重庆市县', '500000'); +INSERT INTO `base_administrative_division` VALUES ('500223', '重庆市潼南县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500224', '重庆市铜梁县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500226', '重庆市荣昌县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500227', '重庆市璧山县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500228', '重庆市梁平县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500229', '重庆市城口县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500230', '重庆市丰都县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500231', '重庆市垫江县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500232', '重庆市武隆县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500233', '重庆市忠县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500234', '重庆市开县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500235', '重庆市云阳县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500236', '重庆市奉节县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500237', '重庆市巫山县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500238', '重庆市巫溪县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500240', '重庆市石柱土家族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500241', '重庆市秀山土家族苗族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500242', '重庆市酉阳土家族苗族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('500243', '重庆市彭水苗族土家族自治县', '500200'); +INSERT INTO `base_administrative_division` VALUES ('510000', '四川省', '0'); +INSERT INTO `base_administrative_division` VALUES ('510100', '四川省成都市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510101', '四川省成都市市辖区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510104', '四川省成都市锦江区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510105', '四川省成都市青羊区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510106', '四川省成都市金牛区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510107', '四川省成都市武侯区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510108', '四川省成都市成华区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510112', '四川省成都市龙泉驿区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510113', '四川省成都市青白江区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510114', '四川省成都市新都区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510115', '四川省成都市温江区', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510121', '四川省金堂县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510122', '四川省双流县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510124', '四川省郫县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510129', '四川省大邑县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510131', '四川省蒲江县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510132', '四川省新津县', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510181', '四川省都江堰市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510182', '四川省彭州市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510183', '四川省邛崃市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510184', '四川省崇州市', '510100'); +INSERT INTO `base_administrative_division` VALUES ('510300', '四川省自贡市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510301', '四川省自贡市市辖区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510302', '四川省自贡市自流井区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510303', '四川省自贡市贡井区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510304', '四川省自贡市大安区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510311', '四川省自贡市沿滩区', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510321', '四川省荣县', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510322', '四川省富顺县', '510300'); +INSERT INTO `base_administrative_division` VALUES ('510400', '四川省攀枝花市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510401', '四川省攀枝花市市辖区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510402', '四川省攀枝花市东区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510403', '四川省攀枝花市西区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510411', '四川省攀枝花市仁和区', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510421', '四川省米易县', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510422', '四川省盐边县', '510400'); +INSERT INTO `base_administrative_division` VALUES ('510500', '四川省泸州市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510501', '四川省泸州市市辖区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510502', '四川省泸州市江阳区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510503', '四川省泸州市纳溪区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510504', '四川省泸州市龙马潭区', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510521', '四川省泸县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510522', '四川省合江县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510524', '四川省叙永县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510525', '四川省古蔺县', '510500'); +INSERT INTO `base_administrative_division` VALUES ('510600', '四川省德阳市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510601', '四川省德阳市市辖区', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510603', '四川省德阳市旌阳区', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510623', '四川省中江县', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510626', '四川省罗江县', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510681', '四川省广汉市', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510682', '四川省什邡市', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510683', '四川省绵竹市', '510600'); +INSERT INTO `base_administrative_division` VALUES ('510700', '四川省绵阳市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510701', '四川省绵阳市市辖区', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510703', '四川省绵阳市涪城区', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510704', '四川省绵阳市游仙区', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510722', '四川省三台县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510723', '四川省盐亭县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510724', '四川省安县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510725', '四川省梓潼县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510726', '四川省北川羌族自治县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510727', '四川省平武县', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510781', '四川省江油市', '510700'); +INSERT INTO `base_administrative_division` VALUES ('510800', '四川省广元市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510801', '四川省广元市市辖区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510802', '四川省广元市利州区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510811', '四川省广元市元坝区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510812', '四川省广元市朝天区', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510821', '四川省旺苍县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510822', '四川省青川县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510823', '四川省剑阁县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510824', '四川省苍溪县', '510800'); +INSERT INTO `base_administrative_division` VALUES ('510900', '四川省遂宁市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('510901', '四川省遂宁市市辖区', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510903', '四川省遂宁市船山区', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510904', '四川省遂宁市安居区', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510921', '四川省蓬溪县', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510922', '四川省射洪县', '510900'); +INSERT INTO `base_administrative_division` VALUES ('510923', '四川省大英县', '510900'); +INSERT INTO `base_administrative_division` VALUES ('511000', '四川省内江市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511001', '四川省内江市市辖区', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511002', '四川省内江市市中区', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511011', '四川省内江市东兴区', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511024', '四川省威远县', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511025', '四川省资中县', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511028', '四川省隆昌县', '511000'); +INSERT INTO `base_administrative_division` VALUES ('511100', '四川省乐山市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511101', '四川省乐山市市辖区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511102', '四川省乐山市市中区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511111', '四川省乐山市沙湾区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511112', '四川省乐山市五通桥区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511113', '四川省乐山市金口河区', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511123', '四川省犍为县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511124', '四川省井研县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511126', '四川省夹江县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511129', '四川省沐川县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511132', '四川省峨边彝族自治县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511133', '四川省马边彝族自治县', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511181', '四川省峨眉山市', '511100'); +INSERT INTO `base_administrative_division` VALUES ('511300', '四川省南充市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511301', '四川省南充市市辖区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511302', '四川省南充市顺庆区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511303', '四川省南充市高坪区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511304', '四川省南充市嘉陵区', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511321', '四川省南部县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511322', '四川省营山县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511323', '四川省蓬安县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511324', '四川省仪陇县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511325', '四川省西充县', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511381', '四川省阆中市', '511300'); +INSERT INTO `base_administrative_division` VALUES ('511400', '四川省眉山市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511401', '四川省眉山市市辖区', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511402', '四川省眉山市东坡区', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511421', '四川省仁寿县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511422', '四川省彭山县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511423', '四川省洪雅县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511424', '四川省丹棱县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511425', '四川省青神县', '511400'); +INSERT INTO `base_administrative_division` VALUES ('511500', '四川省宜宾市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511501', '四川省宜宾市市辖区', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511502', '四川省宜宾市翠屏区', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511503', '四川省宜宾市南溪区', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511521', '四川省宜宾县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511523', '四川省江安县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511524', '四川省长宁县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511525', '四川省高县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511526', '四川省珙县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511527', '四川省筠连县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511528', '四川省兴文县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511529', '四川省屏山县', '511500'); +INSERT INTO `base_administrative_division` VALUES ('511600', '四川省广安市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511601', '四川省广安市市辖区', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511602', '四川省广安市广安区', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511621', '四川省岳池县', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511622', '四川省武胜县', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511623', '四川省邻水县', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511681', '四川省华蓥市', '511600'); +INSERT INTO `base_administrative_division` VALUES ('511700', '四川省达州市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511701', '四川省达州市市辖区', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511702', '四川省达州市通川区', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511721', '四川省达县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511722', '四川省宣汉县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511723', '四川省开江县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511724', '四川省大竹县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511725', '四川省渠县', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511781', '四川省万源市', '511700'); +INSERT INTO `base_administrative_division` VALUES ('511800', '四川省雅安市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511801', '四川省雅安市市辖区', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511802', '四川省雅安市雨城区', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511821', '四川省名山县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511822', '四川省荥经县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511823', '四川省汉源县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511824', '四川省石棉县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511825', '四川省天全县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511826', '四川省芦山县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511827', '四川省宝兴县', '511800'); +INSERT INTO `base_administrative_division` VALUES ('511900', '四川省巴中市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('511901', '四川省巴中市市辖区', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511902', '四川省巴中市巴州区', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511921', '四川省通江县', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511922', '四川省南江县', '511900'); +INSERT INTO `base_administrative_division` VALUES ('511923', '四川省平昌县', '511900'); +INSERT INTO `base_administrative_division` VALUES ('512000', '四川省资阳市', '510000'); +INSERT INTO `base_administrative_division` VALUES ('512001', '四川省资阳市市辖区', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512002', '四川省资阳市雁江区', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512021', '四川省安岳县', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512022', '四川省乐至县', '512000'); +INSERT INTO `base_administrative_division` VALUES ('512081', '四川省简阳市', '512000'); +INSERT INTO `base_administrative_division` VALUES ('513200', '四川省阿坝藏族羌族自治州', '510000'); +INSERT INTO `base_administrative_division` VALUES ('513221', '四川省汶川县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513222', '四川省理县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513223', '四川省茂县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513224', '四川省松潘县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513225', '四川省九寨沟县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513226', '四川省金川县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513227', '四川省小金县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513228', '四川省黑水县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513229', '四川省马尔康县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513230', '四川省壤塘县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513231', '四川省阿坝县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513232', '四川省若尔盖县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513233', '四川省红原县', '513200'); +INSERT INTO `base_administrative_division` VALUES ('513300', '四川省甘孜藏族自治州', '510000'); +INSERT INTO `base_administrative_division` VALUES ('513321', '四川省康定县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513322', '四川省泸定县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513323', '四川省丹巴县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513324', '四川省九龙县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513325', '四川省雅江县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513326', '四川省道孚县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513327', '四川省炉霍县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513328', '四川省甘孜县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513329', '四川省新龙县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513330', '四川省德格县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513331', '四川省白玉县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513332', '四川省石渠县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513333', '四川省色达县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513334', '四川省理塘县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513335', '四川省巴塘县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513336', '四川省乡城县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513337', '四川省稻城县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513338', '四川省得荣县', '513300'); +INSERT INTO `base_administrative_division` VALUES ('513400', '四川省凉山彝族自治州', '510000'); +INSERT INTO `base_administrative_division` VALUES ('513401', '四川省西昌市', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513422', '四川省木里藏族自治县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513423', '四川省盐源县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513424', '四川省德昌县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513425', '四川省会理县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513426', '四川省会东县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513427', '四川省宁南县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513428', '四川省普格县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513429', '四川省布拖县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513430', '四川省金阳县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513431', '四川省昭觉县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513432', '四川省喜德县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513433', '四川省冕宁县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513434', '四川省越西县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513435', '四川省甘洛县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513436', '四川省美姑县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('513437', '四川省雷波县', '513400'); +INSERT INTO `base_administrative_division` VALUES ('520000', '贵州省', '0'); +INSERT INTO `base_administrative_division` VALUES ('520100', '贵州省贵阳市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520101', '贵州省贵阳市市辖区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520102', '贵州省贵阳市南明区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520103', '贵州省贵阳市云岩区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520111', '贵州省贵阳市花溪区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520112', '贵州省贵阳市乌当区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520113', '贵州省贵阳市白云区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520114', '贵州省贵阳市小河区', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520121', '贵州省开阳县', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520122', '贵州省息烽县', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520123', '贵州省修文县', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520181', '贵州省清镇市', '520100'); +INSERT INTO `base_administrative_division` VALUES ('520200', '贵州省六盘水市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520201', '贵州省六盘水市钟山区', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520203', '贵州省六盘水市六枝特区', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520221', '贵州省水城县', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520222', '贵州省盘县', '520200'); +INSERT INTO `base_administrative_division` VALUES ('520300', '贵州省遵义市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520301', '贵州省遵义市市辖区', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520302', '贵州省遵义市红花岗区', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520303', '贵州省遵义市汇川区', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520321', '贵州省遵义县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520322', '贵州省桐梓县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520323', '贵州省绥阳县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520324', '贵州省正安县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520325', '贵州省道真仡佬族苗族自治县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520326', '贵州省务川仡佬族苗族自治县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520327', '贵州省凤冈县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520328', '贵州省湄潭县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520329', '贵州省余庆县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520330', '贵州省习水县', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520381', '贵州省赤水市', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520382', '贵州省仁怀市', '520300'); +INSERT INTO `base_administrative_division` VALUES ('520400', '贵州省安顺市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520401', '贵州省安顺市市辖区', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520402', '贵州省安顺市西秀区', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520421', '贵州省平坝县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520422', '贵州省普定县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520423', '贵州省镇宁布依族苗族自治县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520424', '贵州省关岭布依族苗族自治县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520425', '贵州省紫云苗族布依族自治县', '520400'); +INSERT INTO `base_administrative_division` VALUES ('520500', '贵州省毕节市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520501', '贵州省毕节市市辖区', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520502', '贵州省毕节市七星关区', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520521', '贵州省大方县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520522', '贵州省黔西县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520523', '贵州省金沙县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520524', '贵州省织金县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520525', '贵州省纳雍县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520526', '贵州省威宁彝族回族苗族自治县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520527', '贵州省赫章县', '520500'); +INSERT INTO `base_administrative_division` VALUES ('520600', '贵州省铜仁市', '520000'); +INSERT INTO `base_administrative_division` VALUES ('520601', '贵州省铜仁市市辖区', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520602', '贵州省铜仁市碧江区', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520603', '贵州省铜仁市万山区', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520621', '贵州省江口县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520622', '贵州省玉屏侗族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520623', '贵州省石阡县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520624', '贵州省思南县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520625', '贵州省印江土家族苗族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520626', '贵州省德江县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520627', '贵州省沿河土家族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('520628', '贵州省松桃苗族自治县', '520600'); +INSERT INTO `base_administrative_division` VALUES ('522300', '贵州省黔西南布依族苗族自治州', '520000'); +INSERT INTO `base_administrative_division` VALUES ('522301', '贵州省兴义市', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522322', '贵州省兴仁县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522323', '贵州省普安县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522324', '贵州省晴隆县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522325', '贵州省贞丰县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522326', '贵州省望谟县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522327', '贵州省册亨县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522328', '贵州省安龙县', '522300'); +INSERT INTO `base_administrative_division` VALUES ('522600', '贵州省黔东南苗族侗族自治州', '520000'); +INSERT INTO `base_administrative_division` VALUES ('522601', '贵州省凯里市', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522622', '贵州省黄平县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522623', '贵州省施秉县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522624', '贵州省三穗县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522625', '贵州省镇远县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522626', '贵州省岑巩县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522627', '贵州省天柱县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522628', '贵州省锦屏县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522629', '贵州省剑河县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522630', '贵州省台江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522631', '贵州省黎平县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522632', '贵州省榕江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522633', '贵州省从江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522634', '贵州省雷山县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522635', '贵州省麻江县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522636', '贵州省丹寨县', '522600'); +INSERT INTO `base_administrative_division` VALUES ('522700', '贵州省黔南布依族苗族自治州', '520000'); +INSERT INTO `base_administrative_division` VALUES ('522701', '贵州省都匀市', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522702', '贵州省福泉市', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522722', '贵州省荔波县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522723', '贵州省贵定县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522725', '贵州省瓮安县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522726', '贵州省独山县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522727', '贵州省平塘县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522728', '贵州省罗甸县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522729', '贵州省长顺县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522730', '贵州省龙里县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522731', '贵州省惠水县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('522732', '贵州省三都水族自治县', '522700'); +INSERT INTO `base_administrative_division` VALUES ('530000', '云南省', '0'); +INSERT INTO `base_administrative_division` VALUES ('530100', '云南省昆明市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530101', '云南省昆明市市辖区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530102', '云南省昆明市五华区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530103', '云南省昆明市盘龙区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530111', '云南省昆明市官渡区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530112', '云南省昆明市西山区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530113', '云南省昆明市东川区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530114', '云南省昆明市呈贡区', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530122', '云南省晋宁县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530124', '云南省富民县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530125', '云南省宜良县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530126', '云南省石林彝族自治县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530127', '云南省嵩明县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530128', '云南省禄劝彝族苗族自治县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530129', '云南省寻甸回族彝族自治县', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530181', '云南省安宁市', '530100'); +INSERT INTO `base_administrative_division` VALUES ('530300', '云南省曲靖市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530301', '云南省曲靖市市辖区', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530302', '云南省曲靖市麒麟区', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530321', '云南省马龙县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530322', '云南省陆良县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530323', '云南省师宗县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530324', '云南省罗平县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530325', '云南省富源县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530326', '云南省会泽县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530328', '云南省沾益县', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530381', '云南省宣威市', '530300'); +INSERT INTO `base_administrative_division` VALUES ('530400', '云南省玉溪市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530401', '云南省玉溪市市辖区', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530402', '云南省玉溪市红塔区', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530421', '云南省江川县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530422', '云南省澄江县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530423', '云南省通海县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530424', '云南省华宁县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530425', '云南省易门县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530426', '云南省峨山彝族自治县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530427', '云南省新平彝族傣族自治县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530428', '云南省元江哈尼族彝族傣族自治县', '530400'); +INSERT INTO `base_administrative_division` VALUES ('530500', '云南省保山市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530501', '云南省保山市市辖区', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530502', '云南省保山市隆阳区', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530521', '云南省施甸县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530522', '云南省腾冲县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530523', '云南省龙陵县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530524', '云南省昌宁县', '530500'); +INSERT INTO `base_administrative_division` VALUES ('530600', '云南省昭通市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530601', '云南省昭通市市辖区', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530602', '云南省昭通市昭阳区', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530621', '云南省鲁甸县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530622', '云南省巧家县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530623', '云南省盐津县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530624', '云南省大关县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530625', '云南省永善县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530626', '云南省绥江县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530627', '云南省镇雄县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530628', '云南省彝良县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530629', '云南省威信县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530630', '云南省水富县', '530600'); +INSERT INTO `base_administrative_division` VALUES ('530700', '云南省丽江市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530701', '云南省丽江市市辖区', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530702', '云南省丽江市古城区', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530721', '云南省玉龙纳西族自治县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530722', '云南省永胜县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530723', '云南省华坪县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530724', '云南省宁蒗彝族自治县', '530700'); +INSERT INTO `base_administrative_division` VALUES ('530800', '云南省普洱市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530801', '云南省普洱市市辖区', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530802', '云南省普洱市思茅区', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530821', '云南省宁洱哈尼族彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530822', '云南省墨江哈尼族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530823', '云南省景东彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530824', '云南省景谷傣族彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530825', '云南省镇沅彝族哈尼族拉祜族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530826', '云南省江城哈尼族彝族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530827', '云南省孟连傣族拉祜族佤族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530828', '云南省澜沧拉祜族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530829', '云南省西盟佤族自治县', '530800'); +INSERT INTO `base_administrative_division` VALUES ('530900', '云南省临沧市', '530000'); +INSERT INTO `base_administrative_division` VALUES ('530901', '云南省临沧市市辖区', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530902', '云南省临沧市临翔区', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530921', '云南省凤庆县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530922', '云南省云县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530923', '云南省永德县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530924', '云南省镇康县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530925', '云南省双江拉祜族佤族布朗族傣族自治县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530926', '云南省耿马傣族佤族自治县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('530927', '云南省沧源佤族自治县', '530900'); +INSERT INTO `base_administrative_division` VALUES ('532300', '云南省楚雄彝族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532301', '云南省楚雄市', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532322', '云南省双柏县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532323', '云南省牟定县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532324', '云南省南华县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532325', '云南省姚安县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532326', '云南省大姚县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532327', '云南省永仁县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532328', '云南省元谋县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532329', '云南省武定县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532331', '云南省禄丰县', '532300'); +INSERT INTO `base_administrative_division` VALUES ('532500', '云南省红河哈尼族彝族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532501', '云南省个旧市', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532502', '云南省开远市', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532503', '云南省蒙自市', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532523', '云南省屏边苗族自治县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532524', '云南省建水县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532525', '云南省石屏县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532526', '云南省弥勒县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532527', '云南省泸西县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532528', '云南省元阳县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532529', '云南省红河县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532530', '云南省金平苗族瑶族傣族自治县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532531', '云南省绿春县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532532', '云南省河口瑶族自治县', '532500'); +INSERT INTO `base_administrative_division` VALUES ('532600', '云南省文山壮族苗族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532601', '云南省文山市', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532622', '云南省砚山县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532623', '云南省西畴县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532624', '云南省麻栗坡县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532625', '云南省马关县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532626', '云南省丘北县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532627', '云南省广南县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532628', '云南省富宁县', '532600'); +INSERT INTO `base_administrative_division` VALUES ('532800', '云南省西双版纳傣族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532801', '云南省景洪市', '532800'); +INSERT INTO `base_administrative_division` VALUES ('532822', '云南省勐海县', '532800'); +INSERT INTO `base_administrative_division` VALUES ('532823', '云南省勐腊县', '532800'); +INSERT INTO `base_administrative_division` VALUES ('532900', '云南省大理白族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('532901', '云南省大理市', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532922', '云南省漾濞彝族自治县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532923', '云南省祥云县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532924', '云南省宾川县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532925', '云南省弥渡县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532926', '云南省南涧彝族自治县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532927', '云南省巍山彝族回族自治县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532928', '云南省永平县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532929', '云南省云龙县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532930', '云南省洱源县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532931', '云南省剑川县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('532932', '云南省鹤庆县', '532900'); +INSERT INTO `base_administrative_division` VALUES ('533100', '云南省德宏傣族景颇族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('533102', '云南省瑞丽市', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533103', '云南省芒市', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533122', '云南省梁河县', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533123', '云南省盈江县', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533124', '云南省陇川县', '533100'); +INSERT INTO `base_administrative_division` VALUES ('533300', '云南省怒江傈僳族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('533321', '云南省泸水县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533323', '云南省福贡县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533324', '云南省贡山独龙族怒族自治县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533325', '云南省兰坪白族普米族自治县', '533300'); +INSERT INTO `base_administrative_division` VALUES ('533400', '云南省迪庆藏族自治州', '530000'); +INSERT INTO `base_administrative_division` VALUES ('533421', '云南省香格里拉县', '533400'); +INSERT INTO `base_administrative_division` VALUES ('533422', '云南省德钦县', '533400'); +INSERT INTO `base_administrative_division` VALUES ('533423', '云南省维西傈僳族自治县', '533400'); +INSERT INTO `base_administrative_division` VALUES ('540000', '西藏自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('540100', '西藏拉萨市', '540000'); +INSERT INTO `base_administrative_division` VALUES ('540101', '西藏拉萨市市辖区', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540102', '西藏拉萨市城关区', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540121', '西藏林周县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540122', '西藏当雄县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540123', '西藏尼木县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540124', '西藏曲水县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540125', '西藏堆龙德庆县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540126', '西藏达孜县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('540127', '西藏墨竹工卡县', '540100'); +INSERT INTO `base_administrative_division` VALUES ('542100', '西藏昌都地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542121', '西藏昌都县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542122', '西藏江达县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542123', '西藏贡觉县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542124', '西藏类乌齐县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542125', '西藏丁青县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542126', '西藏察雅县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542127', '西藏八宿县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542128', '西藏左贡县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542129', '西藏芒康县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542132', '西藏洛隆县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542133', '西藏边坝县', '542100'); +INSERT INTO `base_administrative_division` VALUES ('542200', '西藏山南地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542221', '西藏乃东县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542222', '西藏扎囊县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542223', '西藏贡嘎县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542224', '西藏桑日县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542225', '西藏琼结县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542226', '西藏曲松县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542227', '西藏措美县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542228', '西藏洛扎县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542229', '西藏加查县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542231', '西藏隆子县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542232', '西藏错那县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542233', '西藏浪卡子县', '542200'); +INSERT INTO `base_administrative_division` VALUES ('542300', '西藏日喀则地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542301', '西藏日喀则市', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542322', '西藏南木林县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542323', '西藏江孜县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542324', '西藏定日县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542325', '西藏萨迦县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542326', '西藏拉孜县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542327', '西藏昂仁县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542328', '西藏谢通门县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542329', '西藏白朗县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542330', '西藏仁布县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542331', '西藏康马县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542332', '西藏定结县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542333', '西藏仲巴县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542334', '西藏亚东县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542335', '西藏吉隆县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542336', '西藏聂拉木县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542337', '西藏萨嘎县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542338', '西藏岗巴县', '542300'); +INSERT INTO `base_administrative_division` VALUES ('542400', '西藏那曲地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542421', '西藏那曲县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542422', '西藏嘉黎县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542423', '西藏比如县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542424', '西藏聂荣县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542425', '西藏安多县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542426', '西藏申扎县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542427', '西藏索县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542428', '西藏班戈县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542429', '西藏巴青县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542430', '西藏尼玛县', '542400'); +INSERT INTO `base_administrative_division` VALUES ('542500', '西藏阿里地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542521', '西藏普兰县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542522', '西藏札达县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542523', '西藏噶尔县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542524', '西藏日土县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542525', '西藏革吉县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542526', '西藏改则县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542527', '西藏措勤县', '542500'); +INSERT INTO `base_administrative_division` VALUES ('542600', '西藏林芝地区', '540000'); +INSERT INTO `base_administrative_division` VALUES ('542621', '西藏林芝县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542622', '西藏工布江达县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542623', '西藏米林县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542624', '西藏墨脱县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542625', '西藏波密县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542626', '西藏察隅县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('542627', '西藏朗县', '542600'); +INSERT INTO `base_administrative_division` VALUES ('610000', '陕西省', '0'); +INSERT INTO `base_administrative_division` VALUES ('610100', '陕西省西安市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610101', '陕西省西安市市辖区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610102', '陕西省西安市新城区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610103', '陕西省西安市碑林区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610104', '陕西省西安市莲湖区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610111', '陕西省西安市灞桥区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610112', '陕西省西安市未央区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610113', '陕西省西安市雁塔区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610114', '陕西省西安市阎良区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610115', '陕西省西安市临潼区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610116', '陕西省西安市长安区', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610122', '陕西省蓝田县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610124', '陕西省周至县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610125', '陕西省户县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610126', '陕西省高陵县', '610100'); +INSERT INTO `base_administrative_division` VALUES ('610200', '陕西省铜川市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610201', '陕西省铜川市市辖区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610202', '陕西省铜川市王益区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610203', '陕西省铜川市印台区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610204', '陕西省铜川市耀州区', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610222', '陕西省宜君县', '610200'); +INSERT INTO `base_administrative_division` VALUES ('610300', '陕西省宝鸡市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610301', '陕西省宝鸡市市辖区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610302', '陕西省宝鸡市渭滨区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610303', '陕西省宝鸡市金台区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610304', '陕西省宝鸡市陈仓区', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610322', '陕西省凤翔县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610323', '陕西省岐山县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610324', '陕西省扶风县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610326', '陕西省眉县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610327', '陕西省陇县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610328', '陕西省千阳县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610329', '陕西省麟游县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610330', '陕西省凤县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610331', '陕西省太白县', '610300'); +INSERT INTO `base_administrative_division` VALUES ('610400', '陕西省咸阳市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610401', '陕西省咸阳市市辖区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610402', '陕西省咸阳市秦都区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610403', '陕西省杨凌示范区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610404', '陕西省咸阳市渭城区', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610422', '陕西省三原县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610423', '陕西省泾阳县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610424', '陕西省乾县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610425', '陕西省礼泉县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610426', '陕西省永寿县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610427', '陕西省彬县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610428', '陕西省长武县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610429', '陕西省旬邑县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610430', '陕西省淳化县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610431', '陕西省武功县', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610481', '陕西省兴平市', '610400'); +INSERT INTO `base_administrative_division` VALUES ('610500', '陕西省渭南市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610501', '陕西省渭南市市辖区', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610502', '陕西省渭南市临渭区', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610521', '陕西省华县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610522', '陕西省潼关县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610523', '陕西省大荔县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610524', '陕西省合阳县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610525', '陕西省澄城县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610526', '陕西省蒲城县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610527', '陕西省白水县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610528', '陕西省富平县', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610581', '陕西省韩城市', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610582', '陕西省华阴市', '610500'); +INSERT INTO `base_administrative_division` VALUES ('610600', '陕西省延安市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610601', '陕西省延安市市辖区', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610602', '陕西省延安市宝塔区', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610621', '陕西省延长县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610622', '陕西省延川县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610623', '陕西省子长县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610624', '陕西省安塞县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610625', '陕西省志丹县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610626', '陕西省吴起县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610627', '陕西省甘泉县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610628', '陕西省富县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610629', '陕西省洛川县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610630', '陕西省宜川县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610631', '陕西省黄龙县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610632', '陕西省黄陵县', '610600'); +INSERT INTO `base_administrative_division` VALUES ('610700', '陕西省汉中市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610701', '陕西省汉中市市辖区', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610702', '陕西省汉中市汉台区', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610721', '陕西省南郑县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610722', '陕西省城固县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610723', '陕西省洋县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610724', '陕西省西乡县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610725', '陕西省勉县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610726', '陕西省宁强县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610727', '陕西省略阳县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610728', '陕西省镇巴县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610729', '陕西省留坝县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610730', '陕西省佛坪县', '610700'); +INSERT INTO `base_administrative_division` VALUES ('610800', '陕西省榆林市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610801', '陕西省榆林市市辖区', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610802', '陕西省榆林市榆阳区', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610821', '陕西省神木县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610822', '陕西省府谷县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610823', '陕西省横山县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610824', '陕西省靖边县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610825', '陕西省定边县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610826', '陕西省绥德县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610827', '陕西省米脂县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610828', '陕西省佳县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610829', '陕西省吴堡县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610830', '陕西省清涧县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610831', '陕西省子洲县', '610800'); +INSERT INTO `base_administrative_division` VALUES ('610900', '陕西省安康市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('610901', '陕西省安康市市辖区', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610902', '陕西省安康市汉滨区', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610921', '陕西省汉阴县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610922', '陕西省石泉县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610923', '陕西省宁陕县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610924', '陕西省紫阳县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610925', '陕西省岚皋县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610926', '陕西省平利县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610927', '陕西省镇坪县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610928', '陕西省旬阳县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('610929', '陕西省白河县', '610900'); +INSERT INTO `base_administrative_division` VALUES ('611000', '陕西省商洛市', '610000'); +INSERT INTO `base_administrative_division` VALUES ('611001', '陕西省商洛市市辖区', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611002', '陕西省商洛市商州区', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611021', '陕西省洛南县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611022', '陕西省丹凤县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611023', '陕西省商南县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611024', '陕西省山阳县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611025', '陕西省镇安县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('611026', '陕西省柞水县', '611000'); +INSERT INTO `base_administrative_division` VALUES ('620000', '甘肃省', '0'); +INSERT INTO `base_administrative_division` VALUES ('620100', '甘肃省兰州市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620101', '甘肃省兰州市市辖区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620102', '甘肃省兰州市城关区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620103', '甘肃省兰州市七里河区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620104', '甘肃省兰州市西固区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620105', '甘肃省兰州市安宁区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620111', '甘肃省兰州市红古区', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620121', '甘肃省永登县', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620122', '甘肃省皋兰县', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620123', '甘肃省榆中县', '620100'); +INSERT INTO `base_administrative_division` VALUES ('620200', '甘肃省嘉峪关市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620201', '甘肃省嘉峪关市市辖区', '620200'); +INSERT INTO `base_administrative_division` VALUES ('620300', '甘肃省金昌市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620301', '甘肃省金昌市市辖区', '620300'); +INSERT INTO `base_administrative_division` VALUES ('620302', '甘肃省金昌市金川区', '620300'); +INSERT INTO `base_administrative_division` VALUES ('620321', '甘肃省永昌县', '620300'); +INSERT INTO `base_administrative_division` VALUES ('620400', '甘肃省白银市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620401', '甘肃省白银市市辖区', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620402', '甘肃省白银市白银区', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620403', '甘肃省白银市平川区', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620421', '甘肃省靖远县', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620422', '甘肃省会宁县', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620423', '甘肃省景泰县', '620400'); +INSERT INTO `base_administrative_division` VALUES ('620500', '甘肃省天水市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620501', '甘肃省天水市市辖区', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620502', '甘肃省天水市秦州区', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620503', '甘肃省天水市麦积区', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620521', '甘肃省清水县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620522', '甘肃省秦安县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620523', '甘肃省甘谷县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620524', '甘肃省武山县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620525', '甘肃省张家川回族自治县', '620500'); +INSERT INTO `base_administrative_division` VALUES ('620600', '甘肃省武威市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620601', '甘肃省武威市市辖区', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620602', '甘肃省武威市凉州区', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620621', '甘肃省民勤县', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620622', '甘肃省古浪县', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620623', '甘肃省天祝藏族自治县', '620600'); +INSERT INTO `base_administrative_division` VALUES ('620700', '甘肃省张掖市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620701', '甘肃省张掖市市辖区', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620702', '甘肃省张掖市甘州区', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620721', '甘肃省肃南裕固族自治县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620722', '甘肃省民乐县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620723', '甘肃省临泽县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620724', '甘肃省高台县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620725', '甘肃省山丹县', '620700'); +INSERT INTO `base_administrative_division` VALUES ('620800', '甘肃省平凉市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620801', '甘肃省平凉市市辖区', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620802', '甘肃省平凉市崆峒区', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620821', '甘肃省泾川县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620822', '甘肃省灵台县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620823', '甘肃省崇信县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620824', '甘肃省华亭县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620825', '甘肃省庄浪县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620826', '甘肃省静宁县', '620800'); +INSERT INTO `base_administrative_division` VALUES ('620900', '甘肃省酒泉市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('620901', '甘肃省酒泉市市辖区', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620902', '甘肃省酒泉市肃州区', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620921', '甘肃省金塔县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620922', '甘肃省瓜州县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620923', '甘肃省肃北蒙古族自治县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620924', '甘肃省阿克塞哈萨克族自治县', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620981', '甘肃省玉门市', '620900'); +INSERT INTO `base_administrative_division` VALUES ('620982', '甘肃省敦煌市', '620900'); +INSERT INTO `base_administrative_division` VALUES ('621000', '甘肃省庆阳市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('621001', '甘肃省庆阳市市辖区', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621002', '甘肃省庆阳市西峰区', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621021', '甘肃省庆城县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621022', '甘肃省环县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621023', '甘肃省华池县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621024', '甘肃省合水县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621025', '甘肃省正宁县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621026', '甘肃省宁县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621027', '甘肃省镇原县', '621000'); +INSERT INTO `base_administrative_division` VALUES ('621100', '甘肃省定西市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('621101', '甘肃省定西市市辖区', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621102', '甘肃省定西市安定区', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621121', '甘肃省通渭县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621122', '甘肃省陇西县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621123', '甘肃省渭源县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621124', '甘肃省临洮县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621125', '甘肃省漳县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621126', '甘肃省岷县', '621100'); +INSERT INTO `base_administrative_division` VALUES ('621200', '甘肃省陇南市', '620000'); +INSERT INTO `base_administrative_division` VALUES ('621201', '甘肃省陇南市市辖区', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621202', '甘肃省陇南市武都区', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621221', '甘肃省成县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621222', '甘肃省文县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621223', '甘肃省宕昌县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621224', '甘肃省康县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621225', '甘肃省西和县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621226', '甘肃省礼县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621227', '甘肃省徽县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('621228', '甘肃省两当县', '621200'); +INSERT INTO `base_administrative_division` VALUES ('622900', '甘肃省临夏回族自治州', '620000'); +INSERT INTO `base_administrative_division` VALUES ('622901', '甘肃省临夏市', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622921', '甘肃省临夏县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622922', '甘肃省康乐县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622923', '甘肃省永靖县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622924', '甘肃省广河县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622925', '甘肃省和政县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622926', '甘肃省东乡族自治县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('622927', '甘肃省积石山保安族东乡族撒拉族自治县', '622900'); +INSERT INTO `base_administrative_division` VALUES ('623000', '甘肃省甘南藏族自治州', '620000'); +INSERT INTO `base_administrative_division` VALUES ('623001', '甘肃省合作市', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623021', '甘肃省临潭县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623022', '甘肃省卓尼县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623023', '甘肃省舟曲县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623024', '甘肃省迭部县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623025', '甘肃省玛曲县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623026', '甘肃省碌曲县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('623027', '甘肃省夏河县', '623000'); +INSERT INTO `base_administrative_division` VALUES ('630000', '青海省', '0'); +INSERT INTO `base_administrative_division` VALUES ('630100', '青海省西宁市', '630000'); +INSERT INTO `base_administrative_division` VALUES ('630101', '青海省西宁市市辖区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630102', '青海省西宁市城东区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630103', '青海省西宁市城中区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630104', '青海省西宁市城西区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630105', '青海省西宁市城北区', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630121', '青海省大通回族土族自治县', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630122', '青海省湟中县', '630100'); +INSERT INTO `base_administrative_division` VALUES ('630123', '青海省湟源县', '630100'); +INSERT INTO `base_administrative_division` VALUES ('632100', '青海省海东地区', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632121', '青海省平安县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632122', '青海省民和回族土族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632123', '青海省乐都县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632126', '青海省互助土族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632127', '青海省化隆回族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632128', '青海省循化撒拉族自治县', '632100'); +INSERT INTO `base_administrative_division` VALUES ('632200', '青海省海北藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632221', '青海省门源回族自治县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632222', '青海省祁连县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632223', '青海省海晏县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632224', '青海省刚察县', '632200'); +INSERT INTO `base_administrative_division` VALUES ('632300', '青海省黄南藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632321', '青海省同仁县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632322', '青海省尖扎县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632323', '青海省泽库县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632324', '青海省河南蒙古族自治县', '632300'); +INSERT INTO `base_administrative_division` VALUES ('632500', '青海省海南藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632521', '青海省共和县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632522', '青海省同德县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632523', '青海省贵德县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632524', '青海省兴海县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632525', '青海省贵南县', '632500'); +INSERT INTO `base_administrative_division` VALUES ('632600', '青海省果洛藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632621', '青海省玛沁县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632622', '青海省班玛县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632623', '青海省甘德县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632624', '青海省达日县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632625', '青海省久治县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632626', '青海省玛多县', '632600'); +INSERT INTO `base_administrative_division` VALUES ('632700', '青海省玉树藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632721', '青海省玉树县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632722', '青海省杂多县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632723', '青海省称多县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632724', '青海省治多县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632725', '青海省囊谦县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632726', '青海省曲麻莱县', '632700'); +INSERT INTO `base_administrative_division` VALUES ('632800', '青海省海西蒙古族藏族自治州', '630000'); +INSERT INTO `base_administrative_division` VALUES ('632801', '青海省格尔木市', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632802', '青海省德令哈市', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632821', '青海省乌兰县', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632822', '青海省都兰县', '632800'); +INSERT INTO `base_administrative_division` VALUES ('632823', '青海省天峻县', '632800'); +INSERT INTO `base_administrative_division` VALUES ('640000', '宁夏回族自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('640100', '宁夏银川市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640101', '宁夏银川市市辖区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640104', '宁夏银川市兴庆区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640105', '宁夏银川市西夏区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640106', '宁夏银川市金凤区', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640121', '宁夏永宁县', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640122', '宁夏贺兰县', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640181', '宁夏灵武市', '640100'); +INSERT INTO `base_administrative_division` VALUES ('640200', '宁夏石嘴山市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640201', '宁夏石嘴山市市辖区', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640202', '宁夏石嘴山市大武口区', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640205', '宁夏石嘴山市惠农区', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640221', '宁夏平罗县', '640200'); +INSERT INTO `base_administrative_division` VALUES ('640300', '宁夏吴忠市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640301', '宁夏吴忠市市辖区', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640302', '宁夏吴忠市利通区', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640323', '宁夏盐池县', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640324', '宁夏同心县', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640381', '宁夏青铜峡市', '640300'); +INSERT INTO `base_administrative_division` VALUES ('640400', '宁夏固原市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640401', '宁夏固原市市辖区', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640402', '宁夏固原市原州区', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640422', '宁夏西吉县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640423', '宁夏隆德县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640424', '宁夏泾源县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640425', '宁夏彭阳县', '640400'); +INSERT INTO `base_administrative_division` VALUES ('640500', '宁夏中卫市', '640000'); +INSERT INTO `base_administrative_division` VALUES ('640501', '宁夏中卫市市辖区', '640500'); +INSERT INTO `base_administrative_division` VALUES ('640502', '宁夏中卫市沙坡头区', '640500'); +INSERT INTO `base_administrative_division` VALUES ('640521', '宁夏中宁县', '640500'); +INSERT INTO `base_administrative_division` VALUES ('640522', '宁夏海原县', '640500'); +INSERT INTO `base_administrative_division` VALUES ('650000', '新疆维吾尔自治区', '0'); +INSERT INTO `base_administrative_division` VALUES ('650100', '新疆乌鲁木齐市', '650000'); +INSERT INTO `base_administrative_division` VALUES ('650101', '新疆乌鲁木齐市市辖区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650102', '新疆乌鲁木齐市天山区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650103', '新疆乌鲁木齐市沙依巴克区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650104', '新疆乌鲁木齐市新市区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650105', '新疆乌鲁木齐市水磨沟区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650106', '新疆乌鲁木齐市头屯河区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650107', '新疆乌鲁木齐市达坂城区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650109', '新疆乌鲁木齐市米东区', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650121', '新疆乌鲁木齐县', '650100'); +INSERT INTO `base_administrative_division` VALUES ('650200', '新疆克拉玛依市', '650000'); +INSERT INTO `base_administrative_division` VALUES ('650201', '新疆克拉玛依市市辖区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650202', '新疆克拉玛依市独山子区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650203', '新疆克拉玛依市克拉玛依区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650204', '新疆克拉玛依市白碱滩区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('650205', '新疆克拉玛依市乌尔禾区', '650200'); +INSERT INTO `base_administrative_division` VALUES ('652100', '新疆克拉玛依市吐鲁番地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652101', '新疆吐鲁番市', '652100'); +INSERT INTO `base_administrative_division` VALUES ('652122', '新疆鄯善县', '652100'); +INSERT INTO `base_administrative_division` VALUES ('652123', '新疆托克逊县', '652100'); +INSERT INTO `base_administrative_division` VALUES ('652200', '新疆哈密地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652201', '新疆哈密市', '652200'); +INSERT INTO `base_administrative_division` VALUES ('652222', '新疆巴里坤哈萨克自治县', '652200'); +INSERT INTO `base_administrative_division` VALUES ('652223', '新疆伊吾县', '652200'); +INSERT INTO `base_administrative_division` VALUES ('652300', '新疆昌吉回族自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652301', '新疆昌吉市', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652302', '新疆阜康市', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652323', '新疆呼图壁县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652324', '新疆玛纳斯县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652325', '新疆奇台县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652327', '新疆吉木萨尔县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652328', '新疆木垒哈萨克自治县', '652300'); +INSERT INTO `base_administrative_division` VALUES ('652700', '新疆博尔塔拉蒙古自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652701', '新疆博乐市', '652700'); +INSERT INTO `base_administrative_division` VALUES ('652722', '新疆精河县', '652700'); +INSERT INTO `base_administrative_division` VALUES ('652723', '新疆温泉县', '652700'); +INSERT INTO `base_administrative_division` VALUES ('652800', '新疆巴音郭楞蒙古自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652801', '新疆库尔勒市', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652822', '新疆轮台县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652823', '新疆尉犁县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652824', '新疆若羌县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652825', '新疆且末县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652826', '新疆焉耆回族自治县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652827', '新疆和静县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652828', '新疆和硕县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652829', '新疆博湖县', '652800'); +INSERT INTO `base_administrative_division` VALUES ('652900', '新疆阿克苏地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('652901', '新疆阿克苏市', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652922', '新疆温宿县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652923', '新疆库车县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652924', '新疆沙雅县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652925', '新疆新和县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652926', '新疆拜城县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652927', '新疆乌什县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652928', '新疆阿瓦提县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('652929', '新疆柯坪县', '652900'); +INSERT INTO `base_administrative_division` VALUES ('653000', '新疆克孜勒苏柯尔克孜自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('653001', '新疆阿图什市', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653022', '新疆阿克陶县', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653023', '新疆阿合奇县', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653024', '新疆乌恰县', '653000'); +INSERT INTO `base_administrative_division` VALUES ('653100', '新疆喀什地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('653101', '新疆喀什市', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653121', '新疆疏附县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653122', '新疆疏勒县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653123', '新疆英吉沙县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653124', '新疆泽普县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653125', '新疆莎车县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653126', '新疆叶城县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653127', '新疆麦盖提县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653128', '新疆岳普湖县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653129', '新疆伽师县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653130', '新疆巴楚县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653131', '新疆塔什库尔干塔吉克自治县', '653100'); +INSERT INTO `base_administrative_division` VALUES ('653200', '新疆和田地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('653201', '新疆和田市', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653221', '新疆和田县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653222', '新疆墨玉县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653223', '新疆皮山县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653224', '新疆洛浦县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653225', '新疆策勒县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653226', '新疆于田县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('653227', '新疆民丰县', '653200'); +INSERT INTO `base_administrative_division` VALUES ('654000', '新疆伊犁哈萨克自治州', '650000'); +INSERT INTO `base_administrative_division` VALUES ('654002', '新疆伊宁市', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654003', '新疆奎屯市', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654021', '新疆伊宁县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654022', '新疆察布查尔锡伯自治县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654023', '新疆霍城县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654024', '新疆巩留县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654025', '新疆新源县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654026', '新疆昭苏县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654027', '新疆特克斯县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654028', '新疆尼勒克县', '654000'); +INSERT INTO `base_administrative_division` VALUES ('654200', '新疆塔城地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('654201', '新疆塔城市', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654202', '新疆乌苏市', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654221', '新疆额敏县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654223', '新疆沙湾县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654224', '新疆托里县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654225', '新疆裕民县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654226', '新疆和布克赛尔蒙古自治县', '654200'); +INSERT INTO `base_administrative_division` VALUES ('654300', '新疆阿勒泰地区', '650000'); +INSERT INTO `base_administrative_division` VALUES ('654301', '新疆阿勒泰市', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654321', '新疆布尔津县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654322', '新疆富蕴县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654323', '新疆福海县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654324', '新疆哈巴河县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654325', '新疆青河县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('654326', '新疆吉木乃县', '654300'); +INSERT INTO `base_administrative_division` VALUES ('659000', '新疆省直辖县级行政区划', '650000'); +INSERT INTO `base_administrative_division` VALUES ('659001', '新疆石河子市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('659002', '新疆阿拉尔市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('659003', '新疆图木舒克市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('659004', '新疆五家渠市', '659000'); +INSERT INTO `base_administrative_division` VALUES ('710000', '台湾省', '0'); +INSERT INTO `base_administrative_division` VALUES ('810000', '香港特别行政区', '0'); +INSERT INTO `base_administrative_division` VALUES ('820000', '澳门特别行政区', '0'); + +-- ---------------------------- +-- Records of base_college +-- ---------------------------- +INSERT INTO `base_college` VALUES ('01', '航空学院', '1'); +INSERT INTO `base_college` VALUES ('02', '航天学院', '2'); +INSERT INTO `base_college` VALUES ('03', '航海学院', '3'); +INSERT INTO `base_college` VALUES ('04', '材料学院', '4'); +INSERT INTO `base_college` VALUES ('05', '机电学院', '5'); +INSERT INTO `base_college` VALUES ('06', '力学与土木建筑学院', '6'); +INSERT INTO `base_college` VALUES ('07', '动力与能源学院', '7'); +INSERT INTO `base_college` VALUES ('08', '电子信息学院', '8'); +INSERT INTO `base_college` VALUES ('09', '自动化学院', '9'); +INSERT INTO `base_college` VALUES ('10', '计算机学院', '10'); +INSERT INTO `base_college` VALUES ('11', '理学院', '11'); +INSERT INTO `base_college` VALUES ('12', '管理学院', '12'); +INSERT INTO `base_college` VALUES ('13', '人文与经法学院', '13'); +INSERT INTO `base_college` VALUES ('14', '软件学院', '14'); +INSERT INTO `base_college` VALUES ('15', '生命学院', '15'); +INSERT INTO `base_college` VALUES ('16', '外国语学院', '16'); +INSERT INTO `base_college` VALUES ('17', '教育实验学院', '17'); +INSERT INTO `base_college` VALUES ('18', '西北工业大学伦敦玛丽女王大学工程学院', '18'); +INSERT INTO `base_college` VALUES ('19', '马克思主义学院', '19'); +INSERT INTO `base_college` VALUES ('20', '微电子学院', '20'); +INSERT INTO `base_college` VALUES ('21', '网络空间安全学院', '21'); +INSERT INTO `base_college` VALUES ('22', '民航学院', '22'); + +-- ---------------------------- +-- Records of base_ethnic +-- ---------------------------- +INSERT INTO `base_ethnic` VALUES ('00', '----'); +INSERT INTO `base_ethnic` VALUES ('01', '汉族'); +INSERT INTO `base_ethnic` VALUES ('02', '蒙古族'); +INSERT INTO `base_ethnic` VALUES ('03', '回族'); +INSERT INTO `base_ethnic` VALUES ('04', '藏族'); +INSERT INTO `base_ethnic` VALUES ('05', '维吾尔族'); +INSERT INTO `base_ethnic` VALUES ('06', '苗族'); +INSERT INTO `base_ethnic` VALUES ('07', '彝族'); +INSERT INTO `base_ethnic` VALUES ('08', '壮族'); +INSERT INTO `base_ethnic` VALUES ('09', '布依族'); +INSERT INTO `base_ethnic` VALUES ('10', '朝鲜族'); +INSERT INTO `base_ethnic` VALUES ('11', '满族'); +INSERT INTO `base_ethnic` VALUES ('12', '侗族'); +INSERT INTO `base_ethnic` VALUES ('13', '瑶族'); +INSERT INTO `base_ethnic` VALUES ('14', '白族'); +INSERT INTO `base_ethnic` VALUES ('15', '土家族'); +INSERT INTO `base_ethnic` VALUES ('16', '哈尼族'); +INSERT INTO `base_ethnic` VALUES ('17', '哈萨克族'); +INSERT INTO `base_ethnic` VALUES ('18', '傣族'); +INSERT INTO `base_ethnic` VALUES ('19', '黎族'); +INSERT INTO `base_ethnic` VALUES ('20', '傈傈族'); +INSERT INTO `base_ethnic` VALUES ('21', '佤族'); +INSERT INTO `base_ethnic` VALUES ('22', '畲族'); +INSERT INTO `base_ethnic` VALUES ('23', '高山族'); +INSERT INTO `base_ethnic` VALUES ('24', '拉祜族'); +INSERT INTO `base_ethnic` VALUES ('25', '水族'); +INSERT INTO `base_ethnic` VALUES ('26', '东乡族'); +INSERT INTO `base_ethnic` VALUES ('27', '纳西族'); +INSERT INTO `base_ethnic` VALUES ('28', '景颇族'); +INSERT INTO `base_ethnic` VALUES ('29', '柯尔克孜族'); +INSERT INTO `base_ethnic` VALUES ('30', '土族'); +INSERT INTO `base_ethnic` VALUES ('31', '达斡尔族'); +INSERT INTO `base_ethnic` VALUES ('32', '仫佬族'); +INSERT INTO `base_ethnic` VALUES ('33', '羌族'); +INSERT INTO `base_ethnic` VALUES ('34', '布朗族'); +INSERT INTO `base_ethnic` VALUES ('35', '撒拉族'); +INSERT INTO `base_ethnic` VALUES ('36', '毛难族'); +INSERT INTO `base_ethnic` VALUES ('37', '仡佬族'); +INSERT INTO `base_ethnic` VALUES ('38', '锡伯族'); +INSERT INTO `base_ethnic` VALUES ('39', '阿昌族'); +INSERT INTO `base_ethnic` VALUES ('40', '普米族'); +INSERT INTO `base_ethnic` VALUES ('41', '塔吉克族'); +INSERT INTO `base_ethnic` VALUES ('42', '怒族'); +INSERT INTO `base_ethnic` VALUES ('43', '乌孜别克族'); +INSERT INTO `base_ethnic` VALUES ('44', '俄罗斯族'); +INSERT INTO `base_ethnic` VALUES ('45', '鄂温克族'); +INSERT INTO `base_ethnic` VALUES ('46', '崩龙族'); +INSERT INTO `base_ethnic` VALUES ('47', '保安族'); +INSERT INTO `base_ethnic` VALUES ('48', '裕固族'); +INSERT INTO `base_ethnic` VALUES ('49', '京族'); +INSERT INTO `base_ethnic` VALUES ('50', '塔塔尔族'); +INSERT INTO `base_ethnic` VALUES ('51', '独龙族'); +INSERT INTO `base_ethnic` VALUES ('52', '鄂伦春族'); +INSERT INTO `base_ethnic` VALUES ('53', '赫哲族'); +INSERT INTO `base_ethnic` VALUES ('54', '门巴族'); +INSERT INTO `base_ethnic` VALUES ('55', '珞巴族'); +INSERT INTO `base_ethnic` VALUES ('56', '基诺族'); +INSERT INTO `base_ethnic` VALUES ('97', '其他'); +INSERT INTO `base_ethnic` VALUES ('98', '外国血统'); + +-- ---------------------------- +-- Records of base_major +-- ---------------------------- +INSERT INTO `base_major` VALUES ('010100', '哲学类'); +INSERT INTO `base_major` VALUES ('010101', '哲学'); +INSERT INTO `base_major` VALUES ('010102', '逻辑学'); +INSERT INTO `base_major` VALUES ('010103', '宗教学'); +INSERT INTO `base_major` VALUES ('010104', '伦理学'); +INSERT INTO `base_major` VALUES ('01010J', '哲学基地班'); +INSERT INTO `base_major` VALUES ('01SY00', '人文科学试验班类'); +INSERT INTO `base_major` VALUES ('01SY01', '人文科学试验班'); +INSERT INTO `base_major` VALUES ('020100', '经济学类'); +INSERT INTO `base_major` VALUES ('020101', '经济学'); +INSERT INTO `base_major` VALUES ('020102', '国际经济与贸易'); +INSERT INTO `base_major` VALUES ('020103', '财政学'); +INSERT INTO `base_major` VALUES ('020104', '金融学'); +INSERT INTO `base_major` VALUES ('020105', '国民经济管理'); +INSERT INTO `base_major` VALUES ('020106', '贸易经济'); +INSERT INTO `base_major` VALUES ('020107', '保险'); +INSERT INTO `base_major` VALUES ('020108', '环境经济'); +INSERT INTO `base_major` VALUES ('020109', '金融工程'); +INSERT INTO `base_major` VALUES ('02010J', '经济学基地班'); +INSERT INTO `base_major` VALUES ('020110', '税务'); +INSERT INTO `base_major` VALUES ('020111', '信用管理'); +INSERT INTO `base_major` VALUES ('020112', '网络经济学'); +INSERT INTO `base_major` VALUES ('020113', '体育经济'); +INSERT INTO `base_major` VALUES ('020114', '投资学'); +INSERT INTO `base_major` VALUES ('020115', '环境资源与发展经济学'); +INSERT INTO `base_major` VALUES ('020116', '海洋经济学'); +INSERT INTO `base_major` VALUES ('020117', '国际文化贸易'); +INSERT INTO `base_major` VALUES ('020119', '金融数学'); +INSERT INTO `base_major` VALUES ('020120', '经济与金融'); +INSERT INTO `base_major` VALUES ('020121', '能源经济'); +INSERT INTO `base_major` VALUES ('020303', '保险学'); +INSERT INTO `base_major` VALUES ('030100', '法学类'); +INSERT INTO `base_major` VALUES ('030101', '法学'); +INSERT INTO `base_major` VALUES ('030102', '知识产权法'); +INSERT INTO `base_major` VALUES ('030103', '知识产权'); +INSERT INTO `base_major` VALUES ('030120', '监狱学'); +INSERT INTO `base_major` VALUES ('030200', '马克思主义理论类'); +INSERT INTO `base_major` VALUES ('030201', '科学社会主义与国际共产主义运动'); +INSERT INTO `base_major` VALUES ('030202', '中国革命史与中国共产党党史'); +INSERT INTO `base_major` VALUES ('030300', '社会学类'); +INSERT INTO `base_major` VALUES ('030301', '社会学'); +INSERT INTO `base_major` VALUES ('030302', '社会工作'); +INSERT INTO `base_major` VALUES ('030303', '家政学'); +INSERT INTO `base_major` VALUES ('030304', '人类学'); +INSERT INTO `base_major` VALUES ('030305', '女性学'); +INSERT INTO `base_major` VALUES ('030400', '政治学类'); +INSERT INTO `base_major` VALUES ('030401', '政治学与行政学'); +INSERT INTO `base_major` VALUES ('030402', '国际政治'); +INSERT INTO `base_major` VALUES ('030403', '外交学'); +INSERT INTO `base_major` VALUES ('030404', '思想政治教育'); +INSERT INTO `base_major` VALUES ('030405', '国际文化交流'); +INSERT INTO `base_major` VALUES ('030406', '国际政治经济学'); +INSERT INTO `base_major` VALUES ('030407', '国际事务'); +INSERT INTO `base_major` VALUES ('030408', '国际事务与国际关系'); +INSERT INTO `base_major` VALUES ('030409', '欧洲事务与欧洲关系'); +INSERT INTO `base_major` VALUES ('030500', '公安学类'); +INSERT INTO `base_major` VALUES ('030501', '治安学'); +INSERT INTO `base_major` VALUES ('030502', '侦查学'); +INSERT INTO `base_major` VALUES ('030503', '边防管理'); +INSERT INTO `base_major` VALUES ('030504', '火灾勘查'); +INSERT INTO `base_major` VALUES ('030505', '禁毒学'); +INSERT INTO `base_major` VALUES ('030506', '警犬技术'); +INSERT INTO `base_major` VALUES ('030507', '经济犯罪侦查'); +INSERT INTO `base_major` VALUES ('030508', '边防指挥'); +INSERT INTO `base_major` VALUES ('030509', '消防指挥'); +INSERT INTO `base_major` VALUES ('030510', '警卫学'); +INSERT INTO `base_major` VALUES ('030511', '公安情报学'); +INSERT INTO `base_major` VALUES ('030512', '犯罪学'); +INSERT INTO `base_major` VALUES ('030513', '公安管理学'); +INSERT INTO `base_major` VALUES ('030514', '涉外警务'); +INSERT INTO `base_major` VALUES ('030515', '国内安全保卫'); +INSERT INTO `base_major` VALUES ('030516', '警务指挥与战术'); +INSERT INTO `base_major` VALUES ('03SY01', '社会科学试验班'); +INSERT INTO `base_major` VALUES ('040100', '教育学类'); +INSERT INTO `base_major` VALUES ('040101', '教育学'); +INSERT INTO `base_major` VALUES ('040102', '学前教育'); +INSERT INTO `base_major` VALUES ('040103', '特殊教育'); +INSERT INTO `base_major` VALUES ('040104', '教育技术学'); +INSERT INTO `base_major` VALUES ('040105', '小学教育'); +INSERT INTO `base_major` VALUES ('040106', '艺术教育'); +INSERT INTO `base_major` VALUES ('040107', '人文教育'); +INSERT INTO `base_major` VALUES ('040108', '科学教育'); +INSERT INTO `base_major` VALUES ('040109', '言语听觉科学'); +INSERT INTO `base_major` VALUES ('040110', '华文教育'); +INSERT INTO `base_major` VALUES ('040200', '体育学类'); +INSERT INTO `base_major` VALUES ('040201', '体育教育'); +INSERT INTO `base_major` VALUES ('040202', '运动训练'); +INSERT INTO `base_major` VALUES ('040203', '社会体育'); +INSERT INTO `base_major` VALUES ('040204', '运动人体科学'); +INSERT INTO `base_major` VALUES ('040205', '民族传统体育'); +INSERT INTO `base_major` VALUES ('040206', '运动康复与健康'); +INSERT INTO `base_major` VALUES ('040207', '休闲体育'); +INSERT INTO `base_major` VALUES ('040300', '职业技术教育类'); +INSERT INTO `base_major` VALUES ('040301', '农艺教育'); +INSERT INTO `base_major` VALUES ('040302', '园艺教育'); +INSERT INTO `base_major` VALUES ('040303', '特用作物教育'); +INSERT INTO `base_major` VALUES ('040304', '林木生产教育'); +INSERT INTO `base_major` VALUES ('040305', '特用动物教育'); +INSERT INTO `base_major` VALUES ('040306', '畜禽生产教育'); +INSERT INTO `base_major` VALUES ('040307', '水产养殖教育'); +INSERT INTO `base_major` VALUES ('040308', '应用生物教育'); +INSERT INTO `base_major` VALUES ('040309', '农业机械教育'); +INSERT INTO `base_major` VALUES ('040310', '农业建筑与环境控制教育'); +INSERT INTO `base_major` VALUES ('040311', '农产品储运与加工教育'); +INSERT INTO `base_major` VALUES ('040312', '农业经营管理教育'); +INSERT INTO `base_major` VALUES ('040313', '机械制造工艺教育'); +INSERT INTO `base_major` VALUES ('040314', '机械维修及检测技术教育'); +INSERT INTO `base_major` VALUES ('040315', '机电技术教育'); +INSERT INTO `base_major` VALUES ('040316', '电气技术教育'); +INSERT INTO `base_major` VALUES ('040317', '汽车维修工程教育'); +INSERT INTO `base_major` VALUES ('040318', '应用电子技术教育'); +INSERT INTO `base_major` VALUES ('040319', '制浆造纸工艺教育'); +INSERT INTO `base_major` VALUES ('040320', '印刷工艺教育'); +INSERT INTO `base_major` VALUES ('040321', '橡塑制品成型工艺教育'); +INSERT INTO `base_major` VALUES ('040322', '食品工艺教育'); +INSERT INTO `base_major` VALUES ('040323', '纺织工艺教育'); +INSERT INTO `base_major` VALUES ('040324', '染整工艺教育'); +INSERT INTO `base_major` VALUES ('040325', '化工工艺教育'); +INSERT INTO `base_major` VALUES ('040326', '化工分析与检测技术教育'); +INSERT INTO `base_major` VALUES ('040327', '建筑材料工程教育'); +INSERT INTO `base_major` VALUES ('040328', '建筑工程教育'); +INSERT INTO `base_major` VALUES ('040329', '服装设计与工艺教育'); +INSERT INTO `base_major` VALUES ('040330', '装潢设计与工艺教育'); +INSERT INTO `base_major` VALUES ('040331', '旅游管理与服务教育'); +INSERT INTO `base_major` VALUES ('040332', '食品营养与检验教育'); +INSERT INTO `base_major` VALUES ('040333', '烹饪与营养教育'); +INSERT INTO `base_major` VALUES ('040334', '财务会计教育'); +INSERT INTO `base_major` VALUES ('040335', '文秘教育'); +INSERT INTO `base_major` VALUES ('040336', '市场营销教育'); +INSERT INTO `base_major` VALUES ('040337', '职业技术教育管理'); +INSERT INTO `base_major` VALUES ('050100', '中国语言文学类'); +INSERT INTO `base_major` VALUES ('050101', '汉语言文学'); +INSERT INTO `base_major` VALUES ('050102', '汉语言'); +INSERT INTO `base_major` VALUES ('050103', '对外汉语'); +INSERT INTO `base_major` VALUES ('050104', '中国少数民族语言文学'); +INSERT INTO `base_major` VALUES ('050105', '古典文献'); +INSERT INTO `base_major` VALUES ('050106', '中国语言文化'); +INSERT INTO `base_major` VALUES ('050107', '应用语言学'); +INSERT INTO `base_major` VALUES ('05010J', '中国语言文学基地班'); +INSERT INTO `base_major` VALUES ('050200', '外国语言文学类'); +INSERT INTO `base_major` VALUES ('050201', '英语'); +INSERT INTO `base_major` VALUES ('050202', '俄语'); +INSERT INTO `base_major` VALUES ('050203', '德语'); +INSERT INTO `base_major` VALUES ('050204', '法语'); +INSERT INTO `base_major` VALUES ('050205', '西班牙语'); +INSERT INTO `base_major` VALUES ('050206', '阿拉伯语'); +INSERT INTO `base_major` VALUES ('050207', '日语'); +INSERT INTO `base_major` VALUES ('050208', '波斯语'); +INSERT INTO `base_major` VALUES ('050209', '朝鲜语'); +INSERT INTO `base_major` VALUES ('050210', '菲律宾语'); +INSERT INTO `base_major` VALUES ('050211', '梵语巴利语'); +INSERT INTO `base_major` VALUES ('050212', '印度尼西亚语'); +INSERT INTO `base_major` VALUES ('050213', '印地语'); +INSERT INTO `base_major` VALUES ('050214', '柬埔寨语'); +INSERT INTO `base_major` VALUES ('050215', '老挝语'); +INSERT INTO `base_major` VALUES ('050216', '缅甸语'); +INSERT INTO `base_major` VALUES ('050217', '马来语'); +INSERT INTO `base_major` VALUES ('050218', '蒙古语'); +INSERT INTO `base_major` VALUES ('050219', '僧加罗语'); +INSERT INTO `base_major` VALUES ('050220', '泰语'); +INSERT INTO `base_major` VALUES ('050221', '乌尔都语'); +INSERT INTO `base_major` VALUES ('050222', '希伯莱语'); +INSERT INTO `base_major` VALUES ('050223', '越南语'); +INSERT INTO `base_major` VALUES ('050224', '豪萨语'); +INSERT INTO `base_major` VALUES ('050225', '斯瓦希里语'); +INSERT INTO `base_major` VALUES ('050226', '阿尔巴尼亚语'); +INSERT INTO `base_major` VALUES ('050227', '保加利亚语'); +INSERT INTO `base_major` VALUES ('050228', '波兰语'); +INSERT INTO `base_major` VALUES ('050229', '捷克语'); +INSERT INTO `base_major` VALUES ('050230', '罗马尼亚语'); +INSERT INTO `base_major` VALUES ('050231', '葡萄牙语'); +INSERT INTO `base_major` VALUES ('050232', '瑞典语'); +INSERT INTO `base_major` VALUES ('050233', '塞尔维亚—克罗地亚语'); +INSERT INTO `base_major` VALUES ('050234', '土耳其语'); +INSERT INTO `base_major` VALUES ('050235', '希腊语'); +INSERT INTO `base_major` VALUES ('050236', '匈牙利语'); +INSERT INTO `base_major` VALUES ('050237', '意大利语'); +INSERT INTO `base_major` VALUES ('050238', '捷克语—斯洛伐克语'); +INSERT INTO `base_major` VALUES ('050239', '泰米尔语'); +INSERT INTO `base_major` VALUES ('050240', '普什图语'); +INSERT INTO `base_major` VALUES ('050241', '世界语'); +INSERT INTO `base_major` VALUES ('050242', '孟加拉语'); +INSERT INTO `base_major` VALUES ('050243', '尼泊尔语'); +INSERT INTO `base_major` VALUES ('050244', '塞尔维亚语—克罗地亚语'); +INSERT INTO `base_major` VALUES ('050245', '荷兰语'); +INSERT INTO `base_major` VALUES ('050246', '芬兰语'); +INSERT INTO `base_major` VALUES ('050247', '乌克兰语'); +INSERT INTO `base_major` VALUES ('050248', '韩国语'); +INSERT INTO `base_major` VALUES ('050249', '商务英语'); +INSERT INTO `base_major` VALUES ('050250', '塞尔维亚语'); +INSERT INTO `base_major` VALUES ('050251', '克罗地亚语'); +INSERT INTO `base_major` VALUES ('050252', '挪威语'); +INSERT INTO `base_major` VALUES ('050253', '丹麦语'); +INSERT INTO `base_major` VALUES ('050254', '冰岛语'); +INSERT INTO `base_major` VALUES ('050255', '翻译'); +INSERT INTO `base_major` VALUES ('050300', '新闻传播学类'); +INSERT INTO `base_major` VALUES ('050301', '新闻学'); +INSERT INTO `base_major` VALUES ('050302', '广播电视新闻学'); +INSERT INTO `base_major` VALUES ('050303', '广告学'); +INSERT INTO `base_major` VALUES ('050304', '编辑出版学'); +INSERT INTO `base_major` VALUES ('050305', '传播学'); +INSERT INTO `base_major` VALUES ('050306', '媒体创意'); +INSERT INTO `base_major` VALUES ('050307', '新媒体与信息网络'); +INSERT INTO `base_major` VALUES ('050308', '数字出版'); +INSERT INTO `base_major` VALUES ('050400', '艺术类'); +INSERT INTO `base_major` VALUES ('050401', '音乐学'); +INSERT INTO `base_major` VALUES ('050402', '作曲与作曲技术理论'); +INSERT INTO `base_major` VALUES ('050403', '音乐表演'); +INSERT INTO `base_major` VALUES ('050404', '绘画'); +INSERT INTO `base_major` VALUES ('050405', '雕塑'); +INSERT INTO `base_major` VALUES ('050406', '美术学'); +INSERT INTO `base_major` VALUES ('050407', '艺术设计学'); +INSERT INTO `base_major` VALUES ('050408', '艺术设计'); +INSERT INTO `base_major` VALUES ('050409', '舞蹈学'); +INSERT INTO `base_major` VALUES ('050410', '舞蹈编导'); +INSERT INTO `base_major` VALUES ('050411', '戏剧学'); +INSERT INTO `base_major` VALUES ('050412', '表演'); +INSERT INTO `base_major` VALUES ('050413', '导演'); +INSERT INTO `base_major` VALUES ('050414', '戏剧影视文学'); +INSERT INTO `base_major` VALUES ('050415', '戏剧影视美术设计'); +INSERT INTO `base_major` VALUES ('050416', '摄影'); +INSERT INTO `base_major` VALUES ('050417', '录音艺术'); +INSERT INTO `base_major` VALUES ('050418', '动画'); +INSERT INTO `base_major` VALUES ('050419', '播音与主持艺术'); +INSERT INTO `base_major` VALUES ('050420', '广播电视编导'); +INSERT INTO `base_major` VALUES ('050422', '艺术学'); +INSERT INTO `base_major` VALUES ('050423', '影视学'); +INSERT INTO `base_major` VALUES ('050424', '广播影视编导'); +INSERT INTO `base_major` VALUES ('050425', '书法学'); +INSERT INTO `base_major` VALUES ('050426', '照明艺术'); +INSERT INTO `base_major` VALUES ('050427', '会展艺术与技术'); +INSERT INTO `base_major` VALUES ('050428', '音乐科技与艺术'); +INSERT INTO `base_major` VALUES ('050429', '中国画'); +INSERT INTO `base_major` VALUES ('050430', '公共艺术'); +INSERT INTO `base_major` VALUES ('050431', '数字游戏设计'); +INSERT INTO `base_major` VALUES ('050432', '数字电影技术'); +INSERT INTO `base_major` VALUES ('05SY00', '文科试验班类'); +INSERT INTO `base_major` VALUES ('060100', '历史学类'); +INSERT INTO `base_major` VALUES ('060101', '历史学'); +INSERT INTO `base_major` VALUES ('060102', '世界历史'); +INSERT INTO `base_major` VALUES ('060103', '考古学'); +INSERT INTO `base_major` VALUES ('060104', '博物馆学'); +INSERT INTO `base_major` VALUES ('060105', '民族学'); +INSERT INTO `base_major` VALUES ('060106', '文物保护技术'); +INSERT INTO `base_major` VALUES ('06010J', '历史学基地班'); +INSERT INTO `base_major` VALUES ('070100', '数学类'); +INSERT INTO `base_major` VALUES ('070101', '数学与应用数学'); +INSERT INTO `base_major` VALUES ('070102', '信息与计算科学'); +INSERT INTO `base_major` VALUES ('070103', '数理基础科学'); +INSERT INTO `base_major` VALUES ('07010J', '数学基地班'); +INSERT INTO `base_major` VALUES ('070200', '物理学类'); +INSERT INTO `base_major` VALUES ('070201', '物理学'); +INSERT INTO `base_major` VALUES ('070202', '应用物理学'); +INSERT INTO `base_major` VALUES ('070203', '声学'); +INSERT INTO `base_major` VALUES ('070204', '核物理'); +INSERT INTO `base_major` VALUES ('07020J', '物理学基地班'); +INSERT INTO `base_major` VALUES ('070300', '化学类'); +INSERT INTO `base_major` VALUES ('070301', '化学'); +INSERT INTO `base_major` VALUES ('070302', '应用化学'); +INSERT INTO `base_major` VALUES ('070303', '化学生物学'); +INSERT INTO `base_major` VALUES ('070304', '分子科学与工程'); +INSERT INTO `base_major` VALUES ('07030J', '化学基地班'); +INSERT INTO `base_major` VALUES ('070400', '生物科学类'); +INSERT INTO `base_major` VALUES ('070401', '生物科学'); +INSERT INTO `base_major` VALUES ('070402', '生物技术'); +INSERT INTO `base_major` VALUES ('070403', '生物信息学'); +INSERT INTO `base_major` VALUES ('070404', '生物信息技术'); +INSERT INTO `base_major` VALUES ('070405', '生物科学与生物技术'); +INSERT INTO `base_major` VALUES ('070406', '动植物检疫'); +INSERT INTO `base_major` VALUES ('070407', '生物化学与分子生物学'); +INSERT INTO `base_major` VALUES ('070408', '医学信息学'); +INSERT INTO `base_major` VALUES ('070409', '植物生物技术'); +INSERT INTO `base_major` VALUES ('07040J', '生物学基地班'); +INSERT INTO `base_major` VALUES ('070410', '动物生物技术'); +INSERT INTO `base_major` VALUES ('070411', '生物资源科学'); +INSERT INTO `base_major` VALUES ('070412', '生物安全'); +INSERT INTO `base_major` VALUES ('070413', '生物医学英语'); +INSERT INTO `base_major` VALUES ('07041J', '生命科学与技术基地班'); +INSERT INTO `base_major` VALUES ('070500', '天文学类'); +INSERT INTO `base_major` VALUES ('070501', '天文学'); +INSERT INTO `base_major` VALUES ('070600', '地质学类'); +INSERT INTO `base_major` VALUES ('070601', '地质学'); +INSERT INTO `base_major` VALUES ('070602', '地球化学'); +INSERT INTO `base_major` VALUES ('07060J', '地质学基地班'); +INSERT INTO `base_major` VALUES ('070700', '地理科学类'); +INSERT INTO `base_major` VALUES ('070701', '地理科学'); +INSERT INTO `base_major` VALUES ('070702', '资源环境与城乡规划管理'); +INSERT INTO `base_major` VALUES ('070703', '地理信息系统'); +INSERT INTO `base_major` VALUES ('070704', '地球信息科学与技术'); +INSERT INTO `base_major` VALUES ('07070J', '地理学基地班'); +INSERT INTO `base_major` VALUES ('070800', '地球物理学类'); +INSERT INTO `base_major` VALUES ('070801', '地球物理学'); +INSERT INTO `base_major` VALUES ('070802', '地球与空间科学'); +INSERT INTO `base_major` VALUES ('070803', '空间科学与技术'); +INSERT INTO `base_major` VALUES ('070900', '大气科学类'); +INSERT INTO `base_major` VALUES ('070901', '大气科学'); +INSERT INTO `base_major` VALUES ('070902', '应用气象学'); +INSERT INTO `base_major` VALUES ('071000', '海洋科学类'); +INSERT INTO `base_major` VALUES ('071001', '海洋科学'); +INSERT INTO `base_major` VALUES ('071002', '海洋技术'); +INSERT INTO `base_major` VALUES ('071003', '海洋管理'); +INSERT INTO `base_major` VALUES ('071004', '军事海洋学'); +INSERT INTO `base_major` VALUES ('071005', '海洋生物资源与环境'); +INSERT INTO `base_major` VALUES ('071100', '力学类'); +INSERT INTO `base_major` VALUES ('071101', '理论与应用力学'); +INSERT INTO `base_major` VALUES ('071200', '电子信息科学类'); +INSERT INTO `base_major` VALUES ('071201', '电子信息科学与技术'); +INSERT INTO `base_major` VALUES ('071202', '微电子学'); +INSERT INTO `base_major` VALUES ('071203', '光信息科学与技术'); +INSERT INTO `base_major` VALUES ('071204', '科技防卫'); +INSERT INTO `base_major` VALUES ('071205', '信息安全'); +INSERT INTO `base_major` VALUES ('071206', '信息科学技术'); +INSERT INTO `base_major` VALUES ('071207', '光电子技术科学'); +INSERT INTO `base_major` VALUES ('071300', '材料科学类'); +INSERT INTO `base_major` VALUES ('071301', '材料物理'); +INSERT INTO `base_major` VALUES ('071302', '材料化学'); +INSERT INTO `base_major` VALUES ('071400', '环境科学类'); +INSERT INTO `base_major` VALUES ('071401', '环境科学'); +INSERT INTO `base_major` VALUES ('071402', '生态学'); +INSERT INTO `base_major` VALUES ('071403', '资源环境科学'); +INSERT INTO `base_major` VALUES ('071404', '地球环境科学'); +INSERT INTO `base_major` VALUES ('071500', '心理学类'); +INSERT INTO `base_major` VALUES ('071501', '心理学'); +INSERT INTO `base_major` VALUES ('071502', '应用心理学'); +INSERT INTO `base_major` VALUES ('071600', '统计学类'); +INSERT INTO `base_major` VALUES ('071601', '统计学'); +INSERT INTO `base_major` VALUES ('071700', '系统科学类'); +INSERT INTO `base_major` VALUES ('071701', '系统理论'); +INSERT INTO `base_major` VALUES ('071702', '系统科学与工程'); +INSERT INTO `base_major` VALUES ('07SY00', '理科试验班类'); +INSERT INTO `base_major` VALUES ('07SY01', '理科试验班'); +INSERT INTO `base_major` VALUES ('07SY02', '自然科学试验班'); +INSERT INTO `base_major` VALUES ('080100', '地矿类'); +INSERT INTO `base_major` VALUES ('080101', '采矿工程'); +INSERT INTO `base_major` VALUES ('080102', '石油工程'); +INSERT INTO `base_major` VALUES ('080103', '矿物加工工程'); +INSERT INTO `base_major` VALUES ('080104', '勘查技术与工程'); +INSERT INTO `base_major` VALUES ('080105', '资源勘查工程'); +INSERT INTO `base_major` VALUES ('080106', '地质工程'); +INSERT INTO `base_major` VALUES ('080107', '矿物资源工程'); +INSERT INTO `base_major` VALUES ('080108', '煤及煤层气工程'); +INSERT INTO `base_major` VALUES ('080109', '地下水科学与工程'); +INSERT INTO `base_major` VALUES ('080110', '能源与资源工程'); +INSERT INTO `base_major` VALUES ('080111', '海洋油气工程'); +INSERT INTO `base_major` VALUES ('080200', '材料类'); +INSERT INTO `base_major` VALUES ('080201', '冶金工程'); +INSERT INTO `base_major` VALUES ('080202', '金属材料工程'); +INSERT INTO `base_major` VALUES ('080203', '无机非金属材料工程'); +INSERT INTO `base_major` VALUES ('080204', '高分子材料与工程'); +INSERT INTO `base_major` VALUES ('080205', '材料科学与工程'); +INSERT INTO `base_major` VALUES ('080206', '复合材料与工程'); +INSERT INTO `base_major` VALUES ('080207', '焊接技术与工程'); +INSERT INTO `base_major` VALUES ('080208', '宝石及材料工艺学'); +INSERT INTO `base_major` VALUES ('080209', '粉体材料科学与工程'); +INSERT INTO `base_major` VALUES ('080210', '再生资源科学与技术'); +INSERT INTO `base_major` VALUES ('080211', '稀土工程'); +INSERT INTO `base_major` VALUES ('080212', '高分子材料加工工程'); +INSERT INTO `base_major` VALUES ('080213', '生物功能材料'); +INSERT INTO `base_major` VALUES ('080214', '电子封装技术'); +INSERT INTO `base_major` VALUES ('080215', '功能材料'); +INSERT INTO `base_major` VALUES ('080216', '纳米材料与技术'); +INSERT INTO `base_major` VALUES ('080217', '新能源材料与器件'); +INSERT INTO `base_major` VALUES ('080218', '资源循环科学与工程'); +INSERT INTO `base_major` VALUES ('080300', '机械类'); +INSERT INTO `base_major` VALUES ('080301', '机械设计制造及其自动化'); +INSERT INTO `base_major` VALUES ('080302', '材料成型及控制工程'); +INSERT INTO `base_major` VALUES ('080303', '工业设计'); +INSERT INTO `base_major` VALUES ('080304', '过程装备与控制工程'); +INSERT INTO `base_major` VALUES ('080305', '机械工程及自动化'); +INSERT INTO `base_major` VALUES ('080306', '车辆工程'); +INSERT INTO `base_major` VALUES ('080307', '机械电子工程'); +INSERT INTO `base_major` VALUES ('080308', '汽车服务工程'); +INSERT INTO `base_major` VALUES ('080309', '制造自动化与测控技术'); +INSERT INTO `base_major` VALUES ('080310', '微机电系统工程'); +INSERT INTO `base_major` VALUES ('080311', '制造工程'); +INSERT INTO `base_major` VALUES ('080312', '体育装备工程'); +INSERT INTO `base_major` VALUES ('080313', '工程机械'); +INSERT INTO `base_major` VALUES ('080400', '仪器仪表类'); +INSERT INTO `base_major` VALUES ('080401', '测控技术与仪器'); +INSERT INTO `base_major` VALUES ('080402', '电子信息技术及仪器'); +INSERT INTO `base_major` VALUES ('080500', '能源动力类'); +INSERT INTO `base_major` VALUES ('080501', '热能与动力工程'); +INSERT INTO `base_major` VALUES ('080502', '核工程与核技术'); +INSERT INTO `base_major` VALUES ('080503', '工程物理'); +INSERT INTO `base_major` VALUES ('080504', '能源与环境系统工程'); +INSERT INTO `base_major` VALUES ('080505', '能源工程及自动化'); +INSERT INTO `base_major` VALUES ('080506', '能源动力系统及自动化'); +INSERT INTO `base_major` VALUES ('080507', '风能与动力工程'); +INSERT INTO `base_major` VALUES ('080508', '核技术'); +INSERT INTO `base_major` VALUES ('080509', '辐射防护与环境工程'); +INSERT INTO `base_major` VALUES ('080510', '核化工与核燃料工程'); +INSERT INTO `base_major` VALUES ('080511', '核反应堆工程'); +INSERT INTO `base_major` VALUES ('080512', '新能源科学与工程'); +INSERT INTO `base_major` VALUES ('080600', '电气信息类'); +INSERT INTO `base_major` VALUES ('080601', '电气工程及其自动化'); +INSERT INTO `base_major` VALUES ('080602', '自动化'); +INSERT INTO `base_major` VALUES ('080603', '电子信息工程'); +INSERT INTO `base_major` VALUES ('080604', '通信工程'); +INSERT INTO `base_major` VALUES ('080605', '计算机科学与技术'); +INSERT INTO `base_major` VALUES ('080606', '电子科学与技术'); +INSERT INTO `base_major` VALUES ('080607', '生物医学工程'); +INSERT INTO `base_major` VALUES ('080608', '电气工程与自动化'); +INSERT INTO `base_major` VALUES ('080609', '信息工程'); +INSERT INTO `base_major` VALUES ('080610', '光源与照明'); +INSERT INTO `base_major` VALUES ('080611', '软件工程'); +INSERT INTO `base_major` VALUES ('080612', '影视艺术技术'); +INSERT INTO `base_major` VALUES ('080613', '网络工程'); +INSERT INTO `base_major` VALUES ('080614', '信息显示与光电技术'); +INSERT INTO `base_major` VALUES ('080615', '集成电路设计与集成系统'); +INSERT INTO `base_major` VALUES ('080616', '光电信息工程'); +INSERT INTO `base_major` VALUES ('080617', '广播电视工程'); +INSERT INTO `base_major` VALUES ('080618', '电气信息工程'); +INSERT INTO `base_major` VALUES ('080619', '计算机软件'); +INSERT INTO `base_major` VALUES ('080620', '电力工程与管理'); +INSERT INTO `base_major` VALUES ('080621', '微电子制造工程'); +INSERT INTO `base_major` VALUES ('080622', '假肢矫形工程'); +INSERT INTO `base_major` VALUES ('080623', '数字媒体艺术'); +INSERT INTO `base_major` VALUES ('080624', '医学信息工程'); +INSERT INTO `base_major` VALUES ('080625', '信息物理工程'); +INSERT INTO `base_major` VALUES ('080626', '医疗器械工程'); +INSERT INTO `base_major` VALUES ('080627', '智能科学与技术'); +INSERT INTO `base_major` VALUES ('080628', '数字媒体技术'); +INSERT INTO `base_major` VALUES ('080629', '医学影像工程'); +INSERT INTO `base_major` VALUES ('080630', '真空电子技术'); +INSERT INTO `base_major` VALUES ('080631', '电磁场与无线技术'); +INSERT INTO `base_major` VALUES ('080632', '电信工程及管理'); +INSERT INTO `base_major` VALUES ('080633', '电气工程与智能控制'); +INSERT INTO `base_major` VALUES ('080634', '信息与通信工程'); +INSERT INTO `base_major` VALUES ('080635', '电波传播与天线'); +INSERT INTO `base_major` VALUES ('080636', '船舶电子电气工程'); +INSERT INTO `base_major` VALUES ('080637', '电子与计算机工程'); +INSERT INTO `base_major` VALUES ('080638', '仿真科学与技术'); +INSERT INTO `base_major` VALUES ('080639', '电机电器智能化'); +INSERT INTO `base_major` VALUES ('080640', '物联网工程'); +INSERT INTO `base_major` VALUES ('080641', '传感网技术'); +INSERT INTO `base_major` VALUES ('080643', '光电子材料与器件'); +INSERT INTO `base_major` VALUES ('080644', '水声工程'); +INSERT INTO `base_major` VALUES ('080645', '智能电网信息工程'); +INSERT INTO `base_major` VALUES ('080700', '土建类'); +INSERT INTO `base_major` VALUES ('080701', '建筑学'); +INSERT INTO `base_major` VALUES ('080702', '城市规划'); +INSERT INTO `base_major` VALUES ('080703', '土木工程'); +INSERT INTO `base_major` VALUES ('080704', '建筑环境与设备工程'); +INSERT INTO `base_major` VALUES ('080705', '给水排水工程'); +INSERT INTO `base_major` VALUES ('080706', '城市地下空间工程'); +INSERT INTO `base_major` VALUES ('080707', '历史建筑保护工程'); +INSERT INTO `base_major` VALUES ('080708', '景观建筑设计'); +INSERT INTO `base_major` VALUES ('080709', '水务工程'); +INSERT INTO `base_major` VALUES ('080710', '建筑设施智能技术'); +INSERT INTO `base_major` VALUES ('080711', '给排水科学与工程'); +INSERT INTO `base_major` VALUES ('080712', '建筑电气与智能化'); +INSERT INTO `base_major` VALUES ('080713', '景观学'); +INSERT INTO `base_major` VALUES ('080714', '风景园林'); +INSERT INTO `base_major` VALUES ('080715', '总图设计与工业运输'); +INSERT INTO `base_major` VALUES ('080716', '建筑节能技术与工程'); +INSERT INTO `base_major` VALUES ('080724', '道路桥梁与渡河工程'); +INSERT INTO `base_major` VALUES ('080800', '水利类'); +INSERT INTO `base_major` VALUES ('080801', '水利水电工程'); +INSERT INTO `base_major` VALUES ('080802', '水文与水资源工程'); +INSERT INTO `base_major` VALUES ('080803', '港口航道与海岸工程'); +INSERT INTO `base_major` VALUES ('080804', '港口海岸及治河工程'); +INSERT INTO `base_major` VALUES ('080805', '水资源与海洋工程'); +INSERT INTO `base_major` VALUES ('080900', '测绘类'); +INSERT INTO `base_major` VALUES ('080901', '测绘工程'); +INSERT INTO `base_major` VALUES ('080902', '遥感科学与技术'); +INSERT INTO `base_major` VALUES ('080903', '空间信息与数字技术'); +INSERT INTO `base_major` VALUES ('081000', '环境与安全类'); +INSERT INTO `base_major` VALUES ('081001', '环境工程'); +INSERT INTO `base_major` VALUES ('081002', '安全工程'); +INSERT INTO `base_major` VALUES ('081003', '水质科学与技术'); +INSERT INTO `base_major` VALUES ('081004', '灾害防治工程'); +INSERT INTO `base_major` VALUES ('081005', '环境科学与工程'); +INSERT INTO `base_major` VALUES ('081006', '环境监察'); +INSERT INTO `base_major` VALUES ('081007', '雷电防护科学与技术'); +INSERT INTO `base_major` VALUES ('081008', '核安全工程'); +INSERT INTO `base_major` VALUES ('081009', '环保设备工程'); +INSERT INTO `base_major` VALUES ('081100', '化工与制药类'); +INSERT INTO `base_major` VALUES ('081101', '化学工程与工艺'); +INSERT INTO `base_major` VALUES ('081102', '制药工程'); +INSERT INTO `base_major` VALUES ('081103', '化工与制药'); +INSERT INTO `base_major` VALUES ('081104', '化学工程与工业生物工程'); +INSERT INTO `base_major` VALUES ('081105', '资源科学与工程'); +INSERT INTO `base_major` VALUES ('081106', '能源化学工程'); +INSERT INTO `base_major` VALUES ('081107', '生物制药'); +INSERT INTO `base_major` VALUES ('081200', '交通运输类'); +INSERT INTO `base_major` VALUES ('081201', '交通运输'); +INSERT INTO `base_major` VALUES ('081202', '交通工程'); +INSERT INTO `base_major` VALUES ('081203', '油气储运工程'); +INSERT INTO `base_major` VALUES ('081204', '飞行技术'); +INSERT INTO `base_major` VALUES ('081205', '航海技术'); +INSERT INTO `base_major` VALUES ('081206', '轮机工程'); +INSERT INTO `base_major` VALUES ('081207', '物流工程'); +INSERT INTO `base_major` VALUES ('081208', '海事管理'); +INSERT INTO `base_major` VALUES ('081209', '交通设备信息工程'); +INSERT INTO `base_major` VALUES ('081210', '交通建设与装备'); +INSERT INTO `base_major` VALUES ('081211', '救助与打捞工程'); +INSERT INTO `base_major` VALUES ('081212', '航空器适航技术'); +INSERT INTO `base_major` VALUES ('081213', '交通信息与控制工程'); +INSERT INTO `base_major` VALUES ('081300', '海洋工程类'); +INSERT INTO `base_major` VALUES ('081301', '船舶与海洋工程'); +INSERT INTO `base_major` VALUES ('081302', '海洋工程与技术'); +INSERT INTO `base_major` VALUES ('081303', '海洋资源开发技术'); +INSERT INTO `base_major` VALUES ('081400', '轻工纺织食品类'); +INSERT INTO `base_major` VALUES ('081401', '食品科学与工程'); +INSERT INTO `base_major` VALUES ('081402', '轻化工程'); +INSERT INTO `base_major` VALUES ('081403', '包装工程'); +INSERT INTO `base_major` VALUES ('081404', '印刷工程'); +INSERT INTO `base_major` VALUES ('081405', '纺织工程'); +INSERT INTO `base_major` VALUES ('081406', '服装设计与工程'); +INSERT INTO `base_major` VALUES ('081407', '食品质量与安全'); +INSERT INTO `base_major` VALUES ('081408', '酿酒工程'); +INSERT INTO `base_major` VALUES ('081409', '葡萄与葡萄酒工程'); +INSERT INTO `base_major` VALUES ('081410', '轻工生物技术'); +INSERT INTO `base_major` VALUES ('081411', '农产品质量与安全'); +INSERT INTO `base_major` VALUES ('081412', '非织造材料与工程'); +INSERT INTO `base_major` VALUES ('081413', '数字印刷'); +INSERT INTO `base_major` VALUES ('081414', '植物资源工程'); +INSERT INTO `base_major` VALUES ('081415', '粮食工程'); +INSERT INTO `base_major` VALUES ('081416', '乳品工程'); +INSERT INTO `base_major` VALUES ('081500', '航空航天类'); +INSERT INTO `base_major` VALUES ('081501', '飞行器设计与工程'); +INSERT INTO `base_major` VALUES ('081502', '飞行器动力工程'); +INSERT INTO `base_major` VALUES ('081503', '飞行器制造工程'); +INSERT INTO `base_major` VALUES ('081504', '飞行器环境与生命保障工程'); +INSERT INTO `base_major` VALUES ('081505', '航空航天工程'); +INSERT INTO `base_major` VALUES ('081506', '工程力学与航天航空工程'); +INSERT INTO `base_major` VALUES ('081507', '航天运输与控制'); +INSERT INTO `base_major` VALUES ('081508', '质量与可靠性工程'); +INSERT INTO `base_major` VALUES ('081600', '武器类'); +INSERT INTO `base_major` VALUES ('081601', '武器系统与发射工程'); +INSERT INTO `base_major` VALUES ('081602', '探测制导与控制技术'); +INSERT INTO `base_major` VALUES ('081603', '弹药工程与爆炸技术'); +INSERT INTO `base_major` VALUES ('081604', '特种能源工程与烟火技术'); +INSERT INTO `base_major` VALUES ('081605', '地面武器机动工程'); +INSERT INTO `base_major` VALUES ('081606', '信息对抗技术'); +INSERT INTO `base_major` VALUES ('081607', '武器系统与工程'); +INSERT INTO `base_major` VALUES ('081700', '工程力学类'); +INSERT INTO `base_major` VALUES ('081701', '工程力学'); +INSERT INTO `base_major` VALUES ('081702', '工程结构分析'); +INSERT INTO `base_major` VALUES ('081800', '生物工程类'); +INSERT INTO `base_major` VALUES ('081801', '生物工程'); +INSERT INTO `base_major` VALUES ('081900', '农业工程类'); +INSERT INTO `base_major` VALUES ('081901', '农业机械化及其自动化'); +INSERT INTO `base_major` VALUES ('081902', '农业电气化与自动化'); +INSERT INTO `base_major` VALUES ('081903', '农业建筑环境与能源工程'); +INSERT INTO `base_major` VALUES ('081904', '农业水利工程'); +INSERT INTO `base_major` VALUES ('081905', '农业工程'); +INSERT INTO `base_major` VALUES ('081906', '生物系统工程'); +INSERT INTO `base_major` VALUES ('082000', '林业工程类'); +INSERT INTO `base_major` VALUES ('082001', '森林工程'); +INSERT INTO `base_major` VALUES ('082002', '木材科学与工程'); +INSERT INTO `base_major` VALUES ('082003', '林产化工'); +INSERT INTO `base_major` VALUES ('082100', '公安技术类'); +INSERT INTO `base_major` VALUES ('082101', '刑事科学技术'); +INSERT INTO `base_major` VALUES ('082102', '消防工程'); +INSERT INTO `base_major` VALUES ('082103', '安全防范工程'); +INSERT INTO `base_major` VALUES ('082104', '交通管理工程'); +INSERT INTO `base_major` VALUES ('082105', '核生化消防'); +INSERT INTO `base_major` VALUES ('082106', '公安视听技术'); +INSERT INTO `base_major` VALUES ('082107', '网络安全与执法'); +INSERT INTO `base_major` VALUES ('082303', '农业电气化'); +INSERT INTO `base_major` VALUES ('082802', '城乡规划'); +INSERT INTO `base_major` VALUES ('08SY00', '工科试验班类'); +INSERT INTO `base_major` VALUES ('08SY01', '工科试验班'); +INSERT INTO `base_major` VALUES ('08SY02', '科技与创意设计试验班'); +INSERT INTO `base_major` VALUES ('090100', '植物生产类'); +INSERT INTO `base_major` VALUES ('090101', '农学'); +INSERT INTO `base_major` VALUES ('090102', '园艺'); +INSERT INTO `base_major` VALUES ('090103', '植物保护'); +INSERT INTO `base_major` VALUES ('090104', '茶学'); +INSERT INTO `base_major` VALUES ('090105', '烟草'); +INSERT INTO `base_major` VALUES ('090106', '植物科学与技术'); +INSERT INTO `base_major` VALUES ('090107', '种子科学与工程'); +INSERT INTO `base_major` VALUES ('090108', '应用生物科学'); +INSERT INTO `base_major` VALUES ('090109', '设施农业科学与工程'); +INSERT INTO `base_major` VALUES ('090200', '草业科学类'); +INSERT INTO `base_major` VALUES ('090201', '草业科学'); +INSERT INTO `base_major` VALUES ('090300', '森林资源类'); +INSERT INTO `base_major` VALUES ('090301', '林学'); +INSERT INTO `base_major` VALUES ('090302', '森林资源保护与游憩'); +INSERT INTO `base_major` VALUES ('090303', '野生动物与自然保护区管理'); +INSERT INTO `base_major` VALUES ('090400', '环境生态类'); +INSERT INTO `base_major` VALUES ('090401', '园林'); +INSERT INTO `base_major` VALUES ('090402', '水土保持与荒漠化防治'); +INSERT INTO `base_major` VALUES ('090403', '农业资源与环境'); +INSERT INTO `base_major` VALUES ('090500', '动物生产类'); +INSERT INTO `base_major` VALUES ('090501', '动物科学'); +INSERT INTO `base_major` VALUES ('090502', '蚕学'); +INSERT INTO `base_major` VALUES ('090503', '蜂学'); +INSERT INTO `base_major` VALUES ('090600', '动物医学类'); +INSERT INTO `base_major` VALUES ('090601', '动物医学'); +INSERT INTO `base_major` VALUES ('090602', '动物药学'); +INSERT INTO `base_major` VALUES ('090700', '水产类'); +INSERT INTO `base_major` VALUES ('090701', '水产养殖学'); +INSERT INTO `base_major` VALUES ('090702', '海洋渔业科学与技术'); +INSERT INTO `base_major` VALUES ('090703', '水族科学与技术'); +INSERT INTO `base_major` VALUES ('100100', '基础医学类'); +INSERT INTO `base_major` VALUES ('100101', '基础医学'); +INSERT INTO `base_major` VALUES ('100200', '预防医学类'); +INSERT INTO `base_major` VALUES ('100201', '预防医学'); +INSERT INTO `base_major` VALUES ('100202', '卫生检验'); +INSERT INTO `base_major` VALUES ('100203', '妇幼保健医学'); +INSERT INTO `base_major` VALUES ('100204', '营养学'); +INSERT INTO `base_major` VALUES ('100300', '临床医学与医学技术类'); +INSERT INTO `base_major` VALUES ('100301', '临床医学'); +INSERT INTO `base_major` VALUES ('100302', '麻醉学'); +INSERT INTO `base_major` VALUES ('100303', '医学影像学'); +INSERT INTO `base_major` VALUES ('100304', '医学检验'); +INSERT INTO `base_major` VALUES ('100305', '放射医学'); +INSERT INTO `base_major` VALUES ('100306', '眼视光学'); +INSERT INTO `base_major` VALUES ('100307', '康复治疗学'); +INSERT INTO `base_major` VALUES ('100308', '精神医学'); +INSERT INTO `base_major` VALUES ('100309', '医学技术'); +INSERT INTO `base_major` VALUES ('100310', '听力学'); +INSERT INTO `base_major` VALUES ('100311', '医学实验学'); +INSERT INTO `base_major` VALUES ('100312', '医学美容技术'); +INSERT INTO `base_major` VALUES ('100400', '口腔医学类'); +INSERT INTO `base_major` VALUES ('100401', '口腔医学'); +INSERT INTO `base_major` VALUES ('100402', '口腔修复工艺学'); +INSERT INTO `base_major` VALUES ('100500', '中医学类'); +INSERT INTO `base_major` VALUES ('100501', '中医学'); +INSERT INTO `base_major` VALUES ('100502', '针灸推拿学'); +INSERT INTO `base_major` VALUES ('100503', '蒙医学'); +INSERT INTO `base_major` VALUES ('100504', '藏医学'); +INSERT INTO `base_major` VALUES ('100505', '中西医临床医学'); +INSERT INTO `base_major` VALUES ('100506', '维医学'); +INSERT INTO `base_major` VALUES ('100600', '法医学类'); +INSERT INTO `base_major` VALUES ('100601', '法医学'); +INSERT INTO `base_major` VALUES ('100700', '护理学类'); +INSERT INTO `base_major` VALUES ('100701', '护理学'); +INSERT INTO `base_major` VALUES ('100800', '药学类'); +INSERT INTO `base_major` VALUES ('100801', '药学'); +INSERT INTO `base_major` VALUES ('100802', '中药学'); +INSERT INTO `base_major` VALUES ('100803', '药物制剂'); +INSERT INTO `base_major` VALUES ('100804', '中草药栽培与鉴定'); +INSERT INTO `base_major` VALUES ('100805', '藏药学'); +INSERT INTO `base_major` VALUES ('100806', '中药资源与开发'); +INSERT INTO `base_major` VALUES ('100807', '应用药学'); +INSERT INTO `base_major` VALUES ('100808', '临床药学'); +INSERT INTO `base_major` VALUES ('100809', '海洋药学'); +INSERT INTO `base_major` VALUES ('10080J', '基础药学基地班'); +INSERT INTO `base_major` VALUES ('100810', '药事管理'); +INSERT INTO `base_major` VALUES ('100811', '蒙药学'); +INSERT INTO `base_major` VALUES ('100812', '药物分析'); +INSERT INTO `base_major` VALUES ('100813', '药物化学'); +INSERT INTO `base_major` VALUES ('100814', '中药制药'); +INSERT INTO `base_major` VALUES ('101001', '医学检验技术'); +INSERT INTO `base_major` VALUES ('101003', '医学影像技术'); +INSERT INTO `base_major` VALUES ('101007', '卫生检验与检疫'); +INSERT INTO `base_major` VALUES ('10SY00', '医学试验班类'); +INSERT INTO `base_major` VALUES ('10SY01', '医学试验班'); +INSERT INTO `base_major` VALUES ('110100', '管理科学与工程类'); +INSERT INTO `base_major` VALUES ('110101', '管理科学'); +INSERT INTO `base_major` VALUES ('110102', '信息管理与信息系统'); +INSERT INTO `base_major` VALUES ('110103', '工业工程'); +INSERT INTO `base_major` VALUES ('110104', '工程管理'); +INSERT INTO `base_major` VALUES ('110105', '工程造价'); +INSERT INTO `base_major` VALUES ('110106', '房地产经营管理'); +INSERT INTO `base_major` VALUES ('110107', '产品质量工程'); +INSERT INTO `base_major` VALUES ('110108', '项目管理'); +INSERT INTO `base_major` VALUES ('110109', '管理科学工程'); +INSERT INTO `base_major` VALUES ('110110', '标准化工程'); +INSERT INTO `base_major` VALUES ('110200', '工商管理类'); +INSERT INTO `base_major` VALUES ('110201', '工商管理'); +INSERT INTO `base_major` VALUES ('110202', '市场营销'); +INSERT INTO `base_major` VALUES ('110203', '会计学'); +INSERT INTO `base_major` VALUES ('110204', '财务管理'); +INSERT INTO `base_major` VALUES ('110205', '人力资源管理'); +INSERT INTO `base_major` VALUES ('110206', '旅游管理'); +INSERT INTO `base_major` VALUES ('110207', '商品学'); +INSERT INTO `base_major` VALUES ('110208', '审计学'); +INSERT INTO `base_major` VALUES ('110209', '电子商务'); +INSERT INTO `base_major` VALUES ('110210', '物流管理'); +INSERT INTO `base_major` VALUES ('110211', '国际商务'); +INSERT INTO `base_major` VALUES ('110212', '物业管理'); +INSERT INTO `base_major` VALUES ('110213', '特许经营管理'); +INSERT INTO `base_major` VALUES ('110214', '连锁经营管理'); +INSERT INTO `base_major` VALUES ('110215', '资产评估'); +INSERT INTO `base_major` VALUES ('110216', '电子商务及法律'); +INSERT INTO `base_major` VALUES ('110217', '商务策划管理'); +INSERT INTO `base_major` VALUES ('110218', '酒店管理'); +INSERT INTO `base_major` VALUES ('110219', '采购管理'); +INSERT INTO `base_major` VALUES ('110300', '公共管理类'); +INSERT INTO `base_major` VALUES ('110301', '行政管理'); +INSERT INTO `base_major` VALUES ('110302', '公共事业管理'); +INSERT INTO `base_major` VALUES ('110303', '劳动与社会保障'); +INSERT INTO `base_major` VALUES ('110304', '土地资源管理'); +INSERT INTO `base_major` VALUES ('110305', '公共关系学'); +INSERT INTO `base_major` VALUES ('110306', '高等教育管理'); +INSERT INTO `base_major` VALUES ('110307', '公共政策学'); +INSERT INTO `base_major` VALUES ('110308', '城市管理'); +INSERT INTO `base_major` VALUES ('110309', '公共管理'); +INSERT INTO `base_major` VALUES ('110310', '文化产业管理'); +INSERT INTO `base_major` VALUES ('110311', '会展经济与管理'); +INSERT INTO `base_major` VALUES ('110312', '国防教育与管理'); +INSERT INTO `base_major` VALUES ('110313', '航运管理'); +INSERT INTO `base_major` VALUES ('110314', '劳动关系'); +INSERT INTO `base_major` VALUES ('110315', '公共安全管理'); +INSERT INTO `base_major` VALUES ('110316', '体育产业管理'); +INSERT INTO `base_major` VALUES ('110317', '食品经济管理'); +INSERT INTO `base_major` VALUES ('110318', '应急管理'); +INSERT INTO `base_major` VALUES ('110319', '海关管理'); +INSERT INTO `base_major` VALUES ('110400', '农业经济管理类'); +INSERT INTO `base_major` VALUES ('110401', '农林经济管理'); +INSERT INTO `base_major` VALUES ('110402', '农村区域发展'); +INSERT INTO `base_major` VALUES ('110500', '图书档案学类'); +INSERT INTO `base_major` VALUES ('110501', '图书馆学'); +INSERT INTO `base_major` VALUES ('110502', '档案学'); +INSERT INTO `base_major` VALUES ('110503', '信息资源管理'); +INSERT INTO `base_major` VALUES ('120201', '政治经济学'); +INSERT INTO `base_major` VALUES ('120301', '政治学'); +INSERT INTO `base_major` VALUES ('120302', '国际关系与安全'); +INSERT INTO `base_major` VALUES ('120303', '军事外交'); +INSERT INTO `base_major` VALUES ('120501', '中国语言文学'); +INSERT INTO `base_major` VALUES ('120502', '外国语言文学(外国军事)'); +INSERT INTO `base_major` VALUES ('120601', '军事历史'); +INSERT INTO `base_major` VALUES ('120701', '应用数学'); +INSERT INTO `base_major` VALUES ('120702', '军事气象学'); +INSERT INTO `base_major` VALUES ('120703', '军事海洋学'); +INSERT INTO `base_major` VALUES ('120704', '军事心理学'); +INSERT INTO `base_major` VALUES ('120801', '军用材料工程'); +INSERT INTO `base_major` VALUES ('120802', '机械装备类'); +INSERT INTO `base_major` VALUES ('120803', '车辆运用工程'); +INSERT INTO `base_major` VALUES ('120804', '油料储运工程'); +INSERT INTO `base_major` VALUES ('120805', '舰船动力工程'); +INSERT INTO `base_major` VALUES ('120806', '核动力工程'); +INSERT INTO `base_major` VALUES ('120807', '电力工程及其自动化'); +INSERT INTO `base_major` VALUES ('120808', '电子工程'); +INSERT INTO `base_major` VALUES ('120809', '雷达工程'); +INSERT INTO `base_major` VALUES ('120810', '导航工程'); +INSERT INTO `base_major` VALUES ('120811', '军用光电工程'); +INSERT INTO `base_major` VALUES ('120812', '航空反潜工程'); +INSERT INTO `base_major` VALUES ('120813', '侦测工程'); +INSERT INTO `base_major` VALUES ('120814', '信息研究与安全(密码学)'); +INSERT INTO `base_major` VALUES ('120815', '密码装备工程'); +INSERT INTO `base_major` VALUES ('120816', '仿真工程'); +INSERT INTO `base_major` VALUES ('120817', '指挥自动化工程'); +INSERT INTO `base_major` VALUES ('120818', '国防建筑学'); +INSERT INTO `base_major` VALUES ('120819', '土木工程'); +INSERT INTO `base_major` VALUES ('120820', '野战给水工程'); +INSERT INTO `base_major` VALUES ('120821', '国防建筑设备工程'); +INSERT INTO `base_major` VALUES ('120822', '道路桥梁与渡河濒海工程'); +INSERT INTO `base_major` VALUES ('120823', '测绘遥感类'); +INSERT INTO `base_major` VALUES ('120824', '测量工程'); +INSERT INTO `base_major` VALUES ('120825', '地图学与地理信息工程'); +INSERT INTO `base_major` VALUES ('120826', '工程物理'); +INSERT INTO `base_major` VALUES ('120827', '生化防护工程'); +INSERT INTO `base_major` VALUES ('120828', '国防工程与防护'); +INSERT INTO `base_major` VALUES ('120829', '伪装工程'); +INSERT INTO `base_major` VALUES ('120830', '舰船与海洋工程'); +INSERT INTO `base_major` VALUES ('120831', '飞行器系统与工程'); +INSERT INTO `base_major` VALUES ('120832', '空间工程'); +INSERT INTO `base_major` VALUES ('120833', '兵器工程'); +INSERT INTO `base_major` VALUES ('120834', '导弹工程'); +INSERT INTO `base_major` VALUES ('120835', '弹药工程'); +INSERT INTO `base_major` VALUES ('120836', '地雷爆破与破障工程'); +INSERT INTO `base_major` VALUES ('120837', '控制测试类'); +INSERT INTO `base_major` VALUES ('120838', '火力指挥与控制工程'); +INSERT INTO `base_major` VALUES ('120839', '测控工程'); +INSERT INTO `base_major` VALUES ('120840', '无人机运用工程'); +INSERT INTO `base_major` VALUES ('120841', '探测工程'); +INSERT INTO `base_major` VALUES ('121101', '管理工程'); +INSERT INTO `base_major` VALUES ('121102', '系统工程'); +INSERT INTO `base_major` VALUES ('121103', '经济管理类'); +INSERT INTO `base_major` VALUES ('121104', '军队财务管理'); +INSERT INTO `base_major` VALUES ('121105', '装备经济管理'); +INSERT INTO `base_major` VALUES ('121106', '军队审计'); +INSERT INTO `base_major` VALUES ('121107', '军队采办'); +INSERT INTO `base_major` VALUES ('121300', '兵种指挥类'); +INSERT INTO `base_major` VALUES ('121301', '炮兵指挥'); +INSERT INTO `base_major` VALUES ('121302', '防空兵指挥'); +INSERT INTO `base_major` VALUES ('121303', '装甲兵指挥'); +INSERT INTO `base_major` VALUES ('121304', '工程兵指挥'); +INSERT INTO `base_major` VALUES ('121305', '防化兵指挥'); +INSERT INTO `base_major` VALUES ('121400', '航空航天指挥类'); +INSERT INTO `base_major` VALUES ('121401', '航空飞行与指挥'); +INSERT INTO `base_major` VALUES ('121402', '地面领航与航空管制'); +INSERT INTO `base_major` VALUES ('121403', '航天指挥'); +INSERT INTO `base_major` VALUES ('121500', '信息作战指挥类'); +INSERT INTO `base_major` VALUES ('121501', '侦察与特种兵指挥'); +INSERT INTO `base_major` VALUES ('121502', '通信指挥'); +INSERT INTO `base_major` VALUES ('121503', '电子对抗指挥与工程'); +INSERT INTO `base_major` VALUES ('121504', '军事情报'); +INSERT INTO `base_major` VALUES ('121505', '作战信息管理'); +INSERT INTO `base_major` VALUES ('121506', '预警探测指挥'); +INSERT INTO `base_major` VALUES ('121600', '保障指挥类'); +INSERT INTO `base_major` VALUES ('121601', '军事交通指挥与工程'); +INSERT INTO `base_major` VALUES ('121602', '汽车指挥'); +INSERT INTO `base_major` VALUES ('121603', '船艇指挥'); +INSERT INTO `base_major` VALUES ('121604', '航空兵场站指挥'); +INSERT INTO `base_major` VALUES ('121605', '国防工程指挥'); +INSERT INTO `base_major` VALUES ('121606', '装备保障指挥'); +INSERT INTO `base_major` VALUES ('121607', '军需勤务指挥'); +INSERT INTO `base_major` VALUES ('121700', '武警指挥类'); +INSERT INTO `base_major` VALUES ('121701', '武警指挥'); +INSERT INTO `base_major` VALUES ('130101', '艺术史论'); +INSERT INTO `base_major` VALUES ('130201', '音乐表演'); +INSERT INTO `base_major` VALUES ('130202', '音乐学'); +INSERT INTO `base_major` VALUES ('130203', '作曲与作曲技术理论'); +INSERT INTO `base_major` VALUES ('130204', '舞蹈表演'); +INSERT INTO `base_major` VALUES ('130205', '舞蹈学'); +INSERT INTO `base_major` VALUES ('130206', '舞蹈编导'); +INSERT INTO `base_major` VALUES ('130301', '表演'); +INSERT INTO `base_major` VALUES ('130302', '戏剧学'); +INSERT INTO `base_major` VALUES ('130303', '电影学'); +INSERT INTO `base_major` VALUES ('130304', '戏剧影视文学'); +INSERT INTO `base_major` VALUES ('130305', '广播电视编导'); +INSERT INTO `base_major` VALUES ('130306', '戏剧影视导演'); +INSERT INTO `base_major` VALUES ('130307', '戏剧影视美术设计'); +INSERT INTO `base_major` VALUES ('130308', '录音艺术'); +INSERT INTO `base_major` VALUES ('130309', '播音与主持艺术'); +INSERT INTO `base_major` VALUES ('130310', '动画'); +INSERT INTO `base_major` VALUES ('130311', '影视摄影与制作'); +INSERT INTO `base_major` VALUES ('130401', '美术学'); +INSERT INTO `base_major` VALUES ('130402', '绘画'); +INSERT INTO `base_major` VALUES ('130403', '雕塑'); +INSERT INTO `base_major` VALUES ('130404', '摄影'); +INSERT INTO `base_major` VALUES ('130405', '书法学'); +INSERT INTO `base_major` VALUES ('130406', '中国画'); +INSERT INTO `base_major` VALUES ('130500', '设计学类'); +INSERT INTO `base_major` VALUES ('130501', '艺术设计学'); +INSERT INTO `base_major` VALUES ('130502', '视觉传达设计'); +INSERT INTO `base_major` VALUES ('130503', '环境设计'); +INSERT INTO `base_major` VALUES ('130504', '产品设计'); +INSERT INTO `base_major` VALUES ('130505', '服装与服饰设计'); +INSERT INTO `base_major` VALUES ('130506', '公共艺术'); +INSERT INTO `base_major` VALUES ('130507', '工艺美术'); +INSERT INTO `base_major` VALUES ('130508', '数字媒体艺术'); +INSERT INTO `base_major` VALUES ('130509', '艺术与科技'); + +INSERT INTO `base_political_status`(`id`, `name`) VALUES (0, '----'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (1, '中共党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (2, '中共预备党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (3, '共青团员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (4, '民革会员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (5, '民盟盟员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (6, '民建会员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (7, '民进会员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (8, '农工党党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (9, '致公党党员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (10, '九三学社社员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (11, '台盟盟员'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (12, '无党派民主人士'); +INSERT INTO `base_political_status`(`id`, `name`) VALUES (13, '群众'); + diff --git a/src/main/resources/static/assets/css/atlantis.css b/src/main/resources/static/assets/css/atlantis.css new file mode 100644 index 0000000..b6daf0d --- /dev/null +++ b/src/main/resources/static/assets/css/atlantis.css @@ -0,0 +1,8951 @@ +/*! + +[Table of contents] + +* Background +* Typography +* Layouts + + Body & Wrapper + + Main Header + + Sidebar +* Layouts Color +* Components + + Breadcrumbs + + Cards + - Card Stats + - Card Task + - Card States + - Card Posts + - Card Pricing + - Card Annoucement + - Card Profile + - Accordion + + Inputs + + Tables + + Navbars + + Navsearch + + Badges + + Dropdowns + + Charts + + Alerts + + Buttons + + Navtabs + + Popovers + + Progress + + Paginations + + Sliders + + Modals + + Timeline + + Maps + + Invoice + + Messages + + Tasks + + Settings +* Plugins + + jQueryUI + + jQuery Scrollbar + + Css Animate + + Full Calendar + + SweetAlert + + Datatables + +* Responsive + +# [Color codes] + +body-text-color: #575962 +white-color: #ffffff +black-color: #191919 +transparent-bg : transparent +default-color : #282a3c +primary-color : #177dff +secondary-color : #716aca +info-color : #36a3f7 +success-color : #35cd3a +warning-color : #ffa534 +danger-color : #f3545d + +-------------------------------------------------------------------*/ +*:focus { + outline: 0 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + +/* Typography */ +body, h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, .navbar, .brand, .btn-simple, .alert, a, .td-name, td, button.close { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-family: 'Lato', sans-serif; } + +body { + font-size: 14px; + color: #575962; } + +a { + color: #1572E8; } + a:hover, a:focus { + color: #1269DB; } + +h1, +.h1 { + font-size: 1.725rem; } + +h2, +.h2 { + font-size: 1.35rem; } + +h3, +.h3 { + font-size: 1.1625rem; } + +h4, +.h4 { + font-size: 1.0375rem; } + +h5, +.h5 { + font-size: .9125rem; } + +h6, +.h6 { + font-size: .825rem; } + +p { + font-size: 14px; + line-height: 1.82; + margin-bottom: 1rem; + word-break: break-word; } + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + line-height: 1.4; } + h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, .h1 a, .h2 a, .h3 a, .h4 a, .h5 a, .h6 a { + color: inherit; } + +small, .small { + font-size: 13px; } + +b, .b, strong, .strong { + font-weight: 600; } + +.page-pretitle { + letter-spacing: .08em; + text-transform: uppercase; + color: #95aac9; } + +.page-title { + font-size: 23px; + font-weight: 600; + color: #444444; + line-height: 30px; + margin-bottom: 20px; } + +.page-category { + color: #444444; + line-height: 1.8; + margin-bottom: 25px; } + +.text-primary, .text-primary a { + color: #1572E8 !important; } + .text-primary:hover, .text-primary a:hover { + color: #1572E8 !important; } + +.text-secondary, .text-secondary a { + color: #6861CE !important; } + .text-secondary:hover, .text-secondary a:hover { + color: #6861CE !important; } + +.text-info, .text-info a { + color: #48ABF7 !important; } + .text-info:hover, .text-info a:hover { + color: #48ABF7 !important; } + +.text-success, .text-success a { + color: #31CE36 !important; } + .text-success:hover, .text-success a:hover { + color: #31CE36 !important; } + +.text-warning, .text-warning a { + color: #FFAD46 !important; } + .text-warning:hover, .text-warning a:hover { + color: #FFAD46 !important; } + +.text-danger, .text-danger a { + color: #F25961 !important; } + .text-danger:hover, .text-danger a:hover { + color: #F25961 !important; } + +label { + color: #495057 !important; + font-size: 14px !important; } + +.text-small { + font-size: 11px; } + +.metric-value { + margin-bottom: 5px; + line-height: 1; + white-space: nowrap; } + +.metric-label { + font-size: .975rem; + font-weight: 500; + color: #686f76; + white-space: nowrap; + margin-bottom: 0; } + +/* Font-weight */ +.fw-light { + font-weight: 300 !important; } + +.fw-normal { + font-weight: 400 !important; } + +.fw-mediumbold { + font-weight: 400 !important; } + +.fw-bold { + font-weight: 600 !important; } + +.fw-extrabold { + font-weight: 700 !important; } + +/* Opacity */ +.op-9 { + opacity: 0.9; } + +.op-8 { + opacity: 0.8; } + +.op-7 { + opacity: 0.7; } + +.op-6 { + opacity: 0.6; } + +.op-5 { + opacity: 0.5; } + +.op-4 { + opacity: 0.4; } + +.op-3 { + opacity: 0.3; } + +/* Layouts */ +body { + min-height: 100vh; + position: relative; + background: #f9fbfd; } + +.no-bd { + border: 0px !important; } + +.no-box-shadow { + box-shadow: none !important; } + +/* margin-top negative */ +.mt--5, .my--5 { + margin-top: -3rem !important; } + +.mt--4, .my--4 { + margin-top: -1.5rem !important; } + +.mt--3, .my--3 { + margin-top: -1rem !important; } + +.mt--2, .my--2 { + margin-top: -0.5rem !important; } + +.mt--1, .my--1 { + margin-top: -0.25rem !important; } + +/* Wrapper */ +.pull-right { + float: right; } + +.pull-left { + float: left; } + +.wrapper { + min-height: 100vh; + position: relative; + top: 0; + height: 100vh; } + +.main-header { + background: #ffffff; + min-height: 60px; + width: 100%; + position: fixed; + z-index: 1001; + box-shadow: 0px 0px 5px rgba(18, 23, 39, 0.5); } + .main-header .navbar-header { + min-height: 62px; } + .main-header .navbar-header .btn-toggle { + margin-right: 30px; + margin-left: 20px; } + +.logo-header { + float: left; + width: 250px; + height: 62px; + line-height: 60px; + color: #333333; + z-index: 1001; + font-size: 17px; + font-weight: 400; + padding-left: 25px; + padding-right: 25px; + z-index: 1001; + display: flex; + align-items: center; + position: relative; + transition: all .3s; } + .logo-header .big-logo { + margin-right: 8px; } + .logo-header .big-logo:hover { + text-decoration: none; } + .logo-header .big-logo .logo-img { + width: 35px; + height: 35px; } + .logo-header .logo { + color: #575962; + opacity: 1; + position: relative; + height: 100%; } + .logo-header .logo:hover { + text-decoration: none; } + .logo-header .logo .navbar-brand { + padding-top: 0px; + padding-bottom: 0px; + margin-right: 0px; } + .logo-header .nav-toggle { + position: absolute; + top: 0; + right: 18px; + z-index: 5; } + .logo-header .navbar-toggler { + padding-left: 0px; + padding-right: 0px; + opacity: 0; + display: none; } + .logo-header .navbar-toggler .navbar-toggler-icon { + height: 1em; + width: 1em; + color: #545454; + font-size: 22px; } + .logo-header .more { + background: transparent; + border: 0; + font-size: 22px; + padding: 0; + opacity: 0; + width: 0; + display: none; } + +.btn-toggle { + font-size: 20px !important; + line-height: 20px; + padding: 0px !important; + background: transparent !important; + color: #575962 !important; } + .btn-toggle:hover, .btn-toggle:focus { + opacity: 1; } + +#search-nav { + flex: 1; + max-width: 400px; } + +.sidebar .nav > .nav-item.active > a:before, .sidebar[data-background-color="white"] .nav > .nav-item.active > a:before, .sidebar .nav > .nav-item.active:hover > a:before, .sidebar[data-background-color="white"] .nav > .nav-item.active:hover > a:before, .sidebar .nav > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + opacity: 1 !important; + position: absolute; + z-index: 1; + width: 3px; + height: 100%; + content: ''; + left: 0; + top: 0; } + +.sidebar, .sidebar[data-background-color="white"] { + position: fixed; + top: 0; + bottom: 0; + left: 0; + width: 250px; + margin-top: 62px; + display: block; + z-index: 1000; + color: #ffffff; + font-weight: 200; + background: #ffffff; + -webkit-box-shadow: 4px 4px 10px rgba(69, 65, 78, 0.06); + -moz-box-shadow: 4px 4px 10px rgba(69, 65, 78, 0.06); + box-shadow: 4px 4px 10px rgba(69, 65, 78, 0.06); + transition: all .3s; } + .sidebar.full-height, .sidebar[data-background-color="white"].full-height { + margin-top: 0; } + .sidebar .user, .sidebar[data-background-color="white"] .user { + margin-top: 20px; + padding-left: 15px; + padding-right: 15px; + padding-bottom: 12.5px; + border-bottom: 1px solid #f1f1f1; + display: block; + margin-left: 10px; + margin-right: 10px; } + .sidebar .user .info a, .sidebar[data-background-color="white"] .user .info a { + white-space: nowrap; + display: block; + position: relative; } + .sidebar .user .info a:hover, .sidebar .user .info a:focus, .sidebar[data-background-color="white"] .user .info a:hover, .sidebar[data-background-color="white"] .user .info a:focus { + text-decoration: none; } + .sidebar .user .info a > span, .sidebar[data-background-color="white"] .user .info a > span { + font-size: 14px; + font-weight: 400; + color: #777; + display: flex; + flex-direction: column; } + .sidebar .user .info a > span .user-level, .sidebar[data-background-color="white"] .user .info a > span .user-level { + color: #555; + font-weight: 600; + font-size: 12px; + margin-top: 5px; } + .sidebar .user .info a .link-collapse, .sidebar[data-background-color="white"] .user .info a .link-collapse { + padding: 7px 0; } + .sidebar .user .info .caret, .sidebar[data-background-color="white"] .user .info .caret { + position: absolute; + top: 17px; + right: 0px; + border-top-color: #777; } + .sidebar .sidebar-wrapper, .sidebar[data-background-color="white"] .sidebar-wrapper { + position: relative; + max-height: calc(100vh - 75px); + min-height: 100%; + overflow: auto; + width: 100%; + z-index: 4; + padding-bottom: 100px; + transition: all .3s; } + .sidebar .sidebar-wrapper .sidebar-content, .sidebar[data-background-color="white"] .sidebar-wrapper .sidebar-content { + padding-top: 0px; + padding-bottom: 55px; } + .sidebar .sidebar-wrapper .scroll-element.scroll-y, .sidebar[data-background-color="white"] .sidebar-wrapper .scroll-element.scroll-y { + top: 5px !important; } + .sidebar .nav, .sidebar[data-background-color="white"] .nav { + display: block; + float: none; + margin-top: 20px; } + .sidebar .nav .nav-section, .sidebar[data-background-color="white"] .nav .nav-section { + margin: 15px 0 0 0; } + .sidebar .nav .nav-section .sidebar-mini-icon, .sidebar[data-background-color="white"] .nav .nav-section .sidebar-mini-icon { + text-align: center; + font-size: 15px; + color: #909093; + display: none; } + .sidebar .nav .nav-section .text-section, .sidebar[data-background-color="white"] .nav .nav-section .text-section { + padding: 2px 30px; + font-size: 12px; + color: #727275; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 12px; + margin-top: 20px; } + .sidebar .nav > .nav-item, .sidebar[data-background-color="white"] .nav > .nav-item { + display: list-item; } + .sidebar .nav > .nav-item.active > a, .sidebar[data-background-color="white"] .nav > .nav-item.active > a { + color: #575962 !important; } + .sidebar .nav > .nav-item.active > a:before, .sidebar[data-background-color="white"] .nav > .nav-item.active > a:before { + background: #1d7af3; } + .sidebar .nav > .nav-item.active > a p, .sidebar[data-background-color="white"] .nav > .nav-item.active > a p { + color: #575962 !important; + font-weight: 600; } + .sidebar .nav > .nav-item.active:hover > a:before, .sidebar[data-background-color="white"] .nav > .nav-item.active:hover > a:before { + background: #1d7af3; } + .sidebar .nav > .nav-item.active a i, .sidebar[data-background-color="white"] .nav > .nav-item.active a i { + color: #4d7cfe; } + .sidebar .nav > .nav-item.submenu, .sidebar[data-background-color="white"] .nav > .nav-item.submenu { + background: rgba(0, 0, 0, 0.03); } + .sidebar .nav > .nav-item.submenu > li > a i, .sidebar[data-background-color="white"] .nav > .nav-item.submenu > li > a i { + color: rgba(23, 125, 255, 0.76); } + .sidebar .nav > .nav-item > a:hover, .sidebar .nav > .nav-item a:focus, .sidebar[data-background-color="white"] .nav > .nav-item > a:hover, .sidebar[data-background-color="white"] .nav > .nav-item a:focus { + background: rgba(0, 0, 0, 0.03); } + .sidebar .nav > .nav-item a, .sidebar[data-background-color="white"] .nav > .nav-item a { + display: flex; + align-items: center; + color: #575962; + padding: 6px 25px; + width: 100%; + font-size: 14px; + font-weight: 400; + position: relative; + margin-bottom: 3px; } + .sidebar .nav > .nav-item a:hover, .sidebar .nav > .nav-item a:focus, .sidebar[data-background-color="white"] .nav > .nav-item a:hover, .sidebar[data-background-color="white"] .nav > .nav-item a:focus { + text-decoration: none; } + .sidebar .nav > .nav-item a:hover p, .sidebar .nav > .nav-item a:focus p, .sidebar[data-background-color="white"] .nav > .nav-item a:hover p, .sidebar[data-background-color="white"] .nav > .nav-item a:focus p { + color: #575962 !important; + font-weight: 600; } + .sidebar .nav > .nav-item a:hover i, .sidebar .nav > .nav-item a:focus i, .sidebar[data-background-color="white"] .nav > .nav-item a:hover i, .sidebar[data-background-color="white"] .nav > .nav-item a:focus i { + color: #4d7cfe !important; } + .sidebar .nav > .nav-item a .letter-icon, .sidebar[data-background-color="white"] .nav > .nav-item a .letter-icon { + color: #a1a2a6; + margin-right: 15px; + width: 25px; + text-align: center; + vertical-align: middle; + float: left; + font-size: 20px; + font-weight: 200; } + .sidebar .nav > .nav-item a i, .sidebar[data-background-color="white"] .nav > .nav-item a i { + color: #8d9498; + margin-right: 15px; + width: 25px; + text-align: center; + vertical-align: middle; + float: left; + font-size: 18px; + line-height: 30px; } + .sidebar .nav > .nav-item a i[class^="flaticon-"], .sidebar[data-background-color="white"] .nav > .nav-item a i[class^="flaticon-"] { + font-size: 20px; } + .sidebar .nav > .nav-item a p, .sidebar[data-background-color="white"] .nav > .nav-item a p { + font-size: 14px; + margin-bottom: 0px; + margin-right: 5px; + white-space: nowrap; + color: #8d9498; } + .sidebar .nav > .nav-item a .caret, .sidebar[data-background-color="white"] .nav > .nav-item a .caret { + margin-left: auto; + margin-right: 10px; + transition: all .5s; + color: #8d9498; } + .sidebar .nav > .nav-item a[data-toggle=collapse][aria-expanded=true], .sidebar[data-background-color="white"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] { + background: transparent; } + .sidebar .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="white"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] p { + color: #575962; } + .sidebar .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="white"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #4d7cfe; } + .sidebar .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] .caret, .sidebar[data-background-color="white"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(-180deg); + transform: rotate(-180deg); } + .sidebar .nav > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: #1d7af3; } + .sidebar .nav.nav-primary > .nav-item a:hover i, .sidebar .nav.nav-primary > .nav-item a:focus i, .sidebar .nav.nav-primary > .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="white"] .nav.nav-primary > .nav-item a:hover i, .sidebar[data-background-color="white"] .nav.nav-primary > .nav-item a:focus i, .sidebar[data-background-color="white"] .nav.nav-primary > .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #1572E8 !important; } + .sidebar .nav.nav-primary > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav.nav-primary > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: #1572E8 !important; } + .sidebar .nav.nav-primary > .nav-item.active a:before, .sidebar[data-background-color="white"] .nav.nav-primary > .nav-item.active a:before { + background: #1572E8 !important; } + .sidebar .nav.nav-primary > .nav-item.active a i, .sidebar[data-background-color="white"] .nav.nav-primary > .nav-item.active a i { + color: #1572E8 !important; } + .sidebar .nav.nav-secondary > .nav-item a:hover i, .sidebar .nav.nav-secondary > .nav-item a:focus i, .sidebar .nav.nav-secondary > .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="white"] .nav.nav-secondary > .nav-item a:hover i, .sidebar[data-background-color="white"] .nav.nav-secondary > .nav-item a:focus i, .sidebar[data-background-color="white"] .nav.nav-secondary > .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #6861CE !important; } + .sidebar .nav.nav-secondary > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav.nav-secondary > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: #6861CE !important; } + .sidebar .nav.nav-secondary > .nav-item.active a:before, .sidebar[data-background-color="white"] .nav.nav-secondary > .nav-item.active a:before { + background: #6861CE !important; } + .sidebar .nav.nav-secondary > .nav-item.active a i, .sidebar[data-background-color="white"] .nav.nav-secondary > .nav-item.active a i { + color: #6861CE !important; } + .sidebar .nav.nav-info > .nav-item a:hover i, .sidebar .nav.nav-info > .nav-item a:focus i, .sidebar .nav.nav-info > .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="white"] .nav.nav-info > .nav-item a:hover i, .sidebar[data-background-color="white"] .nav.nav-info > .nav-item a:focus i, .sidebar[data-background-color="white"] .nav.nav-info > .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #48ABF7 !important; } + .sidebar .nav.nav-info > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav.nav-info > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: #48ABF7 !important; } + .sidebar .nav.nav-info > .nav-item.active a:before, .sidebar[data-background-color="white"] .nav.nav-info > .nav-item.active a:before { + background: #48ABF7 !important; } + .sidebar .nav.nav-info > .nav-item.active a i, .sidebar[data-background-color="white"] .nav.nav-info > .nav-item.active a i { + color: #48ABF7 !important; } + .sidebar .nav.nav-success > .nav-item a:hover i, .sidebar .nav.nav-success > .nav-item a:focus i, .sidebar .nav.nav-success > .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="white"] .nav.nav-success > .nav-item a:hover i, .sidebar[data-background-color="white"] .nav.nav-success > .nav-item a:focus i, .sidebar[data-background-color="white"] .nav.nav-success > .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #31CE36 !important; } + .sidebar .nav.nav-success > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav.nav-success > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: #31CE36 !important; } + .sidebar .nav.nav-success > .nav-item.active a:before, .sidebar[data-background-color="white"] .nav.nav-success > .nav-item.active a:before { + background: #31CE36 !important; } + .sidebar .nav.nav-success > .nav-item.active a i, .sidebar[data-background-color="white"] .nav.nav-success > .nav-item.active a i { + color: #31CE36 !important; } + .sidebar .nav.nav-warning > .nav-item a:hover i, .sidebar .nav.nav-warning > .nav-item a:focus i, .sidebar .nav.nav-warning > .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="white"] .nav.nav-warning > .nav-item a:hover i, .sidebar[data-background-color="white"] .nav.nav-warning > .nav-item a:focus i, .sidebar[data-background-color="white"] .nav.nav-warning > .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #FFAD46 !important; } + .sidebar .nav.nav-warning > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav.nav-warning > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: #FFAD46 !important; } + .sidebar .nav.nav-warning > .nav-item.active a:before, .sidebar[data-background-color="white"] .nav.nav-warning > .nav-item.active a:before { + background: #FFAD46 !important; } + .sidebar .nav.nav-warning > .nav-item.active a i, .sidebar[data-background-color="white"] .nav.nav-warning > .nav-item.active a i { + color: #FFAD46 !important; } + .sidebar .nav.nav-danger > .nav-item a:hover i, .sidebar .nav.nav-danger > .nav-item a:focus i, .sidebar .nav.nav-danger > .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="white"] .nav.nav-danger > .nav-item a:hover i, .sidebar[data-background-color="white"] .nav.nav-danger > .nav-item a:focus i, .sidebar[data-background-color="white"] .nav.nav-danger > .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #F25961 !important; } + .sidebar .nav.nav-danger > .nav-item a[data-toggle=collapse][aria-expanded=true]:before, .sidebar[data-background-color="white"] .nav.nav-danger > .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: #F25961 !important; } + .sidebar .nav.nav-danger > .nav-item.active a:before, .sidebar[data-background-color="white"] .nav.nav-danger > .nav-item.active a:before { + background: #F25961 !important; } + .sidebar .nav.nav-danger > .nav-item.active a i, .sidebar[data-background-color="white"] .nav.nav-danger > .nav-item.active a i { + color: #F25961 !important; } + .sidebar .nav-collapse, .sidebar[data-background-color="white"] .nav-collapse { + margin-top: 0px; + margin-bottom: 15px; + padding-bottom: 15px; + padding-top: 10px; } + .sidebar .nav-collapse li.active > a, .sidebar[data-background-color="white"] .nav-collapse li.active > a { + font-weight: 600; } + .sidebar .nav-collapse li a:before, .sidebar .nav-collapse li a:hover:before, .sidebar[data-background-color="white"] .nav-collapse li a:before, .sidebar[data-background-color="white"] .nav-collapse li a:hover:before { + opacity: 0 !important; } + .sidebar .nav-collapse li a, .sidebar[data-background-color="white"] .nav-collapse li a { + margin-bottom: 3px !important; + padding: 10px 25px !important; } + .sidebar .nav-collapse li a .sub-item, .sidebar[data-background-color="white"] .nav-collapse li a .sub-item { + font-size: 14px; + position: relative; + margin-left: 25px; + opacity: .85; } + .sidebar .nav-collapse li a .sub-item:before, .sidebar[data-background-color="white"] .nav-collapse li a .sub-item:before { + content: ''; + height: 4px; + width: 4px; + background: rgba(131, 132, 138, 0.89); + position: absolute; + left: -15px; + top: 50%; + transform: translateY(-50%); + border-radius: 100%; } + .sidebar .nav-collapse li a:hover .sub-item, .sidebar[data-background-color="white"] .nav-collapse li a:hover .sub-item { + opacity: 1; } + .sidebar .nav-collapse li a .sidebar-mini-icon, .sidebar[data-background-color="white"] .nav-collapse li a .sidebar-mini-icon { + font-size: 18px; + color: #C3C5CA; + margin-right: 15px; + width: 25px; + text-align: center; + vertical-align: middle; + float: left; + font-weight: 300 !important; } + .sidebar .nav-collapse.subnav, .sidebar[data-background-color="white"] .nav-collapse.subnav { + padding-bottom: 10px; + margin-bottom: 0px; } + .sidebar .nav-collapse.subnav li a, .sidebar[data-background-color="white"] .nav-collapse.subnav li a { + padding-left: 40px !important; } + +/* Sidebar style 2 */ +.sidebar.sidebar-style-2 .nav .nav-item { + padding: 0 15px; } + .sidebar.sidebar-style-2 .nav .nav-item a { + padding: 8px 10px; + border-radius: 5px; } + .sidebar.sidebar-style-2 .nav .nav-item a:hover, .sidebar.sidebar-style-2 .nav .nav-item a:focus, .sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + background: rgba(199, 199, 199, 0.2); } + .sidebar.sidebar-style-2 .nav .nav-item a:hover p, .sidebar.sidebar-style-2 .nav .nav-item a:hover i, .sidebar.sidebar-style-2 .nav .nav-item a:focus p, .sidebar.sidebar-style-2 .nav .nav-item a:focus i, .sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #575962 !important; } + .sidebar.sidebar-style-2 .nav .nav-item.active a:before { + background: transparent; } + .sidebar.sidebar-style-2 .nav .nav-item .active a { + background: rgba(199, 199, 199, 0.2); } + .sidebar.sidebar-style-2 .nav .nav-item .active a p, .sidebar.sidebar-style-2 .nav .nav-item .active a i { + color: #575962 !important; } + .sidebar.sidebar-style-2 .nav .nav-item.submenu { + background: transparent !important; } + .sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true]:before { + background: transparent !important; } +.sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a { + background: #1572E8 !important; + box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.1), 4px 4px 15px -5px rgba(21, 114, 232, 0.4) !important; } + .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a:before { + background: transparent !important; } + .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a p, .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a i, .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a .caret, .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a span { + color: #ffffff !important; } + .sidebar.sidebar-style-2 .nav.nav-primary > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i { + color: #ffffff !important; } +.sidebar.sidebar-style-2 .nav.nav-secondary > .nav-item.active > a { + background: #6861CE !important; + box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.1), 4px 4px 15px -5px rgba(104, 97, 206, 0.4) !important; } + .sidebar.sidebar-style-2 .nav.nav-secondary > .nav-item.active > a:before { + background: transparent !important; } + .sidebar.sidebar-style-2 .nav.nav-secondary > .nav-item.active > a p, .sidebar.sidebar-style-2 .nav.nav-secondary > .nav-item.active > a i, .sidebar.sidebar-style-2 .nav.nav-secondary > .nav-item.active > a .caret, .sidebar.sidebar-style-2 .nav.nav-secondary > .nav-item.active > a span { + color: #ffffff !important; } + .sidebar.sidebar-style-2 .nav.nav-secondary > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i { + color: #ffffff !important; } +.sidebar.sidebar-style-2 .nav.nav-info > .nav-item.active > a { + background: #48ABF7 !important; + box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.1), 4px 4px 15px -5px rgba(72, 171, 247, 0.4) !important; } + .sidebar.sidebar-style-2 .nav.nav-info > .nav-item.active > a:before { + background: transparent !important; } + .sidebar.sidebar-style-2 .nav.nav-info > .nav-item.active > a p, .sidebar.sidebar-style-2 .nav.nav-info > .nav-item.active > a i, .sidebar.sidebar-style-2 .nav.nav-info > .nav-item.active > a .caret, .sidebar.sidebar-style-2 .nav.nav-info > .nav-item.active > a span { + color: #ffffff !important; } + .sidebar.sidebar-style-2 .nav.nav-info > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i { + color: #ffffff !important; } +.sidebar.sidebar-style-2 .nav.nav-success > .nav-item.active > a { + background: #31CE36 !important; + box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.1), 4px 4px 15px -5px rgba(49, 206, 54, 0.4) !important; } + .sidebar.sidebar-style-2 .nav.nav-success > .nav-item.active > a:before { + background: transparent !important; } + .sidebar.sidebar-style-2 .nav.nav-success > .nav-item.active > a p, .sidebar.sidebar-style-2 .nav.nav-success > .nav-item.active > a i, .sidebar.sidebar-style-2 .nav.nav-success > .nav-item.active > a .caret, .sidebar.sidebar-style-2 .nav.nav-success > .nav-item.active > a span { + color: #ffffff !important; } + .sidebar.sidebar-style-2 .nav.nav-success > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i { + color: #ffffff !important; } +.sidebar.sidebar-style-2 .nav.nav-warning > .nav-item.active > a { + background: #FFAD46 !important; + box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.1), 4px 4px 15px -5px rgba(255, 173, 70, 0.4) !important; } + .sidebar.sidebar-style-2 .nav.nav-warning > .nav-item.active > a:before { + background: transparent !important; } + .sidebar.sidebar-style-2 .nav.nav-warning > .nav-item.active > a p, .sidebar.sidebar-style-2 .nav.nav-warning > .nav-item.active > a i, .sidebar.sidebar-style-2 .nav.nav-warning > .nav-item.active > a .caret, .sidebar.sidebar-style-2 .nav.nav-warning > .nav-item.active > a span { + color: #ffffff !important; } + .sidebar.sidebar-style-2 .nav.nav-warning > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i { + color: #ffffff !important; } +.sidebar.sidebar-style-2 .nav.nav-danger > .nav-item.active > a { + background: #F25961 !important; + box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.1), 4px 4px 15px -5px rgba(242, 89, 97, 0.4) !important; } + .sidebar.sidebar-style-2 .nav.nav-danger > .nav-item.active > a:before { + background: transparent !important; } + .sidebar.sidebar-style-2 .nav.nav-danger > .nav-item.active > a p, .sidebar.sidebar-style-2 .nav.nav-danger > .nav-item.active > a i, .sidebar.sidebar-style-2 .nav.nav-danger > .nav-item.active > a .caret, .sidebar.sidebar-style-2 .nav.nav-danger > .nav-item.active > a span { + color: #ffffff !important; } + .sidebar.sidebar-style-2 .nav.nav-danger > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i { + color: #ffffff !important; } +.sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item a:hover p, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item a:hover i, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item a:focus p, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item a:focus i, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item a:hover p, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item a:hover i, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item a:focus p, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item a:focus i, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i { + color: #b9babf !important; } +.sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a { + color: #ffffff; } + .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a p, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a i, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a .caret, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a span, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a p, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a i, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a .caret, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a span { + color: #ffffff; } + .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] p, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] i, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] .caret, .sidebar.sidebar-style-2[data-background-color="dark"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] span, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] p, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] i, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] .caret, .sidebar.sidebar-style-2[data-background-color="dark2"] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] span { + color: #ffffff; } + +.main-panel { + position: relative; + width: calc(100% - 250px); + height: 100vh; + min-height: 100%; + float: right; + transition: all .3s; } + .main-panel > .content { + padding: 0px !important; + min-height: calc(100% - 123px); + margin-top: 62px; + overflow: hidden; } + .main-panel > .content-full { + padding: 0px !important; + min-height: calc(100% - 123px); + margin-top: 63px; + overflow: hidden; } + .main-panel .page-header { + display: flex; + align-items: center; + margin-bottom: 20px; } + .main-panel .page-header .page-title { + margin-bottom: 0px; } + .main-panel .page-header .btn-page-header-dropdown { + width: 35px; + height: 35px; + font-size: 14px; + padding: 0px; + color: #6b6b6b; + box-shadow: 0 2px 14px 0 rgba(144, 116, 212, 0.1) !important; + border: 0; } + .main-panel .page-header .btn-page-header-dropdown:after { + display: none; } + .main-panel .page-header .dropdown-menu { + margin-top: 15px; + top: 0px !important; } + .main-panel .page-header .dropdown-menu:after { + width: 0; + height: 0; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-bottom: 8px solid #ffffff; + position: absolute; + top: -8px; + right: 32px; + content: ''; } + .main-panel .page-divider { + height: 0; + margin: .3rem 0 1rem; + overflow: hidden; + border-top: 1px solid #ebecec; } + +/* Page Wrapper */ +.page-wrapper { + min-height: calc(100vh - 57px); + position: relative; } + .page-wrapper.has-sidebar .page-inner { + margin-right: 22.5rem; } + +.page-navs { + position: relative; + display: block; + padding-right: 1rem; + padding-left: 1rem; + box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.07); + z-index: 1; } + .page-navs .nav .nav-link { + padding: 1rem !important; } + .page-navs .nav-line { + border: 0px !important; } + .page-navs .nav-line .nav-link { + border-bottom-width: 3px !important; } + +.nav-scroller .nav { + flex-wrap: nowrap; + overflow-x: auto; + white-space: nowrap; } + +@media (min-width: 992px) { + .page-navs { + padding-right: 2rem; + padding-left: 2rem; } } +.page-inner { + padding: 1.5rem 0; } + +@media (min-width: 576px) { + .page-inner { + padding-right: 1rem; + padding-left: 1rem; } } +@media (min-width: 992px) { + .page-inner { + padding-right: 2rem; + padding-left: 2rem; } } +.page-inner-fill { + padding: 0; + height: calc(100% - 57px); + display: flex; + flex-direction: column; } + +.page-sidebar { + position: absolute; + top: 0; + right: 0; + bottom: 0; + width: 100%; + display: flex; + flex-direction: column; + max-width: 22.5rem; + box-shadow: none; + transform: translate3d(100%, 0, 0); + overflow: auto; + z-index: 999; + transition: transform .2s ease-in-out; + border-left: 1px solid rgba(61, 70, 79, 0.125) !important; } + .page-sidebar .back { + width: 100%; + display: flex; + align-items: center; + padding: 1rem; + box-shadow: 0 0 0 1px rgba(61, 70, 79, 0.05), 0 1px 3px 0 rgba(61, 70, 79, 0.15); + font-size: 15px; } + +.page-sidebar-section { + flex: 1; + overflow-y: auto; } + +@media (min-width: 1200px) { + .page-sidebar { + transform: translateZ(0); } } +@media (max-width: 1200px) { + .page-wrapper.has-sidebar .page-inner { + margin-right: 0px; } + + .pagesidebar_open .page-sidebar { + transform: translate3d(0, 0, 0) !important; + max-width: unset; } } +.page-with-aside { + display: flex; } + .page-with-aside .page-aside { + width: 280px; + min-height: 100vh; + border-right: 1px solid #f1f1f1; + padding: 15px 0; } + .page-with-aside .page-aside .aside-header { + padding: 15px 22px; } + .page-with-aside .page-aside .aside-header .title { + font-size: 24px; } + .page-with-aside .page-aside .aside-header .description { + font-size: 12px; } + .page-with-aside .page-aside .aside-nav .nav { + flex-direction: column; } + .page-with-aside .page-aside .aside-nav .nav > li { + padding: 8px 22px; + margin-bottom: 5px; } + .page-with-aside .page-aside .aside-nav .nav > li:hover, .page-with-aside .page-aside .aside-nav .nav > li:focus, .page-with-aside .page-aside .aside-nav .nav > li.active { + background: rgba(51, 51, 51, 0.08); } + .page-with-aside .page-aside .aside-nav .nav > li.active { + padding: 12px 22px; + font-weight: 600; } + .page-with-aside .page-aside .aside-nav .nav > li.active > a { + color: #575962 !important; } + .page-with-aside .page-aside .aside-nav .nav > li > a { + color: #83848a; + display: flex; + align-items: center; + font-size: 12px; } + .page-with-aside .page-aside .aside-nav .nav > li > a:hover, .page-with-aside .page-aside .aside-nav .nav > li > a:focus { + text-decoration: none; } + .page-with-aside .page-aside .aside-nav .nav > li > a i { + font-size: 20px; + margin-right: 15px; + color: #a1a2a6; } + .page-with-aside .page-aside .aside-nav .label { + padding: 5px 22px; + margin-top: 22px; + margin-bottom: 5px; + display: block; } + .page-with-aside .page-aside .aside-compose { + padding: 25px 22px; } + .page-with-aside .page-content { + width: calc(100% - 280px); } + +.footer { + border-top: 1px solid #eee; + padding: 15px; + background: #ffffff; + position: absolute; + width: 100%; } + .footer .container, .footer .container-fluid { + display: flex; + align-items: center; } + +/* sidebar minimized */ +@media screen and (min-width: 991px) { + .sidebar_minimize .main-panel { + width: calc(100% - 75px); + transition: all .3s; } + .sidebar_minimize .logo-header { + width: 75px; + transition: all .3s; + padding: 0px; + text-align: center; } + .sidebar_minimize .logo-header .big-logo { + margin-right: 0px; } + .sidebar_minimize .logo-header .logo { + position: absolute; + transform: translate3d(25px, 0, 0); + opacity: 0; } + .sidebar_minimize .logo-header .logo img { + display: none; } + .sidebar_minimize .logo-header .nav-toggle { + position: absolute; + left: 50%; + transform: translateX(-50%); + height: 100%; + right: 0 !important; } + .sidebar_minimize .sidebar { + width: 75px; + transition: all .3s; } + .sidebar_minimize .sidebar .sidebar-wrapper { + width: 75px; + transition: all .3s; } + .sidebar_minimize .sidebar .sidebar-wrapper .user { + padding-left: 0px; + padding-right: 0px; } + .sidebar_minimize .sidebar .sidebar-wrapper .user [class^="avatar-"] { + float: none !important; + margin: auto; } + .sidebar_minimize .sidebar .sidebar-wrapper .user .info { + display: none; } + .sidebar_minimize .sidebar .sidebar-wrapper .user .info span { + display: none; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-item { + position: relative; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .letter-icon { + display: block !important; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-item a i { + margin-right: unset; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .badge, .sidebar_minimize .sidebar .sidebar-wrapper .nav-item a span, .sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .caret, .sidebar_minimize .sidebar .sidebar-wrapper .nav-item a p { + display: none; + transition: all .3s; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .sidebar-mini-icon { + display: block !important; + margin-right: 0px; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-item.submenu .nav-collapse, .sidebar_minimize .sidebar .sidebar-wrapper .nav-item.active .nav-collapse { + display: none; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-section .text-section { + display: none; } + .sidebar_minimize .sidebar .sidebar-wrapper .nav-section .sidebar-mini-icon { + display: block; } + .sidebar_minimize .sidebar:hover { + width: 250px; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper { + width: 250px; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .user { + padding-left: 15px; + padding-right: 15px; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .user [class^="avatar-"] { + float: left !important; + margin-right: 11px !important; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .user .info { + display: block; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .user .info span { + display: block; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a i { + margin-right: 15px; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a .badge, .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a span, .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a .caret, .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a p { + display: block; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a .sidebar-mini-icon { + display: block !important; + margin-right: 15px; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item.submenu .nav-collapse, .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item.active .nav-collapse { + display: block; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-section .sidebar-mini-icon { + display: none; } + .sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-section .text-section { + display: block; } + .sidebar_minimize.sidebar_minimize_hover .logo-header { + width: 250px; + padding-left: 25px; + padding-right: 25px; + text-align: left; } + .sidebar_minimize.sidebar_minimize_hover .logo-header .logo { + opacity: 1 !important; + transform: translate3d(0, 0, 0) !important; + position: relative !important; } + .sidebar_minimize.sidebar_minimize_hover .logo-header .logo img { + display: inline-block !important; } + .sidebar_minimize.sidebar_minimize_hover .main-panel { + width: calc(100% - 250px); } + + .sidebar_minimize_hover .logo-header .nav-toggle { + right: 18px !important; + transform: translateX(0%) !important; + left: unset; } } +/* overlay sidebar */ +.overlay-sidebar:not(.is-show) .sidebar { + left: -250px; } +.overlay-sidebar .main-panel { + width: 100% !important; } + +/* compact wrapper */ +@media screen and (min-width: 991px) { + .compact-wrapper .main-header .logo-header { + width: 175px; } + .compact-wrapper .sidebar { + width: 175px; } + .compact-wrapper .sidebar .badge { + position: absolute; + top: 8px; + right: 8px; } + .compact-wrapper .sidebar .text-section { + text-align: center; } + .compact-wrapper .sidebar .nav > .nav-item a { + flex-direction: column; } + .compact-wrapper .sidebar .nav > .nav-item a i { + margin-right: 0px; } + .compact-wrapper .sidebar .nav > .nav-item a p { + margin-right: 0px; } + .compact-wrapper .sidebar .nav > .nav-item a .caret { + display: none; } + .compact-wrapper .sidebar .nav-collapse li a .sub-item { + margin-left: 0px; + text-align: center; } + .compact-wrapper .sidebar .nav-collapse li a .sub-item:before { + display: none; } + .compact-wrapper .main-panel { + width: calc(100% - 175px); } } +/* classic */ +@media screen and (min-width: 991px) { + .classic-wrapper .classic-grid { + margin: 93px 40px 30px; } + .classic-wrapper .main-header { + top: 0; } + .classic-wrapper .main-header .logo-header { + padding: 0 40px; + width: 290px; } + .classic-wrapper .sidebar { + position: relative; + float: left; + margin-top: 0px; } + .classic-wrapper .sidebar .sidebar-wrapper { + max-height: unset; + min-height: 100%; } + .classic-wrapper .navbar-header { + padding-right: 30px; } + .classic-wrapper .main-panel { + height: unset; } + .classic-wrapper .main-panel .content, .classic-wrapper .main-panel .content-full { + margin-top: 0px; } + .classic-wrapper .page-inner { + padding-right: 0px; + padding-top: 5px; } + .classic-wrapper .board { + height: 100%; } + + .sidebar_minimize .classic-wrapper .logo-header .logo { + position: relative; + transform: unset; + opacity: 1; } + .sidebar_minimize .classic-wrapper .logo-header .logo img { + display: inline-block; } + .sidebar_minimize .classic-wrapper .logo-header .nav-toggle { + left: unset; + transform: unset; + right: 18px !important; } } +.classic-wrapper { + height: unset; } + .classic-wrapper .main-panel { + height: unset; } + .classic-wrapper .footer { + position: unset; } + +.classic-grid { + min-height: 100vh; + height: 100%; + display: flex; + flex-direction: row; + flex-wrap: wrap; } + +/* Static Sidebar */ +@media screen and (min-width: 991px) { + .static-sidebar { + height: unset; } + .static-sidebar .sidebar { + position: static; + float: left; } + .static-sidebar .sidebar .sidebar-wrapper { + max-height: unset; + min-height: 100%; } + .static-sidebar .main-panel { + height: unset; } + .static-sidebar .main-panel .content { + margin-bottom: 60px; } + .static-sidebar .footer { + position: absolute; + bottom: 0; } } +/* Mail */ +.mail-wrapper .toggle-email-nav { + margin-top: 10px; + display: none; } +.mail-wrapper .mail-content .inbox-head, .mail-wrapper .mail-content .email-head { + padding: 35px 25px 20px; } + .mail-wrapper .mail-content .inbox-head h3, .mail-wrapper .mail-content .email-head h3 { + font-size: 22px; + font-weight: 300; + margin: 0px; } +.mail-wrapper .mail-content .email-head { + padding: 35px 25px; + border-bottom: 1px solid #f1f1f1; } + .mail-wrapper .mail-content .email-head .favorite { + color: #eee; + margin-right: 5px; } + .mail-wrapper .mail-content .email-head .favorite.active { + color: #FFC600; } + .mail-wrapper .mail-content .email-head .controls { + margin-left: auto; } + .mail-wrapper .mail-content .email-head .controls > a { + color: #9c9c9c; + font-size: 18px; + padding: 0 5px; } + .mail-wrapper .mail-content .email-head .controls > a:hover { + text-decoration: none; + opacity: 0.8; } + .mail-wrapper .mail-content .email-head .controls > a:last-child { + padding-right: 0px; } +.mail-wrapper .mail-content .email-sender { + padding: 14px 25px; + display: flex; + align-items: center; + border-bottom: 1px solid #f1f1f1; } + .mail-wrapper .mail-content .email-sender .avatar { + padding-right: 12px; } + .mail-wrapper .mail-content .email-sender .avatar img { + max-width: 40px; + max-height: 40px; + border-radius: 50%; } + .mail-wrapper .mail-content .email-sender .date { + margin-left: auto; } + .mail-wrapper .mail-content .email-sender .sender .action { + display: inline-block; } + .mail-wrapper .mail-content .email-sender .sender .action > a { + cursor: pointer; } +.mail-wrapper .mail-content .email-body { + padding: 30px 28px; } +.mail-wrapper .mail-content .email-attachments { + padding: 25px 28px; + border-top: 1px solid #f1f1f1; } + .mail-wrapper .mail-content .email-attachments .title { + font-weight: 400; + margin-bottom: 10px; } + .mail-wrapper .mail-content .email-attachments .title span { + font-weight: 400; } + .mail-wrapper .mail-content .email-attachments ul { + padding-left: 0px; + list-style: none; } + .mail-wrapper .mail-content .email-attachments ul li { + padding: 6px 0; } + .mail-wrapper .mail-content .email-attachments ul li a { + font-weight: 400; } + .mail-wrapper .mail-content .email-attachments ul li a:hover { + text-decoration: none; } + .mail-wrapper .mail-content .email-attachments ul li a i { + font-size: 20px; + display: inline-block; + vertical-align: middle; } + .mail-wrapper .mail-content .email-attachments ul li a span { + font-weight: 400; } +.mail-wrapper .mail-content .inbox-body { + padding: 20px 0px; } + .mail-wrapper .mail-content .inbox-body .mail-option { + padding: 0 20px; + margin-bottom: 20px; + display: flex; } + .mail-wrapper .mail-content .inbox-body .mail-option .chk-all { + display: inline-block; } + .mail-wrapper .mail-content .inbox-body .mail-option .btn-option { + color: #555 !important; + border: 1px solid #ebedf2 !important; + font-weight: 600; + background: #ffffff !important; + box-shadow: 2px 2px 3px 0px #f2f1f1 !important; } + .mail-wrapper .mail-content .inbox-body .mail-option .form-check { + padding: 0; } + .mail-wrapper .mail-content .inbox-body .mail-option .form-check .form-check-sign:before { + border: 1px solid #eee; + background: #eeeeee; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item { + padding: 14px 20px; + display: table; + cursor: pointer; + position: relative; + font-size: 12px; + width: 100%; + border-top: 1px solid #f1f1f1; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item:hover { + background: #f6f5f5; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions, .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail { + vertical-align: top; + display: table-cell; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions { + width: 50px; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .custom-checkbox { + margin-right: 0px; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite { + color: #eee; + font-size: 18px; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite:hover { + text-decoration: none; + color: #969696; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite.active, .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite.active:hover { + color: #FFC600; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail p, .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .msg { + font-size: 12px; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .msg { + margin-bottom: 0px; + margin-top: 8px; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .from { + font-size: 13px; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .date { + font-size: 12px; + display: flex; + align-items: center; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .date .paperclip { + font-size: 16px; + padding-right: 4px; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread { + font-weight: 400; + background: #fbfbfb; } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread:after { + content: ''; + display: block; + position: absolute; + width: 3px; + background: #1572E8; + top: -1px; + left: 0px; + bottom: -1px; + height: calc(100% + 2px); } + .mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread .email-list-detail .from { + font-weight: 600; } +.mail-wrapper .mail-content .email-compose-fields, .mail-wrapper .mail-content .email-editor { + padding: 20px 25px; } +.mail-wrapper .mail-content .email-compose-fields { + padding: 20px 25px; + border-bottom: 1px solid #f1f1f1; } +.mail-wrapper .mail-content .email-action { + text-align: right; + margin-bottom: 15px; } + .mail-wrapper .mail-content .email-action > .btn { + margin-right: 7px; } + .mail-wrapper .mail-content .email-action > .btn:last-child { + margin-right: 0px; } + +/* Flex-1 */ +.flex-1 { + -ms-flex: 1; + flex: 1; } + +/* Metric */ +.metric { + display: flex; + padding: 1rem; + flex-direction: column; } + +/* Customable Layouts Colors */ +.main-header .navbar-header[data-background-color] .nav-search .input-group { + border: 0; + background: rgba(0, 0, 0, 0.14) !important; + box-shadow: 3px 3px 6px 0 rgba(0, 0, 0, 0.07); + transition: all .4s; } + .main-header .navbar-header[data-background-color] .nav-search .input-group .form-control { + color: #ffffff !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group .form-control::-webkit-input-placeholder { + /* Chrome/Opera/Safari */ + opacity: 1; } + .main-header .navbar-header[data-background-color] .nav-search .input-group .form-control::-moz-placeholder { + /* Firefox 19+ */ + opacity: 1; } + .main-header .navbar-header[data-background-color] .nav-search .input-group .form-control:-ms-input-placeholder { + /* IE 10+ */ + opacity: 1; } + .main-header .navbar-header[data-background-color] .nav-search .input-group .form-control:-moz-placeholder { + /* Firefox 18- */ + opacity: 1; } + .main-header .navbar-header[data-background-color] .nav-search .input-group .search-icon { + color: #ffffff !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group.focus { + background: #fff !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control { + color: inherit !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control::-webkit-input-placeholder { + /* Chrome/Opera/Safari */ + color: #bfbfbf !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control::-moz-placeholder { + /* Firefox 19+ */ + color: #bfbfbf !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control:-ms-input-placeholder { + /* IE 10+ */ + color: #bfbfbf !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control:-moz-placeholder { + /* Firefox 18- */ + color: #bfbfbf !important; } + .main-header .navbar-header[data-background-color] .nav-search .input-group.focus .search-icon { + color: #bfbfbf !important; } +.main-header .navbar-header[data-background-color] .navbar-nav .nav-item .nav-link { + color: #ffffff !important; } + .main-header .navbar-header[data-background-color] .navbar-nav .nav-item .nav-link:hover, .main-header .navbar-header[data-background-color] .navbar-nav .nav-item .nav-link:focus { + background: rgba(31, 30, 30, 0.12) !important; } +.main-header .navbar-header[data-background-color] .navbar-nav .nav-item.active .nav-link { + background: rgba(31, 30, 30, 0.12) !important; } + +.main-header .navbar-header[data-background-color="dark"] .nav-search .input-group, .main-header .navbar-header[data-background-color="dark2"] .nav-search .input-group { + background: rgba(185, 185, 185, 0.18) !important; } +.main-header .navbar-header[data-background-color="dark"] .navbar-nav .nav-item .nav-link:hover, .main-header .navbar-header[data-background-color="dark"] .navbar-nav .nav-item .nav-link:focus, .main-header .navbar-header[data-background-color="dark2"] .navbar-nav .nav-item .nav-link:hover, .main-header .navbar-header[data-background-color="dark2"] .navbar-nav .nav-item .nav-link:focus { + background: rgba(185, 185, 185, 0.18) !important; } +.main-header .navbar-header[data-background-color="dark"] .navbar-nav .nav-item.active .nav-link, .main-header .navbar-header[data-background-color="dark2"] .navbar-nav .nav-item.active .nav-link { + background: rgba(185, 185, 185, 0.18) !important; } +.main-header .navbar-header[data-background-color="white"] .nav-search .input-group, .main-header .navbar-header .navbar-header-transparent .nav-search .input-group { + background: #eee; } + .main-header .navbar-header[data-background-color="white"] .nav-search .input-group .form-control, .main-header .navbar-header .navbar-header-transparent .nav-search .input-group .form-control { + color: #8d9498 !important; } + .main-header .navbar-header[data-background-color="white"] .nav-search .input-group .search-icon, .main-header .navbar-header .navbar-header-transparent .nav-search .input-group .search-icon { + color: #8d9498 !important; } +.main-header .navbar-header[data-background-color="white"] .navbar-nav .nav-item .nav-link, .main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item .nav-link { + color: #8d9498 !important; } + .main-header .navbar-header[data-background-color="white"] .navbar-nav .nav-item .nav-link:hover, .main-header .navbar-header[data-background-color="white"] .navbar-nav .nav-item .nav-link:focus, .main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item .nav-link:hover, .main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item .nav-link:focus { + background: #eee !important; } +.main-header .navbar-header[data-background-color="white"] .navbar-nav .nav-item.active .nav-link, .main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item.active .nav-link { + background: #eee !important; } + +.btn-toggle { + color: #fff !important; } + +.logo-header[data-background-color] .navbar-toggler .navbar-toggler-icon { + color: #ffffff !important; } +.logo-header[data-background-color] .more { + color: #ffffff !important; } +.logo-header[data-background-color="white"] .navbar-toggler .navbar-toggler-icon, .logo-header[data-background-color="white"] .more, .logo-header[data-background-color="white"] .btn-toggle { + color: #8d9498 !important; } + +.logo-header[data-background-color="white"] { + background: #ffffff !important; } + +.navbar-header[data-background-color="white"] { + background: #ffffff !important; } + +.logo-header[data-background-color="dark"] { + background: #1a2035 !important; } + +.logo-header[data-background-color="dark2"] { + background: #1f283e !important; } + +.navbar-header[data-background-color="dark"] { + background: #1a2035 !important; } + +.navbar-header[data-background-color="dark2"] { + background: #1f283e !important; } + +.logo-header[data-background-color="blue"] { + background: #1572E8 !important; } + +.logo-header[data-background-color="blue2"] { + background: #1269DB !important; } + +.navbar-header[data-background-color="blue"] { + background: #1572E8 !important; } + +.navbar-header[data-background-color="blue2"] { + background: #1269DB !important; } + +.logo-header[data-background-color="purple"] { + background: #6861CE !important; } + +.logo-header[data-background-color="purple2"] { + background: #5C55BF !important; } + +.navbar-header[data-background-color="purple"] { + background: #6861CE !important; } + +.navbar-header[data-background-color="purple2"] { + background: #5C55BF !important; } + +.logo-header[data-background-color="light-blue"] { + background: #48ABF7 !important; } + +.logo-header[data-background-color="light-blue2"] { + background: #3697E1 !important; } + +.navbar-header[data-background-color="light-blue"] { + background: #48ABF7 !important; } + +.navbar-header[data-background-color="light-blue2"] { + background: #3697E1 !important; } + +.logo-header[data-background-color="green"] { + background: #31CE36 !important; } + +.logo-header[data-background-color="green2"] { + background: #2BB930 !important; } + +.navbar-header[data-background-color="green"] { + background: #31CE36 !important; } + +.navbar-header[data-background-color="green2"] { + background: #2BB930 !important; } + +.logo-header[data-background-color="orange"] { + background: #FFAD46 !important; } + +.logo-header[data-background-color="orange2"] { + background: #FF9E27 !important; } + +.navbar-header[data-background-color="orange"] { + background: #FFAD46 !important; } + +.navbar-header[data-background-color="orange2"] { + background: #FF9E27 !important; } + +.logo-header[data-background-color="red"] { + background: #F25961 !important; } + +.logo-header[data-background-color="red2"] { + background: #EA4d56 !important; } + +.navbar-header[data-background-color="red"] { + background: #F25961 !important; } + +.navbar-header[data-background-color="red2"] { + background: #EA4d56 !important; } + +.sidebar[data-background-color="dark"] { + background: #1a2035 !important; } + .sidebar[data-background-color="dark"] .user { + border-color: rgba(181, 181, 181, 0.1) !important; } + .sidebar[data-background-color="dark"] .user .info a > span { + color: #b9babf; } + .sidebar[data-background-color="dark"] .user .info a > span .user-level { + color: #8d9498; } + .sidebar[data-background-color="dark"] .nav > .nav-item.active > a p { + color: #b9babf !important; } + .sidebar[data-background-color="dark"] .nav > .nav-item a { + color: #b9babf !important; } + .sidebar[data-background-color="dark"] .nav > .nav-item a:hover p, .sidebar[data-background-color="dark"] .nav > .nav-item a:focus p, .sidebar[data-background-color="dark"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] p { + color: #b9babf !important; } + .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:hover, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:focus, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #1a2035 !important; } + .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a p, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a i, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a .caret, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:hover p, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:hover i, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:hover .caret, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:focus p, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:focus i, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a:focus .caret, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="dark"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #1a2035 !important; } + .sidebar[data-background-color="dark"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="dark"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="dark"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="dark2"] { + background: #1f283e !important; } + .sidebar[data-background-color="dark2"] .user { + border-color: rgba(181, 181, 181, 0.1) !important; } + .sidebar[data-background-color="dark2"] .user .info a > span { + color: #b9babf; } + .sidebar[data-background-color="dark2"] .user .info a > span .user-level { + color: #8d9498; } + .sidebar[data-background-color="dark2"] .nav > .nav-item.active > a p { + color: #b9babf !important; } + .sidebar[data-background-color="dark2"] .nav > .nav-item a { + color: #b9babf !important; } + .sidebar[data-background-color="dark2"] .nav > .nav-item a:hover p, .sidebar[data-background-color="dark2"] .nav > .nav-item a:focus p, .sidebar[data-background-color="dark2"] .nav > .nav-item a[data-toggle=collapse][aria-expanded=true] p { + color: #b9babf !important; } + .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:hover, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:focus, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #1f283e !important; } + .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a p, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a i, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a .caret, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:hover p, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:hover i, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:hover .caret, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:focus p, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:focus i, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a:focus .caret, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="dark2"].sidebar-style-2 .nav .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #1f283e !important; } + .sidebar[data-background-color="dark2"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="dark2"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="dark2"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="blue"] { + background: #1572E8 !important; } + .sidebar[data-background-color="blue"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="blue"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="blue"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="blue"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="blue"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="blue"] .nav .nav-item a p, .sidebar[data-background-color="blue"] .nav .nav-item a i, .sidebar[data-background-color="blue"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="blue"] .nav .nav-item a:hover, .sidebar[data-background-color="blue"] .nav .nav-item a:focus, .sidebar[data-background-color="blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="blue"] .nav .nav-item a:hover p, .sidebar[data-background-color="blue"] .nav .nav-item a:hover i, .sidebar[data-background-color="blue"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="blue"] .nav .nav-item a:focus p, .sidebar[data-background-color="blue"] .nav .nav-item a:focus i, .sidebar[data-background-color="blue"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="blue"] .nav > .nav-item.active > a, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #1572E8 !important; } + .sidebar[data-background-color="blue"] .nav > .nav-item.active > a p, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a i, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #1572E8 !important; } + .sidebar[data-background-color="blue"] .nav .nav-section .text-section, .sidebar[data-background-color="blue"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="blue"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="blue"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="blue"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="blue"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="blue2"] { + background: #1269DB !important; } + .sidebar[data-background-color="blue2"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="blue2"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="blue2"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="blue2"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="blue2"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="blue2"] .nav .nav-item a p, .sidebar[data-background-color="blue2"] .nav .nav-item a i, .sidebar[data-background-color="blue2"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="blue2"] .nav .nav-item a:hover, .sidebar[data-background-color="blue2"] .nav .nav-item a:focus, .sidebar[data-background-color="blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="blue2"] .nav .nav-item a:hover p, .sidebar[data-background-color="blue2"] .nav .nav-item a:hover i, .sidebar[data-background-color="blue2"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="blue2"] .nav .nav-item a:focus p, .sidebar[data-background-color="blue2"] .nav .nav-item a:focus i, .sidebar[data-background-color="blue2"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #1269DB !important; } + .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a p, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a i, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #1269DB !important; } + .sidebar[data-background-color="blue2"] .nav .nav-section .text-section, .sidebar[data-background-color="blue2"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="blue2"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="blue2"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="blue2"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="blue2"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="purple"] { + background: #6861CE !important; } + .sidebar[data-background-color="purple"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="purple"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="purple"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="purple"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="purple"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="purple"] .nav .nav-item a p, .sidebar[data-background-color="purple"] .nav .nav-item a i, .sidebar[data-background-color="purple"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="purple"] .nav .nav-item a:hover, .sidebar[data-background-color="purple"] .nav .nav-item a:focus, .sidebar[data-background-color="purple"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="purple"] .nav .nav-item a:hover p, .sidebar[data-background-color="purple"] .nav .nav-item a:hover i, .sidebar[data-background-color="purple"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="purple"] .nav .nav-item a:focus p, .sidebar[data-background-color="purple"] .nav .nav-item a:focus i, .sidebar[data-background-color="purple"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="purple"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="purple"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="purple"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="purple"] .nav > .nav-item.active > a, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #6861CE !important; } + .sidebar[data-background-color="purple"] .nav > .nav-item.active > a p, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a i, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="purple"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #6861CE !important; } + .sidebar[data-background-color="purple"] .nav .nav-section .text-section, .sidebar[data-background-color="purple"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="purple"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="purple"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="purple"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="purple"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="purple2"] { + background: #5C55BF !important; } + .sidebar[data-background-color="purple2"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="purple2"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="purple2"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="purple2"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="purple2"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="purple2"] .nav .nav-item a p, .sidebar[data-background-color="purple2"] .nav .nav-item a i, .sidebar[data-background-color="purple2"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="purple2"] .nav .nav-item a:hover, .sidebar[data-background-color="purple2"] .nav .nav-item a:focus, .sidebar[data-background-color="purple2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="purple2"] .nav .nav-item a:hover p, .sidebar[data-background-color="purple2"] .nav .nav-item a:hover i, .sidebar[data-background-color="purple2"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="purple2"] .nav .nav-item a:focus p, .sidebar[data-background-color="purple2"] .nav .nav-item a:focus i, .sidebar[data-background-color="purple2"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="purple2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="purple2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="purple2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #5C55BF !important; } + .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a p, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a i, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="purple2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #5C55BF !important; } + .sidebar[data-background-color="purple2"] .nav .nav-section .text-section, .sidebar[data-background-color="purple2"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="purple2"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="purple2"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="purple2"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="purple2"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="light-blue"] { + background: #48ABF7 !important; } + .sidebar[data-background-color="light-blue"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="light-blue"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="light-blue"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="light-blue"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="light-blue"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="light-blue"] .nav .nav-item a p, .sidebar[data-background-color="light-blue"] .nav .nav-item a i, .sidebar[data-background-color="light-blue"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="light-blue"] .nav .nav-item a:hover, .sidebar[data-background-color="light-blue"] .nav .nav-item a:focus, .sidebar[data-background-color="light-blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="light-blue"] .nav .nav-item a:hover p, .sidebar[data-background-color="light-blue"] .nav .nav-item a:hover i, .sidebar[data-background-color="light-blue"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="light-blue"] .nav .nav-item a:focus p, .sidebar[data-background-color="light-blue"] .nav .nav-item a:focus i, .sidebar[data-background-color="light-blue"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="light-blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="light-blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="light-blue"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #48ABF7 !important; } + .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a p, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a i, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="light-blue"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #48ABF7 !important; } + .sidebar[data-background-color="light-blue"] .nav .nav-section .text-section, .sidebar[data-background-color="light-blue"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="light-blue"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="light-blue"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="light-blue"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="light-blue"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="light-blue2"] { + background: #3697E1 !important; } + .sidebar[data-background-color="light-blue2"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="light-blue2"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="light-blue2"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="light-blue2"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="light-blue2"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="light-blue2"] .nav .nav-item a p, .sidebar[data-background-color="light-blue2"] .nav .nav-item a i, .sidebar[data-background-color="light-blue2"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="light-blue2"] .nav .nav-item a:hover, .sidebar[data-background-color="light-blue2"] .nav .nav-item a:focus, .sidebar[data-background-color="light-blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="light-blue2"] .nav .nav-item a:hover p, .sidebar[data-background-color="light-blue2"] .nav .nav-item a:hover i, .sidebar[data-background-color="light-blue2"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="light-blue2"] .nav .nav-item a:focus p, .sidebar[data-background-color="light-blue2"] .nav .nav-item a:focus i, .sidebar[data-background-color="light-blue2"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="light-blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="light-blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="light-blue2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #3697E1 !important; } + .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a p, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a i, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="light-blue2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #3697E1 !important; } + .sidebar[data-background-color="light-blue2"] .nav .nav-section .text-section, .sidebar[data-background-color="light-blue2"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="light-blue2"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="light-blue2"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="light-blue2"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="light-blue2"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="green"] { + background: #31CE36 !important; } + .sidebar[data-background-color="green"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="green"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="green"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="green"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="green"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="green"] .nav .nav-item a p, .sidebar[data-background-color="green"] .nav .nav-item a i, .sidebar[data-background-color="green"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="green"] .nav .nav-item a:hover, .sidebar[data-background-color="green"] .nav .nav-item a:focus, .sidebar[data-background-color="green"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="green"] .nav .nav-item a:hover p, .sidebar[data-background-color="green"] .nav .nav-item a:hover i, .sidebar[data-background-color="green"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="green"] .nav .nav-item a:focus p, .sidebar[data-background-color="green"] .nav .nav-item a:focus i, .sidebar[data-background-color="green"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="green"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="green"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="green"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="green"] .nav > .nav-item.active > a, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="green"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #31CE36 !important; } + .sidebar[data-background-color="green"] .nav > .nav-item.active > a p, .sidebar[data-background-color="green"] .nav > .nav-item.active > a i, .sidebar[data-background-color="green"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="green"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="green"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="green"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="green"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #31CE36 !important; } + .sidebar[data-background-color="green"] .nav .nav-section .text-section, .sidebar[data-background-color="green"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="green"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="green"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="green"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="green"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="green2"] { + background: #2BB930 !important; } + .sidebar[data-background-color="green2"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="green2"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="green2"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="green2"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="green2"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="green2"] .nav .nav-item a p, .sidebar[data-background-color="green2"] .nav .nav-item a i, .sidebar[data-background-color="green2"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="green2"] .nav .nav-item a:hover, .sidebar[data-background-color="green2"] .nav .nav-item a:focus, .sidebar[data-background-color="green2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="green2"] .nav .nav-item a:hover p, .sidebar[data-background-color="green2"] .nav .nav-item a:hover i, .sidebar[data-background-color="green2"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="green2"] .nav .nav-item a:focus p, .sidebar[data-background-color="green2"] .nav .nav-item a:focus i, .sidebar[data-background-color="green2"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="green2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="green2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="green2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="green2"] .nav > .nav-item.active > a, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #2BB930 !important; } + .sidebar[data-background-color="green2"] .nav > .nav-item.active > a p, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a i, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="green2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #2BB930 !important; } + .sidebar[data-background-color="green2"] .nav .nav-section .text-section, .sidebar[data-background-color="green2"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="green2"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="green2"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="green2"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="green2"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="orange"] { + background: #FFAD46 !important; } + .sidebar[data-background-color="orange"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="orange"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="orange"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="orange"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="orange"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="orange"] .nav .nav-item a p, .sidebar[data-background-color="orange"] .nav .nav-item a i, .sidebar[data-background-color="orange"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="orange"] .nav .nav-item a:hover, .sidebar[data-background-color="orange"] .nav .nav-item a:focus, .sidebar[data-background-color="orange"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="orange"] .nav .nav-item a:hover p, .sidebar[data-background-color="orange"] .nav .nav-item a:hover i, .sidebar[data-background-color="orange"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="orange"] .nav .nav-item a:focus p, .sidebar[data-background-color="orange"] .nav .nav-item a:focus i, .sidebar[data-background-color="orange"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="orange"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="orange"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="orange"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="orange"] .nav > .nav-item.active > a, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #FFAD46 !important; } + .sidebar[data-background-color="orange"] .nav > .nav-item.active > a p, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a i, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="orange"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #FFAD46 !important; } + .sidebar[data-background-color="orange"] .nav .nav-section .text-section, .sidebar[data-background-color="orange"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="orange"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="orange"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="orange"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="orange"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="orange2"] { + background: #FF9E27 !important; } + .sidebar[data-background-color="orange2"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="orange2"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="orange2"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="orange2"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="orange2"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="orange2"] .nav .nav-item a p, .sidebar[data-background-color="orange2"] .nav .nav-item a i, .sidebar[data-background-color="orange2"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="orange2"] .nav .nav-item a:hover, .sidebar[data-background-color="orange2"] .nav .nav-item a:focus, .sidebar[data-background-color="orange2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="orange2"] .nav .nav-item a:hover p, .sidebar[data-background-color="orange2"] .nav .nav-item a:hover i, .sidebar[data-background-color="orange2"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="orange2"] .nav .nav-item a:focus p, .sidebar[data-background-color="orange2"] .nav .nav-item a:focus i, .sidebar[data-background-color="orange2"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="orange2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="orange2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="orange2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #FF9E27 !important; } + .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a p, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a i, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="orange2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #FF9E27 !important; } + .sidebar[data-background-color="orange2"] .nav .nav-section .text-section, .sidebar[data-background-color="orange2"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="orange2"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="orange2"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="orange2"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="orange2"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="red"] { + background: #F25961 !important; } + .sidebar[data-background-color="red"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="red"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="red"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="red"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="red"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="red"] .nav .nav-item a p, .sidebar[data-background-color="red"] .nav .nav-item a i, .sidebar[data-background-color="red"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="red"] .nav .nav-item a:hover, .sidebar[data-background-color="red"] .nav .nav-item a:focus, .sidebar[data-background-color="red"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="red"] .nav .nav-item a:hover p, .sidebar[data-background-color="red"] .nav .nav-item a:hover i, .sidebar[data-background-color="red"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="red"] .nav .nav-item a:focus p, .sidebar[data-background-color="red"] .nav .nav-item a:focus i, .sidebar[data-background-color="red"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="red"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="red"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="red"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="red"] .nav > .nav-item.active > a, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="red"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #F25961 !important; } + .sidebar[data-background-color="red"] .nav > .nav-item.active > a p, .sidebar[data-background-color="red"] .nav > .nav-item.active > a i, .sidebar[data-background-color="red"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="red"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="red"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="red"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="red"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #F25961 !important; } + .sidebar[data-background-color="red"] .nav .nav-section .text-section, .sidebar[data-background-color="red"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="red"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="red"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="red"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="red"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +.sidebar[data-background-color="red2"] { + background: #EA4d56 !important; } + .sidebar[data-background-color="red2"] .user { + margin-top: 0px; + padding-top: 12.5px; + border-top: 1px solid; + border-color: rgba(255, 255, 255, 0.1) !important; } + .sidebar[data-background-color="red2"] .user .info a > span { + color: #fff; } + .sidebar[data-background-color="red2"] .user .info a > span .user-level { + color: #eaeaea; } + .sidebar[data-background-color="red2"] .user .info .caret { + border-top-color: #fff; } + .sidebar[data-background-color="red2"] .nav .nav-item a { + color: #eaeaea !important; } + .sidebar[data-background-color="red2"] .nav .nav-item a p, .sidebar[data-background-color="red2"] .nav .nav-item a i, .sidebar[data-background-color="red2"] .nav .nav-item a .caret { + color: #eaeaea !important; } + .sidebar[data-background-color="red2"] .nav .nav-item a:hover, .sidebar[data-background-color="red2"] .nav .nav-item a:focus, .sidebar[data-background-color="red2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] { + color: #fff !important; } + .sidebar[data-background-color="red2"] .nav .nav-item a:hover p, .sidebar[data-background-color="red2"] .nav .nav-item a:hover i, .sidebar[data-background-color="red2"] .nav .nav-item a:hover .caret, .sidebar[data-background-color="red2"] .nav .nav-item a:focus p, .sidebar[data-background-color="red2"] .nav .nav-item a:focus i, .sidebar[data-background-color="red2"] .nav .nav-item a:focus .caret, .sidebar[data-background-color="red2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="red2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="red2"] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret { + color: #fff !important; } + .sidebar[data-background-color="red2"] .nav > .nav-item.active > a, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:hover, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:focus, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] { + background: #fff !important; + color: #EA4d56 !important; } + .sidebar[data-background-color="red2"] .nav > .nav-item.active > a p, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a i, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a .caret, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:hover p, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:hover i, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:hover .caret, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:focus p, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:focus i, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a:focus .caret, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] p, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] i, .sidebar[data-background-color="red2"] .nav > .nav-item.active > a[data-toggle=collapse][aria-expanded=true] .caret { + color: #EA4d56 !important; } + .sidebar[data-background-color="red2"] .nav .nav-section .text-section, .sidebar[data-background-color="red2"] .nav .nav-section .sidebar-mini-icon { + color: #eaeaea; } + .sidebar[data-background-color="red2"] .nav .nav-collapse li a .sub-item:before { + background: #eaeaea; } + .sidebar[data-background-color="red2"] .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #f7f7f7; } + .sidebar[data-background-color="red2"] .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .sidebar[data-background-color="red2"] .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #dcdbdb; } + +/* Avatar */ +.avatar { + position: relative; + display: inline-block; } + +.avatar-img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; } + +.avatar-title { + width: 100%; + height: 100%; + background-color: #6861CE; + color: #fff; + display: flex; + align-items: center; + justify-content: center; } + +.avatar-online::before, .avatar-offline::before, .avatar-away::before { + position: absolute; + right: 0; + bottom: 0; + width: 25%; + height: 25%; + border-radius: 50%; + content: ''; + border: 2px solid #fff; } + +.avatar-online::before { + background-color: #31CE36; } + +.avatar-offline::before { + background-color: #97a2b1; } + +.avatar-away::before { + background-color: #FFAD46; } + +.avatar { + width: 3rem; + height: 3rem; } + .avatar .border { + border-width: 3px !important; } + .avatar .rounded { + border-radius: 6px !important; } + .avatar .avatar-title { + font-size: 18px; } + +.avatar-xs { + width: 1.65rem; + height: 1.65rem; } + .avatar-xs .border { + border-width: 2px !important; } + .avatar-xs .rounded { + border-radius: 4px !important; } + .avatar-xs .avatar-title { + font-size: 12px; } + .avatar-xs.avatar-online::before, .avatar-xs.avatar-offline::before, .avatar-xs.avatar-away::before { + border-width: 1px; } + +.avatar-sm { + width: 2.5rem; + height: 2.5rem; } + .avatar-sm .border { + border-width: 3px !important; } + .avatar-sm .rounded { + border-radius: 4px !important; } + .avatar-sm .avatar-title { + font-size: 15px; } + .avatar-sm.avatar-online::before, .avatar-sm.avatar-offline::before, .avatar-sm.avatar-away::before { + border-width: 2px; } + +.avatar-lg { + width: 3.75rem; + height: 3.75rem; } + .avatar-lg .border { + border-width: 3px !important; } + .avatar-lg .rounded { + border-radius: 8px !important; } + .avatar-lg .avatar-title { + font-size: 24px; } + .avatar-lg.avatar-online::before, .avatar-lg.avatar-offline::before, .avatar-lg.avatar-away::before { + border-width: 3px; } + +.avatar-xl { + width: 5rem; + height: 5rem; } + .avatar-xl .border { + border-width: 4px !important; } + .avatar-xl .rounded { + border-radius: 8px !important; } + .avatar-xl .avatar-title { + font-size: 28px; } + .avatar-xl.avatar-online::before, .avatar-xl.avatar-offline::before, .avatar-xl.avatar-away::before { + border-width: 4px; } + +.avatar-xxl { + width: 5.125rem; + height: 5.125rem; } + .avatar-xxl .border { + border-width: 6px !important; } + .avatar-xxl .rounded { + border-radius: 8px !important; } + .avatar-xxl .avatar-title { + font-size: 30px; } + .avatar-xxl.avatar-online::before, .avatar-xxl.avatar-offline::before, .avatar-xxl.avatar-away::before { + border-width: 4px; } + +@media (min-width: 768px) { + .avatar-xxl { + width: 8rem; + height: 8rem; } + .avatar-xxl .border { + border-width: 4px !important; } + .avatar-xxl .rounded { + border-radius: 12px !important; } + .avatar-xxl .avatar-title { + font-size: 42px; } + .avatar-xxl.avatar-online::before, .avatar-xxl.avatar-offline::before, .avatar-xxl.avatar-away::before { + border-width: 4px; } } +.avatar-group { + display: inline-flex; } + .avatar-group .avatar + .avatar { + margin-left: -.75rem; } + .avatar-group .avatar-xs + .avatar-xs { + margin-left: -.40625rem; } + .avatar-group .avatar-sm + .avatar-sm { + margin-left: -.625rem; } + .avatar-group .avatar-lg + .avatar-lg { + margin-left: -1rem; } + .avatar-group .avatar-xl + .avatar-xl { + margin-left: -1.28125rem; } + .avatar-group .avatar:hover { + z-index: 1; } + +.border-dark { + border-color: #202940 !important; } + +/* Breadcrumb */ +.breadcrumbs { + list-style: none; + display: inline; + width: auto; + border-left: 1px solid #efefef; + margin-left: 25px; + padding-left: 25px; + margin-bottom: 0px; + padding-top: 8px; + padding-bottom: 8px; + height: 100%; } + .breadcrumbs li { + display: inline-block; } + .breadcrumbs li a { + color: #575962; + font-size: 13px; } + .breadcrumbs li a i { + font-size: 16px; } + .breadcrumbs li a:hover { + text-decoration: none; } + .breadcrumbs li.separator { + padding-left: 10px; + padding-right: 10px; + font-size: 12px; } + +/* Card */ +.card, .card-light { + border-radius: 5px; + background-color: #ffffff; + margin-bottom: 30px; + -webkit-box-shadow: 2px 6px 15px 0px rgba(69, 65, 78, 0.1); + -moz-box-shadow: 2px 6px 15px 0px rgba(69, 65, 78, 0.1); + box-shadow: 2px 6px 15px 0px rgba(69, 65, 78, 0.1); + border: 0px; } + .card .card-header, .card-light .card-header { + padding: 1rem 1.25rem; + background-color: transparent; + border-bottom: 1px solid #ebecec !important; } + .card .card-header:first-child, .card-light .card-header:first-child { + border-radius: 0px; } + .card .card-header .card-head-row, .card-light .card-header .card-head-row { + display: flex; + align-items: center; } + .card .card-header .card-head-row .card-tools, .card-light .card-header .card-head-row .card-tools { + margin-left: auto; + float: right; + padding-left: 15px; } + .card .separator-solid, .card-light .separator-solid { + border-top: 1px solid #ebecec; + margin: 15px 0; } + .card .separator-dashed, .card-light .separator-dashed { + border-top: 1px dashed #ebecec; + margin: 15px 0; } + .card .separator-dot, .card-light .separator-dot { + border-top: 1px dotted #ebecec; + margin: 15px 0; } + .card .full-width-separator, .card-light .full-width-separator { + margin: 15px -20px 15px; } + .card .b-b1, .card-light .b-b1 { + border-bottom: 1px solid rgba(255, 255, 255, 0.3); } + .card .card-body, .card-light .card-body { + padding: 1.25rem; } + .card .card-footer, .card-light .card-footer { + background-color: transparent; + line-height: 30px; + border-top: 1px solid #ebecec !important; + font-size: 13px; } + .card .pull-in, .card-light .pull-in { + margin-left: -1.25rem; + margin-right: -1.25rem; } + .card .pull-in.sparkline-fix, .card-light .pull-in.sparkline-fix { + margin-left: -1.35rem; + margin-right: -1.35rem; + margin-bottom: -3px; } + .card .chart-as-background, .card-light .chart-as-background { + position: absolute; + bottom: 0; + width: calc(100% + 2px); } + .card .card-action, .card-light .card-action { + padding: 30px; + background-color: transparent; + line-height: 30px; + border-top: 1px solid #ebecec !important; + font-size: 14px; } + .card .card-footer hr, .card-light .card-footer hr { + margin-top: 5px; + margin-bottom: 5px; } + .card .card-footer .legend, .card-light .card-footer .legend { + display: inline-block; } + +@media screen and (max-width: 476px) { + .card .card-header .card-head-row:not(.card-tools-still-right) { + flex-direction: column; + align-items: unset; } + .card .card-header .card-head-row:not(.card-tools-still-right) .card-tools { + margin-left: 0px; + float: left; + padding-left: 0px; + padding-top: 10px; } } +.card.full-height { + height: calc(100% - 30px); } + +.card-space { + padding: 0 30px; } + .card-space > .card-header, .card-space > .card-body, .card-space > .card-footer, .card-space > .card-action { + padding-left: 0px !important; + padding-right: 0px !important; } + +.card-with-nav .card-header { + border-bottom: 0px !important; + padding-top: 0px !important; + padding-bottom: 0px !important; } +.card-with-nav .card-body { + padding: 15px 25px !important; } + +.card-list { + padding: 10px 0; } + .card-list .item-list { + display: flex; + flex-direction: row; + padding: 10px 0; + align-items: center; } + .card-list .item-list .info-user { + flex: 1; } + .card-list .item-list .info-user .username, .card-list .item-list .info-user a.username { + color: #1572E8; + font-size: 13px; + margin-bottom: 5px; + font-weight: 400; } + .card-list .item-list .info-user .status { + font-size: 11px; + color: #7d7b7b; } + +.card-title { + margin: 0; + color: #575962; + font-size: 20px; + font-weight: 400; + line-height: 1.6; } + .card-title a, .card-title a:hover, .card-title a:focus { + color: #575962; + text-decoration: none; } + +.card-sub { + display: block; + margin: 5px 0 10px 0; + font-size: .9rem; + background: #f7f8fa; + color: #575962; + padding: 0.85rem 1.5rem; + border-radius: 4px; + line-height: 1.82; } + +.card-category { + margin-top: 8px; + font-size: 14px; + color: #8d9498; + margin-bottom: 0px; + word-break: normal; } + +label { + font-size: 14px; + font-weight: 400; + color: #8d9498; + margin-bottom: 0px; } + +.card-transparent { + background: transparent !important; + box-shadow: none; + border-color: transparent !important; } + +/* Card Stats */ +.card-stats .card-body { + padding: 15px !important; } +.card-stats .card-title { + margin-bottom: 0px !important; } +.card-stats .card-category { + margin-top: 0px; } +.card-stats .col-icon { + width: 65px; + height: 65px; + margin-left: 15px; } +.card-stats .icon-big { + width: 100%; + height: 100%; + font-size: 2.2em; + min-height: 64px; + display: flex; + align-items: center; + justify-content: center; } + .card-stats .icon-big.icon-default, .card-stats .icon-big.icon-primary, .card-stats .icon-big.icon-secondary, .card-stats .icon-big.icon-success, .card-stats .icon-big.icon-info, .card-stats .icon-big.icon-warning, .card-stats .icon-big.icon-danger { + border-radius: 5px; } + .card-stats .icon-big.icon-default i, .card-stats .icon-big.icon-primary i, .card-stats .icon-big.icon-secondary i, .card-stats .icon-big.icon-success i, .card-stats .icon-big.icon-info i, .card-stats .icon-big.icon-warning i, .card-stats .icon-big.icon-danger i { + color: #ffffff !important; } + .card-stats .icon-big.icon-default { + background: #1a2035; } + .card-stats .icon-big.icon-primary { + background: #1572E8; } + .card-stats .icon-big.icon-secondary { + background: #6861CE; } + .card-stats .icon-big.icon-success { + background: #31CE36; } + .card-stats .icon-big.icon-warning { + background: #FFAD46; } + .card-stats .icon-big.icon-info { + background: #48ABF7; } + .card-stats .icon-big.icon-danger { + background: #F25961; } + .card-stats .icon-big.round { + border-radius: 50% !important; } +.card-stats .col-stats { + align-items: center; + display: flex; + padding-left: 15px; } + +/* Card Task */ +.card-tasks .table { + margin-bottom: 0px; } + .card-tasks .table .form-check { + padding: 0 0 0 0.75rem !important; } + .card-tasks .table .form-check label { + margin-bottom: 0px !important; } + .card-tasks .table tbody td:first-child, .card-tasks .table thead th:first-child { + padding-left: 15px; + padding-right: 15px; } + .card-tasks .table tbody td:last-child, .card-tasks .table thead th:last-child { + padding-right: 15px; } + .card-tasks .table tbody tr:last-child td { + border-bottom-width: 0px !important; } +.card-tasks .card-body { + padding-top: 0px; + padding-bottom: 0px; } + .card-tasks .card-body .table td { + font-size: 13px; } + .card-tasks .card-body .table td .btn { + font-size: 15px; + opacity: 0.7; + transition: all .3s; } + .card-tasks .card-body .table td:hover .btn { + opacity: 1; } +.card-tasks .form-button-action { + display: block !important; } + +/* Card States */ +.card-dark, .card-default, .card-primary, .card-secondary, .card-info, .card-success, .card-warning, .card-danger { + color: #ffffff; + border: 0px; } + +.card-dark .card-header, .card-default .card-header, .card-primary .card-header, .card-secondary .card-header, .card-info .card-header, .card-success .card-header, .card-warning .card-header, .card-danger .card-header { + border-bottom: transparent !important; } + +.card-dark .card-category, .card-default .card-category, .card-primary .card-category, .card-secondary .card-category, .card-info .card-category, .card-success .card-category, .card-warning .card-category, .card-danger .card-category, .card-dark .card-title, .card-default .card-title, .card-primary .card-title, .card-secondary .card-title, .card-info .card-title, .card-success .card-title, .card-warning .card-title, .card-danger .card-title, .card-dark label, .card-default label, .card-primary label, .card-info label, .card-success label, .card-warning label, .card-danger label { + color: #ffffff; } + +.card-dark .icon-big > i, .card-default .icon-big > i, .card-primary .icon-big > i, .card-secondary .icon-big > i, .card-info .icon-big > i, .card-success .icon-big > i, .card-warning .icon-big > i, .card-danger .icon-big > i { + color: #ffffff !important; } + +.card-dark .card-footer, .card-default .card-footer, .card-primary .card-footer, .card-secondary .card-footer, .card-info .card-footer, .card-success .card-footer, .card-warning .card-footer, .card-danger .card-footer { + border-top: transparent !important; } + +.card-default { + background: #1a2035 !important; } + +.card-primary { + background: #1572E8 !important; } + +.card-secondary { + background: #6861CE !important; } + +.card-info { + background: #48ABF7 !important; } + +.card-success { + background: #31CE36 !important; } + +.card-warning { + background: #FFAD46 !important; } + +.card-danger { + background: #F25961 !important; } + +.card-round { + border-radius: 5px; } + +/* Progress Card */ +.progress-card { + margin-bottom: 25px; } + .progress-card .progress-status { + display: flex; + margin-bottom: 10px; + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; } + +/* Card Posts */ +.card-post .info-post .username { + margin-bottom: 0px; + font-weight: 600; } +.card-post .info-post .date { + margin-bottom: 0px; } + +/* Card Pricing */ +.card-pricing { + padding: 20px 5px; + text-align: center; + border-radius: 5px; } + .card-pricing .card-header { + border-bottom: 0px !important; } + .card-pricing .card-footer { + border-top: 0px !important; + padding: 15px 15px 10px 15px; } + .card-pricing .card-title { + font-weight: 400; + font-size: 20px; } + .card-pricing .card-price .price { + font-size: 36px; + font-weight: 400; } + .card-pricing .card-price .text { + font-size: 18px; + font-weight: 400; + color: #d1d7e3; } + .card-pricing .specification-list { + list-style: none; + padding-left: 0px; } + .card-pricing .specification-list li { + padding: 8px 0 12px; + border-bottom: 1px solid #eee; + text-align: left; + font-size: 12px; + margin-bottom: 5px; } + .card-pricing .specification-list li .name-specification { + color: #83848a; } + .card-pricing .specification-list li .status-specification { + margin-left: auto; + float: right; + font-weight: 400; } + .card-pricing.card-pricing-focus { + padding: 40px 5px; } + .card-pricing.card-default .name-specification, .card-pricing.card-primary .name-specification, .card-pricing.card-secondary .name-specification, .card-pricing.card-info .name-specification, .card-pricing.card-success .name-specification, .card-pricing.card-danger .name-specification, .card-pricing.card-warning .name-specification { + color: #ffffff !important; } + .card-pricing.card-primary .specification-list li { + border-color: #2f8bff !important; } + .card-pricing.card-primary .btn-light { + color: #1572E8 !important; } + .card-pricing.card-success .specification-list li { + border-color: #64e069 !important; } + .card-pricing.card-success .btn-light { + color: #31CE36 !important; } + .card-pricing.card-secondary .specification-list li { + border-color: #7f77dc !important; } + .card-pricing.card-secondary .btn-light { + color: #6861CE !important; } + .card-pricing.card-default .specification-list li { + border-color: #6f8996 !important; } + .card-pricing.card-default .btn-light { + color: #1a2035 !important; } + .card-pricing.card-info .specification-list li { + border-color: #11c0e4 !important; } + .card-pricing.card-info .btn-light { + color: #48ABF7 !important; } + .card-pricing.card-danger .specification-list li { + border-color: #ff6972 !important; } + .card-pricing.card-danger .btn-light { + color: #F25961 !important; } + .card-pricing.card-warning .specification-list li { + border-color: #ffbc67 !important; } + .card-pricing.card-warning .btn-light { + color: #FFAD46 !important; } + +.card-pricing2 { + padding-bottom: 10px; + background: #fff !important; + border-bottom: 7px solid; + text-align: center; + overflow: hidden; + position: relative; + border-radius: 5px; + -webkit-box-shadow: 0px 1px 15px 1px rgba(69, 65, 78, 0.08); + -moz-box-shadow: 0px 1px 15px 1px rgba(69, 65, 78, 0.08); + box-shadow: 0px 1px 15px 1px rgba(69, 65, 78, 0.08); } + .card-pricing2:before { + content: ""; + width: 100%; + height: 350px; + position: absolute; + top: -150px; + left: 0; + transform: skewY(-20deg); } + .card-pricing2 .price-value:after, .card-pricing2 .price-value:before { + content: ""; + left: 50%; + transform: translateX(-50%) scaleY(0.5) rotate(45deg); } + .card-pricing2 .value:after, .card-pricing2 .value:before { + content: ""; + left: 50%; + transform: translateX(-50%) scaleY(0.5) rotate(45deg); } + .card-pricing2 .pricing-header { + padding: 20px 20px 60px; + text-align: left; + position: relative; } + .card-pricing2 .sub-title { + display: block; + font-size: 16px; } + .card-pricing2 .value { + background: #fff; } + .card-pricing2 .price-value { + display: inline-block; + width: 170px; + height: 110px; + padding: 15px; + border: 2px solid; + border-top: none; + border-bottom: none; + position: relative; } + .card-pricing2 .price-value:after, .card-pricing2 .price-value:before { + width: 121px; + height: 121px; + border: 3px solid; + border-right: none; + border-bottom: none; + position: absolute; + top: -60px; } + .card-pricing2 .price-value:after { + border-top: none; + border-left: none; + border-bottom: 3px solid; + border-right: 3px solid; + top: auto; + bottom: -60px; } + .card-pricing2 .value { + width: 100%; + height: 100%; + border: 2px solid; + border-top: none; + border-bottom: none; + z-index: 1; + position: relative; } + .card-pricing2 .value:after, .card-pricing2 .value:before { + width: 97px; + height: 97px; + background: #fff; + border: 3px solid; + border-bottom: none; + border-right: none; + position: absolute; + top: -48px; + z-index: -1; } + .card-pricing2 .value:after { + border-right: 3px solid; + border-bottom: 3px solid; + border-top: none; + border-left: none; + top: auto; + bottom: -48px; } + .card-pricing2 .currency { + display: inline-block; + font-size: 30px; + margin-top: 7px; + vertical-align: top; } + .card-pricing2 .amount { + display: inline-block; + font-size: 40px; + font-weight: 600; + line-height: 65px; } + .card-pricing2 .amount span { + display: inline-block; + font-size: 30px; + font-weight: 400; + vertical-align: top; + margin-top: -7px; } + .card-pricing2 .month { + display: block; + font-size: 16px; + line-height: 0; } + .card-pricing2 .pricing-content { + padding: 50px 0 0 80px; + margin-bottom: 20px; + list-style: none; + text-align: left; + transition: all .3s ease 0s; } + .card-pricing2 .pricing-content li { + padding: 7px 0; + font-size: 13px; + color: grey; + position: relative; } + .card-pricing2 .pricing-content li.disable:before, .card-pricing2 .pricing-content li:before { + content: "\f00c"; + font-family: 'Font Awesome 5 Solid'; + font-weight: 900; + width: 20px; + height: 20px; + line-height: 20px; + border-radius: 50%; + background: #98c458; + text-align: center; + color: #fff; + position: absolute; + left: -50px; + font-size: 9px; } + .card-pricing2 .pricing-content li.disable:before { + content: "\f00d"; + background: #fe6c6c; } + .card-pricing2.card-default { + border-bottom-color: #1a2035; } + .card-pricing2.card-default .price-value:before, .card-pricing2.card-default .value:before { + border-left-color: #1a2035; + border-top-color: #1a2035; } + .card-pricing2.card-default .price-value, .card-pricing2.card-default .value { + border-right-color: #1a2035; } + .card-pricing2.card-default .price-value:after, .card-pricing2.card-default .value:after { + border-right-color: #1a2035; } + .card-pricing2.card-default .price-value:after, .card-pricing2.card-default .value:after { + border-bottom-color: #1a2035; } + .card-pricing2.card-default .value { + color: #1a2035; } + .card-pricing2.card-default:before { + background: #1a2035; } + .card-pricing2.card-default .price-value, .card-pricing2.card-default .value { + border-left-color: #1a2035; } + .card-pricing2.card-primary { + border-bottom-color: #1572E8; } + .card-pricing2.card-primary .price-value:before, .card-pricing2.card-primary .value:before { + border-left-color: #1572E8; + border-top-color: #1572E8; } + .card-pricing2.card-primary .price-value, .card-pricing2.card-primary .value { + border-right-color: #1572E8; } + .card-pricing2.card-primary .price-value:after, .card-pricing2.card-primary .value:after { + border-right-color: #1572E8; } + .card-pricing2.card-primary .price-value:after, .card-pricing2.card-primary .value:after { + border-bottom-color: #1572E8; } + .card-pricing2.card-primary .value { + color: #1572E8; } + .card-pricing2.card-primary:before { + background: #1572E8; } + .card-pricing2.card-primary .price-value, .card-pricing2.card-primary .value { + border-left-color: #1572E8; } + .card-pricing2.card-secondary { + border-bottom-color: #6861CE; } + .card-pricing2.card-secondary .price-value:before, .card-pricing2.card-secondary .value:before { + border-left-color: #6861CE; + border-top-color: #6861CE; } + .card-pricing2.card-secondary .price-value, .card-pricing2.card-secondary .value { + border-right-color: #6861CE; } + .card-pricing2.card-secondary .price-value:after, .card-pricing2.card-secondary .value:after { + border-right-color: #6861CE; } + .card-pricing2.card-secondary .price-value:after, .card-pricing2.card-secondary .value:after { + border-bottom-color: #6861CE; } + .card-pricing2.card-secondary .value { + color: #6861CE; } + .card-pricing2.card-secondary:before { + background: #6861CE; } + .card-pricing2.card-secondary .price-value, .card-pricing2.card-secondary .value { + border-left-color: #6861CE; } + .card-pricing2.card-info { + border-bottom-color: #48ABF7; } + .card-pricing2.card-info .price-value:before, .card-pricing2.card-info .value:before { + border-left-color: #48ABF7; + border-top-color: #48ABF7; } + .card-pricing2.card-info .price-value, .card-pricing2.card-info .value { + border-right-color: #48ABF7; } + .card-pricing2.card-info .price-value:after, .card-pricing2.card-info .value:after { + border-right-color: #48ABF7; } + .card-pricing2.card-info .price-value:after, .card-pricing2.card-info .value:after { + border-bottom-color: #48ABF7; } + .card-pricing2.card-info .value { + color: #48ABF7; } + .card-pricing2.card-info:before { + background: #48ABF7; } + .card-pricing2.card-info .price-value, .card-pricing2.card-info .value { + border-left-color: #48ABF7; } + .card-pricing2.card-success { + border-bottom-color: #31CE36; } + .card-pricing2.card-success .price-value:before, .card-pricing2.card-success .value:before { + border-left-color: #31CE36; + border-top-color: #31CE36; } + .card-pricing2.card-success .price-value, .card-pricing2.card-success .value { + border-right-color: #31CE36; } + .card-pricing2.card-success .price-value:after, .card-pricing2.card-success .value:after { + border-right-color: #31CE36; } + .card-pricing2.card-success .price-value:after, .card-pricing2.card-success .value:after { + border-bottom-color: #31CE36; } + .card-pricing2.card-success .value { + color: #31CE36; } + .card-pricing2.card-success:before { + background: #31CE36; } + .card-pricing2.card-success .price-value, .card-pricing2.card-success .value { + border-left-color: #31CE36; } + .card-pricing2.card-warning { + border-bottom-color: #FFAD46; } + .card-pricing2.card-warning .price-value:before, .card-pricing2.card-warning .value:before { + border-left-color: #FFAD46; + border-top-color: #FFAD46; } + .card-pricing2.card-warning .price-value, .card-pricing2.card-warning .value { + border-right-color: #FFAD46; } + .card-pricing2.card-warning .price-value:after, .card-pricing2.card-warning .value:after { + border-right-color: #FFAD46; } + .card-pricing2.card-warning .price-value:after, .card-pricing2.card-warning .value:after { + border-bottom-color: #FFAD46; } + .card-pricing2.card-warning .value { + color: #FFAD46; } + .card-pricing2.card-warning:before { + background: #FFAD46; } + .card-pricing2.card-warning .price-value, .card-pricing2.card-warning .value { + border-left-color: #FFAD46; } + .card-pricing2.card-danger { + border-bottom-color: #F25961; } + .card-pricing2.card-danger .price-value:before, .card-pricing2.card-danger .value:before { + border-left-color: #F25961; + border-top-color: #F25961; } + .card-pricing2.card-danger .price-value, .card-pricing2.card-danger .value { + border-right-color: #F25961; } + .card-pricing2.card-danger .price-value:after, .card-pricing2.card-danger .value:after { + border-right-color: #F25961; } + .card-pricing2.card-danger .price-value:after, .card-pricing2.card-danger .value:after { + border-bottom-color: #F25961; } + .card-pricing2.card-danger .value { + color: #F25961; } + .card-pricing2.card-danger:before { + background: #F25961; } + .card-pricing2.card-danger .price-value, .card-pricing2.card-danger .value { + border-left-color: #F25961; } + +/* Card Product */ +.row-cardProduct { + padding: 0 5px; + white-space: nowrap; + overflow-x: auto; + display: block !important; + margin-right: -2rem; + width: unset !important; } + +.col-cardProduct { + width: 225px; + padding: 0 10px; + display: inline-block; } + +.card-product { + background: #fff; + border-radius: 5px; + overflow: hidden; + box-shadow: 0px 7px 15px rgba(0, 0, 0, 0.12); + margin-bottom: 15px; } + .card-product .product-summary { + padding: 15px; } + +@media screen and (max-width: 768px) { + .col-cardProduct { + width: 175px; } + + .card-product .title-product { + font-size: 14px; } + .card-product .price-product { + font-size: 18px; } } +/* Card Shadow */ +.skew-shadow { + position: relative; + overflow: hidden; } + .skew-shadow:before { + content: ''; + position: absolute; + background: rgba(255, 255, 255, 0.1); + width: 50%; + min-width: 150px; + height: 100%; + top: 0; + right: -25%; + transform: skewX(-32.5deg); } + +.bubble-shadow { + position: relative; + overflow: hidden; } + .bubble-shadow:before { + position: absolute; + top: -10%; + right: -140px; + width: 300px; + height: 300px; + content: ""; + border-radius: 50%; + background: rgba(255, 255, 255, 0.05); } + .bubble-shadow:after { + position: absolute; + top: -65px; + right: 80px; + width: 150px; + height: 150px; + content: ""; + border-radius: 50%; + background: rgba(255, 255, 255, 0.05); } + +.curves-shadow { + position: relative; + overflow: hidden; } + .curves-shadow:before { + content: ''; + position: absolute; + background: url(../img/img-shadow.png); + background-size: cover; + width: 100%; + height: 100%; + top: 0; + left: 0; } + +@media only screen and (max-width: 990px) { + .card-pricing2 { + margin-bottom: 30px; } } +@media only screen and (max-width: 767px) { + .card-pricing2:before { + transform: skewY(-15deg); } } +/* Card Annoucement */ +.card-annoucement .card-body { + padding: 50px 25px; } +.card-annoucement .card-opening { + font-size: 20px; + font-weight: 400; + letter-spacing: 0.01em; } +.card-annoucement .card-desc { + padding: 15px 0; + font-size: 16px; + line-height: 1.65; + font-weight: 300; } +.card-annoucement.card-primary .btn-light { + color: #1572E8 !important; } +.card-annoucement.card-success .btn-light { + color: #31CE36 !important; } +.card-annoucement.card-secondary .btn-light { + color: #6861CE !important; } +.card-annoucement.card-default .btn-light { + color: #1a2035 !important; } +.card-annoucement.card-info .btn-light { + color: #48ABF7 !important; } +.card-annoucement.card-danger .btn-light { + color: #F25961 !important; } +.card-annoucement.card-warning .btn-light { + color: #FFAD46 !important; } + +/* Card Profile */ +.card-profile { + color: #575962; } + .card-profile .profile-picture { + text-align: center; + position: absolute; + margin: 0 auto; + left: 0; + right: 0; + bottom: -41px; + width: 100%; + box-sizing: border-box; } + .card-profile .user-profile .name { + font-size: 20px; + font-weight: 400; + margin-bottom: 5px; } + .card-profile .user-profile .job { + color: #83848a; + margin-bottom: 5px; } + .card-profile .user-profile .desc { + color: #bbb; + margin-bottom: 15px; } + .card-profile .user-profile .social-media { + margin-bottom: 20px; } + .card-profile .user-profile .social-media .btn { + padding: 5px !important; } + .card-profile .user-profile .social-media .btn i { + font-size: 22px !important; } + .card-profile .user-stats { + margin-bottom: 10px; } + .card-profile .user-stats [class^="col"] { + border-right: 1px solid #ebebeb; } + .card-profile .user-stats [class^="col"]:last-child { + border-right: 0px; } + .card-profile .user-stats .number { + font-weight: 400; + font-size: 15px; } + .card-profile .user-stats .title { + color: #7d7b7b; } + .card-profile .card-header { + border-bottom: 0px; + height: 100px; + position: relative; } + .card-profile .card-body { + padding-top: 60px; } + .card-profile .card-footer { + border-top: 0px; } + .card-profile.card-secondary .card-header { + background: #6861CE; } + +/* Row Card No Padding */ +.row-card-no-pd { + border-radius: 5px; + margin-left: 0; + margin-right: 0; + background: #ffffff; + margin-bottom: 30px; + padding-top: 15px; + padding-bottom: 15px; + position: relative; + -webkit-box-shadow: 2px 6px 15px 0px rgba(69, 65, 78, 0.1); + -moz-box-shadow: 2px 6px 15px 0px rgba(69, 65, 78, 0.1); + box-shadow: 2px 6px 15px 0px rgba(69, 65, 78, 0.1); + border: 0px; } + .row-card-no-pd .card { + margin-bottom: 0px; + border-width: 0px; + box-shadow: none; + position: unset; } + .row-card-no-pd .card .card-header { + padding-left: 0px !important; + padding-top: 0px !important; + padding-right: 0px !important; } + .row-card-no-pd [class*=col] .card:before { + position: absolute; + height: calc(100%); + width: 1px; + background: #eee; + content: ''; + right: 0px; } + .row-card-no-pd [class*=col]:last-child .card:before { + width: 0px; } + +/* Accordion */ +.accordion .card { + border-radius: 5px !important; + background: #f7f7f7 !important; + color: #575962 !important; + border: 0; + box-shadow: none; } + .accordion .card .span-icon { + font-size: 22px; + padding-left: 15px; + padding-right: 15px; } + .accordion .card > .card-header { + border: 0px !important; + display: flex; + flex-direction: row; + align-items: center; + cursor: pointer; + border-radius: 0 !important; } + .accordion .card > .card-header > .span-mode { + margin-left: auto; } + .accordion .card > .card-header > .span-mode:before { + content: "\f068" !important; + font-family: 'Font Awesome 5 Solid'; + font-weight: 900; + font-size: 16px; } + .accordion .card > .card-header.collapsed > .span-mode:before { + content: "\f067" !important; } + .accordion .card .card-body { + border-top: 1px solid #ebebeb; + padding: 30px; } +.accordion.accordion-default .card .card-header, .accordion.accordion-default .card .card-header .btn-link, .accordion.accordion-primary .card .card-header, .accordion.accordion-primary .card .card-header .btn-link, .accordion.accordion-secondary .card .card-header, .accordion.accordion-secondary .card .card-header .btn-link, .accordion.accordion-info .card .card-header, .accordion.accordion-info .card .card-header .btn-link, .accordion.accordion-success .card .card-header, .accordion.accordion-success .card .card-header .btn-link, .accordion.accordion-warning .card .card-header, .accordion.accordion-warning .card .card-header .btn-link, .accordion.accordion-danger .card .card-header, .accordion.accordion-danger .card .card-header .btn-link { + font-size: 14px; } +.accordion.accordion-default .card .card-header { + color: #1a2035; } + .accordion.accordion-default .card .card-header .btn-link { + color: #1a2035 !important; } +.accordion.accordion-primary .card .card-header { + color: #1572E8; } + .accordion.accordion-primary .card .card-header .btn-link { + color: #1572E8 !important; } +.accordion.accordion-secondary .card .card-header { + color: #6861CE; } + .accordion.accordion-secondary .card .card-header .btn-link { + color: #6861CE !important; } +.accordion.accordion-info .card .card-header { + color: #48ABF7; } + .accordion.accordion-info .card .card-header .btn-link { + color: #48ABF7 !important; } +.accordion.accordion-success .card .card-header { + color: #31CE36; } + .accordion.accordion-success .card .card-header .btn-link { + color: #31CE36 !important; } +.accordion.accordion-warning .card .card-header { + color: #FFAD46; } + .accordion.accordion-warning .card .card-header .btn-link { + color: #FFAD46 !important; } +.accordion.accordion-danger .card .card-header { + color: #F25961; } + .accordion.accordion-danger .card .card-header .btn-link { + color: #F25961 !important; } + +.border-transparent { + border-color: transparent !important; } + +.gutters-0 { + margin-right: 0; + margin-left: 0; } + .gutters-0 > .col, .gutters-0 > [class*="col-"] { + padding-right: 0; + padding-left: 0; } + .gutters-0 .card { + margin-bottom: 0; } + +.gutters-xs { + margin-right: -0.25rem; + margin-left: -0.25rem; } + .gutters-xs > .col, .gutters-xs > [class*="col-"] { + padding-right: 0.25rem; + padding-left: 0.25rem; } + .gutters-xs .card { + margin-bottom: 0.5rem; } + +.gutters-sm { + margin-right: -0.5rem; + margin-left: -0.5rem; } + .gutters-sm > .col, .gutters-sm > [class*="col-"] { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .gutters-sm .card { + margin-bottom: 1rem; } + +.gutters-lg { + margin-right: -1rem; + margin-left: -1rem; } + .gutters-lg > .col, .gutters-lg > [class*="col-"] { + padding-right: 1rem; + padding-left: 1rem; } + .gutters-lg .card { + margin-bottom: 2rem; } + +.gutters-xl { + margin-right: -1.5rem; + margin-left: -1.5rem; } + .gutters-xl > .col, .gutters-xl > [class*="col-"] { + padding-right: 1.5rem; + padding-left: 1.5rem; } + .gutters-xl .card { + margin-bottom: 3rem; } + +.stamp { + color: #fff; + background: #6861CE; + display: inline-block; + min-width: 2rem; + height: 2rem; + padding: 0 .25rem; + line-height: 2rem; + text-align: center; + border-radius: 3px; + font-weight: 600; } + +.stamp-md { + min-width: 2.5rem; + height: 2.5rem; + line-height: 2.5rem; } + +/* Form */ +.form-control { + font-size: 14px; + border-color: #ebedf2; + padding: .6rem 1rem; + height: inherit !important; } + .form-control:focus { + border-color: #3e93ff; } + +/* Form Control Sizes */ +.form-control-lg, .input-group-lg > .form-control, .input-group-lg > .input-group-append > .btn, .input-group-lg > .input-group-append > .input-group-text, .input-group-lg > .input-group-prepend > .btn, .input-group-lg > .input-group-prepend > .input-group-text { + padding: .5rem 1rem !important; + font-size: 1.25rem !important; } + +.form-control-sm, .input-group-sm > .form-control, .input-group-sm > .input-group-append > .btn, .input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-prepend > .input-group-text { + padding: .25rem .5rem !important; + font-size: .875rem !important; + line-height: 1.5; } + +.form-control::-webkit-input-placeholder { + color: inherit; + opacity: 0.7; } + +.form-control:-moz-placeholder { + color: inherit; + opacity: 0.7; } + +.form-control::-moz-placeholder { + color: inherit; + opacity: 0.7; } + +.form-control:-ms-input-placeholder { + color: inherit; + opacity: 0.7; } + +.form-control::-ms-input-placeholder { + color: inherit; + opacity: 0.7; } + +.input-group-text { + border-color: #ebedf2 !important; } + +.form-button-action { + display: inline-flex; } + +.form-check-label, .form-radio-label { + margin-right: 15px; } + +/* CheckBox Input */ +.select-all-checkbox + .form-check-sign:before { + background: #ccc !important; + border-color: #ccc !important; } + +.form-check [type="checkbox"]:not(:checked), .form-check [type="checkbox"]:checked { + position: absolute; + left: -9999px; } +.form-check [type="checkbox"]:not(:checked) + .form-check-sign, .form-check [type="checkbox"]:checked + .form-check-sign, .form-check [type="checkbox"] + .form-check-sign { + position: relative; + padding-left: 2em; + color: #575962; + cursor: pointer; } +.form-check [type="checkbox"]:not(:checked) + .form-check-sign:before, .form-check [type="checkbox"]:checked + .form-check-sign:before, .form-check [type="checkbox"] + .form-check-sign:before { + content: ''; + position: absolute; + left: 0; + top: 1px; + width: 16px; + height: 16px; + border: 1px solid #ccc; + background: transparent; + border-radius: 4px; } +.form-check [type="checkbox"]:not(:checked) + .form-check-sign:after, .form-check [type="checkbox"]:checked + .form-check-sign:after, .form-check [type="checkbox"] + .form-check-sign:after { + content: "\f00c"; + display: inline-block; + position: absolute; + top: -1px; + left: 2px; + width: 18px; + height: 18px; + text-align: center; + font-size: 1.3em; + line-height: 0.8; + color: #1572E8; + transition: all .2s; + font-family: 'Font Awesome 5 Solid'; } +.form-check [type="checkbox"]:not(:checked) + .form-check-sign:after { + opacity: 0; + transform: scale(0); } +.form-check [type="checkbox"]:checked + .form-check-sign { + font-weight: 400; } + .form-check [type="checkbox"]:checked + .form-check-sign:after { + opacity: 1; + transform: scale(1); } +.form-check [type="checkbox"]:disabled:not(:checked) + .form-check-sign:before { + box-shadow: none; + border-color: #bbb; + background-color: #ddd; } +.form-check [type="checkbox"]:disabled:checked + .form-check-sign:before { + box-shadow: none; + border-color: #bbb; + background-color: #ddd; } +.form-check [type="checkbox"]:disabled:checked + .form-check-sign:after { + color: #999; } +.form-check [type="checkbox"]:disabled + .form-check-sign { + color: #aaa; } +.form-check [type="checkbox"]:checked:focus + .form-check-sign:before, .form-check [type="checkbox"]:not(:checked):focus + .form-check-sign:before { + border: 1px solid #ccc; } + +.form-check-sign:hover:before { + border: 1px solid #ccc !important; } + +.form-check { + padding-left: 0.75rem; } + +.form-check-input { + position: relative; + margin-top: .3rem; } + +/* Radio Input */ +.form-radio [type="radio"]:not(:checked), .form-radio [type="radio"]:checked { + position: absolute; + left: -9999px; } +.form-radio [type="radio"]:not(:checked) + .form-radio-sign, .form-radio [type="radio"]:checked + .form-radio-sign { + color: #575962; + position: relative; + padding-left: 2em; + cursor: pointer; + line-height: 22px; + font-weight: 400; } +.form-radio [type="radio"]:not(:checked) + .form-radio-sign:before { + content: "\f18a"; + font-size: 22px; + font-family: LineAwesome; + position: absolute; + left: 0; + top: auto; + background: transparent; + line-height: 1; + color: #bbb; } +.form-radio [type="radio"]:checked + .form-radio-sign:before { + content: "\f18a"; + font-size: 22px; + font-family: LineAwesome; + position: absolute; + left: 0; + top: auto; + background: transparent; + line-height: 1; + display: none; } +.form-radio [type="radio"]:not(:checked) + .form-radio-sign:after, .form-radio [type="radio"]:checked + .form-radio-sign:after { + content: "\f1bc"; + position: absolute; + left: 0px; + top: auto; + text-align: center; + font-size: 22px; + color: #4D7CFE; + transition: all .2s; + line-height: 1; + font-family: LineAwesome; } +.form-radio [type="radio"]:not(:checked) + .form-radio-sign:after { + opacity: 0; + transform: scale(0); } +.form-radio [type="radio"]:checked + .form-radio-sign { + font-weight: 400; } + .form-radio [type="radio"]:checked + .form-radio-sign:after { + opacity: 1; + transform: scale(1); } +.form-radio [type="radio"]:disabled:not(:checked) + .form-radio-sign:before { + box-shadow: none; + opacity: 0.65; } +.form-radio [type="radio"]:disabled:checked + .form-radio-sign:before { + box-shadow: none; + opacity: 0.65; } +.form-radio [type="radio"]:disabled:checked + .form-radio-sign:after { + opacity: 0.65; } +.form-radio [type="radio"]:disabled + .form-radio-sign { + color: #aaa; + opacity: 0.65; } +.form-radio [type="radio"]:checked:focus + .form-radio-sign:before, .form-radio [type="radio"]:not(:checked):focus + .form-radio-sign:before { + border: 1px solid #ccc; } + +.form-radio { + padding-left: 0.75rem; } + +.form-radio-input { + position: relative; + margin-top: .3rem; } + +/* Custom Checkbox */ +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { + background-color: #1572E8; } +.custom-checkbox.checkbox-default .custom-control-input:checked ~ .custom-control-label::before { + background-color: #1a2035; } +.custom-checkbox.checkbox-primary .custom-control-input:checked ~ .custom-control-label::before { + background-color: #1572E8; } +.custom-checkbox.checkbox-secondary .custom-control-input:checked ~ .custom-control-label::before { + background-color: #6861CE; } +.custom-checkbox.checkbox-info .custom-control-input:checked ~ .custom-control-label::before { + background-color: #48ABF7; } +.custom-checkbox.checkbox-success .custom-control-input:checked ~ .custom-control-label::before { + background-color: #31CE36; } +.custom-checkbox.checkbox-warning .custom-control-input:checked ~ .custom-control-label::before { + background-color: #FFAD46; } +.custom-checkbox.checkbox-danger .custom-control-input:checked ~ .custom-control-label::before { + background-color: #F25961; } + +/* Label */ +.col-form-label { + line-height: 1.8; } + +.required-label { + color: red; } + +.label-align-left { + text-align: left; } + +.label-align-right { + text-align: right; } + +.label-align-center { + text-align: center; } + +/* Input */ +.form-group, .form-check { + margin-bottom: 0; + padding: 10px; } + +.form-group label, .form-check label { + margin-bottom: .5rem; + color: #495057; + font-weight: 600; + font-size: 1rem; + white-space: nowrap; } + +.form-group-default { + background-color: #ffffff; + border: 1px solid rgba(0, 0, 0, 0.07); + border-radius: 4px; + padding-top: 7px; + padding-left: 12px; + padding-right: 12px; + padding-bottom: 4px; + overflow: hidden; + width: 100%; + -webkit-transition: background-color .2s ease; + transition: background-color .2s ease; + margin-bottom: 15px; } + .form-group-default label { + opacity: 1; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; + margin: 0; + display: block; + -webkit-transition: opacity .2s ease; + transition: opacity .2s ease; } + .form-group-default label:not(.error) { + font-size: 10.5px !important; + letter-spacing: .06em; + text-transform: uppercase; + font-weight: 400; } + .form-group-default .form-control { + border: 0; + min-height: 25px; + padding: 0; + margin-top: 6px; + background: 0 0; + font-size: 14px; } + .form-group-default select.form-control:not([size]):not([multiple]) { + height: unset !important; } + .form-group-default.active { + border-color: rgba(0, 0, 0, 0.1) !important; + background-color: #f0f0f0; } + .form-group-default.active label { + opacity: 0.5; } + +.form-floating-label { + position: relative; } + .form-floating-label .placeholder { + position: absolute; + padding: .375rem .75rem; + transition: all .2s; + opacity: 0.8; + margin-bottom: 0 !important; + font-size: 14px !important; + font-weight: 400; + top: 12px; } + .form-floating-label .form-control:focus + .placeholder, .form-floating-label .form-control:valid + .placeholder, .form-floating-label .form-control.filled + .placeholder { + font-size: 85% !important; + transform: translate3d(0, -10px, 0); + top: 0; + opacity: 1; + padding: .375rem 0 .75rem; + font-weight: 600; } + .form-floating-label .form-control.filled + .placeholder { + color: #1572E8 !important; } + .form-floating-label .form-control ::-webkit-input-placeholder { + color: transparent; } + .form-floating-label .form-control :-moz-placeholder { + color: transparent; } + .form-floating-label .form-control ::-moz-placeholder { + color: transparent; } + .form-floating-label .form-control :-ms-input-placeholder { + color: transparent; } + .form-floating-label .input-border-bottom + .placeholder { + padding: .375rem 0 .75rem; } + +.form-inline label { + margin-bottom: 0 !important; } + +.input-fixed { + width: 200px; } + +.form-control.input-full { + width: 100% !important; } + +.has-success label { + color: #31CE36 !important; } +.has-success .form-control { + border-color: #31CE36 !important; + color: #31CE36 !important; } +.has-success .input-group-text { + border-color: #31CE36 !important; + background: #31CE36 !important; + color: #ffffff !important; } + +.has-error label { + color: #F25961 !important; } +.has-error .form-control { + border-color: #F25961 !important; + color: #F25961 !important; } +.has-error .input-group-text { + border-color: #F25961 !important; + background: #F25961 !important; + color: #ffffff !important; } + +.input-group label.error, .input-group label.success { + width: 100%; + order: 100; } + +.custom-control { + position: relative; } + .custom-control.custom-radio, .custom-control.custom-checkbox { + margin-bottom: 0; + padding-left: 2em; + cursor: pointer; + line-height: 24px; + margin-right: 25px; + display: inline-block; } + .custom-control.custom-radio label.error, .custom-control.custom-radio label.success, .custom-control.custom-checkbox label.error, .custom-control.custom-checkbox label.success { + position: absolute; + width: 100vh; + top: 23px; + left: 0; } + +.has-feedback { + position: relative; } + +.form-control-feedback { + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 20px; } + +.has-success .form-control-feedback { + color: #31CE36; } + +.has-error .form-control-feedback { + color: #F25961; } + +.input-group.has-icon { + border-radius: .25rem; + border: 1px solid #ced4da; } +.input-group.has-success, .input-group.has-icon.has-success { + border: 1px solid #31CE36 !important; + color: #31CE36; } +.input-group.has-error { + border: 1px solid #F25961 !important; + color: #F25961; } +.input-group.has-icon.has-error { + border: 1px solid #F25961 !important; + color: #F25961; } +.input-group.has-icon .form-control { + border-radius: .25rem; + border: 0px; + position: relative; } +.input-group.has-icon .input-group-icon { + background: transparent; + border: 0px; } + +.input-square { + border-radius: 0px !important; } + +.input-pill { + border-radius: 1.3rem !important; } + +.input-solid { + background: #e8e8e8 !important; + border-color: #e8e8e8 !important; } + +.input-border-bottom { + border-width: 0 0 1px 0; + border-radius: 0px; + padding: .75rem 0; + background: transparent !important; } + +/* Input File */ +.input-file input[type="file"], .input-file .form-control, .input-file .form-control-file { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -1; } +.input-file label.error, .input-file label.success { + display: block; } +.input-file input[type="file"] + label:not(.error), .input-file .form-control + label:not(.error), .input-file .form-control-file + label:not(.error), .input-file .label-input-file { + font-weight: 600; + letter-spacing: 0.02em; + color: white !important; + display: inline-block; } +.input-file.input-file-image img.img-upload-preview { + max-width: 100%; + display: block; + margin-bottom: 15px; + box-shadow: 0 1px 15px 1px rgba(39, 39, 39, 0.1); } + .input-file.input-file-image img.img-upload-preview.img-circle { + border-radius: 2000px; } + +.form-control:disabled, .form-control[readonly] { + background: #e8e8e8 !important; + border-color: #e8e8e8 !important; } +.form-control:disabled, .form-control[readonly] { + opacity: 0.6 !important; } + +/* Input Group */ +.input-group-text { + font-size: 14px; } + .input-group-text i.la { + font-size: 21px; } + .input-group-text i[class*="flaticon"] { + font-size: 17px; } + +/* Input Icon */ +.input-icon { + position: relative; } + .input-icon .form-control:not(:first-child) { + padding-left: 2.5rem; } + .input-icon .form-control:not(:last-child) { + padding-right: 2.5rem; } + .input-icon .input-icon-addon { + position: absolute; + left: 1rem; + top: 0; + height: 100%; + display: flex; + align-items: center; } + .input-icon .input-icon-addon:last-child { + left: auto; + right: 1rem; } + +/* Label States */ +label.error { + color: #F25961 !important; + font-size: 80% !important; + margin-top: .5rem; } + +/* Label states for select2 */ +.select2-input { + position: relative; } + .select2-input label.error, .select2-input label.success { + position: absolute; + bottom: -30px; } + .select2-input .select2 { + margin-bottom: 15px; } + +/* Custom Dropzone */ +.dropzone { + padding: 70px 60px 80px !important; + border: 2px dashed rgba(0, 0, 0, 0.13) !important; + background: transparent !important; } + .dropzone:hover { + background: #fafafa !important; + transition: all .5s !important; } + .dropzone .dz-message .icon { + margin-bottom: 15px; + font-size: 39px; } + .dropzone .dz-message .message { + font-size: 34px; + font-weight: 200; } + .dropzone .dz-message .note { + font-size: 16px; + margin-top: 18px; + font-weight: 300; } + +/* Custom Summernote */ +.note-editor.note-frame { + border: 0px !important; + box-shadow: none !important; } + .note-editor.note-frame .note-toolbar { + padding: 0 !important; + border-bottom: 0px !important; } + .note-editor.note-frame .note-btn { + border: 1px solid #eee !important; + background: #fafafa !important; } + .note-editor.note-frame .note-placeholder { + margin-top: 15px !important; } + .note-editor.note-frame .note-codable { + margin-top: 15px !important; } + .note-editor.note-frame .note-editing-area .note-editable { + margin-top: 15px !important; + border: 1px solid #eee !important; } + +/* Table */ +.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { + vertical-align: middle; } +.table > tbody > tr > td, .table > tbody > tr > th { + padding: 8px; } +.table > tfoot > tr > td, .table > tfoot > tr > th { + padding: 8px; } +.table thead th { + border-bottom-width: 2px; + font-weight: 600; } +.table td, .table th { + font-size: 14px; + border-top-width: 0px; + border-bottom: 1px solid; + border-color: #ebedf2 !important; + padding: 0 25px !important; + height: 60px; + vertical-align: middle !important; } + +/* table full-width */ +.table-full-width { + margin-left: -15px; + margin-right: -15px; } + +/* table bordered states */ +.table-bordered-bd-default td, .table-bordered-bd-default th { + border: 1px solid #1a2035 !important; } + +.table-bordered-bd-primary td, .table-bordered-bd-primary th { + border: 1px solid #1572E8 !important; } + +.table-bordered-bd-secondary td, .table-bordered-bd-secondary th { + border: 1px solid #6861CE !important; } + +.table-bordered-bd-info td, .table-bordered-bd-info th { + border: 1px solid #48ABF7 !important; } + +.table-bordered-bd-success td, .table-bordered-bd-success th { + border: 1px solid #31CE36 !important; } + +.table-bordered-bd-warning td, .table-bordered-bd-warning th { + border: 1px solid #FFAD46 !important; } + +.table-bordered-bd-danger td, .table-bordered-bd-danger th { + border: 1px solid #F25961 !important; } + +.table-striped td, .table-striped th { + border-top: 0 !important; + border-bottom: 0 !important; } + +/* table head background states*/ +.table-head-bg-default thead { + border: 1px solid #1a2035 !important; } + +.table-head-bg-primary thead { + border: 1px solid #1572E8 !important; } + +.table-head-bg-secondary thead { + border: 1px solid #6861CE !important; } + +.table-head-bg-info thead { + border: 1px solid #48ABF7 !important; } + +.table-head-bg-success thead { + border: 1px solid #31CE36 !important; } + +.table-head-bg-warning thead { + border: 1px solid #FFAD46 !important; } + +.table-head-bg-danger thead { + border: 1px solid #F25961 !important; } + +.table-head-bg-default thead th, .table-striped-bg-default tbody tr:nth-of-type(odd) { + background: #1a2035 !important; + color: #ffffff !important; + border: 0px !important; } + +.table-head-bg-primary thead th, .table-striped-bg-primary tbody tr:nth-of-type(odd) { + background: #1572E8 !important; + color: #ffffff !important; + border: 0px !important; } + +.table-head-bg-secondary thead th, .table-striped-bg-secondary tbody tr:nth-of-type(odd) { + background: #6861CE !important; + color: #ffffff !important; + border: 0px !important; } + +.table-head-bg-info thead th, .table-striped-bg-info tbody tr:nth-of-type(odd) { + background: #48ABF7 !important; + color: #ffffff !important; + border: 0px !important; } + +.table-head-bg-success thead th, .table-striped-bg-success tbody tr:nth-of-type(odd) { + background: #31CE36 !important; + color: #ffffff !important; + border: 0px !important; } + +.table-head-bg-warning thead th, .table-striped-bg-warning tbody tr:nth-of-type(odd) { + background: #FFAD46 !important; + color: #ffffff !important; + border: 0px !important; } + +.table-head-bg-danger thead th, .table-striped-bg-danger tbody tr:nth-of-type(odd) { + background: #F25961 !important; + color: #ffffff !important; + border: 0px !important; } + +/* table-responsive */ +.table-responsive { + width: 100% !important; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; } + +/* Navbar */ +.navbar .navbar-nav .nav-item { + margin-right: 7px; } + .navbar .navbar-nav .nav-item:last-child { + margin-right: 0px; } + .navbar .navbar-nav .nav-item .nav-link { + display: inline-block; + vertical-align: middle; + color: #666; + letter-spacing: 0.04em; + padding: 10px; + border-radius: 3px; + position: relative; + font-size: 12px; + font-weight: 400; + text-align: center; } + .navbar .navbar-nav .nav-item .nav-link:hover, .navbar .navbar-nav .nav-item .nav-link:focus { + background: #eee !important; } + .navbar .navbar-nav .nav-item .nav-link i { + font-size: 18px; + vertical-align: middle; + line-height: 1 !important; } + .navbar .navbar-nav .nav-item.active .nav-link { + background: #eee !important; } + +.navbar-expand-lg .navbar-nav .dropdown-menu { + left: auto; + right: 0; } + +.dropdown-item { + font-size: 13px; } + +.navbar .navbar-nav .notification { + position: absolute; + background-color: #31CE36; + text-align: center; + border-radius: 10px; + min-width: 17px; + height: 17px; + font-size: 10px; + color: #ffffff; + font-weight: 300; + line-height: 17px; + top: 3px; + right: 3px; + letter-spacing: -1px; } + +.navbar-header { + padding: 0px 15px; } + .navbar-header .dropdown-toggle::after { + margin-left: 0; } + +.profile-pic:hover, .profile-pic:focus { + text-decoration: none; } + +.navbar-header .dropdown-toggle::after { + vertical-align: middle; + color: #555; } + +.hidden-caret .dropdown-toggle::after { + display: none !important; } + +.profile-pic span { + font-size: 13px; + font-weight: 300; + padding: 0 10px; + color: #555; } + +.navbar[class*="bg-"] { + border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important; + border-left: 1px solid rgba(255, 255, 255, 0.1) !important; } + .navbar[class*="bg-"] .navbar-brand { + color: #ffffff; } + .navbar[class*="bg-"] .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); } + .navbar[class*="bg-"] .navbar-nav > .nav-item > .nav-link { + color: #ffffff; } + .navbar[class*="bg-"] .navbar-nav > .nav-item > .nav-link.disabled { + color: #d8d8d8 !important; } + .navbar[class*="bg-"] .navbar-nav > .nav-item > .nav-link:hover { + background: rgba(255, 255, 255, 0.22) !important; } + .navbar[class*="bg-"] .navbar-nav > .nav-item.active > .nav-link { + background: rgba(255, 255, 255, 0.22) !important; } + .navbar[class*="bg-"] .btn-toggle { + background: rgba(19, 19, 19, 0.25) !important; + color: #ffffff !important; } + .navbar[class*="bg-"] .nav-search .input-group { + border: 0; + background: rgba(19, 19, 19, 0.25) !important; } + .navbar[class*="bg-"] .nav-search .input-group .form-control { + color: #ffffff !important; } + .navbar[class*="bg-"] .nav-search .search-icon { + color: #ffffff !important; } + +.row-nav-line { + margin-left: -20px; + margin-right: -20px; } + +.nav.nav-line { + width: 100%; + border-bottom: 1px solid #f1f1f1; } + .nav.nav-line .nav-link { + padding: 15px 20px; + color: #575962; + border-width: 0px; + font-size: 14px; + font-weight: 600; } + .nav.nav-line .nav-link:hover, .nav.nav-line .nav-link:focus { + color: #1572E8; + border-width: 0px; } + .nav.nav-line .nav-link.active { + border-width: 0; + background-color: transparent; + color: #1572E8; + border-bottom: 2px solid #1572E8; + border-radius: 0px; } + .nav.nav-line.nav-color-default .nav-link:hover, .nav.nav-line.nav-color-default .nav-link:focus { + color: #1a2035; } + .nav.nav-line.nav-color-default .nav-link.active { + color: #1a2035; + border-color: #1a2035; } + .nav.nav-line.nav-color-primary .nav-link:hover, .nav.nav-line.nav-color-primary .nav-link:focus { + color: #1572E8; } + .nav.nav-line.nav-color-primary .nav-link.active { + color: #1572E8; + border-color: #1572E8; } + .nav.nav-line.nav-color-secondary .nav-link:hover, .nav.nav-line.nav-color-secondary .nav-link:focus { + color: #6861CE; } + .nav.nav-line.nav-color-secondary .nav-link.active { + color: #6861CE; + border-color: #6861CE; } + .nav.nav-line.nav-color-info .nav-link:hover, .nav.nav-line.nav-color-info .nav-link:focus { + color: #48ABF7; } + .nav.nav-line.nav-color-info .nav-link.active { + color: #48ABF7; + border-color: #48ABF7; } + .nav.nav-line.nav-color-success .nav-link:hover, .nav.nav-line.nav-color-success .nav-link:focus { + color: #31CE36; } + .nav.nav-line.nav-color-success .nav-link.active { + color: #31CE36; + border-color: #31CE36; } + .nav.nav-line.nav-color-danger .nav-link:hover, .nav.nav-line.nav-color-danger .nav-link:focus { + color: #F25961; } + .nav.nav-line.nav-color-danger .nav-link.active { + color: #F25961; + border-color: #F25961; } + .nav.nav-line.nav-color-warning .nav-link:hover, .nav.nav-line.nav-color-warning .nav-link:focus { + color: #FFAD46; } + .nav.nav-line.nav-color-warning .nav-link.active { + color: #FFAD46; + border-color: #FFAD46; } + .nav.nav-line.nav-color-light .nav-link:hover, .nav.nav-line.nav-color-light .nav-link:focus { + color: #ffffff; } + .nav.nav-line.nav-color-light .nav-link.active { + color: #ffffff; + border-color: #ffffff; } + .nav.nav-line.nav-color-light .nav-link { + color: #f1f1f1; } + +/* Nav Search */ +.nav-search .input-group { + border: 1px solid #eee; + background: #eee; + border-radius: 5px; } + .nav-search .input-group:hover, .nav-search .input-group:focus { + border: 1px solid #ddd; } +.nav-search .form-control { + border: 0; + background: transparent !important; + font-size: 14px; + padding: 0.75em 1em; + min-width: 200px; + max-width: 100%; } +.nav-search .input-group-text { + border: 0; + background: transparent; } +.nav-search .search-icon { + font-size: 18px; + color: #8d9498; } +.nav-search .btn-search { + background: transparent; + padding: .375rem 1rem; } + +/* Badge */ +.badge { + border-radius: 50px; + margin-left: auto; + line-height: 1; + padding: 6px 10px; + vertical-align: middle; + font-weight: 400; + font-size: 11px; + border: 1px solid #ddd; } + +[class*="badge-"]:not(.badge-count) { + border: 0px !important; } + +.badge-default { + background: #1a2035; + color: #ffffff !important; } + +.badge-primary { + background: #1572E8; } + +.badge-secondary { + background: #6861CE; } + +.badge-info { + background: #48ABF7; } + +.badge-success { + background-color: #31CE36; } + +.badge-warning { + background: #FFAD46; + color: #ffffff !important; } + +.badge-danger { + background-color: #F25961; } + +/* Dropdown */ +.dropdown-menu { + border: 0px; + border-radius: 3px; + box-shadow: 0 1px 11px rgba(0, 0, 0, 0.15) !important; + padding-bottom: 8px; + margin-top: 3px; } + +/* Notification dropdown */ +.dropdown-title { + border-bottom: 1px solid #f1f1f1; + color: #444444; + font-size: 14px; + font-weight: 600; + padding: 12px 15px; + text-align: center; } + +.notif-box, .messages-notif-box { + width: 280px; + padding: 0 !important; } + .notif-box .notif-center a, .messages-notif-box .notif-center a { + display: flex; + color: #4d585f; } + .notif-box .notif-center a:hover, .messages-notif-box .notif-center a:hover { + text-decoration: none; + background: #fafafa; + transition: all .2s; } + .notif-box .notif-center a .notif-icon, .messages-notif-box .notif-center a .notif-icon { + display: inline-flex; + width: 40px; + height: 40px; + margin: 10px; + align-items: center; + justify-content: center; + background: #eee; + border-radius: 50%; } + .notif-box .notif-center a .notif-img, .messages-notif-box .notif-center a .notif-img { + display: inline-flex; + width: 40px; + height: 40px; + margin: 10px; + align-items: center; + justify-content: center; + background: #eee; + border-radius: 50%; } + .notif-box .notif-center a .notif-img img, .messages-notif-box .notif-center a .notif-img img { + width: 100%; + height: 100%; + border-radius: 50%; } + .notif-box .notif-center a .notif-icon.notif-default, .notif-box .notif-center a .notif-icon.notif-primary, .notif-box .notif-center a .notif-icon.notif-secondary, .notif-box .notif-center a .notif-icon.notif-info, .notif-box .notif-center a .notif-icon.notif-success, .notif-box .notif-center a .notif-icon.notif-warning, .notif-box .notif-center a .notif-icon.notif-danger, .messages-notif-box .notif-center a .notif-icon.notif-default, .messages-notif-box .notif-center a .notif-icon.notif-primary, .messages-notif-box .notif-center a .notif-icon.notif-secondary, .messages-notif-box .notif-center a .notif-icon.notif-info, .messages-notif-box .notif-center a .notif-icon.notif-success, .messages-notif-box .notif-center a .notif-icon.notif-warning, .messages-notif-box .notif-center a .notif-icon.notif-danger { + color: #ffffff !important; } + .notif-box .notif-center a .notif-icon.notif-default, .messages-notif-box .notif-center a .notif-icon.notif-default { + background: #1a2035 !important; } + .notif-box .notif-center a .notif-icon.notif-primary, .messages-notif-box .notif-center a .notif-icon.notif-primary { + background: #1572E8 !important; } + .notif-box .notif-center a .notif-icon.notif-secondary, .messages-notif-box .notif-center a .notif-icon.notif-secondary { + background: #6861CE !important; } + .notif-box .notif-center a .notif-icon.notif-info, .messages-notif-box .notif-center a .notif-icon.notif-info { + background: #48ABF7 !important; } + .notif-box .notif-center a .notif-icon.notif-success, .messages-notif-box .notif-center a .notif-icon.notif-success { + background: #31CE36 !important; } + .notif-box .notif-center a .notif-icon.notif-warning, .messages-notif-box .notif-center a .notif-icon.notif-warning { + background: #FFAD46 !important; } + .notif-box .notif-center a .notif-icon.notif-danger, .messages-notif-box .notif-center a .notif-icon.notif-danger { + background: #F25961 !important; } + .notif-box .notif-center a .notif-icon i, .messages-notif-box .notif-center a .notif-icon i { + font-size: 15px; } + .notif-box .notif-center a .notif-content, .messages-notif-box .notif-center a .notif-content { + padding: 10px 15px 10px 0; } + .notif-box .notif-center a .message-content, .messages-notif-box .notif-center a .message-content { + padding: 7px 15px 10px 0; } + .notif-box .notif-center a .notif-content .subject, .messages-notif-box .notif-center a .notif-content .subject { + font-size: 13px; + font-weight: 600; + display: block; + margin-bottom: 2px; } + .notif-box .notif-center a .notif-content .block, .messages-notif-box .notif-center a .notif-content .block { + font-size: 13px; + line-height: 20px; + display: block; } + .notif-box .notif-center a .notif-content .time, .messages-notif-box .notif-center a .notif-content .time { + color: #7d8c95; + font-size: 11px; } + .notif-box .see-all, .messages-notif-box .see-all { + border-top: 1px solid #f1f1f1; + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px 20px; + color: #555; + font-size: 13px; + font-weight: 400; + text-decoration: none; } + .notif-box .see-all:hover, .messages-notif-box .see-all:hover { + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px 20px; + color: #555; + font-size: 13px; + font-weight: 400; + text-decoration: none; } + .notif-box .see-all i, .messages-notif-box .see-all i { + float: right; } + +.notif-box .notif-scroll { + max-height: 256px; } + +.messages-notif-box .message-notif-scroll { + max-height: 250px; } +.messages-notif-box .notif-center a { + border-bottom: 1px solid #f1f1f1; } + .messages-notif-box .notif-center a:last-child { + border-bottom: 0px; } + .messages-notif-box .notif-center a .notif-content { + padding: 7px 15px 7px 5px; } + +/* User Dropdown */ +.dropdown-user { + width: 260px; } + +.user-box { + display: flex; + padding: .25rem 1rem; } + .user-box .u-text { + padding: 0 10px; } + .user-box .u-text h4 { + margin-bottom: 5px; + margin-top: 4px; + font-size: 14px; + font-weight: 400; + line-height: 1; } + .user-box .u-text .text-muted { + font-size: 12px; + margin-bottom: 5px; } + .user-box .u-text .btn { + font-size: 11px; } + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; } + +/* Quick Actions Dropdown */ +.quick-actions { + width: 350px; + padding: 0px; } + .quick-actions:after { + border-bottom-color: #1572E8 !important; } + .quick-actions .quick-actions-header { + display: flex; + align-items: center; + flex-direction: column; + background: #1572E8; + color: #fff; + padding: 15px; + border-radius: 3px 3px 0 0; } + .quick-actions .quick-actions-header .title { + font-size: 18px; } + .quick-actions .quick-actions-header .subtitle { + font-size: 13px; } + .quick-actions .quick-actions-items { + padding: 15px 7.5px; } + .quick-actions a:hover { + text-decoration: none; } + .quick-actions .quick-actions-item { + display: flex; + flex-direction: column; + margin: 7.5px 7.5px; + padding: 10px; + align-items: center; + color: #1572E8; + border: 1px solid #f1f1f1; + border-bottom: 1px solid #f1f1f1; + border-radius: 3px; + transition: all .2s; } + .quick-actions .quick-actions-item:hover { + background: #fdfdff; + color: #1572E8; + box-shadow: 3px 3px 10px #f7f1f1; } + .quick-actions .quick-actions-item i { + color: #7d8c95; + font-size: 27px; } + .quick-actions .quick-actions-item .text { + text-align: center; + font-size: 13px; + margin-top: 8px; } + .quick-actions.quick-actions-default:after { + border-bottom-color: #1a2035 !important; } + .quick-actions.quick-actions-default .quick-actions-header { + background: #1a2035; } + .quick-actions.quick-actions-default .quick-actions-item { + color: #1a2035; } + .quick-actions.quick-actions-primary:after { + border-bottom-color: #1572E8 !important; } + .quick-actions.quick-actions-primary .quick-actions-header { + background: #1572E8; } + .quick-actions.quick-actions-primary .quick-actions-item { + color: #1572E8; } + .quick-actions.quick-actions-secondary:after { + border-bottom-color: #6861CE !important; } + .quick-actions.quick-actions-secondary .quick-actions-header { + background: #6861CE; } + .quick-actions.quick-actions-secondary .quick-actions-item { + color: #6861CE; } + .quick-actions.quick-actions-info:after { + border-bottom-color: #48ABF7 !important; } + .quick-actions.quick-actions-info .quick-actions-header { + background: #48ABF7; } + .quick-actions.quick-actions-info .quick-actions-item { + color: #48ABF7; } + .quick-actions.quick-actions-warning:after { + border-bottom-color: #FFAD46 !important; } + .quick-actions.quick-actions-warning .quick-actions-header { + background: #FFAD46; } + .quick-actions.quick-actions-warning .quick-actions-item { + color: #FFAD46; } + .quick-actions.quick-actions-success:after { + border-bottom-color: #31CE36 !important; } + .quick-actions.quick-actions-success .quick-actions-header { + background: #31CE36; } + .quick-actions.quick-actions-success .quick-actions-item { + color: #31CE36; } + .quick-actions.quick-actions-danger:after { + border-bottom-color: #F25961 !important; } + .quick-actions.quick-actions-danger .quick-actions-header { + background: #F25961; } + .quick-actions.quick-actions-danger .quick-actions-item { + color: #F25961; } + +@media screen and (max-width: 991px) { + .notif-box .notif-scroll, .messages-notif-box .message-notif-scroll, .quick-actions .quick-actions-scroll { + max-height: calc(100vh - 200px); } + + .dropdown-user .dropdown-user-scroll { + max-height: calc(100vh - 132px); } } +@media screen and (min-width: 991px) { + .navbar-header .dropdown-menu { + margin-top: 13px; } + .navbar-header .dropdown-menu:after { + border-bottom: 8px solid #fff; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + content: ""; + right: 10px; + top: -8px; + position: absolute; + z-index: 1001; } } +/* Chart Circle */ +.chart-circle { + display: flex; + justify-content: center; } + .chart-circle .circles-text { + font-size: 25px !important; } + +/* Chart JS Container */ +.chart-container { + min-height: 300px; + position: relative; } + +/* HTML legend */ +.html-legend { + list-style: none; + cursor: pointer; + padding-left: 0; + text-align: center; + margin-top: 1rem; } + +.html-legend li { + display: inline-block; + vertical-align: middle; + padding: 0 5px; + margin-right: 5px; + margin-bottom: 6px; + color: #8d9498; + font-size: 12px; } + +.html-legend li.hidden { + text-decoration: line-through; } + +.html-legend li span { + border-radius: 15px; + display: inline-block; + height: 15px; + margin-right: 10px; + width: 15px; + vertical-align: top; } + +.jqstooltip { + box-sizing: content-box; } + +/* Alert */ +.alert { + border: 0px; + position: relative; + padding: .95rem 1.25rem; + border-radius: 1px; + color: inherit; + background-color: #ffffff; + -webkit-box-shadow: 1px 1px 14px 0px rgba(18, 38, 63, 0.26); + -moz-box-shadow: 1px 1px 14px 0px rgba(18, 38, 63, 0.26); + box-shadow: 1px 1px 14px 0px rgba(18, 38, 63, 0.26); } + .alert [data-notify="icon"] { + display: block; } + .alert [data-notify="icon"]::before { + line-height: 35px; + font-size: 22px; + display: block; + left: 15px; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 35px; + height: 35px; + border-radius: 30px; + text-align: center; + color: #fff; } + .alert [data-notify="title"] { + display: block; + color: #2b2b2b; + font-weight: 700; + font-size: 14px; + margin-bottom: 5px; } + .alert [data-notify="message"] { + font-size: 13px; + color: #908e8e; } + .alert .close { + background: rgba(255, 255, 255, 0.8); + width: 25px; + height: 25px; + line-height: 25px; + top: 12px !important; + border-radius: 50%; } + +/* Alert States */ +.alert-default { + border-left: 4px solid #1a2035; } + .alert-default [data-notify="icon"]:before { + background: #1a2035; } + +.alert-primary { + border-left: 4px solid #1572E8; } + .alert-primary [data-notify="icon"]:before { + background: #1572E8; } + +.alert-secondary { + border-left: 4px solid #6861CE; } + .alert-secondary [data-notify="icon"]:before { + background: #6861CE; } + +.alert-info { + border-left: 4px solid #48ABF7; } + .alert-info [data-notify="icon"]:before { + background: #48ABF7; } + +.alert-success { + border-left: 4px solid #31CE36; } + .alert-success [data-notify="icon"]:before { + background: #31CE36; } + +.alert-warning { + border-left: 4px solid #FFAD46; } + .alert-warning [data-notify="icon"]:before { + background: #FFAD46; } + +.alert-danger { + border-left: 4px solid #F25961; } + .alert-danger [data-notify="icon"]:before { + background: #F25961; } + +/* Button */ +.btn { + padding: .65rem 1.4rem; + font-size: 14px; + opacity: 1; + border-radius: 3px; } + .btn:hover, .btn:focus { + opacity: 0.9; + transition: all .3s; } + .btn .btn-label { + display: inline-block; } + .btn .btn-label i { + font-size: 16px; + vertical-align: middle; + margin-right: 2px; + margin-left: -2px; + line-height: 0; + margin-top: -2.5px; } + .btn .btn-label.just-icon i { + margin-left: 0 !important; + margin-right: 0px !important; } + +/* Button Sizes */ +.btn-lg { + font-size: 15px; + border-radius: 3px; + padding: 12.5px 27.5px; + font-weight: 400; } + .btn-lg .btn-label i { + font-size: 27px; + vertical-align: middle; + margin-right: 2px; + margin-left: -7px; + line-height: 0; + margin-top: -2.5px; } + .btn-lg .btn-label.just-icon i { + margin-left: 0 !important; + margin-right: 0px !important; } + +.btn-sm { + font-size: 11px; + padding: 7px 13px; } + +.btn-xs { + font-size: 10px; + padding: 5px 9px; } + +.btn.disabled:hover, .btn:hover:disabled { + opacity: 0.65; } + +/* Button Icon */ +.btn-icon { + font-size: .9375rem; + height: 2.5125rem; + line-height: normal; + min-width: 2.5125rem; + overflow: hidden; + padding: 0; + position: relative; + width: 2.5125rem; } + .btn-icon.btn-lg { + height: 2.75rem; + min-width: 2.75rem; + width: 2.75rem; } + .btn-icon.btn-sm { + height: 2rem; + min-width: 2rem; + width: 2rem; } + .btn-icon.btn-xs { + height: 1.6875rem; + min-width: 1.6875rem; + width: 1.6875rem; } + +/* Button States */ +.btn-white { + background: #ffffff !important; + color: #1a2035 !important; } + .btn-white:hover, .btn-white:focus, .btn-white:disabled { + background: #ffffff !important; + color: #1a2035 !important; } + +.btn-default { + background: #1a2035 !important; + color: #ffffff !important; } + .btn-default:hover, .btn-default:focus, .btn-default:disabled { + background: #1a2035 !important; + color: #ffffff !important; } + +.btn-primary { + background: #1572E8 !important; + border-color: #1572E8 !important; } + .btn-primary:hover, .btn-primary:focus, .btn-primary:disabled { + background: #1572E8 !important; + border-color: #1572E8 !important; } + +.btn-secondary { + background: #6861CE !important; + border-color: #6861CE !important; } + .btn-secondary:hover, .btn-secondary:focus, .btn-secondary:disabled { + background: #6861CE !important; + border-color: #6861CE !important; } + +.btn-info { + background: #48ABF7 !important; + border-color: #48ABF7 !important; } + .btn-info:hover, .btn-info:focus, .btn-info:disabled { + background: #48ABF7 !important; + border-color: #48ABF7 !important; } + +.btn-success { + background: #31CE36 !important; + border-color: #31CE36 !important; } + .btn-success:hover, .btn-success:focus, .btn-success:disabled { + background: #31CE36 !important; + border-color: #31CE36 !important; } + +.btn-warning { + background: #FFAD46 !important; + border-color: #FFAD46 !important; + color: #ffffff !important; } + .btn-warning:hover, .btn-warning:focus, .btn-warning:disabled { + background: #FFAD46 !important; + border-color: #FFAD46 !important; + color: #ffffff !important; } + +.btn-danger { + background: #F25961 !important; + border-color: #F25961 !important; } + .btn-danger:hover, .btn-danger:focus, .btn-danger:disabled { + background: #F25961 !important; + border-color: #F25961 !important; } + +.btn-light { + background: #ffffff !important; + border-color: transparent; } + .btn-light:hover, .btn-light:focus, .btn-light:disabled { + background: #ebecec !important; + border-color: transparent; } + +.btn-dropdown-card-header { + padding: 0; + background: transparent; + color: inherit; + font-size: 15px; } + .btn-dropdown-card-header:after { + display: none; } + +/* Button Border */ +.btn-border { + background: transparent !important; } + .btn-border:hover, .btn-border:focus { + background: transparent !important; } + .btn-border.btn-white { + color: #ffffff !important; + border: 1px solid #ffffff !important; } + .btn-border.btn-default { + color: #1a2035 !important; + border: 1px solid #1a2035 !important; } + .btn-border.btn-primary { + color: #1572E8 !important; + border: 1px solid #1572E8 !important; } + .btn-border.btn-secondary { + color: #6861CE !important; + border: 1px solid #6861CE !important; } + .btn-border.btn-info { + color: #48ABF7 !important; + border: 1px solid #48ABF7 !important; } + .btn-border.btn-success { + color: #31CE36 !important; + border: 1px solid #31CE36 !important; } + .btn-border.btn-warning { + color: #FFAD46 !important; + border: 1px solid #FFAD46 !important; } + .btn-border.btn-danger { + color: #F25961 !important; + border: 1px solid #F25961 !important; } + .btn-border.btn-light { + border: 1px solid #efefef; + background: #fff !important; } + +/* Button Rounded */ +.btn-round { + border-radius: 100px !important; } + +/* Button Link */ +.btn-link { + border: 0 !important; + background: transparent !important; } + .btn-link:hover, .btn-link:focus { + text-decoration: underline !important; + background: transparent !important; + border: 0 !important; } + .btn-link.btn-default { + color: #1a2035 !important; } + .btn-link.btn-default:hover { + color: #1a2035 !important; } + .btn-link.btn-primary { + color: #1572E8 !important; } + .btn-link.btn-primary:hover { + color: #1572E8 !important; } + .btn-link.btn-secondary { + color: #6861CE !important; } + .btn-link.btn-secondary:hover { + color: #6861CE !important; } + .btn-link.btn-info { + color: #48ABF7 !important; } + .btn-link.btn-info:hover { + color: #48ABF7 !important; } + .btn-link.btn-success { + color: #31CE36 !important; } + .btn-link.btn-success:hover { + color: #31CE36 !important; } + .btn-link.btn-warning { + color: #FFAD46 !important; } + .btn-link.btn-warning:hover { + color: #FFAD46 !important; } + .btn-link.btn-danger { + color: #F25961 !important; } + .btn-link.btn-danger:hover { + color: #F25961 !important; } + +.toggle-on.btn { + color: #ffffff !important; } + +.toggle-handle { + background: #ffffff !important; } + .toggle-handle:hover { + background: #ffffff !important; } + +.btn-round .toggle-handle { + border-radius: 50px; } + +.btn-rounded { + border-radius: 60px !important; } + +.btn-full { + width: 100%; } + +.btn-no-radius { + border-radius: 0px; } + +/* Nav Pill */ +.nav-pills > li:first-child > .nav-link { + border-radius: 4px 0 0 4px !important; } +.nav-pills > li:last-child > .nav-link { + border-radius: 0 4px 4px 0 !important; } + +.nav-link.disabled { + color: #6c757d !important; } + +.nav-pills .nav-link { + padding: 10px 20px; } +.nav-pills > li > .nav-link { + margin-left: -1px; + border-radius: 0 !important; + margin-top: 5px; + margin-bottom: 5px; + border: 1px solid #1572E8; + color: #585c5d; } + .nav-pills > li > .nav-link.active { + background: #1572E8; } + .nav-pills > li > .nav-link:hover { + background: rgba(222, 222, 222, 0.4); } +.nav-pills.nav-pills-no-bd li { + margin-left: 15px !important; } + .nav-pills.nav-pills-no-bd li .nav-link { + border: 0px !important; + border-radius: 50px !important; + background: rgba(222, 222, 222, 0.4); } + .nav-pills.nav-pills-no-bd li .nav-link.active { + border-radius: 50px !important; } + .nav-pills.nav-pills-no-bd li:first-child { + margin-left: 0px !important; } +.nav-pills.nav-pills-no-bd.nav-pills-icons .nav-link, .nav-pills.nav-pills-no-bd.nav-pills-icons .nav-link.active { + border-radius: 5px !important; } +.nav-pills.flex-column .nav-link { + border-radius: 0 !important; + border: 1px solid #1572E8; + color: #585c5d; + margin-top: -1px; + text-align: center; + word-wrap: normal; + padding: 10px 0; } + .nav-pills.flex-column .nav-link:hover { + background: rgba(222, 222, 222, 0.4); } + .nav-pills.flex-column .nav-link.active { + background: #1572E8; } + .nav-pills.flex-column .nav-link:first-child { + border-radius: 4px 4px 0 0 !important; } + .nav-pills.flex-column .nav-link:last-child { + border-radius: 0 0 4px 4px !important; } +.nav-pills.flex-column.nav-pills-no-bd .nav-link { + border: 0px !important; + border-radius: 50px !important; + background: rgba(222, 222, 222, 0.4); + margin-top: 5px; + margin-bottom: 5px; } + .nav-pills.flex-column.nav-pills-no-bd .nav-link.active { + border-radius: 50px !important; } +.nav-pills.flex-column.nav-pills-icons .nav-link, .nav-pills.flex-column.nav-pills-icons .nav-link.active { + border-radius: 5px !important; } +.nav-pills.nav-pills-icons .nav-link, .nav-pills.nav-pills-icons .nav-link.active { + border-radius: 5px !important; + padding-top: 12px; + padding-bottom: 12px; } +.nav-pills.nav-pills-icons i { + display: block; + text-align: center; + font-size: 2em; + line-height: 50px; } +.nav-pills.nav-default .nav-link, .nav-pills.nav-primary .nav-link, .nav-pills.nav-secondary .nav-link, .nav-pills.nav-info .nav-link, .nav-pills.nav-warning .nav-link, .nav-pills.nav-success .nav-link, .nav-pills.nav-danger .nav-link { + border: 1px solid #eeeeee; } +.nav-pills.nav-default .nav-link.active, .nav-pills.nav-primary .nav-link.active, .nav-pills.nav-secondary .nav-link.active, .nav-pills.nav-info .nav-link.active, .nav-pills.nav-warning .nav-link.active, .nav-pills.nav-success .nav-link.active, .nav-pills.nav-danger .nav-link.active { + color: #ffffff !important; } +.nav-pills.nav-default .nav-link.active { + background: #1a2035; + border: 1px solid #1a2035; } +.nav-pills.nav-primary .nav-link.active { + background: #1572E8; + border: 1px solid #1572E8; } +.nav-pills.nav-secondary .nav-link.active { + background: #6861CE; + border: 1px solid #6861CE; } +.nav-pills.nav-info .nav-link.active { + background: #48ABF7; + border: 1px solid #48ABF7; } +.nav-pills.nav-success .nav-link.active { + background: #31CE36; + border: 1px solid #31CE36; } +.nav-pills.nav-warning .nav-link.active { + background: #FFAD46; + border: 1px solid #FFAD46; } +.nav-pills.nav-danger .nav-link.active { + background: #F25961; + border: 1px solid #F25961; } + +/* Size Nav */ +.nav-sm .nav-link { + font-size: 11px !important; + padding: 8px 16px !important; } + +/* Popover */ +.popover { + max-width: 240px; + line-height: 1.7; + border: 0; + box-shadow: 0px 0px 20px 1px rgba(69, 65, 78, 0.2); } + .popover .popover-header { + background: transparent; + font-size: 14px; + border-bottom: 0px; + text-transform: capitalize; + margin-top: 5px; + color: #aaaaaa; + font-weight: 400; } + .popover .popover-body { + margin-bottom: 5px; } + .popover .popover-body p { + font-size: 13px; + margin-bottom: 1rem; } + .popover.bs-popover-top .arrow:before, .popover.bs-popover-bottom .arrow:before, .popover.bs-popover-left .arrow:before, .popover.bs-popover-right .arrow:before { + border: transparent; } + +.popover.bs-popover-auto[x-placement^=right], .popover.bs-popover-right { + margin-left: 10px; } + +.popover.bs-popover-auto[x-placement^=left], .popover.bs-popover-left { + margin-right: 10px; } + +.popover.bs-popover-auto[x-placement^=top], .popover.bs-popover-top { + margin-bottom: 10px; } + +.popover.bs-popover-auto[x-placement^=bottom], .popover.bs-popover-bottom { + margin-top: 10px; } + +/* Progress */ +.progress { + border-radius: 100px; + height: 14px; } + .progress .progress-bar { + border-radius: 100px; } + .progress.progress-sm { + height: 8px; } + .progress.progress-lg { + height: 20px; } + +/* Pagination */ +.pagination > li > a, .pagination > li:first-child > a, .pagination > li:last-child > a, .pagination > li > span, .pagination > li:first-child > span, .pagination > li:last-child > span { + border-radius: 100px !important; + margin: 0 2px; + color: #777777; + border-color: #ddd; } +.pagination.pg-default > li.active > a, .pagination.pg-default > li.active:first-child > a, .pagination.pg-default > li.active:last-child > a, .pagination.pg-default > li.active > span, .pagination.pg-default > li.active:first-child > span, .pagination.pg-default > li.active:last-child > span { + background: #1a2035; + border-color: #1a2035; + color: #ffffff; } +.pagination.pg-primary > li.active > a, .pagination.pg-primary > li.active:first-child > a, .pagination.pg-primary > li.active:last-child > a, .pagination.pg-primary > li.active > span, .pagination.pg-primary > li.active:first-child > span, .pagination.pg-primary > li.active:last-child > span { + background: #1572E8; + border-color: #1572E8; + color: #ffffff; } +.pagination.pg-secondary > li.active > a, .pagination.pg-secondary > li.active:first-child > a, .pagination.pg-secondary > li.active:last-child > a, .pagination.pg-secondary > li.active > span, .pagination.pg-secondary > li.active:first-child > span, .pagination.pg-secondary > li.active:last-child > span { + background: #6861CE; + border-color: #6861CE; + color: #ffffff; } +.pagination.pg-info > li.active > a, .pagination.pg-info > li.active:first-child > a, .pagination.pg-info > li.active:last-child > a, .pagination.pg-info > li.active > span, .pagination.pg-info > li.active:first-child > span, .pagination.pg-info > li.active:last-child > span { + background: #48ABF7; + border-color: #48ABF7; + color: #ffffff; } +.pagination.pg-success > li.active > a, .pagination.pg-success > li.active:first-child > a, .pagination.pg-success > li.active:last-child > a, .pagination.pg-success > li.active > span, .pagination.pg-success > li.active:first-child > span, .pagination.pg-success > li.active:last-child > span { + background: #31CE36; + border-color: #31CE36; + color: #ffffff; } +.pagination.pg-warning > li.active > a, .pagination.pg-warning > li.active:first-child > a, .pagination.pg-warning > li.active:last-child > a, .pagination.pg-warning > li.active > span, .pagination.pg-warning > li.active:first-child > span, .pagination.pg-warning > li.active:last-child > span { + background: #FFAD46; + border-color: #FFAD46; + color: #ffffff; } +.pagination.pg-danger > li.active > a, .pagination.pg-danger > li.active:first-child > a, .pagination.pg-danger > li.active:last-child > a, .pagination.pg-danger > li.active > span, .pagination.pg-danger > li.active:first-child > span, .pagination.pg-danger > li.active:last-child > span { + background: #F25961; + border-color: #F25961; + color: #ffffff; } + +/* Slider */ +.slider-default .ui-slider-range { + background: #1a2035; } + +.slider-primary .ui-slider-range { + background: #1572E8; } + +.slider-secondary .ui-slider-range { + background: #6861CE; } + +.slider-info .ui-slider-range { + background: #48ABF7; } + +.slider-success .ui-slider-range { + background: #31CE36; } + +.slider-warning .ui-slider-range { + background: #FFAD46; } + +.slider-danger .ui-slider-range { + background: #F25961; } + +/* Modal */ +.modal .bg-default .modal-title, .modal .bg-primary .modal-title, .modal .bg-secondary .modal-title, .modal .bg-info .modal-title, .modal .bg-success .modal-title, .modal .bg-warning .modal-title, .modal .bg-danger .modal-title { + color: #ffffff !important; } + +.modal-content { + border-radius: .4rem !important; + border: 0 !important; } + +.activity-feed { + padding: 15px; + list-style: none; } + .activity-feed .feed-item { + position: relative; + padding-bottom: 20px; + padding-left: 30px; + border-left: 2px solid #e4e8eb; } + .activity-feed .feed-item:last-child { + border-color: transparent; } + .activity-feed .feed-item::after { + content: ""; + display: block; + position: absolute; + top: 0; + left: -7px; + width: 12px; + height: 12px; + border-radius: 50%; + background: #177dff; } + +.feed-item-default::after { + background: #1a2035 !important; } + +.feed-item-primary::after { + background: #1572E8 !important; } + +.feed-item-secondary::after { + background: #6861CE !important; } + +.feed-item-success::after { + background: #31CE36 !important; } + +.feed-item-danger::after { + background: #F25961 !important; } + +.feed-item-info::after { + background: #48ABF7 !important; } + +.feed-item-warning::after { + background: #FFAD46 !important; } + +.activity-feed .feed-item .date { + display: block; + position: relative; + top: -5px; + color: #8c96a3; + text-transform: uppercase; + font-size: 13px; } +.activity-feed .feed-item .text { + position: relative; + top: -3px; } + +/* Timeline */ +.timeline { + list-style: none; + padding: 20px 0 20px; + position: relative; } + .timeline:before { + top: 0; + bottom: 0; + position: absolute; + content: " "; + width: 3px; + background-color: #eeeeee; + left: 50%; + margin-left: -1.5px; } + .timeline > li { + margin-bottom: 20px; + position: relative; } + .timeline > li:before { + content: " "; + display: table; } + .timeline > li:after { + content: " "; + display: table; + clear: both; } + .timeline > li:before { + content: " "; + display: table; } + .timeline > li:after { + content: " "; + display: table; + clear: both; } + .timeline > li > .timeline-panel { + width: 50%; + float: left; + border: 1px solid #eeeeee; + background: #ffffff; + border-radius: 3px; + padding: 20px; + position: relative; + -webkit-box-shadow: 0px 1px 20px 1px rgba(69, 65, 78, 0.06); + -moz-box-shadow: 0px 1px 20px 1px rgba(69, 65, 78, 0.06); + box-shadow: 0px 1px 20px 1px rgba(69, 65, 78, 0.06); } + .timeline > li.timeline-inverted + li:not(.timeline-inverted) { + margin-top: -60px; } + .timeline > li:not(.timeline-inverted) { + padding-right: 90px; } + .timeline > li:not(.timeline-inverted) + li.timeline-inverted { + margin-top: -60px; } + .timeline > li.timeline-inverted { + padding-left: 90px; } + .timeline > li.timeline-inverted > .timeline-panel { + float: right; } + .timeline > li.timeline-inverted > .timeline-panel:before { + border-left-width: 0; + border-right-width: 15px; + left: -15px; + right: auto; } + .timeline > li.timeline-inverted > .timeline-panel:after { + border-left-width: 0; + border-right-width: 14px; + left: -14px; + right: auto; } + .timeline > li > .timeline-panel:before { + position: absolute; + top: 26px; + right: -15px; + display: inline-block; + border-top: 15px solid transparent; + border-left: 15px solid #eeeeee; + border-right: 0 solid #eeeeee; + border-bottom: 15px solid transparent; + content: " "; } + .timeline > li > .timeline-panel:after { + position: absolute; + top: 27px; + right: -14px; + display: inline-block; + border-top: 14px solid transparent; + border-left: 14px solid #ffffff; + border-right: 0 solid #ffffff; + border-bottom: 14px solid transparent; + content: " "; } + .timeline > li > .timeline-badge { + color: #ffffff; + width: 50px; + height: 50px; + line-height: 50px; + font-size: 1.8em; + text-align: center; + position: absolute; + top: 16px; + left: 50%; + margin-left: -25px; + background-color: #999999; + z-index: 100; + border-top-right-radius: 50%; + border-top-left-radius: 50%; + border-bottom-right-radius: 50%; + border-bottom-left-radius: 50%; } + +.timeline-badge.default { + background-color: #1a2035 !important; } +.timeline-badge.primary { + background-color: #1572E8 !important; } +.timeline-badge.secondary { + background-color: #6861CE !important; } +.timeline-badge.success { + background-color: #31CE36 !important; } +.timeline-badge.warning { + background-color: #FFAD46 !important; } +.timeline-badge.danger { + background-color: #F25961 !important; } +.timeline-badge.info { + background-color: #48ABF7 !important; } + +.timeline-title { + font-size: 17px; + margin-top: 0; + color: inherit; + font-weight: 400; } + +.timeline-heading i { + font-size: 22px; + display: inline-block; + vertical-align: middle; + margin-right: 5px; } + +.timeline-body > p, .timeline-body > ul { + margin-bottom: 0; } +.timeline-body > p + p { + margin-top: 5px; } + +/* Google Maps */ +.full-screen-maps { + height: 100vh !important; } + +/* jQVMap */ +.vmap { + width: 100%; + min-height: 265px; } + .vmap > svg { + margin: auto; + display: flex; } + .vmap > svg > g { + transition: all ease-in-out .2s; } + +.jqvmap-label, .jqvmap-pin { + pointer-events: none; } + +.jqvmap-label { + position: absolute; + display: none; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #292929; + color: #ffffff; + font-size: smaller; + padding: 3px; } + +.jqvmap-zoomin, .jqvmap-zoomout { + position: absolute; + left: 10px; + border-radius: 13px; + background: #35cd3a; + padding: 6px 7px; + color: #ffffff; + cursor: pointer; + line-height: 10px; + text-align: center; + font-size: 14px; } + +.jqvmap-zoomin { + top: 15px; } + +.jqvmap-zoomout { + top: 45px; } + +.jqvmap-region { + cursor: pointer; } + +.jqvmap-ajax_response { + width: 100%; + height: 500px; } + +.list-group .list-group-header { + font-size: 12px; + font-weight: 600; + padding: .75rem 1rem; } +.list-group .list-group-item { + display: flex; + align-items: stretch; + border-width: 1px 0; + border-color: #ebecec; } +.list-group .list-group-item-figure { + align-self: start; + display: flex; + -ms-flex-align: center; + align-items: center; + color: #a9acb0; } +.list-group .list-group-item-body { + flex: 1; + min-width: 0; + align-self: center; + font-size: .875rem; } +.list-group .list-group-item-text { + margin-bottom: 0; + line-height: 1.25rem; + color: #686f76; } + +.list-group-file-item .list-group-item { + padding: 0px; } +.list-group-file-item .list-group-item-figure { + padding: .75rem 1rem; } +.list-group-file-item .list-group-item-body { + padding: .75rem 0; } + +.list-group-bordered .list-group-item { + border: 1px solid #e3ebf6; } + .list-group-bordered .list-group-item.active { + background: #1572E8; + border-color: #1572E8; } + +.list-group-lg .list-group-item { + padding-top: 1.5rem; + padding-bottom: 1.5rem; } + +.selectgroup { + display: -ms-inline-flexbox; + display: inline-flex; } + +.selectgroup-item { + -ms-flex-positive: 1; + flex-grow: 1; + position: relative; + font-weight: 400 !important; } + .selectgroup-item + .selectgroup-item { + margin-left: -1px; } + .selectgroup-item:not(:first-child) .selectgroup-button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .selectgroup-item:not(:last-child) .selectgroup-button { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.selectgroup-input { + opacity: 0; + position: absolute; + z-index: -1; + top: 0; + left: 0; } + +.selectgroup-button { + display: block; + border: 1px solid rgba(0, 40, 100, 0.12); + text-align: center; + padding: 0.375rem 1rem; + position: relative; + cursor: pointer; + border-radius: 3px; + color: #9aa0ac; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + font-size: 14px; + line-height: 1.5rem; + min-width: 2.375rem; } + +.selectgroup-button-icon { + padding-left: .5rem; + padding-right: .5rem; + font-size: 1rem; } + +.selectgroup-input:checked + .selectgroup-button { + border-color: #1572E8; + z-index: 1; + color: #1572E8; + background: rgba(21, 114, 232, 0.15); } +.selectgroup-input:focus + .selectgroup-button { + border-color: #1572E8; + z-index: 2; + color: #1572E8; + box-shadow: 0 0 0 2px rgba(21, 114, 232, 0.25); } + +.selectgroup-pills { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: start; + align-items: flex-start; } + .selectgroup-pills .selectgroup-item { + margin-right: .5rem; + -ms-flex-positive: 0; + flex-grow: 0; } + .selectgroup-pills .selectgroup-button { + border-radius: 50px !important; } + +.selectgroup.selectgroup-primary .selectgroup-input:checked + .selectgroup-button { + border-color: #1572E8; + color: #1572E8; + background: rgba(21, 114, 232, 0.15); } +.selectgroup.selectgroup-primary .selectgroup-input:focus + .selectgroup-button { + border-color: #1572E8; + color: #1572E8; + box-shadow: 0 0 0 2px rgba(21, 114, 232, 0.25); } +.selectgroup.selectgroup-secondary .selectgroup-input:checked + .selectgroup-button { + border-color: #6861CE; + color: #6861CE; + background: rgba(104, 97, 206, 0.15); } +.selectgroup.selectgroup-secondary .selectgroup-input:focus + .selectgroup-button { + border-color: #6861CE; + color: #6861CE; + box-shadow: 0 0 0 2px rgba(104, 97, 206, 0.25); } +.selectgroup.selectgroup-info .selectgroup-input:checked + .selectgroup-button { + border-color: #48ABF7; + color: #48ABF7; + background: rgba(72, 171, 247, 0.15); } +.selectgroup.selectgroup-info .selectgroup-input:focus + .selectgroup-button { + border-color: #48ABF7; + color: #48ABF7; + box-shadow: 0 0 0 2px rgba(72, 171, 247, 0.25); } +.selectgroup.selectgroup-success .selectgroup-input:checked + .selectgroup-button { + border-color: #31CE36; + color: #31CE36; + background: rgba(49, 206, 54, 0.15); } +.selectgroup.selectgroup-success .selectgroup-input:focus + .selectgroup-button { + border-color: #31CE36; + color: #31CE36; + box-shadow: 0 0 0 2px rgba(49, 206, 54, 0.25); } +.selectgroup.selectgroup-warning .selectgroup-input:checked + .selectgroup-button { + border-color: #FFAD46; + color: #FFAD46; + background: rgba(255, 173, 70, 0.15); } +.selectgroup.selectgroup-warning .selectgroup-input:focus + .selectgroup-button { + border-color: #FFAD46; + color: #FFAD46; + box-shadow: 0 0 0 2px rgba(255, 173, 70, 0.25); } +.selectgroup.selectgroup-danger .selectgroup-input:checked + .selectgroup-button { + border-color: #F25961; + color: #F25961; + background: rgba(242, 89, 97, 0.15); } +.selectgroup.selectgroup-danger .selectgroup-input:focus + .selectgroup-button { + border-color: #F25961; + color: #F25961; + box-shadow: 0 0 0 2px rgba(242, 89, 97, 0.25); } + +.colorinput { + margin: 0; + position: relative; + cursor: pointer; } + +.colorinput-input { + position: absolute; + z-index: -1; + opacity: 0; } + +.colorinput-color { + display: inline-block; + width: 1.75rem; + height: 1.75rem; + border-radius: 3px; + border: 1px solid rgba(0, 40, 100, 0.12); + color: #fff; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); } + .colorinput-color:before { + content: ''; + opacity: 0; + position: absolute; + top: .25rem; + left: .25rem; + height: 1.25rem; + width: 1.25rem; + transition: .3s opacity; + background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") no-repeat center center/50% 50%; } + +.colorinput-input:checked ~ .colorinput-color:before { + opacity: 1; } +.colorinput-input:focus ~ .colorinput-color { + border-color: #467fcf; + box-shadow: 0 0 0 2px rgba(70, 127, 207, 0.25); } + +.imagecheck { + margin: 0; + position: relative; + cursor: pointer; } + +.imagecheck-input { + position: absolute; + z-index: -1; + opacity: 0; } + +.imagecheck-figure { + border: 1px solid rgba(0, 40, 100, 0.12); + border-radius: 3px; + margin: 0; + position: relative; } + +.imagecheck-input:focus ~ .imagecheck-figure { + border-color: #1572E8; + box-shadow: 0 0 0 2px rgba(70, 127, 207, 0.25); } +.imagecheck-input:checked ~ .imagecheck-figure { + border-color: rgba(0, 40, 100, 0.24); } + +.imagecheck-figure:before { + content: ''; + position: absolute; + top: .25rem; + left: .25rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background: #1572E8 url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") no-repeat center center/50% 50%; + color: #fff; + z-index: 1; + border-radius: 3px; + opacity: 0; + transition: .3s opacity; } + +.imagecheck-input:checked ~ .imagecheck-figure:before { + opacity: 1; } + +.imagecheck-image { + max-width: 100%; + opacity: .64; + transition: .3s opacity; } + .imagecheck-image:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; } + .imagecheck-image:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } + +.imagecheck:hover .imagecheck-image { + opacity: 1; } + +.imagecheck-input:focus ~ .imagecheck-figure .imagecheck-image, .imagecheck-input:checked ~ .imagecheck-figure .imagecheck-image { + opacity: 1; } + +.imagecheck-caption { + text-align: center; + padding: .25rem .25rem; + color: #9aa0ac; + font-size: 0.875rem; + transition: .3s color; } + +.imagecheck:hover .imagecheck-caption { + color: #495057; } + +.imagecheck-input:focus ~ .imagecheck-figure .imagecheck-caption, .imagecheck-input:checked ~ .imagecheck-figure .imagecheck-caption { + color: #495057; } + +.loader, .is-loading:after { + display: block; + width: 1.5rem; + height: 1.5rem; + background: transparent; + border: 3px solid #6861CE; + border-bottom-color: transparent; + border-radius: 50%; + animation: 1s spin linear infinite; } + +.loader-lg, .is-loading-lg:after { + width: 2rem; + height: 2rem; + border-width: 5px; } + +.loader-sm, .is-loading-sm:after { + width: 1rem; + height: 1rem; + border-width: 2px; } + +.is-loading { + position: relative; + color: transparent !important; } + .is-loading > * { + opacity: 0.2 !important; } + .is-loading:after { + position: absolute; + top: calc(50% - 1.5rem/2); + left: calc(50% - 1.5rem/2); + content: ''; } + +.is-loading-lg:after { + top: calc(50% - 2rem/2); + left: calc(50% - 2rem/2); } + +.is-loading-sm:after { + top: calc(50% - 1rem/2); + left: calc(50% - 1rem/2); } + +.btn-default.is-loading:after, .card-default.is-loading:after, .btn-primary.is-loading:after, .card-primary.is-loading:after, .btn-secondary.is-loading:after, .card-secondary.is-loading:after, .btn-info.is-loading:after, .card-info.is-loading:after, .btn-success.is-loading:after, .card-success.is-loading:after, .btn-warning.is-loading:after, .card-warning.is-loading:after, .btn-danger.is-loading:after, .card-danger.is-loading:after, .loader-default, +.is-loading-default:after, .loader-primary, +.is-loading-primary:after, .loader-secondary, +.is-loading-secondary:after, .loader-info, +.is-loading-info:after, .loader-success, +.is-loading-success:after, .loader-warning, +.is-loading-warning:after, .loader-danger, +.is-loading-danger:after { + border-bottom-color: transparent !important; } + +.btn-default.is-loading:after, .card-default.is-loading:after, .btn-primary.is-loading:after, .card-primary.is-loading:after, .btn-secondary.is-loading:after, .card-secondary.is-loading:after, .btn-info.is-loading:after, .card-info.is-loading:after, .btn-success.is-loading:after, .card-success.is-loading:after, .btn-warning.is-loading:after, .card-warning.is-loading:after, .btn-danger.is-loading:after, .card-danger.is-loading:after { + border-color: #fff; } + +.loader-default, +.is-loading-default:after { + border-color: #1a2035; } + +.loader-primary, +.is-loading-primary:after { + border-color: #1572E8; } + +.loader-secondary, +.is-loading-secondary:after { + border-color: #6861CE; } + +.loader-info, +.is-loading-info:after { + border-color: #48ABF7; } + +.loader-success, +.is-loading-success:after { + border-color: #31CE36; } + +.loader-warning, +.is-loading-warning:after { + border-color: #FFAD46; } + +.loader-danger, +.is-loading-danger:after { + border-color: #F25961; } + +@keyframes spin { + from { + transform: rotate(0deg); } + to { + transform: rotate(360deg); } } +/* jQuery Ui */ +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; } + +.ui-helper-hidden { + display: none; } + +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; } + +.ui-helper-clearfix:after, .ui-helper-clearfix:before { + content: ""; + display: table; + border-collapse: collapse; } +.ui-helper-clearfix:after { + clear: both; } + +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter: Alpha(Opacity=0); } + +.ui-front { + z-index: 100; } + +.ui-state-disabled { + cursor: default !important; + pointer-events: none; } + +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; } + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; } + +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.ui-resizable { + position: relative; } + +.ui-resizable-handle { + position: absolute; + font-size: .1px; + display: block; + -ms-touch-action: none; + touch-action: none; } + +.ui-resizable-autohide .ui-resizable-handle, .ui-resizable-disabled .ui-resizable-handle { + display: none; } + +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; } + +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; } + +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; } + +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; } + +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; } + +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; } + +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; } + +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; } + +.ui-selectable { + -ms-touch-action: none; + touch-action: none; } + +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted #000; } + +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; } + +.ui-slider { + position: relative; + text-align: left; + background: #ddd; } + .ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1em; + height: 1em; + cursor: default; + -ms-touch-action: none; + touch-action: none; } + .ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; } + .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; } + +.ui-slider-horizontal { + height: .4em; } + .ui-slider-horizontal .ui-slider-handle { + top: -.4em; + margin-left: -.6em; } + .ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; } + .ui-slider-horizontal .ui-slider-range-min { + left: 0; } + .ui-slider-horizontal .ui-slider-range-max { + right: 0; } + +.ui-slider-vertical { + width: .8em; + height: 100px; } + .ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; } + .ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; } + .ui-slider-vertical .ui-slider-range-min { + bottom: 0; } + .ui-slider-vertical .ui-slider-range-max { + top: 0; } + +.ui-slider-handle { + background: #ffffff; + background: -moz-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ffffff), color-stop(100%, #f7f7f7)); + background: -webkit-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: -o-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: -ms-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: linear-gradient(to bottom, #ffffff 0, #f7f7f7 100%); + border-radius: 50px; + box-shadow: 0 1px 4px 0 #9191ab !important; } + .ui-slider-handle:focus { + background: #ffffff; + background: -moz-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ffffff), color-stop(100%, #f7f7f7)); + background: -webkit-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: -o-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: -ms-linear-gradient(top, #ffffff 0, #f7f7f7 100%); + background: linear-gradient(to bottom, #ffffff 0, #f7f7f7 100%); + border-radius: 50px; + box-shadow: 0 1px 4px 0 #9191ab !important; } + +/* jQuery Scrollbar */ +.scroll-wrapper { + overflow: hidden !important; + padding: 0 !important; + position: relative; } + .scroll-wrapper > .scroll-content { + border: none !important; + box-sizing: content-box !important; + height: auto; + left: 0; + margin: 0; + max-height: none; + max-width: none !important; + overflow: scroll !important; + padding: 0; + position: relative !important; + top: 0; + width: auto !important; } + .scroll-wrapper > .scroll-content::-webkit-scrollbar { + height: 0; + width: 0; } + +.scroll-element { + display: none; + box-sizing: content-box; } + .scroll-element div { + box-sizing: content-box; } + .scroll-element.scroll-x.scroll-scrollx_visible, .scroll-element.scroll-y.scroll-scrolly_visible { + display: block; } + .scroll-element .scroll-arrow, .scroll-element .scroll-bar { + cursor: default; } + +.scroll-textarea { + border: 1px solid #ccc; + border-top-color: #999; } + .scroll-textarea > .scroll-content { + overflow: hidden !important; } + .scroll-textarea > .scroll-content > textarea { + border: none !important; + box-sizing: border-box; + height: 100% !important; + margin: 0; + max-height: none !important; + max-width: none !important; + overflow: scroll !important; + outline: 0; + padding: 2px; + position: relative !important; + top: 0; + width: 100% !important; } + +.scrollbar-inner > .scroll-element .scroll-element_outer, .scrollbar-outer > .scroll-element .scroll-element_outer { + overflow: hidden; } + +.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar { + height: 0; + width: 0; } + +.scrollbar-inner > .scroll-element { + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; } + .scrollbar-inner > .scroll-element div { + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .scrollbar-inner > .scroll-element.scroll-x { + bottom: 2px; + height: 7px; + left: 0; + width: 100%; } + .scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size, .scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track { + left: -12px; } + .scrollbar-inner > .scroll-element.scroll-y { + height: 100%; + right: 2px; + top: 0; + width: 7px; } + .scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size, .scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track { + top: -12px; } + .scrollbar-inner > .scroll-element .scroll-bar, .scrollbar-inner > .scroll-element .scroll-element_outer, .scrollbar-inner > .scroll-element .scroll-element_track { + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; } + .scrollbar-inner > .scroll-element .scroll-bar { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + opacity: .4; } + .scrollbar-inner > .scroll-element .scroll-element_track { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + filter: alpha(opacity=40); + opacity: .4; + background-color: #e0e0e0; } + .scrollbar-inner > .scroll-element .scroll-bar { + background-color: #c2c2c2; } + .scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar, .scrollbar-inner > .scroll-element:hover .scroll-bar { + background-color: #919191; } + +.scrollbar-outer > .scroll-element { + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; + background-color: #ffffff; } + .scrollbar-outer > .scroll-element div { + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .scrollbar-outer > .scroll-element.scroll-x { + bottom: 0; + height: 12px; + left: 0; + width: 100%; } + .scrollbar-outer > .scroll-element.scroll-y { + height: 100%; + right: 0; + top: 0; + width: 12px; } + .scrollbar-outer > .scroll-element.scroll-x .scroll-element_outer { + height: 7px; + top: 2px; } + .scrollbar-outer > .scroll-element.scroll-y .scroll-element_outer { + left: 2px; + width: 7px; } + .scrollbar-outer > .scroll-element .scroll-element_track { + background-color: #eee; } + .scrollbar-outer > .scroll-element .scroll-bar, .scrollbar-outer > .scroll-element .scroll-element_outer, .scrollbar-outer > .scroll-element .scroll-element_track { + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; } + .scrollbar-outer > .scroll-element .scroll-bar { + background-color: #d9d9d9; } + .scrollbar-outer > .scroll-element .scroll-bar:hover { + background-color: #c2c2c2; } + .scrollbar-outer > .scroll-element.scroll-draggable .scroll-bar { + background-color: #919191; } +.scrollbar-outer > .scroll-content.scroll-scrolly_visible { + left: -12px; + margin-left: 12px; } +.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size, .scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track { + left: -14px; } +.scrollbar-outer > .scroll-content.scroll-scrollx_visible { + top: -12px; + margin-top: 12px; } +.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size, .scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track { + top: -14px; } +.scrollbar-outer > .scroll-element.scroll-x .scroll-bar { + min-width: 10px; } +.scrollbar-outer > .scroll-element.scroll-y .scroll-bar { + min-height: 10px; } + +.scrollbar-macosx > .scroll-element { + background: 0 0; + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; } + .scrollbar-macosx > .scroll-element div { + background: 0 0; + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .scrollbar-macosx > .scroll-element .scroll-element_track { + display: none; } + .scrollbar-macosx > .scroll-element .scroll-bar { + background-color: #6C6E71; + display: block; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + opacity: 0; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; + -webkit-transition: opacity .2s linear; + -moz-transition: opacity .2s linear; + -o-transition: opacity .2s linear; + -ms-transition: opacity .2s linear; + transition: opacity .2s linear; } +.scrollbar-macosx:hover > .scroll-element .scroll-bar { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; + filter: alpha(opacity=70); + opacity: .7; } +.scrollbar-macosx > .scroll-element.scroll-draggable .scroll-bar { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; + filter: alpha(opacity=70); + opacity: .7; } +.scrollbar-macosx > .scroll-element.scroll-x { + bottom: 0; + height: 0; + left: 0; + min-width: 100%; + overflow: visible; + width: 100%; } +.scrollbar-macosx > .scroll-element.scroll-y { + height: 100%; + min-height: 100%; + right: 0; + top: 0; + width: 0; } +.scrollbar-macosx > .scroll-element.scroll-x .scroll-bar { + height: 7px; + min-width: 10px; + top: -9px; } +.scrollbar-macosx > .scroll-element.scroll-y .scroll-bar { + left: -9px; + min-height: 10px; + width: 7px; } +.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_outer { + left: 2px; } +.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_size { + left: -4px; } +.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_outer { + top: 2px; } +.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_size { + top: -4px; } +.scrollbar-macosx > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size { + left: -11px; } +.scrollbar-macosx > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size { + top: -11px; } + +.scrollbar-light > .scroll-element { + border: none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + z-index: 10; + background-color: #ffffff; } + .scrollbar-light > .scroll-element div { + border: none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + z-index: 10; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .scrollbar-light > .scroll-element .scroll-element_outer { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; } + .scrollbar-light > .scroll-element .scroll-element_size { + background: -moz-linear-gradient(left, #dbdbdb 0, #e8e8e8 100%); + background: -webkit-gradient(linear, left top, right top, color-stop(0, #dbdbdb), color-stop(100%, #e8e8e8)); + background: -webkit-linear-gradient(left, #dbdbdb 0, #e8e8e8 100%); + background: -o-linear-gradient(left, #dbdbdb 0, #e8e8e8 100%); + background: -ms-linear-gradient(left, #dbdbdb 0, #e8e8e8 100%); + background: linear-gradient(to right, #dbdbdb 0, #e8e8e8 100%); + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; } + .scrollbar-light > .scroll-element.scroll-x { + bottom: 0; + height: 17px; + left: 0; + min-width: 100%; + width: 100%; } + .scrollbar-light > .scroll-element.scroll-y { + height: 100%; + min-height: 100%; + right: 0; + top: 0; + width: 17px; } + .scrollbar-light > .scroll-element .scroll-bar { + background: -moz-linear-gradient(left, #fefefe 0, #f5f5f5 100%); + background: -webkit-gradient(linear, left top, right top, color-stop(0, #fefefe), color-stop(100%, #f5f5f5)); + background: -webkit-linear-gradient(left, #fefefe 0, #f5f5f5 100%); + background: -o-linear-gradient(left, #fefefe 0, #f5f5f5 100%); + background: -ms-linear-gradient(left, #fefefe 0, #f5f5f5 100%); + background: linear-gradient(to right, #fefefe 0, #f5f5f5 100%); + border: 1px solid #dbdbdb; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; } +.scrollbar-light > .scroll-content.scroll-scrolly_visible { + left: -17px; + margin-left: 17px; } +.scrollbar-light > .scroll-content.scroll-scrollx_visible { + top: -17px; + margin-top: 17px; } +.scrollbar-light > .scroll-element.scroll-x .scroll-bar { + height: 10px; + min-width: 10px; + top: 0; } +.scrollbar-light > .scroll-element.scroll-y .scroll-bar { + left: 0; + min-height: 10px; + width: 10px; } +.scrollbar-light > .scroll-element.scroll-x .scroll-element_outer { + height: 12px; + left: 2px; + top: 2px; } +.scrollbar-light > .scroll-element.scroll-x .scroll-element_size { + left: -4px; } +.scrollbar-light > .scroll-element.scroll-y .scroll-element_outer { + left: 2px; + top: 2px; + width: 12px; } +.scrollbar-light > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size, .scrollbar-light > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track { + left: -19px; } +.scrollbar-light > .scroll-element.scroll-y .scroll-element_size { + top: -4px; } +.scrollbar-light > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size, .scrollbar-light > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track { + top: -19px; } + +.scrollbar-rail > .scroll-element { + border: none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + z-index: 10; + background-color: #ffffff; } + .scrollbar-rail > .scroll-element div { + border: none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + z-index: 10; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .scrollbar-rail > .scroll-element .scroll-element_size { + background-color: #999; + background-color: rgba(0, 0, 0, 0.3); } + .scrollbar-rail > .scroll-element .scroll-element_outer:hover .scroll-element_size { + background-color: #666; + background-color: rgba(0, 0, 0, 0.5); } + .scrollbar-rail > .scroll-element.scroll-x { + bottom: 0; + height: 12px; + left: 0; + min-width: 100%; + padding: 3px 0 2px; + width: 100%; } + .scrollbar-rail > .scroll-element.scroll-y { + height: 100%; + min-height: 100%; + padding: 0 2px 0 3px; + right: 0; + top: 0; + width: 12px; } + .scrollbar-rail > .scroll-element .scroll-bar { + background-color: #d0b9a0; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5); } + .scrollbar-rail > .scroll-element .scroll-element_outer:hover .scroll-bar { + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6); } +.scrollbar-rail > .scroll-content.scroll-scrolly_visible { + left: -17px; + margin-left: 17px; } +.scrollbar-rail > .scroll-content.scroll-scrollx_visible { + margin-top: 17px; + top: -17px; } +.scrollbar-rail > .scroll-element.scroll-x .scroll-bar { + height: 10px; + min-width: 10px; + top: 1px; } +.scrollbar-rail > .scroll-element.scroll-y .scroll-bar { + left: 1px; + min-height: 10px; + width: 10px; } +.scrollbar-rail > .scroll-element.scroll-x .scroll-element_outer { + height: 15px; + left: 5px; } +.scrollbar-rail > .scroll-element.scroll-x .scroll-element_size { + height: 2px; + left: -10px; + top: 5px; } +.scrollbar-rail > .scroll-element.scroll-y .scroll-element_outer { + top: 5px; + width: 15px; } +.scrollbar-rail > .scroll-element.scroll-y .scroll-element_size { + left: 5px; + top: -10px; + width: 2px; } +.scrollbar-rail > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size, .scrollbar-rail > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track { + left: -25px; } +.scrollbar-rail > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size, .scrollbar-rail > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track { + top: -25px; } + +.scrollbar-dynamic > .scroll-element { + background: 0 0; + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; } + .scrollbar-dynamic > .scroll-element div { + background: 0 0; + border: none; + margin: 0; + padding: 0; + position: absolute; + z-index: 10; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .scrollbar-dynamic > .scroll-element.scroll-x { + bottom: 2px; + height: 7px; + left: 0; + min-width: 100%; + width: 100%; } + .scrollbar-dynamic > .scroll-element.scroll-y { + height: 100%; + min-height: 100%; + right: 2px; + top: 0; + width: 7px; } + .scrollbar-dynamic > .scroll-element .scroll-element_outer { + opacity: .3; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; } + .scrollbar-dynamic > .scroll-element .scroll-element_size { + background-color: #ccc; + opacity: 0; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-transition: opacity .2s; + -moz-transition: opacity .2s; + -o-transition: opacity .2s; + -ms-transition: opacity .2s; + transition: opacity .2s; } + .scrollbar-dynamic > .scroll-element .scroll-bar { + background-color: #6c6e71; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; } + .scrollbar-dynamic > .scroll-element.scroll-x .scroll-bar { + bottom: 0; + height: 7px; + min-width: 24px; + top: auto; } + .scrollbar-dynamic > .scroll-element.scroll-y .scroll-bar { + left: auto; + min-height: 24px; + right: 0; + width: 7px; } + .scrollbar-dynamic > .scroll-element.scroll-x .scroll-element_outer { + bottom: 0; + top: auto; + left: 2px; + -webkit-transition: height .2s; + -moz-transition: height .2s; + -o-transition: height .2s; + -ms-transition: height .2s; + transition: height .2s; } + .scrollbar-dynamic > .scroll-element.scroll-y .scroll-element_outer { + left: auto; + right: 0; + top: 2px; + -webkit-transition: width .2s; + -moz-transition: width .2s; + -o-transition: width .2s; + -ms-transition: width .2s; + transition: width .2s; } + .scrollbar-dynamic > .scroll-element.scroll-x .scroll-element_size { + left: -4px; } + .scrollbar-dynamic > .scroll-element.scroll-y .scroll-element_size { + top: -4px; } + .scrollbar-dynamic > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size { + left: -11px; } + .scrollbar-dynamic > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size { + top: -11px; } + .scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer, .scrollbar-dynamic > .scroll-element:hover .scroll-element_outer { + overflow: hidden; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; + filter: alpha(opacity=70); + opacity: .7; } + .scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer .scroll-element_size, .scrollbar-dynamic > .scroll-element:hover .scroll-element_outer .scroll-element_size { + opacity: 1; } + .scrollbar-dynamic > .scroll-element.scroll-draggable .scroll-element_outer .scroll-bar, .scrollbar-dynamic > .scroll-element:hover .scroll-element_outer .scroll-bar { + height: 100%; + width: 100%; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; } + .scrollbar-dynamic > .scroll-element.scroll-x.scroll-draggable .scroll-element_outer, .scrollbar-dynamic > .scroll-element.scroll-x:hover .scroll-element_outer { + height: 20px; + min-height: 7px; } + .scrollbar-dynamic > .scroll-element.scroll-y.scroll-draggable .scroll-element_outer, .scrollbar-dynamic > .scroll-element.scroll-y:hover .scroll-element_outer { + min-width: 7px; + width: 20px; } + +.scrollbar-chrome > .scroll-element { + border: none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + z-index: 10; + background-color: #ffffff; } + .scrollbar-chrome > .scroll-element div { + border: none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + z-index: 10; + display: block; + height: 100%; + left: 0; + top: 0; + width: 100%; } + .scrollbar-chrome > .scroll-element .scroll-element_track { + background: #f1f1f1; + border: 1px solid #dbdbdb; } + .scrollbar-chrome > .scroll-element.scroll-x { + bottom: 0; + height: 16px; + left: 0; + min-width: 100%; + width: 100%; } + .scrollbar-chrome > .scroll-element.scroll-y { + height: 100%; + min-height: 100%; + right: 0; + top: 0; + width: 16px; } + .scrollbar-chrome > .scroll-element .scroll-bar { + background-color: #d9d9d9; + border: 1px solid #bdbdbd; + cursor: default; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; } + .scrollbar-chrome > .scroll-element .scroll-bar:hover { + background-color: #c2c2c2; + border-color: #a9a9a9; } + .scrollbar-chrome > .scroll-element.scroll-draggable .scroll-bar { + background-color: #919191; + border-color: #7e7e7e; } +.scrollbar-chrome > .scroll-content.scroll-scrolly_visible { + left: -16px; + margin-left: 16px; } +.scrollbar-chrome > .scroll-content.scroll-scrollx_visible { + top: -16px; + margin-top: 16px; } +.scrollbar-chrome > .scroll-element.scroll-x .scroll-bar { + height: 5px; + min-width: 10px; + top: 3px; } +.scrollbar-chrome > .scroll-element.scroll-y .scroll-bar { + left: 3px; + min-height: 10px; + width: 5px; } +.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_outer { + border-left: 1px solid #dbdbdb; } +.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_track { + height: 14px; + left: -3px; } +.scrollbar-chrome > .scroll-element.scroll-x .scroll-element_size { + height: 14px; + left: -4px; } +.scrollbar-chrome > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size, .scrollbar-chrome > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track { + left: -19px; } +.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_outer { + border-top: 1px solid #dbdbdb; } +.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_track { + top: -3px; + width: 14px; } +.scrollbar-chrome > .scroll-element.scroll-y .scroll-element_size { + top: -4px; + width: 14px; } +.scrollbar-chrome > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size, .scrollbar-chrome > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track { + top: -19px; } + +/*! +* animate.css -http://daneden.me/animate +* Version - 3.6.0 +* Licensed under the MIT license - http://opensource.org/licenses/MIT +* +* Copyright (c) 2018 Daniel Eden +*/ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + .animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +@-webkit-keyframes bounce { + from, 20%, 53%, 80%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 40%, 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); } } +@keyframes bounce { + from, 20%, 53%, 80%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 40%, 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); } } +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + +@-webkit-keyframes flash { + from, 50%, to { + opacity: 1; } + 25%, 75% { + opacity: 0; } } +@keyframes flash { + from, 50%, to { + opacity: 1; } + 25%, 75% { + opacity: 0; } } +.flash { + -webkit-animation-name: flash; + animation-name: flash; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; } + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; } + +@-webkit-keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } } +@keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } } +.shake { + -webkit-animation-name: shake; + animation-name: shake; } + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } } +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } } +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; } + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); } + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); } } +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); } + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); } } +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; } + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 10%, 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } + 10%, 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.tada { + -webkit-animation-name: tada; + animation-name: tada; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; } + +@-webkit-keyframes jello { + from, 11.1%, to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); } + 77.7% { + -webkit-transform: skewX(0.39063deg) skewY(0.39063deg); + transform: skewX(0.39063deg) skewY(0.39063deg); } + 88.8% { + -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg); + transform: skewX(-0.19531deg) skewY(-0.19531deg); } } +@keyframes jello { + from, 11.1%, to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); } + 77.7% { + -webkit-transform: skewX(0.39063deg) skewY(0.39063deg); + transform: skewX(0.39063deg) skewY(0.39063deg); } + 88.8% { + -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg); + transform: skewX(-0.19531deg) skewY(-0.19531deg); } } +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; } + +@-webkit-keyframes bounceIn { + from, 20%, 40%, 60%, 80%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); } + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +@keyframes bounceIn { + from, 20%, 40%, 60%, 80%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); } + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); } + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); } } +.bounceIn { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceIn; + animation-name: bounceIn; } + +@-webkit-keyframes bounceInDown { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInDown { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; } + +@-webkit-keyframes bounceInLeft { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInLeft { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; } + +@-webkit-keyframes bounceInRight { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInRight { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; } + +@-webkit-keyframes bounceInUp { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes bounceInUp { + from, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; } + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } } +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } } +.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceOut; + animation-name: bounceOut; } + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; } + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; } + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; } + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; } + +@-webkit-keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } +@keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; } + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; } + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; } + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; } + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; } + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; } + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; } + +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; } + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; } + +@-webkit-keyframes fadeOut { + from { + opacity: 1; } + to { + opacity: 0; } } +@keyframes fadeOut { + from { + opacity: 1; } + to { + opacity: 0; } } +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; } + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +@keyframes fadeOutDown { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; } + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +@keyframes fadeOutDownBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; } + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +@keyframes fadeOutLeft { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; } + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +@keyframes fadeOutLeftBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; } + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +@keyframes fadeOutRight { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; } + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +@keyframes fadeOutRightBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; } + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +@keyframes fadeOutUp { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; } + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +@keyframes fadeOutUpBig { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; } + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } } +@keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } } +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; } + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; } + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; } + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; } } +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; } } +.flipOutX { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; } + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; } } +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; } } +.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; } + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; } } +@keyframes lightSpeedOut { + from { + opacity: 1; } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; } } +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; } + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; } + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; } + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; } + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } } +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; } + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; } } +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; } } +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; } + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } } +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; } } +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; } + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; } + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; } } +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; } + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; } } +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; } } +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; } + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; } } +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; } } +.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-name: hinge; + animation-name: hinge; } + +@-webkit-keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } } +@keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } } +.jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; } + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ +@-webkit-keyframes rollOut { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } +@keyframes rollOut { + from { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; } + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 50% { + opacity: 1; } } +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 50% { + opacity: 1; } } +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; } + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; } + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; } + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; } + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; } + +@-webkit-keyframes zoomOut { + from { + opacity: 1; } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + to { + opacity: 0; } } +@keyframes zoomOut { + from { + opacity: 1; } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + to { + opacity: 0; } } +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; } + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; } + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; } } +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; } } +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; } + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; } } +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; } } +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; } + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; } + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; } + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; } + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; } + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; } + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; } + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; } + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; } + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; } + +/* Sweet Alert */ +.swal-footer { + text-align: center !important; + margin-bottom: 20px !important; } + +/* Datatable */ +table.dataTable { + clear: both; + margin-top: 15px !important; + margin-bottom: 15px !important; + max-width: none !important; + border-collapse: separate !important; } + table.dataTable td, table.dataTable th { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + table.dataTable td.dataTables_empty, table.dataTable th.dataTables_empty { + text-align: center; } + table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_length label { + font-weight: normal; + text-align: left; + white-space: nowrap; } +div.dataTables_wrapper div.dataTables_length select { + width: 75px; + display: inline-block; } +div.dataTables_wrapper div.dataTables_filter { + text-align: right; } + div.dataTables_wrapper div.dataTables_filter label { + font-weight: normal; + white-space: nowrap; + text-align: left; } + div.dataTables_wrapper div.dataTables_filter input { + margin-left: 0.5em; + display: inline-block; + width: auto; } +div.dataTables_wrapper div.dataTables_info { + padding-top: 0.85em; + white-space: nowrap; } +div.dataTables_wrapper div.dataTables_paginate { + margin: 0; + white-space: nowrap; + text-align: right; } + div.dataTables_wrapper div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; + justify-content: flex-end; } +div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 1em 0; } + +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > td.sorting_asc, table.dataTable thead > tr > td.sorting_desc, table.dataTable thead > tr > td.sorting { + padding-right: 30px; } +table.dataTable thead > tr > th:active, table.dataTable thead > tr > td:active { + outline: none; } +table.dataTable thead .sorting, table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc, table.dataTable thead .sorting_asc_disabled, table.dataTable thead .sorting_desc_disabled { + cursor: pointer; + position: relative; } +table.dataTable thead .sorting:before, table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:before, table.dataTable thead .sorting_desc:after, table.dataTable thead .sorting_asc_disabled:before, table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:before, table.dataTable thead .sorting_desc_disabled:after { + position: absolute; + bottom: 0.9em; + display: block; + opacity: 0.5; } +table.dataTable thead .sorting:before, table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_desc:before, table.dataTable thead .sorting_asc_disabled:before, table.dataTable thead .sorting_desc_disabled:before { + right: 1em; + content: "\2191"; + font-size: 15px; } +table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:after, table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:after { + right: 0.5em; + content: "\2193"; + font-size: 15px; } +table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_desc:after { + opacity: 1; } +table.dataTable thead .sorting_asc_disabled:before, table.dataTable thead .sorting_desc_disabled:after { + opacity: 0; } + +div.dataTables_scrollHead table.dataTable { + margin-bottom: 0 !important; } +div.dataTables_scrollBody table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; } + div.dataTables_scrollBody table thead .sorting:after, div.dataTables_scrollBody table thead .sorting_asc:after, div.dataTables_scrollBody table thead .sorting_desc:after { + display: none; } + div.dataTables_scrollBody table tbody tr:first-child th, div.dataTables_scrollBody table tbody tr:first-child td { + border-top: none; } +div.dataTables_scrollFoot > .dataTables_scrollFootInner { + box-sizing: content-box; } + div.dataTables_scrollFoot > .dataTables_scrollFootInner > table { + margin-top: 0 !important; + border-top: none; } + +@media screen and (max-width: 767px) { + div.dataTables_wrapper div.dataTables_length, div.dataTables_wrapper div.dataTables_filter, div.dataTables_wrapper div.dataTables_info, div.dataTables_wrapper div.dataTables_paginate { + text-align: center; + margin-top: 11px; + margin-bottom: 10px; } + div.dataTables_wrapper div div.dataTables_paginate ul.pagination { + flex-wrap: wrap !important; + justify-content: center !important; } + div.dataTables_wrapper div div.dataTables_paginate ul.pagination li { + margin-bottom: 10px; } + div.dataTables_wrapper div div.dataTables_paginate ul.pagination li a { + font-size: 11px; } } +table.dataTable.table-sm > thead > tr > th { + padding-right: 20px; } +table.dataTable.table-sm .sorting:before, table.dataTable.table-sm .sorting_asc:before, table.dataTable.table-sm .sorting_desc:before { + top: 5px; + right: 0.85em; } +table.dataTable.table-sm .sorting:after, table.dataTable.table-sm .sorting_asc:after, table.dataTable.table-sm .sorting_desc:after { + top: 5px; } +table.table-bordered.dataTable th, table.table-bordered.dataTable td { + border-left-width: 0; } +table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable td:last-child { + border-right-width: 0; } +table.table-bordered.dataTable tbody th, table.table-bordered.dataTable tbody td { + border-bottom-width: 0; } + +div.dataTables_scrollHead table.table-bordered { + border-bottom-width: 0; } +div.table-responsive > div.dataTables_wrapper > div.row { + margin: 0; } + div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child, div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { + padding-left: 0; + padding-right: 0; } + +/* Responsive */ +@media screen and (max-width: 576px) { + .row-card-no-pd [class*=col-] .card:before { + width: calc(100% - 30px) !important; + right: 15px !important; + height: 1px !important; } + .row-card-no-pd [class*=col-]:first-child .card:before { + display: none !important; } } +@media screen and (min-width: 991px) { + .main-panel.full-height > .content, .main-panel.full-height > .content-full { + margin-top: 0; } + .main-panel.full-height .navbar-header { + min-height: 62px; } + + .logo-header { + line-height: 57px; } + + .toggle-nav-search { + display: none; } + + #search-nav { + display: block !important; } + + .sidebar .scroll-element { + opacity: 0; + transition: all .2s; } + .sidebar:hover .scroll-element { + opacity: 1; } + + .sidebar[data-background-color]:before { + background: rgba(255, 255, 255, 0.2) !important; + z-index: 1000; } } +@media screen and (max-width: 991px) { + .main-header[data-background-color] .navbar-header { + border-top: 1px solid rgba(0, 0, 0, 0.1); } + + .sidebar { + position: fixed; + left: 0 !important; + right: 0; + -webkit-transform: translate3d(-270px, 0, 0); + -moz-transform: translate3d(-270px, 0, 0); + -o-transform: translate3d(-270px, 0, 0); + -ms-transform: translate3d(-270px, 0, 0); + transform: translate3d(-270px, 0, 0) !important; + transition: all .5s; + margin-top: 0px; } + .sidebar:before { + background: none; } + + .nav_open .sidebar { + -webkit-transform: translate3d(0px, 0, 0); + -moz-transform: translate3d(0px, 0, 0); + -o-transform: translate3d(0px, 0, 0); + -ms-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0) !important; + border-right: 1px solid #f1f1f1; } + + .sidebar .sidebar-wrapper { + padding-top: 0px; } + .sidebar .sidebar-wrapper .sidebar-content { + padding-top: 0px !important; } + .sidebar .sidebar-wrapper .scroll-element.scroll-y { + top: 0px !important; } + + .nav_open { + overflow: hidden !important; } + .nav_open .wrapper { + overflow-x: hidden; } + .nav_open .main-panel, .nav_open .main-header { + -webkit-transform: translate3d(250px, 0, 0); + -moz-transform: translate3d(250px, 0, 0); + -o-transform: translate3d(250px, 0, 0); + -ms-transform: translate3d(250px, 0, 0); + transform: translate3d(250px, 0, 0) !important; } + + .quick_sidebar_open .quick-sidebar { + width: 350px; } + + .main-header { + transition: all .5s; } + + #search-nav { + margin: 0 auto !important; } + + .main-panel { + width: 100%; + transition: all .5s; } + .main-panel .page-header .dropdown-menu:after { + right: 16px !important; } + + .page-inner { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } + + .page-sidebar { + background: #fff; } + + .logo-header { + display: flex; + width: 100% !important; + text-align: left; + position: relative; + padding-left: 15px; + padding-right: 15px; } + .logo-header .logo { + position: absolute; + left: 50%; + transform: translateX(-50%); } + .logo-header .navbar-toggler { + height: 100%; + margin-left: 0px !important; + opacity: 1; + display: block; + order: 1; } + .logo-header .more { + opacity: 1; + color: #545454; + cursor: pointer; + display: inline-block; + line-height: 56px; + order: 3; + width: unset; + margin-left: auto; } + .logo-header .navbar-brand { + position: unset !important; + margin-right: 0px; } + + .nav-search { + width: 100%; + margin-right: 0 !important; } + + .navbar-header { + position: absolute; + width: 100%; + transform: translate3d(0, -200px, 0) !important; + transition: all .5s; } + + .topbar_open .navbar-header { + transform: translate3d(0, 61px, 0) !important; + padding: 6px; } + .topbar_open .navbar-header .navbar-nav > .nav-item .nav-link i { + font-size: 19px; } + .topbar_open .navbar-header .navbar-nav > .nav-item:last-child .nav-link { + padding: 0px !important; } + .topbar_open .navbar-header .navbar-nav > .nav-item:last-child .quick-sidebar-toggler { + padding-left: 5px !important; } + .topbar_open .toggle-nav-search { + display: list-item; } + .topbar_open #search-nav { + text-align: center; + width: 100%; + padding: 10px 15px 0px; + order: 1; } + .topbar_open .main-panel { + transform: translate3d(0, 62px, 0) !important; } + .topbar_open > .content { + margin-top: 0px !important; } + + .nav_open.topbar_open .main-panel { + transform: translate3d(250px, 60px, 0) !important; } + + .navbar-header .navbar-nav { + width: 100%; + flex-direction: row; + justify-content: center; + margin-left: 0px !important; + position: relative; } + .navbar-header .navbar-nav .dropdown { + position: unset; } + .navbar-header .navbar-nav .dropdown-menu { + position: absolute; + left: 0; + right: 0; + margin: 0 auto; + max-width: 280px; } + + .profile-pic span { + display: none; } + + .nav-toggle { + display: none; } + + .page-title { + font-size: 18px; } + + .card .card-title { + font-size: 18px; } + + .mail-wrapper .mail-option .email-filters-left { + width: 50%; } + .mail-wrapper .mail-option .email-filters-left .btn-group { + margin-bottom: 10px; } + + /* Dropzone */ + .dropzone { + padding: 20px 15px !important; } + .dropzone .dz-message .message { + font-size: 23px; } + .dropzone .dz-message .note { + font-size: 15px; } } +@media screen and (min-width: 856px) { + .mail-wrapper .aside-nav { + display: block !important; } } +@media screen and (max-width: 856px) { + .mail-wrapper { + flex-direction: column; } + .mail-wrapper .page-aside { + width: 100%; + height: unset; + min-height: unset; + border-bottom: 1px solid #eee; + border-left: 0; + border-right: 0; + background: transparent; + padding-top: 0px; + padding-bottom: 0px; } + .mail-wrapper .page-aside .aside-header { + padding-top: 25px; + padding-bottom: 25px; + background: #f1f1f1; } + .mail-wrapper .page-aside .aside-nav { + background: #ffffff; + padding-top: 15px; + padding-bottom: 15px; } + .mail-wrapper .mail-content { + width: 100%; } + .mail-wrapper .mail-content .inbox-head { + flex-direction: column; + align-items: left; } + .mail-wrapper .mail-content .inbox-head h3 { + font-size: 18px; } + .mail-wrapper .mail-content .inbox-head form { + margin-left: 0px !important; + margin-top: 15px; } + .mail-wrapper .mail-content .email-head h3 { + font-size: 18px; } + .mail-wrapper .mail-content .email-compose-fields { + padding: 20px 15px; } + .mail-wrapper .mail-option { + flex-direction: column; } + .mail-wrapper .mail-option .email-filters-left { + width: 100%; + margin-bottom: 10px; } + .mail-wrapper .toggle-email-nav { + display: inline-block !important; } + .mail-wrapper .table-inbox tr td .badge { + margin-top: 5px; + float: left; } } +@media screen and (max-width: 767px) { + .wizard-container { + margin-left: 15px; + margin-right: 15px; } + + .main-panel .page-header { + flex-direction: column; + align-items: normal; + position: relative; + min-height: 43px; + justify-content: center; } + .main-panel .page-header .breadcrumbs { + margin-left: 0px; + padding-top: 15px; + padding-left: 5px; + padding-bottom: 0px; + border-left: 0px; } + .main-panel .page-header .btn-group-page-header { + position: absolute; + right: 0px; } + + .footer .container-fluid { + flex-direction: column; } + .footer .container-fluid .copyright { + margin-left: 0 !important; + margin-top: 10px; + margin-bottom: 15px; } } +@media screen and (max-width: 576px) { + #chart-container { + min-height: 250px; } + + .form-check-inline { + display: flex; + flex-direction: column; + align-items: left; } + + #calendar .fc-toolbar { + display: flex; + flex-direction: column; } + #calendar .fc-toolbar .fc-left, #calendar .fc-toolbar .fc-right, #calendar .fc-toolbar .fc-center { + margin: auto; + margin-bottom: 15px; } + #calendar .fc-toolbar .fc-left { + order: 1; } + #calendar .fc-toolbar .fc-right { + order: 3; } + #calendar .fc-toolbar .fc-center { + order: 2; } + + .conversations .conversations-body { + padding: 1.5rem 1rem; } } +@media screen and (max-width: 350px) { + .quick_sidebar_open .quick-sidebar { + width: 100%; + padding: 20px; } } +/* Background Body */ +body { + background: #f9fbfd; } + body[data-background-color="bg1"] { + background: #f9fbfd; } + body[data-background-color="bg2"] { + background: #ffffff; } + body[data-background-color="bg3"] { + background: #f1f1f1; } + body[data-background-color="dark"] { + background: #1a2035; } + body[data-background-color="dark"] .main-header { + box-shadow: 0px 0px 5px #121727; } + body[data-background-color="dark"] .main-panel { + color: rgba(169, 175, 187, 0.82) !important; } + body[data-background-color="dark"] .main-panel label { + color: #fff !important; } + body[data-background-color="dark"] .card, body[data-background-color="dark"] .row-card-no-pd, body[data-background-color="dark"] .list-group-item, body[data-background-color="dark"] .timeline > li > .timeline-panel { + background: #202940; } + body[data-background-color="dark"] .card-pricing2 { + background: #202940 !important; } + body[data-background-color="dark"] .row-card-no-pd [class*=col] .card:before { + background: rgba(181, 181, 181, 0.1) !important; } + body[data-background-color="dark"] .card .card-header, body[data-background-color="dark"] .card .card-footer, body[data-background-color="dark"] .card .card-action, body[data-background-color="dark"] .card-profile .user-stats [class^="col"], body[data-background-color="dark"] .timeline > li > .timeline-panel, body[data-background-color="dark"] .table td, body[data-background-color="dark"] .table th, body[data-background-color="dark"] .breadcrumbs, body[data-background-color="dark"] .separator-dashed, body[data-background-color="dark"] .separator-solid, body[data-background-color="dark"] .separator-dot, body[data-background-color="dark"] .list-group .list-group-item, body[data-background-color="dark"] .conversations .messages-form, body[data-background-color="dark"] .mail-wrapper .mail-content .inbox-body .email-list .email-list-item, body[data-background-color="dark"] .page-with-aside .page-aside, body[data-background-color="dark"] .mail-wrapper .mail-content .email-head, body[data-background-color="dark"] .mail-wrapper .mail-content .email-sender, body[data-background-color="dark"] .main-panel .page-divider { + border-color: rgba(181, 181, 181, 0.1) !important; } + body[data-background-color="dark"] .timeline > li > .timeline-panel:before { + border-left-color: rgba(181, 181, 181, 0.1); + border-right-color: rgba(181, 181, 181, 0.1); } + body[data-background-color="dark"] .timeline > li > .timeline-panel:after { + border-left-color: #202940; + border-right-color: #202940; } + body[data-background-color="dark"] .page-title, body[data-background-color="dark"] .breadcrumbs li a { + color: rgba(169, 175, 187, 0.82); } + body[data-background-color="dark"] .page-category { + color: #828282; } + body[data-background-color="dark"] .card-title, body[data-background-color="dark"] .card-title a, body[data-background-color="dark"] .card-title a:hover, body[data-background-color="dark"] .card-title a:focus { + color: #fff; } + body[data-background-color="dark"] .card-category { + color: #8b92a9; } + body[data-background-color="dark"] .card-default, body[data-background-color="dark"] .card-primary, body[data-background-color="dark"] .card-secondary, body[data-background-color="dark"] .card-info, body[data-background-color="dark"] .card-success, body[data-background-color="dark"] .card-warning, body[data-background-color="dark"] .card-danger { + color: #fff; } + body[data-background-color="dark"] .card-default .card-title, body[data-background-color="dark"] .card-default .card-category, body[data-background-color="dark"] .card-primary .card-title, body[data-background-color="dark"] .card-primary .card-category, body[data-background-color="dark"] .card-secondary .card-title, body[data-background-color="dark"] .card-secondary .card-category, body[data-background-color="dark"] .card-info .card-title, body[data-background-color="dark"] .card-info .card-category, body[data-background-color="dark"] .card-success .card-title, body[data-background-color="dark"] .card-success .card-category, body[data-background-color="dark"] .card-warning .card-title, body[data-background-color="dark"] .card-warning .card-category, body[data-background-color="dark"] .card-danger .card-title, body[data-background-color="dark"] .card-danger .card-category { + color: #fff; } + body[data-background-color="dark"] .nav-pills .nav-link:not(.active) { + background: #fff; } + body[data-background-color="dark"] .card-pricing .specification-list li { + border-color: #373d4c; } + body[data-background-color="dark"] .input-group-text { + border-color: #2f374b !important; + background-color: #1f283e; + color: #fff; } + body[data-background-color="dark"] .input-solid { + background: #363b4c !important; + border-color: #363b4c !important; } + body[data-background-color="dark"] .list-group-messages .list-group-item-title a, body[data-background-color="dark"] .list-group .list-group-item-text { + color: inherit; } + body[data-background-color="dark"] .footer { + border-top: 1px solid #293247; + background: #1f283e; } + body[data-background-color="dark"] .form-control, body[data-background-color="dark"] .form-group-default, body[data-background-color="dark"] .select2-container--bootstrap .select2-selection { + background-color: #1a2035; + color: #fff; + border-color: #2f374b; } + body[data-background-color="dark"] .bootstrap-tagsinput { + background: transparent; } + body[data-background-color="dark"] .selectgroup-button { + border: 1px solid #2f374b; } + body[data-background-color="dark"] .conversations .message-header { + background: #1a2035; + box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.07); } + body[data-background-color="dark"] .conversations .conversations-content { + color: #575962; + border-color: #2e364a; } + body[data-background-color="dark"] .mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread { + background: #1f283e !important; } + body[data-background-color="dark"] .mail-wrapper .mail-content .inbox-body .email-list .email-list-item:hover { + background: #171e2f !important; } + body[data-background-color="dark"] .page-with-aside .page-aside .aside-nav .nav > li:hover, body[data-background-color="dark"] .page-with-aside .page-aside .aside-nav .nav > li:focus, body[data-background-color="dark"] .page-with-aside .page-aside .aside-nav .nav > li.active { + background: rgba(0, 0, 0, 0.03); } + body[data-background-color="dark"] .page-with-aside .page-aside .aside-nav .nav > li.active > a { + color: #b9babf !important; } + body[data-background-color="dark"] .board { + color: #575962; } + +/* Background */ +.bg-dark { + background-color: #1a2035 !important; } + +.bg-dark2 { + background-color: #1f283e !important; } + +.bg-primary { + background-color: #1572E8 !important; } + +.bg-primary2 { + background-color: #1269DB !important; } + +.bg-secondary { + background-color: #6861CE !important; } + +.bg-secondary2 { + background-color: #5C55BF !important; } + +.bg-info { + background-color: #48ABF7 !important; } + +.bg-info2 { + background-color: #3697E1 !important; } + +.bg-success { + background-color: #31CE36 !important; } + +.bg-success2 { + background-color: #2BB930 !important; } + +.bg-warning { + background-color: #FFAD46 !important; } + +.bg-warning2 { + background-color: #FF9E27 !important; } + +.bg-danger { + background-color: #F25961 !important; } + +.bg-danger2 { + background-color: #EA4d56 !important; } + +.bg-grey1 { + background: #f9fbfd !important; } + +.bg-grey2 { + background: #f1f1f1; } + +.bg-dark-gradient { + background: #1f283e !important; + background: -webkit-linear-gradient(legacy-direction(-45deg), #0A0B11, #1f283e) !important; + background: linear-gradient(-45deg, #0A0B11, #1f283e) !important; } + +.bg-primary-gradient { + background: #1572E8 !important; + background: -webkit-linear-gradient(legacy-direction(-45deg), #06418E, #1572E8) !important; + background: linear-gradient(-45deg, #06418E, #1572E8) !important; } + +.bg-secondary-gradient { + background: #6861CE !important; + background: -webkit-linear-gradient(legacy-direction(-45deg), #2A20AC, #6861CE) !important; + background: linear-gradient(-45deg, #2A20AC, #6861CE) !important; } + +.bg-info-gradient { + background: #48ABF7 !important; + background: -webkit-linear-gradient(legacy-direction(-45deg), #0A5A97, #48ABF7) !important; + background: linear-gradient(-45deg, #0A5A97, #48ABF7) !important; } + +.bg-success-gradient { + background: #31CE36 !important; + background: -webkit-linear-gradient(legacy-direction(-45deg), #179D08, #31CE36) !important; + background: linear-gradient(-45deg, #179D08, #31CE36) !important; } + +.bg-warning-gradient { + background: #FFAD46 !important; + background: -webkit-linear-gradient(legacy-direction(-45deg), #E1810B, #FFAD46) !important; + background: linear-gradient(-45deg, #E1810B, #FFAD46) !important; } + +.bg-danger-gradient { + background: #F25961 !important; + background: -webkit-linear-gradient(legacy-direction(-45deg), #E80A15, #F25961) !important; + background: linear-gradient(-45deg, #E80A15, #F25961) !important; } + +/*# sourceMappingURL=atlantis.css.map */ diff --git a/src/main/resources/static/assets/css/atlantis.css.map b/src/main/resources/static/assets/css/atlantis.css.map new file mode 100644 index 0000000..d0d61de --- /dev/null +++ b/src/main/resources/static/assets/css/atlantis.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../sass/atlantis.scss","../sass/atlantis/_outlinefocus.scss","../sass/atlantis/_typography.scss","../sass/atlantis/_variables.scss","../sass/atlantis/_opacity.scss","../sass/atlantis/_layouts.scss","../sass/atlantis/_layouts-colors.scss","../sass/atlantis/components/_avatars.scss","../sass/atlantis/components/_breadcrumbs.scss","../sass/atlantis/components/_cards.scss","../sass/atlantis/components/_gutters.scss","../sass/atlantis/components/_stamps.scss","../sass/atlantis/components/_inputs.scss","../sass/atlantis/components/_tables.scss","../sass/atlantis/components/_navbars.scss","../sass/atlantis/components/_navsearch.scss","../sass/atlantis/components/_badges.scss","../sass/atlantis/components/_dropdowns.scss","../sass/atlantis/components/_charts.scss","../sass/atlantis/components/_alerts.scss","../sass/atlantis/components/_buttons.scss","../sass/atlantis/components/_navtabs.scss","../sass/atlantis/components/_popovers.scss","../sass/atlantis/components/_progress.scss","../sass/atlantis/components/_paginations.scss","../sass/atlantis/components/_sliders.scss","../sass/atlantis/components/_modals.scss","../sass/atlantis/components/_activityfeed.scss","../sass/atlantis/components/_timeline.scss","../sass/atlantis/components/_maps.scss","../sass/atlantis/components/_listgroup.scss","../sass/atlantis/components/_selectgroup.scss","../sass/atlantis/components/_colorinputs.scss","../sass/atlantis/components/_imagecheck.scss","../sass/atlantis/components/_loader.scss","../sass/atlantis/plugins/_jqueryui.scss","../sass/atlantis/plugins/_jqueryscrollbar.scss","../sass/atlantis/plugins/_animate.scss","../sass/atlantis/plugins/_sweetalert.scss","../sass/atlantis/plugins/_datatables.scss","../sass/atlantis/_responsive.scss","../sass/atlantis/_background.scss"], +"names": [], +"file": "atlantis.css" +} diff --git a/src/main/resources/static/assets/css/atlantis.min.css b/src/main/resources/static/assets/css/atlantis.min.css new file mode 100644 index 0000000..aa73322 --- /dev/null +++ b/src/main/resources/static/assets/css/atlantis.min.css @@ -0,0 +1,74 @@ +/*! + +[Table of contents] + +* Background +* Typography +* Layouts + + Body & Wrapper + + Main Header + + Sidebar +* Layouts Color +* Components + + Breadcrumbs + + Cards + - Card Stats + - Card Task + - Card States + - Card Posts + - Card Pricing + - Card Annoucement + - Card Profile + - Accordion + + Inputs + + Tables + + Navbars + + Navsearch + + Badges + + Dropdowns + + Charts + + Alerts + + Buttons + + Navtabs + + Popovers + + Progress + + Paginations + + Sliders + + Modals + + Timeline + + Maps + + Invoice + + Messages + + Tasks + + Settings +* Plugins + + jQueryUI + + jQuery Scrollbar + + Css Animate + + Full Calendar + + SweetAlert + + Datatables + +* Responsive + +# [Color codes] + +body-text-color: #575962 +white-color: #ffffff +black-color: #191919 +transparent-bg : transparent +default-color : #282a3c +primary-color : #177dff +secondary-color : #716aca +info-color : #36a3f7 +success-color : #35cd3a +warning-color : #ffa534 +danger-color : #f3545d + +-------------------------------------------------------------------*/:focus{outline:0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.alert,.brand,.btn-simple,.h1,.h2,.h3,.h4,.h5,.h6,.navbar,.td-name,a,body,button.close,h1,h2,h3,h4,h5,h6,p,td{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Lato,sans-serif}body{font-size:14px;color:#575962}a{color:#1572e8}a:focus,a:hover{color:#1269db}.h1,h1{font-size:1.725rem}.h2,h2{font-size:1.35rem}.h3,h3{font-size:1.1625rem}.h4,h4{font-size:1.0375rem}.h5,h5{font-size:.9125rem}.h6,h6{font-size:.825rem}p{font-size:14px;line-height:1.82;margin-bottom:1rem;word-break:break-word}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{line-height:1.4}.h1 a,.h2 a,.h3 a,.h4 a,.h5 a,.h6 a,h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit}.small,small{font-size:13px}.b,.strong,b,strong{font-weight:600}.page-pretitle{letter-spacing:.08em;text-transform:uppercase;color:#95aac9}.page-title{font-size:23px;font-weight:600;color:#444;line-height:30px;margin-bottom:20px}.page-category{color:#444;line-height:1.8;margin-bottom:25px}.text-primary,.text-primary a{color:#1572e8!important}.text-primary a:hover,.text-primary:hover{color:#1572e8!important}.text-secondary,.text-secondary a{color:#6861ce!important}.text-secondary a:hover,.text-secondary:hover{color:#6861ce!important}.text-info,.text-info a{color:#48abf7!important}.text-info a:hover,.text-info:hover{color:#48abf7!important}.text-success,.text-success a{color:#31ce36!important}.text-success a:hover,.text-success:hover{color:#31ce36!important}.text-warning,.text-warning a{color:#ffad46!important}.text-warning a:hover,.text-warning:hover{color:#ffad46!important}.text-danger,.text-danger a{color:#f25961!important}.text-danger a:hover,.text-danger:hover{color:#f25961!important}label{color:#495057!important;font-size:14px!important}.text-small{font-size:11px}.metric-value{margin-bottom:5px;line-height:1;white-space:nowrap}.metric-label{font-size:.975rem;font-weight:500;color:#686f76;white-space:nowrap;margin-bottom:0}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-mediumbold{font-weight:400!important}.fw-bold{font-weight:600!important}.fw-extrabold{font-weight:700!important}.op-9{opacity:.9}.op-8{opacity:.8}.op-7{opacity:.7}.op-6{opacity:.6}.op-5{opacity:.5}.op-4{opacity:.4}.op-3{opacity:.3}body{min-height:100vh;position:relative;background:#f9fbfd}.no-bd{border:0!important}.no-box-shadow{box-shadow:none!important}.mt--5,.my--5{margin-top:-3rem!important}.mt--4,.my--4{margin-top:-1.5rem!important}.mt--3,.my--3{margin-top:-1rem!important}.mt--2,.my--2{margin-top:-.5rem!important}.mt--1,.my--1{margin-top:-.25rem!important}.pull-right{float:right}.pull-left{float:left}.wrapper{min-height:100vh;position:relative;top:0;height:100vh}.main-header{background:#fff;min-height:60px;width:100%;position:fixed;z-index:1001;box-shadow:0 0 5px rgba(18,23,39,.5)}.main-header .navbar-header{min-height:62px}.main-header .navbar-header .btn-toggle{margin-right:30px;margin-left:20px}.logo-header{float:left;width:250px;height:62px;line-height:60px;color:#333;z-index:1001;font-size:17px;font-weight:400;padding-left:25px;padding-right:25px;z-index:1001;display:flex;align-items:center;position:relative;transition:all .3s}.logo-header .big-logo{margin-right:8px}.logo-header .big-logo:hover{text-decoration:none}.logo-header .big-logo .logo-img{width:35px;height:35px}.logo-header .logo{color:#575962;opacity:1;position:relative;height:100%}.logo-header .logo:hover{text-decoration:none}.logo-header .logo .navbar-brand{padding-top:0;padding-bottom:0;margin-right:0}.logo-header .nav-toggle{position:absolute;top:0;right:18px;z-index:5}.logo-header .navbar-toggler{padding-left:0;padding-right:0;opacity:0;display:none}.logo-header .navbar-toggler .navbar-toggler-icon{height:1em;width:1em;color:#545454;font-size:22px}.logo-header .more{background:0 0;border:0;font-size:22px;padding:0;opacity:0;width:0;display:none}.btn-toggle{font-size:20px!important;line-height:20px;padding:0!important;background:0 0!important;color:#575962!important}.btn-toggle:focus,.btn-toggle:hover{opacity:1}#search-nav{flex:1;max-width:400px}.sidebar .nav>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar .nav>.nav-item.active:hover>a:before,.sidebar .nav>.nav-item.active>a:before,.sidebar[data-background-color=white] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav>.nav-item.active:hover>a:before,.sidebar[data-background-color=white] .nav>.nav-item.active>a:before{opacity:1!important;position:absolute;z-index:1;width:3px;height:100%;content:'';left:0;top:0}.sidebar,.sidebar[data-background-color=white]{position:fixed;top:0;bottom:0;left:0;width:250px;margin-top:62px;display:block;z-index:1000;color:#fff;font-weight:200;background:#fff;-webkit-box-shadow:4px 4px 10px rgba(69,65,78,.06);-moz-box-shadow:4px 4px 10px rgba(69,65,78,.06);box-shadow:4px 4px 10px rgba(69,65,78,.06);transition:all .3s}.sidebar.full-height,.sidebar[data-background-color=white].full-height{margin-top:0}.sidebar .user,.sidebar[data-background-color=white] .user{margin-top:20px;padding-left:15px;padding-right:15px;padding-bottom:12.5px;border-bottom:1px solid #f1f1f1;display:block;margin-left:10px;margin-right:10px}.sidebar .user .info a,.sidebar[data-background-color=white] .user .info a{white-space:nowrap;display:block;position:relative}.sidebar .user .info a:focus,.sidebar .user .info a:hover,.sidebar[data-background-color=white] .user .info a:focus,.sidebar[data-background-color=white] .user .info a:hover{text-decoration:none}.sidebar .user .info a>span,.sidebar[data-background-color=white] .user .info a>span{font-size:14px;font-weight:400;color:#777;display:flex;flex-direction:column}.sidebar .user .info a>span .user-level,.sidebar[data-background-color=white] .user .info a>span .user-level{color:#555;font-weight:600;font-size:12px;margin-top:5px}.sidebar .user .info a .link-collapse,.sidebar[data-background-color=white] .user .info a .link-collapse{padding:7px 0}.sidebar .user .info .caret,.sidebar[data-background-color=white] .user .info .caret{position:absolute;top:17px;right:0;border-top-color:#777}.sidebar .sidebar-wrapper,.sidebar[data-background-color=white] .sidebar-wrapper{position:relative;max-height:calc(100vh - 75px);min-height:100%;overflow:auto;width:100%;z-index:4;padding-bottom:100px;transition:all .3s}.sidebar .sidebar-wrapper .sidebar-content,.sidebar[data-background-color=white] .sidebar-wrapper .sidebar-content{padding-top:0;padding-bottom:55px}.sidebar .sidebar-wrapper .scroll-element.scroll-y,.sidebar[data-background-color=white] .sidebar-wrapper .scroll-element.scroll-y{top:5px!important}.sidebar .nav,.sidebar[data-background-color=white] .nav{display:block;float:none;margin-top:20px}.sidebar .nav .nav-section,.sidebar[data-background-color=white] .nav .nav-section{margin:15px 0 0 0}.sidebar .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=white] .nav .nav-section .sidebar-mini-icon{text-align:center;font-size:15px;color:#909093;display:none}.sidebar .nav .nav-section .text-section,.sidebar[data-background-color=white] .nav .nav-section .text-section{padding:2px 30px;font-size:12px;color:#727275;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;margin-top:20px}.sidebar .nav>.nav-item,.sidebar[data-background-color=white] .nav>.nav-item{display:list-item}.sidebar .nav>.nav-item.active>a,.sidebar[data-background-color=white] .nav>.nav-item.active>a{color:#575962!important}.sidebar .nav>.nav-item.active>a:before,.sidebar[data-background-color=white] .nav>.nav-item.active>a:before{background:#1d7af3}.sidebar .nav>.nav-item.active>a p,.sidebar[data-background-color=white] .nav>.nav-item.active>a p{color:#575962!important;font-weight:600}.sidebar .nav>.nav-item.active:hover>a:before,.sidebar[data-background-color=white] .nav>.nav-item.active:hover>a:before{background:#1d7af3}.sidebar .nav>.nav-item.active a i,.sidebar[data-background-color=white] .nav>.nav-item.active a i{color:#4d7cfe}.sidebar .nav>.nav-item.submenu,.sidebar[data-background-color=white] .nav>.nav-item.submenu{background:rgba(0,0,0,.03)}.sidebar .nav>.nav-item.submenu>li>a i,.sidebar[data-background-color=white] .nav>.nav-item.submenu>li>a i{color:rgba(23,125,255,.76)}.sidebar .nav>.nav-item a:focus,.sidebar .nav>.nav-item>a:hover,.sidebar[data-background-color=white] .nav>.nav-item a:focus,.sidebar[data-background-color=white] .nav>.nav-item>a:hover{background:rgba(0,0,0,.03)}.sidebar .nav>.nav-item a,.sidebar[data-background-color=white] .nav>.nav-item a{display:flex;align-items:center;color:#575962;padding:6px 25px;width:100%;font-size:14px;font-weight:400;position:relative;margin-bottom:3px}.sidebar .nav>.nav-item a:focus,.sidebar .nav>.nav-item a:hover,.sidebar[data-background-color=white] .nav>.nav-item a:focus,.sidebar[data-background-color=white] .nav>.nav-item a:hover{text-decoration:none}.sidebar .nav>.nav-item a:focus p,.sidebar .nav>.nav-item a:hover p,.sidebar[data-background-color=white] .nav>.nav-item a:focus p,.sidebar[data-background-color=white] .nav>.nav-item a:hover p{color:#575962!important;font-weight:600}.sidebar .nav>.nav-item a:focus i,.sidebar .nav>.nav-item a:hover i,.sidebar[data-background-color=white] .nav>.nav-item a:focus i,.sidebar[data-background-color=white] .nav>.nav-item a:hover i{color:#4d7cfe!important}.sidebar .nav>.nav-item a .letter-icon,.sidebar[data-background-color=white] .nav>.nav-item a .letter-icon{color:#a1a2a6;margin-right:15px;width:25px;text-align:center;vertical-align:middle;float:left;font-size:20px;font-weight:200}.sidebar .nav>.nav-item a i,.sidebar[data-background-color=white] .nav>.nav-item a i{color:#8d9498;margin-right:15px;width:25px;text-align:center;vertical-align:middle;float:left;font-size:18px;line-height:30px}.sidebar .nav>.nav-item a i[class^=flaticon-],.sidebar[data-background-color=white] .nav>.nav-item a i[class^=flaticon-]{font-size:20px}.sidebar .nav>.nav-item a p,.sidebar[data-background-color=white] .nav>.nav-item a p{font-size:14px;margin-bottom:0;margin-right:5px;white-space:nowrap;color:#8d9498}.sidebar .nav>.nav-item a .caret,.sidebar[data-background-color=white] .nav>.nav-item a .caret{margin-left:auto;margin-right:10px;transition:all .5s;color:#8d9498}.sidebar .nav>.nav-item a[data-toggle=collapse][aria-expanded=true],.sidebar[data-background-color=white] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true]{background:0 0}.sidebar .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] p,.sidebar[data-background-color=white] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#575962}.sidebar .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=white] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] i{color:#4d7cfe}.sidebar .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=white] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] .caret{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.sidebar .nav>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:#1d7af3}.sidebar .nav.nav-primary>.nav-item a:focus i,.sidebar .nav.nav-primary>.nav-item a:hover i,.sidebar .nav.nav-primary>.nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=white] .nav.nav-primary>.nav-item a:focus i,.sidebar[data-background-color=white] .nav.nav-primary>.nav-item a:hover i,.sidebar[data-background-color=white] .nav.nav-primary>.nav-item a[data-toggle=collapse][aria-expanded=true] i{color:#1572e8!important}.sidebar .nav.nav-primary>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav.nav-primary>.nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:#1572e8!important}.sidebar .nav.nav-primary>.nav-item.active a:before,.sidebar[data-background-color=white] .nav.nav-primary>.nav-item.active a:before{background:#1572e8!important}.sidebar .nav.nav-primary>.nav-item.active a i,.sidebar[data-background-color=white] .nav.nav-primary>.nav-item.active a i{color:#1572e8!important}.sidebar .nav.nav-secondary>.nav-item a:focus i,.sidebar .nav.nav-secondary>.nav-item a:hover i,.sidebar .nav.nav-secondary>.nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=white] .nav.nav-secondary>.nav-item a:focus i,.sidebar[data-background-color=white] .nav.nav-secondary>.nav-item a:hover i,.sidebar[data-background-color=white] .nav.nav-secondary>.nav-item a[data-toggle=collapse][aria-expanded=true] i{color:#6861ce!important}.sidebar .nav.nav-secondary>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav.nav-secondary>.nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:#6861ce!important}.sidebar .nav.nav-secondary>.nav-item.active a:before,.sidebar[data-background-color=white] .nav.nav-secondary>.nav-item.active a:before{background:#6861ce!important}.sidebar .nav.nav-secondary>.nav-item.active a i,.sidebar[data-background-color=white] .nav.nav-secondary>.nav-item.active a i{color:#6861ce!important}.sidebar .nav.nav-info>.nav-item a:focus i,.sidebar .nav.nav-info>.nav-item a:hover i,.sidebar .nav.nav-info>.nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=white] .nav.nav-info>.nav-item a:focus i,.sidebar[data-background-color=white] .nav.nav-info>.nav-item a:hover i,.sidebar[data-background-color=white] .nav.nav-info>.nav-item a[data-toggle=collapse][aria-expanded=true] i{color:#48abf7!important}.sidebar .nav.nav-info>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav.nav-info>.nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:#48abf7!important}.sidebar .nav.nav-info>.nav-item.active a:before,.sidebar[data-background-color=white] .nav.nav-info>.nav-item.active a:before{background:#48abf7!important}.sidebar .nav.nav-info>.nav-item.active a i,.sidebar[data-background-color=white] .nav.nav-info>.nav-item.active a i{color:#48abf7!important}.sidebar .nav.nav-success>.nav-item a:focus i,.sidebar .nav.nav-success>.nav-item a:hover i,.sidebar .nav.nav-success>.nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=white] .nav.nav-success>.nav-item a:focus i,.sidebar[data-background-color=white] .nav.nav-success>.nav-item a:hover i,.sidebar[data-background-color=white] .nav.nav-success>.nav-item a[data-toggle=collapse][aria-expanded=true] i{color:#31ce36!important}.sidebar .nav.nav-success>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav.nav-success>.nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:#31ce36!important}.sidebar .nav.nav-success>.nav-item.active a:before,.sidebar[data-background-color=white] .nav.nav-success>.nav-item.active a:before{background:#31ce36!important}.sidebar .nav.nav-success>.nav-item.active a i,.sidebar[data-background-color=white] .nav.nav-success>.nav-item.active a i{color:#31ce36!important}.sidebar .nav.nav-warning>.nav-item a:focus i,.sidebar .nav.nav-warning>.nav-item a:hover i,.sidebar .nav.nav-warning>.nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=white] .nav.nav-warning>.nav-item a:focus i,.sidebar[data-background-color=white] .nav.nav-warning>.nav-item a:hover i,.sidebar[data-background-color=white] .nav.nav-warning>.nav-item a[data-toggle=collapse][aria-expanded=true] i{color:#ffad46!important}.sidebar .nav.nav-warning>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav.nav-warning>.nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:#ffad46!important}.sidebar .nav.nav-warning>.nav-item.active a:before,.sidebar[data-background-color=white] .nav.nav-warning>.nav-item.active a:before{background:#ffad46!important}.sidebar .nav.nav-warning>.nav-item.active a i,.sidebar[data-background-color=white] .nav.nav-warning>.nav-item.active a i{color:#ffad46!important}.sidebar .nav.nav-danger>.nav-item a:focus i,.sidebar .nav.nav-danger>.nav-item a:hover i,.sidebar .nav.nav-danger>.nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=white] .nav.nav-danger>.nav-item a:focus i,.sidebar[data-background-color=white] .nav.nav-danger>.nav-item a:hover i,.sidebar[data-background-color=white] .nav.nav-danger>.nav-item a[data-toggle=collapse][aria-expanded=true] i{color:#f25961!important}.sidebar .nav.nav-danger>.nav-item a[data-toggle=collapse][aria-expanded=true]:before,.sidebar[data-background-color=white] .nav.nav-danger>.nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:#f25961!important}.sidebar .nav.nav-danger>.nav-item.active a:before,.sidebar[data-background-color=white] .nav.nav-danger>.nav-item.active a:before{background:#f25961!important}.sidebar .nav.nav-danger>.nav-item.active a i,.sidebar[data-background-color=white] .nav.nav-danger>.nav-item.active a i{color:#f25961!important}.sidebar .nav-collapse,.sidebar[data-background-color=white] .nav-collapse{margin-top:0;margin-bottom:15px;padding-bottom:15px;padding-top:10px}.sidebar .nav-collapse li.active>a,.sidebar[data-background-color=white] .nav-collapse li.active>a{font-weight:600}.sidebar .nav-collapse li a:before,.sidebar .nav-collapse li a:hover:before,.sidebar[data-background-color=white] .nav-collapse li a:before,.sidebar[data-background-color=white] .nav-collapse li a:hover:before{opacity:0!important}.sidebar .nav-collapse li a,.sidebar[data-background-color=white] .nav-collapse li a{margin-bottom:3px!important;padding:10px 25px!important}.sidebar .nav-collapse li a .sub-item,.sidebar[data-background-color=white] .nav-collapse li a .sub-item{font-size:14px;position:relative;margin-left:25px;opacity:.85}.sidebar .nav-collapse li a .sub-item:before,.sidebar[data-background-color=white] .nav-collapse li a .sub-item:before{content:'';height:4px;width:4px;background:rgba(131,132,138,.89);position:absolute;left:-15px;top:50%;transform:translateY(-50%);border-radius:100%}.sidebar .nav-collapse li a:hover .sub-item,.sidebar[data-background-color=white] .nav-collapse li a:hover .sub-item{opacity:1}.sidebar .nav-collapse li a .sidebar-mini-icon,.sidebar[data-background-color=white] .nav-collapse li a .sidebar-mini-icon{font-size:18px;color:#c3c5ca;margin-right:15px;width:25px;text-align:center;vertical-align:middle;float:left;font-weight:300!important}.sidebar .nav-collapse.subnav,.sidebar[data-background-color=white] .nav-collapse.subnav{padding-bottom:10px;margin-bottom:0}.sidebar .nav-collapse.subnav li a,.sidebar[data-background-color=white] .nav-collapse.subnav li a{padding-left:40px!important}.sidebar.sidebar-style-2 .nav .nav-item{padding:0 15px}.sidebar.sidebar-style-2 .nav .nav-item a{padding:8px 10px;border-radius:5px}.sidebar.sidebar-style-2 .nav .nav-item a:focus,.sidebar.sidebar-style-2 .nav .nav-item a:hover,.sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{background:rgba(199,199,199,.2)}.sidebar.sidebar-style-2 .nav .nav-item a:focus i,.sidebar.sidebar-style-2 .nav .nav-item a:focus p,.sidebar.sidebar-style-2 .nav .nav-item a:hover i,.sidebar.sidebar-style-2 .nav .nav-item a:hover p,.sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#575962!important}.sidebar.sidebar-style-2 .nav .nav-item.active a:before{background:0 0}.sidebar.sidebar-style-2 .nav .nav-item .active a{background:rgba(199,199,199,.2)}.sidebar.sidebar-style-2 .nav .nav-item .active a i,.sidebar.sidebar-style-2 .nav .nav-item .active a p{color:#575962!important}.sidebar.sidebar-style-2 .nav .nav-item.submenu{background:0 0!important}.sidebar.sidebar-style-2 .nav .nav-item a[data-toggle=collapse][aria-expanded=true]:before{background:0 0!important}.sidebar.sidebar-style-2 .nav.nav-primary>.nav-item.active>a{background:#1572e8!important;box-shadow:4px 4px 10px 0 rgba(0,0,0,.1),4px 4px 15px -5px rgba(21,114,232,.4)!important}.sidebar.sidebar-style-2 .nav.nav-primary>.nav-item.active>a:before{background:0 0!important}.sidebar.sidebar-style-2 .nav.nav-primary>.nav-item.active>a .caret,.sidebar.sidebar-style-2 .nav.nav-primary>.nav-item.active>a i,.sidebar.sidebar-style-2 .nav.nav-primary>.nav-item.active>a p,.sidebar.sidebar-style-2 .nav.nav-primary>.nav-item.active>a span{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-primary>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-secondary>.nav-item.active>a{background:#6861ce!important;box-shadow:4px 4px 10px 0 rgba(0,0,0,.1),4px 4px 15px -5px rgba(104,97,206,.4)!important}.sidebar.sidebar-style-2 .nav.nav-secondary>.nav-item.active>a:before{background:0 0!important}.sidebar.sidebar-style-2 .nav.nav-secondary>.nav-item.active>a .caret,.sidebar.sidebar-style-2 .nav.nav-secondary>.nav-item.active>a i,.sidebar.sidebar-style-2 .nav.nav-secondary>.nav-item.active>a p,.sidebar.sidebar-style-2 .nav.nav-secondary>.nav-item.active>a span{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-secondary>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-info>.nav-item.active>a{background:#48abf7!important;box-shadow:4px 4px 10px 0 rgba(0,0,0,.1),4px 4px 15px -5px rgba(72,171,247,.4)!important}.sidebar.sidebar-style-2 .nav.nav-info>.nav-item.active>a:before{background:0 0!important}.sidebar.sidebar-style-2 .nav.nav-info>.nav-item.active>a .caret,.sidebar.sidebar-style-2 .nav.nav-info>.nav-item.active>a i,.sidebar.sidebar-style-2 .nav.nav-info>.nav-item.active>a p,.sidebar.sidebar-style-2 .nav.nav-info>.nav-item.active>a span{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-info>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-success>.nav-item.active>a{background:#31ce36!important;box-shadow:4px 4px 10px 0 rgba(0,0,0,.1),4px 4px 15px -5px rgba(49,206,54,.4)!important}.sidebar.sidebar-style-2 .nav.nav-success>.nav-item.active>a:before{background:0 0!important}.sidebar.sidebar-style-2 .nav.nav-success>.nav-item.active>a .caret,.sidebar.sidebar-style-2 .nav.nav-success>.nav-item.active>a i,.sidebar.sidebar-style-2 .nav.nav-success>.nav-item.active>a p,.sidebar.sidebar-style-2 .nav.nav-success>.nav-item.active>a span{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-success>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-warning>.nav-item.active>a{background:#ffad46!important;box-shadow:4px 4px 10px 0 rgba(0,0,0,.1),4px 4px 15px -5px rgba(255,173,70,.4)!important}.sidebar.sidebar-style-2 .nav.nav-warning>.nav-item.active>a:before{background:0 0!important}.sidebar.sidebar-style-2 .nav.nav-warning>.nav-item.active>a .caret,.sidebar.sidebar-style-2 .nav.nav-warning>.nav-item.active>a i,.sidebar.sidebar-style-2 .nav.nav-warning>.nav-item.active>a p,.sidebar.sidebar-style-2 .nav.nav-warning>.nav-item.active>a span{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-warning>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-danger>.nav-item.active>a{background:#f25961!important;box-shadow:4px 4px 10px 0 rgba(0,0,0,.1),4px 4px 15px -5px rgba(242,89,97,.4)!important}.sidebar.sidebar-style-2 .nav.nav-danger>.nav-item.active>a:before{background:0 0!important}.sidebar.sidebar-style-2 .nav.nav-danger>.nav-item.active>a .caret,.sidebar.sidebar-style-2 .nav.nav-danger>.nav-item.active>a i,.sidebar.sidebar-style-2 .nav.nav-danger>.nav-item.active>a p,.sidebar.sidebar-style-2 .nav.nav-danger>.nav-item.active>a span{color:#fff!important}.sidebar.sidebar-style-2 .nav.nav-danger>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i{color:#fff!important}.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item a:focus i,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item a:focus p,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item a:hover i,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item a:hover p,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item a:focus i,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item a:focus p,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item a:hover i,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item a:hover p,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#b9babf!important}.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a{color:#fff}.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a .caret,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a i,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a p,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a span,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a .caret,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a i,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a p,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a span{color:#fff}.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] i,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] p,.sidebar.sidebar-style-2[data-background-color=dark2] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] span,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] i,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] p,.sidebar.sidebar-style-2[data-background-color=dark] .nav .nav-item.active a[data-toggle=collapse][aria-expanded=true] span{color:#fff}.main-panel{position:relative;width:calc(100% - 250px);height:100vh;min-height:100%;float:right;transition:all .3s}.main-panel>.content{padding:0!important;min-height:calc(100% - 123px);margin-top:62px;overflow:hidden}.main-panel>.content-full{padding:0!important;min-height:calc(100% - 123px);margin-top:63px;overflow:hidden}.main-panel .page-header{display:flex;align-items:center;margin-bottom:20px}.main-panel .page-header .page-title{margin-bottom:0}.main-panel .page-header .btn-page-header-dropdown{width:35px;height:35px;font-size:14px;padding:0;color:#6b6b6b;box-shadow:0 2px 14px 0 rgba(144,116,212,.1)!important;border:0}.main-panel .page-header .btn-page-header-dropdown:after{display:none}.main-panel .page-header .dropdown-menu{margin-top:15px;top:0!important}.main-panel .page-header .dropdown-menu:after{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #fff;position:absolute;top:-8px;right:32px;content:''}.main-panel .page-divider{height:0;margin:.3rem 0 1rem;overflow:hidden;border-top:1px solid #ebecec}.page-wrapper{min-height:calc(100vh - 57px);position:relative}.page-wrapper.has-sidebar .page-inner{margin-right:22.5rem}.page-navs{position:relative;display:block;padding-right:1rem;padding-left:1rem;box-shadow:0 1px 1px 0 rgba(0,0,0,.07);z-index:1}.page-navs .nav .nav-link{padding:1rem!important}.page-navs .nav-line{border:0!important}.page-navs .nav-line .nav-link{border-bottom-width:3px!important}.nav-scroller .nav{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}@media (min-width:992px){.page-navs{padding-right:2rem;padding-left:2rem}}.page-inner{padding:1.5rem 0}@media (min-width:576px){.page-inner{padding-right:1rem;padding-left:1rem}}@media (min-width:992px){.page-inner{padding-right:2rem;padding-left:2rem}}.page-inner-fill{padding:0;height:calc(100% - 57px);display:flex;flex-direction:column}.page-sidebar{position:absolute;top:0;right:0;bottom:0;width:100%;display:flex;flex-direction:column;max-width:22.5rem;box-shadow:none;transform:translate3d(100%,0,0);overflow:auto;z-index:999;transition:transform .2s ease-in-out;border-left:1px solid rgba(61,70,79,.125)!important}.page-sidebar .back{width:100%;display:flex;align-items:center;padding:1rem;box-shadow:0 0 0 1px rgba(61,70,79,.05),0 1px 3px 0 rgba(61,70,79,.15);font-size:15px}.page-sidebar-section{flex:1;overflow-y:auto}@media (min-width:1200px){.page-sidebar{transform:translateZ(0)}}@media (max-width:1200px){.page-wrapper.has-sidebar .page-inner{margin-right:0}.pagesidebar_open .page-sidebar{transform:translate3d(0,0,0)!important;max-width:unset}}.page-with-aside{display:flex}.page-with-aside .page-aside{width:280px;min-height:100vh;border-right:1px solid #f1f1f1;padding:15px 0}.page-with-aside .page-aside .aside-header{padding:15px 22px}.page-with-aside .page-aside .aside-header .title{font-size:24px}.page-with-aside .page-aside .aside-header .description{font-size:12px}.page-with-aside .page-aside .aside-nav .nav{flex-direction:column}.page-with-aside .page-aside .aside-nav .nav>li{padding:8px 22px;margin-bottom:5px}.page-with-aside .page-aside .aside-nav .nav>li.active,.page-with-aside .page-aside .aside-nav .nav>li:focus,.page-with-aside .page-aside .aside-nav .nav>li:hover{background:rgba(51,51,51,.08)}.page-with-aside .page-aside .aside-nav .nav>li.active{padding:12px 22px;font-weight:600}.page-with-aside .page-aside .aside-nav .nav>li.active>a{color:#575962!important}.page-with-aside .page-aside .aside-nav .nav>li>a{color:#83848a;display:flex;align-items:center;font-size:12px}.page-with-aside .page-aside .aside-nav .nav>li>a:focus,.page-with-aside .page-aside .aside-nav .nav>li>a:hover{text-decoration:none}.page-with-aside .page-aside .aside-nav .nav>li>a i{font-size:20px;margin-right:15px;color:#a1a2a6}.page-with-aside .page-aside .aside-nav .label{padding:5px 22px;margin-top:22px;margin-bottom:5px;display:block}.page-with-aside .page-aside .aside-compose{padding:25px 22px}.page-with-aside .page-content{width:calc(100% - 280px)}.footer{border-top:1px solid #eee;padding:15px;background:#fff;position:absolute;width:100%}.footer .container,.footer .container-fluid{display:flex;align-items:center}@media screen and (min-width:991px){.sidebar_minimize .main-panel{width:calc(100% - 75px);transition:all .3s}.sidebar_minimize .logo-header{width:75px;transition:all .3s;padding:0;text-align:center}.sidebar_minimize .logo-header .big-logo{margin-right:0}.sidebar_minimize .logo-header .logo{position:absolute;transform:translate3d(25px,0,0);opacity:0}.sidebar_minimize .logo-header .logo img{display:none}.sidebar_minimize .logo-header .nav-toggle{position:absolute;left:50%;transform:translateX(-50%);height:100%;right:0!important}.sidebar_minimize .sidebar{width:75px;transition:all .3s}.sidebar_minimize .sidebar .sidebar-wrapper{width:75px;transition:all .3s}.sidebar_minimize .sidebar .sidebar-wrapper .user{padding-left:0;padding-right:0}.sidebar_minimize .sidebar .sidebar-wrapper .user [class^=avatar-]{float:none!important;margin:auto}.sidebar_minimize .sidebar .sidebar-wrapper .user .info{display:none}.sidebar_minimize .sidebar .sidebar-wrapper .user .info span{display:none}.sidebar_minimize .sidebar .sidebar-wrapper .nav-item{position:relative}.sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .letter-icon{display:block!important}.sidebar_minimize .sidebar .sidebar-wrapper .nav-item a i{margin-right:unset}.sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .badge,.sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .caret,.sidebar_minimize .sidebar .sidebar-wrapper .nav-item a p,.sidebar_minimize .sidebar .sidebar-wrapper .nav-item a span{display:none;transition:all .3s}.sidebar_minimize .sidebar .sidebar-wrapper .nav-item a .sidebar-mini-icon{display:block!important;margin-right:0}.sidebar_minimize .sidebar .sidebar-wrapper .nav-item.active .nav-collapse,.sidebar_minimize .sidebar .sidebar-wrapper .nav-item.submenu .nav-collapse{display:none}.sidebar_minimize .sidebar .sidebar-wrapper .nav-section .text-section{display:none}.sidebar_minimize .sidebar .sidebar-wrapper .nav-section .sidebar-mini-icon{display:block}.sidebar_minimize .sidebar:hover{width:250px}.sidebar_minimize .sidebar:hover .sidebar-wrapper{width:250px}.sidebar_minimize .sidebar:hover .sidebar-wrapper .user{padding-left:15px;padding-right:15px}.sidebar_minimize .sidebar:hover .sidebar-wrapper .user [class^=avatar-]{float:left!important;margin-right:11px!important}.sidebar_minimize .sidebar:hover .sidebar-wrapper .user .info{display:block}.sidebar_minimize .sidebar:hover .sidebar-wrapper .user .info span{display:block}.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a i{margin-right:15px}.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a .badge,.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a .caret,.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a p,.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a span{display:block}.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item a .sidebar-mini-icon{display:block!important;margin-right:15px}.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item.active .nav-collapse,.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-item.submenu .nav-collapse{display:block}.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-section .sidebar-mini-icon{display:none}.sidebar_minimize .sidebar:hover .sidebar-wrapper .nav-section .text-section{display:block}.sidebar_minimize.sidebar_minimize_hover .logo-header{width:250px;padding-left:25px;padding-right:25px;text-align:left}.sidebar_minimize.sidebar_minimize_hover .logo-header .logo{opacity:1!important;transform:translate3d(0,0,0)!important;position:relative!important}.sidebar_minimize.sidebar_minimize_hover .logo-header .logo img{display:inline-block!important}.sidebar_minimize.sidebar_minimize_hover .main-panel{width:calc(100% - 250px)}.sidebar_minimize_hover .logo-header .nav-toggle{right:18px!important;transform:translateX(0)!important;left:unset}}.overlay-sidebar:not(.is-show) .sidebar{left:-250px}.overlay-sidebar .main-panel{width:100%!important}@media screen and (min-width:991px){.compact-wrapper .main-header .logo-header{width:175px}.compact-wrapper .sidebar{width:175px}.compact-wrapper .sidebar .badge{position:absolute;top:8px;right:8px}.compact-wrapper .sidebar .text-section{text-align:center}.compact-wrapper .sidebar .nav>.nav-item a{flex-direction:column}.compact-wrapper .sidebar .nav>.nav-item a i{margin-right:0}.compact-wrapper .sidebar .nav>.nav-item a p{margin-right:0}.compact-wrapper .sidebar .nav>.nav-item a .caret{display:none}.compact-wrapper .sidebar .nav-collapse li a .sub-item{margin-left:0;text-align:center}.compact-wrapper .sidebar .nav-collapse li a .sub-item:before{display:none}.compact-wrapper .main-panel{width:calc(100% - 175px)}}@media screen and (min-width:991px){.classic-wrapper .classic-grid{margin:93px 40px 30px}.classic-wrapper .main-header{top:0}.classic-wrapper .main-header .logo-header{padding:0 40px;width:290px}.classic-wrapper .sidebar{position:relative;float:left;margin-top:0}.classic-wrapper .sidebar .sidebar-wrapper{max-height:unset;min-height:100%}.classic-wrapper .navbar-header{padding-right:30px}.classic-wrapper .main-panel{height:unset}.classic-wrapper .main-panel .content,.classic-wrapper .main-panel .content-full{margin-top:0}.classic-wrapper .page-inner{padding-right:0;padding-top:5px}.classic-wrapper .board{height:100%}.sidebar_minimize .classic-wrapper .logo-header .logo{position:relative;transform:unset;opacity:1}.sidebar_minimize .classic-wrapper .logo-header .logo img{display:inline-block}.sidebar_minimize .classic-wrapper .logo-header .nav-toggle{left:unset;transform:unset;right:18px!important}}.classic-wrapper{height:unset}.classic-wrapper .main-panel{height:unset}.classic-wrapper .footer{position:unset}.classic-grid{min-height:100vh;height:100%;display:flex;flex-direction:row;flex-wrap:wrap}@media screen and (min-width:991px){.static-sidebar{height:unset}.static-sidebar .sidebar{position:static;float:left}.static-sidebar .sidebar .sidebar-wrapper{max-height:unset;min-height:100%}.static-sidebar .main-panel{height:unset}.static-sidebar .main-panel .content{margin-bottom:60px}.static-sidebar .footer{position:absolute;bottom:0}}.mail-wrapper .toggle-email-nav{margin-top:10px;display:none}.mail-wrapper .mail-content .email-head,.mail-wrapper .mail-content .inbox-head{padding:35px 25px 20px}.mail-wrapper .mail-content .email-head h3,.mail-wrapper .mail-content .inbox-head h3{font-size:22px;font-weight:300;margin:0}.mail-wrapper .mail-content .email-head{padding:35px 25px;border-bottom:1px solid #f1f1f1}.mail-wrapper .mail-content .email-head .favorite{color:#eee;margin-right:5px}.mail-wrapper .mail-content .email-head .favorite.active{color:#ffc600}.mail-wrapper .mail-content .email-head .controls{margin-left:auto}.mail-wrapper .mail-content .email-head .controls>a{color:#9c9c9c;font-size:18px;padding:0 5px}.mail-wrapper .mail-content .email-head .controls>a:hover{text-decoration:none;opacity:.8}.mail-wrapper .mail-content .email-head .controls>a:last-child{padding-right:0}.mail-wrapper .mail-content .email-sender{padding:14px 25px;display:flex;align-items:center;border-bottom:1px solid #f1f1f1}.mail-wrapper .mail-content .email-sender .avatar{padding-right:12px}.mail-wrapper .mail-content .email-sender .avatar img{max-width:40px;max-height:40px;border-radius:50%}.mail-wrapper .mail-content .email-sender .date{margin-left:auto}.mail-wrapper .mail-content .email-sender .sender .action{display:inline-block}.mail-wrapper .mail-content .email-sender .sender .action>a{cursor:pointer}.mail-wrapper .mail-content .email-body{padding:30px 28px}.mail-wrapper .mail-content .email-attachments{padding:25px 28px;border-top:1px solid #f1f1f1}.mail-wrapper .mail-content .email-attachments .title{font-weight:400;margin-bottom:10px}.mail-wrapper .mail-content .email-attachments .title span{font-weight:400}.mail-wrapper .mail-content .email-attachments ul{padding-left:0;list-style:none}.mail-wrapper .mail-content .email-attachments ul li{padding:6px 0}.mail-wrapper .mail-content .email-attachments ul li a{font-weight:400}.mail-wrapper .mail-content .email-attachments ul li a:hover{text-decoration:none}.mail-wrapper .mail-content .email-attachments ul li a i{font-size:20px;display:inline-block;vertical-align:middle}.mail-wrapper .mail-content .email-attachments ul li a span{font-weight:400}.mail-wrapper .mail-content .inbox-body{padding:20px 0}.mail-wrapper .mail-content .inbox-body .mail-option{padding:0 20px;margin-bottom:20px;display:flex}.mail-wrapper .mail-content .inbox-body .mail-option .chk-all{display:inline-block}.mail-wrapper .mail-content .inbox-body .mail-option .btn-option{color:#555!important;border:1px solid #ebedf2!important;font-weight:600;background:#fff!important;box-shadow:2px 2px 3px 0 #f2f1f1!important}.mail-wrapper .mail-content .inbox-body .mail-option .form-check{padding:0}.mail-wrapper .mail-content .inbox-body .mail-option .form-check .form-check-sign:before{border:1px solid #eee;background:#eee}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item{padding:14px 20px;display:table;cursor:pointer;position:relative;font-size:12px;width:100%;border-top:1px solid #f1f1f1}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item:hover{background:#f6f5f5}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions,.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail{vertical-align:top;display:table-cell}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions{width:50px}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .custom-checkbox{margin-right:0}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite{color:#eee;font-size:18px}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite:hover{text-decoration:none;color:#969696}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite.active,.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-actions .favorite.active:hover{color:#ffc600}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .msg,.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail p{font-size:12px}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .msg{margin-bottom:0;margin-top:8px}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .from{font-size:13px}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .date{font-size:12px;display:flex;align-items:center}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item .email-list-detail .date .paperclip{font-size:16px;padding-right:4px}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread{font-weight:400;background:#fbfbfb}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread:after{content:'';display:block;position:absolute;width:3px;background:#1572e8;top:-1px;left:0;bottom:-1px;height:calc(100% + 2px)}.mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread .email-list-detail .from{font-weight:600}.mail-wrapper .mail-content .email-compose-fields,.mail-wrapper .mail-content .email-editor{padding:20px 25px}.mail-wrapper .mail-content .email-compose-fields{padding:20px 25px;border-bottom:1px solid #f1f1f1}.mail-wrapper .mail-content .email-action{text-align:right;margin-bottom:15px}.mail-wrapper .mail-content .email-action>.btn{margin-right:7px}.mail-wrapper .mail-content .email-action>.btn:last-child{margin-right:0}.flex-1{-ms-flex:1;flex:1}.metric{display:flex;padding:1rem;flex-direction:column}.main-header .navbar-header[data-background-color] .nav-search .input-group{border:0;background:rgba(0,0,0,.14)!important;box-shadow:3px 3px 6px 0 rgba(0,0,0,.07);transition:all .4s}.main-header .navbar-header[data-background-color] .nav-search .input-group .form-control{color:#fff!important}.main-header .navbar-header[data-background-color] .nav-search .input-group .form-control::-webkit-input-placeholder{opacity:1}.main-header .navbar-header[data-background-color] .nav-search .input-group .form-control::-moz-placeholder{opacity:1}.main-header .navbar-header[data-background-color] .nav-search .input-group .form-control:-ms-input-placeholder{opacity:1}.main-header .navbar-header[data-background-color] .nav-search .input-group .form-control:-moz-placeholder{opacity:1}.main-header .navbar-header[data-background-color] .nav-search .input-group .search-icon{color:#fff!important}.main-header .navbar-header[data-background-color] .nav-search .input-group.focus{background:#fff!important}.main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control{color:inherit!important}.main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control::-webkit-input-placeholder{color:#bfbfbf!important}.main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control::-moz-placeholder{color:#bfbfbf!important}.main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control:-ms-input-placeholder{color:#bfbfbf!important}.main-header .navbar-header[data-background-color] .nav-search .input-group.focus .form-control:-moz-placeholder{color:#bfbfbf!important}.main-header .navbar-header[data-background-color] .nav-search .input-group.focus .search-icon{color:#bfbfbf!important}.main-header .navbar-header[data-background-color] .navbar-nav .nav-item .nav-link{color:#fff!important}.main-header .navbar-header[data-background-color] .navbar-nav .nav-item .nav-link:focus,.main-header .navbar-header[data-background-color] .navbar-nav .nav-item .nav-link:hover{background:rgba(31,30,30,.12)!important}.main-header .navbar-header[data-background-color] .navbar-nav .nav-item.active .nav-link{background:rgba(31,30,30,.12)!important}.main-header .navbar-header[data-background-color=dark2] .nav-search .input-group,.main-header .navbar-header[data-background-color=dark] .nav-search .input-group{background:rgba(185,185,185,.18)!important}.main-header .navbar-header[data-background-color=dark2] .navbar-nav .nav-item .nav-link:focus,.main-header .navbar-header[data-background-color=dark2] .navbar-nav .nav-item .nav-link:hover,.main-header .navbar-header[data-background-color=dark] .navbar-nav .nav-item .nav-link:focus,.main-header .navbar-header[data-background-color=dark] .navbar-nav .nav-item .nav-link:hover{background:rgba(185,185,185,.18)!important}.main-header .navbar-header[data-background-color=dark2] .navbar-nav .nav-item.active .nav-link,.main-header .navbar-header[data-background-color=dark] .navbar-nav .nav-item.active .nav-link{background:rgba(185,185,185,.18)!important}.main-header .navbar-header .navbar-header-transparent .nav-search .input-group,.main-header .navbar-header[data-background-color=white] .nav-search .input-group{background:#eee}.main-header .navbar-header .navbar-header-transparent .nav-search .input-group .form-control,.main-header .navbar-header[data-background-color=white] .nav-search .input-group .form-control{color:#8d9498!important}.main-header .navbar-header .navbar-header-transparent .nav-search .input-group .search-icon,.main-header .navbar-header[data-background-color=white] .nav-search .input-group .search-icon{color:#8d9498!important}.main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item .nav-link,.main-header .navbar-header[data-background-color=white] .navbar-nav .nav-item .nav-link{color:#8d9498!important}.main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item .nav-link:focus,.main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item .nav-link:hover,.main-header .navbar-header[data-background-color=white] .navbar-nav .nav-item .nav-link:focus,.main-header .navbar-header[data-background-color=white] .navbar-nav .nav-item .nav-link:hover{background:#eee!important}.main-header .navbar-header .navbar-header-transparent .navbar-nav .nav-item.active .nav-link,.main-header .navbar-header[data-background-color=white] .navbar-nav .nav-item.active .nav-link{background:#eee!important}.btn-toggle{color:#fff!important}.logo-header[data-background-color] .navbar-toggler .navbar-toggler-icon{color:#fff!important}.logo-header[data-background-color] .more{color:#fff!important}.logo-header[data-background-color=white] .btn-toggle,.logo-header[data-background-color=white] .more,.logo-header[data-background-color=white] .navbar-toggler .navbar-toggler-icon{color:#8d9498!important}.logo-header[data-background-color=white]{background:#fff!important}.navbar-header[data-background-color=white]{background:#fff!important}.logo-header[data-background-color=dark]{background:#1a2035!important}.logo-header[data-background-color=dark2]{background:#1f283e!important}.navbar-header[data-background-color=dark]{background:#1a2035!important}.navbar-header[data-background-color=dark2]{background:#1f283e!important}.logo-header[data-background-color=blue]{background:#1572e8!important}.logo-header[data-background-color=blue2]{background:#1269db!important}.navbar-header[data-background-color=blue]{background:#1572e8!important}.navbar-header[data-background-color=blue2]{background:#1269db!important}.logo-header[data-background-color=purple]{background:#6861ce!important}.logo-header[data-background-color=purple2]{background:#5c55bf!important}.navbar-header[data-background-color=purple]{background:#6861ce!important}.navbar-header[data-background-color=purple2]{background:#5c55bf!important}.logo-header[data-background-color=light-blue]{background:#48abf7!important}.logo-header[data-background-color=light-blue2]{background:#3697e1!important}.navbar-header[data-background-color=light-blue]{background:#48abf7!important}.navbar-header[data-background-color=light-blue2]{background:#3697e1!important}.logo-header[data-background-color=green]{background:#31ce36!important}.logo-header[data-background-color=green2]{background:#2bb930!important}.navbar-header[data-background-color=green]{background:#31ce36!important}.navbar-header[data-background-color=green2]{background:#2bb930!important}.logo-header[data-background-color=orange]{background:#ffad46!important}.logo-header[data-background-color=orange2]{background:#ff9e27!important}.navbar-header[data-background-color=orange]{background:#ffad46!important}.navbar-header[data-background-color=orange2]{background:#ff9e27!important}.logo-header[data-background-color=red]{background:#f25961!important}.logo-header[data-background-color=red2]{background:#ea4d56!important}.navbar-header[data-background-color=red]{background:#f25961!important}.navbar-header[data-background-color=red2]{background:#ea4d56!important}.sidebar[data-background-color=dark]{background:#1a2035!important}.sidebar[data-background-color=dark] .user{border-color:rgba(181,181,181,.1)!important}.sidebar[data-background-color=dark] .user .info a>span{color:#b9babf}.sidebar[data-background-color=dark] .user .info a>span .user-level{color:#8d9498}.sidebar[data-background-color=dark] .nav>.nav-item.active>a p{color:#b9babf!important}.sidebar[data-background-color=dark] .nav>.nav-item a{color:#b9babf!important}.sidebar[data-background-color=dark] .nav>.nav-item a:focus p,.sidebar[data-background-color=dark] .nav>.nav-item a:hover p,.sidebar[data-background-color=dark] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#b9babf!important}.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:focus,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:hover,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#1a2035!important}.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a .caret,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a i,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a p,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:focus .caret,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:focus i,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:focus p,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:hover .caret,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:hover i,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a:hover p,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=dark].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#1a2035!important}.sidebar[data-background-color=dark] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=dark] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=dark] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=dark2]{background:#1f283e!important}.sidebar[data-background-color=dark2] .user{border-color:rgba(181,181,181,.1)!important}.sidebar[data-background-color=dark2] .user .info a>span{color:#b9babf}.sidebar[data-background-color=dark2] .user .info a>span .user-level{color:#8d9498}.sidebar[data-background-color=dark2] .nav>.nav-item.active>a p{color:#b9babf!important}.sidebar[data-background-color=dark2] .nav>.nav-item a{color:#b9babf!important}.sidebar[data-background-color=dark2] .nav>.nav-item a:focus p,.sidebar[data-background-color=dark2] .nav>.nav-item a:hover p,.sidebar[data-background-color=dark2] .nav>.nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#b9babf!important}.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:focus,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:hover,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#1f283e!important}.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a .caret,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a i,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a p,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:focus .caret,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:focus i,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:focus p,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:hover .caret,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:hover i,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a:hover p,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=dark2].sidebar-style-2 .nav .nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#1f283e!important}.sidebar[data-background-color=dark2] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=dark2] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=dark2] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=blue]{background:#1572e8!important}.sidebar[data-background-color=blue] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=blue] .user .info a>span{color:#fff}.sidebar[data-background-color=blue] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=blue] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=blue] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=blue] .nav .nav-item a .caret,.sidebar[data-background-color=blue] .nav .nav-item a i,.sidebar[data-background-color=blue] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=blue] .nav .nav-item a:focus,.sidebar[data-background-color=blue] .nav .nav-item a:hover,.sidebar[data-background-color=blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=blue] .nav .nav-item a:focus .caret,.sidebar[data-background-color=blue] .nav .nav-item a:focus i,.sidebar[data-background-color=blue] .nav .nav-item a:focus p,.sidebar[data-background-color=blue] .nav .nav-item a:hover .caret,.sidebar[data-background-color=blue] .nav .nav-item a:hover i,.sidebar[data-background-color=blue] .nav .nav-item a:hover p,.sidebar[data-background-color=blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=blue] .nav>.nav-item.active>a,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#1572e8!important}.sidebar[data-background-color=blue] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=blue] .nav>.nav-item.active>a i,.sidebar[data-background-color=blue] .nav>.nav-item.active>a p,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=blue] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#1572e8!important}.sidebar[data-background-color=blue] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=blue] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=blue] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=blue] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=blue] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=blue] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=blue2]{background:#1269db!important}.sidebar[data-background-color=blue2] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=blue2] .user .info a>span{color:#fff}.sidebar[data-background-color=blue2] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=blue2] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=blue2] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=blue2] .nav .nav-item a .caret,.sidebar[data-background-color=blue2] .nav .nav-item a i,.sidebar[data-background-color=blue2] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=blue2] .nav .nav-item a:focus,.sidebar[data-background-color=blue2] .nav .nav-item a:hover,.sidebar[data-background-color=blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=blue2] .nav .nav-item a:focus .caret,.sidebar[data-background-color=blue2] .nav .nav-item a:focus i,.sidebar[data-background-color=blue2] .nav .nav-item a:focus p,.sidebar[data-background-color=blue2] .nav .nav-item a:hover .caret,.sidebar[data-background-color=blue2] .nav .nav-item a:hover i,.sidebar[data-background-color=blue2] .nav .nav-item a:hover p,.sidebar[data-background-color=blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=blue2] .nav>.nav-item.active>a,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#1269db!important}.sidebar[data-background-color=blue2] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a i,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a p,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#1269db!important}.sidebar[data-background-color=blue2] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=blue2] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=blue2] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=blue2] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=blue2] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=blue2] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=purple]{background:#6861ce!important}.sidebar[data-background-color=purple] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=purple] .user .info a>span{color:#fff}.sidebar[data-background-color=purple] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=purple] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=purple] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=purple] .nav .nav-item a .caret,.sidebar[data-background-color=purple] .nav .nav-item a i,.sidebar[data-background-color=purple] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=purple] .nav .nav-item a:focus,.sidebar[data-background-color=purple] .nav .nav-item a:hover,.sidebar[data-background-color=purple] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=purple] .nav .nav-item a:focus .caret,.sidebar[data-background-color=purple] .nav .nav-item a:focus i,.sidebar[data-background-color=purple] .nav .nav-item a:focus p,.sidebar[data-background-color=purple] .nav .nav-item a:hover .caret,.sidebar[data-background-color=purple] .nav .nav-item a:hover i,.sidebar[data-background-color=purple] .nav .nav-item a:hover p,.sidebar[data-background-color=purple] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=purple] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=purple] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=purple] .nav>.nav-item.active>a,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=purple] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#6861ce!important}.sidebar[data-background-color=purple] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=purple] .nav>.nav-item.active>a i,.sidebar[data-background-color=purple] .nav>.nav-item.active>a p,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=purple] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=purple] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=purple] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=purple] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#6861ce!important}.sidebar[data-background-color=purple] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=purple] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=purple] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=purple] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=purple] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=purple] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=purple2]{background:#5c55bf!important}.sidebar[data-background-color=purple2] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=purple2] .user .info a>span{color:#fff}.sidebar[data-background-color=purple2] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=purple2] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=purple2] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=purple2] .nav .nav-item a .caret,.sidebar[data-background-color=purple2] .nav .nav-item a i,.sidebar[data-background-color=purple2] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=purple2] .nav .nav-item a:focus,.sidebar[data-background-color=purple2] .nav .nav-item a:hover,.sidebar[data-background-color=purple2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=purple2] .nav .nav-item a:focus .caret,.sidebar[data-background-color=purple2] .nav .nav-item a:focus i,.sidebar[data-background-color=purple2] .nav .nav-item a:focus p,.sidebar[data-background-color=purple2] .nav .nav-item a:hover .caret,.sidebar[data-background-color=purple2] .nav .nav-item a:hover i,.sidebar[data-background-color=purple2] .nav .nav-item a:hover p,.sidebar[data-background-color=purple2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=purple2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=purple2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=purple2] .nav>.nav-item.active>a,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#5c55bf!important}.sidebar[data-background-color=purple2] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a i,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a p,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=purple2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#5c55bf!important}.sidebar[data-background-color=purple2] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=purple2] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=purple2] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=purple2] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=purple2] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=purple2] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=light-blue]{background:#48abf7!important}.sidebar[data-background-color=light-blue] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=light-blue] .user .info a>span{color:#fff}.sidebar[data-background-color=light-blue] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=light-blue] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=light-blue] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=light-blue] .nav .nav-item a .caret,.sidebar[data-background-color=light-blue] .nav .nav-item a i,.sidebar[data-background-color=light-blue] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=light-blue] .nav .nav-item a:focus,.sidebar[data-background-color=light-blue] .nav .nav-item a:hover,.sidebar[data-background-color=light-blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=light-blue] .nav .nav-item a:focus .caret,.sidebar[data-background-color=light-blue] .nav .nav-item a:focus i,.sidebar[data-background-color=light-blue] .nav .nav-item a:focus p,.sidebar[data-background-color=light-blue] .nav .nav-item a:hover .caret,.sidebar[data-background-color=light-blue] .nav .nav-item a:hover i,.sidebar[data-background-color=light-blue] .nav .nav-item a:hover p,.sidebar[data-background-color=light-blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=light-blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=light-blue] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#48abf7!important}.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a i,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a p,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=light-blue] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#48abf7!important}.sidebar[data-background-color=light-blue] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=light-blue] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=light-blue] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=light-blue] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=light-blue] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=light-blue] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=light-blue2]{background:#3697e1!important}.sidebar[data-background-color=light-blue2] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=light-blue2] .user .info a>span{color:#fff}.sidebar[data-background-color=light-blue2] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=light-blue2] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=light-blue2] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=light-blue2] .nav .nav-item a .caret,.sidebar[data-background-color=light-blue2] .nav .nav-item a i,.sidebar[data-background-color=light-blue2] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=light-blue2] .nav .nav-item a:focus,.sidebar[data-background-color=light-blue2] .nav .nav-item a:hover,.sidebar[data-background-color=light-blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=light-blue2] .nav .nav-item a:focus .caret,.sidebar[data-background-color=light-blue2] .nav .nav-item a:focus i,.sidebar[data-background-color=light-blue2] .nav .nav-item a:focus p,.sidebar[data-background-color=light-blue2] .nav .nav-item a:hover .caret,.sidebar[data-background-color=light-blue2] .nav .nav-item a:hover i,.sidebar[data-background-color=light-blue2] .nav .nav-item a:hover p,.sidebar[data-background-color=light-blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=light-blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=light-blue2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#3697e1!important}.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a i,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a p,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=light-blue2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#3697e1!important}.sidebar[data-background-color=light-blue2] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=light-blue2] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=light-blue2] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=light-blue2] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=light-blue2] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=light-blue2] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=green]{background:#31ce36!important}.sidebar[data-background-color=green] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=green] .user .info a>span{color:#fff}.sidebar[data-background-color=green] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=green] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=green] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=green] .nav .nav-item a .caret,.sidebar[data-background-color=green] .nav .nav-item a i,.sidebar[data-background-color=green] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=green] .nav .nav-item a:focus,.sidebar[data-background-color=green] .nav .nav-item a:hover,.sidebar[data-background-color=green] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=green] .nav .nav-item a:focus .caret,.sidebar[data-background-color=green] .nav .nav-item a:focus i,.sidebar[data-background-color=green] .nav .nav-item a:focus p,.sidebar[data-background-color=green] .nav .nav-item a:hover .caret,.sidebar[data-background-color=green] .nav .nav-item a:hover i,.sidebar[data-background-color=green] .nav .nav-item a:hover p,.sidebar[data-background-color=green] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=green] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=green] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=green] .nav>.nav-item.active>a,.sidebar[data-background-color=green] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=green] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=green] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#31ce36!important}.sidebar[data-background-color=green] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=green] .nav>.nav-item.active>a i,.sidebar[data-background-color=green] .nav>.nav-item.active>a p,.sidebar[data-background-color=green] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=green] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=green] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=green] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=green] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=green] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=green] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=green] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=green] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#31ce36!important}.sidebar[data-background-color=green] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=green] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=green] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=green] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=green] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=green] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=green2]{background:#2bb930!important}.sidebar[data-background-color=green2] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=green2] .user .info a>span{color:#fff}.sidebar[data-background-color=green2] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=green2] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=green2] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=green2] .nav .nav-item a .caret,.sidebar[data-background-color=green2] .nav .nav-item a i,.sidebar[data-background-color=green2] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=green2] .nav .nav-item a:focus,.sidebar[data-background-color=green2] .nav .nav-item a:hover,.sidebar[data-background-color=green2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=green2] .nav .nav-item a:focus .caret,.sidebar[data-background-color=green2] .nav .nav-item a:focus i,.sidebar[data-background-color=green2] .nav .nav-item a:focus p,.sidebar[data-background-color=green2] .nav .nav-item a:hover .caret,.sidebar[data-background-color=green2] .nav .nav-item a:hover i,.sidebar[data-background-color=green2] .nav .nav-item a:hover p,.sidebar[data-background-color=green2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=green2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=green2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=green2] .nav>.nav-item.active>a,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=green2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#2bb930!important}.sidebar[data-background-color=green2] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=green2] .nav>.nav-item.active>a i,.sidebar[data-background-color=green2] .nav>.nav-item.active>a p,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=green2] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=green2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=green2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=green2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#2bb930!important}.sidebar[data-background-color=green2] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=green2] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=green2] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=green2] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=green2] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=green2] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=orange]{background:#ffad46!important}.sidebar[data-background-color=orange] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=orange] .user .info a>span{color:#fff}.sidebar[data-background-color=orange] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=orange] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=orange] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=orange] .nav .nav-item a .caret,.sidebar[data-background-color=orange] .nav .nav-item a i,.sidebar[data-background-color=orange] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=orange] .nav .nav-item a:focus,.sidebar[data-background-color=orange] .nav .nav-item a:hover,.sidebar[data-background-color=orange] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=orange] .nav .nav-item a:focus .caret,.sidebar[data-background-color=orange] .nav .nav-item a:focus i,.sidebar[data-background-color=orange] .nav .nav-item a:focus p,.sidebar[data-background-color=orange] .nav .nav-item a:hover .caret,.sidebar[data-background-color=orange] .nav .nav-item a:hover i,.sidebar[data-background-color=orange] .nav .nav-item a:hover p,.sidebar[data-background-color=orange] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=orange] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=orange] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=orange] .nav>.nav-item.active>a,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=orange] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#ffad46!important}.sidebar[data-background-color=orange] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=orange] .nav>.nav-item.active>a i,.sidebar[data-background-color=orange] .nav>.nav-item.active>a p,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=orange] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=orange] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=orange] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=orange] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#ffad46!important}.sidebar[data-background-color=orange] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=orange] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=orange] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=orange] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=orange] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=orange] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=orange2]{background:#ff9e27!important}.sidebar[data-background-color=orange2] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=orange2] .user .info a>span{color:#fff}.sidebar[data-background-color=orange2] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=orange2] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=orange2] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=orange2] .nav .nav-item a .caret,.sidebar[data-background-color=orange2] .nav .nav-item a i,.sidebar[data-background-color=orange2] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=orange2] .nav .nav-item a:focus,.sidebar[data-background-color=orange2] .nav .nav-item a:hover,.sidebar[data-background-color=orange2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=orange2] .nav .nav-item a:focus .caret,.sidebar[data-background-color=orange2] .nav .nav-item a:focus i,.sidebar[data-background-color=orange2] .nav .nav-item a:focus p,.sidebar[data-background-color=orange2] .nav .nav-item a:hover .caret,.sidebar[data-background-color=orange2] .nav .nav-item a:hover i,.sidebar[data-background-color=orange2] .nav .nav-item a:hover p,.sidebar[data-background-color=orange2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=orange2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=orange2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=orange2] .nav>.nav-item.active>a,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#ff9e27!important}.sidebar[data-background-color=orange2] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a i,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a p,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=orange2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#ff9e27!important}.sidebar[data-background-color=orange2] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=orange2] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=orange2] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=orange2] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=orange2] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=orange2] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=red]{background:#f25961!important}.sidebar[data-background-color=red] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=red] .user .info a>span{color:#fff}.sidebar[data-background-color=red] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=red] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=red] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=red] .nav .nav-item a .caret,.sidebar[data-background-color=red] .nav .nav-item a i,.sidebar[data-background-color=red] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=red] .nav .nav-item a:focus,.sidebar[data-background-color=red] .nav .nav-item a:hover,.sidebar[data-background-color=red] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=red] .nav .nav-item a:focus .caret,.sidebar[data-background-color=red] .nav .nav-item a:focus i,.sidebar[data-background-color=red] .nav .nav-item a:focus p,.sidebar[data-background-color=red] .nav .nav-item a:hover .caret,.sidebar[data-background-color=red] .nav .nav-item a:hover i,.sidebar[data-background-color=red] .nav .nav-item a:hover p,.sidebar[data-background-color=red] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=red] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=red] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=red] .nav>.nav-item.active>a,.sidebar[data-background-color=red] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=red] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=red] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#f25961!important}.sidebar[data-background-color=red] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=red] .nav>.nav-item.active>a i,.sidebar[data-background-color=red] .nav>.nav-item.active>a p,.sidebar[data-background-color=red] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=red] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=red] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=red] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=red] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=red] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=red] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=red] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=red] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#f25961!important}.sidebar[data-background-color=red] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=red] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=red] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=red] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=red] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=red] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.sidebar[data-background-color=red2]{background:#ea4d56!important}.sidebar[data-background-color=red2] .user{margin-top:0;padding-top:12.5px;border-top:1px solid;border-color:rgba(255,255,255,.1)!important}.sidebar[data-background-color=red2] .user .info a>span{color:#fff}.sidebar[data-background-color=red2] .user .info a>span .user-level{color:#eaeaea}.sidebar[data-background-color=red2] .user .info .caret{border-top-color:#fff}.sidebar[data-background-color=red2] .nav .nav-item a{color:#eaeaea!important}.sidebar[data-background-color=red2] .nav .nav-item a .caret,.sidebar[data-background-color=red2] .nav .nav-item a i,.sidebar[data-background-color=red2] .nav .nav-item a p{color:#eaeaea!important}.sidebar[data-background-color=red2] .nav .nav-item a:focus,.sidebar[data-background-color=red2] .nav .nav-item a:hover,.sidebar[data-background-color=red2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true]{color:#fff!important}.sidebar[data-background-color=red2] .nav .nav-item a:focus .caret,.sidebar[data-background-color=red2] .nav .nav-item a:focus i,.sidebar[data-background-color=red2] .nav .nav-item a:focus p,.sidebar[data-background-color=red2] .nav .nav-item a:hover .caret,.sidebar[data-background-color=red2] .nav .nav-item a:hover i,.sidebar[data-background-color=red2] .nav .nav-item a:hover p,.sidebar[data-background-color=red2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=red2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=red2] .nav .nav-item a[data-toggle=collapse][aria-expanded=true] p{color:#fff!important}.sidebar[data-background-color=red2] .nav>.nav-item.active>a,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:focus,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:hover,.sidebar[data-background-color=red2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true]{background:#fff!important;color:#ea4d56!important}.sidebar[data-background-color=red2] .nav>.nav-item.active>a .caret,.sidebar[data-background-color=red2] .nav>.nav-item.active>a i,.sidebar[data-background-color=red2] .nav>.nav-item.active>a p,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:focus .caret,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:focus i,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:focus p,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:hover .caret,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:hover i,.sidebar[data-background-color=red2] .nav>.nav-item.active>a:hover p,.sidebar[data-background-color=red2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] .caret,.sidebar[data-background-color=red2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] i,.sidebar[data-background-color=red2] .nav>.nav-item.active>a[data-toggle=collapse][aria-expanded=true] p{color:#ea4d56!important}.sidebar[data-background-color=red2] .nav .nav-section .sidebar-mini-icon,.sidebar[data-background-color=red2] .nav .nav-section .text-section{color:#eaeaea}.sidebar[data-background-color=red2] .nav .nav-collapse li a .sub-item:before{background:#eaeaea}.sidebar[data-background-color=red2] .scrollbar-inner>.scroll-element .scroll-bar{background-color:#f7f7f7}.sidebar[data-background-color=red2] .scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.sidebar[data-background-color=red2] .scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#dcdbdb}.avatar{position:relative;display:inline-block}.avatar-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.avatar-title{width:100%;height:100%;background-color:#6861ce;color:#fff;display:flex;align-items:center;justify-content:center}.avatar-away::before,.avatar-offline::before,.avatar-online::before{position:absolute;right:0;bottom:0;width:25%;height:25%;border-radius:50%;content:'';border:2px solid #fff}.avatar-online::before{background-color:#31ce36}.avatar-offline::before{background-color:#97a2b1}.avatar-away::before{background-color:#ffad46}.avatar{width:3rem;height:3rem}.avatar .border{border-width:3px!important}.avatar .rounded{border-radius:6px!important}.avatar .avatar-title{font-size:18px}.avatar-xs{width:1.65rem;height:1.65rem}.avatar-xs .border{border-width:2px!important}.avatar-xs .rounded{border-radius:4px!important}.avatar-xs .avatar-title{font-size:12px}.avatar-xs.avatar-away::before,.avatar-xs.avatar-offline::before,.avatar-xs.avatar-online::before{border-width:1px}.avatar-sm{width:2.5rem;height:2.5rem}.avatar-sm .border{border-width:3px!important}.avatar-sm .rounded{border-radius:4px!important}.avatar-sm .avatar-title{font-size:15px}.avatar-sm.avatar-away::before,.avatar-sm.avatar-offline::before,.avatar-sm.avatar-online::before{border-width:2px}.avatar-lg{width:3.75rem;height:3.75rem}.avatar-lg .border{border-width:3px!important}.avatar-lg .rounded{border-radius:8px!important}.avatar-lg .avatar-title{font-size:24px}.avatar-lg.avatar-away::before,.avatar-lg.avatar-offline::before,.avatar-lg.avatar-online::before{border-width:3px}.avatar-xl{width:5rem;height:5rem}.avatar-xl .border{border-width:4px!important}.avatar-xl .rounded{border-radius:8px!important}.avatar-xl .avatar-title{font-size:28px}.avatar-xl.avatar-away::before,.avatar-xl.avatar-offline::before,.avatar-xl.avatar-online::before{border-width:4px}.avatar-xxl{width:5.125rem;height:5.125rem}.avatar-xxl .border{border-width:6px!important}.avatar-xxl .rounded{border-radius:8px!important}.avatar-xxl .avatar-title{font-size:30px}.avatar-xxl.avatar-away::before,.avatar-xxl.avatar-offline::before,.avatar-xxl.avatar-online::before{border-width:4px}@media (min-width:768px){.avatar-xxl{width:8rem;height:8rem}.avatar-xxl .border{border-width:4px!important}.avatar-xxl .rounded{border-radius:12px!important}.avatar-xxl .avatar-title{font-size:42px}.avatar-xxl.avatar-away::before,.avatar-xxl.avatar-offline::before,.avatar-xxl.avatar-online::before{border-width:4px}}.avatar-group{display:inline-flex}.avatar-group .avatar+.avatar{margin-left:-.75rem}.avatar-group .avatar-xs+.avatar-xs{margin-left:-.40625rem}.avatar-group .avatar-sm+.avatar-sm{margin-left:-.625rem}.avatar-group .avatar-lg+.avatar-lg{margin-left:-1rem}.avatar-group .avatar-xl+.avatar-xl{margin-left:-1.28125rem}.avatar-group .avatar:hover{z-index:1}.border-dark{border-color:#202940!important}.breadcrumbs{list-style:none;display:inline;width:auto;border-left:1px solid #efefef;margin-left:25px;padding-left:25px;margin-bottom:0;padding-top:8px;padding-bottom:8px;height:100%}.breadcrumbs li{display:inline-block}.breadcrumbs li a{color:#575962;font-size:13px}.breadcrumbs li a i{font-size:16px}.breadcrumbs li a:hover{text-decoration:none}.breadcrumbs li.separator{padding-left:10px;padding-right:10px;font-size:12px}.card,.card-light{border-radius:5px;background-color:#fff;margin-bottom:30px;-webkit-box-shadow:2px 6px 15px 0 rgba(69,65,78,.1);-moz-box-shadow:2px 6px 15px 0 rgba(69,65,78,.1);box-shadow:2px 6px 15px 0 rgba(69,65,78,.1);border:0}.card .card-header,.card-light .card-header{padding:1rem 1.25rem;background-color:transparent;border-bottom:1px solid #ebecec!important}.card .card-header:first-child,.card-light .card-header:first-child{border-radius:0}.card .card-header .card-head-row,.card-light .card-header .card-head-row{display:flex;align-items:center}.card .card-header .card-head-row .card-tools,.card-light .card-header .card-head-row .card-tools{margin-left:auto;float:right;padding-left:15px}.card .separator-solid,.card-light .separator-solid{border-top:1px solid #ebecec;margin:15px 0}.card .separator-dashed,.card-light .separator-dashed{border-top:1px dashed #ebecec;margin:15px 0}.card .separator-dot,.card-light .separator-dot{border-top:1px dotted #ebecec;margin:15px 0}.card .full-width-separator,.card-light .full-width-separator{margin:15px -20px 15px}.card .b-b1,.card-light .b-b1{border-bottom:1px solid rgba(255,255,255,.3)}.card .card-body,.card-light .card-body{padding:1.25rem}.card .card-footer,.card-light .card-footer{background-color:transparent;line-height:30px;border-top:1px solid #ebecec!important;font-size:13px}.card .pull-in,.card-light .pull-in{margin-left:-1.25rem;margin-right:-1.25rem}.card .pull-in.sparkline-fix,.card-light .pull-in.sparkline-fix{margin-left:-1.35rem;margin-right:-1.35rem;margin-bottom:-3px}.card .chart-as-background,.card-light .chart-as-background{position:absolute;bottom:0;width:calc(100% + 2px)}.card .card-action,.card-light .card-action{padding:30px;background-color:transparent;line-height:30px;border-top:1px solid #ebecec!important;font-size:14px}.card .card-footer hr,.card-light .card-footer hr{margin-top:5px;margin-bottom:5px}.card .card-footer .legend,.card-light .card-footer .legend{display:inline-block}@media screen and (max-width:476px){.card .card-header .card-head-row:not(.card-tools-still-right){flex-direction:column;align-items:unset}.card .card-header .card-head-row:not(.card-tools-still-right) .card-tools{margin-left:0;float:left;padding-left:0;padding-top:10px}}.card.full-height{height:calc(100% - 30px)}.card-space{padding:0 30px}.card-space>.card-action,.card-space>.card-body,.card-space>.card-footer,.card-space>.card-header{padding-left:0!important;padding-right:0!important}.card-with-nav .card-header{border-bottom:0!important;padding-top:0!important;padding-bottom:0!important}.card-with-nav .card-body{padding:15px 25px!important}.card-list{padding:10px 0}.card-list .item-list{display:flex;flex-direction:row;padding:10px 0;align-items:center}.card-list .item-list .info-user{flex:1}.card-list .item-list .info-user .username,.card-list .item-list .info-user a.username{color:#1572e8;font-size:13px;margin-bottom:5px;font-weight:400}.card-list .item-list .info-user .status{font-size:11px;color:#7d7b7b}.card-title{margin:0;color:#575962;font-size:20px;font-weight:400;line-height:1.6}.card-title a,.card-title a:focus,.card-title a:hover{color:#575962;text-decoration:none}.card-sub{display:block;margin:5px 0 10px 0;font-size:.9rem;background:#f7f8fa;color:#575962;padding:.85rem 1.5rem;border-radius:4px;line-height:1.82}.card-category{margin-top:8px;font-size:14px;color:#8d9498;margin-bottom:0;word-break:normal}label{font-size:14px;font-weight:400;color:#8d9498;margin-bottom:0}.card-transparent{background:0 0!important;box-shadow:none;border-color:transparent!important}.card-stats .card-body{padding:15px!important}.card-stats .card-title{margin-bottom:0!important}.card-stats .card-category{margin-top:0}.card-stats .col-icon{width:65px;height:65px;margin-left:15px}.card-stats .icon-big{width:100%;height:100%;font-size:2.2em;min-height:64px;display:flex;align-items:center;justify-content:center}.card-stats .icon-big.icon-danger,.card-stats .icon-big.icon-default,.card-stats .icon-big.icon-info,.card-stats .icon-big.icon-primary,.card-stats .icon-big.icon-secondary,.card-stats .icon-big.icon-success,.card-stats .icon-big.icon-warning{border-radius:5px}.card-stats .icon-big.icon-danger i,.card-stats .icon-big.icon-default i,.card-stats .icon-big.icon-info i,.card-stats .icon-big.icon-primary i,.card-stats .icon-big.icon-secondary i,.card-stats .icon-big.icon-success i,.card-stats .icon-big.icon-warning i{color:#fff!important}.card-stats .icon-big.icon-default{background:#1a2035}.card-stats .icon-big.icon-primary{background:#1572e8}.card-stats .icon-big.icon-secondary{background:#6861ce}.card-stats .icon-big.icon-success{background:#31ce36}.card-stats .icon-big.icon-warning{background:#ffad46}.card-stats .icon-big.icon-info{background:#48abf7}.card-stats .icon-big.icon-danger{background:#f25961}.card-stats .icon-big.round{border-radius:50%!important}.card-stats .col-stats{align-items:center;display:flex;padding-left:15px}.card-tasks .table{margin-bottom:0}.card-tasks .table .form-check{padding:0 0 0 .75rem!important}.card-tasks .table .form-check label{margin-bottom:0!important}.card-tasks .table tbody td:first-child,.card-tasks .table thead th:first-child{padding-left:15px;padding-right:15px}.card-tasks .table tbody td:last-child,.card-tasks .table thead th:last-child{padding-right:15px}.card-tasks .table tbody tr:last-child td{border-bottom-width:0!important}.card-tasks .card-body{padding-top:0;padding-bottom:0}.card-tasks .card-body .table td{font-size:13px}.card-tasks .card-body .table td .btn{font-size:15px;opacity:.7;transition:all .3s}.card-tasks .card-body .table td:hover .btn{opacity:1}.card-tasks .form-button-action{display:block!important}.card-danger,.card-dark,.card-default,.card-info,.card-primary,.card-secondary,.card-success,.card-warning{color:#fff;border:0}.card-danger .card-header,.card-dark .card-header,.card-default .card-header,.card-info .card-header,.card-primary .card-header,.card-secondary .card-header,.card-success .card-header,.card-warning .card-header{border-bottom:transparent!important}.card-danger .card-category,.card-danger .card-title,.card-danger label,.card-dark .card-category,.card-dark .card-title,.card-dark label,.card-default .card-category,.card-default .card-title,.card-default label,.card-info .card-category,.card-info .card-title,.card-info label,.card-primary .card-category,.card-primary .card-title,.card-primary label,.card-secondary .card-category,.card-secondary .card-title,.card-success .card-category,.card-success .card-title,.card-success label,.card-warning .card-category,.card-warning .card-title,.card-warning label{color:#fff}.card-danger .icon-big>i,.card-dark .icon-big>i,.card-default .icon-big>i,.card-info .icon-big>i,.card-primary .icon-big>i,.card-secondary .icon-big>i,.card-success .icon-big>i,.card-warning .icon-big>i{color:#fff!important}.card-danger .card-footer,.card-dark .card-footer,.card-default .card-footer,.card-info .card-footer,.card-primary .card-footer,.card-secondary .card-footer,.card-success .card-footer,.card-warning .card-footer{border-top:transparent!important}.card-default{background:#1a2035!important}.card-primary{background:#1572e8!important}.card-secondary{background:#6861ce!important}.card-info{background:#48abf7!important}.card-success{background:#31ce36!important}.card-warning{background:#ffad46!important}.card-danger{background:#f25961!important}.card-round{border-radius:5px}.progress-card{margin-bottom:25px}.progress-card .progress-status{display:flex;margin-bottom:10px;-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.card-post .info-post .username{margin-bottom:0;font-weight:600}.card-post .info-post .date{margin-bottom:0}.card-pricing{padding:20px 5px;text-align:center;border-radius:5px}.card-pricing .card-header{border-bottom:0!important}.card-pricing .card-footer{border-top:0!important;padding:15px 15px 10px 15px}.card-pricing .card-title{font-weight:400;font-size:20px}.card-pricing .card-price .price{font-size:36px;font-weight:400}.card-pricing .card-price .text{font-size:18px;font-weight:400;color:#d1d7e3}.card-pricing .specification-list{list-style:none;padding-left:0}.card-pricing .specification-list li{padding:8px 0 12px;border-bottom:1px solid #eee;text-align:left;font-size:12px;margin-bottom:5px}.card-pricing .specification-list li .name-specification{color:#83848a}.card-pricing .specification-list li .status-specification{margin-left:auto;float:right;font-weight:400}.card-pricing.card-pricing-focus{padding:40px 5px}.card-pricing.card-danger .name-specification,.card-pricing.card-default .name-specification,.card-pricing.card-info .name-specification,.card-pricing.card-primary .name-specification,.card-pricing.card-secondary .name-specification,.card-pricing.card-success .name-specification,.card-pricing.card-warning .name-specification{color:#fff!important}.card-pricing.card-primary .specification-list li{border-color:#2f8bff!important}.card-pricing.card-primary .btn-light{color:#1572e8!important}.card-pricing.card-success .specification-list li{border-color:#64e069!important}.card-pricing.card-success .btn-light{color:#31ce36!important}.card-pricing.card-secondary .specification-list li{border-color:#7f77dc!important}.card-pricing.card-secondary .btn-light{color:#6861ce!important}.card-pricing.card-default .specification-list li{border-color:#6f8996!important}.card-pricing.card-default .btn-light{color:#1a2035!important}.card-pricing.card-info .specification-list li{border-color:#11c0e4!important}.card-pricing.card-info .btn-light{color:#48abf7!important}.card-pricing.card-danger .specification-list li{border-color:#ff6972!important}.card-pricing.card-danger .btn-light{color:#f25961!important}.card-pricing.card-warning .specification-list li{border-color:#ffbc67!important}.card-pricing.card-warning .btn-light{color:#ffad46!important}.card-pricing2{padding-bottom:10px;background:#fff!important;border-bottom:7px solid;text-align:center;overflow:hidden;position:relative;border-radius:5px;-webkit-box-shadow:0 1px 15px 1px rgba(69,65,78,.08);-moz-box-shadow:0 1px 15px 1px rgba(69,65,78,.08);box-shadow:0 1px 15px 1px rgba(69,65,78,.08)}.card-pricing2:before{content:"";width:100%;height:350px;position:absolute;top:-150px;left:0;transform:skewY(-20deg)}.card-pricing2 .price-value:after,.card-pricing2 .price-value:before{content:"";left:50%;transform:translateX(-50%) scaleY(.5) rotate(45deg)}.card-pricing2 .value:after,.card-pricing2 .value:before{content:"";left:50%;transform:translateX(-50%) scaleY(.5) rotate(45deg)}.card-pricing2 .pricing-header{padding:20px 20px 60px;text-align:left;position:relative}.card-pricing2 .sub-title{display:block;font-size:16px}.card-pricing2 .value{background:#fff}.card-pricing2 .price-value{display:inline-block;width:170px;height:110px;padding:15px;border:2px solid;border-top:none;border-bottom:none;position:relative}.card-pricing2 .price-value:after,.card-pricing2 .price-value:before{width:121px;height:121px;border:3px solid;border-right:none;border-bottom:none;position:absolute;top:-60px}.card-pricing2 .price-value:after{border-top:none;border-left:none;border-bottom:3px solid;border-right:3px solid;top:auto;bottom:-60px}.card-pricing2 .value{width:100%;height:100%;border:2px solid;border-top:none;border-bottom:none;z-index:1;position:relative}.card-pricing2 .value:after,.card-pricing2 .value:before{width:97px;height:97px;background:#fff;border:3px solid;border-bottom:none;border-right:none;position:absolute;top:-48px;z-index:-1}.card-pricing2 .value:after{border-right:3px solid;border-bottom:3px solid;border-top:none;border-left:none;top:auto;bottom:-48px}.card-pricing2 .currency{display:inline-block;font-size:30px;margin-top:7px;vertical-align:top}.card-pricing2 .amount{display:inline-block;font-size:40px;font-weight:600;line-height:65px}.card-pricing2 .amount span{display:inline-block;font-size:30px;font-weight:400;vertical-align:top;margin-top:-7px}.card-pricing2 .month{display:block;font-size:16px;line-height:0}.card-pricing2 .pricing-content{padding:50px 0 0 80px;margin-bottom:20px;list-style:none;text-align:left;transition:all .3s ease 0s}.card-pricing2 .pricing-content li{padding:7px 0;font-size:13px;color:grey;position:relative}.card-pricing2 .pricing-content li.disable:before,.card-pricing2 .pricing-content li:before{content:"\f00c";font-family:'Font Awesome 5 Solid';font-weight:900;width:20px;height:20px;line-height:20px;border-radius:50%;background:#98c458;text-align:center;color:#fff;position:absolute;left:-50px;font-size:9px}.card-pricing2 .pricing-content li.disable:before{content:"\f00d";background:#fe6c6c}.card-pricing2.card-default{border-bottom-color:#1a2035}.card-pricing2.card-default .price-value:before,.card-pricing2.card-default .value:before{border-left-color:#1a2035;border-top-color:#1a2035}.card-pricing2.card-default .price-value,.card-pricing2.card-default .value{border-right-color:#1a2035}.card-pricing2.card-default .price-value:after,.card-pricing2.card-default .value:after{border-right-color:#1a2035}.card-pricing2.card-default .price-value:after,.card-pricing2.card-default .value:after{border-bottom-color:#1a2035}.card-pricing2.card-default .value{color:#1a2035}.card-pricing2.card-default:before{background:#1a2035}.card-pricing2.card-default .price-value,.card-pricing2.card-default .value{border-left-color:#1a2035}.card-pricing2.card-primary{border-bottom-color:#1572e8}.card-pricing2.card-primary .price-value:before,.card-pricing2.card-primary .value:before{border-left-color:#1572e8;border-top-color:#1572e8}.card-pricing2.card-primary .price-value,.card-pricing2.card-primary .value{border-right-color:#1572e8}.card-pricing2.card-primary .price-value:after,.card-pricing2.card-primary .value:after{border-right-color:#1572e8}.card-pricing2.card-primary .price-value:after,.card-pricing2.card-primary .value:after{border-bottom-color:#1572e8}.card-pricing2.card-primary .value{color:#1572e8}.card-pricing2.card-primary:before{background:#1572e8}.card-pricing2.card-primary .price-value,.card-pricing2.card-primary .value{border-left-color:#1572e8}.card-pricing2.card-secondary{border-bottom-color:#6861ce}.card-pricing2.card-secondary .price-value:before,.card-pricing2.card-secondary .value:before{border-left-color:#6861ce;border-top-color:#6861ce}.card-pricing2.card-secondary .price-value,.card-pricing2.card-secondary .value{border-right-color:#6861ce}.card-pricing2.card-secondary .price-value:after,.card-pricing2.card-secondary .value:after{border-right-color:#6861ce}.card-pricing2.card-secondary .price-value:after,.card-pricing2.card-secondary .value:after{border-bottom-color:#6861ce}.card-pricing2.card-secondary .value{color:#6861ce}.card-pricing2.card-secondary:before{background:#6861ce}.card-pricing2.card-secondary .price-value,.card-pricing2.card-secondary .value{border-left-color:#6861ce}.card-pricing2.card-info{border-bottom-color:#48abf7}.card-pricing2.card-info .price-value:before,.card-pricing2.card-info .value:before{border-left-color:#48abf7;border-top-color:#48abf7}.card-pricing2.card-info .price-value,.card-pricing2.card-info .value{border-right-color:#48abf7}.card-pricing2.card-info .price-value:after,.card-pricing2.card-info .value:after{border-right-color:#48abf7}.card-pricing2.card-info .price-value:after,.card-pricing2.card-info .value:after{border-bottom-color:#48abf7}.card-pricing2.card-info .value{color:#48abf7}.card-pricing2.card-info:before{background:#48abf7}.card-pricing2.card-info .price-value,.card-pricing2.card-info .value{border-left-color:#48abf7}.card-pricing2.card-success{border-bottom-color:#31ce36}.card-pricing2.card-success .price-value:before,.card-pricing2.card-success .value:before{border-left-color:#31ce36;border-top-color:#31ce36}.card-pricing2.card-success .price-value,.card-pricing2.card-success .value{border-right-color:#31ce36}.card-pricing2.card-success .price-value:after,.card-pricing2.card-success .value:after{border-right-color:#31ce36}.card-pricing2.card-success .price-value:after,.card-pricing2.card-success .value:after{border-bottom-color:#31ce36}.card-pricing2.card-success .value{color:#31ce36}.card-pricing2.card-success:before{background:#31ce36}.card-pricing2.card-success .price-value,.card-pricing2.card-success .value{border-left-color:#31ce36}.card-pricing2.card-warning{border-bottom-color:#ffad46}.card-pricing2.card-warning .price-value:before,.card-pricing2.card-warning .value:before{border-left-color:#ffad46;border-top-color:#ffad46}.card-pricing2.card-warning .price-value,.card-pricing2.card-warning .value{border-right-color:#ffad46}.card-pricing2.card-warning .price-value:after,.card-pricing2.card-warning .value:after{border-right-color:#ffad46}.card-pricing2.card-warning .price-value:after,.card-pricing2.card-warning .value:after{border-bottom-color:#ffad46}.card-pricing2.card-warning .value{color:#ffad46}.card-pricing2.card-warning:before{background:#ffad46}.card-pricing2.card-warning .price-value,.card-pricing2.card-warning .value{border-left-color:#ffad46}.card-pricing2.card-danger{border-bottom-color:#f25961}.card-pricing2.card-danger .price-value:before,.card-pricing2.card-danger .value:before{border-left-color:#f25961;border-top-color:#f25961}.card-pricing2.card-danger .price-value,.card-pricing2.card-danger .value{border-right-color:#f25961}.card-pricing2.card-danger .price-value:after,.card-pricing2.card-danger .value:after{border-right-color:#f25961}.card-pricing2.card-danger .price-value:after,.card-pricing2.card-danger .value:after{border-bottom-color:#f25961}.card-pricing2.card-danger .value{color:#f25961}.card-pricing2.card-danger:before{background:#f25961}.card-pricing2.card-danger .price-value,.card-pricing2.card-danger .value{border-left-color:#f25961}.row-cardProduct{padding:0 5px;white-space:nowrap;overflow-x:auto;display:block!important;margin-right:-2rem;width:unset!important}.col-cardProduct{width:225px;padding:0 10px;display:inline-block}.card-product{background:#fff;border-radius:5px;overflow:hidden;box-shadow:0 7px 15px rgba(0,0,0,.12);margin-bottom:15px}.card-product .product-summary{padding:15px}@media screen and (max-width:768px){.col-cardProduct{width:175px}.card-product .title-product{font-size:14px}.card-product .price-product{font-size:18px}}.skew-shadow{position:relative;overflow:hidden}.skew-shadow:before{content:'';position:absolute;background:rgba(255,255,255,.1);width:50%;min-width:150px;height:100%;top:0;right:-25%;transform:skewX(-32.5deg)}.bubble-shadow{position:relative;overflow:hidden}.bubble-shadow:before{position:absolute;top:-10%;right:-140px;width:300px;height:300px;content:"";border-radius:50%;background:rgba(255,255,255,.05)}.bubble-shadow:after{position:absolute;top:-65px;right:80px;width:150px;height:150px;content:"";border-radius:50%;background:rgba(255,255,255,.05)}.curves-shadow{position:relative;overflow:hidden}.curves-shadow:before{content:'';position:absolute;background:url(../img/img-shadow.png);background-size:cover;width:100%;height:100%;top:0;left:0}@media only screen and (max-width:990px){.card-pricing2{margin-bottom:30px}}@media only screen and (max-width:767px){.card-pricing2:before{transform:skewY(-15deg)}}.card-annoucement .card-body{padding:50px 25px}.card-annoucement .card-opening{font-size:20px;font-weight:400;letter-spacing:.01em}.card-annoucement .card-desc{padding:15px 0;font-size:16px;line-height:1.65;font-weight:300}.card-annoucement.card-primary .btn-light{color:#1572e8!important}.card-annoucement.card-success .btn-light{color:#31ce36!important}.card-annoucement.card-secondary .btn-light{color:#6861ce!important}.card-annoucement.card-default .btn-light{color:#1a2035!important}.card-annoucement.card-info .btn-light{color:#48abf7!important}.card-annoucement.card-danger .btn-light{color:#f25961!important}.card-annoucement.card-warning .btn-light{color:#ffad46!important}.card-profile{color:#575962}.card-profile .profile-picture{text-align:center;position:absolute;margin:0 auto;left:0;right:0;bottom:-41px;width:100%;box-sizing:border-box}.card-profile .user-profile .name{font-size:20px;font-weight:400;margin-bottom:5px}.card-profile .user-profile .job{color:#83848a;margin-bottom:5px}.card-profile .user-profile .desc{color:#bbb;margin-bottom:15px}.card-profile .user-profile .social-media{margin-bottom:20px}.card-profile .user-profile .social-media .btn{padding:5px!important}.card-profile .user-profile .social-media .btn i{font-size:22px!important}.card-profile .user-stats{margin-bottom:10px}.card-profile .user-stats [class^=col]{border-right:1px solid #ebebeb}.card-profile .user-stats [class^=col]:last-child{border-right:0}.card-profile .user-stats .number{font-weight:400;font-size:15px}.card-profile .user-stats .title{color:#7d7b7b}.card-profile .card-header{border-bottom:0;height:100px;position:relative}.card-profile .card-body{padding-top:60px}.card-profile .card-footer{border-top:0}.card-profile.card-secondary .card-header{background:#6861ce}.row-card-no-pd{border-radius:5px;margin-left:0;margin-right:0;background:#fff;margin-bottom:30px;padding-top:15px;padding-bottom:15px;position:relative;-webkit-box-shadow:2px 6px 15px 0 rgba(69,65,78,.1);-moz-box-shadow:2px 6px 15px 0 rgba(69,65,78,.1);box-shadow:2px 6px 15px 0 rgba(69,65,78,.1);border:0}.row-card-no-pd .card{margin-bottom:0;border-width:0;box-shadow:none;position:unset}.row-card-no-pd .card .card-header{padding-left:0!important;padding-top:0!important;padding-right:0!important}.row-card-no-pd [class*=col] .card:before{position:absolute;height:calc(100%);width:1px;background:#eee;content:'';right:0}.row-card-no-pd [class*=col]:last-child .card:before{width:0}.accordion .card{border-radius:5px!important;background:#f7f7f7!important;color:#575962!important;border:0;box-shadow:none}.accordion .card .span-icon{font-size:22px;padding-left:15px;padding-right:15px}.accordion .card>.card-header{border:0!important;display:flex;flex-direction:row;align-items:center;cursor:pointer;border-radius:0!important}.accordion .card>.card-header>.span-mode{margin-left:auto}.accordion .card>.card-header>.span-mode:before{content:"\f068"!important;font-family:'Font Awesome 5 Solid';font-weight:900;font-size:16px}.accordion .card>.card-header.collapsed>.span-mode:before{content:"\f067"!important}.accordion .card .card-body{border-top:1px solid #ebebeb;padding:30px}.accordion.accordion-danger .card .card-header,.accordion.accordion-danger .card .card-header .btn-link,.accordion.accordion-default .card .card-header,.accordion.accordion-default .card .card-header .btn-link,.accordion.accordion-info .card .card-header,.accordion.accordion-info .card .card-header .btn-link,.accordion.accordion-primary .card .card-header,.accordion.accordion-primary .card .card-header .btn-link,.accordion.accordion-secondary .card .card-header,.accordion.accordion-secondary .card .card-header .btn-link,.accordion.accordion-success .card .card-header,.accordion.accordion-success .card .card-header .btn-link,.accordion.accordion-warning .card .card-header,.accordion.accordion-warning .card .card-header .btn-link{font-size:14px}.accordion.accordion-default .card .card-header{color:#1a2035}.accordion.accordion-default .card .card-header .btn-link{color:#1a2035!important}.accordion.accordion-primary .card .card-header{color:#1572e8}.accordion.accordion-primary .card .card-header .btn-link{color:#1572e8!important}.accordion.accordion-secondary .card .card-header{color:#6861ce}.accordion.accordion-secondary .card .card-header .btn-link{color:#6861ce!important}.accordion.accordion-info .card .card-header{color:#48abf7}.accordion.accordion-info .card .card-header .btn-link{color:#48abf7!important}.accordion.accordion-success .card .card-header{color:#31ce36}.accordion.accordion-success .card .card-header .btn-link{color:#31ce36!important}.accordion.accordion-warning .card .card-header{color:#ffad46}.accordion.accordion-warning .card .card-header .btn-link{color:#ffad46!important}.accordion.accordion-danger .card .card-header{color:#f25961}.accordion.accordion-danger .card .card-header .btn-link{color:#f25961!important}.border-transparent{border-color:transparent!important}.gutters-0{margin-right:0;margin-left:0}.gutters-0>.col,.gutters-0>[class*=col-]{padding-right:0;padding-left:0}.gutters-0 .card{margin-bottom:0}.gutters-xs{margin-right:-.25rem;margin-left:-.25rem}.gutters-xs>.col,.gutters-xs>[class*=col-]{padding-right:.25rem;padding-left:.25rem}.gutters-xs .card{margin-bottom:.5rem}.gutters-sm{margin-right:-.5rem;margin-left:-.5rem}.gutters-sm>.col,.gutters-sm>[class*=col-]{padding-right:.5rem;padding-left:.5rem}.gutters-sm .card{margin-bottom:1rem}.gutters-lg{margin-right:-1rem;margin-left:-1rem}.gutters-lg>.col,.gutters-lg>[class*=col-]{padding-right:1rem;padding-left:1rem}.gutters-lg .card{margin-bottom:2rem}.gutters-xl{margin-right:-1.5rem;margin-left:-1.5rem}.gutters-xl>.col,.gutters-xl>[class*=col-]{padding-right:1.5rem;padding-left:1.5rem}.gutters-xl .card{margin-bottom:3rem}.stamp{color:#fff;background:#6861ce;display:inline-block;min-width:2rem;height:2rem;padding:0 .25rem;line-height:2rem;text-align:center;border-radius:3px;font-weight:600}.stamp-md{min-width:2.5rem;height:2.5rem;line-height:2.5rem}.form-control{font-size:14px;border-color:#ebedf2;padding:.6rem 1rem;height:inherit!important}.form-control:focus{border-color:#3e93ff}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem!important;font-size:1.25rem!important}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem!important;font-size:.875rem!important;line-height:1.5}.form-control::-webkit-input-placeholder{color:inherit;opacity:.7}.form-control:-moz-placeholder{color:inherit;opacity:.7}.form-control::-moz-placeholder{color:inherit;opacity:.7}.form-control:-ms-input-placeholder{color:inherit;opacity:.7}.form-control::-ms-input-placeholder{color:inherit;opacity:.7}.input-group-text{border-color:#ebedf2!important}.form-button-action{display:inline-flex}.form-check-label,.form-radio-label{margin-right:15px}.select-all-checkbox+.form-check-sign:before{background:#ccc!important;border-color:#ccc!important}.form-check [type=checkbox]:checked,.form-check [type=checkbox]:not(:checked){position:absolute;left:-9999px}.form-check [type=checkbox]+.form-check-sign,.form-check [type=checkbox]:checked+.form-check-sign,.form-check [type=checkbox]:not(:checked)+.form-check-sign{position:relative;padding-left:2em;color:#575962;cursor:pointer}.form-check [type=checkbox]+.form-check-sign:before,.form-check [type=checkbox]:checked+.form-check-sign:before,.form-check [type=checkbox]:not(:checked)+.form-check-sign:before{content:'';position:absolute;left:0;top:1px;width:16px;height:16px;border:1px solid #ccc;background:0 0;border-radius:4px}.form-check [type=checkbox]+.form-check-sign:after,.form-check [type=checkbox]:checked+.form-check-sign:after,.form-check [type=checkbox]:not(:checked)+.form-check-sign:after{content:"\f00c";display:inline-block;position:absolute;top:-1px;left:2px;width:18px;height:18px;text-align:center;font-size:1.3em;line-height:.8;color:#1572e8;transition:all .2s;font-family:'Font Awesome 5 Solid'}.form-check [type=checkbox]:not(:checked)+.form-check-sign:after{opacity:0;transform:scale(0)}.form-check [type=checkbox]:checked+.form-check-sign{font-weight:400}.form-check [type=checkbox]:checked+.form-check-sign:after{opacity:1;transform:scale(1)}.form-check [type=checkbox]:disabled:not(:checked)+.form-check-sign:before{box-shadow:none;border-color:#bbb;background-color:#ddd}.form-check [type=checkbox]:disabled:checked+.form-check-sign:before{box-shadow:none;border-color:#bbb;background-color:#ddd}.form-check [type=checkbox]:disabled:checked+.form-check-sign:after{color:#999}.form-check [type=checkbox]:disabled+.form-check-sign{color:#aaa}.form-check [type=checkbox]:checked:focus+.form-check-sign:before,.form-check [type=checkbox]:not(:checked):focus+.form-check-sign:before{border:1px solid #ccc}.form-check-sign:hover:before{border:1px solid #ccc!important}.form-check{padding-left:.75rem}.form-check-input{position:relative;margin-top:.3rem}.form-radio [type=radio]:checked,.form-radio [type=radio]:not(:checked){position:absolute;left:-9999px}.form-radio [type=radio]:checked+.form-radio-sign,.form-radio [type=radio]:not(:checked)+.form-radio-sign{color:#575962;position:relative;padding-left:2em;cursor:pointer;line-height:22px;font-weight:400}.form-radio [type=radio]:not(:checked)+.form-radio-sign:before{content:"\f18a";font-size:22px;font-family:LineAwesome;position:absolute;left:0;top:auto;background:0 0;line-height:1;color:#bbb}.form-radio [type=radio]:checked+.form-radio-sign:before{content:"\f18a";font-size:22px;font-family:LineAwesome;position:absolute;left:0;top:auto;background:0 0;line-height:1;display:none}.form-radio [type=radio]:checked+.form-radio-sign:after,.form-radio [type=radio]:not(:checked)+.form-radio-sign:after{content:"\f1bc";position:absolute;left:0;top:auto;text-align:center;font-size:22px;color:#4d7cfe;transition:all .2s;line-height:1;font-family:LineAwesome}.form-radio [type=radio]:not(:checked)+.form-radio-sign:after{opacity:0;transform:scale(0)}.form-radio [type=radio]:checked+.form-radio-sign{font-weight:400}.form-radio [type=radio]:checked+.form-radio-sign:after{opacity:1;transform:scale(1)}.form-radio [type=radio]:disabled:not(:checked)+.form-radio-sign:before{box-shadow:none;opacity:.65}.form-radio [type=radio]:disabled:checked+.form-radio-sign:before{box-shadow:none;opacity:.65}.form-radio [type=radio]:disabled:checked+.form-radio-sign:after{opacity:.65}.form-radio [type=radio]:disabled+.form-radio-sign{color:#aaa;opacity:.65}.form-radio [type=radio]:checked:focus+.form-radio-sign:before,.form-radio [type=radio]:not(:checked):focus+.form-radio-sign:before{border:1px solid #ccc}.form-radio{padding-left:.75rem}.form-radio-input{position:relative;margin-top:.3rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#1572e8}.custom-checkbox.checkbox-default .custom-control-input:checked~.custom-control-label::before{background-color:#1a2035}.custom-checkbox.checkbox-primary .custom-control-input:checked~.custom-control-label::before{background-color:#1572e8}.custom-checkbox.checkbox-secondary .custom-control-input:checked~.custom-control-label::before{background-color:#6861ce}.custom-checkbox.checkbox-info .custom-control-input:checked~.custom-control-label::before{background-color:#48abf7}.custom-checkbox.checkbox-success .custom-control-input:checked~.custom-control-label::before{background-color:#31ce36}.custom-checkbox.checkbox-warning .custom-control-input:checked~.custom-control-label::before{background-color:#ffad46}.custom-checkbox.checkbox-danger .custom-control-input:checked~.custom-control-label::before{background-color:#f25961}.col-form-label{line-height:1.8}.required-label{color:red}.label-align-left{text-align:left}.label-align-right{text-align:right}.label-align-center{text-align:center}.form-check,.form-group{margin-bottom:0;padding:10px}.form-check label,.form-group label{margin-bottom:.5rem;color:#495057;font-weight:600;font-size:1rem;white-space:nowrap}.form-group-default{background-color:#fff;border:1px solid rgba(0,0,0,.07);border-radius:4px;padding-top:7px;padding-left:12px;padding-right:12px;padding-bottom:4px;overflow:hidden;width:100%;-webkit-transition:background-color .2s ease;transition:background-color .2s ease;margin-bottom:15px}.form-group-default label{opacity:1;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;margin:0;display:block;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.form-group-default label:not(.error){font-size:10.5px!important;letter-spacing:.06em;text-transform:uppercase;font-weight:400}.form-group-default .form-control{border:0;min-height:25px;padding:0;margin-top:6px;background:0 0;font-size:14px}.form-group-default select.form-control:not([size]):not([multiple]){height:unset!important}.form-group-default.active{border-color:rgba(0,0,0,.1)!important;background-color:#f0f0f0}.form-group-default.active label{opacity:.5}.form-floating-label{position:relative}.form-floating-label .placeholder{position:absolute;padding:.375rem .75rem;transition:all .2s;opacity:.8;margin-bottom:0!important;font-size:14px!important;font-weight:400;top:12px}.form-floating-label .form-control.filled+.placeholder,.form-floating-label .form-control:focus+.placeholder,.form-floating-label .form-control:valid+.placeholder{font-size:85%!important;transform:translate3d(0,-10px,0);top:0;opacity:1;padding:.375rem 0 .75rem;font-weight:600}.form-floating-label .form-control.filled+.placeholder{color:#1572e8!important}.form-floating-label .form-control ::-webkit-input-placeholder{color:transparent}.form-floating-label .form-control :-moz-placeholder{color:transparent}.form-floating-label .form-control ::-moz-placeholder{color:transparent}.form-floating-label .form-control :-ms-input-placeholder{color:transparent}.form-floating-label .input-border-bottom+.placeholder{padding:.375rem 0 .75rem}.form-inline label{margin-bottom:0!important}.input-fixed{width:200px}.form-control.input-full{width:100%!important}.has-success label{color:#31ce36!important}.has-success .form-control{border-color:#31ce36!important;color:#31ce36!important}.has-success .input-group-text{border-color:#31ce36!important;background:#31ce36!important;color:#fff!important}.has-error label{color:#f25961!important}.has-error .form-control{border-color:#f25961!important;color:#f25961!important}.has-error .input-group-text{border-color:#f25961!important;background:#f25961!important;color:#fff!important}.input-group label.error,.input-group label.success{width:100%;order:100}.custom-control{position:relative}.custom-control.custom-checkbox,.custom-control.custom-radio{margin-bottom:0;padding-left:2em;cursor:pointer;line-height:24px;margin-right:25px;display:inline-block}.custom-control.custom-checkbox label.error,.custom-control.custom-checkbox label.success,.custom-control.custom-radio label.error,.custom-control.custom-radio label.success{position:absolute;width:100vh;top:23px;left:0}.has-feedback{position:relative}.form-control-feedback{position:absolute;top:50%;transform:translateY(-50%);right:20px}.has-success .form-control-feedback{color:#31ce36}.has-error .form-control-feedback{color:#f25961}.input-group.has-icon{border-radius:.25rem;border:1px solid #ced4da}.input-group.has-icon.has-success,.input-group.has-success{border:1px solid #31ce36!important;color:#31ce36}.input-group.has-error{border:1px solid #f25961!important;color:#f25961}.input-group.has-icon.has-error{border:1px solid #f25961!important;color:#f25961}.input-group.has-icon .form-control{border-radius:.25rem;border:0;position:relative}.input-group.has-icon .input-group-icon{background:0 0;border:0}.input-square{border-radius:0!important}.input-pill{border-radius:1.3rem!important}.input-solid{background:#e8e8e8!important;border-color:#e8e8e8!important}.input-border-bottom{border-width:0 0 1px 0;border-radius:0;padding:.75rem 0;background:0 0!important}.input-file .form-control,.input-file .form-control-file,.input-file input[type=file]{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.input-file label.error,.input-file label.success{display:block}.input-file .form-control+label:not(.error),.input-file .form-control-file+label:not(.error),.input-file .label-input-file,.input-file input[type=file]+label:not(.error){font-weight:600;letter-spacing:.02em;color:#fff!important;display:inline-block}.input-file.input-file-image img.img-upload-preview{max-width:100%;display:block;margin-bottom:15px;box-shadow:0 1px 15px 1px rgba(39,39,39,.1)}.input-file.input-file-image img.img-upload-preview.img-circle{border-radius:2000px}.form-control:disabled,.form-control[readonly]{background:#e8e8e8!important;border-color:#e8e8e8!important}.form-control:disabled,.form-control[readonly]{opacity:.6!important}.input-group-text{font-size:14px}.input-group-text i.la{font-size:21px}.input-group-text i[class*=flaticon]{font-size:17px}.input-icon{position:relative}.input-icon .form-control:not(:first-child){padding-left:2.5rem}.input-icon .form-control:not(:last-child){padding-right:2.5rem}.input-icon .input-icon-addon{position:absolute;left:1rem;top:0;height:100%;display:flex;align-items:center}.input-icon .input-icon-addon:last-child{left:auto;right:1rem}label.error{color:#f25961!important;font-size:80%!important;margin-top:.5rem}.select2-input{position:relative}.select2-input label.error,.select2-input label.success{position:absolute;bottom:-30px}.select2-input .select2{margin-bottom:15px}.dropzone{padding:70px 60px 80px!important;border:2px dashed rgba(0,0,0,.13)!important;background:0 0!important}.dropzone:hover{background:#fafafa!important;transition:all .5s!important}.dropzone .dz-message .icon{margin-bottom:15px;font-size:39px}.dropzone .dz-message .message{font-size:34px;font-weight:200}.dropzone .dz-message .note{font-size:16px;margin-top:18px;font-weight:300}.note-editor.note-frame{border:0!important;box-shadow:none!important}.note-editor.note-frame .note-toolbar{padding:0!important;border-bottom:0!important}.note-editor.note-frame .note-btn{border:1px solid #eee!important;background:#fafafa!important}.note-editor.note-frame .note-placeholder{margin-top:15px!important}.note-editor.note-frame .note-codable{margin-top:15px!important}.note-editor.note-frame .note-editing-area .note-editable{margin-top:15px!important;border:1px solid #eee!important}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{vertical-align:middle}.table>tbody>tr>td,.table>tbody>tr>th{padding:8px}.table>tfoot>tr>td,.table>tfoot>tr>th{padding:8px}.table thead th{border-bottom-width:2px;font-weight:600}.table td,.table th{font-size:14px;border-top-width:0;border-bottom:1px solid;border-color:#ebedf2!important;padding:0 25px!important;height:60px;vertical-align:middle!important}.table-full-width{margin-left:-15px;margin-right:-15px}.table-bordered-bd-default td,.table-bordered-bd-default th{border:1px solid #1a2035!important}.table-bordered-bd-primary td,.table-bordered-bd-primary th{border:1px solid #1572e8!important}.table-bordered-bd-secondary td,.table-bordered-bd-secondary th{border:1px solid #6861ce!important}.table-bordered-bd-info td,.table-bordered-bd-info th{border:1px solid #48abf7!important}.table-bordered-bd-success td,.table-bordered-bd-success th{border:1px solid #31ce36!important}.table-bordered-bd-warning td,.table-bordered-bd-warning th{border:1px solid #ffad46!important}.table-bordered-bd-danger td,.table-bordered-bd-danger th{border:1px solid #f25961!important}.table-striped td,.table-striped th{border-top:0!important;border-bottom:0!important}.table-head-bg-default thead{border:1px solid #1a2035!important}.table-head-bg-primary thead{border:1px solid #1572e8!important}.table-head-bg-secondary thead{border:1px solid #6861ce!important}.table-head-bg-info thead{border:1px solid #48abf7!important}.table-head-bg-success thead{border:1px solid #31ce36!important}.table-head-bg-warning thead{border:1px solid #ffad46!important}.table-head-bg-danger thead{border:1px solid #f25961!important}.table-head-bg-default thead th,.table-striped-bg-default tbody tr:nth-of-type(odd){background:#1a2035!important;color:#fff!important;border:0!important}.table-head-bg-primary thead th,.table-striped-bg-primary tbody tr:nth-of-type(odd){background:#1572e8!important;color:#fff!important;border:0!important}.table-head-bg-secondary thead th,.table-striped-bg-secondary tbody tr:nth-of-type(odd){background:#6861ce!important;color:#fff!important;border:0!important}.table-head-bg-info thead th,.table-striped-bg-info tbody tr:nth-of-type(odd){background:#48abf7!important;color:#fff!important;border:0!important}.table-head-bg-success thead th,.table-striped-bg-success tbody tr:nth-of-type(odd){background:#31ce36!important;color:#fff!important;border:0!important}.table-head-bg-warning thead th,.table-striped-bg-warning tbody tr:nth-of-type(odd){background:#ffad46!important;color:#fff!important;border:0!important}.table-head-bg-danger thead th,.table-striped-bg-danger tbody tr:nth-of-type(odd){background:#f25961!important;color:#fff!important;border:0!important}.table-responsive{width:100%!important;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.navbar .navbar-nav .nav-item{margin-right:7px}.navbar .navbar-nav .nav-item:last-child{margin-right:0}.navbar .navbar-nav .nav-item .nav-link{display:inline-block;vertical-align:middle;color:#666;letter-spacing:.04em;padding:10px;border-radius:3px;position:relative;font-size:12px;font-weight:400;text-align:center}.navbar .navbar-nav .nav-item .nav-link:focus,.navbar .navbar-nav .nav-item .nav-link:hover{background:#eee!important}.navbar .navbar-nav .nav-item .nav-link i{font-size:18px;vertical-align:middle;line-height:1!important}.navbar .navbar-nav .nav-item.active .nav-link{background:#eee!important}.navbar-expand-lg .navbar-nav .dropdown-menu{left:auto;right:0}.dropdown-item{font-size:13px}.navbar .navbar-nav .notification{position:absolute;background-color:#31ce36;text-align:center;border-radius:10px;min-width:17px;height:17px;font-size:10px;color:#fff;font-weight:300;line-height:17px;top:3px;right:3px;letter-spacing:-1px}.navbar-header{padding:0 15px}.navbar-header .dropdown-toggle::after{margin-left:0}.profile-pic:focus,.profile-pic:hover{text-decoration:none}.navbar-header .dropdown-toggle::after{vertical-align:middle;color:#555}.hidden-caret .dropdown-toggle::after{display:none!important}.profile-pic span{font-size:13px;font-weight:300;padding:0 10px;color:#555}.navbar[class*=bg-]{border-bottom:1px solid rgba(255,255,255,.2)!important;border-left:1px solid rgba(255,255,255,.1)!important}.navbar[class*=bg-] .navbar-brand{color:#fff}.navbar[class*=bg-] .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar[class*=bg-] .navbar-nav>.nav-item>.nav-link{color:#fff}.navbar[class*=bg-] .navbar-nav>.nav-item>.nav-link.disabled{color:#d8d8d8!important}.navbar[class*=bg-] .navbar-nav>.nav-item>.nav-link:hover{background:rgba(255,255,255,.22)!important}.navbar[class*=bg-] .navbar-nav>.nav-item.active>.nav-link{background:rgba(255,255,255,.22)!important}.navbar[class*=bg-] .btn-toggle{background:rgba(19,19,19,.25)!important;color:#fff!important}.navbar[class*=bg-] .nav-search .input-group{border:0;background:rgba(19,19,19,.25)!important}.navbar[class*=bg-] .nav-search .input-group .form-control{color:#fff!important}.navbar[class*=bg-] .nav-search .search-icon{color:#fff!important}.row-nav-line{margin-left:-20px;margin-right:-20px}.nav.nav-line{width:100%;border-bottom:1px solid #f1f1f1}.nav.nav-line .nav-link{padding:15px 20px;color:#575962;border-width:0;font-size:14px;font-weight:600}.nav.nav-line .nav-link:focus,.nav.nav-line .nav-link:hover{color:#1572e8;border-width:0}.nav.nav-line .nav-link.active{border-width:0;background-color:transparent;color:#1572e8;border-bottom:2px solid #1572e8;border-radius:0}.nav.nav-line.nav-color-default .nav-link:focus,.nav.nav-line.nav-color-default .nav-link:hover{color:#1a2035}.nav.nav-line.nav-color-default .nav-link.active{color:#1a2035;border-color:#1a2035}.nav.nav-line.nav-color-primary .nav-link:focus,.nav.nav-line.nav-color-primary .nav-link:hover{color:#1572e8}.nav.nav-line.nav-color-primary .nav-link.active{color:#1572e8;border-color:#1572e8}.nav.nav-line.nav-color-secondary .nav-link:focus,.nav.nav-line.nav-color-secondary .nav-link:hover{color:#6861ce}.nav.nav-line.nav-color-secondary .nav-link.active{color:#6861ce;border-color:#6861ce}.nav.nav-line.nav-color-info .nav-link:focus,.nav.nav-line.nav-color-info .nav-link:hover{color:#48abf7}.nav.nav-line.nav-color-info .nav-link.active{color:#48abf7;border-color:#48abf7}.nav.nav-line.nav-color-success .nav-link:focus,.nav.nav-line.nav-color-success .nav-link:hover{color:#31ce36}.nav.nav-line.nav-color-success .nav-link.active{color:#31ce36;border-color:#31ce36}.nav.nav-line.nav-color-danger .nav-link:focus,.nav.nav-line.nav-color-danger .nav-link:hover{color:#f25961}.nav.nav-line.nav-color-danger .nav-link.active{color:#f25961;border-color:#f25961}.nav.nav-line.nav-color-warning .nav-link:focus,.nav.nav-line.nav-color-warning .nav-link:hover{color:#ffad46}.nav.nav-line.nav-color-warning .nav-link.active{color:#ffad46;border-color:#ffad46}.nav.nav-line.nav-color-light .nav-link:focus,.nav.nav-line.nav-color-light .nav-link:hover{color:#fff}.nav.nav-line.nav-color-light .nav-link.active{color:#fff;border-color:#fff}.nav.nav-line.nav-color-light .nav-link{color:#f1f1f1}.nav-search .input-group{border:1px solid #eee;background:#eee;border-radius:5px}.nav-search .input-group:focus,.nav-search .input-group:hover{border:1px solid #ddd}.nav-search .form-control{border:0;background:0 0!important;font-size:14px;padding:.75em 1em;min-width:200px;max-width:100%}.nav-search .input-group-text{border:0;background:0 0}.nav-search .search-icon{font-size:18px;color:#8d9498}.nav-search .btn-search{background:0 0;padding:.375rem 1rem}.badge{border-radius:50px;margin-left:auto;line-height:1;padding:6px 10px;vertical-align:middle;font-weight:400;font-size:11px;border:1px solid #ddd}[class*=badge-]:not(.badge-count){border:0!important}.badge-default{background:#1a2035;color:#fff!important}.badge-primary{background:#1572e8}.badge-secondary{background:#6861ce}.badge-info{background:#48abf7}.badge-success{background-color:#31ce36}.badge-warning{background:#ffad46;color:#fff!important}.badge-danger{background-color:#f25961}.dropdown-menu{border:0;border-radius:3px;box-shadow:0 1px 11px rgba(0,0,0,.15)!important;padding-bottom:8px;margin-top:3px}.dropdown-title{border-bottom:1px solid #f1f1f1;color:#444;font-size:14px;font-weight:600;padding:12px 15px;text-align:center}.messages-notif-box,.notif-box{width:280px;padding:0!important}.messages-notif-box .notif-center a,.notif-box .notif-center a{display:flex;color:#4d585f}.messages-notif-box .notif-center a:hover,.notif-box .notif-center a:hover{text-decoration:none;background:#fafafa;transition:all .2s}.messages-notif-box .notif-center a .notif-icon,.notif-box .notif-center a .notif-icon{display:inline-flex;width:40px;height:40px;margin:10px;align-items:center;justify-content:center;background:#eee;border-radius:50%}.messages-notif-box .notif-center a .notif-img,.notif-box .notif-center a .notif-img{display:inline-flex;width:40px;height:40px;margin:10px;align-items:center;justify-content:center;background:#eee;border-radius:50%}.messages-notif-box .notif-center a .notif-img img,.notif-box .notif-center a .notif-img img{width:100%;height:100%;border-radius:50%}.messages-notif-box .notif-center a .notif-icon.notif-danger,.messages-notif-box .notif-center a .notif-icon.notif-default,.messages-notif-box .notif-center a .notif-icon.notif-info,.messages-notif-box .notif-center a .notif-icon.notif-primary,.messages-notif-box .notif-center a .notif-icon.notif-secondary,.messages-notif-box .notif-center a .notif-icon.notif-success,.messages-notif-box .notif-center a .notif-icon.notif-warning,.notif-box .notif-center a .notif-icon.notif-danger,.notif-box .notif-center a .notif-icon.notif-default,.notif-box .notif-center a .notif-icon.notif-info,.notif-box .notif-center a .notif-icon.notif-primary,.notif-box .notif-center a .notif-icon.notif-secondary,.notif-box .notif-center a .notif-icon.notif-success,.notif-box .notif-center a .notif-icon.notif-warning{color:#fff!important}.messages-notif-box .notif-center a .notif-icon.notif-default,.notif-box .notif-center a .notif-icon.notif-default{background:#1a2035!important}.messages-notif-box .notif-center a .notif-icon.notif-primary,.notif-box .notif-center a .notif-icon.notif-primary{background:#1572e8!important}.messages-notif-box .notif-center a .notif-icon.notif-secondary,.notif-box .notif-center a .notif-icon.notif-secondary{background:#6861ce!important}.messages-notif-box .notif-center a .notif-icon.notif-info,.notif-box .notif-center a .notif-icon.notif-info{background:#48abf7!important}.messages-notif-box .notif-center a .notif-icon.notif-success,.notif-box .notif-center a .notif-icon.notif-success{background:#31ce36!important}.messages-notif-box .notif-center a .notif-icon.notif-warning,.notif-box .notif-center a .notif-icon.notif-warning{background:#ffad46!important}.messages-notif-box .notif-center a .notif-icon.notif-danger,.notif-box .notif-center a .notif-icon.notif-danger{background:#f25961!important}.messages-notif-box .notif-center a .notif-icon i,.notif-box .notif-center a .notif-icon i{font-size:15px}.messages-notif-box .notif-center a .notif-content,.notif-box .notif-center a .notif-content{padding:10px 15px 10px 0}.messages-notif-box .notif-center a .message-content,.notif-box .notif-center a .message-content{padding:7px 15px 10px 0}.messages-notif-box .notif-center a .notif-content .subject,.notif-box .notif-center a .notif-content .subject{font-size:13px;font-weight:600;display:block;margin-bottom:2px}.messages-notif-box .notif-center a .notif-content .block,.notif-box .notif-center a .notif-content .block{font-size:13px;line-height:20px;display:block}.messages-notif-box .notif-center a .notif-content .time,.notif-box .notif-center a .notif-content .time{color:#7d8c95;font-size:11px}.messages-notif-box .see-all,.notif-box .see-all{border-top:1px solid #f1f1f1;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;color:#555;font-size:13px;font-weight:400;text-decoration:none}.messages-notif-box .see-all:hover,.notif-box .see-all:hover{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;color:#555;font-size:13px;font-weight:400;text-decoration:none}.messages-notif-box .see-all i,.notif-box .see-all i{float:right}.notif-box .notif-scroll{max-height:256px}.messages-notif-box .message-notif-scroll{max-height:250px}.messages-notif-box .notif-center a{border-bottom:1px solid #f1f1f1}.messages-notif-box .notif-center a:last-child{border-bottom:0}.messages-notif-box .notif-center a .notif-content{padding:7px 15px 7px 5px}.dropdown-user{width:260px}.user-box{display:flex;padding:.25rem 1rem}.user-box .u-text{padding:0 10px}.user-box .u-text h4{margin-bottom:5px;margin-top:4px;font-size:14px;font-weight:400;line-height:1}.user-box .u-text .text-muted{font-size:12px;margin-bottom:5px}.user-box .u-text .btn{font-size:11px}.caret{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.quick-actions{width:350px;padding:0}.quick-actions:after{border-bottom-color:#1572e8!important}.quick-actions .quick-actions-header{display:flex;align-items:center;flex-direction:column;background:#1572e8;color:#fff;padding:15px;border-radius:3px 3px 0 0}.quick-actions .quick-actions-header .title{font-size:18px}.quick-actions .quick-actions-header .subtitle{font-size:13px}.quick-actions .quick-actions-items{padding:15px 7.5px}.quick-actions a:hover{text-decoration:none}.quick-actions .quick-actions-item{display:flex;flex-direction:column;margin:7.5px 7.5px;padding:10px;align-items:center;color:#1572e8;border:1px solid #f1f1f1;border-bottom:1px solid #f1f1f1;border-radius:3px;transition:all .2s}.quick-actions .quick-actions-item:hover{background:#fdfdff;color:#1572e8;box-shadow:3px 3px 10px #f7f1f1}.quick-actions .quick-actions-item i{color:#7d8c95;font-size:27px}.quick-actions .quick-actions-item .text{text-align:center;font-size:13px;margin-top:8px}.quick-actions.quick-actions-default:after{border-bottom-color:#1a2035!important}.quick-actions.quick-actions-default .quick-actions-header{background:#1a2035}.quick-actions.quick-actions-default .quick-actions-item{color:#1a2035}.quick-actions.quick-actions-primary:after{border-bottom-color:#1572e8!important}.quick-actions.quick-actions-primary .quick-actions-header{background:#1572e8}.quick-actions.quick-actions-primary .quick-actions-item{color:#1572e8}.quick-actions.quick-actions-secondary:after{border-bottom-color:#6861ce!important}.quick-actions.quick-actions-secondary .quick-actions-header{background:#6861ce}.quick-actions.quick-actions-secondary .quick-actions-item{color:#6861ce}.quick-actions.quick-actions-info:after{border-bottom-color:#48abf7!important}.quick-actions.quick-actions-info .quick-actions-header{background:#48abf7}.quick-actions.quick-actions-info .quick-actions-item{color:#48abf7}.quick-actions.quick-actions-warning:after{border-bottom-color:#ffad46!important}.quick-actions.quick-actions-warning .quick-actions-header{background:#ffad46}.quick-actions.quick-actions-warning .quick-actions-item{color:#ffad46}.quick-actions.quick-actions-success:after{border-bottom-color:#31ce36!important}.quick-actions.quick-actions-success .quick-actions-header{background:#31ce36}.quick-actions.quick-actions-success .quick-actions-item{color:#31ce36}.quick-actions.quick-actions-danger:after{border-bottom-color:#f25961!important}.quick-actions.quick-actions-danger .quick-actions-header{background:#f25961}.quick-actions.quick-actions-danger .quick-actions-item{color:#f25961}@media screen and (max-width:991px){.messages-notif-box .message-notif-scroll,.notif-box .notif-scroll,.quick-actions .quick-actions-scroll{max-height:calc(100vh - 200px)}.dropdown-user .dropdown-user-scroll{max-height:calc(100vh - 132px)}}@media screen and (min-width:991px){.navbar-header .dropdown-menu{margin-top:13px}.navbar-header .dropdown-menu:after{border-bottom:8px solid #fff;border-left:8px solid transparent;border-right:8px solid transparent;content:"";right:10px;top:-8px;position:absolute;z-index:1001}}.chart-circle{display:flex;justify-content:center}.chart-circle .circles-text{font-size:25px!important}.chart-container{min-height:300px;position:relative}.html-legend{list-style:none;cursor:pointer;padding-left:0;text-align:center;margin-top:1rem}.html-legend li{display:inline-block;vertical-align:middle;padding:0 5px;margin-right:5px;margin-bottom:6px;color:#8d9498;font-size:12px}.html-legend li.hidden{text-decoration:line-through}.html-legend li span{border-radius:15px;display:inline-block;height:15px;margin-right:10px;width:15px;vertical-align:top}.jqstooltip{box-sizing:content-box}.alert{border:0;position:relative;padding:.95rem 1.25rem;border-radius:1px;color:inherit;background-color:#fff;-webkit-box-shadow:1px 1px 14px 0 rgba(18,38,63,.26);-moz-box-shadow:1px 1px 14px 0 rgba(18,38,63,.26);box-shadow:1px 1px 14px 0 rgba(18,38,63,.26)}.alert [data-notify=icon]{display:block}.alert [data-notify=icon]::before{line-height:35px;font-size:22px;display:block;left:15px;position:absolute;top:50%;transform:translateY(-50%);width:35px;height:35px;border-radius:30px;text-align:center;color:#fff}.alert [data-notify=title]{display:block;color:#2b2b2b;font-weight:700;font-size:14px;margin-bottom:5px}.alert [data-notify=message]{font-size:13px;color:#908e8e}.alert .close{background:rgba(255,255,255,.8);width:25px;height:25px;line-height:25px;top:12px!important;border-radius:50%}.alert-default{border-left:4px solid #1a2035}.alert-default [data-notify=icon]:before{background:#1a2035}.alert-primary{border-left:4px solid #1572e8}.alert-primary [data-notify=icon]:before{background:#1572e8}.alert-secondary{border-left:4px solid #6861ce}.alert-secondary [data-notify=icon]:before{background:#6861ce}.alert-info{border-left:4px solid #48abf7}.alert-info [data-notify=icon]:before{background:#48abf7}.alert-success{border-left:4px solid #31ce36}.alert-success [data-notify=icon]:before{background:#31ce36}.alert-warning{border-left:4px solid #ffad46}.alert-warning [data-notify=icon]:before{background:#ffad46}.alert-danger{border-left:4px solid #f25961}.alert-danger [data-notify=icon]:before{background:#f25961}.btn{padding:.65rem 1.4rem;font-size:14px;opacity:1;border-radius:3px}.btn:focus,.btn:hover{opacity:.9;transition:all .3s}.btn .btn-label{display:inline-block}.btn .btn-label i{font-size:16px;vertical-align:middle;margin-right:2px;margin-left:-2px;line-height:0;margin-top:-2.5px}.btn .btn-label.just-icon i{margin-left:0!important;margin-right:0!important}.btn-lg{font-size:15px;border-radius:3px;padding:12.5px 27.5px;font-weight:400}.btn-lg .btn-label i{font-size:27px;vertical-align:middle;margin-right:2px;margin-left:-7px;line-height:0;margin-top:-2.5px}.btn-lg .btn-label.just-icon i{margin-left:0!important;margin-right:0!important}.btn-sm{font-size:11px;padding:7px 13px}.btn-xs{font-size:10px;padding:5px 9px}.btn.disabled:hover,.btn:hover:disabled{opacity:.65}.btn-icon{font-size:.9375rem;height:2.5125rem;line-height:normal;min-width:2.5125rem;overflow:hidden;padding:0;position:relative;width:2.5125rem}.btn-icon.btn-lg{height:2.75rem;min-width:2.75rem;width:2.75rem}.btn-icon.btn-sm{height:2rem;min-width:2rem;width:2rem}.btn-icon.btn-xs{height:1.6875rem;min-width:1.6875rem;width:1.6875rem}.btn-white{background:#fff!important;color:#1a2035!important}.btn-white:disabled,.btn-white:focus,.btn-white:hover{background:#fff!important;color:#1a2035!important}.btn-default{background:#1a2035!important;color:#fff!important}.btn-default:disabled,.btn-default:focus,.btn-default:hover{background:#1a2035!important;color:#fff!important}.btn-primary{background:#1572e8!important;border-color:#1572e8!important}.btn-primary:disabled,.btn-primary:focus,.btn-primary:hover{background:#1572e8!important;border-color:#1572e8!important}.btn-secondary{background:#6861ce!important;border-color:#6861ce!important}.btn-secondary:disabled,.btn-secondary:focus,.btn-secondary:hover{background:#6861ce!important;border-color:#6861ce!important}.btn-info{background:#48abf7!important;border-color:#48abf7!important}.btn-info:disabled,.btn-info:focus,.btn-info:hover{background:#48abf7!important;border-color:#48abf7!important}.btn-success{background:#31ce36!important;border-color:#31ce36!important}.btn-success:disabled,.btn-success:focus,.btn-success:hover{background:#31ce36!important;border-color:#31ce36!important}.btn-warning{background:#ffad46!important;border-color:#ffad46!important;color:#fff!important}.btn-warning:disabled,.btn-warning:focus,.btn-warning:hover{background:#ffad46!important;border-color:#ffad46!important;color:#fff!important}.btn-danger{background:#f25961!important;border-color:#f25961!important}.btn-danger:disabled,.btn-danger:focus,.btn-danger:hover{background:#f25961!important;border-color:#f25961!important}.btn-light{background:#fff!important;border-color:transparent}.btn-light:disabled,.btn-light:focus,.btn-light:hover{background:#ebecec!important;border-color:transparent}.btn-dropdown-card-header{padding:0;background:0 0;color:inherit;font-size:15px}.btn-dropdown-card-header:after{display:none}.btn-border{background:0 0!important}.btn-border:focus,.btn-border:hover{background:0 0!important}.btn-border.btn-white{color:#fff!important;border:1px solid #fff!important}.btn-border.btn-default{color:#1a2035!important;border:1px solid #1a2035!important}.btn-border.btn-primary{color:#1572e8!important;border:1px solid #1572e8!important}.btn-border.btn-secondary{color:#6861ce!important;border:1px solid #6861ce!important}.btn-border.btn-info{color:#48abf7!important;border:1px solid #48abf7!important}.btn-border.btn-success{color:#31ce36!important;border:1px solid #31ce36!important}.btn-border.btn-warning{color:#ffad46!important;border:1px solid #ffad46!important}.btn-border.btn-danger{color:#f25961!important;border:1px solid #f25961!important}.btn-border.btn-light{border:1px solid #efefef;background:#fff!important}.btn-round{border-radius:100px!important}.btn-link{border:0!important;background:0 0!important}.btn-link:focus,.btn-link:hover{text-decoration:underline!important;background:0 0!important;border:0!important}.btn-link.btn-default{color:#1a2035!important}.btn-link.btn-default:hover{color:#1a2035!important}.btn-link.btn-primary{color:#1572e8!important}.btn-link.btn-primary:hover{color:#1572e8!important}.btn-link.btn-secondary{color:#6861ce!important}.btn-link.btn-secondary:hover{color:#6861ce!important}.btn-link.btn-info{color:#48abf7!important}.btn-link.btn-info:hover{color:#48abf7!important}.btn-link.btn-success{color:#31ce36!important}.btn-link.btn-success:hover{color:#31ce36!important}.btn-link.btn-warning{color:#ffad46!important}.btn-link.btn-warning:hover{color:#ffad46!important}.btn-link.btn-danger{color:#f25961!important}.btn-link.btn-danger:hover{color:#f25961!important}.toggle-on.btn{color:#fff!important}.toggle-handle{background:#fff!important}.toggle-handle:hover{background:#fff!important}.btn-round .toggle-handle{border-radius:50px}.btn-rounded{border-radius:60px!important}.btn-full{width:100%}.btn-no-radius{border-radius:0}.nav-pills>li:first-child>.nav-link{border-radius:4px 0 0 4px!important}.nav-pills>li:last-child>.nav-link{border-radius:0 4px 4px 0!important}.nav-link.disabled{color:#6c757d!important}.nav-pills .nav-link{padding:10px 20px}.nav-pills>li>.nav-link{margin-left:-1px;border-radius:0!important;margin-top:5px;margin-bottom:5px;border:1px solid #1572e8;color:#585c5d}.nav-pills>li>.nav-link.active{background:#1572e8}.nav-pills>li>.nav-link:hover{background:rgba(222,222,222,.4)}.nav-pills.nav-pills-no-bd li{margin-left:15px!important}.nav-pills.nav-pills-no-bd li .nav-link{border:0!important;border-radius:50px!important;background:rgba(222,222,222,.4)}.nav-pills.nav-pills-no-bd li .nav-link.active{border-radius:50px!important}.nav-pills.nav-pills-no-bd li:first-child{margin-left:0!important}.nav-pills.nav-pills-no-bd.nav-pills-icons .nav-link,.nav-pills.nav-pills-no-bd.nav-pills-icons .nav-link.active{border-radius:5px!important}.nav-pills.flex-column .nav-link{border-radius:0!important;border:1px solid #1572e8;color:#585c5d;margin-top:-1px;text-align:center;word-wrap:normal;padding:10px 0}.nav-pills.flex-column .nav-link:hover{background:rgba(222,222,222,.4)}.nav-pills.flex-column .nav-link.active{background:#1572e8}.nav-pills.flex-column .nav-link:first-child{border-radius:4px 4px 0 0!important}.nav-pills.flex-column .nav-link:last-child{border-radius:0 0 4px 4px!important}.nav-pills.flex-column.nav-pills-no-bd .nav-link{border:0!important;border-radius:50px!important;background:rgba(222,222,222,.4);margin-top:5px;margin-bottom:5px}.nav-pills.flex-column.nav-pills-no-bd .nav-link.active{border-radius:50px!important}.nav-pills.flex-column.nav-pills-icons .nav-link,.nav-pills.flex-column.nav-pills-icons .nav-link.active{border-radius:5px!important}.nav-pills.nav-pills-icons .nav-link,.nav-pills.nav-pills-icons .nav-link.active{border-radius:5px!important;padding-top:12px;padding-bottom:12px}.nav-pills.nav-pills-icons i{display:block;text-align:center;font-size:2em;line-height:50px}.nav-pills.nav-danger .nav-link,.nav-pills.nav-default .nav-link,.nav-pills.nav-info .nav-link,.nav-pills.nav-primary .nav-link,.nav-pills.nav-secondary .nav-link,.nav-pills.nav-success .nav-link,.nav-pills.nav-warning .nav-link{border:1px solid #eee}.nav-pills.nav-danger .nav-link.active,.nav-pills.nav-default .nav-link.active,.nav-pills.nav-info .nav-link.active,.nav-pills.nav-primary .nav-link.active,.nav-pills.nav-secondary .nav-link.active,.nav-pills.nav-success .nav-link.active,.nav-pills.nav-warning .nav-link.active{color:#fff!important}.nav-pills.nav-default .nav-link.active{background:#1a2035;border:1px solid #1a2035}.nav-pills.nav-primary .nav-link.active{background:#1572e8;border:1px solid #1572e8}.nav-pills.nav-secondary .nav-link.active{background:#6861ce;border:1px solid #6861ce}.nav-pills.nav-info .nav-link.active{background:#48abf7;border:1px solid #48abf7}.nav-pills.nav-success .nav-link.active{background:#31ce36;border:1px solid #31ce36}.nav-pills.nav-warning .nav-link.active{background:#ffad46;border:1px solid #ffad46}.nav-pills.nav-danger .nav-link.active{background:#f25961;border:1px solid #f25961}.nav-sm .nav-link{font-size:11px!important;padding:8px 16px!important}.popover{max-width:240px;line-height:1.7;border:0;box-shadow:0 0 20px 1px rgba(69,65,78,.2)}.popover .popover-header{background:0 0;font-size:14px;border-bottom:0;text-transform:capitalize;margin-top:5px;color:#aaa;font-weight:400}.popover .popover-body{margin-bottom:5px}.popover .popover-body p{font-size:13px;margin-bottom:1rem}.popover.bs-popover-bottom .arrow:before,.popover.bs-popover-left .arrow:before,.popover.bs-popover-right .arrow:before,.popover.bs-popover-top .arrow:before{border:transparent}.popover.bs-popover-auto[x-placement^=right],.popover.bs-popover-right{margin-left:10px}.popover.bs-popover-auto[x-placement^=left],.popover.bs-popover-left{margin-right:10px}.popover.bs-popover-auto[x-placement^=top],.popover.bs-popover-top{margin-bottom:10px}.popover.bs-popover-auto[x-placement^=bottom],.popover.bs-popover-bottom{margin-top:10px}.progress{border-radius:100px;height:14px}.progress .progress-bar{border-radius:100px}.progress.progress-sm{height:8px}.progress.progress-lg{height:20px}.pagination>li:first-child>a,.pagination>li:first-child>span,.pagination>li:last-child>a,.pagination>li:last-child>span,.pagination>li>a,.pagination>li>span{border-radius:100px!important;margin:0 2px;color:#777;border-color:#ddd}.pagination.pg-default>li.active:first-child>a,.pagination.pg-default>li.active:first-child>span,.pagination.pg-default>li.active:last-child>a,.pagination.pg-default>li.active:last-child>span,.pagination.pg-default>li.active>a,.pagination.pg-default>li.active>span{background:#1a2035;border-color:#1a2035;color:#fff}.pagination.pg-primary>li.active:first-child>a,.pagination.pg-primary>li.active:first-child>span,.pagination.pg-primary>li.active:last-child>a,.pagination.pg-primary>li.active:last-child>span,.pagination.pg-primary>li.active>a,.pagination.pg-primary>li.active>span{background:#1572e8;border-color:#1572e8;color:#fff}.pagination.pg-secondary>li.active:first-child>a,.pagination.pg-secondary>li.active:first-child>span,.pagination.pg-secondary>li.active:last-child>a,.pagination.pg-secondary>li.active:last-child>span,.pagination.pg-secondary>li.active>a,.pagination.pg-secondary>li.active>span{background:#6861ce;border-color:#6861ce;color:#fff}.pagination.pg-info>li.active:first-child>a,.pagination.pg-info>li.active:first-child>span,.pagination.pg-info>li.active:last-child>a,.pagination.pg-info>li.active:last-child>span,.pagination.pg-info>li.active>a,.pagination.pg-info>li.active>span{background:#48abf7;border-color:#48abf7;color:#fff}.pagination.pg-success>li.active:first-child>a,.pagination.pg-success>li.active:first-child>span,.pagination.pg-success>li.active:last-child>a,.pagination.pg-success>li.active:last-child>span,.pagination.pg-success>li.active>a,.pagination.pg-success>li.active>span{background:#31ce36;border-color:#31ce36;color:#fff}.pagination.pg-warning>li.active:first-child>a,.pagination.pg-warning>li.active:first-child>span,.pagination.pg-warning>li.active:last-child>a,.pagination.pg-warning>li.active:last-child>span,.pagination.pg-warning>li.active>a,.pagination.pg-warning>li.active>span{background:#ffad46;border-color:#ffad46;color:#fff}.pagination.pg-danger>li.active:first-child>a,.pagination.pg-danger>li.active:first-child>span,.pagination.pg-danger>li.active:last-child>a,.pagination.pg-danger>li.active:last-child>span,.pagination.pg-danger>li.active>a,.pagination.pg-danger>li.active>span{background:#f25961;border-color:#f25961;color:#fff}.slider-default .ui-slider-range{background:#1a2035}.slider-primary .ui-slider-range{background:#1572e8}.slider-secondary .ui-slider-range{background:#6861ce}.slider-info .ui-slider-range{background:#48abf7}.slider-success .ui-slider-range{background:#31ce36}.slider-warning .ui-slider-range{background:#ffad46}.slider-danger .ui-slider-range{background:#f25961}.modal .bg-danger .modal-title,.modal .bg-default .modal-title,.modal .bg-info .modal-title,.modal .bg-primary .modal-title,.modal .bg-secondary .modal-title,.modal .bg-success .modal-title,.modal .bg-warning .modal-title{color:#fff!important}.modal-content{border-radius:.4rem!important;border:0!important}.activity-feed{padding:15px;list-style:none}.activity-feed .feed-item{position:relative;padding-bottom:20px;padding-left:30px;border-left:2px solid #e4e8eb}.activity-feed .feed-item:last-child{border-color:transparent}.activity-feed .feed-item::after{content:"";display:block;position:absolute;top:0;left:-7px;width:12px;height:12px;border-radius:50%;background:#177dff}.feed-item-default::after{background:#1a2035!important}.feed-item-primary::after{background:#1572e8!important}.feed-item-secondary::after{background:#6861ce!important}.feed-item-success::after{background:#31ce36!important}.feed-item-danger::after{background:#f25961!important}.feed-item-info::after{background:#48abf7!important}.feed-item-warning::after{background:#ffad46!important}.activity-feed .feed-item .date{display:block;position:relative;top:-5px;color:#8c96a3;text-transform:uppercase;font-size:13px}.activity-feed .feed-item .text{position:relative;top:-3px}.timeline{list-style:none;padding:20px 0 20px;position:relative}.timeline:before{top:0;bottom:0;position:absolute;content:" ";width:3px;background-color:#eee;left:50%;margin-left:-1.5px}.timeline>li{margin-bottom:20px;position:relative}.timeline>li:before{content:" ";display:table}.timeline>li:after{content:" ";display:table;clear:both}.timeline>li:before{content:" ";display:table}.timeline>li:after{content:" ";display:table;clear:both}.timeline>li>.timeline-panel{width:50%;float:left;border:1px solid #eee;background:#fff;border-radius:3px;padding:20px;position:relative;-webkit-box-shadow:0 1px 20px 1px rgba(69,65,78,.06);-moz-box-shadow:0 1px 20px 1px rgba(69,65,78,.06);box-shadow:0 1px 20px 1px rgba(69,65,78,.06)}.timeline>li.timeline-inverted+li:not(.timeline-inverted){margin-top:-60px}.timeline>li:not(.timeline-inverted){padding-right:90px}.timeline>li:not(.timeline-inverted)+li.timeline-inverted{margin-top:-60px}.timeline>li.timeline-inverted{padding-left:90px}.timeline>li.timeline-inverted>.timeline-panel{float:right}.timeline>li.timeline-inverted>.timeline-panel:before{border-left-width:0;border-right-width:15px;left:-15px;right:auto}.timeline>li.timeline-inverted>.timeline-panel:after{border-left-width:0;border-right-width:14px;left:-14px;right:auto}.timeline>li>.timeline-panel:before{position:absolute;top:26px;right:-15px;display:inline-block;border-top:15px solid transparent;border-left:15px solid #eee;border-right:0 solid #eee;border-bottom:15px solid transparent;content:" "}.timeline>li>.timeline-panel:after{position:absolute;top:27px;right:-14px;display:inline-block;border-top:14px solid transparent;border-left:14px solid #fff;border-right:0 solid #fff;border-bottom:14px solid transparent;content:" "}.timeline>li>.timeline-badge{color:#fff;width:50px;height:50px;line-height:50px;font-size:1.8em;text-align:center;position:absolute;top:16px;left:50%;margin-left:-25px;background-color:#999;z-index:100;border-top-right-radius:50%;border-top-left-radius:50%;border-bottom-right-radius:50%;border-bottom-left-radius:50%}.timeline-badge.default{background-color:#1a2035!important}.timeline-badge.primary{background-color:#1572e8!important}.timeline-badge.secondary{background-color:#6861ce!important}.timeline-badge.success{background-color:#31ce36!important}.timeline-badge.warning{background-color:#ffad46!important}.timeline-badge.danger{background-color:#f25961!important}.timeline-badge.info{background-color:#48abf7!important}.timeline-title{font-size:17px;margin-top:0;color:inherit;font-weight:400}.timeline-heading i{font-size:22px;display:inline-block;vertical-align:middle;margin-right:5px}.timeline-body>p,.timeline-body>ul{margin-bottom:0}.timeline-body>p+p{margin-top:5px}.full-screen-maps{height:100vh!important}.vmap{width:100%;min-height:265px}.vmap>svg{margin:auto;display:flex}.vmap>svg>g{transition:all ease-in-out .2s}.jqvmap-label,.jqvmap-pin{pointer-events:none}.jqvmap-label{position:absolute;display:none;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#292929;color:#fff;font-size:smaller;padding:3px}.jqvmap-zoomin,.jqvmap-zoomout{position:absolute;left:10px;border-radius:13px;background:#35cd3a;padding:6px 7px;color:#fff;cursor:pointer;line-height:10px;text-align:center;font-size:14px}.jqvmap-zoomin{top:15px}.jqvmap-zoomout{top:45px}.jqvmap-region{cursor:pointer}.jqvmap-ajax_response{width:100%;height:500px}.list-group .list-group-header{font-size:12px;font-weight:600;padding:.75rem 1rem}.list-group .list-group-item{display:flex;align-items:stretch;border-width:1px 0;border-color:#ebecec}.list-group .list-group-item-figure{align-self:start;display:flex;-ms-flex-align:center;align-items:center;color:#a9acb0}.list-group .list-group-item-body{flex:1;min-width:0;align-self:center;font-size:.875rem}.list-group .list-group-item-text{margin-bottom:0;line-height:1.25rem;color:#686f76}.list-group-file-item .list-group-item{padding:0}.list-group-file-item .list-group-item-figure{padding:.75rem 1rem}.list-group-file-item .list-group-item-body{padding:.75rem 0}.list-group-bordered .list-group-item{border:1px solid #e3ebf6}.list-group-bordered .list-group-item.active{background:#1572e8;border-color:#1572e8}.list-group-lg .list-group-item{padding-top:1.5rem;padding-bottom:1.5rem}.selectgroup{display:-ms-inline-flexbox;display:inline-flex}.selectgroup-item{-ms-flex-positive:1;flex-grow:1;position:relative;font-weight:400!important}.selectgroup-item+.selectgroup-item{margin-left:-1px}.selectgroup-item:not(:first-child) .selectgroup-button{border-top-left-radius:0;border-bottom-left-radius:0}.selectgroup-item:not(:last-child) .selectgroup-button{border-top-right-radius:0;border-bottom-right-radius:0}.selectgroup-input{opacity:0;position:absolute;z-index:-1;top:0;left:0}.selectgroup-button{display:block;border:1px solid rgba(0,40,100,.12);text-align:center;padding:.375rem 1rem;position:relative;cursor:pointer;border-radius:3px;color:#9aa0ac;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:14px;line-height:1.5rem;min-width:2.375rem}.selectgroup-button-icon{padding-left:.5rem;padding-right:.5rem;font-size:1rem}.selectgroup-input:checked+.selectgroup-button{border-color:#1572e8;z-index:1;color:#1572e8;background:rgba(21,114,232,.15)}.selectgroup-input:focus+.selectgroup-button{border-color:#1572e8;z-index:2;color:#1572e8;box-shadow:0 0 0 2px rgba(21,114,232,.25)}.selectgroup-pills{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.selectgroup-pills .selectgroup-item{margin-right:.5rem;-ms-flex-positive:0;flex-grow:0}.selectgroup-pills .selectgroup-button{border-radius:50px!important}.selectgroup.selectgroup-primary .selectgroup-input:checked+.selectgroup-button{border-color:#1572e8;color:#1572e8;background:rgba(21,114,232,.15)}.selectgroup.selectgroup-primary .selectgroup-input:focus+.selectgroup-button{border-color:#1572e8;color:#1572e8;box-shadow:0 0 0 2px rgba(21,114,232,.25)}.selectgroup.selectgroup-secondary .selectgroup-input:checked+.selectgroup-button{border-color:#6861ce;color:#6861ce;background:rgba(104,97,206,.15)}.selectgroup.selectgroup-secondary .selectgroup-input:focus+.selectgroup-button{border-color:#6861ce;color:#6861ce;box-shadow:0 0 0 2px rgba(104,97,206,.25)}.selectgroup.selectgroup-info .selectgroup-input:checked+.selectgroup-button{border-color:#48abf7;color:#48abf7;background:rgba(72,171,247,.15)}.selectgroup.selectgroup-info .selectgroup-input:focus+.selectgroup-button{border-color:#48abf7;color:#48abf7;box-shadow:0 0 0 2px rgba(72,171,247,.25)}.selectgroup.selectgroup-success .selectgroup-input:checked+.selectgroup-button{border-color:#31ce36;color:#31ce36;background:rgba(49,206,54,.15)}.selectgroup.selectgroup-success .selectgroup-input:focus+.selectgroup-button{border-color:#31ce36;color:#31ce36;box-shadow:0 0 0 2px rgba(49,206,54,.25)}.selectgroup.selectgroup-warning .selectgroup-input:checked+.selectgroup-button{border-color:#ffad46;color:#ffad46;background:rgba(255,173,70,.15)}.selectgroup.selectgroup-warning .selectgroup-input:focus+.selectgroup-button{border-color:#ffad46;color:#ffad46;box-shadow:0 0 0 2px rgba(255,173,70,.25)}.selectgroup.selectgroup-danger .selectgroup-input:checked+.selectgroup-button{border-color:#f25961;color:#f25961;background:rgba(242,89,97,.15)}.selectgroup.selectgroup-danger .selectgroup-input:focus+.selectgroup-button{border-color:#f25961;color:#f25961;box-shadow:0 0 0 2px rgba(242,89,97,.25)}.colorinput{margin:0;position:relative;cursor:pointer}.colorinput-input{position:absolute;z-index:-1;opacity:0}.colorinput-color{display:inline-block;width:1.75rem;height:1.75rem;border-radius:3px;border:1px solid rgba(0,40,100,.12);color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.colorinput-color:before{content:'';opacity:0;position:absolute;top:.25rem;left:.25rem;height:1.25rem;width:1.25rem;transition:.3s opacity;background:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") no-repeat center center/50% 50%}.colorinput-input:checked~.colorinput-color:before{opacity:1}.colorinput-input:focus~.colorinput-color{border-color:#467fcf;box-shadow:0 0 0 2px rgba(70,127,207,.25)}.imagecheck{margin:0;position:relative;cursor:pointer}.imagecheck-input{position:absolute;z-index:-1;opacity:0}.imagecheck-figure{border:1px solid rgba(0,40,100,.12);border-radius:3px;margin:0;position:relative}.imagecheck-input:focus~.imagecheck-figure{border-color:#1572e8;box-shadow:0 0 0 2px rgba(70,127,207,.25)}.imagecheck-input:checked~.imagecheck-figure{border-color:rgba(0,40,100,.24)}.imagecheck-figure:before{content:'';position:absolute;top:.25rem;left:.25rem;display:block;width:1rem;height:1rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#1572e8 url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") no-repeat center center/50% 50%;color:#fff;z-index:1;border-radius:3px;opacity:0;transition:.3s opacity}.imagecheck-input:checked~.imagecheck-figure:before{opacity:1}.imagecheck-image{max-width:100%;opacity:.64;transition:.3s opacity}.imagecheck-image:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.imagecheck-image:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.imagecheck:hover .imagecheck-image{opacity:1}.imagecheck-input:checked~.imagecheck-figure .imagecheck-image,.imagecheck-input:focus~.imagecheck-figure .imagecheck-image{opacity:1}.imagecheck-caption{text-align:center;padding:.25rem .25rem;color:#9aa0ac;font-size:.875rem;transition:.3s color}.imagecheck:hover .imagecheck-caption{color:#495057}.imagecheck-input:checked~.imagecheck-figure .imagecheck-caption,.imagecheck-input:focus~.imagecheck-figure .imagecheck-caption{color:#495057}.is-loading:after,.loader{display:block;width:1.5rem;height:1.5rem;background:0 0;border:3px solid #6861ce;border-bottom-color:transparent;border-radius:50%;animation:1s spin linear infinite}.is-loading-lg:after,.loader-lg{width:2rem;height:2rem;border-width:5px}.is-loading-sm:after,.loader-sm{width:1rem;height:1rem;border-width:2px}.is-loading{position:relative;color:transparent!important}.is-loading>*{opacity:.2!important}.is-loading:after{position:absolute;top:calc(50% - 1.5rem/2);left:calc(50% - 1.5rem/2);content:''}.is-loading-lg:after{top:calc(50% - 2rem/2);left:calc(50% - 2rem/2)}.is-loading-sm:after{top:calc(50% - 1rem/2);left:calc(50% - 1rem/2)}.btn-danger.is-loading:after,.btn-default.is-loading:after,.btn-info.is-loading:after,.btn-primary.is-loading:after,.btn-secondary.is-loading:after,.btn-success.is-loading:after,.btn-warning.is-loading:after,.card-danger.is-loading:after,.card-default.is-loading:after,.card-info.is-loading:after,.card-primary.is-loading:after,.card-secondary.is-loading:after,.card-success.is-loading:after,.card-warning.is-loading:after,.is-loading-danger:after,.is-loading-default:after,.is-loading-info:after,.is-loading-primary:after,.is-loading-secondary:after,.is-loading-success:after,.is-loading-warning:after,.loader-danger,.loader-default,.loader-info,.loader-primary,.loader-secondary,.loader-success,.loader-warning{border-bottom-color:transparent!important}.btn-danger.is-loading:after,.btn-default.is-loading:after,.btn-info.is-loading:after,.btn-primary.is-loading:after,.btn-secondary.is-loading:after,.btn-success.is-loading:after,.btn-warning.is-loading:after,.card-danger.is-loading:after,.card-default.is-loading:after,.card-info.is-loading:after,.card-primary.is-loading:after,.card-secondary.is-loading:after,.card-success.is-loading:after,.card-warning.is-loading:after{border-color:#fff}.is-loading-default:after,.loader-default{border-color:#1a2035}.is-loading-primary:after,.loader-primary{border-color:#1572e8}.is-loading-secondary:after,.loader-secondary{border-color:#6861ce}.is-loading-info:after,.loader-info{border-color:#48abf7}.is-loading-success:after,.loader-success{border-color:#31ce36}.is-loading-warning:after,.loader-warning{border-color:#ffad46}.is-loading-danger:after,.loader-danger{border-color:#f25961}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-slider{position:relative;text-align:left;background:#ddd}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1em;height:1em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.4em}.ui-slider-horizontal .ui-slider-handle{top:-.4em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-slider-handle{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f7f7f7 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f7f7f7));background:-webkit-linear-gradient(top,#fff 0,#f7f7f7 100%);background:-o-linear-gradient(top,#fff 0,#f7f7f7 100%);background:-ms-linear-gradient(top,#fff 0,#f7f7f7 100%);background:linear-gradient(to bottom,#fff 0,#f7f7f7 100%);border-radius:50px;box-shadow:0 1px 4px 0 #9191ab!important}.ui-slider-handle:focus{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f7f7f7 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f7f7f7));background:-webkit-linear-gradient(top,#fff 0,#f7f7f7 100%);background:-o-linear-gradient(top,#fff 0,#f7f7f7 100%);background:-ms-linear-gradient(top,#fff 0,#f7f7f7 100%);background:linear-gradient(to bottom,#fff 0,#f7f7f7 100%);border-radius:50px;box-shadow:0 1px 4px 0 #9191ab!important}.scroll-wrapper{overflow:hidden!important;padding:0!important;position:relative}.scroll-wrapper>.scroll-content{border:none!important;box-sizing:content-box!important;height:auto;left:0;margin:0;max-height:none;max-width:none!important;overflow:scroll!important;padding:0;position:relative!important;top:0;width:auto!important}.scroll-wrapper>.scroll-content::-webkit-scrollbar{height:0;width:0}.scroll-element{display:none;box-sizing:content-box}.scroll-element div{box-sizing:content-box}.scroll-element.scroll-x.scroll-scrollx_visible,.scroll-element.scroll-y.scroll-scrolly_visible{display:block}.scroll-element .scroll-arrow,.scroll-element .scroll-bar{cursor:default}.scroll-textarea{border:1px solid #ccc;border-top-color:#999}.scroll-textarea>.scroll-content{overflow:hidden!important}.scroll-textarea>.scroll-content>textarea{border:none!important;box-sizing:border-box;height:100%!important;margin:0;max-height:none!important;max-width:none!important;overflow:scroll!important;outline:0;padding:2px;position:relative!important;top:0;width:100%!important}.scrollbar-inner>.scroll-element .scroll-element_outer,.scrollbar-outer>.scroll-element .scroll-element_outer{overflow:hidden}.scroll-textarea>.scroll-content>textarea::-webkit-scrollbar{height:0;width:0}.scrollbar-inner>.scroll-element{border:none;margin:0;padding:0;position:absolute;z-index:10}.scrollbar-inner>.scroll-element div{border:none;margin:0;padding:0;position:absolute;z-index:10;display:block;height:100%;left:0;top:0;width:100%}.scrollbar-inner>.scroll-element.scroll-x{bottom:2px;height:7px;left:0;width:100%}.scrollbar-inner>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size,.scrollbar-inner>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-12px}.scrollbar-inner>.scroll-element.scroll-y{height:100%;right:2px;top:0;width:7px}.scrollbar-inner>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size,.scrollbar-inner>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-12px}.scrollbar-inner>.scroll-element .scroll-bar,.scrollbar-inner>.scroll-element .scroll-element_outer,.scrollbar-inner>.scroll-element .scroll-element_track{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.scrollbar-inner>.scroll-element .scroll-bar{opacity:.4}.scrollbar-inner>.scroll-element .scroll-element_track{opacity:.4;background-color:#e0e0e0}.scrollbar-inner>.scroll-element .scroll-bar{background-color:#c2c2c2}.scrollbar-inner>.scroll-element.scroll-draggable .scroll-bar,.scrollbar-inner>.scroll-element:hover .scroll-bar{background-color:#919191}.scrollbar-outer>.scroll-element{border:none;margin:0;padding:0;position:absolute;z-index:10;background-color:#fff}.scrollbar-outer>.scroll-element div{border:none;margin:0;padding:0;position:absolute;z-index:10;display:block;height:100%;left:0;top:0;width:100%}.scrollbar-outer>.scroll-element.scroll-x{bottom:0;height:12px;left:0;width:100%}.scrollbar-outer>.scroll-element.scroll-y{height:100%;right:0;top:0;width:12px}.scrollbar-outer>.scroll-element.scroll-x .scroll-element_outer{height:7px;top:2px}.scrollbar-outer>.scroll-element.scroll-y .scroll-element_outer{left:2px;width:7px}.scrollbar-outer>.scroll-element .scroll-element_track{background-color:#eee}.scrollbar-outer>.scroll-element .scroll-bar,.scrollbar-outer>.scroll-element .scroll-element_outer,.scrollbar-outer>.scroll-element .scroll-element_track{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.scrollbar-outer>.scroll-element .scroll-bar{background-color:#d9d9d9}.scrollbar-outer>.scroll-element .scroll-bar:hover{background-color:#c2c2c2}.scrollbar-outer>.scroll-element.scroll-draggable .scroll-bar{background-color:#919191}.scrollbar-outer>.scroll-content.scroll-scrolly_visible{left:-12px;margin-left:12px}.scrollbar-outer>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size,.scrollbar-outer>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-14px}.scrollbar-outer>.scroll-content.scroll-scrollx_visible{top:-12px;margin-top:12px}.scrollbar-outer>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size,.scrollbar-outer>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-14px}.scrollbar-outer>.scroll-element.scroll-x .scroll-bar{min-width:10px}.scrollbar-outer>.scroll-element.scroll-y .scroll-bar{min-height:10px}.scrollbar-macosx>.scroll-element{background:0 0;border:none;margin:0;padding:0;position:absolute;z-index:10}.scrollbar-macosx>.scroll-element div{background:0 0;border:none;margin:0;padding:0;position:absolute;z-index:10;display:block;height:100%;left:0;top:0;width:100%}.scrollbar-macosx>.scroll-element .scroll-element_track{display:none}.scrollbar-macosx>.scroll-element .scroll-bar{background-color:#6c6e71;display:block;opacity:0;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;-ms-transition:opacity .2s linear;transition:opacity .2s linear}.scrollbar-macosx:hover>.scroll-element .scroll-bar{opacity:.7}.scrollbar-macosx>.scroll-element.scroll-draggable .scroll-bar{opacity:.7}.scrollbar-macosx>.scroll-element.scroll-x{bottom:0;height:0;left:0;min-width:100%;overflow:visible;width:100%}.scrollbar-macosx>.scroll-element.scroll-y{height:100%;min-height:100%;right:0;top:0;width:0}.scrollbar-macosx>.scroll-element.scroll-x .scroll-bar{height:7px;min-width:10px;top:-9px}.scrollbar-macosx>.scroll-element.scroll-y .scroll-bar{left:-9px;min-height:10px;width:7px}.scrollbar-macosx>.scroll-element.scroll-x .scroll-element_outer{left:2px}.scrollbar-macosx>.scroll-element.scroll-x .scroll-element_size{left:-4px}.scrollbar-macosx>.scroll-element.scroll-y .scroll-element_outer{top:2px}.scrollbar-macosx>.scroll-element.scroll-y .scroll-element_size{top:-4px}.scrollbar-macosx>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-11px}.scrollbar-macosx>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-11px}.scrollbar-light>.scroll-element{border:none;margin:0;overflow:hidden;padding:0;position:absolute;z-index:10;background-color:#fff}.scrollbar-light>.scroll-element div{border:none;margin:0;overflow:hidden;padding:0;position:absolute;z-index:10;display:block;height:100%;left:0;top:0;width:100%}.scrollbar-light>.scroll-element .scroll-element_outer{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.scrollbar-light>.scroll-element .scroll-element_size{background:-moz-linear-gradient(left,#dbdbdb 0,#e8e8e8 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#dbdbdb),color-stop(100%,#e8e8e8));background:-webkit-linear-gradient(left,#dbdbdb 0,#e8e8e8 100%);background:-o-linear-gradient(left,#dbdbdb 0,#e8e8e8 100%);background:-ms-linear-gradient(left,#dbdbdb 0,#e8e8e8 100%);background:linear-gradient(to right,#dbdbdb 0,#e8e8e8 100%);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.scrollbar-light>.scroll-element.scroll-x{bottom:0;height:17px;left:0;min-width:100%;width:100%}.scrollbar-light>.scroll-element.scroll-y{height:100%;min-height:100%;right:0;top:0;width:17px}.scrollbar-light>.scroll-element .scroll-bar{background:-moz-linear-gradient(left,#fefefe 0,#f5f5f5 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#fefefe),color-stop(100%,#f5f5f5));background:-webkit-linear-gradient(left,#fefefe 0,#f5f5f5 100%);background:-o-linear-gradient(left,#fefefe 0,#f5f5f5 100%);background:-ms-linear-gradient(left,#fefefe 0,#f5f5f5 100%);background:linear-gradient(to right,#fefefe 0,#f5f5f5 100%);border:1px solid #dbdbdb;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.scrollbar-light>.scroll-content.scroll-scrolly_visible{left:-17px;margin-left:17px}.scrollbar-light>.scroll-content.scroll-scrollx_visible{top:-17px;margin-top:17px}.scrollbar-light>.scroll-element.scroll-x .scroll-bar{height:10px;min-width:10px;top:0}.scrollbar-light>.scroll-element.scroll-y .scroll-bar{left:0;min-height:10px;width:10px}.scrollbar-light>.scroll-element.scroll-x .scroll-element_outer{height:12px;left:2px;top:2px}.scrollbar-light>.scroll-element.scroll-x .scroll-element_size{left:-4px}.scrollbar-light>.scroll-element.scroll-y .scroll-element_outer{left:2px;top:2px;width:12px}.scrollbar-light>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size,.scrollbar-light>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-19px}.scrollbar-light>.scroll-element.scroll-y .scroll-element_size{top:-4px}.scrollbar-light>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size,.scrollbar-light>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-19px}.scrollbar-rail>.scroll-element{border:none;margin:0;overflow:hidden;padding:0;position:absolute;z-index:10;background-color:#fff}.scrollbar-rail>.scroll-element div{border:none;margin:0;overflow:hidden;padding:0;position:absolute;z-index:10;display:block;height:100%;left:0;top:0;width:100%}.scrollbar-rail>.scroll-element .scroll-element_size{background-color:#999;background-color:rgba(0,0,0,.3)}.scrollbar-rail>.scroll-element .scroll-element_outer:hover .scroll-element_size{background-color:#666;background-color:rgba(0,0,0,.5)}.scrollbar-rail>.scroll-element.scroll-x{bottom:0;height:12px;left:0;min-width:100%;padding:3px 0 2px;width:100%}.scrollbar-rail>.scroll-element.scroll-y{height:100%;min-height:100%;padding:0 2px 0 3px;right:0;top:0;width:12px}.scrollbar-rail>.scroll-element .scroll-bar{background-color:#d0b9a0;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.5)}.scrollbar-rail>.scroll-element .scroll-element_outer:hover .scroll-bar{box-shadow:1px 1px 3px rgba(0,0,0,.6)}.scrollbar-rail>.scroll-content.scroll-scrolly_visible{left:-17px;margin-left:17px}.scrollbar-rail>.scroll-content.scroll-scrollx_visible{margin-top:17px;top:-17px}.scrollbar-rail>.scroll-element.scroll-x .scroll-bar{height:10px;min-width:10px;top:1px}.scrollbar-rail>.scroll-element.scroll-y .scroll-bar{left:1px;min-height:10px;width:10px}.scrollbar-rail>.scroll-element.scroll-x .scroll-element_outer{height:15px;left:5px}.scrollbar-rail>.scroll-element.scroll-x .scroll-element_size{height:2px;left:-10px;top:5px}.scrollbar-rail>.scroll-element.scroll-y .scroll-element_outer{top:5px;width:15px}.scrollbar-rail>.scroll-element.scroll-y .scroll-element_size{left:5px;top:-10px;width:2px}.scrollbar-rail>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size,.scrollbar-rail>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-25px}.scrollbar-rail>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size,.scrollbar-rail>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-25px}.scrollbar-dynamic>.scroll-element{background:0 0;border:none;margin:0;padding:0;position:absolute;z-index:10}.scrollbar-dynamic>.scroll-element div{background:0 0;border:none;margin:0;padding:0;position:absolute;z-index:10;display:block;height:100%;left:0;top:0;width:100%}.scrollbar-dynamic>.scroll-element.scroll-x{bottom:2px;height:7px;left:0;min-width:100%;width:100%}.scrollbar-dynamic>.scroll-element.scroll-y{height:100%;min-height:100%;right:2px;top:0;width:7px}.scrollbar-dynamic>.scroll-element .scroll-element_outer{opacity:.3;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px}.scrollbar-dynamic>.scroll-element .scroll-element_size{background-color:#ccc;opacity:0;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;-ms-transition:opacity .2s;transition:opacity .2s}.scrollbar-dynamic>.scroll-element .scroll-bar{background-color:#6c6e71;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.scrollbar-dynamic>.scroll-element.scroll-x .scroll-bar{bottom:0;height:7px;min-width:24px;top:auto}.scrollbar-dynamic>.scroll-element.scroll-y .scroll-bar{left:auto;min-height:24px;right:0;width:7px}.scrollbar-dynamic>.scroll-element.scroll-x .scroll-element_outer{bottom:0;top:auto;left:2px;-webkit-transition:height .2s;-moz-transition:height .2s;-o-transition:height .2s;-ms-transition:height .2s;transition:height .2s}.scrollbar-dynamic>.scroll-element.scroll-y .scroll-element_outer{left:auto;right:0;top:2px;-webkit-transition:width .2s;-moz-transition:width .2s;-o-transition:width .2s;-ms-transition:width .2s;transition:width .2s}.scrollbar-dynamic>.scroll-element.scroll-x .scroll-element_size{left:-4px}.scrollbar-dynamic>.scroll-element.scroll-y .scroll-element_size{top:-4px}.scrollbar-dynamic>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size{left:-11px}.scrollbar-dynamic>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size{top:-11px}.scrollbar-dynamic>.scroll-element.scroll-draggable .scroll-element_outer,.scrollbar-dynamic>.scroll-element:hover .scroll-element_outer{overflow:hidden;opacity:.7}.scrollbar-dynamic>.scroll-element.scroll-draggable .scroll-element_outer .scroll-element_size,.scrollbar-dynamic>.scroll-element:hover .scroll-element_outer .scroll-element_size{opacity:1}.scrollbar-dynamic>.scroll-element.scroll-draggable .scroll-element_outer .scroll-bar,.scrollbar-dynamic>.scroll-element:hover .scroll-element_outer .scroll-bar{height:100%;width:100%;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px}.scrollbar-dynamic>.scroll-element.scroll-x.scroll-draggable .scroll-element_outer,.scrollbar-dynamic>.scroll-element.scroll-x:hover .scroll-element_outer{height:20px;min-height:7px}.scrollbar-dynamic>.scroll-element.scroll-y.scroll-draggable .scroll-element_outer,.scrollbar-dynamic>.scroll-element.scroll-y:hover .scroll-element_outer{min-width:7px;width:20px}.scrollbar-chrome>.scroll-element{border:none;margin:0;overflow:hidden;padding:0;position:absolute;z-index:10;background-color:#fff}.scrollbar-chrome>.scroll-element div{border:none;margin:0;overflow:hidden;padding:0;position:absolute;z-index:10;display:block;height:100%;left:0;top:0;width:100%}.scrollbar-chrome>.scroll-element .scroll-element_track{background:#f1f1f1;border:1px solid #dbdbdb}.scrollbar-chrome>.scroll-element.scroll-x{bottom:0;height:16px;left:0;min-width:100%;width:100%}.scrollbar-chrome>.scroll-element.scroll-y{height:100%;min-height:100%;right:0;top:0;width:16px}.scrollbar-chrome>.scroll-element .scroll-bar{background-color:#d9d9d9;border:1px solid #bdbdbd;cursor:default;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.scrollbar-chrome>.scroll-element .scroll-bar:hover{background-color:#c2c2c2;border-color:#a9a9a9}.scrollbar-chrome>.scroll-element.scroll-draggable .scroll-bar{background-color:#919191;border-color:#7e7e7e}.scrollbar-chrome>.scroll-content.scroll-scrolly_visible{left:-16px;margin-left:16px}.scrollbar-chrome>.scroll-content.scroll-scrollx_visible{top:-16px;margin-top:16px}.scrollbar-chrome>.scroll-element.scroll-x .scroll-bar{height:5px;min-width:10px;top:3px}.scrollbar-chrome>.scroll-element.scroll-y .scroll-bar{left:3px;min-height:10px;width:5px}.scrollbar-chrome>.scroll-element.scroll-x .scroll-element_outer{border-left:1px solid #dbdbdb}.scrollbar-chrome>.scroll-element.scroll-x .scroll-element_track{height:14px;left:-3px}.scrollbar-chrome>.scroll-element.scroll-x .scroll-element_size{height:14px;left:-4px}.scrollbar-chrome>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size,.scrollbar-chrome>.scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track{left:-19px}.scrollbar-chrome>.scroll-element.scroll-y .scroll-element_outer{border-top:1px solid #dbdbdb}.scrollbar-chrome>.scroll-element.scroll-y .scroll-element_track{top:-3px;width:14px}.scrollbar-chrome>.scroll-element.scroll-y .scroll-element_size{top:-4px;width:14px}.scrollbar-chrome>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size,.scrollbar-chrome>.scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track{top:-19px}/*! +* animate.css -http://daneden.me/animate +* Version - 3.6.0 +* Licensed under the MIT license - http://opensource.org/licenses/MIT +* +* Copyright (c) 2018 Daniel Eden +*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{20%,53%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{20%,53%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{50%,from,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{50%,from,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes wobble{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{11.1%,from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.39063deg) skewY(.39063deg);transform:skewX(.39063deg) skewY(.39063deg)}88.8%{-webkit-transform:skewX(-.19531deg) skewY(-.19531deg);transform:skewX(-.19531deg) skewY(-.19531deg)}}@keyframes jello{11.1%,from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.39063deg) skewY(.39063deg);transform:skewX(.39063deg) skewY(.39063deg)}88.8%{-webkit-transform:skewX(-.19531deg) skewY(-.19531deg);transform:skewX(-.19531deg) skewY(-.19531deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInDown{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInLeft{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInRight{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{from{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{from{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.swal-footer{text-align:center!important;margin-bottom:20px!important}table.dataTable{clear:both;margin-top:15px!important;margin-bottom:15px!important;max-width:none!important;border-collapse:separate!important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:400;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:400;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:.85em;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap;justify-content:flex-end}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc{padding-right:30px}table.dataTable thead>tr>td:active,table.dataTable thead>tr>th:active{outline:0}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc_disabled:after,table.dataTable thead .sorting_desc_disabled:before{position:absolute;bottom:.9em;display:block;opacity:.5}table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc_disabled:before{right:1em;content:"\2191";font-size:15px}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc_disabled:after{right:.5em;content:"\2193";font-size:15px}table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_desc:after{opacity:1}table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc_disabled:after{opacity:0}div.dataTables_scrollHead table.dataTable{margin-bottom:0!important}div.dataTables_scrollBody table{border-top:none;margin-top:0!important;margin-bottom:0!important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child td,div.dataTables_scrollBody table tbody tr:first-child th{border-top:none}div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0!important;border-top:none}@media screen and (max-width:767px){div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_paginate{text-align:center;margin-top:11px;margin-bottom:10px}div.dataTables_wrapper div div.dataTables_paginate ul.pagination{flex-wrap:wrap!important;justify-content:center!important}div.dataTables_wrapper div div.dataTables_paginate ul.pagination li{margin-bottom:10px}div.dataTables_wrapper div div.dataTables_paginate ul.pagination li a{font-size:11px}}table.dataTable.table-sm>thead>tr>th{padding-right:20px}table.dataTable.table-sm .sorting:before,table.dataTable.table-sm .sorting_asc:before,table.dataTable.table-sm .sorting_desc:before{top:5px;right:.85em}table.dataTable.table-sm .sorting:after,table.dataTable.table-sm .sorting_asc:after,table.dataTable.table-sm .sorting_desc:after{top:5px}table.table-bordered.dataTable td,table.table-bordered.dataTable th{border-left-width:0}table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable th:last-child{border-right-width:0}table.table-bordered.dataTable tbody td,table.table-bordered.dataTable tbody th{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child,div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-left:0;padding-right:0}@media screen and (max-width:576px){.row-card-no-pd [class*=col-] .card:before{width:calc(100% - 30px)!important;right:15px!important;height:1px!important}.row-card-no-pd [class*=col-]:first-child .card:before{display:none!important}}@media screen and (min-width:991px){.main-panel.full-height>.content,.main-panel.full-height>.content-full{margin-top:0}.main-panel.full-height .navbar-header{min-height:62px}.logo-header{line-height:57px}.toggle-nav-search{display:none}#search-nav{display:block!important}.sidebar .scroll-element{opacity:0;transition:all .2s}.sidebar:hover .scroll-element{opacity:1}.sidebar[data-background-color]:before{background:rgba(255,255,255,.2)!important;z-index:1000}}@media screen and (max-width:991px){.main-header[data-background-color] .navbar-header{border-top:1px solid rgba(0,0,0,.1)}.sidebar{position:fixed;left:0!important;right:0;-webkit-transform:translate3d(-270px,0,0);-moz-transform:translate3d(-270px,0,0);-o-transform:translate3d(-270px,0,0);-ms-transform:translate3d(-270px,0,0);transform:translate3d(-270px,0,0)!important;transition:all .5s;margin-top:0}.sidebar:before{background:0 0}.nav_open .sidebar{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)!important;border-right:1px solid #f1f1f1}.sidebar .sidebar-wrapper{padding-top:0}.sidebar .sidebar-wrapper .sidebar-content{padding-top:0!important}.sidebar .sidebar-wrapper .scroll-element.scroll-y{top:0!important}.nav_open{overflow:hidden!important}.nav_open .wrapper{overflow-x:hidden}.nav_open .main-header,.nav_open .main-panel{-webkit-transform:translate3d(250px,0,0);-moz-transform:translate3d(250px,0,0);-o-transform:translate3d(250px,0,0);-ms-transform:translate3d(250px,0,0);transform:translate3d(250px,0,0)!important}.quick_sidebar_open .quick-sidebar{width:350px}.main-header{transition:all .5s}#search-nav{margin:0 auto!important}.main-panel{width:100%;transition:all .5s}.main-panel .page-header .dropdown-menu:after{right:16px!important}.page-inner{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.page-sidebar{background:#fff}.logo-header{display:flex;width:100%!important;text-align:left;position:relative;padding-left:15px;padding-right:15px}.logo-header .logo{position:absolute;left:50%;transform:translateX(-50%)}.logo-header .navbar-toggler{height:100%;margin-left:0!important;opacity:1;display:block;order:1}.logo-header .more{opacity:1;color:#545454;cursor:pointer;display:inline-block;line-height:56px;order:3;width:unset;margin-left:auto}.logo-header .navbar-brand{position:unset!important;margin-right:0}.nav-search{width:100%;margin-right:0!important}.navbar-header{position:absolute;width:100%;transform:translate3d(0,-200px,0)!important;transition:all .5s}.topbar_open .navbar-header{transform:translate3d(0,61px,0)!important;padding:6px}.topbar_open .navbar-header .navbar-nav>.nav-item .nav-link i{font-size:19px}.topbar_open .navbar-header .navbar-nav>.nav-item:last-child .nav-link{padding:0!important}.topbar_open .navbar-header .navbar-nav>.nav-item:last-child .quick-sidebar-toggler{padding-left:5px!important}.topbar_open .toggle-nav-search{display:list-item}.topbar_open #search-nav{text-align:center;width:100%;padding:10px 15px 0;order:1}.topbar_open .main-panel{transform:translate3d(0,62px,0)!important}.topbar_open>.content{margin-top:0!important}.nav_open.topbar_open .main-panel{transform:translate3d(250px,60px,0)!important}.navbar-header .navbar-nav{width:100%;flex-direction:row;justify-content:center;margin-left:0!important;position:relative}.navbar-header .navbar-nav .dropdown{position:unset}.navbar-header .navbar-nav .dropdown-menu{position:absolute;left:0;right:0;margin:0 auto;max-width:280px}.profile-pic span{display:none}.nav-toggle{display:none}.page-title{font-size:18px}.card .card-title{font-size:18px}.mail-wrapper .mail-option .email-filters-left{width:50%}.mail-wrapper .mail-option .email-filters-left .btn-group{margin-bottom:10px}.dropzone{padding:20px 15px!important}.dropzone .dz-message .message{font-size:23px}.dropzone .dz-message .note{font-size:15px}}@media screen and (min-width:856px){.mail-wrapper .aside-nav{display:block!important}}@media screen and (max-width:856px){.mail-wrapper{flex-direction:column}.mail-wrapper .page-aside{width:100%;height:unset;min-height:unset;border-bottom:1px solid #eee;border-left:0;border-right:0;background:0 0;padding-top:0;padding-bottom:0}.mail-wrapper .page-aside .aside-header{padding-top:25px;padding-bottom:25px;background:#f1f1f1}.mail-wrapper .page-aside .aside-nav{background:#fff;padding-top:15px;padding-bottom:15px}.mail-wrapper .mail-content{width:100%}.mail-wrapper .mail-content .inbox-head{flex-direction:column;align-items:left}.mail-wrapper .mail-content .inbox-head h3{font-size:18px}.mail-wrapper .mail-content .inbox-head form{margin-left:0!important;margin-top:15px}.mail-wrapper .mail-content .email-head h3{font-size:18px}.mail-wrapper .mail-content .email-compose-fields{padding:20px 15px}.mail-wrapper .mail-option{flex-direction:column}.mail-wrapper .mail-option .email-filters-left{width:100%;margin-bottom:10px}.mail-wrapper .toggle-email-nav{display:inline-block!important}.mail-wrapper .table-inbox tr td .badge{margin-top:5px;float:left}}@media screen and (max-width:767px){.wizard-container{margin-left:15px;margin-right:15px}.main-panel .page-header{flex-direction:column;align-items:normal;position:relative;min-height:43px;justify-content:center}.main-panel .page-header .breadcrumbs{margin-left:0;padding-top:15px;padding-left:5px;padding-bottom:0;border-left:0}.main-panel .page-header .btn-group-page-header{position:absolute;right:0}.footer .container-fluid{flex-direction:column}.footer .container-fluid .copyright{margin-left:0!important;margin-top:10px;margin-bottom:15px}}@media screen and (max-width:576px){#chart-container{min-height:250px}.form-check-inline{display:flex;flex-direction:column;align-items:left}#calendar .fc-toolbar{display:flex;flex-direction:column}#calendar .fc-toolbar .fc-center,#calendar .fc-toolbar .fc-left,#calendar .fc-toolbar .fc-right{margin:auto;margin-bottom:15px}#calendar .fc-toolbar .fc-left{order:1}#calendar .fc-toolbar .fc-right{order:3}#calendar .fc-toolbar .fc-center{order:2}.conversations .conversations-body{padding:1.5rem 1rem}}@media screen and (max-width:350px){.quick_sidebar_open .quick-sidebar{width:100%;padding:20px}}body{background:#f9fbfd}body[data-background-color=bg1]{background:#f9fbfd}body[data-background-color=bg2]{background:#fff}body[data-background-color=bg3]{background:#f1f1f1}body[data-background-color=dark]{background:#1a2035}body[data-background-color=dark] .main-header{box-shadow:0 0 5px #121727}body[data-background-color=dark] .main-panel{color:rgba(169,175,187,.82)!important}body[data-background-color=dark] .main-panel label{color:#fff!important}body[data-background-color=dark] .card,body[data-background-color=dark] .list-group-item,body[data-background-color=dark] .row-card-no-pd,body[data-background-color=dark] .timeline>li>.timeline-panel{background:#202940}body[data-background-color=dark] .card-pricing2{background:#202940!important}body[data-background-color=dark] .row-card-no-pd [class*=col] .card:before{background:rgba(181,181,181,.1)!important}body[data-background-color=dark] .breadcrumbs,body[data-background-color=dark] .card .card-action,body[data-background-color=dark] .card .card-footer,body[data-background-color=dark] .card .card-header,body[data-background-color=dark] .card-profile .user-stats [class^=col],body[data-background-color=dark] .conversations .messages-form,body[data-background-color=dark] .list-group .list-group-item,body[data-background-color=dark] .mail-wrapper .mail-content .email-head,body[data-background-color=dark] .mail-wrapper .mail-content .email-sender,body[data-background-color=dark] .mail-wrapper .mail-content .inbox-body .email-list .email-list-item,body[data-background-color=dark] .main-panel .page-divider,body[data-background-color=dark] .page-with-aside .page-aside,body[data-background-color=dark] .separator-dashed,body[data-background-color=dark] .separator-dot,body[data-background-color=dark] .separator-solid,body[data-background-color=dark] .table td,body[data-background-color=dark] .table th,body[data-background-color=dark] .timeline>li>.timeline-panel{border-color:rgba(181,181,181,.1)!important}body[data-background-color=dark] .timeline>li>.timeline-panel:before{border-left-color:rgba(181,181,181,.1);border-right-color:rgba(181,181,181,.1)}body[data-background-color=dark] .timeline>li>.timeline-panel:after{border-left-color:#202940;border-right-color:#202940}body[data-background-color=dark] .breadcrumbs li a,body[data-background-color=dark] .page-title{color:rgba(169,175,187,.82)}body[data-background-color=dark] .page-category{color:#828282}body[data-background-color=dark] .card-title,body[data-background-color=dark] .card-title a,body[data-background-color=dark] .card-title a:focus,body[data-background-color=dark] .card-title a:hover{color:#fff}body[data-background-color=dark] .card-category{color:#8b92a9}body[data-background-color=dark] .card-danger,body[data-background-color=dark] .card-default,body[data-background-color=dark] .card-info,body[data-background-color=dark] .card-primary,body[data-background-color=dark] .card-secondary,body[data-background-color=dark] .card-success,body[data-background-color=dark] .card-warning{color:#fff}body[data-background-color=dark] .card-danger .card-category,body[data-background-color=dark] .card-danger .card-title,body[data-background-color=dark] .card-default .card-category,body[data-background-color=dark] .card-default .card-title,body[data-background-color=dark] .card-info .card-category,body[data-background-color=dark] .card-info .card-title,body[data-background-color=dark] .card-primary .card-category,body[data-background-color=dark] .card-primary .card-title,body[data-background-color=dark] .card-secondary .card-category,body[data-background-color=dark] .card-secondary .card-title,body[data-background-color=dark] .card-success .card-category,body[data-background-color=dark] .card-success .card-title,body[data-background-color=dark] .card-warning .card-category,body[data-background-color=dark] .card-warning .card-title{color:#fff}body[data-background-color=dark] .nav-pills .nav-link:not(.active){background:#fff}body[data-background-color=dark] .card-pricing .specification-list li{border-color:#373d4c}body[data-background-color=dark] .input-group-text{border-color:#2f374b!important;background-color:#1f283e;color:#fff}body[data-background-color=dark] .input-solid{background:#363b4c!important;border-color:#363b4c!important}body[data-background-color=dark] .list-group .list-group-item-text,body[data-background-color=dark] .list-group-messages .list-group-item-title a{color:inherit}body[data-background-color=dark] .footer{border-top:1px solid #293247;background:#1f283e}body[data-background-color=dark] .form-control,body[data-background-color=dark] .form-group-default,body[data-background-color=dark] .select2-container--bootstrap .select2-selection{background-color:#1a2035;color:#fff;border-color:#2f374b}body[data-background-color=dark] .bootstrap-tagsinput{background:0 0}body[data-background-color=dark] .selectgroup-button{border:1px solid #2f374b}body[data-background-color=dark] .conversations .message-header{background:#1a2035;box-shadow:0 1px 1px 0 rgba(0,0,0,.07)}body[data-background-color=dark] .conversations .conversations-content{color:#575962;border-color:#2e364a}body[data-background-color=dark] .mail-wrapper .mail-content .inbox-body .email-list .email-list-item.unread{background:#1f283e!important}body[data-background-color=dark] .mail-wrapper .mail-content .inbox-body .email-list .email-list-item:hover{background:#171e2f!important}body[data-background-color=dark] .page-with-aside .page-aside .aside-nav .nav>li.active,body[data-background-color=dark] .page-with-aside .page-aside .aside-nav .nav>li:focus,body[data-background-color=dark] .page-with-aside .page-aside .aside-nav .nav>li:hover{background:rgba(0,0,0,.03)}body[data-background-color=dark] .page-with-aside .page-aside .aside-nav .nav>li.active>a{color:#b9babf!important}body[data-background-color=dark] .board{color:#575962}.bg-dark{background-color:#1a2035!important}.bg-dark2{background-color:#1f283e!important}.bg-primary{background-color:#1572e8!important}.bg-primary2{background-color:#1269db!important}.bg-secondary{background-color:#6861ce!important}.bg-secondary2{background-color:#5c55bf!important}.bg-info{background-color:#48abf7!important}.bg-info2{background-color:#3697e1!important}.bg-success{background-color:#31ce36!important}.bg-success2{background-color:#2bb930!important}.bg-warning{background-color:#ffad46!important}.bg-warning2{background-color:#ff9e27!important}.bg-danger{background-color:#f25961!important}.bg-danger2{background-color:#ea4d56!important}.bg-grey1{background:#f9fbfd!important}.bg-grey2{background:#f1f1f1}.bg-dark-gradient{background:#1f283e!important;background:-webkit-linear-gradient(legacy-direction(-45deg),#0a0b11,#1f283e)!important;background:linear-gradient(-45deg,#0a0b11,#1f283e)!important}.bg-primary-gradient{background:#1572e8!important;background:-webkit-linear-gradient(legacy-direction(-45deg),#06418e,#1572e8)!important;background:linear-gradient(-45deg,#06418e,#1572e8)!important}.bg-secondary-gradient{background:#6861ce!important;background:-webkit-linear-gradient(legacy-direction(-45deg),#2a20ac,#6861ce)!important;background:linear-gradient(-45deg,#2a20ac,#6861ce)!important}.bg-info-gradient{background:#48abf7!important;background:-webkit-linear-gradient(legacy-direction(-45deg),#0a5a97,#48abf7)!important;background:linear-gradient(-45deg,#0a5a97,#48abf7)!important}.bg-success-gradient{background:#31ce36!important;background:-webkit-linear-gradient(legacy-direction(-45deg),#179d08,#31ce36)!important;background:linear-gradient(-45deg,#179d08,#31ce36)!important}.bg-warning-gradient{background:#ffad46!important;background:-webkit-linear-gradient(legacy-direction(-45deg),#e1810b,#ffad46)!important;background:linear-gradient(-45deg,#e1810b,#ffad46)!important}.bg-danger-gradient{background:#f25961!important;background:-webkit-linear-gradient(legacy-direction(-45deg),#e80a15,#f25961)!important;background:linear-gradient(-45deg,#e80a15,#f25961)!important} \ No newline at end of file diff --git a/src/main/resources/static/assets/css/bootstrap.min.css b/src/main/resources/static/assets/css/bootstrap.min.css new file mode 100644 index 0000000..8826912 --- /dev/null +++ b/src/main/resources/static/assets/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::after,.was-validated .custom-file-input:valid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::after,.was-validated .custom-file-input:invalid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-dialog-centered::before{display:block;height:calc(100vh - (.5rem * 2));content:""}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-dialog-centered::before{height:calc(100vh - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/assets/css/custom.css b/src/main/resources/static/assets/css/custom.css new file mode 100644 index 0000000..b3de067 --- /dev/null +++ b/src/main/resources/static/assets/css/custom.css @@ -0,0 +1,26 @@ +.parent{; + height: 100%; + padding: 100px 0 0; + ox-sizing: border-box; + position: relative; +} + +.middle-container{ + height: 420px; + width: 320px; + margin-left: auto; + margin-right: auto; +} + +.line-display{ + display: inline-block; +} + +.link-block{ + height: 20px; + width: 80px; +} + +.left-block{ + margin-right:0; +} \ No newline at end of file diff --git a/src/main/resources/static/assets/css/demo.css b/src/main/resources/static/assets/css/demo.css new file mode 100644 index 0000000..55ad026 --- /dev/null +++ b/src/main/resources/static/assets/css/demo.css @@ -0,0 +1,305 @@ +.custom-template { + position: fixed; + top: 50%; + transform: translateY(-50%); + right: -325px; + width: 325px; + height: max-content; + display: block; + z-index: 1; + background: #ffffff; + transition: all .3s; + z-index: 1003; + box-shadow: -1px 1px 20px rgba(69, 65, 78, 0.15); + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + transition: all .5s; +} + +.custom-template.open { + right: 0px; +} + +.custom-template .custom-toggle { + position: absolute; + width: 45px; + height: 45px; + background: rgb(88, 103, 221); + top: 50%; + left: -45px; + transform: translateY(-50%); + display: flex; + align-items: center; + justify-content: center; + text-align: center; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + border-right: 1px solid #177dff; + cursor: pointer; + color: #ffffff; + box-shadow: -5px 5px 20px rgba(69, 65, 78, 0.21); +} + +.custom-template .custom-toggle i { + font-size: 20px; + animation: 1.3s spin linear infinite; +} + +.custom-template .title{ + padding: 15px; + text-align: left; + font-size: 16px; + font-weight: 600; + color: #ffffff; + border-top-left-radius: 5px; + border-bottom: 1px solid #ebedf2; + background: #5867dd; +} + +.custom-template .custom-content{ + padding: 20px 15px; + max-height: calc(100vh - 90px); + overflow: auto; +} + +.custom-template .switcher { + padding: 5px 0; +} + +.custom-template .switch-block h4 { + font-size: 13px; + font-weight: 600; + color: #444; + line-height: 1.3; + margin-bottom: 0; + text-transform: uppercase; +} + +.custom-template .btnSwitch { + margin-top: 20px; + margin-bottom: 25px; +} + +.custom-template .btnSwitch button { + border: 0px; + height: 20px; + width: 20px; + outline: 0; + margin-right: 10px; + margin-bottom: 10px; + cursor: pointer; + padding: 0; + border-radius: 50%; + border: 2px solid #eee; + position: relative; + transition: all .2s; +} + +.custom-template .btnSwitch button:hover{ + border-color: #0bf; +} + +.custom-template .btnSwitch button.selected{ + border-color: #0bf; +} + +.custom-template .img-pick { + padding: 4px; + min-height: 100px; + border-radius: 5px; + cursor: pointer; +} + +.custom-template .img-pick img { + height: 100%; + height: 100px; + width: 100%; + border-radius: 5px; + border: 2px solid transparent; +} + +.custom-template .img-pick:hover img, .custom-template .img-pick.active img{ + border-color: #177dff; +} + +.demo .btn, .demo .progress{ + margin-bottom: 15px !important; +} + +.demo .form-check-label, .demo .form-radio-label{ + margin-right: 15px; +} + +.demo .toggle, .demo .btn-group{ + margin-right: 15px; +} + +.demo #slider{ + margin-bottom: 15px; +} + +.table-typo tbody > tr > td{ + border-color: #fafafa; +} + +.table-typo tbody > tr > td:first-child{ + min-width: 200px; + vertical-align: bottom; +} + +.table-typo tbody > tr > td:first-child p{ + font-size: 14px; + color: #333; +} + +.demo-icon { + display: flex; + flex-direction: row; + align-items: center; + margin-bottom: 20px; + padding: 10px; + transition: all .2s; +} + +.demo-icon:hover{ + background-color: #f4f5f8; + border-radius: 3px; +} + +.demo-icon .icon-preview{ + font-size: 1.8rem; + margin-right: 10px; + line-height: 1; + color: #333439; +} + +body[data-background-color="dark"] .demo-icon .icon-preview { + color: #969696; +} + +.demo-icon .icon-class{ + font-weight: 300; + font-size: 13px; + color: #777; +} + +body[data-background-color="dark"] .demo-icon .icon-class { + color: #a9a8a8; +} + +.form-show-notify .form-control{ + margin-bottom: 15px; +} + +.form-show-notify label{ + padding-top: 0.65rem; +} + +.map-demo { + height: 300px; +} + +#instructions li{ + padding: 5px 0; +} + +.row-demo-grid{ + margin-bottom: 15px; +} + +.row-demo-grid [class^="col"]{ + text-align: center; +} + +.row-demo-grid [class^="col"] .card-body{ + background: #ddd; +} + +.btnSwitch button[data-color="white"] { + background-color: #fff; +} +.btnSwitch button[data-color="grey"] { + background-color: #f1f1f1; +} +.btnSwitch button[data-color="black"] { + background-color: #191919; +} +.btnSwitch button[data-color="dark"] { + background-color: #1a2035; +} +.btnSwitch button[data-color="blue"] { + background-color: #1572E8; +} +.btnSwitch button[data-color="purple"] { + background-color: #6861CE; +} +.btnSwitch button[data-color="light-blue"] { + background-color: #48ABF7; +} +.btnSwitch button[data-color="green"] { + background-color: #31CE36; +} +.btnSwitch button[data-color="orange"] { + background-color: #FFAD46; +} +.btnSwitch button[data-color="red"] { + background-color: #F25961; +} +.btnSwitch button[data-color="dark2"] { + background-color: #1f283e; +} +.btnSwitch button[data-color="blue2"] { + background-color: #1269DB; +} +.btnSwitch button[data-color="purple2"] { + background-color: #5C55BF; +} +.btnSwitch button[data-color="light-blue2"] { + background-color: #3697E1; +} +.btnSwitch button[data-color="green2"] { + background-color: #2BB930; +} +.btnSwitch button[data-color="orange2"] { + background-color: #FF9E27; +} +.btnSwitch button[data-color="red2"] { + background-color: #EA4d56; +} +.btnSwitch button[data-color="bg1"] { + background-color: #fafafa; +} +.btnSwitch button[data-color="bg2"] { + background-color: #fff; +} +.btnSwitch button[data-color="bg3"] { + background-color: #f1f1f1; +} + +@media screen and (max-width: 550px){ + .table-typo tr td{ + display: flex; + align-items: center; + word-break: break-word; + } + + .table-typo tr td:first-child p{ + margin-bottom: 0px; + } +} + +@media screen and (max-width: 576px){ + .custom-template .custom-content { + overflow: auto; + } + .form-show-notify > .text-right, .form-show-validation > .text-right { + text-align: left !important; + } +} + +@media screen and (max-width: 400px) { + .custom-template { + width: 85% !important; + right: -85%; + } +} \ No newline at end of file diff --git a/src/main/resources/static/assets/css/fonts.css b/src/main/resources/static/assets/css/fonts.css new file mode 100644 index 0000000..2d6a729 --- /dev/null +++ b/src/main/resources/static/assets/css/fonts.css @@ -0,0 +1,6479 @@ +/* Flaticon */ +@font-face { + font-family: "Flaticon"; + src: url("../fonts/flaticon/Flaticon.eot"); + src: url("../fonts/flaticon/Flaticon.eot?#iefix") format("embedded-opentype"), + url("../fonts/flaticon/Flaticon.woff") format("woff"), + url("../fonts/flaticon/Flaticon.ttf") format("truetype"), + url("../fonts/flaticon/Flaticon.svg#Flaticon") format("svg"); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "Flaticon"; + src: url("../fonts/flaticon/Flaticon.svg#Flaticon") format("svg"); + } +} + +/* Flaticon */ + +/* +Flaticon icon font: Flaticon +Creation date: 13/03/2018 03:24 +*/ +[class^="flaticon-"]:before, +[class*=" flaticon-"]:before { + font-family: Flaticon; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-rendering: optimizeLegibility; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; +} + +.fi:before { + display: inline-block; + font-family: "Flaticon"; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-rendering: optimizeLegibility; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; +} + +.flaticon-delivery-truck:before { + content: "\f100"; +} + +.flaticon-shopping-bag:before { + content: "\f101"; +} + +.flaticon-box-3:before { + content: "\f102"; +} + +.flaticon-box-2:before { + content: "\f103"; +} + +.flaticon-box-1:before { + content: "\f104"; +} + +.flaticon-laptop:before { + content: "\f105"; +} + +.flaticon-coffee-cup:before { + content: "\f106"; +} + +.flaticon-user-6:before { + content: "\f107"; +} + +.flaticon-user-5:before { + content: "\f108"; +} + +.flaticon-remove-user-1:before { + content: "\f109"; +} + +.flaticon-customer-support:before { + content: "\f10a"; +} + +.flaticon-user-4:before { + content: "\f10b"; +} + +.flaticon-user-3:before { + content: "\f10c"; +} + +.flaticon-user-2:before { + content: "\f10d"; +} + +.flaticon-remove-user:before { + content: "\f10e"; +} + +.flaticon-add-user:before { + content: "\f10f"; +} + +.flaticon-tea-cup:before { + content: "\f110"; +} + +.flaticon-pen:before { + content: "\f111"; +} + +.flaticon-desk:before { + content: "\f112"; +} + +.flaticon-ruler:before { + content: "\f113"; +} + +.flaticon-pencil:before { + content: "\f114"; +} + +.flaticon-analytics:before { + content: "\f115"; +} + +.flaticon-google-plus:before { + content: "\f116"; +} + +.flaticon-dribbble:before { + content: "\f117"; +} + +.flaticon-whatsapp:before { + content: "\f118"; +} + +.flaticon-twitter:before { + content: "\f119"; +} + +.flaticon-behance:before { + content: "\f11a"; +} + +.flaticon-instagram:before { + content: "\f11b"; +} + +.flaticon-android:before { + content: "\f11c"; +} + +.flaticon-apple:before { + content: "\f11d"; +} + +.flaticon-windows:before { + content: "\f11e"; +} + +.flaticon-pinterest:before { + content: "\f11f"; +} + +.flaticon-youtube:before { + content: "\f120"; +} + +.flaticon-paypal:before { + content: "\f121"; +} + +.flaticon-linkedin:before { + content: "\f122"; +} + +.flaticon-facebook:before { + content: "\f123"; +} + +.flaticon-lock-1:before { + content: "\f124"; +} + +.flaticon-lock:before { + content: "\f125"; +} + +.flaticon-profile-1:before { + content: "\f126"; +} + +.flaticon-profile:before { + content: "\f127"; +} + +.flaticon-user-1:before { + content: "\f128"; +} + +.flaticon-user:before { + content: "\f129"; +} + +.flaticon-users:before { + content: "\f12a"; +} + +.flaticon-message:before { + content: "\f12b"; +} + +.flaticon-placeholder-1:before { + content: "\f12c"; +} + +.flaticon-location:before { + content: "\f12d"; +} + +.flaticon-arrows-2:before { + content: "\f12e"; +} + +.flaticon-technology-2:before { + content: "\f12f"; +} + +.flaticon-multimedia-2:before { + content: "\f130"; +} + +.flaticon-multimedia-1:before { + content: "\f131"; +} + +.flaticon-close:before { + content: "\f132"; +} + +.flaticon-home:before { + content: "\f133"; +} + +.flaticon-circle:before { + content: "\f134"; +} + +.flaticon-arrow:before { + content: "\f135"; +} + +.flaticon-mark-1:before { + content: "\f136"; +} + +.flaticon-mark:before { + content: "\f137"; +} + +.flaticon-shapes-1:before { + content: "\f138"; +} + +.flaticon-search-2:before { + content: "\f139"; +} + +.flaticon-interface-7:before { + content: "\f13a"; +} + +.flaticon-suitcase:before { + content: "\f13b"; +} + +.flaticon-chain-1:before { + content: "\f13c"; +} + +.flaticon-chain:before { + content: "\f13d"; +} + +.flaticon-agenda-1:before { + content: "\f13e"; +} + +.flaticon-interface-6:before { + content: "\f13f"; +} + +.flaticon-calendar:before { + content: "\f140"; +} + +.flaticon-list:before { + content: "\f141"; +} + +.flaticon-file-1:before { + content: "\f142"; +} + +.flaticon-file:before { + content: "\f143"; +} + +.flaticon-interface-5:before { + content: "\f144"; +} + +.flaticon-folder:before { + content: "\f145"; +} + +.flaticon-stopwatch:before { + content: "\f146"; +} + +.flaticon-time:before { + content: "\f147"; +} + +.flaticon-clock-1:before { + content: "\f148"; +} + +.flaticon-search-1:before { + content: "\f149"; +} + +.flaticon-alarm-1:before { + content: "\f14a"; +} + +.flaticon-alarm:before { + content: "\f14b"; +} + +.flaticon-present:before { + content: "\f14c"; +} + +.flaticon-layers-1:before { + content: "\f14d"; +} + +.flaticon-settings:before { + content: "\f14e"; +} + +.flaticon-attachment:before { + content: "\f14f"; +} + +.flaticon-gestures:before { + content: "\f150"; +} + +.flaticon-tool:before { + content: "\f151"; +} + +.flaticon-interface-4:before { + content: "\f152"; +} + +.flaticon-interface-3:before { + content: "\f153"; +} + +.flaticon-agenda:before { + content: "\f154"; +} + +.flaticon-shapes:before { + content: "\f155"; +} + +.flaticon-symbol-1:before { + content: "\f156"; +} + +.flaticon-symbol:before { + content: "\f157"; +} + +.flaticon-interface-2:before { + content: "\f158"; +} + +.flaticon-layers:before { + content: "\f159"; +} + +.flaticon-clock:before { + content: "\f15a"; +} + +.flaticon-web-1:before { + content: "\f15b"; +} + +.flaticon-internet:before { + content: "\f15c"; +} + +.flaticon-placeholder:before { + content: "\f15d"; +} + +.flaticon-signs-3:before { + content: "\f15e"; +} + +.flaticon-star-1:before { + content: "\f15f"; +} + +.flaticon-web:before { + content: "\f160"; +} + +.flaticon-star:before { + content: "\f161"; +} + +.flaticon-like-1:before { + content: "\f162"; +} + +.flaticon-like:before { + content: "\f163"; +} + +.flaticon-cloud:before { + content: "\f164"; +} + +.flaticon-database:before { + content: "\f165"; +} + +.flaticon-technology-1:before { + content: "\f166"; +} + +.flaticon-idea:before { + content: "\f167"; +} + +.flaticon-search:before { + content: "\f168"; +} + +.flaticon-wifi:before { + content: "\f169"; +} + +.flaticon-hands-1:before { + content: "\f16a"; +} + +.flaticon-hands:before { + content: "\f16b"; +} + +.flaticon-bars-2:before { + content: "\f16c"; +} + +.flaticon-arrows-1:before { + content: "\f16d"; +} + +.flaticon-interface-1:before { + content: "\f16e"; +} + +.flaticon-network:before { + content: "\f16f"; +} + +.flaticon-share-1:before { + content: "\f170"; +} + +.flaticon-share:before { + content: "\f171"; +} + +.flaticon-bars-1:before { + content: "\f172"; +} + +.flaticon-cross-1:before { + content: "\f173"; +} + +.flaticon-line-1:before { + content: "\f174"; +} + +.flaticon-signs-2:before { + content: "\f175"; +} + +.flaticon-check:before { + content: "\f176"; +} + +.flaticon-technology:before { + content: "\f177"; +} + +.flaticon-bars:before { + content: "\f178"; +} + +.flaticon-cross:before { + content: "\f179"; +} + +.flaticon-add:before { + content: "\f17a"; +} + +.flaticon-power:before { + content: "\f17b"; +} + +.flaticon-signs-1:before { + content: "\f17c"; +} + +.flaticon-round:before { + content: "\f17d"; +} + +.flaticon-exclamation:before { + content: "\f17e"; +} + +.flaticon-success:before { + content: "\f17f"; +} + +.flaticon-error:before { + content: "\f180"; +} + +.flaticon-line:before { + content: "\f181"; +} + +.flaticon-plus:before { + content: "\f182"; +} + +.flaticon-interface:before { + content: "\f183"; +} + +.flaticon-signs:before { + content: "\f184"; +} + +.flaticon-play-button-1:before { + content: "\f185"; +} + +.flaticon-play-button:before { + content: "\f186"; +} + +.flaticon-music-player:before { + content: "\f187"; +} + +.flaticon-medical:before { + content: "\f188"; +} + +.flaticon-photo-camera:before { + content: "\f189"; +} + +.flaticon-picture:before { + content: "\f18a"; +} + +.flaticon-multimedia:before { + content: "\f18b"; +} + +.flaticon-game-controller:before { + content: "\f18c"; +} + +.flaticon-imac:before { + content: "\f18d"; +} + +.flaticon-paint-palette:before { + content: "\f18e"; +} + +.flaticon-envelope-3:before { + content: "\f18f"; +} + +.flaticon-envelope-2:before { + content: "\f190"; +} + +.flaticon-envelope-1:before { + content: "\f191"; +} + +.flaticon-envelope:before { + content: "\f192"; +} + +.flaticon-mailbox:before { + content: "\f193"; +} + +.flaticon-inbox:before { + content: "\f194"; +} + +.flaticon-chat-8:before { + content: "\f195"; +} + +.flaticon-chat-7:before { + content: "\f196"; +} + +.flaticon-chat-6:before { + content: "\f197"; +} + +.flaticon-chat-5:before { + content: "\f198"; +} + +.flaticon-chat-4:before { + content: "\f199"; +} + +.flaticon-chat-3:before { + content: "\f19a"; +} + +.flaticon-chat-2:before { + content: "\f19b"; +} + +.flaticon-chat-1:before { + content: "\f19c"; +} + +.flaticon-chat:before { + content: "\f19d"; +} + +.flaticon-archive:before { + content: "\f19e"; +} + +.flaticon-diagram:before { + content: "\f19f"; +} + +.flaticon-graph-2:before { + content: "\f1a0"; +} + +.flaticon-graph-1:before { + content: "\f1a1"; +} + +.flaticon-graph:before { + content: "\f1a2"; +} + +.flaticon-chart-pie:before { + content: "\f1a3"; +} + +.flaticon-presentation:before { + content: "\f1a4"; +} + +.flaticon-store:before { + content: "\f1a5"; +} + +.flaticon-coins:before { + content: "\f1a6"; +} + +.flaticon-credit-card-1:before { + content: "\f1a7"; +} + +.flaticon-credit-card:before { + content: "\f1a8"; +} + +.flaticon-cart-1:before { + content: "\f1a9"; +} + +.flaticon-cart:before { + content: "\f1aa"; +} + +.flaticon-price-tag:before { + content: "\f1ab"; +} + +.flaticon-box:before { + content: "\f1ac"; +} + +.flaticon-right-arrow-4:before { + content: "\f1ad"; +} + +.flaticon-left-arrow-4:before { + content: "\f1ae"; +} + +.flaticon-up-arrow-3:before { + content: "\f1af"; +} + +.flaticon-download-1:before { + content: "\f1b0"; +} + +.flaticon-down-arrow-3:before { + content: "\f1b1"; +} + +.flaticon-up-arrow-2:before { + content: "\f1b2"; +} + +.flaticon-left-arrow-3:before { + content: "\f1b3"; +} + +.flaticon-right-arrow-3:before { + content: "\f1b4"; +} + +.flaticon-down-arrow-2:before { + content: "\f1b5"; +} + +.flaticon-arrows:before { + content: "\f1b6"; +} + +.flaticon-left-arrow-2:before { + content: "\f1b7"; +} + +.flaticon-right-arrow-2:before { + content: "\f1b8"; +} + +.flaticon-upward:before { + content: "\f1b9"; +} + +.flaticon-download:before { + content: "\f1ba"; +} + +.flaticon-back:before { + content: "\f1bb"; +} + +.flaticon-next:before { + content: "\f1bc"; +} + +.flaticon-up-arrow-1:before { + content: "\f1bd"; +} + +.flaticon-down-arrow-1:before { + content: "\f1be"; +} + +.flaticon-left-arrow-1:before { + content: "\f1bf"; +} + +.flaticon-right-arrow-1:before { + content: "\f1c0"; +} + +.flaticon-up-arrow:before { + content: "\f1c1"; +} + +.flaticon-down-arrow:before { + content: "\f1c2"; +} + +.flaticon-left-arrow:before { + content: "\f1c3"; +} + +.flaticon-right-arrow:before { + content: "\f1c4"; +} + +.flaticon-expand:before { + content: "\f1c5"; +} + +.flaticon-repeat:before { + content: "\f1c6"; +} + +/*! + * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa, .fas, .far, .fal, .fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; +} + +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -.0667em; +} + +.fa-xs { + font-size: .75em; +} + +.fa-sm { + font-size: .875em; +} + +.fa-1x { + font-size: 1em; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-6x { + font-size: 6em; +} + +.fa-7x { + font-size: 7em; +} + +.fa-8x { + font-size: 8em; +} + +.fa-9x { + font-size: 9em; +} + +.fa-10x { + font-size: 10em; +} + +.fa-fw { + text-align: center; + width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; +} + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; +} + +.fa-pull-left { + float: left; +} + +.fa-pull-right { + float: right; +} + +.fa.fa-pull-left, .fas.fa-pull-left, .far.fa-pull-left, .fal.fa-pull-left, .fab.fa-pull-left { + margin-right: .3em; +} + +.fa.fa-pull-right, .fas.fa-pull-right, .far.fa-pull-right, .fal.fa-pull-right, .fab.fa-pull-right { + margin-left: .3em; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + transform: rotate(270deg); +} + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + transform: scale(1, -1); +} + +.fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); +} + +:root .fa-rotate-90, :root .fa-rotate-180, :root .fa-rotate-270, :root .fa-flip-horizontal, :root .fa-flip-vertical { + -webkit-filter: none; + filter: none; +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2em; +} + +.fa-stack-1x, .fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: #fff; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-500px:before { + content: "\f26e"; +} + +.fa-accessible-icon:before { + content: "\f368"; +} + +.fa-accusoft:before { + content: "\f369"; +} + +.fa-address-book:before { + content: "\f2b9"; +} + +.fa-address-card:before { + content: "\f2bb"; +} + +.fa-adjust:before { + content: "\f042"; +} + +.fa-adn:before { + content: "\f170"; +} + +.fa-adversal:before { + content: "\f36a"; +} + +.fa-affiliatetheme:before { + content: "\f36b"; +} + +.fa-air-freshener:before { + content: "\f5d0"; +} + +.fa-algolia:before { + content: "\f36c"; +} + +.fa-align-center:before { + content: "\f037"; +} + +.fa-align-justify:before { + content: "\f039"; +} + +.fa-align-left:before { + content: "\f036"; +} + +.fa-align-right:before { + content: "\f038"; +} + +.fa-allergies:before { + content: "\f461"; +} + +.fa-amazon:before { + content: "\f270"; +} + +.fa-amazon-pay:before { + content: "\f42c"; +} + +.fa-ambulance:before { + content: "\f0f9"; +} + +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} + +.fa-amilia:before { + content: "\f36d"; +} + +.fa-anchor:before { + content: "\f13d"; +} + +.fa-android:before { + content: "\f17b"; +} + +.fa-angellist:before { + content: "\f209"; +} + +.fa-angle-double-down:before { + content: "\f103"; +} + +.fa-angle-double-left:before { + content: "\f100"; +} + +.fa-angle-double-right:before { + content: "\f101"; +} + +.fa-angle-double-up:before { + content: "\f102"; +} + +.fa-angle-down:before { + content: "\f107"; +} + +.fa-angle-left:before { + content: "\f104"; +} + +.fa-angle-right:before { + content: "\f105"; +} + +.fa-angle-up:before { + content: "\f106"; +} + +.fa-angry:before { + content: "\f556"; +} + +.fa-angrycreative:before { + content: "\f36e"; +} + +.fa-angular:before { + content: "\f420"; +} + +.fa-app-store:before { + content: "\f36f"; +} + +.fa-app-store-ios:before { + content: "\f370"; +} + +.fa-apper:before { + content: "\f371"; +} + +.fa-apple:before { + content: "\f179"; +} + +.fa-apple-alt:before { + content: "\f5d1"; +} + +.fa-apple-pay:before { + content: "\f415"; +} + +.fa-archive:before { + content: "\f187"; +} + +.fa-archway:before { + content: "\f557"; +} + +.fa-arrow-alt-circle-down:before { + content: "\f358"; +} + +.fa-arrow-alt-circle-left:before { + content: "\f359"; +} + +.fa-arrow-alt-circle-right:before { + content: "\f35a"; +} + +.fa-arrow-alt-circle-up:before { + content: "\f35b"; +} + +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +.fa-arrow-down:before { + content: "\f063"; +} + +.fa-arrow-left:before { + content: "\f060"; +} + +.fa-arrow-right:before { + content: "\f061"; +} + +.fa-arrow-up:before { + content: "\f062"; +} + +.fa-arrows-alt:before { + content: "\f0b2"; +} + +.fa-arrows-alt-h:before { + content: "\f337"; +} + +.fa-arrows-alt-v:before { + content: "\f338"; +} + +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} + +.fa-asterisk:before { + content: "\f069"; +} + +.fa-asymmetrik:before { + content: "\f372"; +} + +.fa-at:before { + content: "\f1fa"; +} + +.fa-atlas:before { + content: "\f558"; +} + +.fa-atom:before { + content: "\f5d2"; +} + +.fa-audible:before { + content: "\f373"; +} + +.fa-audio-description:before { + content: "\f29e"; +} + +.fa-autoprefixer:before { + content: "\f41c"; +} + +.fa-avianex:before { + content: "\f374"; +} + +.fa-aviato:before { + content: "\f421"; +} + +.fa-award:before { + content: "\f559"; +} + +.fa-aws:before { + content: "\f375"; +} + +.fa-backspace:before { + content: "\f55a"; +} + +.fa-backward:before { + content: "\f04a"; +} + +.fa-balance-scale:before { + content: "\f24e"; +} + +.fa-ban:before { + content: "\f05e"; +} + +.fa-band-aid:before { + content: "\f462"; +} + +.fa-bandcamp:before { + content: "\f2d5"; +} + +.fa-barcode:before { + content: "\f02a"; +} + +.fa-bars:before { + content: "\f0c9"; +} + +.fa-baseball-ball:before { + content: "\f433"; +} + +.fa-basketball-ball:before { + content: "\f434"; +} + +.fa-bath:before { + content: "\f2cd"; +} + +.fa-battery-empty:before { + content: "\f244"; +} + +.fa-battery-full:before { + content: "\f240"; +} + +.fa-battery-half:before { + content: "\f242"; +} + +.fa-battery-quarter:before { + content: "\f243"; +} + +.fa-battery-three-quarters:before { + content: "\f241"; +} + +.fa-bed:before { + content: "\f236"; +} + +.fa-beer:before { + content: "\f0fc"; +} + +.fa-behance:before { + content: "\f1b4"; +} + +.fa-behance-square:before { + content: "\f1b5"; +} + +.fa-bell:before { + content: "\f0f3"; +} + +.fa-bell-slash:before { + content: "\f1f6"; +} + +.fa-bezier-curve:before { + content: "\f55b"; +} + +.fa-bicycle:before { + content: "\f206"; +} + +.fa-bimobject:before { + content: "\f378"; +} + +.fa-binoculars:before { + content: "\f1e5"; +} + +.fa-birthday-cake:before { + content: "\f1fd"; +} + +.fa-bitbucket:before { + content: "\f171"; +} + +.fa-bitcoin:before { + content: "\f379"; +} + +.fa-bity:before { + content: "\f37a"; +} + +.fa-black-tie:before { + content: "\f27e"; +} + +.fa-blackberry:before { + content: "\f37b"; +} + +.fa-blender:before { + content: "\f517"; +} + +.fa-blind:before { + content: "\f29d"; +} + +.fa-blogger:before { + content: "\f37c"; +} + +.fa-blogger-b:before { + content: "\f37d"; +} + +.fa-bluetooth:before { + content: "\f293"; +} + +.fa-bluetooth-b:before { + content: "\f294"; +} + +.fa-bold:before { + content: "\f032"; +} + +.fa-bolt:before { + content: "\f0e7"; +} + +.fa-bomb:before { + content: "\f1e2"; +} + +.fa-bone:before { + content: "\f5d7"; +} + +.fa-bong:before { + content: "\f55c"; +} + +.fa-book:before { + content: "\f02d"; +} + +.fa-book-open:before { + content: "\f518"; +} + +.fa-book-reader:before { + content: "\f5da"; +} + +.fa-bookmark:before { + content: "\f02e"; +} + +.fa-bowling-ball:before { + content: "\f436"; +} + +.fa-box:before { + content: "\f466"; +} + +.fa-box-open:before { + content: "\f49e"; +} + +.fa-boxes:before { + content: "\f468"; +} + +.fa-braille:before { + content: "\f2a1"; +} + +.fa-brain:before { + content: "\f5dc"; +} + +.fa-briefcase:before { + content: "\f0b1"; +} + +.fa-briefcase-medical:before { + content: "\f469"; +} + +.fa-broadcast-tower:before { + content: "\f519"; +} + +.fa-broom:before { + content: "\f51a"; +} + +.fa-brush:before { + content: "\f55d"; +} + +.fa-btc:before { + content: "\f15a"; +} + +.fa-bug:before { + content: "\f188"; +} + +.fa-building:before { + content: "\f1ad"; +} + +.fa-bullhorn:before { + content: "\f0a1"; +} + +.fa-bullseye:before { + content: "\f140"; +} + +.fa-burn:before { + content: "\f46a"; +} + +.fa-buromobelexperte:before { + content: "\f37f"; +} + +.fa-bus:before { + content: "\f207"; +} + +.fa-bus-alt:before { + content: "\f55e"; +} + +.fa-buysellads:before { + content: "\f20d"; +} + +.fa-calculator:before { + content: "\f1ec"; +} + +.fa-calendar:before { + content: "\f133"; +} + +.fa-calendar-alt:before { + content: "\f073"; +} + +.fa-calendar-check:before { + content: "\f274"; +} + +.fa-calendar-minus:before { + content: "\f272"; +} + +.fa-calendar-plus:before { + content: "\f271"; +} + +.fa-calendar-times:before { + content: "\f273"; +} + +.fa-camera:before { + content: "\f030"; +} + +.fa-camera-retro:before { + content: "\f083"; +} + +.fa-cannabis:before { + content: "\f55f"; +} + +.fa-capsules:before { + content: "\f46b"; +} + +.fa-car:before { + content: "\f1b9"; +} + +.fa-car-alt:before { + content: "\f5de"; +} + +.fa-car-battery:before { + content: "\f5df"; +} + +.fa-car-crash:before { + content: "\f5e1"; +} + +.fa-car-side:before { + content: "\f5e4"; +} + +.fa-caret-down:before { + content: "\f0d7"; +} + +.fa-caret-left:before { + content: "\f0d9"; +} + +.fa-caret-right:before { + content: "\f0da"; +} + +.fa-caret-square-down:before { + content: "\f150"; +} + +.fa-caret-square-left:before { + content: "\f191"; +} + +.fa-caret-square-right:before { + content: "\f152"; +} + +.fa-caret-square-up:before { + content: "\f151"; +} + +.fa-caret-up:before { + content: "\f0d8"; +} + +.fa-cart-arrow-down:before { + content: "\f218"; +} + +.fa-cart-plus:before { + content: "\f217"; +} + +.fa-cc-amazon-pay:before { + content: "\f42d"; +} + +.fa-cc-amex:before { + content: "\f1f3"; +} + +.fa-cc-apple-pay:before { + content: "\f416"; +} + +.fa-cc-diners-club:before { + content: "\f24c"; +} + +.fa-cc-discover:before { + content: "\f1f2"; +} + +.fa-cc-jcb:before { + content: "\f24b"; +} + +.fa-cc-mastercard:before { + content: "\f1f1"; +} + +.fa-cc-paypal:before { + content: "\f1f4"; +} + +.fa-cc-stripe:before { + content: "\f1f5"; +} + +.fa-cc-visa:before { + content: "\f1f0"; +} + +.fa-centercode:before { + content: "\f380"; +} + +.fa-certificate:before { + content: "\f0a3"; +} + +.fa-chalkboard:before { + content: "\f51b"; +} + +.fa-chalkboard-teacher:before { + content: "\f51c"; +} + +.fa-charging-station:before { + content: "\f5e7"; +} + +.fa-chart-area:before { + content: "\f1fe"; +} + +.fa-chart-bar:before { + content: "\f080"; +} + +.fa-chart-line:before { + content: "\f201"; +} + +.fa-chart-pie:before { + content: "\f200"; +} + +.fa-check:before { + content: "\f00c"; +} + +.fa-check-circle:before { + content: "\f058"; +} + +.fa-check-double:before { + content: "\f560"; +} + +.fa-check-square:before { + content: "\f14a"; +} + +.fa-chess:before { + content: "\f439"; +} + +.fa-chess-bishop:before { + content: "\f43a"; +} + +.fa-chess-board:before { + content: "\f43c"; +} + +.fa-chess-king:before { + content: "\f43f"; +} + +.fa-chess-knight:before { + content: "\f441"; +} + +.fa-chess-pawn:before { + content: "\f443"; +} + +.fa-chess-queen:before { + content: "\f445"; +} + +.fa-chess-rook:before { + content: "\f447"; +} + +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +.fa-chevron-circle-left:before { + content: "\f137"; +} + +.fa-chevron-circle-right:before { + content: "\f138"; +} + +.fa-chevron-circle-up:before { + content: "\f139"; +} + +.fa-chevron-down:before { + content: "\f078"; +} + +.fa-chevron-left:before { + content: "\f053"; +} + +.fa-chevron-right:before { + content: "\f054"; +} + +.fa-chevron-up:before { + content: "\f077"; +} + +.fa-child:before { + content: "\f1ae"; +} + +.fa-chrome:before { + content: "\f268"; +} + +.fa-church:before { + content: "\f51d"; +} + +.fa-circle:before { + content: "\f111"; +} + +.fa-circle-notch:before { + content: "\f1ce"; +} + +.fa-clipboard:before { + content: "\f328"; +} + +.fa-clipboard-check:before { + content: "\f46c"; +} + +.fa-clipboard-list:before { + content: "\f46d"; +} + +.fa-clock:before { + content: "\f017"; +} + +.fa-clone:before { + content: "\f24d"; +} + +.fa-closed-captioning:before { + content: "\f20a"; +} + +.fa-cloud:before { + content: "\f0c2"; +} + +.fa-cloud-download-alt:before { + content: "\f381"; +} + +.fa-cloud-upload-alt:before { + content: "\f382"; +} + +.fa-cloudscale:before { + content: "\f383"; +} + +.fa-cloudsmith:before { + content: "\f384"; +} + +.fa-cloudversify:before { + content: "\f385"; +} + +.fa-cocktail:before { + content: "\f561"; +} + +.fa-code:before { + content: "\f121"; +} + +.fa-code-branch:before { + content: "\f126"; +} + +.fa-codepen:before { + content: "\f1cb"; +} + +.fa-codiepie:before { + content: "\f284"; +} + +.fa-coffee:before { + content: "\f0f4"; +} + +.fa-cog:before { + content: "\f013"; +} + +.fa-cogs:before { + content: "\f085"; +} + +.fa-coins:before { + content: "\f51e"; +} + +.fa-columns:before { + content: "\f0db"; +} + +.fa-comment:before { + content: "\f075"; +} + +.fa-comment-alt:before { + content: "\f27a"; +} + +.fa-comment-dots:before { + content: "\f4ad"; +} + +.fa-comment-slash:before { + content: "\f4b3"; +} + +.fa-comments:before { + content: "\f086"; +} + +.fa-compact-disc:before { + content: "\f51f"; +} + +.fa-compass:before { + content: "\f14e"; +} + +.fa-compress:before { + content: "\f066"; +} + +.fa-concierge-bell:before { + content: "\f562"; +} + +.fa-connectdevelop:before { + content: "\f20e"; +} + +.fa-contao:before { + content: "\f26d"; +} + +.fa-cookie:before { + content: "\f563"; +} + +.fa-cookie-bite:before { + content: "\f564"; +} + +.fa-copy:before { + content: "\f0c5"; +} + +.fa-copyright:before { + content: "\f1f9"; +} + +.fa-couch:before { + content: "\f4b8"; +} + +.fa-cpanel:before { + content: "\f388"; +} + +.fa-creative-commons:before { + content: "\f25e"; +} + +.fa-creative-commons-by:before { + content: "\f4e7"; +} + +.fa-creative-commons-nc:before { + content: "\f4e8"; +} + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; +} + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; +} + +.fa-creative-commons-nd:before { + content: "\f4eb"; +} + +.fa-creative-commons-pd:before { + content: "\f4ec"; +} + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; +} + +.fa-creative-commons-remix:before { + content: "\f4ee"; +} + +.fa-creative-commons-sa:before { + content: "\f4ef"; +} + +.fa-creative-commons-sampling:before { + content: "\f4f0"; +} + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; +} + +.fa-creative-commons-share:before { + content: "\f4f2"; +} + +.fa-credit-card:before { + content: "\f09d"; +} + +.fa-crop:before { + content: "\f125"; +} + +.fa-crop-alt:before { + content: "\f565"; +} + +.fa-crosshairs:before { + content: "\f05b"; +} + +.fa-crow:before { + content: "\f520"; +} + +.fa-crown:before { + content: "\f521"; +} + +.fa-css3:before { + content: "\f13c"; +} + +.fa-css3-alt:before { + content: "\f38b"; +} + +.fa-cube:before { + content: "\f1b2"; +} + +.fa-cubes:before { + content: "\f1b3"; +} + +.fa-cut:before { + content: "\f0c4"; +} + +.fa-cuttlefish:before { + content: "\f38c"; +} + +.fa-d-and-d:before { + content: "\f38d"; +} + +.fa-dashcube:before { + content: "\f210"; +} + +.fa-database:before { + content: "\f1c0"; +} + +.fa-deaf:before { + content: "\f2a4"; +} + +.fa-delicious:before { + content: "\f1a5"; +} + +.fa-deploydog:before { + content: "\f38e"; +} + +.fa-deskpro:before { + content: "\f38f"; +} + +.fa-desktop:before { + content: "\f108"; +} + +.fa-deviantart:before { + content: "\f1bd"; +} + +.fa-diagnoses:before { + content: "\f470"; +} + +.fa-dice:before { + content: "\f522"; +} + +.fa-dice-five:before { + content: "\f523"; +} + +.fa-dice-four:before { + content: "\f524"; +} + +.fa-dice-one:before { + content: "\f525"; +} + +.fa-dice-six:before { + content: "\f526"; +} + +.fa-dice-three:before { + content: "\f527"; +} + +.fa-dice-two:before { + content: "\f528"; +} + +.fa-digg:before { + content: "\f1a6"; +} + +.fa-digital-ocean:before { + content: "\f391"; +} + +.fa-digital-tachograph:before { + content: "\f566"; +} + +.fa-directions:before { + content: "\f5eb"; +} + +.fa-discord:before { + content: "\f392"; +} + +.fa-discourse:before { + content: "\f393"; +} + +.fa-divide:before { + content: "\f529"; +} + +.fa-dizzy:before { + content: "\f567"; +} + +.fa-dna:before { + content: "\f471"; +} + +.fa-dochub:before { + content: "\f394"; +} + +.fa-docker:before { + content: "\f395"; +} + +.fa-dollar-sign:before { + content: "\f155"; +} + +.fa-dolly:before { + content: "\f472"; +} + +.fa-dolly-flatbed:before { + content: "\f474"; +} + +.fa-donate:before { + content: "\f4b9"; +} + +.fa-door-closed:before { + content: "\f52a"; +} + +.fa-door-open:before { + content: "\f52b"; +} + +.fa-dot-circle:before { + content: "\f192"; +} + +.fa-dove:before { + content: "\f4ba"; +} + +.fa-download:before { + content: "\f019"; +} + +.fa-draft2digital:before { + content: "\f396"; +} + +.fa-drafting-compass:before { + content: "\f568"; +} + +.fa-draw-polygon:before { + content: "\f5ee"; +} + +.fa-dribbble:before { + content: "\f17d"; +} + +.fa-dribbble-square:before { + content: "\f397"; +} + +.fa-dropbox:before { + content: "\f16b"; +} + +.fa-drum:before { + content: "\f569"; +} + +.fa-drum-steelpan:before { + content: "\f56a"; +} + +.fa-drupal:before { + content: "\f1a9"; +} + +.fa-dumbbell:before { + content: "\f44b"; +} + +.fa-dyalog:before { + content: "\f399"; +} + +.fa-earlybirds:before { + content: "\f39a"; +} + +.fa-ebay:before { + content: "\f4f4"; +} + +.fa-edge:before { + content: "\f282"; +} + +.fa-edit:before { + content: "\f044"; +} + +.fa-eject:before { + content: "\f052"; +} + +.fa-elementor:before { + content: "\f430"; +} + +.fa-ellipsis-h:before { + content: "\f141"; +} + +.fa-ellipsis-v:before { + content: "\f142"; +} + +.fa-ello:before { + content: "\f5f1"; +} + +.fa-ember:before { + content: "\f423"; +} + +.fa-empire:before { + content: "\f1d1"; +} + +.fa-envelope:before { + content: "\f0e0"; +} + +.fa-envelope-open:before { + content: "\f2b6"; +} + +.fa-envelope-square:before { + content: "\f199"; +} + +.fa-envira:before { + content: "\f299"; +} + +.fa-equals:before { + content: "\f52c"; +} + +.fa-eraser:before { + content: "\f12d"; +} + +.fa-erlang:before { + content: "\f39d"; +} + +.fa-ethereum:before { + content: "\f42e"; +} + +.fa-etsy:before { + content: "\f2d7"; +} + +.fa-euro-sign:before { + content: "\f153"; +} + +.fa-exchange-alt:before { + content: "\f362"; +} + +.fa-exclamation:before { + content: "\f12a"; +} + +.fa-exclamation-circle:before { + content: "\f06a"; +} + +.fa-exclamation-triangle:before { + content: "\f071"; +} + +.fa-expand:before { + content: "\f065"; +} + +.fa-expand-arrows-alt:before { + content: "\f31e"; +} + +.fa-expeditedssl:before { + content: "\f23e"; +} + +.fa-external-link-alt:before { + content: "\f35d"; +} + +.fa-external-link-square-alt:before { + content: "\f360"; +} + +.fa-eye:before { + content: "\f06e"; +} + +.fa-eye-dropper:before { + content: "\f1fb"; +} + +.fa-eye-slash:before { + content: "\f070"; +} + +.fa-facebook:before { + content: "\f09a"; +} + +.fa-facebook-f:before { + content: "\f39e"; +} + +.fa-facebook-messenger:before { + content: "\f39f"; +} + +.fa-facebook-square:before { + content: "\f082"; +} + +.fa-fast-backward:before { + content: "\f049"; +} + +.fa-fast-forward:before { + content: "\f050"; +} + +.fa-fax:before { + content: "\f1ac"; +} + +.fa-feather:before { + content: "\f52d"; +} + +.fa-feather-alt:before { + content: "\f56b"; +} + +.fa-female:before { + content: "\f182"; +} + +.fa-fighter-jet:before { + content: "\f0fb"; +} + +.fa-file:before { + content: "\f15b"; +} + +.fa-file-alt:before { + content: "\f15c"; +} + +.fa-file-archive:before { + content: "\f1c6"; +} + +.fa-file-audio:before { + content: "\f1c7"; +} + +.fa-file-code:before { + content: "\f1c9"; +} + +.fa-file-contract:before { + content: "\f56c"; +} + +.fa-file-download:before { + content: "\f56d"; +} + +.fa-file-excel:before { + content: "\f1c3"; +} + +.fa-file-export:before { + content: "\f56e"; +} + +.fa-file-image:before { + content: "\f1c5"; +} + +.fa-file-import:before { + content: "\f56f"; +} + +.fa-file-invoice:before { + content: "\f570"; +} + +.fa-file-invoice-dollar:before { + content: "\f571"; +} + +.fa-file-medical:before { + content: "\f477"; +} + +.fa-file-medical-alt:before { + content: "\f478"; +} + +.fa-file-pdf:before { + content: "\f1c1"; +} + +.fa-file-powerpoint:before { + content: "\f1c4"; +} + +.fa-file-prescription:before { + content: "\f572"; +} + +.fa-file-signature:before { + content: "\f573"; +} + +.fa-file-upload:before { + content: "\f574"; +} + +.fa-file-video:before { + content: "\f1c8"; +} + +.fa-file-word:before { + content: "\f1c2"; +} + +.fa-fill:before { + content: "\f575"; +} + +.fa-fill-drip:before { + content: "\f576"; +} + +.fa-film:before { + content: "\f008"; +} + +.fa-filter:before { + content: "\f0b0"; +} + +.fa-fingerprint:before { + content: "\f577"; +} + +.fa-fire:before { + content: "\f06d"; +} + +.fa-fire-extinguisher:before { + content: "\f134"; +} + +.fa-firefox:before { + content: "\f269"; +} + +.fa-first-aid:before { + content: "\f479"; +} + +.fa-first-order:before { + content: "\f2b0"; +} + +.fa-first-order-alt:before { + content: "\f50a"; +} + +.fa-firstdraft:before { + content: "\f3a1"; +} + +.fa-fish:before { + content: "\f578"; +} + +.fa-flag:before { + content: "\f024"; +} + +.fa-flag-checkered:before { + content: "\f11e"; +} + +.fa-flask:before { + content: "\f0c3"; +} + +.fa-flickr:before { + content: "\f16e"; +} + +.fa-flipboard:before { + content: "\f44d"; +} + +.fa-flushed:before { + content: "\f579"; +} + +.fa-fly:before { + content: "\f417"; +} + +.fa-folder:before { + content: "\f07b"; +} + +.fa-folder-open:before { + content: "\f07c"; +} + +.fa-font:before { + content: "\f031"; +} + +.fa-font-awesome:before { + content: "\f2b4"; +} + +.fa-font-awesome-alt:before { + content: "\f35c"; +} + +.fa-font-awesome-flag:before { + content: "\f425"; +} + +.fa-font-awesome-logo-full:before { + content: "\f4e6"; +} + +.fa-fonticons:before { + content: "\f280"; +} + +.fa-fonticons-fi:before { + content: "\f3a2"; +} + +.fa-football-ball:before { + content: "\f44e"; +} + +.fa-fort-awesome:before { + content: "\f286"; +} + +.fa-fort-awesome-alt:before { + content: "\f3a3"; +} + +.fa-forumbee:before { + content: "\f211"; +} + +.fa-forward:before { + content: "\f04e"; +} + +.fa-foursquare:before { + content: "\f180"; +} + +.fa-free-code-camp:before { + content: "\f2c5"; +} + +.fa-freebsd:before { + content: "\f3a4"; +} + +.fa-frog:before { + content: "\f52e"; +} + +.fa-frown:before { + content: "\f119"; +} + +.fa-frown-open:before { + content: "\f57a"; +} + +.fa-fulcrum:before { + content: "\f50b"; +} + +.fa-futbol:before { + content: "\f1e3"; +} + +.fa-galactic-republic:before { + content: "\f50c"; +} + +.fa-galactic-senate:before { + content: "\f50d"; +} + +.fa-gamepad:before { + content: "\f11b"; +} + +.fa-gas-pump:before { + content: "\f52f"; +} + +.fa-gavel:before { + content: "\f0e3"; +} + +.fa-gem:before { + content: "\f3a5"; +} + +.fa-genderless:before { + content: "\f22d"; +} + +.fa-get-pocket:before { + content: "\f265"; +} + +.fa-gg:before { + content: "\f260"; +} + +.fa-gg-circle:before { + content: "\f261"; +} + +.fa-gift:before { + content: "\f06b"; +} + +.fa-git:before { + content: "\f1d3"; +} + +.fa-git-square:before { + content: "\f1d2"; +} + +.fa-github:before { + content: "\f09b"; +} + +.fa-github-alt:before { + content: "\f113"; +} + +.fa-github-square:before { + content: "\f092"; +} + +.fa-gitkraken:before { + content: "\f3a6"; +} + +.fa-gitlab:before { + content: "\f296"; +} + +.fa-gitter:before { + content: "\f426"; +} + +.fa-glass-martini:before { + content: "\f000"; +} + +.fa-glass-martini-alt:before { + content: "\f57b"; +} + +.fa-glasses:before { + content: "\f530"; +} + +.fa-glide:before { + content: "\f2a5"; +} + +.fa-glide-g:before { + content: "\f2a6"; +} + +.fa-globe:before { + content: "\f0ac"; +} + +.fa-globe-africa:before { + content: "\f57c"; +} + +.fa-globe-americas:before { + content: "\f57d"; +} + +.fa-globe-asia:before { + content: "\f57e"; +} + +.fa-gofore:before { + content: "\f3a7"; +} + +.fa-golf-ball:before { + content: "\f450"; +} + +.fa-goodreads:before { + content: "\f3a8"; +} + +.fa-goodreads-g:before { + content: "\f3a9"; +} + +.fa-google:before { + content: "\f1a0"; +} + +.fa-google-drive:before { + content: "\f3aa"; +} + +.fa-google-play:before { + content: "\f3ab"; +} + +.fa-google-plus:before { + content: "\f2b3"; +} + +.fa-google-plus-g:before { + content: "\f0d5"; +} + +.fa-google-plus-square:before { + content: "\f0d4"; +} + +.fa-google-wallet:before { + content: "\f1ee"; +} + +.fa-graduation-cap:before { + content: "\f19d"; +} + +.fa-gratipay:before { + content: "\f184"; +} + +.fa-grav:before { + content: "\f2d6"; +} + +.fa-greater-than:before { + content: "\f531"; +} + +.fa-greater-than-equal:before { + content: "\f532"; +} + +.fa-grimace:before { + content: "\f57f"; +} + +.fa-grin:before { + content: "\f580"; +} + +.fa-grin-alt:before { + content: "\f581"; +} + +.fa-grin-beam:before { + content: "\f582"; +} + +.fa-grin-beam-sweat:before { + content: "\f583"; +} + +.fa-grin-hearts:before { + content: "\f584"; +} + +.fa-grin-squint:before { + content: "\f585"; +} + +.fa-grin-squint-tears:before { + content: "\f586"; +} + +.fa-grin-stars:before { + content: "\f587"; +} + +.fa-grin-tears:before { + content: "\f588"; +} + +.fa-grin-tongue:before { + content: "\f589"; +} + +.fa-grin-tongue-squint:before { + content: "\f58a"; +} + +.fa-grin-tongue-wink:before { + content: "\f58b"; +} + +.fa-grin-wink:before { + content: "\f58c"; +} + +.fa-grip-horizontal:before { + content: "\f58d"; +} + +.fa-grip-vertical:before { + content: "\f58e"; +} + +.fa-gripfire:before { + content: "\f3ac"; +} + +.fa-grunt:before { + content: "\f3ad"; +} + +.fa-gulp:before { + content: "\f3ae"; +} + +.fa-h-square:before { + content: "\f0fd"; +} + +.fa-hacker-news:before { + content: "\f1d4"; +} + +.fa-hacker-news-square:before { + content: "\f3af"; +} + +.fa-hackerrank:before { + content: "\f5f7"; +} + +.fa-hand-holding:before { + content: "\f4bd"; +} + +.fa-hand-holding-heart:before { + content: "\f4be"; +} + +.fa-hand-holding-usd:before { + content: "\f4c0"; +} + +.fa-hand-lizard:before { + content: "\f258"; +} + +.fa-hand-paper:before { + content: "\f256"; +} + +.fa-hand-peace:before { + content: "\f25b"; +} + +.fa-hand-point-down:before { + content: "\f0a7"; +} + +.fa-hand-point-left:before { + content: "\f0a5"; +} + +.fa-hand-point-right:before { + content: "\f0a4"; +} + +.fa-hand-point-up:before { + content: "\f0a6"; +} + +.fa-hand-pointer:before { + content: "\f25a"; +} + +.fa-hand-rock:before { + content: "\f255"; +} + +.fa-hand-scissors:before { + content: "\f257"; +} + +.fa-hand-spock:before { + content: "\f259"; +} + +.fa-hands:before { + content: "\f4c2"; +} + +.fa-hands-helping:before { + content: "\f4c4"; +} + +.fa-handshake:before { + content: "\f2b5"; +} + +.fa-hashtag:before { + content: "\f292"; +} + +.fa-hdd:before { + content: "\f0a0"; +} + +.fa-heading:before { + content: "\f1dc"; +} + +.fa-headphones:before { + content: "\f025"; +} + +.fa-headphones-alt:before { + content: "\f58f"; +} + +.fa-headset:before { + content: "\f590"; +} + +.fa-heart:before { + content: "\f004"; +} + +.fa-heartbeat:before { + content: "\f21e"; +} + +.fa-helicopter:before { + content: "\f533"; +} + +.fa-highlighter:before { + content: "\f591"; +} + +.fa-hips:before { + content: "\f452"; +} + +.fa-hire-a-helper:before { + content: "\f3b0"; +} + +.fa-history:before { + content: "\f1da"; +} + +.fa-hockey-puck:before { + content: "\f453"; +} + +.fa-home:before { + content: "\f015"; +} + +.fa-hooli:before { + content: "\f427"; +} + +.fa-hornbill:before { + content: "\f592"; +} + +.fa-hospital:before { + content: "\f0f8"; +} + +.fa-hospital-alt:before { + content: "\f47d"; +} + +.fa-hospital-symbol:before { + content: "\f47e"; +} + +.fa-hot-tub:before { + content: "\f593"; +} + +.fa-hotel:before { + content: "\f594"; +} + +.fa-hotjar:before { + content: "\f3b1"; +} + +.fa-hourglass:before { + content: "\f254"; +} + +.fa-hourglass-end:before { + content: "\f253"; +} + +.fa-hourglass-half:before { + content: "\f252"; +} + +.fa-hourglass-start:before { + content: "\f251"; +} + +.fa-houzz:before { + content: "\f27c"; +} + +.fa-html5:before { + content: "\f13b"; +} + +.fa-hubspot:before { + content: "\f3b2"; +} + +.fa-i-cursor:before { + content: "\f246"; +} + +.fa-id-badge:before { + content: "\f2c1"; +} + +.fa-id-card:before { + content: "\f2c2"; +} + +.fa-id-card-alt:before { + content: "\f47f"; +} + +.fa-image:before { + content: "\f03e"; +} + +.fa-images:before { + content: "\f302"; +} + +.fa-imdb:before { + content: "\f2d8"; +} + +.fa-inbox:before { + content: "\f01c"; +} + +.fa-indent:before { + content: "\f03c"; +} + +.fa-industry:before { + content: "\f275"; +} + +.fa-infinity:before { + content: "\f534"; +} + +.fa-info:before { + content: "\f129"; +} + +.fa-info-circle:before { + content: "\f05a"; +} + +.fa-instagram:before { + content: "\f16d"; +} + +.fa-internet-explorer:before { + content: "\f26b"; +} + +.fa-ioxhost:before { + content: "\f208"; +} + +.fa-italic:before { + content: "\f033"; +} + +.fa-itunes:before { + content: "\f3b4"; +} + +.fa-itunes-note:before { + content: "\f3b5"; +} + +.fa-java:before { + content: "\f4e4"; +} + +.fa-jedi-order:before { + content: "\f50e"; +} + +.fa-jenkins:before { + content: "\f3b6"; +} + +.fa-joget:before { + content: "\f3b7"; +} + +.fa-joint:before { + content: "\f595"; +} + +.fa-joomla:before { + content: "\f1aa"; +} + +.fa-js:before { + content: "\f3b8"; +} + +.fa-js-square:before { + content: "\f3b9"; +} + +.fa-jsfiddle:before { + content: "\f1cc"; +} + +.fa-kaggle:before { + content: "\f5fa"; +} + +.fa-key:before { + content: "\f084"; +} + +.fa-keybase:before { + content: "\f4f5"; +} + +.fa-keyboard:before { + content: "\f11c"; +} + +.fa-keycdn:before { + content: "\f3ba"; +} + +.fa-kickstarter:before { + content: "\f3bb"; +} + +.fa-kickstarter-k:before { + content: "\f3bc"; +} + +.fa-kiss:before { + content: "\f596"; +} + +.fa-kiss-beam:before { + content: "\f597"; +} + +.fa-kiss-wink-heart:before { + content: "\f598"; +} + +.fa-kiwi-bird:before { + content: "\f535"; +} + +.fa-korvue:before { + content: "\f42f"; +} + +.fa-language:before { + content: "\f1ab"; +} + +.fa-laptop:before { + content: "\f109"; +} + +.fa-laptop-code:before { + content: "\f5fc"; +} + +.fa-laravel:before { + content: "\f3bd"; +} + +.fa-lastfm:before { + content: "\f202"; +} + +.fa-lastfm-square:before { + content: "\f203"; +} + +.fa-laugh:before { + content: "\f599"; +} + +.fa-laugh-beam:before { + content: "\f59a"; +} + +.fa-laugh-squint:before { + content: "\f59b"; +} + +.fa-laugh-wink:before { + content: "\f59c"; +} + +.fa-layer-group:before { + content: "\f5fd"; +} + +.fa-leaf:before { + content: "\f06c"; +} + +.fa-leanpub:before { + content: "\f212"; +} + +.fa-lemon:before { + content: "\f094"; +} + +.fa-less:before { + content: "\f41d"; +} + +.fa-less-than:before { + content: "\f536"; +} + +.fa-less-than-equal:before { + content: "\f537"; +} + +.fa-level-down-alt:before { + content: "\f3be"; +} + +.fa-level-up-alt:before { + content: "\f3bf"; +} + +.fa-life-ring:before { + content: "\f1cd"; +} + +.fa-lightbulb:before { + content: "\f0eb"; +} + +.fa-line:before { + content: "\f3c0"; +} + +.fa-link:before { + content: "\f0c1"; +} + +.fa-linkedin:before { + content: "\f08c"; +} + +.fa-linkedin-in:before { + content: "\f0e1"; +} + +.fa-linode:before { + content: "\f2b8"; +} + +.fa-linux:before { + content: "\f17c"; +} + +.fa-lira-sign:before { + content: "\f195"; +} + +.fa-list:before { + content: "\f03a"; +} + +.fa-list-alt:before { + content: "\f022"; +} + +.fa-list-ol:before { + content: "\f0cb"; +} + +.fa-list-ul:before { + content: "\f0ca"; +} + +.fa-location-arrow:before { + content: "\f124"; +} + +.fa-lock:before { + content: "\f023"; +} + +.fa-lock-open:before { + content: "\f3c1"; +} + +.fa-long-arrow-alt-down:before { + content: "\f309"; +} + +.fa-long-arrow-alt-left:before { + content: "\f30a"; +} + +.fa-long-arrow-alt-right:before { + content: "\f30b"; +} + +.fa-long-arrow-alt-up:before { + content: "\f30c"; +} + +.fa-low-vision:before { + content: "\f2a8"; +} + +.fa-luggage-cart:before { + content: "\f59d"; +} + +.fa-lyft:before { + content: "\f3c3"; +} + +.fa-magento:before { + content: "\f3c4"; +} + +.fa-magic:before { + content: "\f0d0"; +} + +.fa-magnet:before { + content: "\f076"; +} + +.fa-mailchimp:before { + content: "\f59e"; +} + +.fa-male:before { + content: "\f183"; +} + +.fa-mandalorian:before { + content: "\f50f"; +} + +.fa-map:before { + content: "\f279"; +} + +.fa-map-marked:before { + content: "\f59f"; +} + +.fa-map-marked-alt:before { + content: "\f5a0"; +} + +.fa-map-marker:before { + content: "\f041"; +} + +.fa-map-marker-alt:before { + content: "\f3c5"; +} + +.fa-map-pin:before { + content: "\f276"; +} + +.fa-map-signs:before { + content: "\f277"; +} + +.fa-markdown:before { + content: "\f60f"; +} + +.fa-marker:before { + content: "\f5a1"; +} + +.fa-mars:before { + content: "\f222"; +} + +.fa-mars-double:before { + content: "\f227"; +} + +.fa-mars-stroke:before { + content: "\f229"; +} + +.fa-mars-stroke-h:before { + content: "\f22b"; +} + +.fa-mars-stroke-v:before { + content: "\f22a"; +} + +.fa-mastodon:before { + content: "\f4f6"; +} + +.fa-maxcdn:before { + content: "\f136"; +} + +.fa-medal:before { + content: "\f5a2"; +} + +.fa-medapps:before { + content: "\f3c6"; +} + +.fa-medium:before { + content: "\f23a"; +} + +.fa-medium-m:before { + content: "\f3c7"; +} + +.fa-medkit:before { + content: "\f0fa"; +} + +.fa-medrt:before { + content: "\f3c8"; +} + +.fa-meetup:before { + content: "\f2e0"; +} + +.fa-megaport:before { + content: "\f5a3"; +} + +.fa-meh:before { + content: "\f11a"; +} + +.fa-meh-blank:before { + content: "\f5a4"; +} + +.fa-meh-rolling-eyes:before { + content: "\f5a5"; +} + +.fa-memory:before { + content: "\f538"; +} + +.fa-mercury:before { + content: "\f223"; +} + +.fa-microchip:before { + content: "\f2db"; +} + +.fa-microphone:before { + content: "\f130"; +} + +.fa-microphone-alt:before { + content: "\f3c9"; +} + +.fa-microphone-alt-slash:before { + content: "\f539"; +} + +.fa-microphone-slash:before { + content: "\f131"; +} + +.fa-microscope:before { + content: "\f610"; +} + +.fa-microsoft:before { + content: "\f3ca"; +} + +.fa-minus:before { + content: "\f068"; +} + +.fa-minus-circle:before { + content: "\f056"; +} + +.fa-minus-square:before { + content: "\f146"; +} + +.fa-mix:before { + content: "\f3cb"; +} + +.fa-mixcloud:before { + content: "\f289"; +} + +.fa-mizuni:before { + content: "\f3cc"; +} + +.fa-mobile:before { + content: "\f10b"; +} + +.fa-mobile-alt:before { + content: "\f3cd"; +} + +.fa-modx:before { + content: "\f285"; +} + +.fa-monero:before { + content: "\f3d0"; +} + +.fa-money-bill:before { + content: "\f0d6"; +} + +.fa-money-bill-alt:before { + content: "\f3d1"; +} + +.fa-money-bill-wave:before { + content: "\f53a"; +} + +.fa-money-bill-wave-alt:before { + content: "\f53b"; +} + +.fa-money-check:before { + content: "\f53c"; +} + +.fa-money-check-alt:before { + content: "\f53d"; +} + +.fa-monument:before { + content: "\f5a6"; +} + +.fa-moon:before { + content: "\f186"; +} + +.fa-mortar-pestle:before { + content: "\f5a7"; +} + +.fa-motorcycle:before { + content: "\f21c"; +} + +.fa-mouse-pointer:before { + content: "\f245"; +} + +.fa-music:before { + content: "\f001"; +} + +.fa-napster:before { + content: "\f3d2"; +} + +.fa-neos:before { + content: "\f612"; +} + +.fa-neuter:before { + content: "\f22c"; +} + +.fa-newspaper:before { + content: "\f1ea"; +} + +.fa-nimblr:before { + content: "\f5a8"; +} + +.fa-nintendo-switch:before { + content: "\f418"; +} + +.fa-node:before { + content: "\f419"; +} + +.fa-node-js:before { + content: "\f3d3"; +} + +.fa-not-equal:before { + content: "\f53e"; +} + +.fa-notes-medical:before { + content: "\f481"; +} + +.fa-npm:before { + content: "\f3d4"; +} + +.fa-ns8:before { + content: "\f3d5"; +} + +.fa-nutritionix:before { + content: "\f3d6"; +} + +.fa-object-group:before { + content: "\f247"; +} + +.fa-object-ungroup:before { + content: "\f248"; +} + +.fa-odnoklassniki:before { + content: "\f263"; +} + +.fa-odnoklassniki-square:before { + content: "\f264"; +} + +.fa-oil-can:before { + content: "\f613"; +} + +.fa-old-republic:before { + content: "\f510"; +} + +.fa-opencart:before { + content: "\f23d"; +} + +.fa-openid:before { + content: "\f19b"; +} + +.fa-opera:before { + content: "\f26a"; +} + +.fa-optin-monster:before { + content: "\f23c"; +} + +.fa-osi:before { + content: "\f41a"; +} + +.fa-outdent:before { + content: "\f03b"; +} + +.fa-page4:before { + content: "\f3d7"; +} + +.fa-pagelines:before { + content: "\f18c"; +} + +.fa-paint-brush:before { + content: "\f1fc"; +} + +.fa-paint-roller:before { + content: "\f5aa"; +} + +.fa-palette:before { + content: "\f53f"; +} + +.fa-palfed:before { + content: "\f3d8"; +} + +.fa-pallet:before { + content: "\f482"; +} + +.fa-paper-plane:before { + content: "\f1d8"; +} + +.fa-paperclip:before { + content: "\f0c6"; +} + +.fa-parachute-box:before { + content: "\f4cd"; +} + +.fa-paragraph:before { + content: "\f1dd"; +} + +.fa-parking:before { + content: "\f540"; +} + +.fa-passport:before { + content: "\f5ab"; +} + +.fa-paste:before { + content: "\f0ea"; +} + +.fa-patreon:before { + content: "\f3d9"; +} + +.fa-pause:before { + content: "\f04c"; +} + +.fa-pause-circle:before { + content: "\f28b"; +} + +.fa-paw:before { + content: "\f1b0"; +} + +.fa-paypal:before { + content: "\f1ed"; +} + +.fa-pen:before { + content: "\f304"; +} + +.fa-pen-alt:before { + content: "\f305"; +} + +.fa-pen-fancy:before { + content: "\f5ac"; +} + +.fa-pen-nib:before { + content: "\f5ad"; +} + +.fa-pen-square:before { + content: "\f14b"; +} + +.fa-pencil-alt:before { + content: "\f303"; +} + +.fa-pencil-ruler:before { + content: "\f5ae"; +} + +.fa-people-carry:before { + content: "\f4ce"; +} + +.fa-percent:before { + content: "\f295"; +} + +.fa-percentage:before { + content: "\f541"; +} + +.fa-periscope:before { + content: "\f3da"; +} + +.fa-phabricator:before { + content: "\f3db"; +} + +.fa-phoenix-framework:before { + content: "\f3dc"; +} + +.fa-phoenix-squadron:before { + content: "\f511"; +} + +.fa-phone:before { + content: "\f095"; +} + +.fa-phone-slash:before { + content: "\f3dd"; +} + +.fa-phone-square:before { + content: "\f098"; +} + +.fa-phone-volume:before { + content: "\f2a0"; +} + +.fa-php:before { + content: "\f457"; +} + +.fa-pied-piper:before { + content: "\f2ae"; +} + +.fa-pied-piper-alt:before { + content: "\f1a8"; +} + +.fa-pied-piper-hat:before { + content: "\f4e5"; +} + +.fa-pied-piper-pp:before { + content: "\f1a7"; +} + +.fa-piggy-bank:before { + content: "\f4d3"; +} + +.fa-pills:before { + content: "\f484"; +} + +.fa-pinterest:before { + content: "\f0d2"; +} + +.fa-pinterest-p:before { + content: "\f231"; +} + +.fa-pinterest-square:before { + content: "\f0d3"; +} + +.fa-plane:before { + content: "\f072"; +} + +.fa-plane-arrival:before { + content: "\f5af"; +} + +.fa-plane-departure:before { + content: "\f5b0"; +} + +.fa-play:before { + content: "\f04b"; +} + +.fa-play-circle:before { + content: "\f144"; +} + +.fa-playstation:before { + content: "\f3df"; +} + +.fa-plug:before { + content: "\f1e6"; +} + +.fa-plus:before { + content: "\f067"; +} + +.fa-plus-circle:before { + content: "\f055"; +} + +.fa-plus-square:before { + content: "\f0fe"; +} + +.fa-podcast:before { + content: "\f2ce"; +} + +.fa-poo:before { + content: "\f2fe"; +} + +.fa-poop:before { + content: "\f619"; +} + +.fa-portrait:before { + content: "\f3e0"; +} + +.fa-pound-sign:before { + content: "\f154"; +} + +.fa-power-off:before { + content: "\f011"; +} + +.fa-prescription:before { + content: "\f5b1"; +} + +.fa-prescription-bottle:before { + content: "\f485"; +} + +.fa-prescription-bottle-alt:before { + content: "\f486"; +} + +.fa-print:before { + content: "\f02f"; +} + +.fa-procedures:before { + content: "\f487"; +} + +.fa-product-hunt:before { + content: "\f288"; +} + +.fa-project-diagram:before { + content: "\f542"; +} + +.fa-pushed:before { + content: "\f3e1"; +} + +.fa-puzzle-piece:before { + content: "\f12e"; +} + +.fa-python:before { + content: "\f3e2"; +} + +.fa-qq:before { + content: "\f1d6"; +} + +.fa-qrcode:before { + content: "\f029"; +} + +.fa-question:before { + content: "\f128"; +} + +.fa-question-circle:before { + content: "\f059"; +} + +.fa-quidditch:before { + content: "\f458"; +} + +.fa-quinscape:before { + content: "\f459"; +} + +.fa-quora:before { + content: "\f2c4"; +} + +.fa-quote-left:before { + content: "\f10d"; +} + +.fa-quote-right:before { + content: "\f10e"; +} + +.fa-r-project:before { + content: "\f4f7"; +} + +.fa-random:before { + content: "\f074"; +} + +.fa-ravelry:before { + content: "\f2d9"; +} + +.fa-react:before { + content: "\f41b"; +} + +.fa-readme:before { + content: "\f4d5"; +} + +.fa-rebel:before { + content: "\f1d0"; +} + +.fa-receipt:before { + content: "\f543"; +} + +.fa-recycle:before { + content: "\f1b8"; +} + +.fa-red-river:before { + content: "\f3e3"; +} + +.fa-reddit:before { + content: "\f1a1"; +} + +.fa-reddit-alien:before { + content: "\f281"; +} + +.fa-reddit-square:before { + content: "\f1a2"; +} + +.fa-redo:before { + content: "\f01e"; +} + +.fa-redo-alt:before { + content: "\f2f9"; +} + +.fa-registered:before { + content: "\f25d"; +} + +.fa-rendact:before { + content: "\f3e4"; +} + +.fa-renren:before { + content: "\f18b"; +} + +.fa-reply:before { + content: "\f3e5"; +} + +.fa-reply-all:before { + content: "\f122"; +} + +.fa-replyd:before { + content: "\f3e6"; +} + +.fa-researchgate:before { + content: "\f4f8"; +} + +.fa-resolving:before { + content: "\f3e7"; +} + +.fa-retweet:before { + content: "\f079"; +} + +.fa-rev:before { + content: "\f5b2"; +} + +.fa-ribbon:before { + content: "\f4d6"; +} + +.fa-road:before { + content: "\f018"; +} + +.fa-robot:before { + content: "\f544"; +} + +.fa-rocket:before { + content: "\f135"; +} + +.fa-rocketchat:before { + content: "\f3e8"; +} + +.fa-rockrms:before { + content: "\f3e9"; +} + +.fa-route:before { + content: "\f4d7"; +} + +.fa-rss:before { + content: "\f09e"; +} + +.fa-rss-square:before { + content: "\f143"; +} + +.fa-ruble-sign:before { + content: "\f158"; +} + +.fa-ruler:before { + content: "\f545"; +} + +.fa-ruler-combined:before { + content: "\f546"; +} + +.fa-ruler-horizontal:before { + content: "\f547"; +} + +.fa-ruler-vertical:before { + content: "\f548"; +} + +.fa-rupee-sign:before { + content: "\f156"; +} + +.fa-sad-cry:before { + content: "\f5b3"; +} + +.fa-sad-tear:before { + content: "\f5b4"; +} + +.fa-safari:before { + content: "\f267"; +} + +.fa-sass:before { + content: "\f41e"; +} + +.fa-save:before { + content: "\f0c7"; +} + +.fa-schlix:before { + content: "\f3ea"; +} + +.fa-school:before { + content: "\f549"; +} + +.fa-screwdriver:before { + content: "\f54a"; +} + +.fa-scribd:before { + content: "\f28a"; +} + +.fa-search:before { + content: "\f002"; +} + +.fa-search-minus:before { + content: "\f010"; +} + +.fa-search-plus:before { + content: "\f00e"; +} + +.fa-searchengin:before { + content: "\f3eb"; +} + +.fa-seedling:before { + content: "\f4d8"; +} + +.fa-sellcast:before { + content: "\f2da"; +} + +.fa-sellsy:before { + content: "\f213"; +} + +.fa-server:before { + content: "\f233"; +} + +.fa-servicestack:before { + content: "\f3ec"; +} + +.fa-shapes:before { + content: "\f61f"; +} + +.fa-share:before { + content: "\f064"; +} + +.fa-share-alt:before { + content: "\f1e0"; +} + +.fa-share-alt-square:before { + content: "\f1e1"; +} + +.fa-share-square:before { + content: "\f14d"; +} + +.fa-shekel-sign:before { + content: "\f20b"; +} + +.fa-shield-alt:before { + content: "\f3ed"; +} + +.fa-ship:before { + content: "\f21a"; +} + +.fa-shipping-fast:before { + content: "\f48b"; +} + +.fa-shirtsinbulk:before { + content: "\f214"; +} + +.fa-shoe-prints:before { + content: "\f54b"; +} + +.fa-shopping-bag:before { + content: "\f290"; +} + +.fa-shopping-basket:before { + content: "\f291"; +} + +.fa-shopping-cart:before { + content: "\f07a"; +} + +.fa-shopware:before { + content: "\f5b5"; +} + +.fa-shower:before { + content: "\f2cc"; +} + +.fa-shuttle-van:before { + content: "\f5b6"; +} + +.fa-sign:before { + content: "\f4d9"; +} + +.fa-sign-in-alt:before { + content: "\f2f6"; +} + +.fa-sign-language:before { + content: "\f2a7"; +} + +.fa-sign-out-alt:before { + content: "\f2f5"; +} + +.fa-signal:before { + content: "\f012"; +} + +.fa-signature:before { + content: "\f5b7"; +} + +.fa-simplybuilt:before { + content: "\f215"; +} + +.fa-sistrix:before { + content: "\f3ee"; +} + +.fa-sitemap:before { + content: "\f0e8"; +} + +.fa-sith:before { + content: "\f512"; +} + +.fa-skull:before { + content: "\f54c"; +} + +.fa-skyatlas:before { + content: "\f216"; +} + +.fa-skype:before { + content: "\f17e"; +} + +.fa-slack:before { + content: "\f198"; +} + +.fa-slack-hash:before { + content: "\f3ef"; +} + +.fa-sliders-h:before { + content: "\f1de"; +} + +.fa-slideshare:before { + content: "\f1e7"; +} + +.fa-smile:before { + content: "\f118"; +} + +.fa-smile-beam:before { + content: "\f5b8"; +} + +.fa-smile-wink:before { + content: "\f4da"; +} + +.fa-smoking:before { + content: "\f48d"; +} + +.fa-smoking-ban:before { + content: "\f54d"; +} + +.fa-snapchat:before { + content: "\f2ab"; +} + +.fa-snapchat-ghost:before { + content: "\f2ac"; +} + +.fa-snapchat-square:before { + content: "\f2ad"; +} + +.fa-snowflake:before { + content: "\f2dc"; +} + +.fa-solar-panel:before { + content: "\f5ba"; +} + +.fa-sort:before { + content: "\f0dc"; +} + +.fa-sort-alpha-down:before { + content: "\f15d"; +} + +.fa-sort-alpha-up:before { + content: "\f15e"; +} + +.fa-sort-amount-down:before { + content: "\f160"; +} + +.fa-sort-amount-up:before { + content: "\f161"; +} + +.fa-sort-down:before { + content: "\f0dd"; +} + +.fa-sort-numeric-down:before { + content: "\f162"; +} + +.fa-sort-numeric-up:before { + content: "\f163"; +} + +.fa-sort-up:before { + content: "\f0de"; +} + +.fa-soundcloud:before { + content: "\f1be"; +} + +.fa-spa:before { + content: "\f5bb"; +} + +.fa-space-shuttle:before { + content: "\f197"; +} + +.fa-speakap:before { + content: "\f3f3"; +} + +.fa-spinner:before { + content: "\f110"; +} + +.fa-splotch:before { + content: "\f5bc"; +} + +.fa-spotify:before { + content: "\f1bc"; +} + +.fa-spray-can:before { + content: "\f5bd"; +} + +.fa-square:before { + content: "\f0c8"; +} + +.fa-square-full:before { + content: "\f45c"; +} + +.fa-squarespace:before { + content: "\f5be"; +} + +.fa-stack-exchange:before { + content: "\f18d"; +} + +.fa-stack-overflow:before { + content: "\f16c"; +} + +.fa-stamp:before { + content: "\f5bf"; +} + +.fa-star:before { + content: "\f005"; +} + +.fa-star-half:before { + content: "\f089"; +} + +.fa-star-half-alt:before { + content: "\f5c0"; +} + +.fa-star-of-life:before { + content: "\f621"; +} + +.fa-staylinked:before { + content: "\f3f5"; +} + +.fa-steam:before { + content: "\f1b6"; +} + +.fa-steam-square:before { + content: "\f1b7"; +} + +.fa-steam-symbol:before { + content: "\f3f6"; +} + +.fa-step-backward:before { + content: "\f048"; +} + +.fa-step-forward:before { + content: "\f051"; +} + +.fa-stethoscope:before { + content: "\f0f1"; +} + +.fa-sticker-mule:before { + content: "\f3f7"; +} + +.fa-sticky-note:before { + content: "\f249"; +} + +.fa-stop:before { + content: "\f04d"; +} + +.fa-stop-circle:before { + content: "\f28d"; +} + +.fa-stopwatch:before { + content: "\f2f2"; +} + +.fa-store:before { + content: "\f54e"; +} + +.fa-store-alt:before { + content: "\f54f"; +} + +.fa-strava:before { + content: "\f428"; +} + +.fa-stream:before { + content: "\f550"; +} + +.fa-street-view:before { + content: "\f21d"; +} + +.fa-strikethrough:before { + content: "\f0cc"; +} + +.fa-stripe:before { + content: "\f429"; +} + +.fa-stripe-s:before { + content: "\f42a"; +} + +.fa-stroopwafel:before { + content: "\f551"; +} + +.fa-studiovinari:before { + content: "\f3f8"; +} + +.fa-stumbleupon:before { + content: "\f1a4"; +} + +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} + +.fa-subscript:before { + content: "\f12c"; +} + +.fa-subway:before { + content: "\f239"; +} + +.fa-suitcase:before { + content: "\f0f2"; +} + +.fa-suitcase-rolling:before { + content: "\f5c1"; +} + +.fa-sun:before { + content: "\f185"; +} + +.fa-superpowers:before { + content: "\f2dd"; +} + +.fa-superscript:before { + content: "\f12b"; +} + +.fa-supple:before { + content: "\f3f9"; +} + +.fa-surprise:before { + content: "\f5c2"; +} + +.fa-swatchbook:before { + content: "\f5c3"; +} + +.fa-swimmer:before { + content: "\f5c4"; +} + +.fa-swimming-pool:before { + content: "\f5c5"; +} + +.fa-sync:before { + content: "\f021"; +} + +.fa-sync-alt:before { + content: "\f2f1"; +} + +.fa-syringe:before { + content: "\f48e"; +} + +.fa-table:before { + content: "\f0ce"; +} + +.fa-table-tennis:before { + content: "\f45d"; +} + +.fa-tablet:before { + content: "\f10a"; +} + +.fa-tablet-alt:before { + content: "\f3fa"; +} + +.fa-tablets:before { + content: "\f490"; +} + +.fa-tachometer-alt:before { + content: "\f3fd"; +} + +.fa-tag:before { + content: "\f02b"; +} + +.fa-tags:before { + content: "\f02c"; +} + +.fa-tape:before { + content: "\f4db"; +} + +.fa-tasks:before { + content: "\f0ae"; +} + +.fa-taxi:before { + content: "\f1ba"; +} + +.fa-teamspeak:before { + content: "\f4f9"; +} + +.fa-teeth:before { + content: "\f62e"; +} + +.fa-teeth-open:before { + content: "\f62f"; +} + +.fa-telegram:before { + content: "\f2c6"; +} + +.fa-telegram-plane:before { + content: "\f3fe"; +} + +.fa-tencent-weibo:before { + content: "\f1d5"; +} + +.fa-terminal:before { + content: "\f120"; +} + +.fa-text-height:before { + content: "\f034"; +} + +.fa-text-width:before { + content: "\f035"; +} + +.fa-th:before { + content: "\f00a"; +} + +.fa-th-large:before { + content: "\f009"; +} + +.fa-th-list:before { + content: "\f00b"; +} + +.fa-theater-masks:before { + content: "\f630"; +} + +.fa-themeco:before { + content: "\f5c6"; +} + +.fa-themeisle:before { + content: "\f2b2"; +} + +.fa-thermometer:before { + content: "\f491"; +} + +.fa-thermometer-empty:before { + content: "\f2cb"; +} + +.fa-thermometer-full:before { + content: "\f2c7"; +} + +.fa-thermometer-half:before { + content: "\f2c9"; +} + +.fa-thermometer-quarter:before { + content: "\f2ca"; +} + +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} + +.fa-thumbs-down:before { + content: "\f165"; +} + +.fa-thumbs-up:before { + content: "\f164"; +} + +.fa-thumbtack:before { + content: "\f08d"; +} + +.fa-ticket-alt:before { + content: "\f3ff"; +} + +.fa-times:before { + content: "\f00d"; +} + +.fa-times-circle:before { + content: "\f057"; +} + +.fa-tint:before { + content: "\f043"; +} + +.fa-tint-slash:before { + content: "\f5c7"; +} + +.fa-tired:before { + content: "\f5c8"; +} + +.fa-toggle-off:before { + content: "\f204"; +} + +.fa-toggle-on:before { + content: "\f205"; +} + +.fa-toolbox:before { + content: "\f552"; +} + +.fa-tooth:before { + content: "\f5c9"; +} + +.fa-trade-federation:before { + content: "\f513"; +} + +.fa-trademark:before { + content: "\f25c"; +} + +.fa-traffic-light:before { + content: "\f637"; +} + +.fa-train:before { + content: "\f238"; +} + +.fa-transgender:before { + content: "\f224"; +} + +.fa-transgender-alt:before { + content: "\f225"; +} + +.fa-trash:before { + content: "\f1f8"; +} + +.fa-trash-alt:before { + content: "\f2ed"; +} + +.fa-tree:before { + content: "\f1bb"; +} + +.fa-trello:before { + content: "\f181"; +} + +.fa-tripadvisor:before { + content: "\f262"; +} + +.fa-trophy:before { + content: "\f091"; +} + +.fa-truck:before { + content: "\f0d1"; +} + +.fa-truck-loading:before { + content: "\f4de"; +} + +.fa-truck-monster:before { + content: "\f63b"; +} + +.fa-truck-moving:before { + content: "\f4df"; +} + +.fa-truck-pickup:before { + content: "\f63c"; +} + +.fa-tshirt:before { + content: "\f553"; +} + +.fa-tty:before { + content: "\f1e4"; +} + +.fa-tumblr:before { + content: "\f173"; +} + +.fa-tumblr-square:before { + content: "\f174"; +} + +.fa-tv:before { + content: "\f26c"; +} + +.fa-twitch:before { + content: "\f1e8"; +} + +.fa-twitter:before { + content: "\f099"; +} + +.fa-twitter-square:before { + content: "\f081"; +} + +.fa-typo3:before { + content: "\f42b"; +} + +.fa-uber:before { + content: "\f402"; +} + +.fa-uikit:before { + content: "\f403"; +} + +.fa-umbrella:before { + content: "\f0e9"; +} + +.fa-umbrella-beach:before { + content: "\f5ca"; +} + +.fa-underline:before { + content: "\f0cd"; +} + +.fa-undo:before { + content: "\f0e2"; +} + +.fa-undo-alt:before { + content: "\f2ea"; +} + +.fa-uniregistry:before { + content: "\f404"; +} + +.fa-universal-access:before { + content: "\f29a"; +} + +.fa-university:before { + content: "\f19c"; +} + +.fa-unlink:before { + content: "\f127"; +} + +.fa-unlock:before { + content: "\f09c"; +} + +.fa-unlock-alt:before { + content: "\f13e"; +} + +.fa-untappd:before { + content: "\f405"; +} + +.fa-upload:before { + content: "\f093"; +} + +.fa-usb:before { + content: "\f287"; +} + +.fa-user:before { + content: "\f007"; +} + +.fa-user-alt:before { + content: "\f406"; +} + +.fa-user-alt-slash:before { + content: "\f4fa"; +} + +.fa-user-astronaut:before { + content: "\f4fb"; +} + +.fa-user-check:before { + content: "\f4fc"; +} + +.fa-user-circle:before { + content: "\f2bd"; +} + +.fa-user-clock:before { + content: "\f4fd"; +} + +.fa-user-cog:before { + content: "\f4fe"; +} + +.fa-user-edit:before { + content: "\f4ff"; +} + +.fa-user-friends:before { + content: "\f500"; +} + +.fa-user-graduate:before { + content: "\f501"; +} + +.fa-user-lock:before { + content: "\f502"; +} + +.fa-user-md:before { + content: "\f0f0"; +} + +.fa-user-minus:before { + content: "\f503"; +} + +.fa-user-ninja:before { + content: "\f504"; +} + +.fa-user-plus:before { + content: "\f234"; +} + +.fa-user-secret:before { + content: "\f21b"; +} + +.fa-user-shield:before { + content: "\f505"; +} + +.fa-user-slash:before { + content: "\f506"; +} + +.fa-user-tag:before { + content: "\f507"; +} + +.fa-user-tie:before { + content: "\f508"; +} + +.fa-user-times:before { + content: "\f235"; +} + +.fa-users:before { + content: "\f0c0"; +} + +.fa-users-cog:before { + content: "\f509"; +} + +.fa-ussunnah:before { + content: "\f407"; +} + +.fa-utensil-spoon:before { + content: "\f2e5"; +} + +.fa-utensils:before { + content: "\f2e7"; +} + +.fa-vaadin:before { + content: "\f408"; +} + +.fa-vector-square:before { + content: "\f5cb"; +} + +.fa-venus:before { + content: "\f221"; +} + +.fa-venus-double:before { + content: "\f226"; +} + +.fa-venus-mars:before { + content: "\f228"; +} + +.fa-viacoin:before { + content: "\f237"; +} + +.fa-viadeo:before { + content: "\f2a9"; +} + +.fa-viadeo-square:before { + content: "\f2aa"; +} + +.fa-vial:before { + content: "\f492"; +} + +.fa-vials:before { + content: "\f493"; +} + +.fa-viber:before { + content: "\f409"; +} + +.fa-video:before { + content: "\f03d"; +} + +.fa-video-slash:before { + content: "\f4e2"; +} + +.fa-vimeo:before { + content: "\f40a"; +} + +.fa-vimeo-square:before { + content: "\f194"; +} + +.fa-vimeo-v:before { + content: "\f27d"; +} + +.fa-vine:before { + content: "\f1ca"; +} + +.fa-vk:before { + content: "\f189"; +} + +.fa-vnv:before { + content: "\f40b"; +} + +.fa-volleyball-ball:before { + content: "\f45f"; +} + +.fa-volume-down:before { + content: "\f027"; +} + +.fa-volume-off:before { + content: "\f026"; +} + +.fa-volume-up:before { + content: "\f028"; +} + +.fa-vuejs:before { + content: "\f41f"; +} + +.fa-walking:before { + content: "\f554"; +} + +.fa-wallet:before { + content: "\f555"; +} + +.fa-warehouse:before { + content: "\f494"; +} + +.fa-weebly:before { + content: "\f5cc"; +} + +.fa-weibo:before { + content: "\f18a"; +} + +.fa-weight:before { + content: "\f496"; +} + +.fa-weight-hanging:before { + content: "\f5cd"; +} + +.fa-weixin:before { + content: "\f1d7"; +} + +.fa-whatsapp:before { + content: "\f232"; +} + +.fa-whatsapp-square:before { + content: "\f40c"; +} + +.fa-wheelchair:before { + content: "\f193"; +} + +.fa-whmcs:before { + content: "\f40d"; +} + +.fa-wifi:before { + content: "\f1eb"; +} + +.fa-wikipedia-w:before { + content: "\f266"; +} + +.fa-window-close:before { + content: "\f410"; +} + +.fa-window-maximize:before { + content: "\f2d0"; +} + +.fa-window-minimize:before { + content: "\f2d1"; +} + +.fa-window-restore:before { + content: "\f2d2"; +} + +.fa-windows:before { + content: "\f17a"; +} + +.fa-wine-glass:before { + content: "\f4e3"; +} + +.fa-wine-glass-alt:before { + content: "\f5ce"; +} + +.fa-wix:before { + content: "\f5cf"; +} + +.fa-wolf-pack-battalion:before { + content: "\f514"; +} + +.fa-won-sign:before { + content: "\f159"; +} + +.fa-wordpress:before { + content: "\f19a"; +} + +.fa-wordpress-simple:before { + content: "\f411"; +} + +.fa-wpbeginner:before { + content: "\f297"; +} + +.fa-wpexplorer:before { + content: "\f2de"; +} + +.fa-wpforms:before { + content: "\f298"; +} + +.fa-wrench:before { + content: "\f0ad"; +} + +.fa-x-ray:before { + content: "\f497"; +} + +.fa-xbox:before { + content: "\f412"; +} + +.fa-xing:before { + content: "\f168"; +} + +.fa-xing-square:before { + content: "\f169"; +} + +.fa-y-combinator:before { + content: "\f23b"; +} + +.fa-yahoo:before { + content: "\f19e"; +} + +.fa-yandex:before { + content: "\f413"; +} + +.fa-yandex-international:before { + content: "\f414"; +} + +.fa-yelp:before { + content: "\f1e9"; +} + +.fa-yen-sign:before { + content: "\f157"; +} + +.fa-yoast:before { + content: "\f2b1"; +} + +.fa-youtube:before { + content: "\f167"; +} + +.fa-youtube-square:before { + content: "\f431"; +} + +.fa-zhihu:before { + content: "\f63f"; +} + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: normal; + src: url("../fonts/fontawesome/fa-brands-400.eot"); + src: url("../fonts/fontawesome/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fontawesome/fa-brands-400.woff2") format("woff2"), url("../fonts/fontawesome/fa-brands-400.woff") format("woff"), url("../fonts/fontawesome/fa-brands-400.ttf") format("truetype"), url("../fonts/fontawesome/fa-brands-400.svg#fontawesome") format("svg"); +} +.fab { + font-family: 'Font Awesome 5 Brands'; +} + +@font-face { + font-family: 'Font Awesome 5 Regular'; + font-style: normal; + font-weight: 400; + src: url("../fonts/fontawesome/fa-regular-400.eot"); + src: url("../fonts/fontawesome/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fontawesome/fa-regular-400.woff2") format("woff2"), url("../fonts/fontawesome/fa-regular-400.woff") format("woff"), url("../fonts/fontawesome/fa-regular-400.ttf") format("truetype"), url("../fonts/fontawesome/fa-regular-400.svg#fontawesome") format("svg"); +} +.far { + font-family: 'Font Awesome 5 Regular'; + font-weight: 400; +} + +@font-face { + font-family: 'Font Awesome 5 Solid'; + font-style: normal; + font-weight: 900; + src: url("../fonts/fontawesome/fa-solid-900.eot"); + src: url("../fonts/fontawesome/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fontawesome/fa-solid-900.woff2") format("woff2"), url("../fonts/fontawesome/fa-solid-900.woff") format("woff"), url("../fonts/fontawesome/fa-solid-900.ttf") format("truetype"), url("../fonts/fontawesome/fa-solid-900.svg#fontawesome") format("svg"); +} +.fa, .fas { + font-family: 'Font Awesome 5 Solid'; + font-weight: 900; +} + +/* Simple Line Icons */ + +@font-face { + font-family: 'simple-line-icons'; + src: url('../fonts/simple-line-icons/Simple-Line-Icons.eot?v=2.4.0'); + src: url('../fonts/simple-line-icons/Simple-Line-Icons.eot?v=2.4.0#iefix') format('embedded-opentype'), url('../fonts/simple-line-icons/Simple-Line-Icons.woff2?v=2.4.0') format('woff2'), url('../fonts/simple-line-icons/Simple-Line-Icons.ttf?v=2.4.0') format('truetype'), url('../fonts/simple-line-icons/Simple-Line-Icons.woff?v=2.4.0') format('woff'), url('../fonts/simple-line-icons/Simple-Line-Icons.svg?v=2.4.0#simple-line-icons') format('svg'); + font-weight: normal; + font-style: normal; +} +/* + Use the following CSS code if you want to have a class per icon. + Instead of a list of all class selectors, you can use the generic [class*="icon-"] selector, but it's slower: +*/ +.icon-user, +.icon-people, +.icon-user-female, +.icon-user-follow, +.icon-user-following, +.icon-user-unfollow, +.icon-login, +.icon-logout, +.icon-emotsmile, +.icon-phone, +.icon-call-end, +.icon-call-in, +.icon-call-out, +.icon-map, +.icon-location-pin, +.icon-direction, +.icon-directions, +.icon-compass, +.icon-layers, +.icon-menu, +.icon-list, +.icon-options-vertical, +.icon-options, +.icon-arrow-down, +.icon-arrow-left, +.icon-arrow-right, +.icon-arrow-up, +.icon-arrow-up-circle, +.icon-arrow-left-circle, +.icon-arrow-right-circle, +.icon-arrow-down-circle, +.icon-check, +.icon-clock, +.icon-plus, +.icon-minus, +.icon-close, +.icon-event, +.icon-exclamation, +.icon-organization, +.icon-trophy, +.icon-screen-smartphone, +.icon-screen-desktop, +.icon-plane, +.icon-notebook, +.icon-mustache, +.icon-mouse, +.icon-magnet, +.icon-energy, +.icon-disc, +.icon-cursor, +.icon-cursor-move, +.icon-crop, +.icon-chemistry, +.icon-speedometer, +.icon-shield, +.icon-screen-tablet, +.icon-magic-wand, +.icon-hourglass, +.icon-graduation, +.icon-ghost, +.icon-game-controller, +.icon-fire, +.icon-eyeglass, +.icon-envelope-open, +.icon-envelope-letter, +.icon-bell, +.icon-badge, +.icon-anchor, +.icon-wallet, +.icon-vector, +.icon-speech, +.icon-puzzle, +.icon-printer, +.icon-present, +.icon-playlist, +.icon-pin, +.icon-picture, +.icon-handbag, +.icon-globe-alt, +.icon-globe, +.icon-folder-alt, +.icon-folder, +.icon-film, +.icon-feed, +.icon-drop, +.icon-drawer, +.icon-docs, +.icon-doc, +.icon-diamond, +.icon-cup, +.icon-calculator, +.icon-bubbles, +.icon-briefcase, +.icon-book-open, +.icon-basket-loaded, +.icon-basket, +.icon-bag, +.icon-action-undo, +.icon-action-redo, +.icon-wrench, +.icon-umbrella, +.icon-trash, +.icon-tag, +.icon-support, +.icon-frame, +.icon-size-fullscreen, +.icon-size-actual, +.icon-shuffle, +.icon-share-alt, +.icon-share, +.icon-rocket, +.icon-question, +.icon-pie-chart, +.icon-pencil, +.icon-note, +.icon-loop, +.icon-home, +.icon-grid, +.icon-graph, +.icon-microphone, +.icon-music-tone-alt, +.icon-music-tone, +.icon-earphones-alt, +.icon-earphones, +.icon-equalizer, +.icon-like, +.icon-dislike, +.icon-control-start, +.icon-control-rewind, +.icon-control-play, +.icon-control-pause, +.icon-control-forward, +.icon-control-end, +.icon-volume-1, +.icon-volume-2, +.icon-volume-off, +.icon-calendar, +.icon-bulb, +.icon-chart, +.icon-ban, +.icon-bubble, +.icon-camrecorder, +.icon-camera, +.icon-cloud-download, +.icon-cloud-upload, +.icon-envelope, +.icon-eye, +.icon-flag, +.icon-heart, +.icon-information, +.icon-key, +.icon-link, +.icon-lock, +.icon-lock-open, +.icon-magnifier, +.icon-magnifier-add, +.icon-magnifier-remove, +.icon-paper-clip, +.icon-paper-plane, +.icon-power, +.icon-refresh, +.icon-reload, +.icon-settings, +.icon-star, +.icon-symbol-female, +.icon-symbol-male, +.icon-target, +.icon-credit-card, +.icon-paypal, +.icon-social-tumblr, +.icon-social-twitter, +.icon-social-facebook, +.icon-social-instagram, +.icon-social-linkedin, +.icon-social-pinterest, +.icon-social-github, +.icon-social-google, +.icon-social-reddit, +.icon-social-skype, +.icon-social-dribbble, +.icon-social-behance, +.icon-social-foursqare, +.icon-social-soundcloud, +.icon-social-spotify, +.icon-social-stumbleupon, +.icon-social-youtube, +.icon-social-dropbox, +.icon-social-vkontakte, +.icon-social-steam { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.icon-user:before { + content: "\e005"; +} +.icon-people:before { + content: "\e001"; +} +.icon-user-female:before { + content: "\e000"; +} +.icon-user-follow:before { + content: "\e002"; +} +.icon-user-following:before { + content: "\e003"; +} +.icon-user-unfollow:before { + content: "\e004"; +} +.icon-login:before { + content: "\e066"; +} +.icon-logout:before { + content: "\e065"; +} +.icon-emotsmile:before { + content: "\e021"; +} +.icon-phone:before { + content: "\e600"; +} +.icon-call-end:before { + content: "\e048"; +} +.icon-call-in:before { + content: "\e047"; +} +.icon-call-out:before { + content: "\e046"; +} +.icon-map:before { + content: "\e033"; +} +.icon-location-pin:before { + content: "\e096"; +} +.icon-direction:before { + content: "\e042"; +} +.icon-directions:before { + content: "\e041"; +} +.icon-compass:before { + content: "\e045"; +} +.icon-layers:before { + content: "\e034"; +} +.icon-menu:before { + content: "\e601"; +} +.icon-list:before { + content: "\e067"; +} +.icon-options-vertical:before { + content: "\e602"; +} +.icon-options:before { + content: "\e603"; +} +.icon-arrow-down:before { + content: "\e604"; +} +.icon-arrow-left:before { + content: "\e605"; +} +.icon-arrow-right:before { + content: "\e606"; +} +.icon-arrow-up:before { + content: "\e607"; +} +.icon-arrow-up-circle:before { + content: "\e078"; +} +.icon-arrow-left-circle:before { + content: "\e07a"; +} +.icon-arrow-right-circle:before { + content: "\e079"; +} +.icon-arrow-down-circle:before { + content: "\e07b"; +} +.icon-check:before { + content: "\e080"; +} +.icon-clock:before { + content: "\e081"; +} +.icon-plus:before { + content: "\e095"; +} +.icon-minus:before { + content: "\e615"; +} +.icon-close:before { + content: "\e082"; +} +.icon-event:before { + content: "\e619"; +} +.icon-exclamation:before { + content: "\e617"; +} +.icon-organization:before { + content: "\e616"; +} +.icon-trophy:before { + content: "\e006"; +} +.icon-screen-smartphone:before { + content: "\e010"; +} +.icon-screen-desktop:before { + content: "\e011"; +} +.icon-plane:before { + content: "\e012"; +} +.icon-notebook:before { + content: "\e013"; +} +.icon-mustache:before { + content: "\e014"; +} +.icon-mouse:before { + content: "\e015"; +} +.icon-magnet:before { + content: "\e016"; +} +.icon-energy:before { + content: "\e020"; +} +.icon-disc:before { + content: "\e022"; +} +.icon-cursor:before { + content: "\e06e"; +} +.icon-cursor-move:before { + content: "\e023"; +} +.icon-crop:before { + content: "\e024"; +} +.icon-chemistry:before { + content: "\e026"; +} +.icon-speedometer:before { + content: "\e007"; +} +.icon-shield:before { + content: "\e00e"; +} +.icon-screen-tablet:before { + content: "\e00f"; +} +.icon-magic-wand:before { + content: "\e017"; +} +.icon-hourglass:before { + content: "\e018"; +} +.icon-graduation:before { + content: "\e019"; +} +.icon-ghost:before { + content: "\e01a"; +} +.icon-game-controller:before { + content: "\e01b"; +} +.icon-fire:before { + content: "\e01c"; +} +.icon-eyeglass:before { + content: "\e01d"; +} +.icon-envelope-open:before { + content: "\e01e"; +} +.icon-envelope-letter:before { + content: "\e01f"; +} +.icon-bell:before { + content: "\e027"; +} +.icon-badge:before { + content: "\e028"; +} +.icon-anchor:before { + content: "\e029"; +} +.icon-wallet:before { + content: "\e02a"; +} +.icon-vector:before { + content: "\e02b"; +} +.icon-speech:before { + content: "\e02c"; +} +.icon-puzzle:before { + content: "\e02d"; +} +.icon-printer:before { + content: "\e02e"; +} +.icon-present:before { + content: "\e02f"; +} +.icon-playlist:before { + content: "\e030"; +} +.icon-pin:before { + content: "\e031"; +} +.icon-picture:before { + content: "\e032"; +} +.icon-handbag:before { + content: "\e035"; +} +.icon-globe-alt:before { + content: "\e036"; +} +.icon-globe:before { + content: "\e037"; +} +.icon-folder-alt:before { + content: "\e039"; +} +.icon-folder:before { + content: "\e089"; +} +.icon-film:before { + content: "\e03a"; +} +.icon-feed:before { + content: "\e03b"; +} +.icon-drop:before { + content: "\e03e"; +} +.icon-drawer:before { + content: "\e03f"; +} +.icon-docs:before { + content: "\e040"; +} +.icon-doc:before { + content: "\e085"; +} +.icon-diamond:before { + content: "\e043"; +} +.icon-cup:before { + content: "\e044"; +} +.icon-calculator:before { + content: "\e049"; +} +.icon-bubbles:before { + content: "\e04a"; +} +.icon-briefcase:before { + content: "\e04b"; +} +.icon-book-open:before { + content: "\e04c"; +} +.icon-basket-loaded:before { + content: "\e04d"; +} +.icon-basket:before { + content: "\e04e"; +} +.icon-bag:before { + content: "\e04f"; +} +.icon-action-undo:before { + content: "\e050"; +} +.icon-action-redo:before { + content: "\e051"; +} +.icon-wrench:before { + content: "\e052"; +} +.icon-umbrella:before { + content: "\e053"; +} +.icon-trash:before { + content: "\e054"; +} +.icon-tag:before { + content: "\e055"; +} +.icon-support:before { + content: "\e056"; +} +.icon-frame:before { + content: "\e038"; +} +.icon-size-fullscreen:before { + content: "\e057"; +} +.icon-size-actual:before { + content: "\e058"; +} +.icon-shuffle:before { + content: "\e059"; +} +.icon-share-alt:before { + content: "\e05a"; +} +.icon-share:before { + content: "\e05b"; +} +.icon-rocket:before { + content: "\e05c"; +} +.icon-question:before { + content: "\e05d"; +} +.icon-pie-chart:before { + content: "\e05e"; +} +.icon-pencil:before { + content: "\e05f"; +} +.icon-note:before { + content: "\e060"; +} +.icon-loop:before { + content: "\e064"; +} +.icon-home:before { + content: "\e069"; +} +.icon-grid:before { + content: "\e06a"; +} +.icon-graph:before { + content: "\e06b"; +} +.icon-microphone:before { + content: "\e063"; +} +.icon-music-tone-alt:before { + content: "\e061"; +} +.icon-music-tone:before { + content: "\e062"; +} +.icon-earphones-alt:before { + content: "\e03c"; +} +.icon-earphones:before { + content: "\e03d"; +} +.icon-equalizer:before { + content: "\e06c"; +} +.icon-like:before { + content: "\e068"; +} +.icon-dislike:before { + content: "\e06d"; +} +.icon-control-start:before { + content: "\e06f"; +} +.icon-control-rewind:before { + content: "\e070"; +} +.icon-control-play:before { + content: "\e071"; +} +.icon-control-pause:before { + content: "\e072"; +} +.icon-control-forward:before { + content: "\e073"; +} +.icon-control-end:before { + content: "\e074"; +} +.icon-volume-1:before { + content: "\e09f"; +} +.icon-volume-2:before { + content: "\e0a0"; +} +.icon-volume-off:before { + content: "\e0a1"; +} +.icon-calendar:before { + content: "\e075"; +} +.icon-bulb:before { + content: "\e076"; +} +.icon-chart:before { + content: "\e077"; +} +.icon-ban:before { + content: "\e07c"; +} +.icon-bubble:before { + content: "\e07d"; +} +.icon-camrecorder:before { + content: "\e07e"; +} +.icon-camera:before { + content: "\e07f"; +} +.icon-cloud-download:before { + content: "\e083"; +} +.icon-cloud-upload:before { + content: "\e084"; +} +.icon-envelope:before { + content: "\e086"; +} +.icon-eye:before { + content: "\e087"; +} +.icon-flag:before { + content: "\e088"; +} +.icon-heart:before { + content: "\e08a"; +} +.icon-information:before { + content: "\e08b"; +} +.icon-key:before { + content: "\e08c"; +} +.icon-link:before { + content: "\e08d"; +} +.icon-lock:before { + content: "\e08e"; +} +.icon-lock-open:before { + content: "\e08f"; +} +.icon-magnifier:before { + content: "\e090"; +} +.icon-magnifier-add:before { + content: "\e091"; +} +.icon-magnifier-remove:before { + content: "\e092"; +} +.icon-paper-clip:before { + content: "\e093"; +} +.icon-paper-plane:before { + content: "\e094"; +} +.icon-power:before { + content: "\e097"; +} +.icon-refresh:before { + content: "\e098"; +} +.icon-reload:before { + content: "\e099"; +} +.icon-settings:before { + content: "\e09a"; +} +.icon-star:before { + content: "\e09b"; +} +.icon-symbol-female:before { + content: "\e09c"; +} +.icon-symbol-male:before { + content: "\e09d"; +} +.icon-target:before { + content: "\e09e"; +} +.icon-credit-card:before { + content: "\e025"; +} +.icon-paypal:before { + content: "\e608"; +} +.icon-social-tumblr:before { + content: "\e00a"; +} +.icon-social-twitter:before { + content: "\e009"; +} +.icon-social-facebook:before { + content: "\e00b"; +} +.icon-social-instagram:before { + content: "\e609"; +} +.icon-social-linkedin:before { + content: "\e60a"; +} +.icon-social-pinterest:before { + content: "\e60b"; +} +.icon-social-github:before { + content: "\e60c"; +} +.icon-social-google:before { + content: "\e60d"; +} +.icon-social-reddit:before { + content: "\e60e"; +} +.icon-social-skype:before { + content: "\e60f"; +} +.icon-social-dribbble:before { + content: "\e00d"; +} +.icon-social-behance:before { + content: "\e610"; +} +.icon-social-foursqare:before { + content: "\e611"; +} +.icon-social-soundcloud:before { + content: "\e612"; +} +.icon-social-spotify:before { + content: "\e613"; +} +.icon-social-stumbleupon:before { + content: "\e614"; +} +.icon-social-youtube:before { + content: "\e008"; +} +.icon-social-dropbox:before { + content: "\e00c"; +} +.icon-social-vkontakte:before { + content: "\e618"; +} +.icon-social-steam:before { + content: "\e620"; +} diff --git a/src/main/resources/static/assets/css/fonts.min.css b/src/main/resources/static/assets/css/fonts.min.css new file mode 100644 index 0000000..160b08f --- /dev/null +++ b/src/main/resources/static/assets/css/fonts.min.css @@ -0,0 +1,4 @@ +@font-face{font-family:Flaticon;src:url(../fonts/flaticon/Flaticon.eot);src:url(../fonts/flaticon/Flaticon.eot?#iefix) format("embedded-opentype"),url(../fonts/flaticon/Flaticon.woff) format("woff"),url(../fonts/flaticon/Flaticon.ttf) format("truetype"),url(../fonts/flaticon/Flaticon.svg#Flaticon) format("svg");font-weight:400;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:Flaticon;src:url(../fonts/flaticon/Flaticon.svg#Flaticon) format("svg")}}[class*=" flaticon-"]:before,[class^=flaticon-]:before{font-family:Flaticon;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased}.fi:before{display:inline-block;font-family:Flaticon;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased}.flaticon-delivery-truck:before{content:"\f100"}.flaticon-shopping-bag:before{content:"\f101"}.flaticon-box-3:before{content:"\f102"}.flaticon-box-2:before{content:"\f103"}.flaticon-box-1:before{content:"\f104"}.flaticon-laptop:before{content:"\f105"}.flaticon-coffee-cup:before{content:"\f106"}.flaticon-user-6:before{content:"\f107"}.flaticon-user-5:before{content:"\f108"}.flaticon-remove-user-1:before{content:"\f109"}.flaticon-customer-support:before{content:"\f10a"}.flaticon-user-4:before{content:"\f10b"}.flaticon-user-3:before{content:"\f10c"}.flaticon-user-2:before{content:"\f10d"}.flaticon-remove-user:before{content:"\f10e"}.flaticon-add-user:before{content:"\f10f"}.flaticon-tea-cup:before{content:"\f110"}.flaticon-pen:before{content:"\f111"}.flaticon-desk:before{content:"\f112"}.flaticon-ruler:before{content:"\f113"}.flaticon-pencil:before{content:"\f114"}.flaticon-analytics:before{content:"\f115"}.flaticon-google-plus:before{content:"\f116"}.flaticon-dribbble:before{content:"\f117"}.flaticon-whatsapp:before{content:"\f118"}.flaticon-twitter:before{content:"\f119"}.flaticon-behance:before{content:"\f11a"}.flaticon-instagram:before{content:"\f11b"}.flaticon-android:before{content:"\f11c"}.flaticon-apple:before{content:"\f11d"}.flaticon-windows:before{content:"\f11e"}.flaticon-pinterest:before{content:"\f11f"}.flaticon-youtube:before{content:"\f120"}.flaticon-paypal:before{content:"\f121"}.flaticon-linkedin:before{content:"\f122"}.flaticon-facebook:before{content:"\f123"}.flaticon-lock-1:before{content:"\f124"}.flaticon-lock:before{content:"\f125"}.flaticon-profile-1:before{content:"\f126"}.flaticon-profile:before{content:"\f127"}.flaticon-user-1:before{content:"\f128"}.flaticon-user:before{content:"\f129"}.flaticon-users:before{content:"\f12a"}.flaticon-message:before{content:"\f12b"}.flaticon-placeholder-1:before{content:"\f12c"}.flaticon-location:before{content:"\f12d"}.flaticon-arrows-2:before{content:"\f12e"}.flaticon-technology-2:before{content:"\f12f"}.flaticon-multimedia-2:before{content:"\f130"}.flaticon-multimedia-1:before{content:"\f131"}.flaticon-close:before{content:"\f132"}.flaticon-home:before{content:"\f133"}.flaticon-circle:before{content:"\f134"}.flaticon-arrow:before{content:"\f135"}.flaticon-mark-1:before{content:"\f136"}.flaticon-mark:before{content:"\f137"}.flaticon-shapes-1:before{content:"\f138"}.flaticon-search-2:before{content:"\f139"}.flaticon-interface-7:before{content:"\f13a"}.flaticon-suitcase:before{content:"\f13b"}.flaticon-chain-1:before{content:"\f13c"}.flaticon-chain:before{content:"\f13d"}.flaticon-agenda-1:before{content:"\f13e"}.flaticon-interface-6:before{content:"\f13f"}.flaticon-calendar:before{content:"\f140"}.flaticon-list:before{content:"\f141"}.flaticon-file-1:before{content:"\f142"}.flaticon-file:before{content:"\f143"}.flaticon-interface-5:before{content:"\f144"}.flaticon-folder:before{content:"\f145"}.flaticon-stopwatch:before{content:"\f146"}.flaticon-time:before{content:"\f147"}.flaticon-clock-1:before{content:"\f148"}.flaticon-search-1:before{content:"\f149"}.flaticon-alarm-1:before{content:"\f14a"}.flaticon-alarm:before{content:"\f14b"}.flaticon-present:before{content:"\f14c"}.flaticon-layers-1:before{content:"\f14d"}.flaticon-settings:before{content:"\f14e"}.flaticon-attachment:before{content:"\f14f"}.flaticon-gestures:before{content:"\f150"}.flaticon-tool:before{content:"\f151"}.flaticon-interface-4:before{content:"\f152"}.flaticon-interface-3:before{content:"\f153"}.flaticon-agenda:before{content:"\f154"}.flaticon-shapes:before{content:"\f155"}.flaticon-symbol-1:before{content:"\f156"}.flaticon-symbol:before{content:"\f157"}.flaticon-interface-2:before{content:"\f158"}.flaticon-layers:before{content:"\f159"}.flaticon-clock:before{content:"\f15a"}.flaticon-web-1:before{content:"\f15b"}.flaticon-internet:before{content:"\f15c"}.flaticon-placeholder:before{content:"\f15d"}.flaticon-signs-3:before{content:"\f15e"}.flaticon-star-1:before{content:"\f15f"}.flaticon-web:before{content:"\f160"}.flaticon-star:before{content:"\f161"}.flaticon-like-1:before{content:"\f162"}.flaticon-like:before{content:"\f163"}.flaticon-cloud:before{content:"\f164"}.flaticon-database:before{content:"\f165"}.flaticon-technology-1:before{content:"\f166"}.flaticon-idea:before{content:"\f167"}.flaticon-search:before{content:"\f168"}.flaticon-wifi:before{content:"\f169"}.flaticon-hands-1:before{content:"\f16a"}.flaticon-hands:before{content:"\f16b"}.flaticon-bars-2:before{content:"\f16c"}.flaticon-arrows-1:before{content:"\f16d"}.flaticon-interface-1:before{content:"\f16e"}.flaticon-network:before{content:"\f16f"}.flaticon-share-1:before{content:"\f170"}.flaticon-share:before{content:"\f171"}.flaticon-bars-1:before{content:"\f172"}.flaticon-cross-1:before{content:"\f173"}.flaticon-line-1:before{content:"\f174"}.flaticon-signs-2:before{content:"\f175"}.flaticon-check:before{content:"\f176"}.flaticon-technology:before{content:"\f177"}.flaticon-bars:before{content:"\f178"}.flaticon-cross:before{content:"\f179"}.flaticon-add:before{content:"\f17a"}.flaticon-power:before{content:"\f17b"}.flaticon-signs-1:before{content:"\f17c"}.flaticon-round:before{content:"\f17d"}.flaticon-exclamation:before{content:"\f17e"}.flaticon-success:before{content:"\f17f"}.flaticon-error:before{content:"\f180"}.flaticon-line:before{content:"\f181"}.flaticon-plus:before{content:"\f182"}.flaticon-interface:before{content:"\f183"}.flaticon-signs:before{content:"\f184"}.flaticon-play-button-1:before{content:"\f185"}.flaticon-play-button:before{content:"\f186"}.flaticon-music-player:before{content:"\f187"}.flaticon-medical:before{content:"\f188"}.flaticon-photo-camera:before{content:"\f189"}.flaticon-picture:before{content:"\f18a"}.flaticon-multimedia:before{content:"\f18b"}.flaticon-game-controller:before{content:"\f18c"}.flaticon-imac:before{content:"\f18d"}.flaticon-paint-palette:before{content:"\f18e"}.flaticon-envelope-3:before{content:"\f18f"}.flaticon-envelope-2:before{content:"\f190"}.flaticon-envelope-1:before{content:"\f191"}.flaticon-envelope:before{content:"\f192"}.flaticon-mailbox:before{content:"\f193"}.flaticon-inbox:before{content:"\f194"}.flaticon-chat-8:before{content:"\f195"}.flaticon-chat-7:before{content:"\f196"}.flaticon-chat-6:before{content:"\f197"}.flaticon-chat-5:before{content:"\f198"}.flaticon-chat-4:before{content:"\f199"}.flaticon-chat-3:before{content:"\f19a"}.flaticon-chat-2:before{content:"\f19b"}.flaticon-chat-1:before{content:"\f19c"}.flaticon-chat:before{content:"\f19d"}.flaticon-archive:before{content:"\f19e"}.flaticon-diagram:before{content:"\f19f"}.flaticon-graph-2:before{content:"\f1a0"}.flaticon-graph-1:before{content:"\f1a1"}.flaticon-graph:before{content:"\f1a2"}.flaticon-chart-pie:before{content:"\f1a3"}.flaticon-presentation:before{content:"\f1a4"}.flaticon-store:before{content:"\f1a5"}.flaticon-coins:before{content:"\f1a6"}.flaticon-credit-card-1:before{content:"\f1a7"}.flaticon-credit-card:before{content:"\f1a8"}.flaticon-cart-1:before{content:"\f1a9"}.flaticon-cart:before{content:"\f1aa"}.flaticon-price-tag:before{content:"\f1ab"}.flaticon-box:before{content:"\f1ac"}.flaticon-right-arrow-4:before{content:"\f1ad"}.flaticon-left-arrow-4:before{content:"\f1ae"}.flaticon-up-arrow-3:before{content:"\f1af"}.flaticon-download-1:before{content:"\f1b0"}.flaticon-down-arrow-3:before{content:"\f1b1"}.flaticon-up-arrow-2:before{content:"\f1b2"}.flaticon-left-arrow-3:before{content:"\f1b3"}.flaticon-right-arrow-3:before{content:"\f1b4"}.flaticon-down-arrow-2:before{content:"\f1b5"}.flaticon-arrows:before{content:"\f1b6"}.flaticon-left-arrow-2:before{content:"\f1b7"}.flaticon-right-arrow-2:before{content:"\f1b8"}.flaticon-upward:before{content:"\f1b9"}.flaticon-download:before{content:"\f1ba"}.flaticon-back:before{content:"\f1bb"}.flaticon-next:before{content:"\f1bc"}.flaticon-up-arrow-1:before{content:"\f1bd"}.flaticon-down-arrow-1:before{content:"\f1be"}.flaticon-left-arrow-1:before{content:"\f1bf"}.flaticon-right-arrow-1:before{content:"\f1c0"}.flaticon-up-arrow:before{content:"\f1c1"}.flaticon-down-arrow:before{content:"\f1c2"}.flaticon-left-arrow:before{content:"\f1c3"}.flaticon-right-arrow:before{content:"\f1c4"}.flaticon-expand:before{content:"\f1c5"}.flaticon-repeat:before{content:"\f1c6"}/*! + * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;src:url(../fonts/fontawesome/fa-brands-400.eot);src:url(../fonts/fontawesome/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fontawesome/fa-brands-400.woff2) format("woff2"),url(../fonts/fontawesome/fa-brands-400.woff) format("woff"),url(../fonts/fontawesome/fa-brands-400.ttf) format("truetype"),url(../fonts/fontawesome/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands'}@font-face{font-family:'Font Awesome 5 Regular';font-style:normal;font-weight:400;src:url(../fonts/fontawesome/fa-regular-400.eot);src:url(../fonts/fontawesome/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fontawesome/fa-regular-400.woff2) format("woff2"),url(../fonts/fontawesome/fa-regular-400.woff) format("woff"),url(../fonts/fontawesome/fa-regular-400.ttf) format("truetype"),url(../fonts/fontawesome/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Regular';font-weight:400}@font-face{font-family:'Font Awesome 5 Solid';font-style:normal;font-weight:900;src:url(../fonts/fontawesome/fa-solid-900.eot);src:url(../fonts/fontawesome/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fontawesome/fa-solid-900.woff2) format("woff2"),url(../fonts/fontawesome/fa-solid-900.woff) format("woff"),url(../fonts/fontawesome/fa-solid-900.ttf) format("truetype"),url(../fonts/fontawesome/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Solid';font-weight:900}@font-face{font-family:simple-line-icons;src:url(../fonts/simple-line-icons/Simple-Line-Icons.eot?v=2.4.0);src:url(../fonts/simple-line-icons/Simple-Line-Icons.eot?v=2.4.0#iefix) format('embedded-opentype'),url(../fonts/simple-line-icons/Simple-Line-Icons.woff2?v=2.4.0) format('woff2'),url(../fonts/simple-line-icons/Simple-Line-Icons.ttf?v=2.4.0) format('truetype'),url(../fonts/simple-line-icons/Simple-Line-Icons.woff?v=2.4.0) format('woff'),url(../fonts/simple-line-icons/Simple-Line-Icons.svg?v=2.4.0#simple-line-icons) format('svg');font-weight:400;font-style:normal}.icon-action-redo,.icon-action-undo,.icon-anchor,.icon-arrow-down,.icon-arrow-down-circle,.icon-arrow-left,.icon-arrow-left-circle,.icon-arrow-right,.icon-arrow-right-circle,.icon-arrow-up,.icon-arrow-up-circle,.icon-badge,.icon-bag,.icon-ban,.icon-basket,.icon-basket-loaded,.icon-bell,.icon-book-open,.icon-briefcase,.icon-bubble,.icon-bubbles,.icon-bulb,.icon-calculator,.icon-calendar,.icon-call-end,.icon-call-in,.icon-call-out,.icon-camera,.icon-camrecorder,.icon-chart,.icon-check,.icon-chemistry,.icon-clock,.icon-close,.icon-cloud-download,.icon-cloud-upload,.icon-compass,.icon-control-end,.icon-control-forward,.icon-control-pause,.icon-control-play,.icon-control-rewind,.icon-control-start,.icon-credit-card,.icon-crop,.icon-cup,.icon-cursor,.icon-cursor-move,.icon-diamond,.icon-direction,.icon-directions,.icon-disc,.icon-dislike,.icon-doc,.icon-docs,.icon-drawer,.icon-drop,.icon-earphones,.icon-earphones-alt,.icon-emotsmile,.icon-energy,.icon-envelope,.icon-envelope-letter,.icon-envelope-open,.icon-equalizer,.icon-event,.icon-exclamation,.icon-eye,.icon-eyeglass,.icon-feed,.icon-film,.icon-fire,.icon-flag,.icon-folder,.icon-folder-alt,.icon-frame,.icon-game-controller,.icon-ghost,.icon-globe,.icon-globe-alt,.icon-graduation,.icon-graph,.icon-grid,.icon-handbag,.icon-heart,.icon-home,.icon-hourglass,.icon-information,.icon-key,.icon-layers,.icon-like,.icon-link,.icon-list,.icon-location-pin,.icon-lock,.icon-lock-open,.icon-login,.icon-logout,.icon-loop,.icon-magic-wand,.icon-magnet,.icon-magnifier,.icon-magnifier-add,.icon-magnifier-remove,.icon-map,.icon-menu,.icon-microphone,.icon-minus,.icon-mouse,.icon-music-tone,.icon-music-tone-alt,.icon-mustache,.icon-note,.icon-notebook,.icon-options,.icon-options-vertical,.icon-organization,.icon-paper-clip,.icon-paper-plane,.icon-paypal,.icon-pencil,.icon-people,.icon-phone,.icon-picture,.icon-pie-chart,.icon-pin,.icon-plane,.icon-playlist,.icon-plus,.icon-power,.icon-present,.icon-printer,.icon-puzzle,.icon-question,.icon-refresh,.icon-reload,.icon-rocket,.icon-screen-desktop,.icon-screen-smartphone,.icon-screen-tablet,.icon-settings,.icon-share,.icon-share-alt,.icon-shield,.icon-shuffle,.icon-size-actual,.icon-size-fullscreen,.icon-social-behance,.icon-social-dribbble,.icon-social-dropbox,.icon-social-facebook,.icon-social-foursqare,.icon-social-github,.icon-social-google,.icon-social-instagram,.icon-social-linkedin,.icon-social-pinterest,.icon-social-reddit,.icon-social-skype,.icon-social-soundcloud,.icon-social-spotify,.icon-social-steam,.icon-social-stumbleupon,.icon-social-tumblr,.icon-social-twitter,.icon-social-vkontakte,.icon-social-youtube,.icon-speech,.icon-speedometer,.icon-star,.icon-support,.icon-symbol-female,.icon-symbol-male,.icon-tag,.icon-target,.icon-trash,.icon-trophy,.icon-umbrella,.icon-user,.icon-user-female,.icon-user-follow,.icon-user-following,.icon-user-unfollow,.icon-vector,.icon-volume-1,.icon-volume-2,.icon-volume-off,.icon-wallet,.icon-wrench{font-family:simple-line-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-user:before{content:"\e005"}.icon-people:before{content:"\e001"}.icon-user-female:before{content:"\e000"}.icon-user-follow:before{content:"\e002"}.icon-user-following:before{content:"\e003"}.icon-user-unfollow:before{content:"\e004"}.icon-login:before{content:"\e066"}.icon-logout:before{content:"\e065"}.icon-emotsmile:before{content:"\e021"}.icon-phone:before{content:"\e600"}.icon-call-end:before{content:"\e048"}.icon-call-in:before{content:"\e047"}.icon-call-out:before{content:"\e046"}.icon-map:before{content:"\e033"}.icon-location-pin:before{content:"\e096"}.icon-direction:before{content:"\e042"}.icon-directions:before{content:"\e041"}.icon-compass:before{content:"\e045"}.icon-layers:before{content:"\e034"}.icon-menu:before{content:"\e601"}.icon-list:before{content:"\e067"}.icon-options-vertical:before{content:"\e602"}.icon-options:before{content:"\e603"}.icon-arrow-down:before{content:"\e604"}.icon-arrow-left:before{content:"\e605"}.icon-arrow-right:before{content:"\e606"}.icon-arrow-up:before{content:"\e607"}.icon-arrow-up-circle:before{content:"\e078"}.icon-arrow-left-circle:before{content:"\e07a"}.icon-arrow-right-circle:before{content:"\e079"}.icon-arrow-down-circle:before{content:"\e07b"}.icon-check:before{content:"\e080"}.icon-clock:before{content:"\e081"}.icon-plus:before{content:"\e095"}.icon-minus:before{content:"\e615"}.icon-close:before{content:"\e082"}.icon-event:before{content:"\e619"}.icon-exclamation:before{content:"\e617"}.icon-organization:before{content:"\e616"}.icon-trophy:before{content:"\e006"}.icon-screen-smartphone:before{content:"\e010"}.icon-screen-desktop:before{content:"\e011"}.icon-plane:before{content:"\e012"}.icon-notebook:before{content:"\e013"}.icon-mustache:before{content:"\e014"}.icon-mouse:before{content:"\e015"}.icon-magnet:before{content:"\e016"}.icon-energy:before{content:"\e020"}.icon-disc:before{content:"\e022"}.icon-cursor:before{content:"\e06e"}.icon-cursor-move:before{content:"\e023"}.icon-crop:before{content:"\e024"}.icon-chemistry:before{content:"\e026"}.icon-speedometer:before{content:"\e007"}.icon-shield:before{content:"\e00e"}.icon-screen-tablet:before{content:"\e00f"}.icon-magic-wand:before{content:"\e017"}.icon-hourglass:before{content:"\e018"}.icon-graduation:before{content:"\e019"}.icon-ghost:before{content:"\e01a"}.icon-game-controller:before{content:"\e01b"}.icon-fire:before{content:"\e01c"}.icon-eyeglass:before{content:"\e01d"}.icon-envelope-open:before{content:"\e01e"}.icon-envelope-letter:before{content:"\e01f"}.icon-bell:before{content:"\e027"}.icon-badge:before{content:"\e028"}.icon-anchor:before{content:"\e029"}.icon-wallet:before{content:"\e02a"}.icon-vector:before{content:"\e02b"}.icon-speech:before{content:"\e02c"}.icon-puzzle:before{content:"\e02d"}.icon-printer:before{content:"\e02e"}.icon-present:before{content:"\e02f"}.icon-playlist:before{content:"\e030"}.icon-pin:before{content:"\e031"}.icon-picture:before{content:"\e032"}.icon-handbag:before{content:"\e035"}.icon-globe-alt:before{content:"\e036"}.icon-globe:before{content:"\e037"}.icon-folder-alt:before{content:"\e039"}.icon-folder:before{content:"\e089"}.icon-film:before{content:"\e03a"}.icon-feed:before{content:"\e03b"}.icon-drop:before{content:"\e03e"}.icon-drawer:before{content:"\e03f"}.icon-docs:before{content:"\e040"}.icon-doc:before{content:"\e085"}.icon-diamond:before{content:"\e043"}.icon-cup:before{content:"\e044"}.icon-calculator:before{content:"\e049"}.icon-bubbles:before{content:"\e04a"}.icon-briefcase:before{content:"\e04b"}.icon-book-open:before{content:"\e04c"}.icon-basket-loaded:before{content:"\e04d"}.icon-basket:before{content:"\e04e"}.icon-bag:before{content:"\e04f"}.icon-action-undo:before{content:"\e050"}.icon-action-redo:before{content:"\e051"}.icon-wrench:before{content:"\e052"}.icon-umbrella:before{content:"\e053"}.icon-trash:before{content:"\e054"}.icon-tag:before{content:"\e055"}.icon-support:before{content:"\e056"}.icon-frame:before{content:"\e038"}.icon-size-fullscreen:before{content:"\e057"}.icon-size-actual:before{content:"\e058"}.icon-shuffle:before{content:"\e059"}.icon-share-alt:before{content:"\e05a"}.icon-share:before{content:"\e05b"}.icon-rocket:before{content:"\e05c"}.icon-question:before{content:"\e05d"}.icon-pie-chart:before{content:"\e05e"}.icon-pencil:before{content:"\e05f"}.icon-note:before{content:"\e060"}.icon-loop:before{content:"\e064"}.icon-home:before{content:"\e069"}.icon-grid:before{content:"\e06a"}.icon-graph:before{content:"\e06b"}.icon-microphone:before{content:"\e063"}.icon-music-tone-alt:before{content:"\e061"}.icon-music-tone:before{content:"\e062"}.icon-earphones-alt:before{content:"\e03c"}.icon-earphones:before{content:"\e03d"}.icon-equalizer:before{content:"\e06c"}.icon-like:before{content:"\e068"}.icon-dislike:before{content:"\e06d"}.icon-control-start:before{content:"\e06f"}.icon-control-rewind:before{content:"\e070"}.icon-control-play:before{content:"\e071"}.icon-control-pause:before{content:"\e072"}.icon-control-forward:before{content:"\e073"}.icon-control-end:before{content:"\e074"}.icon-volume-1:before{content:"\e09f"}.icon-volume-2:before{content:"\e0a0"}.icon-volume-off:before{content:"\e0a1"}.icon-calendar:before{content:"\e075"}.icon-bulb:before{content:"\e076"}.icon-chart:before{content:"\e077"}.icon-ban:before{content:"\e07c"}.icon-bubble:before{content:"\e07d"}.icon-camrecorder:before{content:"\e07e"}.icon-camera:before{content:"\e07f"}.icon-cloud-download:before{content:"\e083"}.icon-cloud-upload:before{content:"\e084"}.icon-envelope:before{content:"\e086"}.icon-eye:before{content:"\e087"}.icon-flag:before{content:"\e088"}.icon-heart:before{content:"\e08a"}.icon-information:before{content:"\e08b"}.icon-key:before{content:"\e08c"}.icon-link:before{content:"\e08d"}.icon-lock:before{content:"\e08e"}.icon-lock-open:before{content:"\e08f"}.icon-magnifier:before{content:"\e090"}.icon-magnifier-add:before{content:"\e091"}.icon-magnifier-remove:before{content:"\e092"}.icon-paper-clip:before{content:"\e093"}.icon-paper-plane:before{content:"\e094"}.icon-power:before{content:"\e097"}.icon-refresh:before{content:"\e098"}.icon-reload:before{content:"\e099"}.icon-settings:before{content:"\e09a"}.icon-star:before{content:"\e09b"}.icon-symbol-female:before{content:"\e09c"}.icon-symbol-male:before{content:"\e09d"}.icon-target:before{content:"\e09e"}.icon-credit-card:before{content:"\e025"}.icon-paypal:before{content:"\e608"}.icon-social-tumblr:before{content:"\e00a"}.icon-social-twitter:before{content:"\e009"}.icon-social-facebook:before{content:"\e00b"}.icon-social-instagram:before{content:"\e609"}.icon-social-linkedin:before{content:"\e60a"}.icon-social-pinterest:before{content:"\e60b"}.icon-social-github:before{content:"\e60c"}.icon-social-google:before{content:"\e60d"}.icon-social-reddit:before{content:"\e60e"}.icon-social-skype:before{content:"\e60f"}.icon-social-dribbble:before{content:"\e00d"}.icon-social-behance:before{content:"\e610"}.icon-social-foursqare:before{content:"\e611"}.icon-social-soundcloud:before{content:"\e612"}.icon-social-spotify:before{content:"\e613"}.icon-social-stumbleupon:before{content:"\e614"}.icon-social-youtube:before{content:"\e008"}.icon-social-dropbox:before{content:"\e00c"}.icon-social-vkontakte:before{content:"\e618"}.icon-social-steam:before{content:"\e620"} \ No newline at end of file diff --git a/src/main/resources/static/assets/fonts/flaticon/Flaticon.eot b/src/main/resources/static/assets/fonts/flaticon/Flaticon.eot new file mode 100644 index 0000000000000000000000000000000000000000..997fe95ba7532a43f7ead779fdd92980900b8edc GIT binary patch literal 60186 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 B%!dE~ literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/fonts/flaticon/Flaticon.svg b/src/main/resources/static/assets/fonts/flaticon/Flaticon.svg new file mode 100644 index 0000000..72645f7 --- /dev/null +++ b/src/main/resources/static/assets/fonts/flaticon/Flaticon.svg @@ -0,0 +1,2100 @@ + + + + + +Created by FontForge 20160405 at Tue Mar 13 03:24:24 2018 + By Apache +Copyright (c) 2018, Apache + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/static/assets/fonts/flaticon/Flaticon.ttf b/src/main/resources/static/assets/fonts/flaticon/Flaticon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..841817c02c6ff6746da402b53559cc4ed89ecadd GIT binary patch literal 60008 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 Lo`3bf*Vg|JGC8=X literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/fonts/flaticon/Flaticon.woff b/src/main/resources/static/assets/fonts/flaticon/Flaticon.woff new file mode 100644 index 0000000000000000000000000000000000000000..0eb59ee4bb8f27fdb9b433f089c6e99910d1c61b GIT binary patch literal 34720 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 TyTBn<)c#OM$l<+u6A;LMQfMSF literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/fonts/flaticon/_flaticon.scss b/src/main/resources/static/assets/fonts/flaticon/_flaticon.scss new file mode 100644 index 0000000..a8a32c8 --- /dev/null +++ b/src/main/resources/static/assets/fonts/flaticon/_flaticon.scss @@ -0,0 +1,437 @@ + /* + Flaticon icon font: Flaticon + Creation date: 13/03/2018 03:24 + */ + + @font-face { + font-family: "Flaticon"; + src: url("./Flaticon.eot"); + src: url("./Flaticon.eot?#iefix") format("embedded-opentype"), + url("./Flaticon.woff") format("woff"), + url("./Flaticon.ttf") format("truetype"), + url("./Flaticon.svg#Flaticon") format("svg"); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "Flaticon"; + src: url("./Flaticon.svg#Flaticon") format("svg"); + } +} + + .fi:before{ + display: inline-block; + font-family: "Flaticon"; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-rendering: optimizeLegibility; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; + } + + .flaticon-delivery-truck:before { content: "\f100"; } +.flaticon-shopping-bag:before { content: "\f101"; } +.flaticon-box-3:before { content: "\f102"; } +.flaticon-box-2:before { content: "\f103"; } +.flaticon-box-1:before { content: "\f104"; } +.flaticon-laptop:before { content: "\f105"; } +.flaticon-coffee-cup:before { content: "\f106"; } +.flaticon-user-6:before { content: "\f107"; } +.flaticon-user-5:before { content: "\f108"; } +.flaticon-remove-user-1:before { content: "\f109"; } +.flaticon-customer-support:before { content: "\f10a"; } +.flaticon-user-4:before { content: "\f10b"; } +.flaticon-user-3:before { content: "\f10c"; } +.flaticon-user-2:before { content: "\f10d"; } +.flaticon-remove-user:before { content: "\f10e"; } +.flaticon-add-user:before { content: "\f10f"; } +.flaticon-tea-cup:before { content: "\f110"; } +.flaticon-pen:before { content: "\f111"; } +.flaticon-desk:before { content: "\f112"; } +.flaticon-ruler:before { content: "\f113"; } +.flaticon-pencil:before { content: "\f114"; } +.flaticon-analytics:before { content: "\f115"; } +.flaticon-google-plus:before { content: "\f116"; } +.flaticon-dribbble:before { content: "\f117"; } +.flaticon-whatsapp:before { content: "\f118"; } +.flaticon-twitter:before { content: "\f119"; } +.flaticon-behance:before { content: "\f11a"; } +.flaticon-instagram:before { content: "\f11b"; } +.flaticon-android:before { content: "\f11c"; } +.flaticon-apple:before { content: "\f11d"; } +.flaticon-windows:before { content: "\f11e"; } +.flaticon-pinterest:before { content: "\f11f"; } +.flaticon-youtube:before { content: "\f120"; } +.flaticon-paypal:before { content: "\f121"; } +.flaticon-linkedin:before { content: "\f122"; } +.flaticon-facebook:before { content: "\f123"; } +.flaticon-lock-1:before { content: "\f124"; } +.flaticon-lock:before { content: "\f125"; } +.flaticon-profile-1:before { content: "\f126"; } +.flaticon-profile:before { content: "\f127"; } +.flaticon-user-1:before { content: "\f128"; } +.flaticon-user:before { content: "\f129"; } +.flaticon-users:before { content: "\f12a"; } +.flaticon-message:before { content: "\f12b"; } +.flaticon-placeholder-1:before { content: "\f12c"; } +.flaticon-location:before { content: "\f12d"; } +.flaticon-arrows-2:before { content: "\f12e"; } +.flaticon-technology-2:before { content: "\f12f"; } +.flaticon-multimedia-2:before { content: "\f130"; } +.flaticon-multimedia-1:before { content: "\f131"; } +.flaticon-close:before { content: "\f132"; } +.flaticon-home:before { content: "\f133"; } +.flaticon-circle:before { content: "\f134"; } +.flaticon-arrow:before { content: "\f135"; } +.flaticon-mark-1:before { content: "\f136"; } +.flaticon-mark:before { content: "\f137"; } +.flaticon-shapes-1:before { content: "\f138"; } +.flaticon-search-2:before { content: "\f139"; } +.flaticon-interface-7:before { content: "\f13a"; } +.flaticon-suitcase:before { content: "\f13b"; } +.flaticon-chain-1:before { content: "\f13c"; } +.flaticon-chain:before { content: "\f13d"; } +.flaticon-agenda-1:before { content: "\f13e"; } +.flaticon-interface-6:before { content: "\f13f"; } +.flaticon-calendar:before { content: "\f140"; } +.flaticon-list:before { content: "\f141"; } +.flaticon-file-1:before { content: "\f142"; } +.flaticon-file:before { content: "\f143"; } +.flaticon-interface-5:before { content: "\f144"; } +.flaticon-folder:before { content: "\f145"; } +.flaticon-stopwatch:before { content: "\f146"; } +.flaticon-time:before { content: "\f147"; } +.flaticon-clock-1:before { content: "\f148"; } +.flaticon-search-1:before { content: "\f149"; } +.flaticon-music-1:before { content: "\f14a"; } +.flaticon-music:before { content: "\f14b"; } +.flaticon-present:before { content: "\f14c"; } +.flaticon-layers-1:before { content: "\f14d"; } +.flaticon-settings:before { content: "\f14e"; } +.flaticon-attachment:before { content: "\f14f"; } +.flaticon-gestures:before { content: "\f150"; } +.flaticon-tool:before { content: "\f151"; } +.flaticon-interface-4:before { content: "\f152"; } +.flaticon-interface-3:before { content: "\f153"; } +.flaticon-agenda:before { content: "\f154"; } +.flaticon-shapes:before { content: "\f155"; } +.flaticon-symbol-1:before { content: "\f156"; } +.flaticon-symbol:before { content: "\f157"; } +.flaticon-interface-2:before { content: "\f158"; } +.flaticon-layers:before { content: "\f159"; } +.flaticon-clock:before { content: "\f15a"; } +.flaticon-web-1:before { content: "\f15b"; } +.flaticon-internet:before { content: "\f15c"; } +.flaticon-placeholder:before { content: "\f15d"; } +.flaticon-signs-3:before { content: "\f15e"; } +.flaticon-star-1:before { content: "\f15f"; } +.flaticon-web:before { content: "\f160"; } +.flaticon-star:before { content: "\f161"; } +.flaticon-like-1:before { content: "\f162"; } +.flaticon-like:before { content: "\f163"; } +.flaticon-cloud:before { content: "\f164"; } +.flaticon-database:before { content: "\f165"; } +.flaticon-technology-1:before { content: "\f166"; } +.flaticon-idea:before { content: "\f167"; } +.flaticon-search:before { content: "\f168"; } +.flaticon-wifi:before { content: "\f169"; } +.flaticon-hands-1:before { content: "\f16a"; } +.flaticon-hands:before { content: "\f16b"; } +.flaticon-bars-2:before { content: "\f16c"; } +.flaticon-arrows-1:before { content: "\f16d"; } +.flaticon-interface-1:before { content: "\f16e"; } +.flaticon-network:before { content: "\f16f"; } +.flaticon-share-1:before { content: "\f170"; } +.flaticon-share:before { content: "\f171"; } +.flaticon-bars-1:before { content: "\f172"; } +.flaticon-cross-1:before { content: "\f173"; } +.flaticon-line-1:before { content: "\f174"; } +.flaticon-signs-2:before { content: "\f175"; } +.flaticon-check:before { content: "\f176"; } +.flaticon-technology:before { content: "\f177"; } +.flaticon-bars:before { content: "\f178"; } +.flaticon-cross:before { content: "\f179"; } +.flaticon-add:before { content: "\f17a"; } +.flaticon-power:before { content: "\f17b"; } +.flaticon-signs-1:before { content: "\f17c"; } +.flaticon-round:before { content: "\f17d"; } +.flaticon-exclamation:before { content: "\f17e"; } +.flaticon-success:before { content: "\f17f"; } +.flaticon-error:before { content: "\f180"; } +.flaticon-line:before { content: "\f181"; } +.flaticon-plus:before { content: "\f182"; } +.flaticon-interface:before { content: "\f183"; } +.flaticon-signs:before { content: "\f184"; } +.flaticon-play-button-1:before { content: "\f185"; } +.flaticon-play-button:before { content: "\f186"; } +.flaticon-music-player:before { content: "\f187"; } +.flaticon-medical:before { content: "\f188"; } +.flaticon-photo-camera:before { content: "\f189"; } +.flaticon-picture:before { content: "\f18a"; } +.flaticon-multimedia:before { content: "\f18b"; } +.flaticon-game-controller:before { content: "\f18c"; } +.flaticon-imac:before { content: "\f18d"; } +.flaticon-paint-palette:before { content: "\f18e"; } +.flaticon-envelope-3:before { content: "\f18f"; } +.flaticon-envelope-2:before { content: "\f190"; } +.flaticon-envelope-1:before { content: "\f191"; } +.flaticon-envelope:before { content: "\f192"; } +.flaticon-mailbox:before { content: "\f193"; } +.flaticon-inbox:before { content: "\f194"; } +.flaticon-chat-8:before { content: "\f195"; } +.flaticon-chat-7:before { content: "\f196"; } +.flaticon-chat-6:before { content: "\f197"; } +.flaticon-chat-5:before { content: "\f198"; } +.flaticon-chat-4:before { content: "\f199"; } +.flaticon-chat-3:before { content: "\f19a"; } +.flaticon-chat-2:before { content: "\f19b"; } +.flaticon-chat-1:before { content: "\f19c"; } +.flaticon-chat:before { content: "\f19d"; } +.flaticon-archive:before { content: "\f19e"; } +.flaticon-diagram:before { content: "\f19f"; } +.flaticon-graph-2:before { content: "\f1a0"; } +.flaticon-graph-1:before { content: "\f1a1"; } +.flaticon-graph:before { content: "\f1a2"; } +.flaticon-chart-pie:before { content: "\f1a3"; } +.flaticon-presentation:before { content: "\f1a4"; } +.flaticon-store:before { content: "\f1a5"; } +.flaticon-coins:before { content: "\f1a6"; } +.flaticon-credit-card-1:before { content: "\f1a7"; } +.flaticon-credit-card:before { content: "\f1a8"; } +.flaticon-cart-1:before { content: "\f1a9"; } +.flaticon-cart:before { content: "\f1aa"; } +.flaticon-price-tag:before { content: "\f1ab"; } +.flaticon-box:before { content: "\f1ac"; } +.flaticon-right-arrow-4:before { content: "\f1ad"; } +.flaticon-left-arrow-4:before { content: "\f1ae"; } +.flaticon-up-arrow-3:before { content: "\f1af"; } +.flaticon-download-1:before { content: "\f1b0"; } +.flaticon-down-arrow-3:before { content: "\f1b1"; } +.flaticon-up-arrow-2:before { content: "\f1b2"; } +.flaticon-left-arrow-3:before { content: "\f1b3"; } +.flaticon-right-arrow-3:before { content: "\f1b4"; } +.flaticon-down-arrow-2:before { content: "\f1b5"; } +.flaticon-arrows:before { content: "\f1b6"; } +.flaticon-left-arrow-2:before { content: "\f1b7"; } +.flaticon-right-arrow-2:before { content: "\f1b8"; } +.flaticon-upward:before { content: "\f1b9"; } +.flaticon-download:before { content: "\f1ba"; } +.flaticon-back:before { content: "\f1bb"; } +.flaticon-next:before { content: "\f1bc"; } +.flaticon-up-arrow-1:before { content: "\f1bd"; } +.flaticon-down-arrow-1:before { content: "\f1be"; } +.flaticon-left-arrow-1:before { content: "\f1bf"; } +.flaticon-right-arrow-1:before { content: "\f1c0"; } +.flaticon-up-arrow:before { content: "\f1c1"; } +.flaticon-down-arrow:before { content: "\f1c2"; } +.flaticon-left-arrow:before { content: "\f1c3"; } +.flaticon-right-arrow:before { content: "\f1c4"; } +.flaticon-expand:before { content: "\f1c5"; } +.flaticon-repeat:before { content: "\f1c6"; } + + $font-Flaticon-delivery-truck: "\f100"; + $font-Flaticon-shopping-bag: "\f101"; + $font-Flaticon-box-3: "\f102"; + $font-Flaticon-box-2: "\f103"; + $font-Flaticon-box-1: "\f104"; + $font-Flaticon-laptop: "\f105"; + $font-Flaticon-coffee-cup: "\f106"; + $font-Flaticon-user-6: "\f107"; + $font-Flaticon-user-5: "\f108"; + $font-Flaticon-remove-user-1: "\f109"; + $font-Flaticon-customer-support: "\f10a"; + $font-Flaticon-user-4: "\f10b"; + $font-Flaticon-user-3: "\f10c"; + $font-Flaticon-user-2: "\f10d"; + $font-Flaticon-remove-user: "\f10e"; + $font-Flaticon-add-user: "\f10f"; + $font-Flaticon-tea-cup: "\f110"; + $font-Flaticon-pen: "\f111"; + $font-Flaticon-desk: "\f112"; + $font-Flaticon-ruler: "\f113"; + $font-Flaticon-pencil: "\f114"; + $font-Flaticon-analytics: "\f115"; + $font-Flaticon-google-plus: "\f116"; + $font-Flaticon-dribbble: "\f117"; + $font-Flaticon-whatsapp: "\f118"; + $font-Flaticon-twitter: "\f119"; + $font-Flaticon-behance: "\f11a"; + $font-Flaticon-instagram: "\f11b"; + $font-Flaticon-android: "\f11c"; + $font-Flaticon-apple: "\f11d"; + $font-Flaticon-windows: "\f11e"; + $font-Flaticon-pinterest: "\f11f"; + $font-Flaticon-youtube: "\f120"; + $font-Flaticon-paypal: "\f121"; + $font-Flaticon-linkedin: "\f122"; + $font-Flaticon-facebook: "\f123"; + $font-Flaticon-lock-1: "\f124"; + $font-Flaticon-lock: "\f125"; + $font-Flaticon-profile-1: "\f126"; + $font-Flaticon-profile: "\f127"; + $font-Flaticon-user-1: "\f128"; + $font-Flaticon-user: "\f129"; + $font-Flaticon-users: "\f12a"; + $font-Flaticon-message: "\f12b"; + $font-Flaticon-placeholder-1: "\f12c"; + $font-Flaticon-location: "\f12d"; + $font-Flaticon-arrows-2: "\f12e"; + $font-Flaticon-technology-2: "\f12f"; + $font-Flaticon-multimedia-2: "\f130"; + $font-Flaticon-multimedia-1: "\f131"; + $font-Flaticon-close: "\f132"; + $font-Flaticon-home: "\f133"; + $font-Flaticon-circle: "\f134"; + $font-Flaticon-arrow: "\f135"; + $font-Flaticon-mark-1: "\f136"; + $font-Flaticon-mark: "\f137"; + $font-Flaticon-shapes-1: "\f138"; + $font-Flaticon-search-2: "\f139"; + $font-Flaticon-interface-7: "\f13a"; + $font-Flaticon-suitcase: "\f13b"; + $font-Flaticon-chain-1: "\f13c"; + $font-Flaticon-chain: "\f13d"; + $font-Flaticon-agenda-1: "\f13e"; + $font-Flaticon-interface-6: "\f13f"; + $font-Flaticon-calendar: "\f140"; + $font-Flaticon-list: "\f141"; + $font-Flaticon-file-1: "\f142"; + $font-Flaticon-file: "\f143"; + $font-Flaticon-interface-5: "\f144"; + $font-Flaticon-folder: "\f145"; + $font-Flaticon-stopwatch: "\f146"; + $font-Flaticon-time: "\f147"; + $font-Flaticon-clock-1: "\f148"; + $font-Flaticon-search-1: "\f149"; + $font-Flaticon-music-1: "\f14a"; + $font-Flaticon-music: "\f14b"; + $font-Flaticon-present: "\f14c"; + $font-Flaticon-layers-1: "\f14d"; + $font-Flaticon-settings: "\f14e"; + $font-Flaticon-attachment: "\f14f"; + $font-Flaticon-gestures: "\f150"; + $font-Flaticon-tool: "\f151"; + $font-Flaticon-interface-4: "\f152"; + $font-Flaticon-interface-3: "\f153"; + $font-Flaticon-agenda: "\f154"; + $font-Flaticon-shapes: "\f155"; + $font-Flaticon-symbol-1: "\f156"; + $font-Flaticon-symbol: "\f157"; + $font-Flaticon-interface-2: "\f158"; + $font-Flaticon-layers: "\f159"; + $font-Flaticon-clock: "\f15a"; + $font-Flaticon-web-1: "\f15b"; + $font-Flaticon-internet: "\f15c"; + $font-Flaticon-placeholder: "\f15d"; + $font-Flaticon-signs-3: "\f15e"; + $font-Flaticon-star-1: "\f15f"; + $font-Flaticon-web: "\f160"; + $font-Flaticon-star: "\f161"; + $font-Flaticon-like-1: "\f162"; + $font-Flaticon-like: "\f163"; + $font-Flaticon-cloud: "\f164"; + $font-Flaticon-database: "\f165"; + $font-Flaticon-technology-1: "\f166"; + $font-Flaticon-idea: "\f167"; + $font-Flaticon-search: "\f168"; + $font-Flaticon-wifi: "\f169"; + $font-Flaticon-hands-1: "\f16a"; + $font-Flaticon-hands: "\f16b"; + $font-Flaticon-bars-2: "\f16c"; + $font-Flaticon-arrows-1: "\f16d"; + $font-Flaticon-interface-1: "\f16e"; + $font-Flaticon-network: "\f16f"; + $font-Flaticon-share-1: "\f170"; + $font-Flaticon-share: "\f171"; + $font-Flaticon-bars-1: "\f172"; + $font-Flaticon-cross-1: "\f173"; + $font-Flaticon-line-1: "\f174"; + $font-Flaticon-signs-2: "\f175"; + $font-Flaticon-check: "\f176"; + $font-Flaticon-technology: "\f177"; + $font-Flaticon-bars: "\f178"; + $font-Flaticon-cross: "\f179"; + $font-Flaticon-add: "\f17a"; + $font-Flaticon-power: "\f17b"; + $font-Flaticon-signs-1: "\f17c"; + $font-Flaticon-round: "\f17d"; + $font-Flaticon-exclamation: "\f17e"; + $font-Flaticon-success: "\f17f"; + $font-Flaticon-error: "\f180"; + $font-Flaticon-line: "\f181"; + $font-Flaticon-plus: "\f182"; + $font-Flaticon-interface: "\f183"; + $font-Flaticon-signs: "\f184"; + $font-Flaticon-play-button-1: "\f185"; + $font-Flaticon-play-button: "\f186"; + $font-Flaticon-music-player: "\f187"; + $font-Flaticon-medical: "\f188"; + $font-Flaticon-photo-camera: "\f189"; + $font-Flaticon-picture: "\f18a"; + $font-Flaticon-multimedia: "\f18b"; + $font-Flaticon-game-controller: "\f18c"; + $font-Flaticon-imac: "\f18d"; + $font-Flaticon-paint-palette: "\f18e"; + $font-Flaticon-envelope-3: "\f18f"; + $font-Flaticon-envelope-2: "\f190"; + $font-Flaticon-envelope-1: "\f191"; + $font-Flaticon-envelope: "\f192"; + $font-Flaticon-mailbox: "\f193"; + $font-Flaticon-inbox: "\f194"; + $font-Flaticon-chat-8: "\f195"; + $font-Flaticon-chat-7: "\f196"; + $font-Flaticon-chat-6: "\f197"; + $font-Flaticon-chat-5: "\f198"; + $font-Flaticon-chat-4: "\f199"; + $font-Flaticon-chat-3: "\f19a"; + $font-Flaticon-chat-2: "\f19b"; + $font-Flaticon-chat-1: "\f19c"; + $font-Flaticon-chat: "\f19d"; + $font-Flaticon-archive: "\f19e"; + $font-Flaticon-diagram: "\f19f"; + $font-Flaticon-graph-2: "\f1a0"; + $font-Flaticon-graph-1: "\f1a1"; + $font-Flaticon-graph: "\f1a2"; + $font-Flaticon-chart-pie: "\f1a3"; + $font-Flaticon-presentation: "\f1a4"; + $font-Flaticon-store: "\f1a5"; + $font-Flaticon-coins: "\f1a6"; + $font-Flaticon-credit-card-1: "\f1a7"; + $font-Flaticon-credit-card: "\f1a8"; + $font-Flaticon-cart-1: "\f1a9"; + $font-Flaticon-cart: "\f1aa"; + $font-Flaticon-price-tag: "\f1ab"; + $font-Flaticon-box: "\f1ac"; + $font-Flaticon-right-arrow-4: "\f1ad"; + $font-Flaticon-left-arrow-4: "\f1ae"; + $font-Flaticon-up-arrow-3: "\f1af"; + $font-Flaticon-download-1: "\f1b0"; + $font-Flaticon-down-arrow-3: "\f1b1"; + $font-Flaticon-up-arrow-2: "\f1b2"; + $font-Flaticon-left-arrow-3: "\f1b3"; + $font-Flaticon-right-arrow-3: "\f1b4"; + $font-Flaticon-down-arrow-2: "\f1b5"; + $font-Flaticon-arrows: "\f1b6"; + $font-Flaticon-left-arrow-2: "\f1b7"; + $font-Flaticon-right-arrow-2: "\f1b8"; + $font-Flaticon-upward: "\f1b9"; + $font-Flaticon-download: "\f1ba"; + $font-Flaticon-back: "\f1bb"; + $font-Flaticon-next: "\f1bc"; + $font-Flaticon-up-arrow-1: "\f1bd"; + $font-Flaticon-down-arrow-1: "\f1be"; + $font-Flaticon-left-arrow-1: "\f1bf"; + $font-Flaticon-right-arrow-1: "\f1c0"; + $font-Flaticon-up-arrow: "\f1c1"; + $font-Flaticon-down-arrow: "\f1c2"; + $font-Flaticon-left-arrow: "\f1c3"; + $font-Flaticon-right-arrow: "\f1c4"; + $font-Flaticon-expand: "\f1c5"; + $font-Flaticon-repeat: "\f1c6"; \ No newline at end of file diff --git a/src/main/resources/static/assets/fonts/flaticon/flaticon.css b/src/main/resources/static/assets/fonts/flaticon/flaticon.css new file mode 100644 index 0000000..b6b7232 --- /dev/null +++ b/src/main/resources/static/assets/fonts/flaticon/flaticon.css @@ -0,0 +1,230 @@ + /* + Flaticon icon font: Flaticon + Creation date: 13/03/2018 03:24 + */ + +@font-face { + font-family: "Flaticon"; + src: url("./Flaticon.eot"); + src: url("./Flaticon.eot?#iefix") format("embedded-opentype"), + url("./Flaticon.woff") format("woff"), + url("./Flaticon.ttf") format("truetype"), + url("./Flaticon.svg#Flaticon") format("svg"); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "Flaticon"; + src: url("./Flaticon.svg#Flaticon") format("svg"); + } +} + +[class^="flaticon-"]:before, [class*=" flaticon-"]:before, +[class^="flaticon-"]:after, [class*=" flaticon-"]:after { + font-family: Flaticon; + font-size: 20px; +font-style: normal; +margin-left: 20px; +} + +.flaticon-delivery-truck:before { content: "\f100"; } +.flaticon-shopping-bag:before { content: "\f101"; } +.flaticon-box-3:before { content: "\f102"; } +.flaticon-box-2:before { content: "\f103"; } +.flaticon-box-1:before { content: "\f104"; } +.flaticon-laptop:before { content: "\f105"; } +.flaticon-coffee-cup:before { content: "\f106"; } +.flaticon-user-6:before { content: "\f107"; } +.flaticon-user-5:before { content: "\f108"; } +.flaticon-remove-user-1:before { content: "\f109"; } +.flaticon-customer-support:before { content: "\f10a"; } +.flaticon-user-4:before { content: "\f10b"; } +.flaticon-user-3:before { content: "\f10c"; } +.flaticon-user-2:before { content: "\f10d"; } +.flaticon-remove-user:before { content: "\f10e"; } +.flaticon-add-user:before { content: "\f10f"; } +.flaticon-tea-cup:before { content: "\f110"; } +.flaticon-pen:before { content: "\f111"; } +.flaticon-desk:before { content: "\f112"; } +.flaticon-ruler:before { content: "\f113"; } +.flaticon-pencil:before { content: "\f114"; } +.flaticon-analytics:before { content: "\f115"; } +.flaticon-google-plus:before { content: "\f116"; } +.flaticon-dribbble:before { content: "\f117"; } +.flaticon-whatsapp:before { content: "\f118"; } +.flaticon-twitter:before { content: "\f119"; } +.flaticon-behance:before { content: "\f11a"; } +.flaticon-instagram:before { content: "\f11b"; } +.flaticon-android:before { content: "\f11c"; } +.flaticon-apple:before { content: "\f11d"; } +.flaticon-windows:before { content: "\f11e"; } +.flaticon-pinterest:before { content: "\f11f"; } +.flaticon-youtube:before { content: "\f120"; } +.flaticon-paypal:before { content: "\f121"; } +.flaticon-linkedin:before { content: "\f122"; } +.flaticon-facebook:before { content: "\f123"; } +.flaticon-lock-1:before { content: "\f124"; } +.flaticon-lock:before { content: "\f125"; } +.flaticon-profile-1:before { content: "\f126"; } +.flaticon-profile:before { content: "\f127"; } +.flaticon-user-1:before { content: "\f128"; } +.flaticon-user:before { content: "\f129"; } +.flaticon-users:before { content: "\f12a"; } +.flaticon-message:before { content: "\f12b"; } +.flaticon-placeholder-1:before { content: "\f12c"; } +.flaticon-location:before { content: "\f12d"; } +.flaticon-arrows-2:before { content: "\f12e"; } +.flaticon-technology-2:before { content: "\f12f"; } +.flaticon-multimedia-2:before { content: "\f130"; } +.flaticon-multimedia-1:before { content: "\f131"; } +.flaticon-close:before { content: "\f132"; } +.flaticon-home:before { content: "\f133"; } +.flaticon-circle:before { content: "\f134"; } +.flaticon-arrow:before { content: "\f135"; } +.flaticon-mark-1:before { content: "\f136"; } +.flaticon-mark:before { content: "\f137"; } +.flaticon-shapes-1:before { content: "\f138"; } +.flaticon-search-2:before { content: "\f139"; } +.flaticon-interface-7:before { content: "\f13a"; } +.flaticon-suitcase:before { content: "\f13b"; } +.flaticon-chain-1:before { content: "\f13c"; } +.flaticon-chain:before { content: "\f13d"; } +.flaticon-agenda-1:before { content: "\f13e"; } +.flaticon-interface-6:before { content: "\f13f"; } +.flaticon-calendar:before { content: "\f140"; } +.flaticon-list:before { content: "\f141"; } +.flaticon-file-1:before { content: "\f142"; } +.flaticon-file:before { content: "\f143"; } +.flaticon-interface-5:before { content: "\f144"; } +.flaticon-folder:before { content: "\f145"; } +.flaticon-stopwatch:before { content: "\f146"; } +.flaticon-time:before { content: "\f147"; } +.flaticon-clock-1:before { content: "\f148"; } +.flaticon-search-1:before { content: "\f149"; } +.flaticon-music-1:before { content: "\f14a"; } +.flaticon-music:before { content: "\f14b"; } +.flaticon-present:before { content: "\f14c"; } +.flaticon-layers-1:before { content: "\f14d"; } +.flaticon-settings:before { content: "\f14e"; } +.flaticon-attachment:before { content: "\f14f"; } +.flaticon-gestures:before { content: "\f150"; } +.flaticon-tool:before { content: "\f151"; } +.flaticon-interface-4:before { content: "\f152"; } +.flaticon-interface-3:before { content: "\f153"; } +.flaticon-agenda:before { content: "\f154"; } +.flaticon-shapes:before { content: "\f155"; } +.flaticon-symbol-1:before { content: "\f156"; } +.flaticon-symbol:before { content: "\f157"; } +.flaticon-interface-2:before { content: "\f158"; } +.flaticon-layers:before { content: "\f159"; } +.flaticon-clock:before { content: "\f15a"; } +.flaticon-web-1:before { content: "\f15b"; } +.flaticon-internet:before { content: "\f15c"; } +.flaticon-placeholder:before { content: "\f15d"; } +.flaticon-signs-3:before { content: "\f15e"; } +.flaticon-star-1:before { content: "\f15f"; } +.flaticon-web:before { content: "\f160"; } +.flaticon-star:before { content: "\f161"; } +.flaticon-like-1:before { content: "\f162"; } +.flaticon-like:before { content: "\f163"; } +.flaticon-cloud:before { content: "\f164"; } +.flaticon-database:before { content: "\f165"; } +.flaticon-technology-1:before { content: "\f166"; } +.flaticon-idea:before { content: "\f167"; } +.flaticon-search:before { content: "\f168"; } +.flaticon-wifi:before { content: "\f169"; } +.flaticon-hands-1:before { content: "\f16a"; } +.flaticon-hands:before { content: "\f16b"; } +.flaticon-bars-2:before { content: "\f16c"; } +.flaticon-arrows-1:before { content: "\f16d"; } +.flaticon-interface-1:before { content: "\f16e"; } +.flaticon-network:before { content: "\f16f"; } +.flaticon-share-1:before { content: "\f170"; } +.flaticon-share:before { content: "\f171"; } +.flaticon-bars-1:before { content: "\f172"; } +.flaticon-cross-1:before { content: "\f173"; } +.flaticon-line-1:before { content: "\f174"; } +.flaticon-signs-2:before { content: "\f175"; } +.flaticon-check:before { content: "\f176"; } +.flaticon-technology:before { content: "\f177"; } +.flaticon-bars:before { content: "\f178"; } +.flaticon-cross:before { content: "\f179"; } +.flaticon-add:before { content: "\f17a"; } +.flaticon-power:before { content: "\f17b"; } +.flaticon-signs-1:before { content: "\f17c"; } +.flaticon-round:before { content: "\f17d"; } +.flaticon-exclamation:before { content: "\f17e"; } +.flaticon-success:before { content: "\f17f"; } +.flaticon-error:before { content: "\f180"; } +.flaticon-line:before { content: "\f181"; } +.flaticon-plus:before { content: "\f182"; } +.flaticon-interface:before { content: "\f183"; } +.flaticon-signs:before { content: "\f184"; } +.flaticon-play-button-1:before { content: "\f185"; } +.flaticon-play-button:before { content: "\f186"; } +.flaticon-music-player:before { content: "\f187"; } +.flaticon-medical:before { content: "\f188"; } +.flaticon-photo-camera:before { content: "\f189"; } +.flaticon-picture:before { content: "\f18a"; } +.flaticon-multimedia:before { content: "\f18b"; } +.flaticon-game-controller:before { content: "\f18c"; } +.flaticon-imac:before { content: "\f18d"; } +.flaticon-paint-palette:before { content: "\f18e"; } +.flaticon-envelope-3:before { content: "\f18f"; } +.flaticon-envelope-2:before { content: "\f190"; } +.flaticon-envelope-1:before { content: "\f191"; } +.flaticon-envelope:before { content: "\f192"; } +.flaticon-mailbox:before { content: "\f193"; } +.flaticon-inbox:before { content: "\f194"; } +.flaticon-chat-8:before { content: "\f195"; } +.flaticon-chat-7:before { content: "\f196"; } +.flaticon-chat-6:before { content: "\f197"; } +.flaticon-chat-5:before { content: "\f198"; } +.flaticon-chat-4:before { content: "\f199"; } +.flaticon-chat-3:before { content: "\f19a"; } +.flaticon-chat-2:before { content: "\f19b"; } +.flaticon-chat-1:before { content: "\f19c"; } +.flaticon-chat:before { content: "\f19d"; } +.flaticon-archive:before { content: "\f19e"; } +.flaticon-diagram:before { content: "\f19f"; } +.flaticon-graph-2:before { content: "\f1a0"; } +.flaticon-graph-1:before { content: "\f1a1"; } +.flaticon-graph:before { content: "\f1a2"; } +.flaticon-chart-pie:before { content: "\f1a3"; } +.flaticon-presentation:before { content: "\f1a4"; } +.flaticon-store:before { content: "\f1a5"; } +.flaticon-coins:before { content: "\f1a6"; } +.flaticon-credit-card-1:before { content: "\f1a7"; } +.flaticon-credit-card:before { content: "\f1a8"; } +.flaticon-cart-1:before { content: "\f1a9"; } +.flaticon-cart:before { content: "\f1aa"; } +.flaticon-price-tag:before { content: "\f1ab"; } +.flaticon-box:before { content: "\f1ac"; } +.flaticon-right-arrow-4:before { content: "\f1ad"; } +.flaticon-left-arrow-4:before { content: "\f1ae"; } +.flaticon-up-arrow-3:before { content: "\f1af"; } +.flaticon-download-1:before { content: "\f1b0"; } +.flaticon-down-arrow-3:before { content: "\f1b1"; } +.flaticon-up-arrow-2:before { content: "\f1b2"; } +.flaticon-left-arrow-3:before { content: "\f1b3"; } +.flaticon-right-arrow-3:before { content: "\f1b4"; } +.flaticon-down-arrow-2:before { content: "\f1b5"; } +.flaticon-arrows:before { content: "\f1b6"; } +.flaticon-left-arrow-2:before { content: "\f1b7"; } +.flaticon-right-arrow-2:before { content: "\f1b8"; } +.flaticon-upward:before { content: "\f1b9"; } +.flaticon-download:before { content: "\f1ba"; } +.flaticon-back:before { content: "\f1bb"; } +.flaticon-next:before { content: "\f1bc"; } +.flaticon-up-arrow-1:before { content: "\f1bd"; } +.flaticon-down-arrow-1:before { content: "\f1be"; } +.flaticon-left-arrow-1:before { content: "\f1bf"; } +.flaticon-right-arrow-1:before { content: "\f1c0"; } +.flaticon-up-arrow:before { content: "\f1c1"; } +.flaticon-down-arrow:before { content: "\f1c2"; } +.flaticon-left-arrow:before { content: "\f1c3"; } +.flaticon-right-arrow:before { content: "\f1c4"; } +.flaticon-expand:before { content: "\f1c5"; } +.flaticon-repeat:before { content: "\f1c6"; } \ No newline at end of file diff --git a/src/main/resources/static/assets/fonts/flaticon/flaticon.html b/src/main/resources/static/assets/fonts/flaticon/flaticon.html new file mode 100644 index 0000000..a02e49b --- /dev/null +++ b/src/main/resources/static/assets/fonts/flaticon/flaticon.html @@ -0,0 +1,1450 @@ + + + + + + + + Flaticon WebFont + + + + + + + + + + + +
+ +

Instructions

+ +
    +
  • + 1Copy the "Fonts" files and CSS files to your website CSS folder. +
  • +
  • + 2Add the CSS link to your website source code on header. + + <head> +
    ... +
    <link rel="stylesheet" type="text/css" href="your_website_domain/css_root/flaticon.css"> +
    ... +
    </head> +
    +
  • + +
  • +

    + 3Use the icon class on "display: inline" elements: +
    + Use example: <i class="flaticon-airplane49"></i> or <span class="flaticon-airplane49"></span> +

  • +
+ +
+ + + + +
+ + +
+
.flaticon-delivery-truck
+
Author: Smashicons
+
+ +
+
.flaticon-shopping-bag
+
Author: Smashicons
+
+ +
+
.flaticon-box-3
+
Author: Smashicons
+
+ +
+
.flaticon-box-2
+
Author: Smashicons
+
+ +
+
.flaticon-box-1
+
Author: Smashicons
+
+ +
+
.flaticon-laptop
+
Author: Smashicons
+
+ +
+
.flaticon-coffee-cup
+
Author: Smashicons
+
+ +
+
.flaticon-user-6
+
Author: Smashicons
+
+ +
+
.flaticon-user-5
+
Author: Smashicons
+
+ +
+
.flaticon-remove-user-1
+
Author: Smashicons
+
+ +
+
.flaticon-customer-support
+
Author: Smashicons
+
+ +
+
.flaticon-user-4
+
Author: Smashicons
+
+ +
+
.flaticon-user-3
+
Author: Smashicons
+
+ +
+
.flaticon-user-2
+
Author: Smashicons
+
+ +
+
.flaticon-remove-user
+
Author: Smashicons
+
+ +
+
.flaticon-add-user
+
Author: Smashicons
+
+ +
+
.flaticon-tea-cup
+
Author: Smashicons
+
+ +
+
.flaticon-pen
+
Author: Smashicons
+
+ +
+
.flaticon-desk
+
Author: Smashicons
+
+ +
+
.flaticon-ruler
+
Author: Smashicons
+
+ +
+
.flaticon-pencil
+
Author: Smashicons
+
+ +
+
.flaticon-analytics
+
Author: Smashicons
+
+ +
+
.flaticon-google-plus
+
Author: Smashicons
+
+ +
+
.flaticon-dribbble
+
Author: Smashicons
+
+ +
+
.flaticon-whatsapp
+
Author: Smashicons
+
+ +
+
.flaticon-twitter
+
Author: Smashicons
+
+ +
+
.flaticon-behance
+
Author: Smashicons
+
+ +
+
.flaticon-instagram
+
Author: Smashicons
+
+ +
+
.flaticon-android
+
Author: Smashicons
+
+ +
+
.flaticon-apple
+
Author: Smashicons
+
+ +
+
.flaticon-windows
+
Author: Smashicons
+
+ +
+
.flaticon-pinterest
+
Author: Smashicons
+
+ +
+
.flaticon-youtube
+
Author: Smashicons
+
+ +
+
.flaticon-paypal
+
Author: Smashicons
+
+ +
+
.flaticon-linkedin
+
Author: Smashicons
+
+ +
+
.flaticon-facebook
+
Author: Smashicons
+
+ +
+
.flaticon-lock-1
+
Author: Smashicons
+
+ +
+
.flaticon-lock
+
Author: Smashicons
+
+ +
+
.flaticon-profile-1
+
Author: Smashicons
+
+ +
+
.flaticon-profile
+
Author: Smashicons
+
+ +
+
.flaticon-user-1
+
Author: Smashicons
+
+ +
+
.flaticon-user
+
Author: Smashicons
+
+ +
+
.flaticon-users
+
Author: Smashicons
+
+ +
+
.flaticon-message
+
Author: Smashicons
+
+ +
+
.flaticon-placeholder-1
+
Author: Smashicons
+
+ +
+
.flaticon-location
+
Author: Smashicons
+
+ +
+
.flaticon-arrows-2
+
Author: Smashicons
+
+ +
+
.flaticon-technology-2
+
Author: Smashicons
+
+ +
+
.flaticon-multimedia-2
+
Author: Smashicons
+
+ +
+
.flaticon-multimedia-1
+
Author: Smashicons
+
+ +
+
.flaticon-close
+
Author: Smashicons
+
+ +
+
.flaticon-home
+
Author: Smashicons
+
+ +
+
.flaticon-circle
+
Author: Smashicons
+
+ +
+
.flaticon-arrow
+
Author: Smashicons
+
+ +
+
.flaticon-mark-1
+
Author: Smashicons
+
+ +
+
.flaticon-mark
+
Author: Smashicons
+
+ +
+
.flaticon-shapes-1
+
Author: Smashicons
+
+ +
+
.flaticon-search-2
+
Author: Smashicons
+
+ +
+
.flaticon-interface-7
+
Author: Smashicons
+
+ +
+
.flaticon-suitcase
+
Author: Smashicons
+
+ +
+
.flaticon-chain-1
+
Author: Smashicons
+
+ +
+
.flaticon-chain
+
Author: Smashicons
+
+ +
+
.flaticon-agenda-1
+
Author: Smashicons
+
+ +
+
.flaticon-interface-6
+
Author: Smashicons
+
+ +
+
.flaticon-calendar
+
Author: Smashicons
+
+ +
+
.flaticon-list
+
Author: Smashicons
+
+ +
+
.flaticon-file-1
+
Author: Smashicons
+
+ +
+
.flaticon-file
+
Author: Smashicons
+
+ +
+
.flaticon-interface-5
+
Author: Smashicons
+
+ +
+
.flaticon-folder
+
Author: Smashicons
+
+ +
+
.flaticon-stopwatch
+
Author: Smashicons
+
+ +
+
.flaticon-time
+
Author: Smashicons
+
+ +
+
.flaticon-clock-1
+
Author: Smashicons
+
+ +
+
.flaticon-search-1
+
Author: Smashicons
+
+ +
+
.flaticon-music-1
+
Author: Smashicons
+
+ +
+
.flaticon-music
+
Author: Smashicons
+
+ +
+
.flaticon-present
+
Author: Smashicons
+
+ +
+
.flaticon-layers-1
+
Author: Smashicons
+
+ +
+
.flaticon-settings
+
Author: Smashicons
+
+ +
+
.flaticon-attachment
+
Author: Smashicons
+
+ +
+
.flaticon-gestures
+
Author: Smashicons
+
+ +
+
.flaticon-tool
+
Author: Smashicons
+
+ +
+
.flaticon-interface-4
+
Author: Smashicons
+
+ +
+
.flaticon-interface-3
+
Author: Smashicons
+
+ +
+
.flaticon-agenda
+
Author: Smashicons
+
+ +
+
.flaticon-shapes
+
Author: Smashicons
+
+ +
+
.flaticon-symbol-1
+
Author: Smashicons
+
+ +
+
.flaticon-symbol
+
Author: Smashicons
+
+ +
+
.flaticon-interface-2
+
Author: Smashicons
+
+ +
+
.flaticon-layers
+
Author: Smashicons
+
+ +
+
.flaticon-clock
+
Author: Smashicons
+
+ +
+
.flaticon-web-1
+
Author: Smashicons
+
+ +
+
.flaticon-internet
+
Author: Smashicons
+
+ +
+
.flaticon-placeholder
+
Author: Smashicons
+
+ +
+
.flaticon-signs-3
+
Author: Smashicons
+
+ +
+
.flaticon-star-1
+
Author: Smashicons
+
+ +
+
.flaticon-web
+
Author: Smashicons
+
+ +
+
.flaticon-star
+
Author: Smashicons
+
+ +
+
.flaticon-like-1
+
Author: Smashicons
+
+ +
+
.flaticon-like
+
Author: Smashicons
+
+ +
+
.flaticon-cloud
+
Author: Smashicons
+
+ +
+
.flaticon-database
+
Author: Smashicons
+
+ +
+
.flaticon-technology-1
+
Author: Smashicons
+
+ +
+
.flaticon-idea
+
Author: Smashicons
+
+ +
+
.flaticon-search
+
Author: Smashicons
+
+ +
+
.flaticon-wifi
+
Author: Smashicons
+
+ +
+
.flaticon-hands-1
+
Author: Smashicons
+
+ +
+
.flaticon-hands
+
Author: Smashicons
+
+ +
+
.flaticon-bars-2
+
Author: Smashicons
+
+ +
+
.flaticon-arrows-1
+
Author: Smashicons
+
+ +
+
.flaticon-interface-1
+
Author: Smashicons
+
+ +
+
.flaticon-network
+
Author: Smashicons
+
+ +
+
.flaticon-share-1
+
Author: Smashicons
+
+ +
+
.flaticon-share
+
Author: Smashicons
+
+ +
+
.flaticon-bars-1
+
Author: Smashicons
+
+ +
+
.flaticon-cross-1
+
Author: Smashicons
+
+ +
+
.flaticon-line-1
+
Author: Smashicons
+
+ +
+
.flaticon-signs-2
+
Author: Smashicons
+
+ +
+
.flaticon-check
+
Author: Smashicons
+
+ +
+
.flaticon-technology
+
Author: Smashicons
+
+ +
+
.flaticon-bars
+
Author: Smashicons
+
+ +
+
.flaticon-cross
+
Author: Smashicons
+
+ +
+
.flaticon-add
+
Author: Smashicons
+
+ +
+
.flaticon-power
+
Author: Smashicons
+
+ +
+
.flaticon-signs-1
+
Author: Smashicons
+
+ +
+
.flaticon-round
+
Author: Smashicons
+
+ +
+
.flaticon-exclamation
+
Author: Smashicons
+
+ +
+
.flaticon-success
+
Author: Smashicons
+
+ +
+
.flaticon-error
+
Author: Smashicons
+
+ +
+
.flaticon-line
+
Author: Smashicons
+
+ +
+
.flaticon-plus
+
Author: Smashicons
+
+ +
+
.flaticon-interface
+
Author: Smashicons
+
+ +
+
.flaticon-signs
+
Author: Smashicons
+
+ +
+
.flaticon-play-button-1
+
Author: Smashicons
+
+ +
+
.flaticon-play-button
+
Author: Smashicons
+
+ +
+
.flaticon-music-player
+
Author: Smashicons
+
+ +
+
.flaticon-medical
+
Author: Smashicons
+
+ +
+
.flaticon-photo-camera
+
Author: Smashicons
+
+ +
+
.flaticon-picture
+
Author: Smashicons
+
+ +
+
.flaticon-multimedia
+
Author: Smashicons
+
+ +
+
.flaticon-game-controller
+
Author: Smashicons
+
+ +
+
.flaticon-imac
+
Author: Smashicons
+
+ +
+
.flaticon-paint-palette
+
Author: Smashicons
+
+ +
+
.flaticon-envelope-3
+
Author: Smashicons
+
+ +
+
.flaticon-envelope-2
+
Author: Smashicons
+
+ +
+
.flaticon-envelope-1
+
Author: Smashicons
+
+ +
+
.flaticon-envelope
+
Author: Smashicons
+
+ +
+
.flaticon-mailbox
+
Author: Smashicons
+
+ +
+
.flaticon-inbox
+
Author: Smashicons
+
+ +
+
.flaticon-chat-8
+
Author: Smashicons
+
+ +
+
.flaticon-chat-7
+
Author: Smashicons
+
+ +
+
.flaticon-chat-6
+
Author: Smashicons
+
+ +
+
.flaticon-chat-5
+
Author: Smashicons
+
+ +
+
.flaticon-chat-4
+
Author: Smashicons
+
+ +
+
.flaticon-chat-3
+
Author: Smashicons
+
+ +
+
.flaticon-chat-2
+
Author: Smashicons
+
+ +
+
.flaticon-chat-1
+
Author: Smashicons
+
+ +
+
.flaticon-chat
+
Author: Smashicons
+
+ +
+
.flaticon-archive
+
Author: Smashicons
+
+ +
+
.flaticon-diagram
+
Author: Smashicons
+
+ +
+
.flaticon-graph-2
+
Author: Smashicons
+
+ +
+
.flaticon-graph-1
+
Author: Smashicons
+
+ +
+
.flaticon-graph
+
Author: Smashicons
+
+ +
+
.flaticon-chart-pie
+
Author: Smashicons
+
+ +
+
.flaticon-presentation
+
Author: Smashicons
+
+ +
+
.flaticon-store
+
Author: Smashicons
+
+ +
+
.flaticon-coins
+
Author: Smashicons
+
+ +
+
.flaticon-credit-card-1
+
Author: Smashicons
+
+ +
+
.flaticon-credit-card
+
Author: Smashicons
+
+ +
+
.flaticon-cart-1
+
Author: Smashicons
+
+ +
+
.flaticon-cart
+
Author: Smashicons
+
+ +
+
.flaticon-price-tag
+
Author: Smashicons
+
+ +
+
.flaticon-box
+
Author: Smashicons
+
+ +
+
.flaticon-right-arrow-4
+
Author: Smashicons
+
+ +
+
.flaticon-left-arrow-4
+
Author: Smashicons
+
+ +
+
.flaticon-up-arrow-3
+
Author: Smashicons
+
+ +
+
.flaticon-download-1
+
Author: Smashicons
+
+ +
+
.flaticon-down-arrow-3
+
Author: Smashicons
+
+ +
+
.flaticon-up-arrow-2
+
Author: Smashicons
+
+ +
+
.flaticon-left-arrow-3
+
Author: Smashicons
+
+ +
+
.flaticon-right-arrow-3
+
Author: Smashicons
+
+ +
+
.flaticon-down-arrow-2
+
Author: Smashicons
+
+ +
+
.flaticon-arrows
+
Author: Smashicons
+
+ +
+
.flaticon-left-arrow-2
+
Author: Smashicons
+
+ +
+
.flaticon-right-arrow-2
+
Author: Smashicons
+
+ +
+
.flaticon-upward
+
Author: Smashicons
+
+ +
+
.flaticon-download
+
Author: Smashicons
+
+ +
+
.flaticon-back
+
Author: Smashicons
+
+ +
+
.flaticon-next
+
Author: Smashicons
+
+ +
+
.flaticon-up-arrow-1
+
Author: Smashicons
+
+ +
+
.flaticon-down-arrow-1
+
Author: Smashicons
+
+ +
+
.flaticon-left-arrow-1
+
Author: Smashicons
+
+ +
+
.flaticon-right-arrow-1
+
Author: Smashicons
+
+ +
+
.flaticon-up-arrow
+
Author: Smashicons
+
+ +
+
.flaticon-down-arrow
+
Author: Smashicons
+
+ +
+
.flaticon-left-arrow
+
Author: Smashicons
+
+ +
+
.flaticon-right-arrow
+
Author: Smashicons
+
+ +
+
.flaticon-expand
+
Author: Smashicons
+
+ +
+
.flaticon-repeat
+
Author: Smashicons
+
+ + +
+ + + +
+ +
License and attribution:
Font generated by flaticon.com.

Under CC: Smashicons

+
+
Copy the Attribution License:
+ + + +
+ +
+ +
Examples:
+ +
+

+ + <i class="flaticon-delivery-truck"></i> +

+
+ +
+

+ + <i class="flaticon-shopping-bag"></i> +

+
+ +
+

+ + <i class="flaticon-box-3"></i> +

+
+ +
+

+ + <i class="flaticon-box-2"></i> +

+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.eot b/src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..f7accfa17c885bd812794228e358cbaff704d4ec GIT binary patch literal 116516 zcmdped4L>Mo&S4vS9f*wSzUdfGu?AveNASPnaLeO$OVKX5E4QN5JC(IV7S6?$}J+G zf?z;EM05cW0TF{B@^evHZ(VndtgFb6)pYj^i^ooWpI2{&4D9~U-@m`<`Sh!L_3G6- zzjt-Zw<#HXnG#9_!u|vzi_QUZZl&yK#cF4m>sdHvDcnWGM}gnWqXBIlC~ znNL1U&LDenelF4ssQ?Se9&#G4Z$myICRvLsXOauZPUP-EPMEAi&K_Jn+o^}$)kFGm zW$6E*=FESq7ZtFEyU92aN#D}rPh60>vGrnP4kGu2Rmb-Zj18@Q3gmuNEYKMymRhp`*sVD(j&MYLHW$C)6P9(v+FB= zB=qsQgoquxKeYG!&@KB)gg$u|A^z{Pw$p=04&vVNBNIpdC|u+82Di@q(My~hl)HZA zFE8BeojXa~d`^FQ$&>3@DVE~iXM}6$A)IQ{Q;v%9e+g}pA}i(Ox`+!$Xr1%N#?3|g z$OsV@Em?5_F?XJJ{w@+D(yZ&VkLk{{&pZwFJ2j(r$tg*ZLy0nzOMgReB{GWKNw*_! z>2x|tqU7q?>u~xR?bjw5WO8R+37|LNqjW8^!} zamwI)oaJ!{$P>nJpOdoV{|gApAD*sf1-_dKhkB<>yd8mht|2R*baT!Pc7{F52W~>sF zduQg^m`$F45GgCe()Sy#T+XTHA*T#99 zc-iUogFMQ{irsq=TSq(}^FQ@&ow&x<4b7v>r>C#8``A6t<9r-_XJrU02aL08tj-zm zvh2EZ&!a~s>9y=WoZmNHAG>e*x{zVVc>YYE4^G!PbI#Jkc;+iePiJ-V_B;J%^^7C$ zR+bOooULVNEZ8~jb^7v0evH0P2`J+{dz{z9%Oj8SHagd5t{udE;{Z!py<^kue+>J6 zx*hcQ{JOB1*UQ#}QwN#OpPjPyIOj9ZMwz>KxtV!J+fg_2#(`J)HK&hk99Ta3GP@4v z8p}WEwCOMG+RU1C>SXn>>&~;MpUd)|o<5$rHikJk5BWQAKdw8^c(=VQ59N=rx{$KA zusWWZe%5r`Fh0EPW2_v9)0W4Np0oR$`cWV62d=TYobs3-GIPvQJd2edn|}U5{ye9T z$eVcvD>pOePWlS3+bKubJ-qBp%GSZV_p*A}btjLHiGVy-53*%I1iAolAoVGyFi{>u zF1xJ@DL5JOB?VlC93taHAzKb#dHANow;jIw@Q)Awx*n`o>vQWH>u1+@)z7P+U*BK9 zqJDM#=KAgRPuB0Q-&=pA{?+>P^;hdZt^dCMhx%kgZ0HTM5pE1LYK@V`ipHspa~iuE zyBqr(S2k{F+}`+9&=7Bmzu9MUv0kD{AKf3&EGWNYW}g=Z2qY^H6c%UCbARxiT;V>Ce}`zG_hgg z#}ofP(U|ztWN7lX$$KY1JNfYB6O&(=e17uf$yX=8KUtsr&&fZ(?R`7&_9z>f!&f*x z{M6weO!sgYJv_61PJMTMZ~dbBIC^-!)5E*a!vpmv>(AA{Q-7`gyZV3B4>yE{*6=iZ zjehiSsBtWMxTSF}dU$DLym58omsEcnm#!sqy2+zc@WStGTavdGjjt@W$rH znxAUk)4Z?wQ1eOj@WtlK&F`RxKR^$E-TZCy59r|}dMHe&6Mpotbyg35Gx58LiAmSr z(?iVW|G$3}EA@5f^IP)P^yd%c52QifA%7-+r3%&X@j0IW4bTGZqJ6YX7tkei8C^?H zpzG**x{YqfXBXX#&$aYAd~Tw*(ofTS=>zm3`WSs0pXcby^cCmxI(>`&fj02@v!Do? zUY>AQE?G@Zz=*v=P9;x~1c}oMEzurw zJjUx3GKV}vU1U4Cj$BXf$JmK4g~QyGRKVZx88&>M=mRNnRlTKn&7OhRG_j zpS(zuG)=R#1#_{Do=AR3_h6QOPtGB|q?;@!A0gM$rQ~OJpvn zl1@HPHT`8kb|0%;|;(4BM_RHBbT0Xqrv*h$-I2l)%xLqALx zkx!9}$SYJP<8(eG@O#J(@+ehlg3hDok{?6e58bQ|dIsG=KSVE}=aT>^{)Nuo`432zVe%4< z(9KXXBTy;#k&lvxXpPRHgY-D)A{|gLzd=rilz#zvfcz(ws7{_Be}a}XpNx_*D5{Id zLb4c2=Q3y*$3Q*(8u>nUUVx60^T?ItD(ER+Cf_A*khf``E~aOb&yiQjPsp!mh-PRn zT}Zdkv!LdFmOM+oNB)&ET~qo0mt_6jJu_HIKjcOB$42Gw6&#=mYx{xg8`kvh8v01YH{Ru@20NMS%>pvNF(Af7F@1%Z! zgRtxOaZnTK{TxjHtACb*4kLYl0~~?WALIaUAoYhhz$Hlia~$9or2a4mI0vbJo&!9D z)Y;qv;3lO0BnS8ksegro#F4UV%#u_=`c)2ELi!vB_z$Unor4^Y^mz{2h4ecd;7+9e zj~w7rr2Z-gc?Rig9N=A~{!bj>Vx*2W&j5Z#>ObTFXCw6=aS%2(SnmvU0n(pvP)N}A zpK{QxNPovc+mOD&L6;-_JqP$Bss9HDI3=n7fdf2~)DLrjdy;yc1ALU!Svde4mDHOY z;H{)S!NClC^+^u!Thb6XzJpGSHb2P7fVVDkY$CL)b-4sr?7 zD>xu0k;auAkeEp0Y7WRwq`~?CK#C%bYdHw3n~e)V*CM@+1I;0g>p95Jk>0=oxr;PD z&H)LGG;ZgBEJhl4a*$h)eu9JUL<(BP07;EBKE(lQh4{?xNk+MDm^dzK@ zaL{!~zraB|kv_^n+mU{e1Ck$Uu<->T1CqvL9L!YSc$|ZN80ixnkPu1Z%N&puN#jWl zNR6cNGzWPF=}R1tBuV329E6Si%N&p{N#n;HkTXf+CmfJCN#my+kUdG`XB>pJosB6# zRiwY*pb4b^!a?UD{Z|f1tE6#=19B^Ap27hMmNc>U7?@$8c{T^r@|$=b1JnAOSa%GN zbV(EQ!2p?;G*K@D)B2m38wSY1r1>EZNW`Rx^~eC(m^9DhfRs#{7*htw%cQxN1Cldo zp3eapnlvxqfHX~-`#2z1lP1QO0TMQ8Ud%xPs1Clstg1<6A zCMV5t4oK&uc@+obbke+<0}?xFUc&*|oiwlGfD})fH*!FpC(WBUAlZ}V%^Z;NN%IyC zNc*JuQ4Yxcr1>!pXaJ;n8wYd&(!{=CfL1`7w{t*0Ak8~Cpec~%ogB~^Nb?gM&>l$h zQykDENb@cZvIXfq9MCOD^Ii^U8Kn6c4(J=Cc^?OJ5;gDVfDS^MpXGoyLYfb7KrbOp z>@@~xD5Uv04(KYR`7j5x7ShE2V}SlbnvZZmlOfG7a6qRa%||()-H_%NIiTl|=9f6g z0i^%H0o{i*u^$dC&6hc# zrIF^hIiRnR<|`b~+(?t%13-r(O?D3eZH_cw<$zvCny+y{!y`?0KLA~iG=Inet&cQW zT>$hy()=+8G(pn*2?umS(qzv7pdFGXdjg|9MB?3lRX=N zK1rIt;$S|kCVMtODbm+DD5EW`9RPJBW$gecqY1y|pnjykF+sc80niF zG>Y_pbI>@_w>W4DDeDhF86Ef|2Q46FeE?`TQr2#O4j_G-gO-v0CkL$}eTRb%A^j5v z9YH$9LB|N0K;IbXN~9tOU4>NQpsSI}9CQs*&`kznFfGrW05P46sg+i5?EvDab@G2P_t3qK|{HG4JPKzRC$!7XW((nOMsK%LbV^iGyGr zO>E$xY%Tnl19lHG@f!|UK*+?ubHEltCVs~Os|cBRg9G*vGVyy3SW3vmn;c{eDb_y& ztS4mREe_aG$i#nez@kDXun!nuTOkvFKx3sJJH~P4TeliaKIWv zCMG#xmmw2xbCB;NW&H%0wPoTR4$9UQ>kk0?4ViRtz>-5Iv6dNN(;<@v2dq0}(!;_0 z(UVvc46yi+NiPR%KV;I!0V@!h#Cm5SXv-v?$3U@mCb8ZbDEd2zHO~NR5t+P=19l@a zc`pYnNM!P}9Iz#k$%i?}uaG{$L0KJN;h-6$&vQ_$k;#`iD8_k`)dkQkNHH!9ut{aA#^pOFUEAlq_!9e~MDaMY0*=?M^Lv#f!$-fYu7Y>U% zr3d6e`FH z^nWR^GO#D`WH21OH26s958)^6o%XAdJEN)C6Y={KTND49EF^a&zn6R`^|N##eSYSq z%$wP7<^s7}bB+8d`2#Il%Z`>GwT={w!b`=j;={!s6dP^1jwK!EcRbZu?R=>7l`g4k zQP=C;f$nPeCwqK72YOSzOM2h#Yw5pppl9I9fu{!kP=26tZRJokRV`OPU7K4wrFKK@ zVD0TWeRJLzx^C#%p~J)4@TJ3lm^(7}u6feDJtIp-elnUG-8Z&n?1`~M^KV;l|AN;S z<`%A8_|~F}7n8-WE_rC_uBG=c{pPY2%YJc8;+SiX`Rnq;@@30!SpJh^Gso^Z_K{=X zIF1~5@#+)ST)O75H9uOr@h-GSYMyWc*q@4Q{-P3;}qd+px)_x|Ag)#u-K{*&jwe!&eFymn#i z!lypGW#8e83KuucNhL#(yzTwpyM{fMmP2rpN-1NXr6E~lA^Yb@P-LmnPmp*#$t*?D-cS@xm=H{Op?@-@M_)mKS%w`0$Ibyx4e2d8y~6=fCCq z)>+^B(#sb!JKT{M=za97kgiXI#_|b5YK0LRw!?O1gbswQkV%V$a@8KFRV(E}PE}MT zO~cjN2rc&rIh=XnpC}gQ(Q>e1=*)4dYs+=hcAw|-Bbk6Fb*5RzI%Uz*p$6(MS zij=mVoC$MyrZU0F1mYtclvEM>Y{+p_V< zuiL7nGg=CU*Gu(|whQLY?-y0iS0yS-0u2TPL3YdjfT*~I08S)B3Iyp{ZcUZ6aNyL| z+MKp@$#Mx^k6?HU$=0wpXjTRzMkdf#=_`anL9b3FNszR!Nox9uxj5e#xVrB}y>ob3L?HRICu6jG{sx_6X@Db+!A#p<+UgCpwDBV!mfZXUUt^%|&WRztNE0Lp#ji z0xOm3NTu#A*4*K?Y&5d6v%94jJ9tmf69`@`WLi@-tC(ILPsNHEZC$j-V`M$^6hU62 zWsHRi4c)|U?nq7DJFq-c?7*ny3zC>@3lQ)Uc9@>;hJy61HWmvr$?twmQpF!BXlkmaC&eg}yFcbiS@geqm@RXsEAwwF`Aw z+c7-sa;f^9VW0dd9Uil}KF!qkYp$u=B}vzsvg+AOMQPK<72@4@xJ7|V`a40nPomTx zi^;O&UanJNP*mtrEI@gsB7B`Hk!aVzfY0L>Bx|YZ z5~%n0w$B?Z4fs7SZ?Gj*5+v1hd+?3jEQ!$^TN}cWBS#LQf@@&)g-l;Fg+h5m44bqS zM@5sWDOv*AtdtML1_u(!fjI*Sct@ACoVI0|C%Udu*g0?cWykz5-|w?3i0!&L~O2ZQO`kdmLIkV9DTptguPLCALWghnTVL!}gFv-q4V=z(^h& z_8gvLhfCZg9NQ$wLsraa7pr9;JO$?~Q)ru!3NH(52EC{;nRy9r5 zTx!gth)c1NLWH0Pu6n6kmUn70){a2O1?oY2 zrJ$uzNw`;$LB1t7fL@@dse}x=gdRwC)_qf;Wr-{)w<$^(+Z{E!G+aWJUsfb}Kh_(Q zqYlxpfhMVS=T_F`Tk7dzCsTAMkr9WoSVca#eoeUU)G_PYW`C=oBj6Coq; z&O3j~Cxe1YL$Nv05LJa>GWUq0EBHT8(NtAaHoN_PI}n&SACqXD@Aml~_W0)oJf?ph zzCD3?e$SU(>54ZGhMIS~^P(u_y_EJ|CnXhuql-`~Cv(l-pPw zLMu}eAaFY56LNzEp&sXKA6QuQAwHdqr(uCZlCwfygqJ|QfJnzB)q*;}CLLpkne9Qr zs*NM;21qDO9bwrZ!3xOiK($yJC}D3^`R0L)1Cp&c;ztQpvJdDis)o36a!(`_P53NT zthL&9hivHnv=)zawiJ8kba(XXo<)|=4Jqe(w{CcIvLWjd?G`+K({L-Y9`dKm=ey>2 zFZ62y^#yu#5hTnAm@1ftEeWb9v_TN?7(uO|30|cq(j^<&;(*U33cCAJ#ng58@As#z zL@hNps6Ldm(-(T=d_W5cYD=PZu@#QTHq9wm@x5cdz~!QHmu9%V?Pp-o(GPzv8cN2X za9F`Um*Rc4zqj4;dHtg2RuP8>6OGm*3>voGOEOuZSD5~7~= z$G|@V!DJY-L&ajNEY25OgchL{pPHS~!{V`G#5E+fX^+IQ49t+=O?%?Q)bNU?tcMlV zx<~VV9G5e5B57B=pd=-iD-dnRUIZMjKK^pLk6z!>DkQxjN;C0D&_dXl zYzS#VjK!n`LKfpj(HDTyVTfbcqRZa_B*ZO8e= zfN-&}{VZX0fzVC^E2v+%5Iq3-QGf&qD_X5otf)b|78LWvyqXU_vZC->=CQ{zEBj-+ z;(b>>dCINJr{3DSm4>D!7A#<)H#5AE$)H}?pa+<(l)g{Ygbjfyr&uo7>rCtfQG^vD zO)>dQTV;G9Z$mULI9gy0%1Jn+&|9Ytgc6Am-Gc9_f0lfvEO{f|eNQnlu{1vfg3qrDN`lTg7nRUz?d8Wd$oxb^{V+{x~ zsiR8c9Yd#Iux-fsqDy_MtoyW2B*4{-y)Bv#I?kIpCoigYA}{A;T@?xk^aqbBqwfq& zS1@!si+unM8HfKVgZPwDaJtQ~>0b?Bi|}9+(6p?6}_lzUz7CI%6eZgf*sM4nR`KJEs*eRfr7vT#rzL zaKIX1&3XiiO|vC-)ZzC?T0o%%L6SpOB;qPUfc1hshKep#vovjEfkK}5S#DL9RXyVM zN^NVjm`2r@HdLT0uDCSkiq9+3BD;kDs;nCGBP%ppEvQN;7_v`c?!D&0qBQ$zEA8<;|8y)74Oyt-5q$$xh3lu7Kq+R=q#l z&2qy*OL0dspc;_=1RrXZJ+>n~E4tJZa_hQcnl8z}&ej)wm`$B}qdl9n6)1)7E{L67bbvVs2wS+TI&ZDt`useLd_~wZ~@$2omtLo+K}rE zzcag-AIwT9T!ZQeRR+u(3t*IjY!vf0o3ElZaDn32p_K%n%DMf}C``>`s~$!6>Wc1C zLcWmd(i8|=x@u6HdX}f#ldUbuj$9}l4(0AQBMMEV2QoA+_}r$q5KF|9hLTCTllTKq}OAepB-XgVC_tisd3R<}z6gf|H|pvaO1ph>fTg#U94C@nNm9U{r&7DqK@bMJOluQej2}&sGFw z4y7B`Y}tM8#*!<%ZLzP*CZj#uk4bzk znr+E$UlqS`c+S8vhH2ZSZquu3?xkBxKJULxz3%NBN@b&#%iEXgXpeQ8r5u%7E1GNR zuE216MWF{SapV|AcmE6;bS)^b4^fJp%)8oZ$*mQ66ciSlAN>id5HBGcvU9W@;vkp_ zx{Iq-Ss0%>ICYSY?e9&VyyN7g)^+Zg&&JcyZeNdYU})g_vDGV=E$^rO?eiDibxpfP zfBjDNl~<~-jHfyV20D~hU&n%A)K1#5*f}Map3W|!snM3!V@AU;?=d~_HMH$9Xaz2K zU*T(_A~W!niujUysom;Xr%YH)Mo11oboJoE$I(B`T<#UgD z=Jol~9_z}ae4dn%WnVy!sf>tl9&iO>Dis`i5t|zaS6_tqjhDa!m{d@+Vb!#YB^!MP zZLV4QN**Z~n*b6$Z5(8lB&<4>`4LPZloAF;go;{mWId+-_6ls&n01s}XkbVdicF1Q z3;=Yea`d=}<2)ls0P@4L&zKQq*2S7r0r+g8SgBcD(ZX@f&KK2lg5{upWMm{*+%)3v z?)C@0-wd>GyVezmBq9NqOP4*OkuXF9l*y}^K`UTtni;Tyrh4jzCZ+S|gKxlUNF%6a zG!V40qhv)G8>6(jK?1?o6nQn|b{F_c5|&IwDQIv-;G?Q?L6(t`L@~FjNUK?KRrzix z7@)#~?d?}xwY78Z)mye)e);8l_wF@}lF1qrv=b3sR;VoFxq8HO2U&w4pE&JuZ&5%^ z!51i=D+)1G(hf6>q`-86Y|{lD!KJdt=rXhgS=Lq1k_e<`(}ozR8nSFaEmkF)Wkp0* z2+v}rbk;ijukY+^!zzHS{)liTy$TVrBd~nj18w44SP39`Q16s{zfuIPSJ<4^3h*S^ zm1;rFgUuB4IcD^zGG)yRBO4CqL0!ZZ8-z#c#b$}`JJ}=G4+DojIX?cCNYB@BggPVp;cVX;j~bJAEo-F zCQ2Sb)D3qw;5K}^n+jbCD<($6kiu1w%7PrUtaLOat_zz`_u%z0d~gvw;}Qp8^{`z+ zOBS5XEo55-cTlAj!5zQ}@{VL9nl72{yhU|URg8e&;||ec+VsI7CJU++G+cgD)xi&8 zZD1CZq-nO5mMvbm{(<>eE6eUbe*a!YrxAS_m8lerhugt34cNs68lUv~Uze>Q^NYu1D-&bx*wEu>c07AJkI^mkK$W@1cp50 z`s<+<7!t~gP!Ci$mBWyLVC>Poy*XIyMG0Do02M+~e1--if-1?ddmAoWljzw6D?~?! zQL4R@_KC79X@KKP2JC6Bb}Qfgl@q^0 zpFS$0PCff+CuR~hIHqT)puEi5-3DvSa<&pXX{8jlisepf!DIj$3IWCsTS69+iN9Qh z%OtFVbf};N%sAl`!*b-pDnuVHz*b6?uVuP>QfjiTGj_G;JYlsej3=Gc&m=MkTd;vZu!1%L3X7vwBsL1@&{@ znNmXdp}oxtOx+WWmvX(k+QQZ+ww8M9`5z7!+gnBobC<941#+3LXet?l&kp_!j6d^B zb;AngaI4uKDbX=}!(m@T;3hLC)1n8a#y!EHhqCYE6fGR- z@~8bwT^*xhI1u-DMJ!zzQ?y8rZCQ3tM1znJ^c=lu>PXTXbm1?Uf8$t)?Ktoz6g#Ns zUMm>#YARw`re(LkIPJzcd?Qv6Gy!fj#$t<5bW66XFQSG<7h}II0zG~D%)~wPfUZt$ zg&iBu#Fm))>BmtQ0bnxhg%GmH!bt|26m)h+~GGBLz(q-TsO4{sJyX0=ATT``U zx20A?8l4M&wP#^~Dnb=5Ic5ZvkNoG6pF$UY1v@tb&0-#lnhip%MC+kh^f2MFhX%tK zPv~gX0#4y_8WGqPRsy1Oxag=3pxWT?m0-wXekQh53N>8d)?h4oW&>4L_FXz}v{#jV zTKl;>+f~23L-$Co+Hpw}COgra-SES?Cqk(3o1&3iUUrEFRAgN@v}LgOx1JdC!xiZB z71CSN1)q;z)|K}8dSM08+F((IS#4^Yh+6z>cGh4Yca2`M$saoT!}Fj=xhiL^f|bQs zyG(&<<$U4YOsNt`#XLqL&~LajNUMF3U@+3R6vupRahl}3y&a`lKV-IAv82+2S8Y0F zZ0zYVEb=jWaO!ItHaxu!W@Cqru^aJjkPCLY4CLD?G;PqaptC_>KER4#Y8Tu85a5p< zmX032zrgI0Sc4CFgN3EmqNM5GzbLSzHQ;rdZ!EHw6azlP{N$qGQkLVrZ|2e*94v90 zzgQGpQuLeDFzK-&k8gwNj&6YC2lrmJ!E1z(PAApr^o9-n$gFPg8J5q*Le3l-@hkcQ z_8NQtlh%Pbgg;hhQZOK-3uv`pey1|wx0y&0r?r)gA`6yKIsjtiamaHk89?_fWRt!x) z=soTPLl`a*NcDg{w9Z}8?QJco0)*yRtFdrwnSxSk z68nTo3H=r38FCvQ6)a7UI<(-B(^sG4h1>z!&3xvVK1K)~`?if$ni5Km_|o4)^EOkv z)GXU27z=+HH`J<`8R5kWu_1yBkQv5jjg~S!Sdd{rI&jbZlFN=tqNWORG$Crz!ZyDG zSw$=N=_>p^-u7P!2}`!84n<_c^1z!d$nl^|k5RJlCSttSfz5jiQ4^!Vu$;?8+*X`B zL0T>KLOp5u(C@#(pC<)mHoE@x7&;Zw5S4t`T31?WmQ6)7Xvj7?B?n{3P?Hcl^!Szc zKhB)!@XBfFSOC^c+?xq2LwyN7oN@epVV|w8;kL(vcn|s@{3<4Us{!6nYnn`ggjOtD zeQDEe>(V=Srq_wL&lwmPc<#)5zPB#3b7yAV%XfTlVB7Zw2H2WoH2E9w&%A(5CF2bc z7&fU|^w)|thaWj4hIy2@)Tq{uK7_V*(yq>jY^$^NlD6JRY_Rv#xrMHsXujg_H3I|u|pxdGIaW_Bb9KZHhlW}k34=%45f~FWZa3ue_EYk^T~>08#v1bjI+W@qUl9i?N!8VywqRl zH!CSEshc9q!x5M3G~_JE78EJue@Rd~!^JkcLvxp+J-xBgcOye>Ab_imqbpZYyp1eM zzMmU#c@8aFxNwmaid4Fy_W4j`+zX%}+`R*Oz%oOjY#cEI)AE%_RLlv}{A}ocX?VSg zpi;f?eAck5M_K>;Xuk>;&+J6AQ~7=8GuQv8{Bdpf?zVTork1^X=w!aRdRl?BB)>TkaI-~Ikhgo34_Ht4uci~%ZQ%c>XZ7VZKoWj6KM0SQIqfdb7#akj83 zSXxY%nu&Ih3rsn}(sC*(s21bjjQXG~KCsCaU{P_5M$p4qxB@J^?Dh~^fD)thG8$-C zWd!kfee`Zc^TDlb88BGWJ`7>TvDP07CB9Dw5cwfNk5nY6pJ7BL3_HX_XoXoeDDD@% zCJZH@yC$fN2?fY7-KMMr18}8L)8jJ`6Lhl_kc4nD0(C-jM>V$}p?^?hK)7!d<@w9P zSoZPQoPn4uO4UV~JhZg1ok{n$D6-H)O_$#n0_78}fLjI+7hRBM;5zjx0wR8U1!{;P zcg7VH+yYABI|8?e67XF!Ys$Ms;bK`1z_v&w4TOvaHT4scB<)&KFT-z5Y{l;m>;z59!Bq=##GLXVN>~F>ga8#p2OFVO8NhC3HeP1M z#Wz+2bI3x8f?J!}xGJ`@--VGLnQB>;pmT8VGTqC9$sEBixSpaG zs70AQl!2w?2Lb7ITv<63woBMLR;lQ08K)UcO##D3Kh^1$6wwFvAO;n*ZTfb{ z)CGf=h5aNuf*Pu2oj~4zGlCWyMacJDy%feI#r7)UFue4u6c>EaF7J@ncl=tPuithT zsXjUe_d&pdGm-C{xDr$=a6De;THp?{ld{>~=I+$9LOf`+A>t)^m0|YiZ8jWY*kWIU z_@atx2yrbwMfX!*F|HWyP{{oh3ygEg9?0{VjE@C>_|=UyI#?_e)?_j@2+NDEvpZ5L%c|~TWi}(I$A7h;tEQpJ(ZvD9 zZQ_;dqNpYMMryH|#;6kF0pztcWNnpFxjZuG)eHeSM3|Wv_Q} zTf$hJfy3Ve3tn_FLR#R)@xd?XU2LL)D*MCnf(5<3i<61OcE2Rrw!JtU&V>xq?2RYd zG{3_Wehr>*AC3Z$20P#@+=w>YEdQRqi(cc8|qebg5NR}5SC$gDxMfOg>cVDMzi$)i19GZHbqeJ;&y z+M(BH6YHrlBS>NXag8Xj4*B4aQVlq^U9!uEC<)2!aY-h~vm$xK>!P8Ol?=r;Lb1iK zpSZP9tPu3N{8DJU6{XQ|3&s{^N1tE$t;ejID-_M6LwNrBETVb?4SQ6{eUd06tOyaD zpqDT&={`H;4Pu3fL3cG2xvn<~mz^KZ8^1=yxW}h!zSCE)K3y?=)MW2>FdqTu!3M@V z0!t7qC({$&J7bllDlw+~=m6OYx;)z7!6uR3fPT6Yl`s=z$N=DY|!fxBQ;c$;e#sN`k1qbd+R)Laq7*D)yZs2lKkEEq&1 zA|8oT+iDGuf#HySU>uo8i_`iiTWt362(N=TTGi=8vg{q4y?}1-#=b~)ughyKfpBmzO*b^=Jjz}UE zZO>;T1KI3Acu`mkS_s7JOQxw50Zx5G9B8 zWtR|${vLa+j1>$KfVnF{1rdt~*|Z1|8aCXVihqYom#d7Em+%&VlVSnG0f;@ohY+vTBel9!JK$;veNKrwTM=1R_#iihX>VLuF zkE8Q+kk!+f&j${eGgy2o1U^S)U;dsIL0ZRJJMt~jSU%r@!$Y}fGzaX|eAuIsrioDQ zDf{ZyWUtHRle9Kj^dcZv3(JDfi!{DS~ zKt-((L~tF^es+-OTn@#CUJ8-j`KROXuHg*^d0k<&U?)#nm$X~Q*zYvY&~nE6Q?LLm z#17eu-#hsXb_m{ntj+8P2+0=gdRWO>e&i6?|3*j{K}Og&lVX`94(}MaI#x|T7WXud zSD2Q^M1j0r>thZLl;`TA4SIuX@NFEe3HQz1XwAM)X^Hy1U^V=<9^B*;{Zv{GTIM(O=Rw+h9<5!7D*;)E!#WRh z)U4HWw`t1T1wj;JaMOA;S3GD2RJ?Jez@e~p6V$+BL6SyjLfJK4Fgd#%lvR|=O5)j~ zDE1qE&Etcz@0vBg5pd}hPF&?yaO$hr?`|<_SFC{A{r7ofYBu6&%Fr+>Oq83660z{k z4Y-6etrhr1Kw&Bhb9R=%FrbJqiU@6+(H2-&tQt55rXSh03T}d0#^gR{CEz|(Rl=lM zrE-DZY(QwRj4!`uf`$y$?-CKt>h}f1F+)Yvs$%-BK*)|Sj_0kcrm04JIl{{oA>9JH zBX_mn?~-K5i(tjP2L?p%?s$JH6Sq-8OjuG@-7T(zUT7<7@cvn2|1W;*bP+~XRY!Az z;IHgV))97Q?MQ2Tyq1)NjP5C=u=ic=%T8pr!R%#^s!4TqD(BW8(%N*NKb>r8O{BAW zQnUJ*HZYqntKdn@7PXZ9CP*tn25Wtz!u$9JW%L%DRfSc9(O!oSz_bj4KFvs&ehCHz zJ&wJIXk$|%01@gP{fR7PeS+ijd)JaNwPCcg7!ZA9)DE^>A8m_1nS-X|b|aoh@dr}{ z+TwP3Vf}^?AdxQKoJsrSxgA8lI{8-8(iJAeHWq+HtGkp&HHvtKkw6Xw07BDF?FF3?kED>fxM;Nq; zV`sI2QHHDZ7_q&QRe%jkhX&{9+OdPfV{><;5jxhAzj&9YJHM#E(&>+tKKkWYR_FAhMivApsO$2y1*^;tje=e{Z%!4QtKC`*7UXu*FHV6eBRkh^vkq% zj1RN>a^Fh~zTkfL-al0xSpoa3;51AvIK-?7j}+7?M}uX&xzJ3E)JV_&qO>-ecUC#IeiCin;M_K1@}3A$#2u+FrFH-P`)cQ;k`{3)r2+58b2b? z;|3P@_b(ne0Zr{*QtnvX-?y}nb|?7o{1e7#U~zk8aZk_UZbydwi?9>18oiKRcaw4a zqSFD)6SM(H|20P{Wd=U>aRmLmq7Fb#fu_N%JfKlH2}29873Ro;Dqy3i6Ensvh3q~M zCbsBQq(!#!m?HzW7?>uRtCvM(;I*muoaW)+d-oc95J=wi19|=(%9`Qm;zf~x)*M)N zZ;LmdZp)`SB4Ia;1-yn9(%ijxOF^a~&!R#$Rn$CqJxG?ru7I40`zn#R=}N>3u}E_1 zpeUsy9u`!osa->{^b`yyE~QP?^~;!8kYHa|%2HUu3!eDetx7Re%)V}A@8)^^(PW}C zJ=X7TkA(2blqVkR(!F?t$gQh*ej9e_oRpy|g#pCtMZ>VkSwkgLL&Tt+3;Cs}+tB;c z`HVYig+jSPvfc1_Z^q-DHYl#P=?0(`(U}&=>!T2noK|2-6AgRpIY=8XLE^TsDiZJy zvN(rMtZnvg5St#DjKR>EDVRluS!$7amJ#6uhlh>$Dwfi>-!zOjT`uSQ%}0;h+_m|* zK&|#Xj>0Qft{imEXy((J_G!iVw4ux#oVm9&dghs~g@`Py6Q)yRBRSLn&4Fuo`aH~n^dP|tO!%jtGd+gS9XlyAXYR3% zdwSv0p=$owyXJ+)RxN64Th!h%93D<@s?FVopTymE;nqpaz-f0bX=``f;;k+7&)t>I z71|cBS=5$I<@(CQ+xBf69&&V*?+YdRIHJ#&fkU5!U##4MUqNBN340#wqnANnxgNia z_A&f&(mnVEq(|_}m5;MuEox;-ZXxe{=T!C{B)}Lo_$Z5E4S|g?R?EK!Y9;V$fC+9O z!2BEU;uazH7i$&F2POvF%&rvK0p6&TZTN##uqrk?_|FGX7pg~Qv6g4GVFF>^XKY@@ zyW>upx51t&2%=`~0c&C}Y?M@HBgORM7)6C*31MD?(DCFQaQE+!Oq~wu6miO`T!V?S zJagq7$)nSA1k~B!ml33~y*y$3QAKUtzJM21s_3_JBEmAJsBGMsY z>+w6!oAc0z@mBn?x0ehml&W**u7XLgW3B%jctGjtCy(RWX{QuUfv~o5uj~njB>()H zWWnA0{gWh7(YGL)h*=HsC5Wdyw*4u`v_6-s88@fv60oj`vVp=|IYK3)jmdWfc9WD2*n2QeZllnxSAcUC6e_FlE_N zGU~>U8w3r%oxUMu8Tc^*CG1b6&YZ`KqV0+k<9!7+!G-(qX4X0Qm9Tr!hmsRsqcE)@ z3@dw%y;6mjr`RbA!RTZX0~7IkaEJ~;c&f1XOA!SJ<0N}~ft{c@uHlF)2ke4FszGrI zxNZ6vy91Bm1#!Pq?{pRXA>2xtn|?fdiM-N=_rC)yO2Z8`!iZ*6IZ?=q?$#g#4kPBz z;D^Fx1j0#(3XkFNB`OZ7x*)Ff`b9*2=yO6|f3Oel0^{{oDKF98u{17gK}44!{sV7t z;TTILeh2hk@fgI{$qR9(Te8evFHE+AN2`damic7_A*(KKaqf*v(Kl^(Fer<$wrI%O zai!Z1cvB%8q558Zi>xe$!yoaIW?6G(G9Fpc}3hZ63O0% zV==Tgdy&+!g5abA!vXAy$0c3LcEz=Q@#6gAp~3kr**#aEm&?ts4K10|*IlV?s+CVo zB&(aIw(r}AVy-#)#rNbgdloGnu8l4j9J+Q-HV<3frgJt8mb?0f2RBvGJg0r^Hw>PE z$G3uC>N|;9Qu(8ycREjIQW6ZNHZz$3SWk``QgrA(_MolFH&eeoC!7d?_F zxsCWBO-K8_5lngDhII8A;gIfb8MfWkO@j#tU2Jan?>Bg1-Red}*9Z08i92>|JlFuL zQp;CH;eUdX0k4wHyZt|RQ@=bhq>PQto4f=;__L1JyR&_55|(PnpN z(H`ENOk%KT1d4-$EiE(=>A4}G!~^GVajh%0v_~`OK^i|BHp7?MZ&3Ik^({pY_+Wzt zPp>4%;4I_hPDwkK;&;#vw!-#g*$TVZjR9UU zl=N*0-7Ts6UEwxS6 zfoQTlidX0gg;dUj3I&6Z_UlcZVK{h;1;K)mkNRC(WASwt&e}76cvA{Y*9iXY4TAY$ zk>ZtiK4@vTYg}NU~-A)deSiuUapF#J6aR1>WEkl#K$mdRy%r({1kIBz=Q9Yd!XDZV5IaTaNfRK+x$&D4Zv2h{4iKz?Z$-ipY~PSeI!mgE5-vElk>`{_;puV|cIki^C|wWv zK(<6#7Q-+fI|qMbRKKgbHo-2fmKL*D6uVDl-^VXt->c^^d3qya8P$ZX9D_J~wR0uA zu;du_y=EEv9vWlc$A|G2dl!B*NrcHdOnDn5Cag$wnhwmYx2ylInNcBDBDw*icQnCx zT6yTh*i+LsH7vsdydUh0IYDsdTw}4$j=WewR1q{F)PtYLz|uvH&MR~5-~(r)%q#$o zK7m+7Ll(865^TeW%)u$%j}h2Q7EIOPhwM!q35q#F0i<%bDS8Fbc})fbgI~nJWI%rS zKps$$m7Q~$xnS)Wey~eA&7+39G(pdt!dw6=m+6wcelrv*<)jl`vUJKEN!C}uylf>@ zK?`lg>xZJY_!JfH2ti%F)#doBkJ7BUpjXHIU1M%@g9?+(nRUi7tFZTr;qGTnDkg3* zq3i<(t{eVDR5WrRYKb*Y@oFwO2-#^t=UDZ`x)z#H?^?gov&wcgG z^vuq&vxipFYIn6-txijptXr}y%WKIuVr9!V2-_Hf6Ko*JnAm_53^@F;v5nW**g#0& zkAZ*i0m7Iw5RMN4L*h}sPxZ_mGJNvMe~v!tuD9Ozd7tC={GLaD>d{C44=wOaM*n|g z*VRn==U`ai!>jMdmYFz0F2+c2l6j=WoOmqZ!w^G>u!evTm_icx!XE7MiZzRuuR`@e z$7Q6BG)<0>IOLFQ`#Q|uxAbgUZ{@wntdqgH?AJ;`b?yU~mNpD4T=lD^pfdORV+V$Z z+U-}Nv5X&DJ0J??%Iw0c?p&=^U;1YreP+flg@lG(Czt^wIeu}GO?phS=);}Xxwjoy zJ1k1&(R0oAF1p#v?-Z4KZDV0(Ik6j`2j}@5EkHV;=aVV#rpREMR|dj(fD@q8@BGjY zb*@go`jyT-_v(x4%BuE3?X_BQSI-Rqp$n{Pjnno>SXWb47P?;rbP8Jpt^Vkv&Zgx1$OR-vniI!<#4co4a0K=bAVupVfaKane|_003K!XscdndN zSg1@ujEH@IkR-H$5L5JfT^ydV+-b664!E3qe{M8 zxjfl6UGbE)Mq=Wemd`3?po|y?!O4GJAAF!nEHnQ-=`4!c69nXrJb#VcBrmI?!3wrJ;oC_J{ z&U%5cVlj*O)^t@%I~(<`pATISm#Hw$lR8%*w=QDF8LyUu&Ko^~H-ac-mJx;}0?LpB z8cJ=JLz7$rT(dMsN*|80*#p8qg;OZ4{bbH`)OsPiI^JloM9oI|d{qrYO`V#~>ZN?` zU}#|k#}4FqH>(Q-$bsBdGLoN=PB|^?CB+Gp%%WgXiNvzFkb$d+d{y!cCr!sFn1za= zI4#3y)$F zs{!rREH&$PbtMwqzNv|8g?;=qc-I0qZx)19guH`%oYEuPpeLedWHqzmGQPPy0w4rm zBij*z@)UCJg7P20$U7pb_Ja-Ll3MYS32x*^s*&raT>ZPfm6hJtdn>zt$u0ZNI~{-U zymITX_s89Zg|719-Mf9~yCEgZy%BfHow15Ud2Lr#5SRKq{s+omxCSApgpnfaJgs2!j}b)#r3FO2~Fp zgqXzGeXn6&_$mIyFUJo)#i!BX%Us0@v;0k53oa9+9Pt!Eq^%+&E~2#h|MDt)>siT{Z=nxRPt705`9V1d-t*5d{*>>$FqS0j@!IT_Ul>b{#H&05?S)

ZWp9lm14v^JU7)@AtQceaFE!;&OOFU-tWwqciw5-{DZk^ z^B(2ik6Pbuoi*?LkLG#vY?4+FoFK{lx*LtqOkzBe_u0kwH0GnnfgR#t-I13K%SA!} z;&4OD<6XLotU7b%t%F8GnH;_U1#j~GjRb3!mEa@)^EdCD{77~3@7{Lj+jyP4^EU^j zk0koqFQ;_n^B40u#?mXIbI~iAYRDxOMwd}InQwwX5Tu*DD`QKi-MpWjtuHUlZQgz7 z@l$8kZY-24rKeBdb=O_Tk00OOUb}m9esQ@zoAvYV>7~<8v$AmG+L=?w@BH*#$KMVz zGdceS#^+}eELlf*;xENJ_Yo&uPqc@)HS)p>a9ovi2f@U478YevkIA8eL`o(`Y>PyP zkT{L3VM=8?cIP9jWvvk>@y?+#=|%vG-PdO2l?_R|L&++pXXkb$6vySJ(6^03sZBNclxUh+2Y#h?$bZ7McYwzSNu2xrphl6Kf^rq}b>y)D)iwlSLhdgRx192|tp~Tiw)w#3<^$Wc z(hZT@-Z%zp=7#dz#{HXL-+J(M4{q%~X9w3+TOC=G7PE({e#|_oObq-p5|^e9UUx%&-m*FBr=pAhII~qu?DabO=}IhADkzeDy4FZrl+M)`6IZNZ zJdUgt>6IvX!t=>Y1G;mYo+>e;q@TJl)Gmmz9j367lWao0a56< zxS{E|w;L0+a%pm=^c&@!RyA%!_K($%w=!YBUb#gxrUzBOLxTF%zEP~F?R5ufzz4JYN_K<-snzeed||ZGq*U*mEyBz4%<)BmM8E_ z>dSNag(|e&Gj>k2nT4*I4V}xG#y)om*+D-Rf9XHsm$RAE+Qi`xfbKiND7knu+!!i4 zx7{?<^wjwFRo#lUeX=oi>WD=scpfs(Gli-7t){d5>R+{MQ*$I+E?n+aJy$)_ zg`rcAf}rX3bNQNgWZf>M)(?>@x_Ig*fVdd}aNw!leC^tA?{+4F8&5_~_3G1xq3SbC z-r_5MK9y%Y%V-|Wc^Ietp-1?cX^+;>#=2gz$h1YBRntC-0-8I1!OVS#Xp&DXW(BVswo5*gxs4zIE(b4*Z8RWy z@$5{joHXFLl1FLe9Nj3Co6}1xGgC|RlQXMJv%pt&KWAlA1S(0jfU!)&u?0yzM7%)f zB=L*HuoRJU7zfG3fZGLIBi1d?8Tb)|k+`7@E!6bpOk>ZFAnjWl!@U^Mv#< zZw(AxICt_2wmBdQ&K@{} zh4KadG%};!tvS$(mTd^pNc#!A9{HW{qATA+FH3>2rbA-MtCFM`GH<1gSD2)0?*DxN zdT4tfM3a(kWdRJ+A%e!}Mx1b&FdnfV@qg7cGtgAyk^uQ(LT#4H=T&=S9GSe0)7p`iFAK6lQkUD{L#RGfNLlYdIqXCwy>R4A+S8(@~zx^-~bUMI)?Gw z6t0n!>dZ~k&^#NA^e}C}^mB`3r?XMU3f-uf6Bn&E85J#&^(b3XtvZXGUnI_Vnz}QR zH@Qc(0-~oK2XRNbB)xIuf0gWk#8o4*rlxe6=0;vDacPO$3Xc)KZgJUyHXSj}pvWhp zi5|&u`T_f|bOHJZqn7fXxLEK?mEsy5)2@ZJ=0tyL()E>gDlSx;g>d%+3h67V68bZG zOT(`*6$Vq2<5M?A)#_}eve68B^{_PEDl{ymnNoi5-tp@3?r``q_-nInIaVj~pe%BB z*)K9g%}Z-`KlOz#^e6a9x(@T@7l^HjuFxFm=_7Rq4FUQ^ z3C2t1m1KGo33XZM^rUn8fzu92`IeGBbmkC#H*)eX50L)h;=zN9c*c;R19Dh&6N*NN;Bf!cwOOCHGHObHlvh%Vb3O}V7z;%^+Oud-zH zd9-eCmqfa956MCSpRIyF=L_ST&m5`4SRc*8E3&&BY_AW{yLDqR$$)~ugJ%zOFbyCQ zl+YX<0@*v*|AwO`j$jr}dQEbm#Zmv^^CAS{$v!MWSPKDh7o#VkmKka1qGlV5?5vaO zmiTD75Rv-PV2@9HAd>)+T{jry(4k??Aqntak(+{lOU)xAppDE!$IPphOF^AwL6>gW z%)JOeH4X0?8av*(Y}$xCgHV#8g13WfSFk3AmU7T960r+?mMR_zq^k&6%tpm46x9>} zQ2;{Z(b^U;(v&de%S4~`w7lt(X$kxswnvLYNog6tPC9azd>$kn_92d15@-zgD#uF> zs)CWtMZTn*6O&Y9WEvGLkgzy@zxk;w0Cm(A#ZEz-4*o7AESZlpKE6(I(&fm^*OcqU z3gu)dHzqN|&mgCfuMl#^$VGu_pX_6I~5l4!)HTs7MQr*02NQ{dJafKLujAQI%r@r zwsGEE#7&5mv<&9p6dXtoOZ8kh?N;c>Mz1e_!``xZ^ZTUz4SVPmvW&F=Zq%5?s{>>o z9xc&hFnU9Je_tPBy6=T;P;D7&7p)7D)?x!T3A%N>x{Odwjsf^IIq(n#m^I0vz?4Su zP_|wgD$RW1z{~1+h^;5L{y4T!88i7xC2zcUYqDTx^0j*oxc;kIr@5o;lpVgLefPjU zwS4A=B>I!Q*gKD&e{?5#>Em4AKhkd&y+Og;(X<`2Fz||wQ?s37ewjt8%A#erWPvM*b-FQ1=J_~R<@ zn2dRQwt+a1$mC~mB{Nb_Udj7Q4E^Kc>31#+IcOIQo{&oMJ z?>KT-CV$(~nxZ_sFyB_*W6qCv=V-8zzkUsWr}%Tmx<=pk`Y0%C-=F+^;?6sj^zPGl zeD$kr%OJsza2_AkF}9>FjUFZ<5_m*E&j!g(C`??CG86Cwl8t(R zH6$P)OF0}#vH$*;+-ipWF{*pj-SjsfMh?d+K*8uc4RyR8<>2~G1D{WoNdPo_w4vGC zs&%wa>ppX3h=Zk!;-`B@?s#mafU>BTC>gQ3;Pl+0rhfoQ2+L($IDOi!z(1@g-_>_v z$tJKnvinCksc8_xS2NZhl4_M#uohB5=koYGH;U?WDVrj`GRr|2@VIe+``jVxE@eR^ z8QFL{FOGU7KoSSvck6xQz{?ICc-a&3@&oIq*VAeNF;-YA_-T#uWq+MDz9GquynI74 z_RaJ=O$xrSO~wrBLFckjwEf8T_9JhS7v(*B2jr-4omgL=APX|BRcfB=dbQE#Uz3Br z3wds&->PYEO|L)*(2%VfY2ho*j9A#C4U4j?lPZjq8pbIXp4F`9OF5vDdG^lEKz{{pO+B>!x4;F)_cj^-KFM zDCKc+NB#8C>3qiAROhFbj{fu>WBsLbNnGmx;#|4xxdY~r(Yg8y2M+vBHb)tjcUi9T z_T6)q`;$keJ;U5e%}p;I`ALeLyo=TQ=lTM^%by$j1I8f6Gb2g{9wswJviMnL!HP&a zG_R2v%>0C(O3WGAwx1|mi6M=;Cb0q8ROndSQK#2mh{P4o1Bm;g%*889>=Hv|Nd9%) z7ZV)iZH3eECraf)dvUmg0yta+^FauVzr`MZ^QlhIS?sMWA`VuT*9G6T0IxiHBC=TE zAxv{R@$Vvuiu-K=%gi&Lli{8dx(Sd@3E>1Z>#TbzlAwy8sq(BhlJ&BnppDf#<6qVve zCLvda0uv_ETSwc=QpQNFR7JmGGi-Y?(5Vgv!3h_Z$9)sk50+|1sy)6;IS|MQ&{+Tz zrK+jlM&-!o{en%oK?)LJ;+quS;R_XY+$bzl4uN^oi<^E_sxQ^Cx*_R6K@~RxJ_HLs z1<_UnV}|wvFD%?atVk{aKN3ovglzc=53y<>BvJCR5V;m}Xf)!>qTCrr(omGpP8El? zz`BAll&&JXPGpVLp>xOakW?}{r( zPOyIkXHIej+xcj<6O~6-Kzj>E#RcV)$((!*8t7R(^$(70?;)ySU%&hx1yoeROaI_` zV^q*f|I3V16v<2fu_w%Vao+%rr-F_JD0}&&4lWA@}7aspoV;*jTQzbrFTg=}KtT|`yI>gN|=yo6Z!IC>)nmaI_D@0`Ez z!SlD5&wua&uRFWv`Qbe0%ja3c>-#R;z5~gpEFSsI6FpPvp|m)|i+v4ynW*|;|HGA) zPX4me?XGmYZymk8sD{ZO$g2InL`Qo*IhV>Ejg{aZWoqTuYbh6QzwP$h6l$Od|L8~M z93ILw2whzJ!fJ1vQxe8V?{UhZ$;*+^(i)1L}U4o6={ZV;U?%4g&pk5D@J9xc5WtM@zc-g#L>S(rKDJaZ7 z%nB)`U&)8Q6VUtL`Yp(7z(A=p3MDig zO?$hlAqzz3{P2^ z#ZAx87W}2ddQc6rc6+`ZYuk(Eq8nFiFLXeO=;m!qC3rqSdNGmIQm67zEGw_g#JRZL zj%#?gtJvH4E=-z)>l6E7{~7Fj>nISmXle1$rAi+Zc&j)|xh^i2PA2U=YH?Asm3Lig zqxxZ^8971Z)q3=btP9kv3f*6-4VEJdKFO^B1XiBAyjgd@E|oM)FEz^^nERP8TlpN# z>q*HEW^Ra|jtseC|&7q@rznv<3xB9f;FZP`S!-JTPlY{+(4lZMDqD zc+yebwx*^nyPodR_`US=gMSOJpx*8<-RnQ74r)ttPGKtJJC+ePF~hzIG*C-_Uq&@2 zenX~kOtcvT@Uf(uXT&s}k2B(3ZjG`L1b z>qj?MRVe>(<&7cz{^V$OO`UlQa5g=v_WE@<7$_MKZ))oE56Z%laazqsrqO5`W~5bJ z6Y$$eI(@GDq+E1K>KD9H?S|c!Wj83RW~AMsqJE-8bmCFGWwq~@u-KopGM<-d6|HL3 zqMIf6Hj2>-Z_`n7d!;rXVVserHRuSlCPgs$sxEXSpQmS8xr`gt@$3z42&}W1rgoeoS1jUBc}{EojHWf4@}E|EsN#53H_^4lD-mQef%dqP9v=B$4U1#-PPuo(Y^%oHLTr znY{P*GKZ0Wqts)jp(KGAt4{ANCh62mk#c1BuS&UWfoed;TU7OIjQzA|1hX(Tq+d?; z3)_5&;C?mS(AUDXa2sZp@ns{Ue2SXOyQgBY#WLTI`1by;)jYnDHnY$H*;!*e#@Ug1 z6t&<+5^(m~@SCYM<=e)_$KEvd-mwp0jU;BIOe7L*6a7UZa)}Njy)2238}ULMjdCGn zokS$WZ3S@;S#Ef5MI8_pADNh#X9K~8OGa*|y?59>-(bI&;1?2Vdm1ZXrp5zhE()I7PXd^uc|BLh)2Ru4w%-<7pOIvE#y5Hhyj@`vHdwI>tW-pVqC*# z1c47d&81E?EL<5vWjdi0w?#9lI$T>=#u+QNY!`?bezRKI9RG98k`j){0;@z-lDI?= zI9qUAgWdmWWTftktt<=>H&>vwRoXN|gA&-qzU3}SCaHWjdDY(HO{S4x?* z;i{9v<%jxq+02wG{rQC{c#wqpJSE5fjHg=8ZGyg1*6(7x5zQ|y?nQm`#4`>JLA`s+i0ViSu1A-mN~z? zajz87yZ1l^Ot0sg)DA1RYWZBJ+x0Wqs8en)o+wbaV=^pOk&UGT_r6AUcw%v{&s_k7 zasde^tl2Sr&cGcaWtvuahmZrHOn8tSk*mi$owLDU5KK;UpRZX$CUn7O-8gm|67+s#=&SIpT?`u#Lb$@bmQ)Jl z0~R65dWdN)kphextmYWmftAB@iBu5p#MbT`_=Y5eFzDgGMfUQM-CN22gu8$O4slto z4llQ|4~i%8DS7G4bqlkPugw;^bFeqV;bE$0&Zs6IoLn>KT)E);3ssyRyYFgeN=9`v z)8?yk&ZrjJncYtpX4mFE-kn>UUAyF5RDOT&ESxGV85NHN1=*>*cLula${8}+{wdwY z{weER(Aq4=?0#2radMe!Z{SRvSuO$qq;RhMA^rM?lOA^M*i$gKy&Ku_X`Ulmslg;P zs!p4f91;YI_|O2YNaOO>=4~k+L5yfvVm(Y`?Vt_{> zbq$t=ge~Fb;R|X9J(`(nPL#|Z8FwR);YBFT#U867T) zhuZrm!fgT2evJ$X)rS9LMvvm)S9SQEk75|SB82t1E$U^7Td+5hgJ>jJVzN~ z@*5rsh+5~I#+06ijd-fzKoDyMl_-Yf0o-;uj+7s+xUV~1j$j5A=Q6raR6hMWxAJ}X zydr~o3k3sqz953`zG3!32b+xm1WlkbofMFh&Vp8U@ zPGy0;6p*;*i{9H4Myaj0d&S+qGtE1N0->N;*Ij36#OW-D({!cvhRHta4JXu*Oo+^&-eL8vFw_V}F`p&1G8ZTx~ zo-D7FPF=hAsd)0br{w;n5tJv8Zpbz{-NjQT=N+B@qYpm#(T~oS{qyISPx85Ra{2su zzdZZVFFp7G%S*ES#77@^uzYgB^3v=_$Bc_MNjgC`UxjSDdF%ogvaMBLc=G@fII7l+ z3^J!WnP)BQ*)1zi0#bgODmaiGwiV@I&G8x9@u86)a8ze~f~>qD?RHn<2P86x$okf1 z0o*@o79k9z{o+v*xA&~=beO0{TgoDHfgz@Ce?TW6gkXG8SuR4I4V}m%^{M>00L*}t zfMW0Vz^(^|ZCQ}PVh&twyO@CEWvo~Bo=CQ}2cUyV5e6J#Xu@eHj~MAER(Iejrq#5 zvr=7X_6xxjNQ_Kpu{1S5)hjKw@tS1%I~1m`+2KN%t-I|${;cuC3x~%SZ}i}fkz<(F zYyEr>@lZsR%z?#Oj4U1RM!ySjWF_ zTyZrIVkT86O%=-hGCkmtQL|Q#w@C~?@0Q{0@u{ifv%_0vP{0MY%RgLKfJxX?H?au? zh?5d|D!BVECY(Du*>C|&eNT?PVeA$l1E;@tv2R0EvW=;@Q;X2HFXDNXf#|Yw5Xi-cz0NLN%9% zH31M&!O1)ILk+aTg5*q6Zou%|YN6{vOL=Fz^~8Ub0KLO=0&+nU@sM$Sg4`q+MQK$^ zS;$A4lBgU$P+j@b@kP26R3_>T><9EtwghTQAh}jpnx)>aiEJQ$ z-%NghYeiIX1Y+UOmIF)Ia?P_8&@8>>#-r=Qo!t+~l@J$8t6efSxfK2!T(ttMN{u)Z zK9{-{d-x47zv3ul)<=@krt~tD>5%%SWPKoAMF|uQ0IiG#G(W;uR0ReMIlhvLNqCBw4oG>ILgqbU{l%olh8hbM_D&v)iQzVw@Wm;g8fkHvaRazPaZ0q5jti5v6 z!d2^*@YwLj%VJK(jIb--n)L}ToZl;GgW(# z&QZEUD@1v%MT#uV>H61$K}oe6*ZY$0lCiv&mX8YB9i>+u+j_7D0+@unb4S+iJ?cE9 zsc+02KX+tdR%0k?iz_D%@0?P3>GWY-cxBa`?pV z3FSY^|38dWCyCjS{f003ZoFPhB?6_~m$QNyNqhx(R2Y|hMo`M57nMdfW!#V421!4X z(JV;DQHoKrbuyF59*OHKQ2vdHq;|>_jsfAQ4IiEAhW@pO1*3;I#Vt;1rO1x+&RoCS zsz)Itd`vKv0(lRmP}Mp=3tJ7&X|3#7Ij@l|YU*DiGV=(yc0E@LRwyvJFf)7jYKFxu zWOdZaZIBsFP3l^y1b`suG&^z8(Nj5+*l_*oYd2qg5Yb)oYZIL*Sa0<@jiO$hm!w+8 zeOOwA62v+h&Bt;l-@>QNY&>d^QQJv`=2FW^!%3n5j$N6wFSc6Z;oWbsZ)zTx0Tq49 zwERpiePu3D1W+=U!wHHDFVj9!iE{SbBd%v#H^Qoc=YfL!qx9UNmUad|*7+8huOgDpk3RdQPzErQ5$9pP} zG8#-x{BF-H?^d20liGlINkut>_&3F@u*ao2qIBSaCn5zZ9L#fi3wgf1`{BVb-H*Yd0~oNB2#RSc(&TslPS8;`zXLMb@z)Oc7tu$fYdkf)nVev><~ znu=%FP#`I;o7^il+jD#pnKjl`2Y%XsPehG<<;EZVkq_+t&JD`y4ZH7q-wi+bR;9B0 zNAbJfrMSC)!;7?)#`C|R{3$Xog$|jQ?5}P=-A(+z09G;kh=6wc%2i)cin~9F)ujB` z#-T%-Ic4`PN^$ddzWV;3%ocZ#6|>4%y>n=%ZB6X{vPRvlfOixx^;PJsn%ROyw;?4rI$ZqtR+AD{on#^BlbMySd@P*KA&7olDI_I z03N`VLik7EA%O~z7JYfj;0t4u8yl1TY9+rk-W}v^b^WEOm7lI9KQB@>Ke=&cqg-~o z%iX-~;>VgC9d@atZIHQd9|T)ZrDOfO#6rK<`r^UginUTgEW*lq>e zv$M_eqVyz+6zOcvim zn>z4gzUclUcYuA7lqE)iq;fHYWE>N)5KKR`(y)EU%mtdVa3`V8&Bj9n z`5Wnpjn-uPoY^1W_-+VbZ$rln^y6Nsp&YvDsH z=e_sbe#2E@mb7b*zxCOdJ@UX~NgVtO%Ae709eUJ@`V;22PMs-LrjAX`wkrikd*@$hKY#48?Zo+b=ukt~$Hz%Pxq3RtSEA@^Y)c*P!Mm%dAjq%MCTUwiL+$vFTk zPpyTjQqgqV$~!sG8~eD_Z{Q0WVM`XU{g00Qyo@BN#V&@bgf^EzO6|ElBwCRWipyNV zd?E{6r+~kWv7%l(^#;W1lxI0DF(sRg^cv4acCh zX}AsvVi+0LWJ}9x7+`O?m_UKD2fBc&0l<$+l&1Hk zwQO?5*ryzgzvK;$xI)lD5lGpFlPlOmGSf0j_R&jTxW`}~GeJGzr?H^L34=rJ;n|FUw3u`x47zIVK*RwhmlX@5p1wg$g@hGAkPCS4>9 zhO)4O?m;RMTQ2vL$1HhoqEtcYk?i>Iq3CVpf|5JYwnKc!SjyQ-39Kq`{~pX zR7JRn$itwvW7f-QuBtDQv0?eK7pw_KbbYN_sI?|1i!;5TStGxe#M~&X);#Jdlwnn{ z0=wcwh0<3X`^d4>Y=%-tfqzV@V>Q*sMbQ6eXP*?Q9kQJ>LADC>8`8JBgJ&6lH;37BSUj#s2P59~TnaEw%;r znCSe8x+=Za&2So3oM9Y0ISYxsqF}pR*0#i=WnDBnAGHD! zPzC189>{nZ@2f5dV17w&4CR_fnxZrpzbu#CIrS*xOyaEad3i+)Y7tVsJ^~btQmg_l zkjs!3K>{(cAe~q)cb!0##n&M>z-H~9>>X2TYV>?)ZmxmHG(^iln8_7Ip}r+91?s)K zfh74D22|->3JHhg$nc?>D=|9B!cxzWg=D6kw8a=VYWiVt!ji!2_>izBZV8cj6!XjgRL?w5Y(#_Z(0CSTIp5%1AY`Z{QIAg=EB)DVlBMUAU4+R)sgUB$4 zhQJEC5qu+vCu73Q`Q>tf@=?%zsAt(gfu zTX!h{HDORi3jd<*RdM~eFqPmG!Ij1r95k$e#R_*yxd)SlSqRf!^K8>ghXqo?^d2X~ ziHm1DR&Q$Yx4~A{oNuQyUzaP&8$s;4{mTvIb}y!Zdt9IuFe- z14z1H!1x3F9TvVoIG;Xl*%+{Z5(qmvp+OZE!{h-YxLj&y5vB=DGlKI_(LRR<5vaLE zbX@sIN@SVlv*kjiV~K@r88)^dE3kH}cn)J8ns_fIEe<1`EwoHSg>?}BZ{XQg4UD5@ zQ(OnoIZ{xv&6pTqq}0+ePgbppmyj#Mqe&G;xTma61yV4=L4G*l7Hp5$0ae-x?nFJt zYY|I&9f)*WFVlz8C47y#n}g?w4`phCn#u(6g>+F@bH6~hr|ZB*qv8|=1m~DlowL)) zaGqxB6zhd=jazU{-SSP~?R65aZ4=BNy|O~5;VT7mAt>N5q?p*H0d5n$S}~^Q6lHEE z0~#JS&Oym8yp!C-v=r~n+JRe3DLFIK+{sf`^H9-rQ-!S@qc2M?cdP|rqGx`3?C+7; zS!!l|cI-E>IjMj}2z7;dW=S&V_(deZy58rGqIEVF6+- zQMCdVF!)i2kWw6_CevrIurT=lHrLiRk1mv*Ephv( z>sGycRZ59)9%VD@rPI(D7^h2)Vtt$EGD5jd9HfjoolFYVM;XfonKDwqBxszvo*Yh` z@h???dr)o_EyX~VRPkzXLf6Hai|?HyfN3p2eZa89fiIqMk8P1g@CDEWeY&tVU9ddv zl)Fn4rOx9}*WB+QohJ9*l64E{-faEnGV6c5J^DnvR0|0_wY~!Wj zZ@_GV<}u-!ywaT8ebtv5r@K?OZa5R2EA6*mTD||l_nvC!3N3)4m!C%kn~#+&2<&e; z_J!S>t~j6ovadW)D&bE1P5OT$@l41hnN0J^>?e?d5gmo7&8$*|3xhOMvgP)GZL4Si zJ-RL#rMiK&yxf;8GXXHOO!>Sqm|t3{t}M+jK@^dKjdAbmfU(SIe!tqK$eMB*A3U8X zuMu{IT30!(Xf6Ei9{%thy9w<52?l(qD>Ke6x4IHm>y-@S8W0CO5xU)yBs))!(S5 zdNb+tyXOOKoVF57@L1{@<#pKpXU85P67}uWWEu08c1#w%hMx<`*2cU+@!j}QB zW+`^n*TJBW4>(S#RbQ&rmhkJ1FOQG^YmUQTQFy{U6#K`qQq&u=*bCo5MC*+i-GSNV zJ5+VuH=HafIyL4`A!(eYKRX7-MkyQnQ#l57CY^7mlz#)|LAm!a>Fu}qwWW=v+K0P? zE`L2${S{TcnOdmAL?+EGx-fpA&tNY;Eu(<`}B^rJRnP?Spo7$`_d)j&NI zl`zo}3B)H`tPb`pHVF{&7(m91<+|SxnuH}I!cpP2-_aS zBpG%CA#-n1-F>Ilt5habY;Ckdc9sD2!J?_;bcknLXS+TgEZ-P8RO%Z4wfvoU-W%%v;Saw`4S^$ zcdi!{BFhX5uUVbw_U`^{W&M?}ggZgT5!K59_P8P32|3ukEj#B0VWSwh!ba=m4i+m= zuDXi_`=$8^u!Za8EtE>iNM@XvM<)l!$~V4mGRta{qH{O)kG;PN%1=(l*3_=~maSWP zQs9f;>&Pa~*L3QUA6Gzdrs)&f3;%1co>vn;&HZCQv_m zb=>D-)nEtJl_6Wk$nxYd%Xm!29!9C2-isE-J+eCR{`1R0_Dn7wU4$z~c<-eHh}@J7 z68F8(Ymu`vr(B0#k*h(Um(8{vtLX_D+DtJ&<6bkHKD^pL1u+EZE=t|ok>e}TV&8P5 zYOPZ-Z6^rI<%UvV-&zh&_cf23(^u!G^YIL=L$J3%wNR~?ePll64<;y%NO1u6$^~J$ z(rBu3REQ}~*%3h1Y8{`*(qgBXH!GcbC3MZn0X$lc0uU-WJOHj*fAy$3b1XkwsLY~8 zK$GNnBx0t1AUP7Wvx`csEcGGvtH|X!oTyT1HkB8Sy+WV4#+}I*XV3|pWG_{Xzy!#3 zTlSdp!r#5{>&h?TpgF+4U7xu{{` zry1X#F1KIlqZkFX@=RI}I(gTw9GL7C0e~Kus{2BaoG(VTQmr)g@PU*0&O#|_Xxeza z)z0+B@9q_*`?tM}zM>$jpI3euzci=~qCUhHv8OtU`tbW6Qx<>l$@eH19=dsVH<9U* zYyTWtbFjxjZa@%v843A7D9BHIEd3GZp8NC#b#+Dmko`CN1mx!z-&3ia=;d$hv zFO@qR;|tds+jz$$%Q_e9TWWTCBQ^{eJEt3pvHRz;-#TDC!BLFxEe_bUKJl`7Dzuy) zqdmI|^nd&SWO5)8`;fpuE`Vp}#mt0hI1@%ZlLj3?vj1XGEYyz{H;jNWrP2gFU}Y%e zMoHc2p%@r&V%`OT7m2Z{o0*=}pSv74wtLfwR_j&MBzmdSpndG>EvQw14&64qBB`4- ztztInidjypKTN`LD&1G9KU~Crsh>46|LL+2;*WRFpWjp_{PQ>6bjvL_lBi_l(y8;{ zPRs_p*cru|Ixo)69152396b+CQFuZ_c#sb=16}EzzNr7;4jDZ#WIaBhIh^%$c>Z{{ z%q)8pMRfM%(F~GAn3Dk_+EpU8Xc1=okz7d>H$#8EvC?R)Y|BfdF*CD0GxG#V(*m$O zkuuC~DO`W^dRXd0+l?`P`PW6ek?)0*&55Y%)n(QI=V3RzZZyH7UcO-`i(uFv9h@`# zf*gH&=CdP=X|MLJhsBiGKg%!u%g5w2`)5vU&`+S+eU@Id4A0}$3`u$J;BfIZ(LA`F zq&WltB~l@Y!0??;veH`ZrD-@_+K6UDB8!J?jgWv zzIZ&Wd7b00Exz7wH;zWJa&0=dd%{`n%y+t(%)e2#&TK33TqSN`Cf|S*dNCIi@~tx5 zv58&u%jhT{!_L@}8Wc)LvKW$KkBT8BrzKR9UK%{0w5$|m`R?!N$+z7NrRVNmy<>HKo)5+1#ZP+>5M=lZFMKKC9XZU1=V9;wz<==Au*HXq zXu196p4ji`Kydui!&%K*S_Zpzx~{3yOb$V_lC?S7$vaik&3Mm%LUy24qJVOPeMlD@WocY+#cEWY^O_HV5( z0o5UPRbco$Sl&fJmpyuWkwjdsJlp5zub-Veb?5bSbJw@hQ5FZE&_AW|(1WA81D!{; zbzc`6tDVnsR)*)*WgI&LcdL*G@-M_6V&CxOCz`OVD9hE~1M*knkMS2tSR35MX z7Hlj}qD%cd(W_-pCUZ2hh>x_-XaOy8aS49lk)v5`92ugJQzS$aqIWT`(=A3zk!d}4 zm!&X5_W3AZM((8K%c%Jq(uek`sKs>+uuS&h19BqS9mzUU?~>l8Mx0U(Ccgv*78av7 zkR)cf^{Ff`sHqC7Nz{c|Y)JEZtv)NcTEB?{(Vy#GWPkUkZhEAbcbIlL6Tw9CL z*-~0Gt{1}DHSrqZmv!KZv&kxRguzyZZyZL3#s`V`1)7Y`l`8kxuEhNihNeiQiNu-Ir% z%sP3m7**p+kfpwRt=pelpmnR2R^7=L%H?LG+rc9oRQx!u7wh>zQGz@l;@GbQAY*|% zH_KEFaq6u~H7K|X;L2)cp8|B1xEd9`ymR%&G!*?ejW3uc$beM^MYo8oyFkqTb7MQy zNO+W7oBulY^|Ak+@E8&#R3@>74k@=O_bRVa&MD6-A5nghnBDIve~Of+>F0ppj2_?K z)4=!<`-fj~MeG?=$pcA-ezFEJ(NJ38bXFxS1{n-X`(jsfB>p3S^C9s(;zONfQS^AQ zlo3z$*+Nfd^-+&t(m)la@37lw2~S;*#q-NA{^`97x!6fq+T&bur34U#_|_nJ%HE^> zNftzv?)8~vhY}YbaDb#&ky<2oI;2Xyutl*^LTJbpHd2c#!v)DKL*Arl543Z+TJDc4 zKmvge>?FFnWOhY(tkG5^_8Z9_9UcPk0L(~kgJZGMP*F9IV?Co6%beLGS6$Gly`hoB z*5tTSWFBRQG$T>?<2nxbWR@MpDtjxd-1}%dorzZGUXvTI;5r&uOhmV&6Nn& zle!Z`B^Rkc{e~fv1pRF5(bRPJK6*^57&R3@btCD1^lD*n_1z-#DH3Cy$Qc>Z@ z%@g3FbPx1NLL`wgCJ7J;xXx_$1M zCy%My>zl_8zUu#Nw0~kwKsIG^JkZQjI2k2IPdv;F!cu`~CU7C1U(Q}&lDcYXMXk4= z+)gW%AP-L%d|d?7R@w`_lgsOJ)U8)P^JJ&H{lPGsicw!kEHPX|G}?|ZuIj|3a*0kq zvdJZT`I@o2(dmT54? zG0?;+mAYtH@k3e=QJtW~nZ;IzN~ajNw9-;Ih;I6?lZ50#dDHrYR6Sm~7F*4o~-(SU6^PnojdM9i*; z)zzhv>x*M`lx(68F%ROBB2!Pm9efk>bZ_n%wWuL(j9@ee;rh7(p!rj67^&LK1fe~3 zFItM#&X=f=mM&N&JJ+s;HLI0&3Xs`aH7D1 z`fnO(Sm-LEAobB~&^;28d@&%05{Q$b3ACxx=Rt`1%qtUr;w0l4#fc9|r&r2zO7d5L zUnav?R0xt?kN~n>@+*F9NwE{nLP)Wd7bMLq?VWjGZlaW#Kgldpi^Glac<%N$ZuK_{ z4W~9eaeC>@nWL4QUt?0vT-B5OuW(}F<>NgNgVnnBa;?AUTa}r51B$5$Xg?vqOFJ_& z6}9Dc-14{!w#V;>nQAvL@oZDePcIa|h!iZ_i_l=ilbXM_h!BmBTm`5>Sv-F9*$(fD zvROakYnIuc53oTdqKe<2+Qjs8mJY1P&4N{#jbQMfZ0LDF63B2W2K7q40-WB#L>@iD zwz}g*0r8-fM6NeOUqOh1RU0QhN6m(`j-QQDozR3*s*Lsyy~NFib3bOQ^btM%SR*sY z@b`?KzKV(I9pAg9rr%k61r*VLoyqL}m$wm3fBVlSIqko%{1853sq1nhzJw>qSo+zq zk7F-OoJdHPhB8{juLFXi!&4L^SRO5wGN?B+My zP3sC2+>#c66r#47Y=rkAv61Nky^h}N15FdvT7dInf%6${{2<$~zK@8*2Isdgwz13} zLTr*OF@^>wqR(|nZ2oC7xA?o0>~x|QZ;vR~Vb~;}&-Xf*HU5NAtholrQQO_0S&BuSLtsRUs5rF;{WXpSVto zOBT5@zA;lhQ4h%)0XBnuzB%1*6)UCuT-2*|HuFIlvnp41&~LIGn|ybatZdE9Mxi@i zyZTEx7a}*I#D?bfAd``&P^!##b3Q?6)7X5FWOo3xdCEpt8zG)H8AO6TtfDiw1r1mzlmkMrG3(JWwwoM*mvj={d-_ zL@iIeo2v#81HpiT0u)p)v(sp1qL0v1R{JdFS<5f;8(n7DN401Ar=VRT#tojh0h*AG zB%m3X6Y8m4YA(g5^qtrk?1dGEJDa7g$@zY`xN&5l^bN|sR{Xkhu1(<<{lbdxa zCTpIXJ)Uj07upB<8?CmY6r-k+npXO8zZ!TY^B)$6t?hCtm9>h{2ju5VJDsVCZ_Bz1 zDa)GKnCV4}YpsK&3S{xHD2&(o)zs#p6wO64<5bUpXyoCPHh&f8GUu=AuO54?SII0d zd!16N1)E7S{=cfc8Ge(tXaMJJHuf*eF=og|*s~uC3a)MIJPS>7k?s4BH zHJX$;SRVWzpco-nlU3qc_TYhR)q>b=hg*l+Md~tq8s3dOu^Y0&UOex2(t}XA*Wx}% zok6U;W%uKyPN$??UF3E5x9{G5-hog{zvRk(kK zQam8NkU+oCy!K3K0pUtlj#5vl%|5wpx95$WU;F_e1W!YKb${84D=$Atc>(fU&6hm@ zp#1txX4bImN zq`Rq#4JoeC#Nv7GirCs0D4v!tTV6hwZpeCTjV`X)Op zmz~!ls{lye$T(H9YGlmO5Q=iWAgzYXIWp@Yi$<8_%kNGaL#lQn{)XIL(j>{vqh6ws zCQT(1ToM#bqJ&@b!5;)cqZj!b1>l?5n)Uv%H{_kN+s^vAXfjG|7%!czw3_4jPPR~Q zOqS5jy{uPh40etl-maAkxf=!$?V3xIgHq(!<@{86p;*765#%w^RgEfMRFW``opX$Xe}fyug<2{7Um8$>ZMkFc5!QZ>Z_d=v@=sv z+k;WNrA*h3w+>HFA8tWq)mj+J`r$%rCTO+S78cgp2#M>yp;Rm61SqOIGc|tPE>2Aq zZT!1Vwd&-?e?TT%ujh~d3To?W)nqQ($BVsExstftKJ&_CoO)}{#N1M)Vq+q0h(Ad;sE}0H4Y=RlXd*k zs5PxcyQZ7jdh0i9bINSHR?0fLwtlzT-d4%W`152lUGxfOX4Roula|Y^QsJiP71K@E zs#pR3A7IGoOa*?P8p)|hmyBIcrmOkZoNj!8?OKji$++P`l9>V!%^Z&ToU@WKe`pw^ z&Ljtj8UOA9&dgsm>r|30C7Ec>>}KtHST8qFn!@*59jA#(P2r!M*EC-BdiekOi>>jWwH6jzO0~7HJ$v%jt7fm>Ks{8n z_T*yF`ll;2Wp)}KMETIPE9AAg&O3gal(s1=Qk*3EyZPdg7T@04?C@GTnb1;h%+6Mt zrM`$PnJ=TcTO-2X!P5dl1h=v1@|e3cNC+8)-v;0aE?OD8dH>!!@0`y!8nYl`UU;XT zI-E(~ajTNd7aB)OUPGCgl3!*U-#Rs3NT4t&mkcTK)t=LY#i0!mX)rpfx^XuWkxozS; z^wviwPIlZe-;3RD-5Gz-+bmt{PP==VNoyPD=1szbQOK)R z<>;2O8@Tuvri}BSjDDcO06pFo2B(1F$(E(ngDzkk>eXUjm;IH1R;<;ATtCiyl zXPGak>OfJO)F_%&jlJ>|`z5Vt>cdZ}WI;LH*wKq_GmH0?p4UR1? z9$T2Q(22{n$#U-qU5;=XZT<_ic@m7t3t*A?k%|8@@hPRD>?-*F+*P8|VFaW#TFfu6 zg48EA>qe$rUkpbeR+x5?p-CE{-Y3Fz4@)Lt9sn;)z;ILox(S!0FAK~hQr0j# zMVbp{QX;QCW@xcng$Of(O>e_wBvyyPK@k3-m8z~tc!if}IKl{_Yn+#lD9ebW8Kin~ zNcoeqi>MEH)Z(xh4G|T_3Q-@qTw%N+Y_lH=3=a_IUM@rj)3JQmBQ$~{eL`|GAGlqyzub27V!fE|7^Kgc{|P(%9ZOu4mB8$E#YV?Y%O?{+$<3? zvHk%llSN*FMS7>I88N3ox`YI&k1=>?lduiKrST_764J@VQA?_lPGci8+W1e2Moel+ zwxDoT+`^YjR6)G>gs%(L`4t=L=(ttK*7x&H!)?bsH{~l3Ty(j~9IkUn4vtZ5FsnG= zM7RngfXypalk|(cV7gTbtrshl6{Y+Hz6Ld31Qel~nN)oIuN_?Z6pJ8!6w6qeWnknB zA&y}YL`Y-|J69oqP)X(W3R$X;fc_nG{Llr z9f2XCya?u^dC{SnZUo>hqZv0*mrVT-RD>ZZ0}hWZIrFPS1}_E$iWw8U5KT$$LO3XP z@Efr!c;mcm-M$)yBbVm7$LMgGfkKL{ znv+*fpH`mthk1u2De6fAXKm$Ax92x!elF(l#W)S!Nya`svw1rE@be8_H=h3*0_5~o zzz5i)Jb~C=+8R!NAi6b?aUTI|VhX+zvL`r~T*@NA>X{?BFv|6F%0~|W_&b!tUuZNM zJ9po`qa1#EqVx0}cRW4ORVL1l?{FQ3?-Qd@_`yMoPk#+t_kGHHutJ|rHtIW>4v5hL zCY@5|ltpD#84>Z`!frdMoL25qo~t~pyhVAx@=II=5pNoY*@%x&bctNT+0qw19Z4#! z2h4!B6wjM{gs#}pk|&v(B3#s96zqf7kUGLPxueQ#CNhZcI!7UOQp~$hM-E0JH<$7{ z`^sNWc0uDNMhrj_Nyud&bo+?5o*W@qlz^|uc78Cz|AP_E!*JgPWhJ~`*;wQnMBE&b z11>F#Ot0fxl9OV2a0p~$n1m|X<>4XQ>?`+!Je0XYc8{)!9l<>ti-UEk9pi)H^j5S{ zfY&B)sVcV0s=<=Kxa6&nI?J5o_vFIr(821V&zfe!huv!httD14;pB0?_6%S_;T?JS zHY3^(ep?#Ss!Plco=%1YeVlzU5r!+&$N^o-3REz1Cb*_N7bX5xoLN$(SVX<@UI{b7 zj+9B}LgtfLI!=maCLPrKx#HZ^by>UU5K|^$(aIId?cVxy%_Eepj-P{!%=w3gwpnZz z-BR2w+tymzx3ZSiP(ZxsVEQO1XqrdeQVE(g+y}w}kNApJ+JvKkb7*FgK)PxaQp7W< zYDmD*B6BrIox^&&UHgY*gHkgyDN^}}5)wo zNK)dkgqwA3_9~)mZlOT!6hscd@M;-}MMjKg`D*+SzBo3TY*99p6Ts!By0-39YXU#6T zR$}IjtS_4hvLrP$)0BWq=e96gL>2lf!R#oXv_6%m+bCo{a zr^HNi5aL2d36(A~sN!3M5436x2j0!(f5Q_e&9N2J)cTBv+6y zYATsL#+a%sn2t&X#POFo4lVX3^&Nk3)CEms{>e2l}*5-L`-Bp zBIf0QYUKJ!&tuwTO{@t~I@=PQr=QVdI0zx;lg!$@cx146gwsTbNB&ji^&pa4NVaQ~ z`>9k)bQm>TXwf9YWOV>+B-Hqz7ifh8o^dIVMu`BkPNGLXqe`X<%xcUTi6E(rNff35 z1CO$DL;+<9b8lW16_Qv5&SXtA!f=8?Z{sD7fk=3UTP=vcS%xZ5e@crIUO_0KYI0Vt zEhF(o>TjI32um}ZNXmv(}u`f^hyb#$kp&)4#`VmHC!+9fXyh9DvpN` zY8g^VigJwF$^pd$fosAdydsvH{71TQ0Mc&cs>HkAZ^s3Q`^OEBT3g{g&~?e&($j=A;#{}v z&IX(sPy$)@e1<+9gY{*0u;i$GdyfKLEO_SCYw=mFCe2Rk@dkzGB}6`ad8Qo@ePax=|i;&hkR-> zk+>Erk){*(mQZN5WO;#zOD-1AGg8xiSUO0Q7drR2i6usLQ_!;gWw#qP|r0%1YWh4j@r&k^M9P3(_p2`0-4Md%~EhV}Odl z6z)kxyGd>__#P32Dd^59gGzmgxQRd`6PXYt9y;`9k)}9y-~lM+Qp_y)SJS55)2*26 zQpJ}1q#zX|e+np*NOm=8r_n?kKt#wF(@k4qP_)0kR0o5@DLA`PvmCQDPuE0F`n6`W z_ZF=%TRc`S^+%PG()1maOLWVp{}p`tYwh$SPJ@CK-&qamBzwvqH zUBq5iCvHa13x|IwBf_C8dH^b`C{&R-xI+|54|SOyRE#U3$tG^7o}kP5L|DluK`&Lb zlduSV-ca5Jn?7VSwT-p4jT#G<;MDx$@_>*_mh|{Sr8JqVP>c8O_|y?5tCI_E$(`r_ z0uQw`)fazXf3hrgNv2tWmw_ZmF^Doa&~tvJ>74HFbmlS??B$uoy4Y%}k!~6WJPEUf z#^RYr9S?!Dz3m5z=R7*vb_z8L&cLRdN!AJu#Tp}jcuaYjXuDnXJ5)Wb?Y8+3?!QKk z%kQ0A)ogod^W4Un&2yV`$_r~N?X({MN826$cfxP{KU9{)&{}8k7wt@( z$HN{fY&e$1I>#wBMDFnljc%3Zls3gB(?awH%W`f+>&nHYX!kHZRhl?TRfs~*B3H$0 z5IqwSgUECwE7CLiLjdQ8FBU0-)M8>1#2Z8pto0T27Q_SdnqZ*FGAHY-Xue4pI=)-p z9+9_OHOe5&I-lYx zz-4a27QI4rW>1Ji7_P8&V6^zjBUsrUiKMaLv-x*e-o97WYk-rKzSn3?Uop)K=B|Dr zm#iaA7=#Y}$Swoqt~A%1yebu^U8WFcB1c@8u@gQ=uvq7%)}+g9N6c)rBDuUd<{Cn1 zbjdBAtR_>Bd>!^r7;|rW?%l5=8CQw-KGN5e=VrfCNvyni1?t^p(--X4$lbmO&ptQCLj zTlf3gZ>b&P)lTR?zE7|XGBsZ0le3_nr+>(N8$!(b%;NAcpzX5;w|p2?#q>dW2s<7Z zju~(vT_QADaVbmM1TlapeWLy7@~y*4?bxG7k3M>=RvF&9tW5Q8JyT0$>UZ6D(~McO za&ByP{4}C@>7E8LtV+?$7f;=IO!T8gd7HfOcJb?zoA)0xjiZmg?$M)$dF=kjDprX+ z+SwU%>+bt!T)ThEwSPkA$uy?hH}oqfuB>sQF z9Y8cq+MMUbxRhiYj3F^Wha3|~vmq-Pt06W(Tx{ZqlQ5g8OEQugKOu-+Xz8xAVv~)G`B7^8(Rw9683==hsna&4+ zZNiX}u#}gg{gT|G5}06KCrvGO9ho~Y_~F@dv-M(K@6I_|?KnZEdRHr0M!S?=KU!|? z^u#fA6DE^~BA^4X#X(lfV23cbLOiCXjI5a^fvBPx1&>)0L@IdBglbb~*z)vrTg8x3 za~@<2@-Sj4ml%ZGA{8CUp~g>XX-qf%E59QO1q{FXZ^yAxQv82B=E#lMu>nw4 zZYHh%NOT`5V}we_ovOywF*~EeQmVbVd6nZkIfw%(q) z1&7vDz%{sJE>Ue;Ygo9AqnO3hZO z)M}PW8!T_!*aWQc!EnHYZ{vU3xY_fLv|2|F-f!NxW%DZ6J++Z;?KYdc`&i5;mB-LB z_IZ5qT(uFAZDarQGoShEgO~EyXFl^8hyNm1pZ+>=kn_SLQpAZRazJKxacEt-EaH_i zTUxnQ5FALkRpgs;e*A7P2)zFRXHUWVFMbgCFLZr)_Xtg15mvefd}Ar(^Rc zXNI@rrbqQvVzm9W>B0C5)#>R&eliblX)U|cZ5;w4nS)(D>()QrHG;HJt0mGwqI*SI zF90IN!CElN|M&FXB&cPf%nV$#$yyGv`I;d14f~6-us@G{QTgDd{h}NA zeYZ{Yr|Sn0Nsp9!yRZHEr-HZX0K@W8<)4+GrU(0Qr)*7}0-Hr{FZqr=$zMX@3C%!=PJ-bw zT|<1av=?d>Vk^{N!zhE;sWhH$h*=HI0K{k_V+Z{f`}Y?yOZlrKig7B6k5BKjo-#AU zBYMg-+5i5V>-|>!SqB+P6=k~*}Y3>FL> z4VvWutLSBD&MBNRi8w`$X-?R}CHLsJ(NQxX-73tBv~nCZ#c1cqdl`&YfLM$ME;Ydw zm)7wOS6RumbI{=D4CU2#Kli44CLey;&F98PPkiRa)vL$9zIyF7S2mR4nQQ;_jVDeV z{?R*jlrPu*>+^TUE6RJuD}!&0f48sv+Bn#F_M@L4D1S5FQ=S-qOxgN{`;`1(UthkL zYZ07g6Ms6@PeKpk>d=s0F3v(vL1n;QVV+paa`}sU2jqfqhM*GwaVS zUU%;L#l`Cvp@Qygo!Dx(w|+4CxhxxJvp;9M%|9DIzI5Hf!u5AwzcBvY_SO}$6>ri$ zAuj8q#C?ls@!Qx&_cJQ#2_en`#ffeb;={m4;DKhSL{oZLH%&aWGF?j=7Mq5yTPFO` zVkj)pK*il7f>PY3MB&22g%dnezZ~IgYl&jhSkMa{V|@{Sg0Zw_+;D|>S5XmTCC7AY zol_|6njDKba0Bu3WWq+O*~7czv#u)dAePU5GU(i?f>Zw1PXmvqUGR)4<{GVgF>fNR0=>$C{aR5kC2S*u;oZMlbyqwQFxlf_don% z(%eoagyU;L(>|nXAJpWv>=rRsNK~knn6`ub3XB*aKU_o2YpM4GA8Rqrv4(+ z_}uK|tde)nSf&E82HKJmXK%MKnqAzCck%Y&sw8~O{B%kdKUK-#Kp}!iQgPPBjo7T$*TdT9RAhy758qHVmv72g zwP@3S3;h9yz%UDE)T`i(df&vyCqAo8C{7qZ5genmHS+9#)zpF>p`k-?F%N<^W=mFt z4J@rIz$b4*9rc)YYnm^#M}5JU2<&Hg0WodtbLtK;YWP)9i4ejq2jQ2M<*qzoc8VVI z{zH$RCq6mB9}NctzxbK$E?h=vT=1I#KB3h%1jRxeXGdAwVyrx)*Kja7$Ax{_Hb3g? zOI&8Kyfhjv4LHbRJ0AKvqsxez1Tog8WUH@i@(9s1(LojEQ21J>kRTL*hMI%9M%NET zFLfqeMuTOb$XLOvucS)}Cnew2x|JP~X2lDCU7SoboW{sqaRiAEN>#>xj~OBBwy?Qj z0<&=_+W4rt49;s~tc+e+@mh7YIfbOS{nw}XO$&e4VqKNIAk~#u49EijXjJF4GXCfN z-M86LBVMMQ!U;)M8v4DWG!)BiDjmh0#*_|B! zm0f@t>9W^}XME@D|GQNM?Dy(b*Ird6+HlRgQ0F0RO}jyzYQDfa$o5Q8kObCPB7Y{) zizK9^PS($WawM(ZEs%Lcv@ivY-}tYt83e^*Ft}!ScWG(&Jwo1O+gI}u7^p>bzkib^Dc63Thqt%Ttx78etQ1UB1H^XU|t zEfktT@aQGHL@#PBEF4{2cm=!zM0ALT@JVoz7-nn}qFvb^^4!fBLo$Kv5WoH}b7fCr z;fW7QY?lD%ljJZ;GJn|ZWgswJ?elF6!@;6=Bd0D@CB(u;2e+@d&GmDcbTf1MRHl`- z&TTZxbUfVx-jdA~SBp97u~4;-%24C4wm0`S+u_@8Z?(tkQC~loX=Y?!j&M%*9SYY% z&I^;cZV){s{-LoV`9x=<-QKuD-rA*ZchK!lnCQm8ft~kDAP&C^UcWEGPHoJ*9w@P=6)ASii7Qh+BHiGgrqWS}?zu*l@e@+S)` z`5l$5FYdK}D3KH_g4>AB7HQzouAUzltx(-&3trL5Msl#|Qb9q6dx@+z`lArIv42S+ zyn%zufuV;wxC~LAf)(8Fl-n7ML|+Xrk*ia-v6Ges`zcqsf7s}bqqBvp+5~B%+5#g8 z45Eto(?%z_|G*M`$><6a9E8tcz;rqS6g)llu zT8=Zh?GVGn-xW?3>B3B@4(oKv1f^C;B%7%$z0bA>0V#THLbg~e?bK#6$)J?z!WNzO zNe(0wV9Z!-K;DL*b_(^3Y3Fh#B~gOOCg5tRC5ckS{?L78yi$JwDVBPXTTD{E6{Snk z+bzliqIVIVNs_`&?`5rE{c_1C(3+_6S~p{WHXIF75Xu{{8(Tnv{vcMf zg!j>hfJCvt77|UBBNH{06$GA5h>HO>5Pr&Kz^8!#OclVM!@LWFB1em5a*dXiwOeJX z(ThICteGcpna*TQcpG$KBcZ4til&$cgiX;8QJM@Xw7?08r1Ust(dG8|a1<9q@1Un;9xI<}y~h?&bo#9eDXUMm$w?f{bBi9GphRhD z6a%V+1P>!^xZEQ}HH88m*Q{^>u>2+31Eri8^DAsV9aF$C*e**wgZ?Yd=NYu zN&zZMHv9;5I2)90xJ0y^BH_tQqm%@piHDgh%n*mCE7D*X6Po1-n|i_|JqT=SLD90+ zT0Cv13Oz{fG45d-qQ}bxNTLCyh6$ewou`or@$rA6zEb(A(3b*QokE`xG@YD`XyU-_ zDWW8lRY(~@O`woP0y>mf*w)HVl^~1lmBxUoSWt40ow{jxVLD}J@~!FZ6VJYNZaQJu zW+O;Z4teFU-%!pN(WbH&yC@b!h2Ctgk}c+ZlphomI}=#VLdJKBvqQh>_~I@I{RLlT z=6ExnA4+a@jd_*1ZiLH@yoB5+2VW50x_mHF>|^V9qInHR$4?(R_V}y2waMcvZMzYl z+BvZ`txV7UIOf({Mq1k=Wl z3)Eyf(2Zdp!Nd$nc&Qi91JOaIOX4{Ipw&^2Skb7*|5Xy3f`Lqc5>FB~9kDWC%;7CG zJCOf1Y;EDFk@-NDK+;G<@i>@+!cHP{Bc;ITECIgvD7YW>9VsUaz!2Z7z|4nK^$0@f zIQ|#{UQC=r;$(fD-|)Bg`dyUxp7c4c3ZF%f>*c4sl(ZPg17hkt&~i9&cwubS?nl^k z4$)u5PXJ62a&P%{uxiM4hWJi7H)oeS7%lZJRpwop_Y9r$>qcAedpg%5Q98MIaUzK} zA=}d!7;17|079`aWCdTscOSfiF{HuJz`_+_D4**NEBy@TNu&gTDdd`XC%I<<`1Uy% zKdU_=u00)!52dH}y>v2wu_e>}fRfA3PMXc#@!w~0n#Lb(HZ zC`|Fhp0bqU0G*s>X3f~7Fej88_A^OOc9uB-gftC@S3)Wz6%xQ@GG4z+vfVpxpo*N- zYRwu#MW;!&AXUHtXHx-P0CGNSV>Se~wiGxJ+&k0x)p_CIN2&Emu5yUkD_JYn5HvK} z?f4}?+NIJ)q6`8u86znhIL;<^23$jMu-!kmGdsI8_akyToe3Ilp6f(VC0YVcs!kt5 z%9-t?b~Azx0qQ#O)N-diIkzy~oJwk?xC4nS;uCC#wCsfGK*!Yhcs30j1+d_cqWqJmt^{B#W2$3QK)j|rgd(lGK1n%0tklx`KV*3( zHIKsTR9(+di7*RajUhM)ffUh6+gmXoNTguG}or8NW7e*rouW`LWQS{(i}GC~! z49j8mQz(+6B%M5$h`ZEX#Es+nOo(7P0dnuy8KPbBs$ji4$hEpn1}a zAN8`fk*#F2KEzM4WZkx?$t3v@bP_FaND0$0lBEIK8R{ll#2r<^1CME_* zIz$5UL5wUzKhXL`XaZaelinD}(ccLBK*R>RJ90}x^)ds5DN-UD81(%JWUkaIXE%;+ zAG$V`Y@8ZW3TF^cclCIGV=fj80<_0rEH%~a_@Lo%X@T6@h^cc*Y*AC@4p$4sSbQ?f zbsjYbN#ly)q20l4rSgY&N2^B@X0h|1@##-D?yT*64}cre8B)O4mDAOicNUpan}3}u zmWnT~rK>ijU2dWjP>^v@L7_XZ!*e)(`V&~AzbKjA!i6f*TSz(Df>pdQV@}c>19IJkA-N0U6yskRi9aK)N zw0y|BoLs>TteiHOthf-IqV8GX8Z~!hBWWnLlXZh?UG0{p*cji8<+_ES{9QedOj0DD zv3(+)-dM?{>=U&h+wIJXQVO6vz!h(`Y->QB8^;Oq$iL}Y&&wzoH)E&pTc(-KO%2=6^I2kxVX@35~Pvw=(Qb$uPr=Q7u3^OaO z+f9FcR&l^AZWC+X1xjIKVj)euoR4v0By+VuER>|JG%)K({m$3X#i=I5PxXXf->9IX zCvGAUs*>}Zg6-+mBntSrfr)nIf?o0q3o!2&-1-Ufqah+mOtpHQR@c~^%%l}7TRD4p zXnBR)wO~t)~ky_QMh=68tO}NZxCg}P$%0#b`JIN|0cwI4-dHKfi+m*lB$6kI9*vrbq zCNWQOc;Geeja)|L2oIzy|*h1Sa%cr#4-jh98C*>{I zZ!g^{cHMUZ;d2*Do}roVfwEM;9WK&Gb|XL5ljP-m6i@pCUT~=azE7VVUh;nG&2TX6 zX{~Tf2`KRZszJ{nGeWSAC{jzJ<)I4p>37Pb)svI!cds|STBFe`lopBscA`@MS^IFk z?FY-ZtS;TS9QdvJ*16hBZL!%%RLb2_Hr+kaSI*a)hweGFba<*iU2QFrsX4W?G=25> zk+tdhxt0Fl_QBxx)yb8)`RO&KPDPSh^`?$frqX2|ir5W#mXhcD4SZVPMXkJJM0@Y$ zdEywMW4BR~$-u#<(({cLUZi$w$q;Ctp+l4pP6y3-nUFb^D3%BP(aQ2lSQc;}Q#R`R z%r`t(_6R*i!_~NyF&4g;o^mvW4pt?8;z81rN-=h+I)%8qY;}@fS#P1Rttn2)RdOZo zx6gI&xu<(~F1P?xqPU#%^7^Tixd(l3(zwnysHCJ!=eso}A`KA3MO|0k#T6IHReEZ)n&0Qa?!{y`QcedqG{l5{4|N^u^c5M zh@`c%Vwn4B>M`s%YPmO6Em8t44co0vrOK*VRDIkfjgH@$Zg=_=)iKR^d=PQ7=v50Z zQqX|X_DAaNW`U><$vnkwTdJC2Tnn?2M;%FgOpa@ngLf)U+O-34^zodxx?5|)xycT# z{+lV;hL6Q9rL(B$q^epf931708Hd=Zq=_F*r#hUIuacBOVT+VwQg!+(=yb3-c`2QA zAaZG~PPd}m5ldw=;^qR&s{}Ba8@M|DSgAT*8MCE|6Gx5TkD{w*$d+<&3Z)IZBnX6Z zo=nA5COp}hOn8&jDs@EyyA$Jhdhw51B_-7O+S5AY) zRjG4F=q zT@lTb)SZx8IgB>3HM_BOsKkc-4|^OZ89SYA-*ofr6Em zVusm7Q@tC0+!RD^X=E^O3 zfA8u&pMT*;F36w0<8(gQ|9D$55hHUan|o*uC#L0Kvr%FuYp13=y%sF2XLt5Dc=^Ha zc>btc5AV&Bc)W(R-eG36kAW8X!?0gQa!^DSIV53cMCjqdl)9$kpUHa$tqUAZcUuyl z3S~6~vg+!n4=vvSw^MIFuNC3WmNNMpc_Y}*G$Y&-YTF<;Xk^Lvk`2NLP!K+>FrjQ; zh=&GR79GZgs#s2{8X*26|04gZ0RfGp0Al-St`Cg+-8 zr!WCIQtAAat7!)+Va!C*5Ir||X?6%Icty*q$V9MR zEH)%V4EKDzfWXwT4}e1lOMa}Ba{n-`9aVC9Pc>E$^TZ5O21skDaFu)}Ns!SY9H-fZ zg>?z>gX|(Z0|Qu%jlZ5w%$csf^qXW*mbR=F&=Cry=10XYHUr`jre4%lNiJ)_y(s>5 z25QQz=2!6uf&NQ!I&rO_QDfT@Cv=d4dMf|`u9UJ;Y7{qrj0&%kNTpcK957W1t%x6_ z=1k7Hb?Uf!84ZGAs!0_D;}X--iovi%_Wd`;>rcZiHX)O#bR-d0@)?duV&?nvs%Sy1 z4hJe$2G1Exd9X0r`l(EHezM&!EElWR)NH=non6N{q7LHb zaI>?!cckbtMU>l9gTc~>vf(+%7%K7JY^&uql%J~A?7Xg*`b9_s4RfR>O*dV$aji3> zfcHkuYiEVdkUFfC8lZ|Pv8emzr^UUWw)~~UHN$CYTZNd(h&L<=O1U$!1m_BslO>`y z5HpInWoTDHCJBvP`x08Ycvv~4WwiYfzHEw!v_k3&`Gy_#dkz6&!W|AS0lZ1B`}k#X z>TlF%X6jCEZZ-41nHrrj1EM%>*Jtn^2C-wY{F&G>Enm;S>yp6q#}& z0%_{oSzHM1l`kqE1>>8MYEL7>6}7x6PYP!@|HHrN>;4zrXkyV11SB(RC|4Z+?xmG( zOZoOxx&o@Zkxk&pbS*Dk3Q~Sh$tYK{RdrK2!AJhK^^N6u<(RI+pI>gZa;KcCEBU=l z6FEP}79pnmH0nc5*enFtK*g=ky3NFZhEfk=xC z4*^yF?&@8YS}IA+8|bsi-0K|a4~`^EH{Wo}WPhu%N{@(9+JZJ)raojy!kqM$yG@5u z+h>#~=K9maW;rM$U8KH%otxb599pe6`ay-BW}7|8ybF1TdbRE@jw*{at3u&{>9V)l z$ho!h!pymTXG-QW!Ocf~<}_dE7BeywxXEo5H*p9J5(cKw?F4T`IH}1U)2YG`^=0=8 zSpto)PgO`!KkuK(q}3Zv_fT_kZ+fNI?p4r9P-YUza-r0kJ2cmH^3YeO@^vC?7HH9! zcB@pAQqGdb@Q8GnPOy>ADU*BG9|4qiY_hV3d@JLysAnrnmc2H+v{Q0Ye#deh!?KI{ z?E04Dx0QW@L%Bc3{>MY?I%8ifUeRlb9ncM1C-Bu}|eOYn7{2f<^VDm73_GjvG#)uChdYyX$upmie!bF2d zamcd@@__F#HGDWQ#E&Qw9!6bA+au}GqSN_09Cx|w@BMH_^P8D_yZ!oJwQd@J?Iu!p z4Nq+>R2IfR=jT&y^L6LKE#|L11!?z{!yydkYP`J$8BIbaw`<=}Cmxs?|3p=JN3!T| zu6Jk57wVo*8rEfc{CPHi(jSBkLMqnLM{Avxub*526a7tUh&-;m3+Y$l9APet z(w8DI2I)|ND+aC#mu`PZ{&(LHMr34tudf9Z{-B|hAHK(eC&C;Gu~8?4bqQalFNq{57*bu3F(v?F;G;}Fh9HbY zmjs$hdxc4F@_z`{a1iEQCvx3vh1v^xChMmqV>TM8Y6f0cZ9viwlKUeAvrF{hhgX(sPA@!zM@%G-4-Rh-IHOSOf1vAR^6Y~=6r>oK#J zrX(s`T(?-BZ07Itu+tI=yEkQJQBMK0j~p@@~g^+(C>!QKbb_AM1|tAWh&a2 z9NgRh`vRLhl8$_!PNC1qAL9N4lwF{{0?dnE>d2_w9vw-sSj=P`PXHZ+s1tB4^rzoF z)7OYhF*!oirIf4;_vJHNf&6fowft(SST0eX#Va-{Yx%p@5AUqsonJ3EIIuX$#7FjV z<-gM}8*ng^VQ}DZMg`$Y!eALVZeaa1H9Fq`<_o29=E~{mD`)0UO_D;bdb^Lj_L1G) zM~-%zMEt!&*B|0lp1JbID`%Fknr&_A-$(kzT?@qSE~Ka3lHVI zLaQ4%z)rp|=LD_kGK5YA7m{IjZADpqWU!Sc)Mn-|{ukC4W|o&{=hu&{EKb=~=#T88 zn>kcWXM;k_%~a!8zvJqwuZ5{H!o#V1_-*|#hZrwgmkA@x{6%+X2oFJ=5~&twm|Q25 zq~&Y~Jbd)tPIK~+qf-mxxy@&9o?YAA z1BC(sfaOwzEah3b?8n!Rf2r6_+D@unET=L-<@1BvR#$HuEL=BAY;VWRs~#<%D3M;# zXz!kAVI!k9C79bcd{iq<`2+h13bq!X0#$RuMLvc4)0Y|G@8FKM@EcwS8#gs4>AD9x zM^+rpSiWIB7TR9CKa^pS&ask@ZcW~ManJB@hf2j7w(9pHR}8)v%#pYr?nMja*%V`9 zA0$W%ga>C8wPfWqa%K*KaF2YGy7I%rLxT;^TysSHJkZlqn8JxhZlU05qcd<|RXY+3aDsHD<{e(iP`NW< zxqhwQ!!#sN*J(^|ke-`$-BP~n#1f?=-PKzG>c6_8sg+m)GVjUdRu^D8#iBBSYP(L+ zDWvd^!vnp0BaAAEN~f{vHn$(X5_TQ1oBo4sui7pd82~f-;tZvt5+_$*NU>3aKw$w= z2+b_$1sEiV5KwPfwW?mpucwI-r>Gc$(}(QOY|#oztG5o;?wXj$GQWQoo~xfE3uXvr zagVslIXoQCn|K*H2tPz^-}k~t`lLL^a3Wxqq`}D(4NU;S?Fkx_2@%;F@+j{EEW`@n zaS(;)0m^Wc|2&Q$d}d<3lhqm-`mACU@|v-aFaHJnq@8xuy#MAo+a$R{B)e_D0vDevS? zGnHv>OyamQ=SHiKmlsP^F(ETOcri?~Mj@|5!{rm7#MQE(*3f-OeSm*$0a#`x%(!uw4pS+p_9b<^^gN zj`vL9wws{SU}R5bDRR}GUHD~a9R#0)YL}Wj8i37C)WIdp;B&L4XJ?^co8E>oFqtWP z`CVXk*6jS$y;Oc0_29Fp6h9z%Fg5O<%;(WE(pJ}{ni%2pe%|ZjkaPRhRMrQ+m%PJH zW-?kle|yfQ7}3=UzhqD%+{kuT#!su_?QyL}S|^3&HGu&7mfNa(H0N2YCwCS6QM=aKR} zWy~H-;$gLPX7gZW=np*VJ+sVj;qpFpsvl?l!Ln>4%Lm&ZtXJ(fbk`DzwayzwL%wZ! z!zKn!60v1(EZ@ee@h7!+YR`CKC_fg9J$Bi<@&ohj_I%a-XRl)CvSn2*Q*F88ea)+k z|Ap8$Ac$BG3>RrcJtD@M_WiPwRR=$5tYbKZ`rJP;Z{CC83}YpjJ_Cx`i_nr*2=e>R z>QI!)+lX~_3171)gTR-(f^Z2mOSIF4UBaCXOm4#CigJ8??XaqDjzABRh#l8kIfr?` zG&16G1s9PvQ^_hZG^zMbv5C1^yvYeCX;htT0t}q$0uHkQe^vqFQMV4KjH-VNX)~CHFOAA zitVWqT)lBvT1w4Iqf~KSXbp?GYI|nwiboGKw}}25@#tpJ{uXG!CRRlbvOP&0&H*+O zn<~`(MA7T%P(f3a>*6})+<4qyTk9+8{C^-uTyOE;2YNx<66E*Ea{yg*MKk$NFElyV$EU4SdU5hW(u6tDX$Sp~P$785q{Y!zIR@*wXUQjx>|BT3-wtdtXSr+i zj%VCL{~$ACbO1+urmw_k8B8VrUP}qx)P46~Dz31SzP6M|RVkof0 zNo6%URxdj8hc0omyfax=ZX_#*6DABvtRdb3Y(o3#1J7D+2#8za)>-@>7q?oN*2|t z(X?7HbJ3QJO6lXGx+o>V+5Ly(BX%4!}Ag{A^cp2o6Md*_Ur$rDoQH z;`=$U0K|F;5h;Yw8Jr^P7y)R6BFQ2^VI;^_@GXghh_y&P*)W_G*to6tWH<2)iS-88 zvFL~b))QdfJ~*XZwq1AYIh&i$dFgXD=lTTc%J~)3qBuzlSbFWq#`$*7h9!p*D0GCi zxusjZj9+grG|Dksw+U<|u>oc(oP+R_a#g0}Hv3oIb@b8wgnQlB!Xs}!XKVG2I{9qH z2KTNNgHpBKT1=XY)AI|KX;ZZi!j#>hpq0Fhpq!ZQ=tbll!g$m;IiGAgD-f>6oSO>^ zjkT5HE3c#VrR_x4eO&oQh#$>|H8W_b$ag{waugd;m>4P`F1M&FChhpt^}FTz@UBBs zJEPfpBb92_=0@MSd;OuihV`-%T>si;>$ zWks<{H|bs`Fve*c!c^QN ziZDuPq{uKM31_&(^u%>68mRK*6ZpA-_+)j|K_}N@E+ihAqefUgp94#jA-^3+N=mqu zAQ&XSEa{L<0ms=Jl1aSU#G z=!pC4@&Lo!{I=HjlwuPKT}n>b-CwEvlI;(By4!r+1eu^>q2o9}2;o^mZj0Ozx05_*up*+d$=H& z)uYQ>G}&GlAm{pfo0<;-|Kxi*)5>_3kK9+Tz;sUCF+w=FrX8$1`d)g(oon>8*WFS+fu zM-uQDUvSWn{*0bK1$$TgUp&bw5@_Drd-~G#&R}Yk@ z%jea|cM@q?g5IG6!-bD168{dC>uMOMl!ac~kPK7$GFj$y9g#`{DP$iIq9k@nA0pC- z1RF&@7je1C!{*8Uor%J1rIgggX}7#_-%IY>2;WZ70k=DNNtBr9jVPT26>MY1bP2Y( zv05w>w_^TIM+hckUT%F+>SWfZO`D(X7{#NNSW~lKsGYT6toI%4_l>>MmFwmcflH~&=#&Q!fk2tyMWmgCx#i0^5buDS-AW>cWoi2{|_zu zQ2ep%e?pC=jq&+@f_#$4Cq6&%7Zd+7@w5c|x-HaKg0$G%p{(cr`9u848fjHDTS9(q z?04Lb1oV2+JP=*5Hk6&APx8XdE%FqQR9HzZ93$JRNXqb_`=$=j0r^AV1pBJMV8nNZ zROp}`4Gft*M*AQi8EWEq5LIDCB1W7*t|MA6eueNT|;Ez``X{?vGsX*p)2Y^R?C&=LhuHK>tFAUL5v$entr zt(d82)VGt`2Z+i^%}v%TD<^^d#;?L@@ux3XS(*(M6q0`mvf4rE7@J4 zQO(%Ezac+&HM{0j3gjagmRTu5VxR#>$rce|PQjJcSuIsaR)yx3WC9vgk_q8YN%E-R z`foM;?_r~ek&{}N`&h(pVz zc2^m@Q&@Cnm@QYpS8s$Bhp=Sgqrl*Uu0IM6J`MRk@_}0ScaTJ~1>Mu=+Pm^2E9| zd@6P}@w35ve%ZY_^%K=y%$IPU{UhZy%KOR7#t)54O*m=>NML*(W+`E3jHoHG09_y8NM@e zvk5WFu;r`eT#z7U4wAoBq?+9ctKCz~)MCGVMX2BX5f#-RV)7x%$c9gpk zB*ivedU-5S^UU6?)0rF0OdXq~Tw^6?WE$v zbH}eaHaFfQIn^mzX=q98szFZ0nt7-Zvyiaq+;X%~my@`^ z)UcUFZ~qqGh{j~hJqjmLeo+#>FA)u~hogin9w4=3{Au~hWe&>x|`lzW!E zKjEdgQ*>A{0mV9zX^WV1WOjxShgE_K5&;yAT>^x#t^I%ej>CTL^!%aQtwO!Mq&51m zlPcfA+hF`^Q?HYmZ`5`3Ru-Wjmbcq3uD#jRtFo52KgxOYr{_+r`O7UzRBRq!Z*qv4 zqdzJ?KTi(wJXw0pg|~OhQuy{I9Ya9oY|)FKCMJI#Tsjp6M|4j9n%gSVAQ7zS>q@Al z_ItO??VMQNw8k RK?LZB?n4cgP`v)01&_Hb+TS9+~AzqYB(U(ua51ET0#jIQHo$)}0=+(-oBPQ04WfxYc{a2b8u z#QBN$gCzdo#IF!X_;q+fes|&zcvb{$2a^V21^HCokP82GTCGkhb*9x?Y&I8~%@3qn!P67T&s>Y_;xcwLaWzes8OFceDAyFMmOK_xPnB{f+TU zmDi1bh95axt7QzY8V*hkza5xv#ZXMQ;#y8FSzz`~B|I2%6@pvfG~G-tYvyg;Jl|^V z1uZV@Ma|}mq6V{aikDPc-k}{b zYytV>^7^jllgW$wsy}^lrCTcy2qc$8(LS#>D@72;6+e?NkUFOljTc#qeEm0S4i@pu z%&?545k~BYTlZ3rG_oe@Ybyr}%9kEYWuM5V9>n9AQhts1@p~$LCeHqc%HaoTN2$q4 zX13J$=jB~FMJbri$p#0nu&s#MMZQ>D#(%tjd6Yd6Lj4G5gUQ)eo_tGV?$qt4=H^b# zZ_K^rU*Y*^ZyXQ#K9nDv9nGJfp9haR-+Sv1UgQvo`~%TB8pLeC$>ah`TLs2Q{_-d~ z@;B^V^SDp%@5NZbi=y4&1+c8+-9MZ{L=_y;QnA{cV?g&y+H^rynTHli6c0 z9zMJX2aPjd=&Y`uSY1^f`*(IYIDn?@ZPXm65bndC1;^>gPA68y?}&hWB|M{dBV*+L z8P&{XyoG&;Zh~tHlSRBZ#?k?FMm#tNe;34om^Wb^M(KRv7jA4n%>{e0rl{xZ!$!Yd zspXD1)k?FsinFcK7&eZUbr>X^#+mE)rlnsMOn@`JS48i_WdUxMgOS_kJZ8KD3hb8KasDUyQM`$;W6ko zI9v~!;$r3b3t|z!SJ<3kTgtEt6(ibFSAHfox@#?;ul2Zt;F9IfHr5(sr;u!%F|++b zO3!Z?}yAq*FP^#Gi zl{v6i%xtbQm3IKuS`G=zW=zkgQNJ|P@>^2{KN>6Fg#Z3yU8u`v*;>fP zsq0GJgY0ct&W63IX6G%76E4;l05`HF>zlXNZYV=ipm2WD-H+l$^7=8Z&yI~;OuK4TFhezI)f|GZU zmly;%l<<9C#-7d%ZyF#cq zoOB&8JDipPTeWI*ceKM42d|P}(w!b=J;&7v*2jL+hdK5)p{B|FQqgluAN6q^6RDKS zHhS=Ib5V{Y?I9S>Pl618TryWAXBPKOdkMK1$u-=RdKfN_R)qYKvm@o>->LD|5$ohyIMG{FFFUr%2O&k)C5}MhR)ME1>QuBPOzk{tI znw%gxhYLPNG-|d>1A_V|;zy4%S} z)t@*%R%+E67%W~Nt%^2_e9uoJJG1y5CzNMIo1tv}mR6LB2HXj)nx#6h*psxOG!^Uw z|BDu+p@MVVB-Do^0@!qdNz)**8t--_%9 zBr3_FQge$m7m&vk=Oce8W08Ce>X_dE9~aYpx?v?MB|eKpB7||m0pkj7Q>G|bg0L+Q z{Kn6Frr-Gg|AxH83;mq`lg*e&Ufzr!yyz7kzwiHeBhn|~iKSznSFR#cGk^ng5g*hZ z7S~zqtd~!G|HM16vpyV3ey>HQ>M9wVc%X#bl|+7$7B2gSkDK2R`Ut*nS(NSf*M^ID zc4cevl=BPv-eq5-Z*nM%>=q0^$Q4Nsm++Z{{<@cKj@%57wG!=sq9|VvF7kOgPB}dx z)iAODiBwP=L-%kN)uHsl?7)|z zy+DAADRzq~FV1GQ{#LtO5Td8gHs|NZzeJ%VXip#xBVNuwz>B;?wE%QQ-eON4IUb80 zKN6dYKX4rP?(qjmD~!MD7>mbVrD|ujc3YGGd2M}7Q`gri9CvJ2({_&$U)ehriyhn3 zo`+%a_z}62Bac(XNQ=K~H~jMMxUXq%JgVzQ->7NZI+XH6(qrEs?{WUf!e(51eYDT( zK`UzCf0TPU`u%c6+MA9ts*k=&i_sOZ%_AK>8~P%jDWh6_oE?;{l(6f*fEW8#6uih{ z31hMsb-1%nPfV_@O)B#K-eypmEOhghSupAuuSi<9UqC_g(mb11HeV{>&Y8Tp!}y&U zy9nk!ldVeJBb~}sTNLa}dv(NarVNpqnkJmt@|dBybmH58kFA$RGaU(j<}yBfsoE}6 z6uA&wF0v5X|45)-T#K>6e8YOA?Ec0gY$N5BA1)d6t+;;XA6WqFVNEL(|PJB$44 zIICmXreoRla~em@;$R!7<)xdO=Cv`@@3}MJBFRlZ{ggx8d+wb(cRBZ*|Nj5| z&5rjzN+p~ChUkey#}2?a&35<1(t`z?4TJUUxjPSGR7cU(W{%F!R)&BBzHv%_&^Q&9 zNsvxMY9FZFmZJs{C+Zh0TeI8bz{h|M{IoG;HdCS4iBZgLcZAF?tApo-|NfXTg7;vB z9L2K^az&+AQcb#s;h)R|=^+P?9@atl@+9p^EDxa4%Wq85Yqj?cxXyZ;w@T!rRAl5~ z@&(Hy{Gs2|oB{0_*HFUsap#chQexq3;y$xq?s2j*n-gc_pVW5$^E3U!oCMMIkK2Fk zFsG&;rPYy7%+ELzgRYOeIMvyO#H^WZAS5-vIg$9J=6~ZeX1`Nom+RUwXM2aZ`bXeS zlJEPf`1{CX5=X(W+pIFYBhoW_Rp_w;$WK8RvofgCUh#=y%y;h>Vny+Z-4*@sf!!a; ztztKrDBXX5DN(*Va(8<$9t_3@C0WEU#$5Or`1PL6URvx23JB|amLjdBr9=jE4S&*j zBZ|M}{_WJqBOg0*DSc_-1@jA~-G4JE)&@)8{`QCN&fh(FCHa;^&xW6UWT-TB|K(?& z9n`NQ^MJn!@ahZrh0if=rLVJug+j7!&=w`?w)B4L?@gMMd5?1F;%}6grISceH|*8* zP-$0|Z<(Xy3rvac7|hDADx;)6d<$Jh`9})n*e%L0P+9R|gW(+YN@yKd47cKQnj#L{ zu#asHc!cJItbdUs#(*X_TfS>lM#K@t@HxXUUZKyB(I;LYd^x8WKBOqOv+FD<5DG=Q z&C2&^l_(>lRPz_dwk!R;>Q%?W2r{l_v8Yug)~ zpT2E+w(tf~iiPv0^Zm@E%Ti3v<-)#5q!5Wb=!lbw?kW~tE{|QMr0$8h{}(45%AF!V zJ$>7Zm`@BQLxsooGNXQwm7;OhNs1f)d(ZR=_Vc&ES2Or_4kGXEx#a`X(uM##(;r|~ zK2^`Oq7iafl+FQ(?<&>CxeB&tIj!er#e4G8x!iPqCN-1VG)$&bW9mXRlsK81S)57z zmpocP)aP~;eJOL&8_mC1J|tn9gexk4laKPFH)KYOiO>e%W;N=Vq-Op}w1EA|YA&K+ z*j-*x_>=UgkUyhXOYi=Bu^c(f_g7gim|Ab78Pl{Fkvf} zdT{RggY%U;D*MC!x0z0C9>K`A`&`OW8uWN5<>hoZ z5}yJ+cDhiA_~P+WEGCn*#_pOfh0`O+17iNn++0cABOH}O>j#guzhU>1aW_bWgPKU% z-;tlm^WPOO#`(|lNQ|GafuDC(N;3qi;*TxL;lp|sS1+~-S|w~UQp7Gwg^mx>iO$KS zwGczMgy+!XS)@%vW=VkTmZcJ>ObU{4cNOGq`O)QbDWmg|o)H3YiPY3RCGxCHM=6X; zONYOw-ejjhrNcSi+LKT|?1(+6Nqvd0* z=J!8(esS^qC+@rNrI$p0_oZ%Ek4yZT*x)zVZhbQ{e{L3y?FQSjtc$?7LMfBcg}mn8 z=jqAJ9qFT|@2iKr`M_w&8LVVShYF|ed~miB_7wx=f+HXb0HeM=de5nHDuRAXiAisc zXtlSbi$kX-vef!^IW(EzCG|^bqdX4&K?tnqo)6_Ds5FoB6p|WBLW%0lNG?qSg$NZ5 zFy8S&9O^0C^0qYiN{_q-v{~tbD9IrlC^BrNXC)_{5}4>J0VWW+`Z9n*esmMwEDyK$ zXg!l(fKE`ZWDgbwGl_sdoL24;_c?uzPx%O)g*3UN#8Y~5;M$p^F4rTY=ZM`OoijzS;Hpv!Cs({v`Fp`@EB5-xz7w1IA*4)IGc* z#&~@6%<*E_ZX|oU6wAkz+f9zK=@Vh^ob^rK#?KaSUoLvjJw9Kxc#75tMQP2rEv5gU zA1iEU1d_2PQ@(m(OOPo%?Wj%q3+u`4(pf1DQ5poNn8RZ!-({$x%k;?hVnBCx=t-Q% zG~4Ln=mPN}tg<1S_RFk8S+*B$lw*J0rfsA~MpI*Dv(;*DB!@?mA*(f@S>Kcz9Z8Mb ztm7JUe?s=B)GuBEZ|@4Ya`Y(vTHRcJ!wt}hlDhH;d$-M)(<9w`Hy#lGH92!|CYhZf zg!D2UrnH0@?*gKtaguHe^z=- z_U@@CfA|K{^qwTZiVPIOX-}Rw5{UFbNTa8?nmP87u~TJ(l1$$F-^!=PD4>(nl#vr> z4(E)c$61PJjTXN;b!Ke%j>Nqg*%&&Lcz@||)-=S|aydYK!B_OTTGcBT-9B*t!0Nyj z^YqDqUjWthtFpde-^)OycWFh3s|NI(y%0017iCba=rd31!q5_#jVfO$0DSrp*QX`1 zAxOpY4bzLr5p=Yk$=l264Uw!$1VZlB`{azKtc#e^f7Z)=kvYIqIJj@xi>H!P=ogmX z%L=p7c`4WUJEbF2D=AlwHjn1>cKgxRk?FD7pM2p+>u3nKL+i-w*z^H#i@>FHxGf-% z;%gvd++qiAK%0F8u@dKZlbLZ{uC~V!Cn0{|GBShMpHf5-t za#~h-#klj@Dtvyh4K*o&nb>LCBRiXiyyS zg0DS~Wq)w^pu=Ga7Kwq6g#sH|CWGV-*wkQ_*fa$I#F#-i6i{n@QtUAll9S|?AfISd zA9DoL7D*DNeVWBL#9OHhF(3$5kp&azCbS}%L_-2#r2q=@*Nz)~&b29t#BTl?l8)&w zS3Qbfycc=+q21pni|F(O;zs@R^oilaX_MdlF_Y&e+at#Co9qlI{qjosb@a<{!Qc&s zgUXQ6yO>lpQwPcHse?A*`1fYpjkNSvullWH3H8uAvfFu|!ESuWAc>Tun_m@c@Sy2Z^K}pmkj86 z8ow-I*qS&h3lyjRSvV#f&dFFTO!Me(B5ZLzqmV!~q0o{0(%_$Wq8 z+CpA5v>p2Aj;6B6d1=2V=bCd8yXg%iJt`UmkZNW%aSbx;jF4#!8+`H@1|oOXCgPr~`be~@ZIU?9ba zL#t%m2QovEl*^3bB+^1ZgvJ&U7=7S7`zn86z|>dcbbFvlAM2J zvD@hhh+6u8+WN*=EEx^oITndbEsoujfca=#%jJ@}z_By$8%}|4{7xA-8}<{j58y-YHr&t8?mES+7+OEdrO9~R_gV{Flb?PE-}&@J=g3`mz5frt^?`HeX0`{P z>DBM-37>}>hYmHa$i?Bs^@9i3pOA}1Fgq8Px^h7{uw4m-6i4t7fNBu*{==#bamw@=|>6S{s7ek8=EU3u73vh|cM23ueG z2~6g=Xh6F>RMR{_wd;HE0$mvB4*U#qNsq)%1@XJ|XpNp{szJJBY)-K>&6t_PH=}CE zlYP{Qp43jF6XgNfuY|@xQ3_20X|I?j_f7~boNlU{nk!u2x3_EdvreDOMF~v{_!8s+ zzA<(BWF(agpE$Lc1Zu>0e|cqQdTI1gpEYEO@4l3pIW(I}%^sRbB@D&I{IL%lD=d~? zv5g;GC=ru3eqevey8DIU{lol^#4sq8Vq!tx918a~KSvQpA8^xh;d8z_Y)hoZ$C5Ei z`Q+(TDi(`V88sG7rB2;)e|m-sEy}Bl6y2r#uJZ!jM=k|@DecRV0fnweRDhQm21BS|6^weiJQk9$ z6#U)vPEG_ugXMjdG0jrW2ePW$8A<}2;xgQ+}RjwTZE z2o=vwRCfUIGLds73rY|ZhY=ie3J36RkUjnbvd7Z{K)CCc!ronCl+o{!l@ze9-)9eA z8K&O9)jtrq{E?Fn-gleLdD}v6mLjK4XMQ3W2}E6`#||s;iFl~w%BSqvWHKlQjh0)F zog5w?7v-T8&|wP&#UWf{mB{1*IbiY0xYwn53jw1eeZ5b=NL+PTV#pP)$rtk4e591Y zea`t1Bo8jQ*P;#t4*`jNXIV^uf-TpRYg1fK-K0x&1 zG7;39yn&uDfFvNjR#0v5a;T)JYST!WIaLNf8>T9`ps#@T{oEq5rvLk7+n~P7_tq_gs2j%LjR@6tzH@Eu>cZsrCO*_V z;)`o*hsC7Ty!&~hc4BRf%|G}HuXFd$9p&Ely``b9C|l}Z!2Iv=tW#DiVYS;QNPu;V zTb13T7|zaEW9Ecu-Tp&|OLMjyDDVdVuQ=Tj>k&q?JilCp@H zt;@zCw9LKyj~S5I`GHJtk-j+udF)E!{X-dWBdOW(A(a|gGa&t_9|i*#tpCxYsK+Gr z*%El*NK7()oi7^yqb5p?^iElbTYNh0`CH{lbZx>0DI6-@&5|p~nX`wT)@N6`AxihJ z%gW2T%0o;T-AVWxeImOhgebwDo^pf^gBX{=o(zjqo-~~&I>_`_<^;vjs9ADehH$Wm z#e?}T8zMD6Op0{m?uS%y>YiSN(nVjFr5y1VrtT1H^(iaVm6&OT{RhI@rkH8 z$6*@?kG)fwjIp?TC~5VClEVwb$q*eANe$+B1#W+;obtPUw!@AbFxYd7w7I`>6`Fe$ zEq7<&?O>aKV&Lx)FY{jn+^G^`C>#=STSVj6{9zU=B1gaO9|44nwGx#1b^b6rPa$Dr z&Ux)0hG$Gcp;FI!+LOLY*F<^Yqa?+?BI%2lY%-igxQNT2l9ze2v zr2hiEE773$>bzjP^a>(e7-nWv?VxjctQS(?5q@@g+DM{o13zkq~8K1k)p2@EGK@M_y zDM0J5Wi#yZxR!C1C=?o9vUt4#%dumYfY)nTGCJ{=+W=y)OEtTY22{jOST|U})Wb`r zf!d~G3NQ_};O;jq+H=mN|Kde|()pZrJudSKd^9NKNQ6hSheA64f``d8A^E43rp1-R zcRqaQ;faY8jPpO>ug1lcnSkm0rNnwJG)!N?}rSI%KxK*FEM2dM=EG-Rvg(I%HMA#Go{TU(YI_@`QpQn`1y9Y@^ub@=siclQ7LI*Oc%#~D$ z%*h8pe!uK1U3!!PF09la8B0+KCu1X1!C0B|2>@9p59Jq&(U4+GWcHVbhb-p7O!d+1 zAoX?q_X7A4#V+Kv*$ZhIOGv*Qji5F>txsp3u8{XTOflF=L^L(xKRMUNr+ie5`_ z6fBS>{5(&R@DyLe@Y(6#Qw`ktmPG zld?KaIqa1wS{7T-mjak1mX7lJHZQNrh!2P7q%M7g!S6QQ*MV}Msqs?(V@cZRB|Re;#yDv z>XsN})(}{qvZ!3~wg-KXSO!^#7sx!gMz;JgFdrq{413RP(=?R8m zFu6PknR~j2jQf__*{gI9`BM7<@{9<{`}xRTm(mb#pY~0YJg*!&T8|g(zee=QHk5fj}CstXO zmBUBJ;(n_~?;Cd@;qW_peKV*ivTu&jH&Ng9UwnA{>^%Ue(Kmkj#x0EVw?vYLLtq6P z&1aNe-~2#4DLx@>9)$pYw%&Y|^B1cZZz&|JR7xS1iN*Ah!YwkEBAym!s5KcJ4e39joD<E_=%-vj=K zTg7#Y|qLU@w%*tLvd{m8iZB!wN43XsKb9`lPIhh{3 z6+phA&FB(?ixCIL+XZuY>fhOyhu9V?hv9?ug<;I!us#;EQXFuMKT;gPr4K}U&_ zle}yV+9^k3S3^`{mAQ++zIfx*E}%F`Xf$LsICg)MO{Rx3x8EA@iF}TNk+}>?jXR&c zBNG2$Y}jwkPF3`!C>R1BgO)j*wW9z{jEx4vyI)Jh{j+mX_cYOi5Cz0254T8NSIw-; zIX_gUk)gxHyAJDKUMcBKVf62(hH4c(*-P(9ytq9FfVLO2YeH+42SPPv76*yIbfNrG zw*~0w&U#C{1#t9z=f;7RKI1!X%Lgb4I(m9P+DgdleY4H$4T53#3uC7N0UsSbJ?1SK z=3FVS@6WLgNR{SMxwbkT)QT!C=0{JL2|vwIrOEFfJ~=e&2s-#b(OZ3@c%)c7a>o&{ z4HJ{0SaP0XSl9l`@q?D%&y@)9yl3#1=&=A)mjLMuL2gnH-WgMLRAR|4W+AT9h9sl8 znNhlM3pr+%=p;;)QO-AJdmFOSM!>+slaI{n6ffgy@EaUcrc@pb?Lcv2#^6=0es3Y^ zaY9T`X9;nU!j{cp^;4>gY%Ga1^ym%vlP?VA&V_;_w~eG1%8`-V#fjX(d@*gBa2R|z zFmln!g8z990gv2ZybFw0la??d3t?D7IyA2Fy@#gfMqX$+GB-0ls_W_-l`^xl)c8kxLn7VtaaBMa?eb00f4P7xgjOI8# z9W;EVhQUJ|D5P0NiB<*WUL8^yLB5%ka)3Bj0#ZF5QsH!-g?;uab7Fj8egOA^n3YgH z2vsEwQi;+lv3z8(ASDa65ZSe%3Ph8^FY$c%yEZwf90)R;JXR~=+@QzgIi#6*mJBKV z*bo)xLL9(>GD1wwqB(pa5Pgb%82r|RruksONEbf8*&L^+Um~IStx3%c+6udEfq;eG z0pyf1lq)4q!09h60LrQrXW(r7NpytLNfsa44w8bChX5 zYR6tnfM1G?lN8}lc0|6TzH}49Lw>dqb;hQC<}NFc!7i)nCE}0DT-47&620p#3778D zV9^ebin%UivxozV)9lblQ4V0K&An|i5(-5&-{$iwe}frMvxc9r*`5f4ieM0bqj%g2mZyt0I?9EK(8BRZ&rGNnoKa}t5ymzR~dAS%#bc^ zV|FcNdvI}dGkwlaN`UL?&|mtLm#!eFMo4z_-T@MlM>?f)%=8LlT@6)O$Sd>FFI22Z z{)yd4e~-NvGOK^h{(#EiXepJ@Oi6_lhqxW;1!8fMQ^Zt}f$Ak`VJVih8TmB_$p`TV z)Buw5+<%}nfK7%+!u?&ojLRN%c-5rW6jOa>f6N@w@KAt|79}-76(Las$DOicVNl|Q z6>e=X*v}gmj1A2@3btqku2mW7i-0XP5#iNn_ZV$%jFYivg5nC3n}{g@>!Q(}ESIL1N)H{-j78JrWhrc4o-`GW+JT2kOH-wC5_20! z*ltt85bEbHJi*Tu;nS$|#!9i{y;tJ<8&ag2_C5b?nvhhaS zu-}fM)@|}p&F^+ki9+_S(~1cU43i=Jxxe!W-1hL~Z-WE;yJ!Yptes~hLhViQ;-;C3 zZ;Sw-61)gEM`a2EsY~^sNl(M4O8q@Kg7c8bK!&-l6-W~vqgI+Rr9Dp-H^h?f{=m1f z@5B$&sbj~LJpLPEKuv*goZT~N;hQ4`yKQRU!Bsh*F=p$y$iGX^><7=|H1Sh>5kuOToiSlElk-kmT=%mF1qfFM z6pnl#cy)=aN-BgiyRPqJ*7d*(Nw9ADzx4)uQI&&qnIU?8B11N{Hr9#4qIY?1}sj`UYVO(G#GZ@H$41L%eA56M&q-e{h9Rb z6bquVYdAV{dwODa>fT5!7P)t7Hn;F}$mK~#vfc{>#LD;B^TpX2)d}RyQQcy5llu!5 z<674jLK0sHQ6VRVEhsYsn?GgX#Km`AJfSbreLQa9zIVTVZ{gk#j=QENom8$ruEtL! zk8eUxub${1%X$wQ{J`4P!o9`29$s15usRd2Cz8h#Q3$i1qodawkaobleuq8O#|5+p zz0TW><^K%SA0U|(o*~uleo=w~!7L&E@Y0*EHwp2Z6;~tP-H&)95wE!5jTA^|Y92he zWhMPv5f>-~`QLB5?Y47s7lrqQ7hY%`zWApU$nIO^L8qpsP8pTmkMN_P6biQ& ziys`_?yqosuQZ z;SA%$OoCGA+{q>U`dA?&xgaN#Jcy74UB(dYOv0@0kA>#K`=H&%JIebSH=B;Go3wEtd2bHvdRaBz zJBPKZa-ZdUzjcYm<=?h2SFpS8G8UiIb+a7SG+u^o2m^{7zqPz>sPL-$__T#I>PuUmegLX{#I8N~e$9GRHT{(`dIqGZ$4>*!bnj0-2aeRQykf`6cHIVU z=*7B796k67vQ3W4RO0IH;lDhS83X^doVz2@!zF*^{SP=Du?L=hnEUO;p8XoWb|zAV zq;{z@^1;!J*v^olq5iEgj z+HW+@^v-z|vMw=w212uj>5y;Q5O}g#Is5R;&f(9B;U9_M?q@!u-}}{pU5<0gY=R0T z1CGF$-7h@3S&ww%U>4giK6dZnM^E|v$A-^V62(v~8Z0H>`obR<*JcX2!tTHeK+Pw& zW1PT5-+zU^f1bSc92JsolW`N32?(e@HT3b12u>hnB`8ab_i%DTcuxA#yL|GVpdOSj zuA<7yMRL|K&#=%*(OhR-5_gCx_D;hF)oL*~5*?yCjCX>ZpiK%_$hx7JZ4Y^vAf#d{ z)alNLDGH*1UF389rt!`!Ro{)Oe}V#Cj$tw{CMW`7NTyBHGML9Zav2yn(scq6KQ4ug z&EWGieT3lsvc+sisIsW%c7H6oFmNh&o9#~1V$|%|H2A#H+>R84{h$=LRB zG~kLShuZ6zDOHlQ_A~F={WGUYgv%bUb@-ZX<5@y%KHo;Ar3^${!iO4~o}2s8jrJV3r{Lu{%sjm#6Z^9T`NL~F;$#HMG0b8Ln{Zy@Z!+rT2!o+XwH;*p%b0bly7_v}c1@bAXL;jugq^_x=X4E6dN*Wrnm!UJ(yeNHRnVoh zDNSo7jTevhPSJr`dR>MTFgK9W(6zE!Zgz??lhO$)&m`XgGls#$b2D=hRp||+6O1M$ za!)G17BUY{M&fak{kDrU%Cw^0XQD)vjAp^Q7_pfW$_!=Ql%v{VC;Z8bwSEqH(-=3q zROKM>Na7QLF!kSz`JclLXd3c4U8cYAHWkf%pR~{UA6NlBLA8e5Mc>;|Mm1~0>G!y_ z2%wPSaUiWnzaNc$|M$J#Up<{8a@ikXcA~5d#SK0eZV~nLB$?K@X1u{86hE@6g1mx& z-)>W)X|k||ak5N$wX)#!2TUhLO@egG#B39J+_H8t?{EcYgnH6SN;qnfGaS54rV#Vb zJMe>^XNk7lrK`Lw18nu$3O@WyzirUvtloYj?Gyd|GIM&V-&T>vHv4TW*{N^uw{6Vr zUuPEK8R0r%FkE|W!Hj>Y-&O|59qYFZ0}I06ZyRZ!>9no+mI zvP0(88WL)k&nnxiTu=5>`r1`$Jb#0IX>u;*cNh5mGDnXMtn0sO;SCz+v#Q^tJbUl> zF^-aF>eEx!dLk$5SN#)MkBFa?g&9CTlQG-EDr~|o99Ys^!Yu%-6F%V=0V4N9I3pt1 zECBk%$|jK>(jp_W@YlR3P_U{b2E`D8DI>tKm7(0@VnR%cDN?m(#H^U3V&=TqM_m4X zaRBq2tV3{E91%ywF>zd+5VwevXvepS+r=qyTHGPdh&PBgiaW(wahEtJ?gl~QUU8o| zFYXr)hzG?(;$iWKcvMuyl2{fiP>)rz4%bCpTma#qAvVR9Xo{A242*=1=!$J|QCt$2 z#g2HKXMRGw8N8gI6<3H#ep39Lc&m7uc)R#{@eb^O?-K78?-B16Pl@-5r^Wll2gC=( zhs1})N5n_PFNlwck5iT96XF^1N%1N1toTLoOXAbwGve=w&x+59UlzY2epURMcuss? z{NJGde1VF>UlhL~epCDwIRL){cFvc`G5j(yMqd$M6<s{;~Kc;-8A|i$51HiGL=3Abu!bCJgPL zi+>^hLi|hdBk`}qzZU<7dbIxzo%jC}eZqK_*R%A_&{Tbfa3l{xTr=9PWQg0f#Z zpd7>xc}O`70MAk7m~vb>q1>XJ1b62)z!8)% zS#H;=-TFmNu%(l5N43=|ce>3s7jJef*S1WwYHhjAZE<$F-Kbfsot@3iTDM)_(5l-j z@}BM0?QXNxuC3ND*VX?_fljZ7W%ehoruWl{Z%ALoytL>WB z-?S{%H=9e6iqq;YZ7*-sx*DzJW_`=ZddITVs4j1myY-q?Z!Oi@ZMn0#wpMGGm$ZJ% zw$#|Jb(_uZdU=U&`)$KgciFwP4bx~Y)f%yvAkTq-i4aJRl97L z>%Av;vawQ!6?MwXjqN3yzS&uB@?KQh7nYagNj9sUZmqpsZLe6^qQhF%hHQ1{t5!{( z_+q_NwJz7-TFrdUxHfH|3kJukL8_@K$Zh%(`A{ z)oV^h$rc^9QoC4dG+Qd0-D*=^ZqfA(-`*Q8!vr^*Tb=UKPVhDRwwBAa?bqFXq4nA` zY%RaezLn5x&e~cjR~y~e9@|=Z?WNka&HCln9@?oUUvt_Hqo+~dS}V62+nvZy{ra`n z=&Uo)+^_zDdAZY>mN#mY4eRoDx7%R&cGfj+e`}?@VqU3s)|a=JYL=B+qrO~kZg*(4 z8qJ-R=9;!r>uex*Sm}Mndbir{8dvITYYrCmZnaTvF4wAC+De@v!eG$X+wD$GU1=__ zZ!gK!My>5wX;)XfQ~lq#R@(KYB}o8!bHlv1tucpNOU=vbN_(3DrLOE$8TZy&wcXfR zs<&4<#@bSK$5>lgt63P{n~bhz+bBgNQ*D!pqSiKB^>$6IZC$Llt7@&?VA`7{32E21 zH;uJ!XU8rl#Y!D9tJ7&%SF6jlrDk)Zyz0Hy+=M#SpdxM8wO#$&+}qYxxyWksvWs=6 zTjsf$nRKx2hHb0f)*oA4rB^rF7FIkQQ^v5`*l|nYtz7L1o$|+?n|7==s%!Qe_vjmv zUUtf>b&LE)-{3Uun@+=V*LRrN*rsD@*3~92MJGhg)po7MWLaUsK-1*rQfEb5-EJ&% zuxG6b{o&;0cCEF&#GSjY?V(#B$kw%5x7?DiwQE^hD=*jE%Z-|{wq|8K^k1lfrrcxz z$VYSZo4p%Qds`M(8|~^wZAfGC!NnfjLO`f4>ja$8Ykmu_iyxrM5_)@jesCBuZ{KmY7C|-xI z8EIT(tKO0?-L%%;-s&1*B`xndWSaNBRlC&bKep|LUDjS3^-@Z2Ew9%a z5M|SP6Lw}^Z??CV>WzlF-t1ne%Dvl8$`mWPzc8>l_g7ktJAG=C!3zS zB&b`w0mgBIo@s0K=H>Nfr)#Tsx3_AY@>a83Q+sXWh3dts^#a4aH%7G!wXF?KWxCMh z9jX_a&CN#Da$)cGl?xs7h0bbyWu;M5H>zuNgSJuIS*kLdSud|_IW`!`+zCvjUEZ+W zu%&J^+ZVTM8d_2nD(z^%A67T}{i61^v<8%dF=cEp!;Db4nvKNtzT9r=f(Vq_%%9Gb)Xn} zI`g)zZP;TMMX-L^-(1;hZqPBEt@=j2-%*a6cG{bbm20!m+=L~_=t7dDhSC`uLWyF`Z zr?uYX+?UI%jI`RNW_!cEw?|GJi1U`Awcc{VlUK?u_`FW_Zroh2b{#i-+iF>_Z`oS< z*sVb^Tkh-a-h{MV+hLOvm@y{1$qwUL*>F z%hguR^w@T@UA45!eFa(52Vr~11j$(Ls*-SQ*4RKMvb4E(NiW)VS}+0#RK2$4=x_8% zRBuab^G16o*rLgKT8*6*e%FB`Ew8UZ3^`q=*|-R|HneLOt!N$YNxtd zZP$$*-n80TUT@Sdvx5Jv*m`Gy)iC&_e74N+Rb>M%)v2{F){&FD5E*+1+R^RQx0bdW z8|Kb>vvmnRZ|g7*V2j)JMpx?~@V4uhjU8yNxwElTg`jp!G+H%lN0%qp;qfND$qopt zE-N@Y3}tz@x-C*9^wsxA^NVQUQ(>kqMb)(v1-RvT**?Na|T5wXQe!Ea6 zP6-3;Z%WB=wb8s}<=dU!B)2nKt9#U8Z)0b3so5~;->?fp!|>YNh7|E=&@ppQv@Fw$ zx{S#&NaRhrp6>Os!8ELGw@?mx9LaXWE?Z}t!P;tGLc&yOBidW!9q7;E#I{nCv{kZ> zt(tjn)4_a}@@x50t-jRMbUkFbY0=m9PNU}LwwU8gE@`%5w5rT7L=l_3J@lA*r`dMs zx7FUGgS{=atCI+)TuDOO>p`u*Y3lB@n$t$av9@U&($KX*e%iG)`G$8i<^d#a#jxF3 zGH-V}+gn@Jb@gJk3Juke&!iUNV7*d<5b5k*?QNMZ);Xd5Vtw=4HykfFF7g#?BOO^& zE^ZhuZn0;(cA=wQLNI9TnDobIqkg%*<+{XR>2L@Avzzy}O_$a;mpisg+^`g{s^v@C zr8?yBQpa!!x%X1Dv5J;}Ub9r~A~n)mZs^Mjic|;oBS&)0a&3q8Qfr9^M(A(TyvFD* zwGah1JI2dMh&FC!t$!0n*|zUU1z?HM03kE&RAI3G9hgMzGQ5ReW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.ttf b/src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2ffa92d4fadb1ccccee6568190d19de33a649c87 GIT binary patch literal 116280 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 Wn%iBvd+$B;H`OQB8f!A||9=3|O&@Up literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.woff b/src/main/resources/static/assets/fonts/fontawesome/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..34110b2e4263ab7102bdc0d990a7589d84b496ff GIT binary patch literal 74928 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.ttf b/src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..43406e854c2da65c8b265caef07f3c211ee88528 GIT binary patch literal 40416 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

  • 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 ar%ydPSvo&;Mx6Vc`yem#)3cKx*#8f=T~7=E literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.woff b/src/main/resources/static/assets/fonts/fontawesome/fa-regular-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..d49d4643ce50ed65a11a9a4cd9a4353eb6c90591 GIT binary patch literal 18156 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 aa%qA7`^mq)@91O0<%$)WS#WX!0002x)bfS^ literal 0 HcmV?d00001 diff --git a/src/main/resources/static/assets/fonts/fontawesome/fa-solid-900.eot b/src/main/resources/static/assets/fonts/fontawesome/fa-solid-900.eot new file mode 100644 index 0000000000000000000000000000000000000000..3968757e6c3dc45dd9d1eaa42b8c6ff9da2b7c80 GIT binary patch literal 168396 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 z
  • + + Font Demo +