Commit d3eb0833 authored by fangw's avatar fangw

update:init update

parent d19083c6
......@@ -69,16 +69,16 @@ const CONFIG = [
},
changeOrigin: true
},
{
context: ["/ws"],
target: websocketLink,
secure: false,
pathRewrite: {
"^/ws": ""
},
"ws": true,
changeOrigin: true
},
// {
// context: ["/ws"],
// target: websocketLink,
// secure: false,
// pathRewrite: {
// "^/ws": ""
// },
// "ws": true,
// changeOrigin: true
// },
{
context: ["/p"],
target: 'http://localhost:4200/#/p',
......
import { Injectable } from '@angular/core';
import {
HttpRequest,
HttpHandler,
HttpEvent,
HttpInterceptor,
} from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { Router } from '@angular/router';
import { AuthService } from 'src/app/service/auth.service';
import { CookieService } from 'src/app/service/cookie.service';
import { NzMessageService } from 'ng-zorro-antd/message';
@Injectable()
export class ErrorInterceptor implements HttpInterceptor {
constructor(
private authenticationService:AuthService,
private router:Router,
private cookieService:CookieService,
private message:NzMessageService
) {}
intercept(
request:HttpRequest<any>,
next:HttpHandler,
):Observable<HttpEvent<any>> {
return next.handle(request).pipe(
catchError((err) => {
let printError = false;
if (err.status == 401) {
let message = 'Invalid Authentication Credentials';
if (err && err.error && err.error.msg) {
message = err.error.msg;
}
this.message.error(message, {
nzDuration: 3000
});
if (!err.url.includes('logout_handler')) {
this.authenticationService.logout();
}
} else if (err.status == 403) {
let message = 'You are either not having right permission for accessing this module or your organization\'s license has expired. Please re-login or contact your administrator';
if (err && err.error && err.error.msg) {
message = err.error.msg;
}
const loginMethod = this.cookieService.get('login_method');
if (loginMethod === 'mobile') {
message = 'Failed to logging due to verficiation code not matched.';
}
this.message.error(message, {
nzDuration: 3000
});
} else if (err.status == 409) {
this.message.error('Your account was login in another location or login timeout', {
nzDuration: 3000
});
this.authenticationService.logout();
} else if (err.status == 400) {
let reasonText = (err.error && err.error.reason) || 'Got Invalid Inputs Error';
reasonText += ' (Please Make Sure Inputs Are Valid)';
this.message.error(reasonText, {
nzDuration: 3000
});
} else if (err.status == 413) {
let reasonText = (err.error && err.error.reason) || 'The attachment file is too large';
reasonText += ' (Confirm that the attachment is less than 2M)';
this.message.error(reasonText, {
nzDuration: 3000
});
} else if (err.status == 500) {
printError = true;
let reasonText = 'Got Unexpected Error';
reasonText += ' (Please Contact Your Administrator)';
this.message.error(reasonText, {
nzDuration: 3000
});
} else {
printError = true;
let reasonText = 'Got Unexpected Error';
reasonText += ' (Please Contact Your Administrator)';
this.message.error(reasonText, {
nzDuration: 3000
});
}
let error;
if (err.error) {
if (printError) {
console.error(`Error Status Code: ${err.status}`);
if (err.error.reason) {
console.error(`Error Reason: ${err.error.reason}`);
}
if (err.error.traceback) {
console.error(`Error Backend Traceback: ${err.error.traceback}`);
}
}
error = err.error.reason;
} else {
error = err.statusText;
}
return throwError(error);
}),
);
}
}
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HomeComponent } from './page/home/home.component';
import { LoginComponent } from './page/login/login.component';
const routes:Routes = [
{ path: 'login', component: LoginComponent },
{
path: 'home',
component: HomeComponent
}
];
@NgModule({
......
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
import { HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NzFormModule } from 'ng-zorro-antd/form';
......@@ -9,15 +9,25 @@ import { NzInputModule } from 'ng-zorro-antd/input';
import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzSelectModule } from 'ng-zorro-antd/select';
import { NzMessageModule } from 'ng-zorro-antd/message';
import { NzLayoutModule } from 'ng-zorro-antd/layout';
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
import { NzBadgeModule } from 'ng-zorro-antd/badge';
import { ReactiveFormsModule } from '@angular/forms';
import { ErrorInterceptor } from 'src/app/_helpers/error-interceptor';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { LoginComponent } from './page/login/login.component';
import { HomeComponent } from './page/home/home.component';
@NgModule({
declarations: [
AppComponent,
LoginComponent],
LoginComponent,
HomeComponent],
imports: [
BrowserModule,
HttpClientModule,
......@@ -27,10 +37,18 @@ import { LoginComponent } from './page/login/login.component';
NzCheckboxModule,
NzButtonModule,
NzSelectModule,
NzMessageModule,
NzLayoutModule,
NzDropDownModule,
NzToolTipModule,
NzBadgeModule,
AppRoutingModule,
BrowserAnimationsModule
BrowserAnimationsModule,
ReactiveFormsModule
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
<nz-layout>
<nz-header class="header">
<div class="logo">
<i nz-icon nzType="icons:logo" class="icon"></i>
<!-- <img class="ilogo" src="../../../assets/images/logo.svg" alt=""> -->
<img class="ititle" src="../../../assets/images/nav-title.svg">
</div>
<div></div>
<div class="header-right">
<i nz-icon nzType="icons:language" class="icon"></i>
<nz-badge [nzDot]="true" class="badge-style">
<i nz-icon nzType="icons:notifications" class="icon"></i>
</nz-badge>
<!-- <nz-badge [nzDot]="true" style="margin: 0 10px;">
<a class="head-example">
<button nz-button nzShape="circle" style="color: #013527;">
<i nz-icon nzType="icons:notifications" ></i>
</button>
</a>
</nz-badge> -->
<!-- <button nz-button nz-tooltip nzTooltipTitle="Change Language" *ngIf="currLanguage%2==0"
style="color: #013527;">
<i nz-icon nzType="icons:EN"></i>
</button>
<button nz-button nzShape="circle" nz-tooltip nzTooltipTitle="Change Language" *ngIf="currLanguage%2==1"
style="color: #013527;">
<i nz-icon nzType="icons:CN"></i>
</button> -->
<i nz-dropdown nzTrigger="click" class="icon" [nzDropdownMenu]="menu" nz-icon nzType="icons:Robot-Avatars"></i>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item nzDisabled class="user-menu-disabled">
<i nz-icon nzType="icons:manual"></i>
<span>quick_start_guide</span>
</li>
<li nz-menu-item nzDisabled class="user-menu-disabled">
<i nz-icon nzType="icons:manual"></i>
<span>quick_start_guide</span>
</li>
<li nz-menu-item nzDisabled class="user-menu-disabled">
<i nz-icon nzType="icons:video"></i>
<span>introduction_videos</span>
</li>
<li nz-menu-divider></li>
<li nz-menu-item nzDisabled class="user-menu-disabled">
<i nz-icon nzType="icons:new4"></i>
<span>whats_new</span>
</li>
<li nz-menu-item class="user-menu">
<i nz-icon nzType="icons:terms"></i>
<span>terms_conditions</span>
</li>
<li nz-menu-divider></li>
<li nz-menu-item class="user-menu">
<i nz-icon nzType="icons:email"></i>
<span>chg_email_user</span>
</li>
<li nz-menu-item class="user-menu">
<i nz-icon nzType="icons:pwd"></i>
<span>change_password</span>
</li>
<li nz-menu-item class="user-menu">
<i nz-icon nzType="icons:phone"></i>
<span>change_mobile</span>
</li>
<li nz-menu-divider></li>
<li nz-menu-item class="user-menu">
<i nz-icon nzType="icons:signout"></i>
<span>sign_out</span>
</li>
</ul>
</nz-dropdown-menu>
</div>
</nz-header>
<nz-content>
<!-- <nz-breadcrumb>
<nz-breadcrumb-item>Home</nz-breadcrumb-item>
<nz-breadcrumb-item>List</nz-breadcrumb-item>
<nz-breadcrumb-item>App</nz-breadcrumb-item>
</nz-breadcrumb> -->
<div class="inner-content">Content</div>
</nz-content>
<!-- <nz-footer>Ant Design ©2020 Implement By Angular</nz-footer> -->
</nz-layout>
.logo {
width: 14rem;
margin: 1.6rem 2.4rem 1.6rem 0;
display: flex;
.icon {
font-size: 4rem;
}
.ititle {
width: 12rem;
margin-left: 1.5rem;
}
}
.inner-content {
font-size: 2rem;
background: #fff;
padding: 2.4rem;
min-height: 28rem;
box-shadow: inset 0px 1.5rem 1rem -1.6rem #8c8989;
}
.header {
padding-right: 0;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
background: #fff;
height: 5.5rem;
line-height: 5.5rem;
padding-left: 3rem;
.header-right {
display: flex;
align-items: center;
.icon {
font-size: 4rem;
&:last-child {
margin-right: 1.5rem;
}
}
.badge-style {
margin: 0 1rem;
}
}
}
::ng-deep .ant-badge-dot {
top: .7rem;
right: .6rem;
width: 1.3rem;
height: 1.3rem;
}
\ No newline at end of file
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit {
currLanguage = 0;
constructor() { }
ngOnInit():void {
}
}
......@@ -4,7 +4,7 @@
<div class="con-left">
<div class="welcome">
<p class="text-welcome">Welcome back<label style="font-weight:lighter;">!</label></p>
<p style="font-size: 25px;font-weight:lighter;">Bring Your Research into a New<br> Era of Pharmaceutical
<p style="font-size: 25px;font-weight:lighter;line-height: 30px;">Bring Your Research into a New<br> Era of Pharmaceutical
World</p>
</div>
<div class="text-box">
......@@ -16,11 +16,11 @@
<div class="con-right">
<img class="con-right-bg" src="assets/images/con-right-bg.png">
<div class="con-right-content" *ngIf="step === 1">
<div style="margin: 170px 70px 0 70px;">
<div style="margin: 140px 50px 0 50px;">
<img class="sign-in-text" src="assets/images/sign-in-text.png">
<div class="tip-label red_color">Version: v3.0.0</div>
<div class="tip-label gray_color">Sign in to continue access system</div>
<div *ngIf="loginMethod === 'username'">
<div *ngIf="loginMethod === 'username'" class="mt15">
<form nz-form class="loom-form" [formGroup]="loginFormGroup">
<nz-form-item class="margin-top-35px">
<nz-form-control [nzErrorTip]="errorUser">
......@@ -31,15 +31,15 @@
<ng-template #prefixTemplateUser>
<i nz-icon nzType="icons:user" class="prefixIcon"></i>
</ng-template>
<ng-template #errorUser let-control>
<!-- <ng-template #errorUser let-control>
<ng-container *ngIf="!usernameFormControl.hasError('required')">
Please enter a valid username
</ng-container>
<ng-container *ngIf="usernameFormControl.hasError('required')">
Username is <strong>required</strong>
</ng-container>
</ng-template>
</nz-form-control>
</ng-template> -->
</nz-form-control>
</nz-form-item>
<nz-form-item class="margin-bottom-0px">
......@@ -51,7 +51,7 @@
<ng-template #prefixTemplatePwd>
<i nz-icon nzType="icons:password" class="prefixIcon"></i>
</ng-template>
<ng-template #errorPwd let-control>
<!-- <ng-template #errorPwd let-control>
<ng-container
*ngIf="passwordFormControl.hasError('password') && !passwordFormControl.hasError('required')">
Please enter a valid password
......@@ -59,7 +59,7 @@
<ng-container *ngIf="passwordFormControl.hasError('required')">
Password is <strong>required</strong>
</ng-container>
</ng-template>
</ng-template> -->
</nz-form-control>
</nz-form-item>
......@@ -71,7 +71,7 @@
<div class="loom-buttom-view margin-top-35px">
<div class="loom-flex-row ">
<!-- [disabled]="usernameFormControl.hasError('required') || passwordFormControl.hasError('required')" -->
<button nz-button nzBlock nzType="primary" [nzSize]="size" nzShape="round" class="login-btn" (click)="nextStep()">
<button nz-button nzBlock nzType="primary" [nzSize]="size" nzShape="round" class="login-btn" (click)="onLogin()">
CONTINUE
<i nz-icon nzType="right" class="right-icon"></i>
</button>
......@@ -80,12 +80,12 @@
</form>
</div>
<div *ngIf="loginMethod === 'mobile'">
<form nz-form class="loom-form" [formGroup]="mobileLoginForm">
<div *ngIf="loginMethod === 'mobile'" class="mt15">
<form nz-form class="loom-form">
<nz-form-item class="margin-top-35px">
<nz-form-control [nzErrorTip]="errorPhone">
<nz-input-group [nzSuffix]="suffixTemplateSend" [nzPrefix]="prefixTemplatePhone" class="login-input">
<input nz-input placeholder="Mobile number" formControlName="mobileFormControl"
<input nz-input placeholder="Mobile number"
id="mobile" />
</nz-input-group>
<ng-template #prefixTemplatePhone><i nz-icon nzType="icons:phone" class="prefixIcon"></i></ng-template>
......@@ -108,8 +108,8 @@
<nz-form-item class="margin-bottom-0px">
<nz-form-control [nzErrorTip]="errorValidation">
<nz-input-group [nzPrefix]="prefixTemplateValidation" class="login-input">
<input nz-input type="number" placeholder="Verification Code"
formControlName="codeFormControl" id="code" />
<input nz-input placeholder="Verification Code"
id="code" />
</nz-input-group>
<ng-template #prefixTemplateValidation><i nz-icon nzType="icons:validation" class="prefixIcon"></i></ng-template>
<ng-template #errorValidation let-control>
......@@ -151,7 +151,7 @@
</div>
</div>
<div class="con-right-content step-two" *ngIf="step === 2">
<div style="margin: 100px 70px 0 70px;">
<div style="margin: 140px 50px 0 50px;">
<div class="user-Avatars">
<div >
<i nz-icon nzType="icons:Robot-Avatars"></i>
......
......@@ -7,8 +7,6 @@
background-size: cover;
background-repeat: no-repeat;
position: relative;
min-height: 768px;
.login-content {
position: absolute;
left: 50%;
......@@ -19,7 +17,7 @@
overflow: hidden;
.content-bg {
width: 75vw;
width: 1000px;
display: block;
}
......@@ -32,8 +30,8 @@
.welcome {
color: #fff;
position: absolute;
top: 44%;
left: 135px;
top: 38%;
left: 100px;
&>p {
margin: 0;
......@@ -42,7 +40,6 @@
.text-welcome {
font-size: 35px;
font-weight: bolder;
margin-bottom: 10px;
}
}
......@@ -102,6 +99,10 @@
width: 100%;
}
.mt15 {
margin-top: 15px;
}
.tip-label {
font-family: Helvetica;
font-weight: 100;
......@@ -249,6 +250,7 @@
justify-content: space-between;
align-items: center;
font-weight: lighter;
padding: 0 8px;
.example-margin {
color: #8d8d8d;
font-size: 15px;
......@@ -268,9 +270,9 @@
.login-input {
border: 0;
height: 50px;
height: 40px;
background: #f0f0f0;
border-radius: 50px;
border-radius: 40px;
box-shadow: none !important;
&>input {
background: #f0f0f0;
......@@ -280,7 +282,7 @@
.login-btn {
font-size: 16px;
height: 50px;
height: 40px;
border-radius: 50px;
background: linear-gradient(to right, #83d0ea, #9eeeac);
border: 0;
......@@ -335,6 +337,7 @@
background: #83d0ea;
border-radius: 50px;
cursor: pointer;
padding: 0 20px;
}
.tip {
......
import { Component, OnInit } from '@angular/core';
import {
FormControl, FormGroup, FormBuilder, FormGroupDirective, NgForm, Validators,
} from '@angular/forms';
import { AuthService } from 'src/app/service/auth.service';
import { CookieService } from 'src/app/service/cookie.service';
import { ActivatedRoute, Router } from '@angular/router';
@Component({
selector: 'app-login',
......@@ -8,13 +14,40 @@ import { Component, OnInit } from '@angular/core';
export class LoginComponent implements OnInit {
loginMethod = 'username';
loading = false;
loginFormGroup:FormGroup;
step = 1;
constructor() { }
usernameFormControl;
ngOnInit():void {
passwordFormControl;
returnUrl:string;
constructor(
private authService:AuthService,
private formBuilder:FormBuilder,
private cookieService:CookieService,
private route:ActivatedRoute,
private router:Router,
) { }
ngOnInit():void {
this.loginFormGroup = this.formBuilder.group({
usernameFormControl: new FormControl('', [
Validators.required,
]),
passwordFormControl: new FormControl('', [
Validators.required,
]),
rememberFormControl: new FormControl('', [
]),
});
this.usernameFormControl = this.loginFormGroup.controls.usernameFormControl;
this.passwordFormControl = this.loginFormGroup.controls.passwordFormControl;
this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';
}
nextStep() {
......@@ -24,4 +57,30 @@ export class LoginComponent implements OnInit {
previousStep() {
this.step = 1;
}
loginSuccess(data:any) {
this.cookieService.delete('loginAuth');
// if (this.checked) {
// this.cookieService.set('loginAuth', escape(JSON.stringify({
// name: this.usernameFormControl.value,
// pwd: this.passwordFormControl.value,
// })));
// }
this.loading = false;
this.router.navigate([this.returnUrl]);
}
onLogin() {
// this.loading = true;
const login = this.authService.login(this.usernameFormControl.value, this.passwordFormControl.value, 'username');
login.subscribe(
(data:any) => {
this.loginSuccess(data);
}, (error) => {
this.loading = false;
throw error;
},
);
}
}
import { Injectable } from '@angular/core';
import { Observable, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { CookieService } from 'src/app/service/cookie.service';
import { ContextPathService } from 'src/app/service/context-path.service';
import { Router } from '@angular/router';
@Injectable({
providedIn: 'root'
})
export class AuthService {
isLoggedIn = false;
locationUrl = '';
logoutCallbacks = [];
constructor(
private http:HttpClient,
private cookieService:CookieService,
private contextPathService:ContextPathService,
private router:Router,
) {
if (!window.performance.navigation.type) {
this.isLoggedIn = false;
} else {
this.isLoggedIn = !!localStorage.getItem('currentUser') && !!this.cookieService.get('authtkt');
}
}
login(username:string, password:string, loginMethod:string = 'username'):Observable<boolean> {
this.cookieService.set('login_method', loginMethod);
const form = new FormData();
form.append('login', username);
form.append('password', password);
form.append('method', loginMethod);
const requestOptions:Record<string, unknown> = {
/* other options here */
responseType: 'json', // not a json
};
return this.http
.post<any>(
this.contextPathService.resolvePath('login_handler'),
form,
requestOptions,
)
.pipe(
map((resp:any) => {
const user = resp;
// login successful if there's a jwt token in the response
if (user) {
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', escape(JSON.stringify(user)));
this.isLoggedIn = true;
return user;
}
throw new Error('Fail Auth');
}),
catchError((err:HttpErrorResponse) => {
// TODO wrong code
this.isLoggedIn = false;
return throwError(err);
}),
);
}
logout():void {
// remove user from local storage to log user out
if (localStorage.getItem('currentUser')) {
localStorage.removeItem('currentUser');
this.cookieService.set('authtkt', 'reset');
(this.logoutCallbacks || []).forEach(fn => {
fn();
});
this.http.get('/api/logout_handler', {}).subscribe(
(res) => {
this.router.navigate(['/login']);
},
(err) => {
this.router.navigate(['/login']);
},
);
} else {
this.router.navigate(['/login']);
}
this.isLoggedIn = false;
}
}
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class ContextPathService {
constructor() { }
public resolvePath(path:string) {
if (window.location.href.indexOf('localhost:4200')) {
return `/api/${path}`;
}
// for future deployment on apache
return path;
}
}
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class CookieService {
constructor() { }
set(key:string, value:string, expires?:Date):void {
let cookieValue = `${key}=${value}`;
if (expires) cookieValue += `;expires='${expires.toUTCString()}';path=/`;
document.cookie = cookieValue;
}
delete(key:string) {
const date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = `${key}=a; expires=${date.toUTCString()}`;
}
get(key:string):string {
const decodedCookie:string = decodeURIComponent(document.cookie);
const pairs:string[] = decodedCookie.split(/;\s*/);
const prefix = `${key}=`;
for (const pair of pairs) {
if (pair.indexOf(prefix) == 0) {
return pair.substring(prefix.length);
}
}
return '';
}
}
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
<path d="M915.765,480.681H639.977V104.319c0-22.091-17.909-40-40-40H103.792c-21.846,0-39.556,17.71-39.556,39.556v496.185
c0,22.091,17.909,40,40,40h376.529v275.62c0,24.262,19.738,44,44,44h391c24.262,0,44-19.738,44-44v-391
C959.765,500.419,940.026,480.681,915.765,480.681z M386.198,440.756v129.698c0,2.251-1.825,4.076-4.076,4.076h-56.573
c-2.251,0-4.076-1.825-4.076-4.076V440.756c0-2.251-1.825-4.076-4.076-4.076H163.981c-2.251,0-4.076-1.825-4.076-4.076V214.463
c0-2.251,1.825-4.076,4.076-4.076h153.415c2.251,0,4.076-1.825,4.076-4.076v-72.226c0-2.312,1.921-4.162,4.232-4.073l56.573,2.159
c2.189,0.084,3.921,1.883,3.921,4.073v70.067c0,2.251,1.825,4.076,4.076,4.076h149.956c2.251,0,4.076,1.825,4.076,4.076v218.141
c0,2.251-1.825,4.076-4.076,4.076H390.275C388.023,436.68,386.198,438.505,386.198,440.756z M895.765,895.681h-351v-255.62h55.212
c22.091,0,40-17.909,40-40v-55.38h255.788V895.681z"/>
<path d="M315.979,273.136h-84.867c-3.034,0-5.493,2.459-5.493,5.493v90.302c0,3.034,2.459,5.493,5.493,5.493h84.867
c3.034,0,5.493-2.459,5.493-5.493v-90.302C321.472,275.595,319.013,273.136,315.979,273.136z"/>
<path d="M473.594,273.136h-81.902c-3.034,0-5.493,2.459-5.493,5.493v90.302c0,3.034,2.459,5.493,5.493,5.493h81.902
c3.034,0,5.493-2.459,5.493-5.493v-90.302C479.087,275.595,476.628,273.136,473.594,273.136z"/>
<polygon points="649.3,730.631 697.181,730.631 697.181,706.5 649.3,706.5 649.3,679.33 700.981,679.33 700.981,654.25
620.419,654.25 620.419,786.111 703.641,786.111 703.641,761.031 649.3,761.031 "/>
<path d="M753.99,718.091c3.04-10.45,10.45-14.061,21.85-14.061c13.49,0,16.721,5.32,16.721,19.19v62.891h27.55V716
c0-22.61-8.55-34.39-34.01-34.39c-14.82,0-26.601,4.56-32.11,14.25V683.51h-27.551v102.602h27.551V718.091z"/>
</g>
</svg>
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
<path d="M912.203,480.814H637.637V104.223c0-22.091-17.909-40-40-40H101.54c-22.091,0-40,17.909-40,40v496.096
c0,22.091,17.909,40,40,40h375.818v275.339c0,24.348,19.808,44.155,44.155,44.155h390.689c24.348,0,44.155-19.808,44.155-44.155
V524.97C956.358,500.622,936.551,480.814,912.203,480.814z M312.49,499.398H126.779V205.144h179.774v55.968H191.226v60.631h106.848
v53.848H191.226v67.839H312.49V499.398z M424.848,347.607v151.791H363.37V270.44h61.479V298c12.296-21.624,38.584-31.8,71.656-31.8
c56.816,0,75.894,26.288,75.894,76.743v156.455H510.92V359.055c0-30.952-7.208-42.824-37.312-42.824
C448.168,316.231,431.632,324.288,424.848,347.607z M892.358,895.813h-351V640.319h56.278c22.091,0,40-17.909,40-40v-55.505
h254.722V895.813z"/>
<path d="M705.078,752.804v53.01h24.89v-53.01h60.8v-87.021h-60.8v-30.02l-24.89-0.95v30.97h-62.13v87.021H705.078z
M729.968,689.913h35.72v38.95h-35.72V689.913z M668.218,689.913h36.86v38.95h-36.86V689.913z"/>
</g>
</svg>
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
<g>
<path d="M863.247,855.721H160.753c-48.937,0-88.749-39.812-88.749-88.749s39.812-88.749,88.749-88.749h702.494
c48.936,0,88.748,39.812,88.748,88.749S912.183,855.721,863.247,855.721z M160.753,728.223c-21.366,0-38.749,17.383-38.749,38.749
s17.383,38.749,38.749,38.749h702.494c21.366,0,38.748-17.383,38.748-38.749s-17.382-38.749-38.748-38.749H160.753z"/>
<path d="M826.542,702.884h-50V478.199c0-71.107-27.69-137.958-77.971-188.238c-50.279-50.28-117.131-77.971-188.237-77.971
c-71.107,0-137.958,27.69-188.239,77.971s-77.971,117.131-77.971,188.238v224.685h-50V478.199
c0-84.462,32.892-163.869,92.615-223.593c59.724-59.724,139.131-92.615,223.593-92.615c84.463,0,163.87,32.892,223.594,92.615
s92.615,139.131,92.615,223.593V702.884z"/>
<path d="M695.206,639.55h-50V494.865c0-29.946-4.928-59.328-14.647-87.329l47.236-16.396
c11.553,33.286,17.411,68.184,17.411,103.724V639.55z"/>
<path d="M510.333,959.335c-28.938,0-56.445-8.293-77.455-23.352c-23.188-16.62-36.486-40.456-36.486-65.396v-21.206h50v21.206
c0,20.642,29.879,38.748,63.941,38.748c34.062,0,63.941-18.106,63.941-38.748v-21.206h50v21.206
c0,24.94-13.299,48.776-36.486,65.396C566.778,951.042,539.271,959.335,510.333,959.335z"/>
<path d="M599.082,174.002h-50v-21.206c0-21.366-17.383-38.749-38.749-38.749s-38.749,17.382-38.749,38.749v21.206h-50v-21.206
c0-48.936,39.812-88.749,88.749-88.749c48.937,0,88.749,39.812,88.749,88.749V174.002z"/>
</g>
</svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647918920550" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9337" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M768 554.666667a42.666667 42.666667 0 0 1-42.666667-42.666667 213.333333 213.333333 0 1 0-28.586666 106.666667A126.08 126.08 0 0 0 768 640a128 128 0 0 0 128-128 384 384 0 1 0-112.426667 271.573333l-60.586666-60.586666A298.666667 298.666667 0 1 1 810.666667 512a42.666667 42.666667 0 0 1-42.666667 42.666667z m-256 85.333333a128 128 0 1 1 128-128 128 128 0 0 1-128 128z" p-id="9338"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1649483663903" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29669" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M846.04 866.77c-17.08 2.03-32.57-10.18-34.59-27.26-0.22-1.9-0.27-3.81-0.15-5.71v-123c0-33.73-22.17-33.73-30.53-33.73-21.28-0.46-38.91 16.43-39.36 37.72-0.01 0.46-0.01 0.92 0 1.37v117.66c-0.76 18.9-16.71 33.61-35.61 32.84-17.83-0.72-32.12-15.01-32.84-32.84V647.68c-1.23-17.23 11.74-32.19 28.97-33.41 1.69-0.12 3.39-0.1 5.08 0.05a31.953 31.953 0 0 1 31.33 17.76 89.435 89.435 0 0 1 54.99-17.76c54.11 0 86.45 33.59 86.45 90.03V833.8a32.25 32.25 0 0 1-8.88 23.72 34.026 34.026 0 0 1-24.82 9.33l-0.04-0.08z m-233.12-7.46h-134.7c-42.77 0-61.85-18.96-61.85-61.57V608.07c0-42.52 19.09-61.57 61.85-61.57h128.74c17.92 0 32.45 14.53 32.45 32.45s-14.53 32.45-32.45 32.45H490.73c-1.22-0.08-2.45 0.09-3.6 0.5 0.13 0-0.15 0.8-0.15 2.89v52.58h106c16.33-1.66 30.91 10.24 32.57 26.57 0.17 1.68 0.2 3.37 0.08 5.06 0.98 16.66-11.73 30.97-28.4 31.95-1.41 0.08-2.83 0.07-4.24-0.05H486.9V791c-0.04 1.06 0.08 2.13 0.35 3.15 1.12 0.15 2.25 0.23 3.38 0.24h122.31c16.96-1.07 31.58 11.81 32.65 28.76 0.07 1.16 0.08 2.33 0.02 3.5 1.35 16.68-11.07 31.3-27.75 32.65-1.64 0.13-3.28 0.13-4.92 0h-0.02zM327.54 482.85c-17.36 2.36-33.34-9.8-35.7-27.16-0.3-2.21-0.37-4.44-0.2-6.67V370.5h-85.27c-45.86 0-66.31-20.52-66.31-66.31v-93.87c0-45.58 20.52-65.9 66.31-65.9h85.27v-31.53c-1.38-17.11 11.37-32.11 28.48-33.49 1.92-0.15 3.84-0.13 5.76 0.07 30.26 0 36.63 18.17 36.63 33.42v31.59h86.09c45.86 0 66.33 20.34 66.33 65.88v93.89c0 45.86-20.52 66.29-66.33 66.29h-86.05v78.52c1.25 17.47-11.9 32.65-29.37 33.91-1.88 0.13-3.76 0.1-5.63-0.1v-0.02zM217.21 211.27c-6.47 0-7.07 0.6-7.07 7.07v78.2c0 6.53 0.6 7.15 7.07 7.15h74.43v-92.42h-74.43z m145.35 92.38h75.29c6.29 0 7.09-0.8 7.09-7.07v-78.25c0-6.29-0.8-7.09-7.09-7.09h-75.31v92.42h0.02z m151.42 655.91C266.43 958.82 66.36 757.55 67.1 510c0.1-35 4.31-69.86 12.52-103.88 4.81-19 23.92-30.68 43.03-26.29 19.1 4.61 30.86 23.81 26.29 42.91-48.93 202.33 75.42 406.01 277.75 454.94a376.924 376.924 0 0 0 87.29 10.56c19.69 0.02 35.64 15.99 35.63 35.69-0.02 19.67-15.96 35.61-35.63 35.63z m398.49-310.05c-19.69 0-35.66-15.96-35.66-35.65 0-2.95 0.37-5.9 1.09-8.76 51.31-201.82-70.7-407.02-272.52-458.33-29.89-7.6-60.59-11.5-91.43-11.62-19.68 0-35.64-15.95-35.64-35.63 0-19.68 15.95-35.64 35.63-35.64h0.01c247.57 0.76 447.65 202.08 446.89 449.65-0.11 36.8-4.76 73.44-13.83 109.1-4 15.8-18.23 26.88-34.54 26.88z" fill="#707070" p-id="29670"></path></svg>
\ No newline at end of file
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 105.79 111.42"><defs><style>.cls-logo{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="367.98" y1="297.92" x2="473.77" y2="297.92" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6dbe45"/><stop offset="0.75" stop-color="#306a4b"/><stop offset="1" stop-color="#1e5138"/></linearGradient></defs><title>logo</title><path class="cls-logo" d="M472.47,274a9.76,9.76,0,1,0-17.7-1.84l-22.66,13.08a14.23,14.23,0,0,0-18.37-3.57,13.9,13.9,0,0,0-4.1,3.57l-13.43-7.76,20.75-12a6,6,0,0,0,7.82,0l17.77,10.26,4-2.3L426.77,262a5.6,5.6,0,0,0,.1-1.09,6,6,0,1,0-12,0A5.6,5.6,0,0,0,415,262l-22.76,13.14-5.21-3a9.79,9.79,0,0,0-2.09-9.66,48,48,0,0,1,12.05-9.9,47.87,47.87,0,0,1,57.94,7.81,9.82,9.82,0,0,1,2.73-2.36l.37-.18a51.88,51.88,0,0,0-63-8.72,52,52,0,0,0-13.31,11A9.76,9.76,0,1,0,385,275.63l22.63,13.07a14.25,14.25,0,0,0,11.23,19.46v15.5l-20.76-12a6,6,0,0,0-3.91-6.76V284.39l-4-2.3v22.82a5.72,5.72,0,0,0-1,.46,6,6,0,1,0,6,10.4,5.44,5.44,0,0,0,.9-.65l22.76,13.14v6.06a9.78,9.78,0,0,0-6.46,4.67,9.14,9.14,0,0,0-.83,1.93c-1-.2-2.07-.44-3.09-.71a47.79,47.79,0,0,1-33.71-58.85,9.63,9.63,0,0,1-3.42-1.19L371,280a52,52,0,0,0,5,40,51.4,51.4,0,0,0,31.45,24.14c1.23.33,2.46.6,3.7.84a9.75,9.75,0,0,0,9.7,8.73,9.76,9.76,0,0,0,2-19.32V308.16a14.26,14.26,0,0,0,11.23-19.47l13.43-7.75v24a6,6,0,0,0-3.91,6.78l-17.76,10.25v4.61l19.76-11.41a6.45,6.45,0,0,0,.89.63,6,6,0,1,0,6-10.4,6.28,6.28,0,0,0-1-.45V278.63l5.22-3a9.8,9.8,0,0,0,9.39,3,47.76,47.76,0,0,1-21.35,56.78,48.57,48.57,0,0,1-11.84,4.87,9.61,9.61,0,0,1,.68,3.57c0,.12,0,.25,0,.37A51.77,51.77,0,0,0,469.77,277,9.78,9.78,0,0,0,472.47,274Zm-89.73-2a5.77,5.77,0,1,1-2.11-7.89A5.78,5.78,0,0,1,382.74,272Zm43.91,71.86a5.77,5.77,0,0,1-5.78,5.77,5.77,5.77,0,0,1-5.77-5.77,5.67,5.67,0,0,1,.77-2.88,5.77,5.77,0,0,1,10.78,2.88ZM426,302.93a10.28,10.28,0,1,1,3.76-14.05A10.24,10.24,0,0,1,426,302.93Zm40.88-28.81A5.77,5.77,0,0,1,459,272a5.79,5.79,0,0,1,0-5.78,5.67,5.67,0,0,1,2.11-2.1A5.78,5.78,0,0,1,469,272,5.87,5.87,0,0,1,466.9,274.12Z" transform="translate(-367.98 -242.21)"/></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647874996886" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3090" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M184.1 257.1c-13.8 0-25 11.2-25 25v490c0 13.8 11.2 25 25 25s25-11.2 25-25v-490c0-13.8-11.2-25-25-25zM787.9 178.6H340.3c-42.5 0-77 34.5-77 77v512.8c0 42.5 34.5 77 77 77h447.6c42.5 0 77-34.5 77-77V255.6c0-42.5-34.6-77-77-77z m-221.6 52.6v203.6l-40.9-26.1c-8.7-5.6-18.7-8.4-28.6-8.4-10.4 0-20.8 3-29.8 9.1l-35.3 23.9V231.2h134.6z m248.6 537.2c0 14.9-12.1 27-27 27H340.3c-14.9 0-27-12.1-27-27V255.6c0-14.9 12.1-27 27-27h41.4v225.8c0 14.4 7.9 27.5 20.6 34.3 12.7 6.8 28 5.9 40-2.1l52.8-35.7c1-0.7 2.4-0.7 3.4 0l59.1 37.8c6.2 4 13.4 6 20.5 6 6.3 0 12.6-1.6 18.3-4.7a38.17 38.17 0 0 0 19.8-33.5V228.6h171.6c14.9 0 27 12.1 27 27v512.8z" p-id="3091"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647917800845" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7111" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M329.865084 412.020687c-11.335793 0-20.240424 8.906437-20.240424 19.83222v100.374873c-28.328646-37.36513-56.659098-74.737485-84.996775-112.10984-5.259693-7.282651-14.164323-10.122018-22.662556-7.282651-8.097253 2.830336-13.76515 10.519385-13.76515 19.015811v161.088921c0 10.925783 8.906437 20.238618 20.240424 20.238618 11.335793 0 20.24223-9.312835 20.24223-20.238618v-100.775853c28.328646 37.504209 56.657292 75.004805 84.996776 112.509013 4.044111 5.266917 10.109375 8.505457 16.185475 8.505458 2.022959 0 4.452315-0.41001 6.473468-1.215582 8.097253-2.837561 13.76515-10.519385 13.76515-19.023036v-161.088921c0.001806-10.923977-8.902824-19.830414-20.238618-19.830413zM491.759576 451.287759c11.335793 0 20.240424-8.904631 20.240424-20.240424s-8.904631-20.24223-20.240424-20.24223H410.806912c-11.326762 0-20.231393 8.906437-20.231393 20.24223v161.894492c0 11.333987 8.904631 20.238618 20.231393 20.238618h80.952664c11.335793 0 20.240424-8.904631 20.240424-20.238618s-8.904631-20.240424-20.240424-20.240424h-60.712241v-40.471816h60.712241c11.335793 0 20.240424-8.906437 20.240424-20.231393 0-11.333987-8.904631-20.238618-20.240424-20.238618h-60.712241v-40.471817h60.712241z" p-id="7112"></path><path d="M935.096385 505.271856a200.982749 200.982749 0 0 1 7.237496 6.726338c-1.986834 1.954323-4.425222 4.219314-7.237496 6.719112a594.421116 594.421116 0 0 1-8.826963 7.670987c-1.388978 1.069278-2.759894 2.1512-4.114553 3.256603-1.638235 1.318536-3.25299 2.655133-4.858714 4.018824a259.619651 259.619651 0 0 0-10.804766 9.739101c-1.788151 1.701453-3.55824 3.437224-5.304848 5.198281-1.768283 1.788151-3.514891 3.61062-5.232599 5.467407a189.298357 189.298357 0 0 0-8.460303 9.748132 169.386664 169.386664 0 0 0-5.172994 6.735369 138.137371 138.137371 0 0 0-5.234405 7.759491 114.109318 114.109318 0 0 0-2.664165 4.48844 98.113495 98.113495 0 0 0-2.689451 5.059203 85.542252 85.542252 0 0 0-1.35466 2.812273 117.739807 117.739807 0 0 0-1.343822 3.047082 97.412684 97.412684 0 0 0-2.629847 6.95392c-0.314281 0.937425-0.62495 1.882074-0.93923 2.821305l-0.727904 2.891747a103.622445 103.622445 0 0 0-1.448583 6.776912 97.233869 97.233869 0 0 0-0.964518 6.433731 111.9527 111.9527 0 0 0-0.570763 6.213373 122.768304 122.768304 0 0 0 0.061411 16.331779c0.10476 1.614755 0.242033 3.227703 0.408204 4.844263a150.511737 150.511737 0 0 0 1.197519 9.009391c0.442522 2.749056 0.953681 5.501725 1.528057 8.236332 0.540058 2.559404 1.128883 5.102552 1.753833 7.6457 0.599663 2.386007 1.224612 4.773821 1.882074 7.141766a366.227766 366.227766 0 0 0 3.906839 13.037246c0.633981 2.004897 1.284218 4.009793 1.943485 6.005659 0.798346 2.447419 1.614755 4.885806 2.423938 7.335031l1.742995 5.225375c0.52922 1.605723 1.058441 3.202416 1.580437 4.808139 0.814602 2.517861 1.621979 5.033916 2.384201 7.560808 0.565345 1.8315 1.103596 3.672031 1.616561 5.519787-2.275828 0.62495-4.81717 1.267962-7.577064 1.936261-3.644938 0.866982-7.672793 1.777314-12.029379 2.750862-2.960383 0.493096-5.909929 0.987999-8.859475 1.508188-3.532953 0.635787-7.056875 1.295055-10.564541 2.013928-3.896002 0.798346-7.784778 1.676166-11.637431 2.656939a192.182879 192.182879 0 0 0-12.854818 3.733443c-2.331821 0.773059-4.66003 1.596692-6.961146 2.481736a139.015191 139.015191 0 0 0-7.335031 3.047082 123.526913 123.526913 0 0 0-7.741429 3.784016 122.327588 122.327588 0 0 0-8.142409 4.739503 112.951536 112.951536 0 0 0-10.015451 7.179697 105.585799 105.585799 0 0 0-16.125871 16.125871 112.509013 112.509013 0 0 0-7.177891 10.015452 116.964941 116.964941 0 0 0-4.739503 8.149633 127.630629 127.630629 0 0 0-3.793047 7.734204 146.606704 146.606704 0 0 0-3.039857 7.335032 171.528832 171.528832 0 0 0-2.490768 6.959339 200.710011 200.710011 0 0 0-2.039214 6.607127 235.103921 235.103921 0 0 0-3.115718 12.193745c-0.433491 1.901942-0.83447 3.793047-1.224613 5.693184a410.250598 410.250598 0 0 0-2.013927 10.562734 964.631582 964.631582 0 0 0-1.509994 8.861281 769.813438 769.813438 0 0 1-2.759894 12.029379 275.633536 275.633536 0 0 1-1.752027 6.952115 152.751441 152.751441 0 0 1-4.02063-0.946456c-1.468451-0.361243-2.924259-0.74416-4.372842-1.15417a233.749261 233.749261 0 0 1-6.970176-2.039215 378.528077 378.528077 0 0 1-7.549971-2.429356 604.210791 604.210791 0 0 0-11.586857-3.740668 432.136482 432.136482 0 0 0-12.473707-3.679256 338.000268 338.000268 0 0 0-6.54391-1.755639 259.780404 259.780404 0 0 0-13.86088-3.166292 188.243528 188.243528 0 0 0-7.488559-1.327566 169.341508 169.341508 0 0 0-8.097253-1.060247 137.152985 137.152985 0 0 0-9.034678-0.652043 115.435079 115.435079 0 0 0-10.510354 0.072248 98.668003 98.668003 0 0 0-12.827726 1.491932c-1.231837 0.216746-2.463675 0.467809-3.688287 0.745966-1.311311 0.294413-2.620815 0.617725-3.923095 0.962712-1.398009 0.382917-2.785181 0.791121-4.165127 1.242675-0.581601 0.182428-1.155976 0.37208-1.737577 0.570763-0.467809 0.166172-0.946456 0.332343-1.414265 0.503933-1.788151 0.641206-3.549209 1.334791-5.295817 2.082564-1.614755 0.686361-3.209641 1.414265-4.790077 2.176487a124.43002 124.43002 0 0 0-4.363811 2.248735c-1.345629 0.738741-2.691258 1.500963-4.011599 2.283053a130.054567 130.054567 0 0 0-7.170666 4.611263 141.697417 141.697417 0 0 0-6.307296 4.632936 151.82666 151.82666 0 0 0-5.702215 4.641968 189.881764 189.881764 0 0 0-10.199685 9.356184c-1.587661 1.562374-3.150036 3.142811-4.694348 4.748534-1.528056 1.57863-3.029019 3.18616-4.513726 4.808139a299.732031 299.732031 0 0 0-6.587259 7.428954 401.138253 401.138253 0 0 0-7.74143 9.312835 656.728243 656.728243 0 0 1-8.315805 9.57293 210.432856 210.432856 0 0 1-6.717306 7.239302 201.188658 201.188658 0 0 1-6.726338-7.239302 618.749 618.749 0 0 1-7.672793-8.826964 240.461149 240.461149 0 0 0-7.271814-8.966042 253.455046 253.455046 0 0 0-14.928351-16.107808 241.06623 241.06623 0 0 0-5.467407-5.24163 213.055478 213.055478 0 0 0-5.816006-5.182026 194.339498 194.339498 0 0 0-3.941157-3.280083 157.061066 157.061066 0 0 0-10.448943-7.775747 128.687264 128.687264 0 0 0-8.52352-5.294011 108.463096 108.463096 0 0 0-7.880507-4.045917 124.493237 124.493237 0 0 0-3.047082-1.343822 95.268709 95.268709 0 0 0-6.943083-2.620816c-0.946456-0.321506-1.88388-0.633981-2.830336-0.946455-0.962712-0.242033-1.927229-0.485871-2.889941-0.718873a100.512146 100.512146 0 0 0-6.769687-1.457614 101.140708 101.140708 0 0 0-6.44818-0.964518 108.269831 108.269831 0 0 0-6.276591-0.570763 119.39791 119.39791 0 0 0-11.144335-0.184234c-1.701453 0.043349-3.401099 0.131854-5.111583 0.245645-1.614755 0.102954-3.236734 0.242033-4.853294 0.406398a162.147362 162.147362 0 0 0-9.025647 1.197519c-2.759894 0.451553-5.519787 0.964518-8.254394 1.546119-2.56121 0.536445-5.111583 1.11624-7.6457 1.752026-2.396845 0.590632-4.773821 1.224612-7.143573 1.885687-2.248735 0.623144-4.48844 1.27338-6.726337 1.941679a525.223286 525.223286 0 0 0-12.325598 3.905033c-2.447419 0.798346-4.894837 1.616561-7.342256 2.431162-1.640041 0.549089-3.289114 1.092759-4.929156 1.632817-1.57863 0.520189-3.159067 1.022317-4.739503 1.537087-2.543148 0.805571-5.093521 1.594886-7.654731 2.349884-1.918198 0.57257-3.843621 1.112627-5.770851 1.632816-0.615919-2.239704-1.242675-4.730472-1.892911-7.428954a802.139234 802.139234 0 0 1-2.750863-12.029379 762.180381 762.180381 0 0 0-1.519025-8.861282c-0.62495-3.522116-1.284218-7.046037-2.004897-10.562734a255.615277 255.615277 0 0 0-2.656939-11.639237 192.079925 192.079925 0 0 0-3.731636-12.854819 154.899028 154.899028 0 0 0-2.481737-6.959339 137.754454 137.754454 0 0 0-3.047082-7.335031 131.92761 131.92761 0 0 0-3.784016-7.734205 118.512866 118.512866 0 0 0-4.746728-8.149633 110.961089 110.961089 0 0 0-7.177891-10.015452 105.4991 105.4991 0 0 0-16.116839-16.12587 112.686022 112.686022 0 0 0-10.015452-7.179697 122.53169 122.53169 0 0 0-8.15144-4.739503 121.624971 121.624971 0 0 0-7.741429-3.784017 140.268702 140.268702 0 0 0-7.326-3.047081 152.736991 152.736991 0 0 0-6.96837-2.481737 166.471436 166.471436 0 0 0-6.59629-2.041021 198.221049 198.221049 0 0 0-6.249498-1.692421 233.77816 233.77816 0 0 0-5.953278-1.432327 317.683983 317.683983 0 0 0-5.693184-1.224613 435.70014 435.70014 0 0 0-10.562734-2.013927 952.311402 952.311402 0 0 0-8.85225-1.508188 892.334291 892.334291 0 0 1-12.029379-2.750863c-2.830336-0.686361-5.416833-1.345629-7.743236-1.981416 0.364855-1.230031 0.738741-2.472706 1.110821-3.695512 0.435297-1.390784 0.868788-2.768925 1.311311-4.148871a826.703732 826.703732 0 0 1 2.10785-6.395801c0.939231-2.823111 1.882074-5.633579 2.82853-8.454883a1330.702208 1330.702208 0 0 0 3.688287-11.212971 438.602725 438.602725 0 0 0 3.195191-10.277353 287.005454 287.005454 0 0 0 3.115718-11.290638 220.222531 220.222531 0 0 0 2.805049-12.629042c0.435297-2.30834 0.816408-4.627518 1.15417-6.95392a145.075035 145.075035 0 0 0 1.224612-11.500159c0.095729-1.388978 0.166172-2.768925 0.209521-4.157902a120.727283 120.727283 0 0 0-0.433491-15.388936 113.948565 113.948565 0 0 0-0.606888-5.102552 106.198105 106.198105 0 0 0-2.10785-10.875209c-0.243839-0.964518-0.487678-1.927229-0.720679-2.891747-0.312475-0.939231-0.633981-1.88388-0.94465-2.821305a101.352035 101.352035 0 0 0-1.806213-4.974311 107.834534 107.834534 0 0 0-5.946053-12.558599 115.841477 115.841477 0 0 0-4.13081-6.892509 136.038551 136.038551 0 0 0-6.005658-8.565063 162.747024 162.747024 0 0 0-8.368185-10.109375 209.851256 209.851256 0 0 0-4.208477-4.566106 218.257371 218.257371 0 0 0-4.251826-4.329493 233.395243 233.395243 0 0 0-4.289756-4.166934 321.69197 321.69197 0 0 0-11.716904-10.521191 430.772791 430.772791 0 0 0-8.400697-6.95392 635.028398 635.028398 0 0 1-9.563898-8.313999 192.663332 192.663332 0 0 1-7.239302-6.719113c1.986834-1.961547 4.417997-4.217508 7.239302-6.726337a796.169699 796.169699 0 0 1 8.817932-7.672794c1.388978-1.067472 2.759894-2.143975 4.121778-3.245764 1.63101-1.318536 3.245765-2.664164 4.853295-4.026049a247.30489 247.30489 0 0 0 10.804766-9.73007 232.381958 232.381958 0 0 0 10.535641-10.667495 207.412868 207.412868 0 0 0 5.182026-5.8142 176.560942 176.560942 0 0 0 3.289114-3.939351 155.442699 155.442699 0 0 0 5.163963-6.728143c0.885044-1.222806 1.753833-2.463675 2.604559-3.724412 0.903107-1.327567 1.77912-2.671389 2.638878-4.03508 0.919362-1.475676 1.806213-2.967608 2.655133-4.486633a99.708381 99.708381 0 0 0 2.700288-5.059203c0.460584-0.937425 0.910331-1.874849 1.35466-2.819499 0.460584-1.007867 0.912138-2.022959 1.345629-3.047081a91.939859 91.939859 0 0 0 2.622621-6.943083c0.310669-0.946456 0.632175-1.882074 0.94465-2.82853 0.234808-0.962712 0.478646-1.927229 0.720679-2.889941 0.892269-3.576302 1.596692-7.214015 2.107851-10.866178a111.443348 111.443348 0 0 0 0.606887-5.104358 120.73812 120.73812 0 0 0 0.433491-15.387129 128.07857 128.07857 0 0 0-0.52922-8.160471 145.075035 145.075035 0 0 0-0.903107-7.497591 169.993551 169.993551 0 0 0-2.499799-13.452675c-0.451553-2.046439-0.946456-4.08746-1.45942-6.128481a280.559079 280.559079 0 0 0-3.115717-11.290638 427.620949 427.620949 0 0 0-3.195191-10.277352 1269.924943 1269.924943 0 0 0-3.688287-11.212971c-0.894075-2.682226-1.797182-5.355422-2.689452-8.037648a612.147291 612.147291 0 0 1-2.178293-6.596291 347.94889 347.94889 0 0 1-1.856787-5.946053c1.249899-0.242033 2.577466-0.487678 3.973669-0.720679a244.398693 244.398693 0 0 1 12.533313-1.692422c2.691258-0.296219 5.380709-0.590632 8.071966-0.894075 2.559404-0.859757 5.127839-1.710484 7.69808-2.56121 2.03199-0.67733 4.078429-1.309504 6.135706-1.92723 2.351689-0.693586 4.721441-1.361885 7.080355-2.022958 3.603395-0.99703 7.214015-1.970578 10.806573-2.97664 3.063337-0.857951 6.11945-1.72674 9.155694-2.655133 1.676166-0.511158 3.341494-1.031348 5.006823-1.57863a168.772551 168.772551 0 0 0 5.328329-1.833306 149.059542 149.059542 0 0 0 5.756401-2.185518 141.305469 141.305469 0 0 0 6.301877-2.707514 121.160774 121.160774 0 0 0 4.390904-2.127719 110.65042 110.65042 0 0 0 11.308701-6.578228l12.811469-8.541581a10503.707111 10503.707111 0 0 0 8.530744-12.809664 104.428016 104.428016 0 0 0 4.68893-7.723367 118.530928 118.530928 0 0 0 4.026049-7.976237 140.0935 140.0935 0 0 0 2.709319-6.292846c0.771253-1.909167 1.493738-3.829172 2.185518-5.763626a217.856392 217.856392 0 0 0 3.411937-10.335152c0.47684-1.562374 0.937425-3.13378 1.398009-4.71241 0.42446-1.475676 0.841695-2.960383 1.25893-4.443284 0.99703-3.592558 1.968772-7.203178 2.976639-10.797542 0.650237-2.369752 1.318536-4.728666 2.022959-7.091192a186.690185 186.690185 0 0 1 1.920004-6.135706c0.859757-2.568435 1.708678-5.138676 2.568435-7.699886 0.296219-2.689451 0.599663-5.380709 0.894076-8.070161 0.512965-4.584169 1.076503-8.792645 1.694228-12.51525a133.443023 133.443023 0 0 1 0.590631-3.334269c2.073533 0.485871 4.13984 1.024123 6.188086 1.587661 2.335434 0.643012 4.650999 1.327567 6.968371 2.048246 2.517861 0.773059 5.024885 1.580436 7.531908 2.422131 3.845428 1.276993 7.708917 2.535923 11.579632 3.742474 4.148871 1.284218 8.306774 2.525086 12.480933 3.688287 2.178293 0.606888 4.365617 1.188488 6.551135 1.753833a264.984104 264.984104 0 0 0 13.86991 3.168098c2.490768 0.485871 4.990567 0.9302 7.497591 1.318535 2.691258 0.426266 5.38974 0.78209 8.097253 1.067472 3.010957 0.312475 6.021914 0.538252 9.043709 0.652043a126.109798 126.109798 0 0 0 5.033916 0.086698 105.239006 105.239006 0 0 0 5.485469-0.166171c2.022959-0.10476 4.045917-0.26732 6.058038-0.493096a104.857895 104.857895 0 0 0 6.769687-0.998836 87.478512 87.478512 0 0 0 7.595126-1.717709 82.244107 82.244107 0 0 0 4.139841-1.224612c0.581601-0.182428 1.155976-0.381111 1.719514-0.570764 0.467809-0.157141 0.937425-0.330537 1.405234-0.496708a102.878285 102.878285 0 0 0 10.078669-4.260857 108.963417 108.963417 0 0 0 4.381873-2.248735 104.200433 104.200433 0 0 0 4.018824-2.283054 126.998455 126.998455 0 0 0 7.177891-4.607649 151.497929 151.497929 0 0 0 6.31994-4.634743 165.098714 165.098714 0 0 0 5.702215-4.641968 193.129335 193.129335 0 0 0 10.197879-9.365215c1.587661-1.562374 3.160873-3.142811 4.696154-4.748534 1.528056-1.57863 3.029019-3.184354 4.513726-4.808139 2.239704-2.438388 4.436059-4.9129 6.587259-7.42173a363.572633 363.572633 0 0 0 7.74143-9.320059 783.450347 783.450347 0 0 1 8.32303-9.583767 192.619983 192.619983 0 0 1 6.717306-7.228465 212.482908 212.482908 0 0 1 6.717307 7.228465 678.435311 678.435311 0 0 1 7.681824 8.845026 239.400902 239.400902 0 0 0 7.275426 8.966041 247.263347 247.263347 0 0 0 9.728264 10.804767c1.703259 1.788151 3.437224 3.55824 5.200087 5.294011 1.788151 1.77912 3.61062 3.523922 5.467407 5.234405a178.750072 178.750072 0 0 0 5.806975 5.180219c1.300473 1.119852 2.611784 2.212611 3.941157 3.289114a172.695646 172.695646 0 0 0 6.742594 5.172995 134.380448 134.380448 0 0 0 7.768522 5.239824 116.343604 116.343604 0 0 0 9.563899 5.364453c0.9302 0.460584 1.874849 0.910331 2.823111 1.345629a94.873149 94.873149 0 0 0 10.015451 3.977281c0.9302 0.312475 1.856787 0.615919 2.785181 0.928393 0.944649 0.233001 1.892911 0.47684 2.837561 0.711648 2.239704 0.556314 4.504695 1.042185 6.778717 1.457614 2.13675 0.381111 4.28795 0.702617 6.448181 0.962712 2.082564 0.25287 4.175965 0.444328 6.276591 0.572569 3.71538 0.243839 7.447017 0.294413 11.169621 0.191459a129.171329 129.171329 0 0 0 5.147708-0.25287 126.859376 126.859376 0 0 0 4.844263-0.408204 158.907015 158.907015 0 0 0 9.034678-1.197519 176.954697 176.954697 0 0 0 8.252588-1.546119c2.563016-0.527414 5.095327-1.119852 7.63125-1.753833a291.663677 291.663677 0 0 0 13.851848-3.827365 505.33688 505.33688 0 0 0 12.359916-3.914064c2.440194-0.798346 4.887613-1.614755 7.326001-2.431163a912.697537 912.697537 0 0 1 9.652402-3.159067c2.543148-0.807377 5.093521-1.596692 7.654732-2.351689 1.916392-0.565345 3.83459-1.110821 5.77085-1.632817 0.606888 2.248735 1.242675 4.730472 1.882074 7.439792 0.876013 3.644938 1.788151 7.672793 2.759894 12.029379 0.493096 2.949546 0.989805 5.908123 1.509994 8.859476 0.626756 3.523922 1.295055 7.047843 2.013928 10.56454 0.79654 3.896002 1.676166 7.775747 2.656939 11.639237 0.52922 2.091595 1.092759 4.174158 1.683391 6.247691 0.641206 2.214417 1.318536 4.408966 2.039214 6.605321 0.78209 2.333627 1.60753 4.66003 2.483543 6.959339a157.523456 157.523456 0 0 0 3.047082 7.335032 134.781427 134.781427 0 0 0 3.784016 7.734204 122.150579 122.150579 0 0 0 4.748535 8.149634 113.036428 113.036428 0 0 0 7.17789 10.015451 104.913887 104.913887 0 0 0 16.125871 16.125871 112.938892 112.938892 0 0 0 10.015451 7.16886 118.624851 118.624851 0 0 0 8.142409 4.748534 129.830597 129.830597 0 0 0 7.741429 3.784016c2.413101 1.083728 4.860519 2.100626 7.335032 3.047082 2.299309 0.885044 4.629324 1.708678 6.961145 2.481736 2.18913 0.720679 4.39271 1.40704 6.605321 2.041021 2.073533 0.597857 4.157903 1.163201 6.249498 1.692422a236.85956 236.85956 0 0 0 11.63743 2.655133c3.50586 0.720679 7.031588 1.381753 10.564541 2.004897 2.949546 0.52922 5.900898 1.024123 8.859475 1.519025 4.356586 0.973549 8.386247 1.874849 12.029379 2.750862 2.823111 0.67733 5.416833 1.336598 7.734205 1.970579-0.35763 1.240868-0.72971 2.474512-1.110821 3.706349-0.426266 1.388978-0.866982 2.767118-1.311311 4.148872-0.684555 2.134944-1.396203 4.260857-2.100626 6.386769-0.944649 2.821305-1.892911 5.64261-2.82853 8.463915-1.242675 3.731636-2.492574 7.47411-3.697318 11.212971a435.768777 435.768777 0 0 0-3.187966 10.277352 303.320977 303.320977 0 0 0-3.122942 11.290638 257.901942 257.901942 0 0 0-1.457614 6.128481 180.888629 180.888629 0 0 0-1.336598 6.500561 170.060381 170.060381 0 0 0-1.163201 6.952114 145.075035 145.075035 0 0 0-1.226419 11.500159 132.072107 132.072107 0 0 0-0.205908 4.157902 118.160654 118.160654 0 0 0 0.440716 15.38713c0.157141 1.710484 0.35763 3.411937 0.599663 5.104358a105.175788 105.175788 0 0 0 2.109656 10.866178l0.727904 2.889941 0.939231 2.82853a101.37371 101.37371 0 0 0 3.731636 9.511518 122.56962 122.56962 0 0 0 1.990447 4.174158c0.64843 1.293249 1.336598 2.579272 2.028377 3.843622a123.259594 123.259594 0 0 0 6.213374 10.015451 135.841674 135.841674 0 0 0 3.932125 5.44212c1.35466 1.77912 2.745444 3.534759 4.177771 5.252468a177.113643 177.113643 0 0 0 8.400697 9.415789c1.396203 1.468451 2.812274 2.917034 4.244601 4.34033a273.876091 273.876091 0 0 0 4.28795 4.165127c1.432327 1.35466 2.88091 2.700289 4.338524 4.018824a317.85738 317.85738 0 0 0 7.387411 6.49153c2.758087 2.360721 5.563136 4.678092 8.391666 6.961145 3.502247 3.018182 6.722725 5.788913 9.553061 8.304968z m39.46395-67.429547c-17.652121-14.120974-31.774901-28.250979-35.315078-38.839-3.522116-14.120974 3.540178-35.307853 10.597052-56.492927 10.588021-31.783932 21.185073-60.033104 7.0641-88.276858-14.120974-24.718026-45.904906-31.773094-77.679807-38.839-21.185073-3.532953-42.371953-7.064099-52.969005-17.661152-10.588021-10.588021-14.130005-31.774901-17.652121-52.959974-7.064099-31.783932-14.120974-63.558832-38.849837-77.678-21.185073-14.130005-56.491121-3.534759-88.267827 7.055068-21.185073 7.064099-42.371953 14.130005-56.491121 10.598858-10.598858-3.534759-28.252785-21.18688-38.849837-35.307853C564.959974 24.718026 543.774901 0 512 0c-31.783932 0-52.969005 24.718026-74.155885 49.437859-14.120974 17.653927-28.250979 31.774901-38.839 35.307853-10.597052 3.532953-35.307853-3.534759-56.492927-10.598858-31.783932-10.589827-63.558832-17.653927-88.278664-7.055069-24.718026 17.653927-31.774901 49.436052-35.315079 81.210953-7.056875 21.185073-10.598858 42.371953-17.644895 52.970812-10.598858 7.055068-31.782126 10.588021-52.969006 17.644895-31.776707 3.541984-63.558832 10.597052-81.212759 35.315079-14.119168 28.243754-3.532953 56.492927 7.0641 88.276858 7.056875 21.185073 14.12278 42.371953 10.589827 56.492927-3.532953 10.588021-21.18688 28.252785-35.315078 38.839C24.721639 459.029189 0.001806 480.214262 0.001806 511.998194c0 31.776707 24.719832 52.96178 49.428828 74.146853 17.661152 14.120974 31.782126 28.250979 35.315078 38.849838 3.532953 14.120974-3.532953 35.307853-10.589827 56.492927-10.597052 31.783932-21.185073 60.033104-7.0641 88.266021 14.120974 24.727057 45.895875 31.785738 77.670776 38.851643 21.185073 3.523922 42.371953 7.062293 52.969005 17.659346 10.588021 10.588021 14.130005 31.774901 17.662958 52.96178 7.064099 31.783932 14.120974 63.557026 38.839 77.678 21.185073 14.120974 56.492927 3.534759 88.278664-7.064099 21.185073-7.055068 42.370147-14.119168 56.492927-10.597052 10.589827 3.541984 28.250979 21.195911 38.839 35.325915 21.18688 24.710801 42.370147 49.428827 74.155885 49.428828 31.774901 0 52.959974-24.719832 74.146854-49.428828 14.120974-17.662958 28.250979-31.783932 38.849837-35.325915 10.586215-3.522116 35.307853 3.541984 56.491121 10.597052 31.776707 10.598858 63.557026 17.661152 88.267827 7.064099 24.727057-14.119168 31.785738-45.894068 38.849837-77.678 3.522116-21.18688 7.064099-42.373759 17.652121-52.96178 10.597052-10.597052 31.783932-14.135424 52.969005-17.659346 31.774901-7.065906 63.557026-14.12278 77.679807-38.851643 14.120974-24.708995 3.523922-56.48209-7.0641-88.266021-7.056875-21.185073-14.119168-42.371953-10.597052-56.492927 3.540178-10.598858 21.185073-28.252785 35.315078-38.849838 24.719832-21.185073 49.430634-42.370147 49.430634-74.146853 0-31.783932-24.712608-52.969005-49.430634-74.155885z" p-id="7113"></path><path d="M817.571518 410.805105c-10.112987-3.635907-21.855178 1.215581-25.491085 11.743998-13.76515 36.425899-27.519463 72.853605-41.286419 109.272279-13.756119-36.418675-27.521269-72.84638-41.286419-109.272279-5.658866-15.379904-31.567186-15.379904-37.233276 0-13.757925 36.425899-27.523075 72.853605-41.279194 109.272279-13.763344-36.418675-27.521269-72.84638-41.284613-109.272279-3.637713-10.528416-14.9717-15.788109-25.500116-11.743998-10.519385 4.054948-15.379904 15.381711-11.734967 25.501923 19.971298 52.891338 39.933565 105.773645 59.904864 158.655952 5.658866 15.379904 31.567186 15.379904 37.235082 0 13.756119-36.427706 27.519463-72.844574 41.279194-109.281311 13.763344 36.436737 27.5303 72.853605 41.286419 109.281311 2.826723 7.690855 10.52661 12.957773 18.616639 12.957772 8.496426 0 15.786302-5.266917 18.618444-12.957772 19.971298-52.882307 39.931759-105.76642 59.903057-158.655952 4.038692-10.519385-1.221-21.855178-11.74761-25.501923z" fill="#231815" p-id="7114"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1649483385067" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="25303" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M718.8 680.8H305.2c-25 0-38-31.6-23.6-48.6 34.4-40.8 58.8-58 58.8-170.4 0-103 54.2-139.6 99.2-157.6 3.2-1.4 5.8-3.2 8.2-5.6 2.4-2.4 4-5.2 5.2-8.4 7.8-25.8 29.8-48.2 59-48.2s51.2 22.4 59 48.2c1.2 3.2 2.8 6 5.2 8.4 2.4 2.4 5 4.4 8.2 5.6 44.8 17.8 99.2 54.4 99.2 157.6 0 112.4 24.4 129.6 58.8 170.4 14.2 17 1.2 48.6-23.6 48.6zM512 782c-44 0-79.2-18.6-83.8-58.2v-1.8c0-0.6 0.2-1.2 0.4-1.8 0.2-0.6 0.4-1.2 0.8-1.6 0.2-0.6 0.6-1 1-1.4s0.8-0.8 1.4-1.2c0.4-0.4 1-0.6 1.6-0.8 0.6-0.2 1.2-0.4 1.6-0.6 0.6-0.2 1.2-0.2 1.8-0.2h150.8c0.6 0 1.2 0 1.8 0.2l1.8 0.6c0.6 0.2 1 0.6 1.6 0.8 0.4 0.4 1 0.8 1.4 1.2 0.4 0.4 0.8 1 1 1.4 0.2 0.6 0.6 1 0.8 1.6 0.2 0.6 0.2 1.2 0.4 1.8v1.8c-6 38.8-40.8 58.2-84.4 58.2z m0-708.8C270 73.2 73.2 270 73.2 512S270 950.8 512 950.8 950.8 754 950.8 512 754 73.2 512 73.2z" p-id="25304" fill="#707070"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647918288894" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6295" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M368.992 830.304l0 1.184c-6.496 0-11.264 0.512-14.048 0.512l-3.296 0c-69.248 0-124.992-55.36-126.944-124.512-1.056-33.952 11.2-66.816 34.464-91.488 23.264-24.672 54.72-39.136 88.64-40.096 0.32 0 3.744-0.192 4.032-0.192 26.592 0 52.064 8.32 73.984 24.288 30.752 10.848 61.824-4.32 92.192-45.024 30.208-40.416 36.576-72.448 18.88-95.232-6.304-4.544-12.352-9.92-18.368-16.32-1.056-1.024-2.048-2.144-2.976-3.296-19.872-22.432-31.264-50.816-32.16-80.064-1.92-70.176 53.376-128.8 123.232-130.784 0.32 0 3.584-0.064 3.904-0.064 58.784 0 110.752 41.664 123.552 99.072 10.336 31.872 36.704 158.176-90.176 327.84C526.528 813.312 412.576 830.304 368.992 830.304zM364.896 766.208c18.976 0.416 118.592-2.24 227.616-148.416 111.36-148.928 86.016-253.376 79.776-272.832-7.104-31.168-32.8-51.776-61.888-51.776-36.704 1.024-64.096 30.144-63.168 64.992 0.576 18.496 9.312 31.968 16.544 39.968 0.224 0.256 0.48 0.544 0.672 0.8 4.032 4.352 7.808 7.648 11.552 10.08 2.368 1.568 4.576 3.424 6.432 5.568 19.616 22.112 57.6 83.84-13.28 178.624-45.792 61.28-92.704 74.112-124 74.144-16.096 0-32.096-3.296-47.52-9.728-2.656-1.12-5.184-2.592-7.456-4.384-7.968-6.272-21.088-13.76-38.432-13.76-18.976 0.544-34.56 7.52-46.048 19.712-11.52 12.256-17.6 28.288-17.088 45.12 0.96 34.4 28.64 61.248 62.976 61.248 0.16 0 0.192 0.032 0.064 0.064 1.184-0.192 2.496-0.352 3.264-0.416C358.336 765.184 361.696 765.44 364.896 766.208z" p-id="6296"></path><path d="M512 963.328c-60.224 0-118.624-11.744-173.6-34.88-16.288-6.88-23.936-25.632-17.056-41.92 6.848-16.32 25.632-23.904 41.92-17.088 47.072 19.808 97.12 29.888 148.768 29.888 211.744 0 384-172.256 384-384 0-211.744-172.256-384-384-384-211.744 0-384 172.256-384 384 0 72.384 20.256 142.88 58.56 203.904 9.376 14.976 4.864 34.72-10.08 44.096-14.976 9.408-34.72 4.896-44.128-10.08C87.616 681.984 64 599.712 64 515.328c0-247.008 200.96-448 448-448s448 200.96 448 448C960 762.336 759.04 963.328 512 963.328z" p-id="6297"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647918223592" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5491" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M327.04 85.333333h369.92C841.472 85.333333 938.666667 186.794667 938.666667 337.749333v348.501334C938.666667 837.205333 841.472 938.666667 696.874667 938.666667h-229.546667a32 32 0 0 1 0-64h229.546667c107.989333 0 177.792-73.941333 177.792-188.416V337.749333c0-114.474667-69.802667-188.416-177.749334-188.416H327.04C219.093333 149.333333 149.333333 223.274667 149.333333 337.749333v348.501334c0 114.474667 69.76 188.416 177.706667 188.416a32 32 0 0 1 0 64C182.442667 938.666667 85.333333 837.205333 85.333333 686.250667V337.749333C85.333333 186.794667 182.442667 85.333333 327.04 85.333333z m-51.114667 381.098667a31.914667 31.914667 0 0 1 42.325334-16.042667 31.914667 31.914667 0 0 1 16.042666 42.282667A47.061333 47.061333 0 1 0 424.192 512c0-25.898667-21.077333-46.933333-47.018667-46.933333a32 32 0 0 1 0-64c50.048 0 91.904 33.408 105.728 78.933333h242.858667a32 32 0 0 1 32 32v79.018667a32 32 0 0 1-64 0V544h-56.704v47.018667a32 32 0 0 1-64 0V544h-90.154667a110.72 110.72 0 0 1-105.728 79.018667 111.104 111.104 0 0 1-101.248-156.544z" p-id="5492"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647918689305" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7789" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M423.952 832.176 263.864 832.176c-79.543 0-144.079-64.535-144.079-144.079L119.785 335.903c0-79.544 64.536-144.079 144.079-144.079l160.088 0c8.505 0 16.009 7.504 16.009 16.009 0 14.008 6.503 48.026-16.009 48.026L263.864 255.859c-44.024 0-80.044 36.02-80.044 80.044l0 352.193c0 44.024 36.02 80.044 80.044 80.044l144.079 0c12.507 0 32.018-2.501 32.018 16.009C439.96 798.157 446.464 832.176 423.952 832.176zM894.711 534.513l-272.15 272.149c-6.004 6.003-14.008 9.505-22.512 9.505-17.51 0-32.018-14.508-32.018-32.018L568.031 640.07 343.908 640.07c-17.51 0-32.018-14.508-32.018-32.018L311.89 415.947c0-17.51 14.508-32.018 32.018-32.018l224.124 0L568.032 239.851c0-17.51 14.508-32.018 32.018-32.018 8.504 0 16.508 3.502 22.512 9.505l272.15 272.149c6.002 6.003 9.504 14.007 9.504 22.512S900.713 528.509 894.711 534.513z" p-id="7790"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647917958625" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2416" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M543.16 894.15H188.58a42.92 42.92 0 0 1-42.87-42.87V244.79H780.2a34.12 34.12 0 0 1 34.08 34.08v208.36a24 24 0 0 0 48 0V278.87a82.17 82.17 0 0 0-82.08-82.08h-54.13v-24.07a91 91 0 0 0-90.87-90.87H188.58a91 91 0 0 0-90.87 90.87v678.56a91 91 0 0 0 90.87 90.87h354.58a24 24 0 0 0 0-48zM145.71 172.72a42.92 42.92 0 0 1 42.87-42.87H635.2a42.92 42.92 0 0 1 42.87 42.87v24.07H145.71z" fill="#677787" p-id="2417"></path><path d="M652.41 410.34a25.06 25.06 0 0 0-25.07-25.07H263.73a25.07 25.07 0 0 0-25.08 25.07 25.08 25.08 0 0 0 25.08 25.08h363.61a25.07 25.07 0 0 0 25.07-25.08zM263.73 511.47a25.08 25.08 0 0 0-25.08 25.08 25.08 25.08 0 0 0 25.08 25.08h237.32a25.08 25.08 0 0 0 25.08-25.08 25.08 25.08 0 0 0-25.08-25.08zM883.94 791.9c18.87-26 30.19-57.44 32.29-91.83 4.19-68.76-32.29-131.23-88.47-163.52a175.06 175.06 0 0 1 17.61 217.19l-109-108.17 42.35-41.93-42.35-41.93-22.22 22.22-60.8 18.45-64.57 64.15 63.32 62.9 42.34-41.93 110.7 109.43A180.88 180.88 0 0 1 685.62 833a164.78 164.78 0 0 1-38.62-6.72c-7.54-2.09-12.16 8-5.45 12.16a180.76 180.76 0 0 0 89.31 27.68A178.4 178.4 0 0 0 842 833.41l42.34 41.93 41.93-41.51zM649.93 882a28.87 28.87 0 1 0 28.86 28.86A28.58 28.58 0 0 0 649.93 882z" fill="#677787" p-id="2418"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1647916552273" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4906" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M864 643.296l-77.504-53.056v-125.376L864 412.32v230.976zM192 735.968V288.032L191.968 288 512 288.032h210.496v158.432c-0.032 0.512-0.192 1.024-0.192 1.536v256c0 0.384 0.224 0.704 0.224 1.088V736L192 735.968z m719.008-412.224a31.968 31.968 0 0 0-32.96 1.76l-91.552 62.048v-99.52A64.064 64.064 0 0 0 722.528 224H191.968A64.064 64.064 0 0 0 128 288.032V735.968C128 771.296 156.704 800 191.968 800h530.56a64.064 64.064 0 0 0 63.968-64.032v-42.592l0.384-25.312 91.04 62.336A32 32 0 0 0 928 704V352a32 32 0 0 0-16.992-28.256z" p-id="4907"></path><path d="M304 352a48 48 0 1 0 0.032 96.032A48 48 0 0 0 304 352" p-id="4908"></path></svg>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 105.79 111.42"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="367.98" y1="297.92" x2="473.77" y2="297.92" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6dbe45"/><stop offset="0.75" stop-color="#306a4b"/><stop offset="1" stop-color="#1e5138"/></linearGradient></defs><title>logo</title><path class="cls-1" d="M472.47,274a9.76,9.76,0,1,0-17.7-1.84l-22.66,13.08a14.23,14.23,0,0,0-18.37-3.57,13.9,13.9,0,0,0-4.1,3.57l-13.43-7.76,20.75-12a6,6,0,0,0,7.82,0l17.77,10.26,4-2.3L426.77,262a5.6,5.6,0,0,0,.1-1.09,6,6,0,1,0-12,0A5.6,5.6,0,0,0,415,262l-22.76,13.14-5.21-3a9.79,9.79,0,0,0-2.09-9.66,48,48,0,0,1,12.05-9.9,47.87,47.87,0,0,1,57.94,7.81,9.82,9.82,0,0,1,2.73-2.36l.37-.18a51.88,51.88,0,0,0-63-8.72,52,52,0,0,0-13.31,11A9.76,9.76,0,1,0,385,275.63l22.63,13.07a14.25,14.25,0,0,0,11.23,19.46v15.5l-20.76-12a6,6,0,0,0-3.91-6.76V284.39l-4-2.3v22.82a5.72,5.72,0,0,0-1,.46,6,6,0,1,0,6,10.4,5.44,5.44,0,0,0,.9-.65l22.76,13.14v6.06a9.78,9.78,0,0,0-6.46,4.67,9.14,9.14,0,0,0-.83,1.93c-1-.2-2.07-.44-3.09-.71a47.79,47.79,0,0,1-33.71-58.85,9.63,9.63,0,0,1-3.42-1.19L371,280a52,52,0,0,0,5,40,51.4,51.4,0,0,0,31.45,24.14c1.23.33,2.46.6,3.7.84a9.75,9.75,0,0,0,9.7,8.73,9.76,9.76,0,0,0,2-19.32V308.16a14.26,14.26,0,0,0,11.23-19.47l13.43-7.75v24a6,6,0,0,0-3.91,6.78l-17.76,10.25v4.61l19.76-11.41a6.45,6.45,0,0,0,.89.63,6,6,0,1,0,6-10.4,6.28,6.28,0,0,0-1-.45V278.63l5.22-3a9.8,9.8,0,0,0,9.39,3,47.76,47.76,0,0,1-21.35,56.78,48.57,48.57,0,0,1-11.84,4.87,9.61,9.61,0,0,1,.68,3.57c0,.12,0,.25,0,.37A51.77,51.77,0,0,0,469.77,277,9.78,9.78,0,0,0,472.47,274Zm-89.73-2a5.77,5.77,0,1,1-2.11-7.89A5.78,5.78,0,0,1,382.74,272Zm43.91,71.86a5.77,5.77,0,0,1-5.78,5.77,5.77,5.77,0,0,1-5.77-5.77,5.67,5.67,0,0,1,.77-2.88,5.77,5.77,0,0,1,10.78,2.88ZM426,302.93a10.28,10.28,0,1,1,3.76-14.05A10.24,10.24,0,0,1,426,302.93Zm40.88-28.81A5.77,5.77,0,0,1,459,272a5.79,5.79,0,0,1,0-5.78,5.67,5.67,0,0,1,2.11-2.1A5.78,5.78,0,0,1,469,272,5.87,5.87,0,0,1,466.9,274.12Z" transform="translate(-367.98 -242.21)"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 170.25 12.58"><defs><style>.a{fill:none;}.b{clip-path:url(#a);}.c{fill:url(#b);}</style><clipPath id="a" transform="translate(-12.26 -1.96)"><path class="a" d="M18.56,2A6.11,6.11,0,0,0,14.12,3.8a6,6,0,0,0-1.86,4.46,6,6,0,0,0,1.86,4.43,6,6,0,0,0,4.44,1.84H33.23V12.44H18.56a4,4,0,0,1-3-1.23,4,4,0,0,1-1.23-3,4,4,0,0,1,1.23-3,4.08,4.08,0,0,1,3-1.24H33.23V2ZM54.4,2l-7.35,5.5L39.72,2h-3.5L46,9.3v5.23H48.1V9.3L57.88,2ZM63,9.3h15.2a1.57,1.57,0,0,1,1.11.46,1.51,1.51,0,0,1,.47,1.1A1.47,1.47,0,0,1,79.3,12a1.5,1.5,0,0,1-1.11.47H63Zm0-5.25h15.2a1.61,1.61,0,0,1,1.58,1.58,1.57,1.57,0,0,1-1.58,1.56H63ZM60.89,2V14.53h17.3a3.67,3.67,0,0,0,3.67-3.67,3.46,3.46,0,0,0-1.11-2.6,3.54,3.54,0,0,0,1.11-2.63A3.54,3.54,0,0,0,80.78,3,3.54,3.54,0,0,0,78.19,2Zm24,0V14.53h21V12.44H87V9.3h18.87V7.19H87V4.05h18.87V2Zm26.06,2.09h15.2a1.54,1.54,0,0,1,1.11.47,1.5,1.5,0,0,1,.47,1.11,1.47,1.47,0,0,1-.47,1.11,1.52,1.52,0,0,1-1.11.45h-15.2ZM108.82,2V14.53h2.09V9.3h12.58a4.18,4.18,0,0,1,4.2,4.19v1h2.09v-1a6.06,6.06,0,0,0-2-4.59,3.88,3.88,0,0,0,1.46-1.33,3.66,3.66,0,0,0,.54-1.94A3.57,3.57,0,0,0,128.71,3,3.57,3.57,0,0,0,126.11,2Zm24,12.57h2.09V2h-2.09ZM137.58,2V14.53h21V12.44H139.67V9.3h18.88V7.19H139.67V4.05h18.88V2Zm24,0V14.53h21V12.44H163.63V9.3h18.88V7.19H163.63V4.05h18.88V2Z"/></clipPath><linearGradient id="b" y1="15.98" x2="1" y2="15.98" gradientTransform="translate(203.95 3672.83) rotate(180) scale(229.48)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#76be71"/><stop offset="1" stop-color="#28a495"/></linearGradient></defs><title>222</title><g class="b"><rect class="c" width="170.25" height="12.58"/></g></svg>
\ No newline at end of file
......@@ -6,6 +6,24 @@
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<script TYPE="text/javascript">
var docEl = document.documentElement;
function setRemUnit () {
var rem = docEl.clientWidth * 10 / 1920; // 可根据不同电脑分辨率进行手动修改(如1920*1080
docEl.style.fontSize = rem + 'px'
}
setRemUnit()
window.addEventListener('resize', setRemUnit)
window.addEventListener('pageshow', function (e) {
if (e.persisted) {
setRemUnit()
}
})
</script>
</head>
<body>
<app-root></app-root>
......
......@@ -6,6 +6,9 @@
@import "~ng-zorro-antd/checkbox/style/index.min.css";
@import "~ng-zorro-antd/button/style/index.min.css";
@import "~ng-zorro-antd/select/style/index.min.css";
@import "~ng-zorro-antd/dropdown/style/index.min.css";
@import "~ng-zorro-antd/tooltip/style/index.min.css";
@import "~ng-zorro-antd/badge/style/index.min.css";
html,
body {
......@@ -89,3 +92,12 @@ body {
padding-bottom: 5px;
}
}
nz-header {
padding: 0 25px;
}
nz-content {
height: calc(100% - 64px);
background: #fff;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment