-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path4f3869d.html
More file actions
356 lines (323 loc) · 90.8 KB
/
4f3869d.html
File metadata and controls
356 lines (323 loc) · 90.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>运维命令 | 万星阁</title><meta name="author" content="牧星"><meta name="copyright" content="牧星"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="ffffff"><meta name="description" content="加密文章,请输入密码查看">
<meta property="og:type" content="article">
<meta property="og:title" content="运维命令">
<meta property="og:url" content="https://wanxingge.site/4f3869d.html">
<meta property="og:site_name" content="万星阁">
<meta property="og:description" content="加密文章,请输入密码查看">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://wanxingge.site/images/System/Shell/sudoers.jpg">
<meta property="article:published_time" content="2025-09-23T08:25:17.602Z">
<meta property="article:modified_time" content="2025-10-19T03:19:49.047Z">
<meta property="article:author" content="牧星">
<meta property="article:tag" content="encryptHigh">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://wanxingge.site/images/System/Shell/sudoers.jpg"><script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "运维命令",
"url": "https://wanxingge.site/4f3869d.html",
"image": "https://wanxingge.site/images/System/Shell/sudoers.jpg",
"datePublished": "2025-09-23T08:25:17.602Z",
"dateModified": "2025-10-19T03:19:49.047Z",
"author": [
{
"@type": "Person",
"name": "牧星",
"url": "https://wanxingge.site"
}
]
}</script><link rel="shortcut icon" href="/images/star_32x32.png"><link rel="canonical" href="https://wanxingge.site/4f3869d.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><meta name="google-site-verification" content="unrt7wzAjaBYT4lgwH2yhe-Row1q9yrg7p85gnivfyI"/><meta name="baidu-site-verification" content="codeva-xudCNuyf54"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><script>
(() => {
const saveToLocal = {
set: (key, value, ttl) => {
if (!ttl) return
const expiry = Date.now() + ttl * 86400000
localStorage.setItem(key, JSON.stringify({ value, expiry }))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) return undefined
const { value, expiry } = JSON.parse(itemStr)
if (Date.now() > expiry) {
localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf = {
saveToLocal,
getScript: (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
Object.entries(attr).forEach(([key, val]) => script.setAttribute(key, val))
script.onload = script.onreadystatechange = () => {
if (!script.readyState || /loaded|complete/.test(script.readyState)) resolve()
}
script.onerror = reject
document.head.appendChild(script)
}),
getCSS: (url, id) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onload = link.onreadystatechange = () => {
if (!link.readyState || /loaded|complete/.test(link.readyState)) resolve()
}
link.onerror = reject
document.head.appendChild(link)
}),
addGlobalFn: (key, fn, name = false, parent = window) => {
if (!true && key.startsWith('pjax')) return
const globalFn = parent.globalFn || {}
globalFn[key] = globalFn[key] || {}
globalFn[key][name || Object.keys(globalFn[key]).length] = fn
parent.globalFn = globalFn
}
}
const activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
const activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', 'ffffff')
}
}
btf.activateDarkMode = activateDarkMode
btf.activateLightMode = activateLightMode
const theme = saveToLocal.get('theme')
const mediaQueryDark = window.matchMedia('(prefers-color-scheme: dark)')
const mediaQueryLight = window.matchMedia('(prefers-color-scheme: light)')
if (theme === undefined) {
if (mediaQueryLight.matches) activateLightMode()
else if (mediaQueryDark.matches) activateDarkMode()
else {
const hour = new Date().getHours()
const isNight = hour <= 6 || hour >= 18
isNight ? activateDarkMode() : activateLightMode()
}
mediaQueryDark.addEventListener('change', () => {
if (saveToLocal.get('theme') === undefined) {
e.matches ? activateDarkMode() : activateLightMode()
}
})
} else {
theme === 'light' ? activateLightMode() : activateDarkMode()
}
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
document.documentElement.classList.toggle('hide-aside', asideStatus === 'hide')
}
const detectApple = () => {
if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {
document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.json","preload":false,"top_n_per_article":3,"unescape":false,"pagination":{"enable":true,"hitsPerPage":8},"languages":{"hits_empty":"未找到符合您查询的内容:${query}","hits_stats":"共找到 ${hits} 篇文章"}},
translate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":100,"highlightFullpage":true,"highlightMacStyle":true},
copy: {
success: '复制成功',
error: '复制失败',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: {"limitCount":100,"languages":{"author":"作者: 牧星","link":"链接: ","source":"来源: 万星阁","info":"著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。"}},
lightbox: 'medium_zoom',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid/dist/infinitegrid.min.js',
buttonText: '加载更多'
},
isPhotoFigcaption: false,
islazyloadPlugin: true,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: true
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: '运维命令',
isHighlightShrink: false,
isToc: true,
pageType: 'post'
}</script><link rel="stylesheet" href="/css/content.css?1"><link rel="stylesheet" href="/css/obsidian.css?1"><link rel="stylesheet" href="/css/icon.css?1"><meta name="generator" content="Hexo 7.3.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><script>(()=>{
const $loadingBox = document.getElementById('loading-box')
const $body = document.body
const preloader = {
endLoading: () => {
if ($loadingBox.classList.contains('loaded')) return
$body.style.overflow = ''
$loadingBox.classList.add('loaded')
},
initLoading: () => {
$body.style.overflow = 'hidden'
$loadingBox.classList.remove('loaded')
}
}
preloader.initLoading()
if (document.readyState === 'complete') {
preloader.endLoading()
} else {
window.addEventListener('load', preloader.endLoading)
document.addEventListener('DOMContentLoaded', preloader.endLoading)
// Add timeout protection: force end after 7 seconds
setTimeout(preloader.endLoading, 7000)
}
if (true) {
btf.addGlobalFn('pjaxSend', preloader.initLoading, 'preloader_init')
btf.addGlobalFn('pjaxComplete', preloader.endLoading, 'preloader_end')
}
})()</script><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img text-center"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/mx.jpg" onerror="this.onerror=null;this.src='/images/mx.jpg'" alt="avatar"/></div><div class="site-data text-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">14</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">18</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">5</div></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><span class="site-page group"><i class="fa-fw fa fa-graduation-cap"></i><span> 博文</span><i class="fas fa-chevron-down"></i></span><ul class="menus_item_child"><li><a class="site-page child" href="/categories/"><i class="fa-fw fa fa-archive"></i><span> 分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/archives/"><i class="fa-fw fa fa-folder-open"></i><span> 归档</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/links/"><i class="fa-fw fa fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/talk/"><i class="fa-fw fa fa-paper-plane"></i><span> 留言板</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url(/images/System/Shell/sudoers.jpg);"><nav id="nav"><span id="blog-info"><a class="nav-site-title" href="/"><span class="site-name">万星阁</span></a><a class="nav-page-title" href="/"><span class="site-name">运维命令</span><span class="site-name"><i class="fa-solid fa-circle-arrow-left"></i><span> 返回首页</span></span></a></span><div id="menus"><div id="search-button"><span class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></span></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><span class="site-page group"><i class="fa-fw fa fa-graduation-cap"></i><span> 博文</span><i class="fas fa-chevron-down"></i></span><ul class="menus_item_child"><li><a class="site-page child" href="/categories/"><i class="fa-fw fa fa-archive"></i><span> 分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/archives/"><i class="fa-fw fa fa-folder-open"></i><span> 归档</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/links/"><i class="fa-fw fa fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/talk/"><i class="fa-fw fa fa-paper-plane"></i><span> 留言板</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><span class="site-page"><i class="fas fa-bars fa-fw"></i></span></div></div></nav><div id="post-info"><h1 class="post-title">运维命令</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2025-09-23T08:25:17.602Z" title="发表于 2025-09-23 16:25:17">2025-09-23</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2025-10-19T03:19:49.047Z" title="更新于 2025-10-19 11:19:49">2025-10-19</time></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-wordcount"><i class="far fa-file-word fa-fw post-meta-icon"></i><span class="post-meta-label">总字数:</span><span class="word-count">12</span><span class="post-meta-separator">|</span><i class="far fa-clock fa-fw post-meta-icon"></i><span class="post-meta-label">阅读时长:</span><span>1分钟</span></span><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title=""><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">浏览量:</span><span id="busuanzi_value_page_pv"><i class="fa-solid fa-spinner fa-spin"></i></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="container post-content" id="article-container"><div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="窃取机密失败QAQ..." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">
<script id="hbeData" type="hbeData" data-hmacdigest="43c56c4447a3f6a1efcbe87398a2c0f0cea960f507783c0e2acd0d18bab8a988">799a9920c8863c6f0fa4d57055a90dae090202ee47574ecdccf1b1ccca3eedac545a0a0e0503c93a0ff4dc623fc1b171f13a04974dea13213485aee0708514e1a22d9b773877230e19969dc79bd092261fd42b8820fa2c6b0733b17588d638815cc59d76f5413f795441d832e6a18373f0ec603a5cb65cb592dc77a0979e74e3a30e65dfc4d8a1901c7ea742692026fecc0b3491a7bd8fdabb8bb1d92b4f5e1ad1a3874dc73cd4c4a484464569e9ab041f1115db5ec967330862635ec02075cb45967f83d5996c2b89f64bdeddced62c973164916db319a984dc062584958864a1fdb2b9b9132940f60727d7b114fbdb3ec0829617215637ecdc924f3f9c0ac70433e15650daad5e0bd23f1d81cdc687db9d77a16c8748186223d76449150605d936a84b0d8df04400e75c683ebe8197e20794cc556890145eafd05c3cfc18b31135211353d2e33b44be8b82968ba2135a72ea182b028e417b5b7bfe39b495b9ea94f14ce040839a52ca00a1a0386d2e7ddb941bce1af19032da422e9587c1f584f6fd4af8e8411b082a5d3db8a3a3790038b0ea18c9cfa0861e31e8416b19ce7c723b7a1a33d96a69c0bbb4abec264a2ce94aa3139d6c53bab97d9346c583a0aba605b83a39a47dc9dfc04412ea04a96aa2e007748f963a2c116776b607911e6abb34a62c9622c14a6ec731054aa37bb6ba95aa58f5b123bcb224df216268c1222521494355a931c5b8a5d2c129b6572d361bfee947ad54661b43620b5eda721618a65c718e4217e2103378c7f4808facf31eae1d578ce7360510d8dbec6e72a568f212eac75b7c34ac56570700aa04ec86ae86270244bca1c75e0ef1e9d16fc2f9d0ab92b8058cad8f39610b1a7431778d6b44addeed8ca01a7e4742f1dc6b50b17990b12199c747a1feb24fd24a4bfa8f3df2ce9d1e1ac136bbf5ce23905ee4fe90bb8dfe87962de7ec10fd95aea3f3c26363bd77180fce2b7ad4c754f16584fb0666b941585d82627915a6a9053aeb9caa0f127c0a4a95ac214c6843c0b49b39304c28a3fb1625acdda90823ea50dca780e1a95011d93312a0395e4439720285d1461ec7e90b1d47f16ece9751202e2984df5beac1e4bf4985625518b37653a68e156a113fb872d7011d73ccb5e04d3e1f2c2cf76d6eb7107f55caa9373344da311662997173e2f14ef621faec9edcf8f6e30f10ce8d7e2f0a74400d84b2c9e9cd5c78d68e54912683418005ce4c28b400325af79510174621a2457cf1c423dd373d4dc0e80fb722ffa6cb0ffe128cc17fe3874cabe37405d8420c5e0fdc4cb8e6dd78e2d6366c6fa44db62a32de3411de4c50bd3f7e793518c43f6f6a7308d4fe12fe0d09f5ace31f40640d6d2aeeff86275c048238446a38a2f13029740b2fccf7f358a7228cc3da889118a4beed5a78b312899109788a87367b22aa7c387fcd5b1c59e677e006b4c04efe09a1214c354d11b61522e67d55cefb3888ed58f50a7a15ea93728b7945baceb52f0563323e0c8cffb637853fd9ff76ba120be9e43375052c3f5fac9d581ed9ea519f694cc9f9f3401619215b92d5c294e0d457b8e9fe4d403d5ea999d6b5f20fb57a8a956ff8fc32269562b029afa53fe53a47efef2f67d8f75a19c3a80864b0ee8c532737accae09e90d6e2ad8b5247f6247b83f7a51588514b0fb6c267cdbac06458fd9f22f707471a00e0a75234722643a8f6a29551e7c91956d8fac374fa4f4730ccb683f4880f603aed4ba672a1145d2e2786c073d856bc0f8119c6b12d2953000c5a7b55a72f93b13c45c305e23ff984c542e01775488e4dfd00f07160cb3fef58c66ff0eb088edbdceda13edd0a428321160b3cc15e09cea449e851b05cc1250293933a16878b22c1b79c8be78de20f5e19897f1fa6f35a79b07612ccb37c1182eb72ce8f382427b4b42232cad9f0ee56235d72e884982625861cb29bb867dee2c717d99f40036096008de90fe5946b8229ac190e519ab136422d62ee03ebe04ad2668d8647e1b9b80751cdb2ad7d276fffd42a8e9e32fd7416b6fc2c2de544981b7dd60b9b167def3bb4a7950c0cf5c9358192b9485b17dbff5edee5dd1a1c8db8297e1120bf33af4beaaaf8f8d4d1450daa19dca45648fd1be21c157467b52f548b0eb79972cc48e5f5e3ad85823fa164b85405a98de68cbe2b43c0005bed347a6f0718b60f66f836d8ccd2d9307226d915e282bd993bfac18bcf10e12afdc4b2717ba0fcec6e9d73ca04736f6f8786583ff4174d84ff237fa05715cb4443cd162787f1dde875b15d46a8787fba1f337223b414e21c927986ca85a5d368fcf2121cff60bb5fc41d7108fea161dc77d4728d75edf900417c85c8cd68313f73d1af4bf507522a5ad20225ae3c39a821a19a1af788c7fe2277a26a961616da72e877b4ac5f87567b1e6786cc55ee34b836c8bdc6e6b5c54ae6b377c670dda8dbf5f638e084466375ab9c2c8f0bef2a653682a3b67a8874436c7bcbb02f11289ce8dcd294897679db73f28c89a5512cc707ada5268a56d5b01502ca04c894f749df0224d3b070b9c11c4c18acbd7b0b8b33d8dc44532234bef6a474d30468efc7872f701c052e7b4e9d0610bfcb9adda5e3975fd80136cf92bf58ff3fa35084b9bbb92b4a3ec0a0f04ccbcc81665eb70f4f642cf4a9fdc562e592a7c6835f445a97fd3bd926ad564924042f68d7417d9fc98fe2b62a550e016d6a8457f949268bf229282daa566f4e5a2eb094afffde57ac17d520f11f63f93e4db1c25ece456982668d943fd9df2f817aadfb75660f1e475cc8e6a735daf170174f2d146ca3a71239f8168dba452bba09a979bcdbd9f72f8f93fdc7fce8865d73bd2971236ef19fa8b8a6b3cc59edd8311e6377350f3edb9b932c24527fad900a8f55a780ec574d1690f1c8d82351de7c853dcae0857682ba769b02281819eb4b966c35a8ab4fed2442cc90045c80d0cd6ceddf4ad720e5456d1529015f3de787c238d6eff6bf11a4051f73417b7a57b741649bf99e1336e6d7ec43d6e2e4f18056d9d9025c02fbadc2e025b2d98265f67d8195665c631ed86ce38b68231b988fcdc8ee294021dd65026710f46c2705d367d623800b06249d9669453824dacc3c4ef2a5389b5544e6d183f51d19adb421ec3710d57428148dc7dd520d2d99f20af393d9f5417dbbbb0296dac948afe2e4d861043b2bce2e09c81934402a5ae2b9a9489fbf768d2c1c4d1d2625b0fcec0fdfdc25eedded16559cc163f4409a6e390db7848cd6871f674ee98d9f0a5c7385c90e76d777ae481c4fb57aa0a45f968522fd3f08ce748d9b505e293d129c1dcf7312a532f5c16f66d854bb12e57ec4c81846dff22abd3e66d4f421c8a0f89510790fcedd8df51d914ee94f87d8976824e0fa31566a3442092523334e4a74aa2ec01c7eceebc5edc720227615765e831dd4a651d320e1eaad1a69cb0e401d9f2248f583d5065434de0291d80484a25a04153b7e4ca96a9386984f294907a89ca0859281b3d7bc5c442a882f8cb1abf33e334983bb9744788e35a2b3be0dbac54bf581dc135dae04a0b9e3238e5ae2264ead47bd533f8718675ce976c7233f1eeceb59bb29d6363abd0dd705596785623b9233ef8fc4b0a03ee52e52d6b88913a8d0f082ac777a5c93bd96a0a463b6372391d67cb64253a05f0d2b3b79c47e78595db5b60ac10e423765c77f7ccb8dc01027077abba638eafc72083bb86fa4a585cdefb6e59c99b4a759796190dd96d1d2fee158324f272862463334d51f8140066d246e0f3202138bc1b6e3fa9531f2d82633cb14532dad6ac17b8beadfadbbf909f4b6bb447fb221f1b4ff007285c82f13b140220fcda24002e2936743667ac139f1a86bc8cba4ab5d8840746f91c6319b8b0d621418a8066db9d6998069c5d8f378b26690b9d941dda49ca489bfc9cd928b10edfe8643b134b2a0066d0f85cb4f11e37621d071cd08e437e549bbf5fcf9954f9a8cc53bf7a8ad02bb6b1641206ecba6fe6f0a4e2257c74e1d10b0ad76199978428ec6b89b9728f359b6e5ff5fd549a1bcc548d5a4731f7395ba5994fe21d1c513e778b92f298b1a5cc233b1a4136dd39c948fcc825fb05986f4146615dd9b7dee6be837f1150fca18e84c1c5de571d53886c3eed19c6e2f2804d144c3f251fd8bd05001fb15b0eb02c448544f3c7798290d42e487da75b1f6692f45ebe1830cc5f3442df7f9101bad16f5b0ee0ab6d0bb71c1d780fd8fecc559d85d205b339e28473f75cb7ae3c562c452c120dcdcc3c06ede5817b7e14435d8a07f9ac3d94d2164d57dfd928f3f7260bcd1b94ba74f586a04cac43ef823115a15b28a7c987c7ae6895339bd46041e1aa11dc0169149548b412951752b37b2be97a5d56fae4bb1553f12cfa846664aeff2d42551fffdffb74136421867dc7525380a0db1e96a23e9f550f74fc14555588dad7c782bdc60ad5e4801583d0f796dd4ae5e4f5e0fe0bd4f8ac545b1bcc15933bfe29e2d1cf977851a8bce2e3ed9012e855f693e60c2c5f7379cdd5c48ddb87f85504ab79ff6058048f1d2fd4106dc04bffd72e9917c7e2409ea5db1e1c631717a86fd0c29b95a1dbde69b764f89883ba29896c6347257ade55101b0ad8918f8dbaa16088a558df3a07071d62e29dc3db934659a4f7966b969d1b4e04dee609a514d649e15ec2f22f9ae5581ef2ded8006fa089e557ebd5cf4a38afe2ce519e2d9c26095c7e26e468de65454290bfef5df8f28d9204f10e6f500ef335b62bd6518397430c5618f6edd97e890a5b7ad04793d9605a6b6f1965608b4945bb0540ce7870fc3a3ce1f445636d0d20887767afc915e7ef95095f8ff6c7939fbc197936c61219ce7f7d7551a4f19a00d0ed36522599e61b705330969ac6a41327c13caa05291db3b1b3a955c27c3906dc32aa6f0ab1239c83c3f2362de569b94f479ed31e3259f746ef93dc947c4000d9edc752ae27e1dbd3d021011bf1f191c8b676e23e52d431573733e89669da0d464104746986c67e8407acd96a178d275eedc3ce837451da8d313a66c5a2b0852a17c1ace959b6019ecfe38a6a9ac6067528a8da9b45f0a3c288766d5ce7d6796dee9d53e2e51c5c85ea6aa65451d1c139ba4d94e159ff5e9dd4c98a6ad15f50c267c0ab2e3602e660aece382dfa92e59fbf04577e3d29c4720375ac9499f406cde2e394bc59cae98135a5d43bb7762a2813c93243e7eb7cb703ab966ff578042262ac23c1514e771e226d9b6c165aaa71fd73008fbc01fe4c9a29b2524f3a8b3baa915fd02557c0fcfa3b2866355e0df63648a907a98c3d279ffd6d39afa30a78292c7b37aa0678789b8d5eaab73c348310054dfd4cff4c8744b914b37ba787abb027b0888c500b2c95d6a90d7504bfb060df0ecacb8c9741287c2667d1a3012021d1d9cf027db4cae01664ea9a0309da3c63d0dbe88c568828c7cdf20fdcc3c0c5e85ac9a2b3c0ee69e711b7f9144d3960d6d1572cf058b6ffa6b54b712351b8407af72b08d0e88ddb1c6b70e9b0a3af27535485bb5496f1ccf18dd45684b6398ee7a788738c0922f0a270528c97b7469771391339e2a42875cb83baee366ac8480b5743eff67accfd66dd19387623b31410a29c93cb88e4fe5ec94e517d1b9cdaad37ff8f9c4e0e0ffe07a044321a61e842ea9126ae5bf8b690919cd8bf6ee4269a90d7bbcfae5190ef7faee6f467aff37f635085f60b6529ed82488125fba0371a55c9c09941d70137dbef2787f6768f225962e28d2163a5acd83ebcd9acd716017fb7e9ebabc98c0cee6f70ca376572613ac195cc48097f5d98c08d017a5cda4bd9814fb89f936c37d5c4255d0862b44a80151402c4d42d57dc4d99c869e90f29fab518bc7bf2a6675702ff64eec5104467f04480c8cd5a6b5af7da8dc3815478db524181151dcf38ec432f547dc5d60b053763394818c4c81d64472c4638c1b8331c0eade68ea77ac06af0e8520f24af4d953598009ed3704407fadf6fabcab5377af850ac7f49cc142fcf6d59b95ae32213b972f5ba3e6b3ecd8429529b61611c7ca35332f20eeb7901561e3be62f42eb2fc0d5f52f13149aabe29cc4ace55e412b808f953118eb9551c2b3cb86e5d90d4efdcc8db35ada8217b110e573d662b133899f1d9ab83b7f0ae33ea4b663192bf394e204d6ef29f1c8255c98fdd3d6466d5cf5bf8a13c856ae69564f38c1fcf512e08d532e53609c8ddf7a1fe6e79d7ab0c656deeb4002e93c067942e363322837b1e1bd32f417dbaeccb384e6f3272c48ce22191ab410d5a8284fabd5bbf049b03f391f4cb4b79c87ac05d2fe70e483661b947c32e442305d375ae0e277fb8316d6eb2ec573ccfc69c54a9737c67367324f828f269ccf2c7c5877780e49812256c06dab63db65df2d831d95d909bac50b7ebbe1cf4a81a5cd37213adf2c28da02202c2685a13622fd1afbc3c2c8ce2460c16d994a01ca72b3ac29cbabbcaf1f069bdab4df44a7c3adee92bce56a3ef6538d111f34f678ec6ff86ff16a65e0b3d961f052e58bdd07681904dc47c0af6903219366c96a5332bc4079f575e22600f7e0c1d0ee3b5e5fd2368b7306864bfb5d78d47361fe38703d30af3a5f005cedf7b72b1562beffb59fb54c2a4310296bc9280737fe496a81a2902bfe1700a549b28ad1c1e4db72509c1d842779e4b992464bf9c9ab741943774be467d3342dee81f9048a137c5300e3aac4374ec3c3abc14a7519cd4a0f467ec08ad4ef8201e7a05acd0256f9d78736a88a737db4e1407ff831e4d79791838babd5ff397632cbc1192ab5c4be8b4f1e8d7cb91ff0e4afeecc35ef6c81f908100d188851e50b728544a6d5fdca4dc457df498464b854f8d52923f46e4bdd2db44aff5dee9ee987a3741dc6ccf6d048253059b122aef52bbcd13f4be23cd6dd6933fd87eb894e1f4aee477b173eb00849c6f7c19a094e11a7620de9ce75d5ba030945ea723a3d2ba6f1eff14a7708381fe148f954305001cb924aa8828f9fe0b6b67cf950706976fb5b2db08bf54a16e6e1b2dce96009997735ea062a3ede1167803cbf62ad3396a650b1fead9ccb6ecdaebf4ec98b7f730687af589f93ff43e7ae80c0f17d4bd1db488d2b0521e3303ec509d5bf40216a0dd5dc8202e3a2a5905ebac752a085898c44fb8e7907d3d893054039c46e3366b4cdf80f721417cc310c8f57d0f8d7519aca56c672c6516e3a40f2bc586eb17a2a1f28b782297eddde95e1e8e78c585638ac9886c5ae5bf4ab3f27e28815d2f686703b6639ef1324a686a42ca78fad41265246bddc77f40b34e94740ebf9b441048bdc0bf2d181f4820c7ef0e045c5b5ce67da81668ee131573c9b9e90b99a2c36cdc60e31fe80b4b45084c6447d84b5e70b54bab5679222dc647d4149590e21fb141d69ab640a77107f52d8cf5fe3fee19ec63f6f6820dea48e247e84f9f397cf052df5a5b9cba77e9fbfe111387a62ec7f8161dafb93bf04e857c64a9c507b33b5ec42065b4f3a67edc0c294e33381b8df1e383e7782a8b4e6773cf333a45d580b3e8552528d7b7f7c0dc09f45c45522b5cd7226a5e6e0d750ddc99133baf24363e17e533cdb6bcfa9047aca4fc1fa4cdc7ad7821ad3ddfcea82b685b8618506f02a14508c3d470377ae0a73194373b9445f433c89c81fd6f47b509e5c9a9cb5468f8fba5409340dbaa8af3086d1f0794e6bf57259f33315ab8f36c1ea4f32e26126572c5e784547d63bcbe0057c5c6e503566e201dccac666413ffbf40f96015d6712fe1d9cc21c6cdb8cc93e6bd091c133363ef5496908c25139ede88d6536cbd824f3c3a0270901071db6570ff1e7afde67d1d4e3890a118395f861e4c41e0edec9bb9c420568859d1eb996830df2f2d9a86c3ee7f286220e5017779602fd11c99cd2aa2bad0b1cb6da25e073ef02df6c6e98273df4498ec37b05af58dbcca9460fbae652796b43ac7a0c81b1b761f15de2e9bdaf3e1b63b584493c813a455ede2efb0b8ed4b7c2f7ca6ef510b733b1aa7b1b7eb42383b8b03a8a18fc845fb1dd8a54d105cca8e6c93aeef87e4ad987002c83d4b85c803e18853f92d675727be1a34b1ce59927705172cd7d9836be48ec294df01e5fca0b1142b62166e1e3acf05c0ec123a2a48ea3f50b0da20d11c42ca6c0be856ae7023251e89b056af772901e553ca503b340f91631b79c075f6babe16db3bbf817b541f6efad4aa84313aec5e5a6dcca55d1b93d7e9ffc04b6f278c0840832f3d16cfb0755edb600cdbf15152a4de473385e9f2c1bd921c5230ad73d3b4740e0777c3c48a922ea773de31f9902c211ec48f8945a028e7e81bd2c654b16bc22f28149624b2f6061f5fbe01232af7c0edf63c211b7b52cb176b4d169ba2ff3729c45b12cc88b39744d10244baba6bef8caecdaf32d950be9ad9bf79e968970c7c389be97fbebc4863eb92d60bf5a9a4ce0865ce83f749432b39901f526eec9bd8437e0352e2335d75b826e5cb7b47f47fb40c3cc697c1e3678b58647e9463b10ba3df05a98c41cdcee364e50527d20f95eb08fc87eb7cec17e3b31bb68b7747bcc748182ee7698d3dea94c2501d85e137fb306c53a5dcbd807802fc5c79cb5fb2de1c88fc7669d7917cfba88977afcae13b6fe0487d29130d286bdac12991441c9194b23308b6d5c4998010de0f9ebcdebb5954cc4a7ede98bb3bf7c3bf8685f974c8990a480794509041150e59f5f8e0d8f870f9ebe790d5ced41bc61a5f26c93cadb01dd8b0561ec1c2f9a25761bce988962eaa826c5d4c24d46db12cec490f3c4da3e698bddf18a6d4d4192eacbe8d6aa128ad9f4885ba16174be6b7a0db54244af062fc9245e5dc92eaeda14682d7219b1d93d8ec30cf4add19c81f45bffd3c7426219d19091f929aa8e98a61e4f64a5b4e6aa93a017a2fdb63eadd7c269f1ca7304bba789c3e7ed9e295409ccff7a3eeb91ea8f50d52e494e2d0d6b8bd3a476415b5143c6d89cd187bb1e86184386e07ff15d5098a65c9c0ba601ddce414895c6b4cddea985d9635a7faced1838449cb0565a712f9c45f8fdfc0496b31b55d63dedf73da7801fae168755c08115c221f91774459d6e2776cd3fb294e6a59615944c2a607777c4d95830473075d4930aeb69a717ee0ecdd3ef8ac4ab300f130fbce9ef3fe1b40700b6c9fbe03ae373aa8356d2d39273bedf380e17c4c11acbc74f8227cd3dcc058d4d7f7438fe163856648f5139752aa0fe8e2d4a53d772294ec0a7c06eac9f1daf536ecff3d99530a9a842e21d1463df20dde39d6a62f60dbc30d01cc1aebb008e56da0c62d9b8327eead8cdb11559d8b810c2f74dc37eac5a3e20464e5db62d8a25e13a0ba49aad5f10eba1a57237573c6c836d59471285749f1a46ff0505bbad72a564b51d210f6e5d9c0cbe7b397f69ff4672cf28837370030485534dada17250fc7166f5c5725e8019adf4026506a1f3b8db205e180f92dc6916f795cf5cb13e0ab11da32dd428076af5ac93e7d6f9a5c7d79d2bbf1b4d0e872322a13d5e94b6557c43f97e7c2547c228de392244ba3b5838e8cc7e79819f97195adf77bc65f16f69dc2b270d3bb59bd20de8313b042688e6f8aa316373adbcf1916db1d90b8d425d1ab1589baf733ac0f866b8f57cf34df985f911e8cd97f864adf5d9f401933da99a6c730003e8a00864d8cc33ba3d8b3b70ee3f1a3c19b32ecf887dc572bdb0703a51a3c80c91d1d1671a2d73670310ccd270601b24d74e1585aa9259af48084210565e29c20ed2e20541362b3c7066114ebd3a97a87e914477e1656fa67f3a2f4461a28dd207e3e1e49a950a765f864750cf619536574a852a1785fc786db9920e6a1f713fb0977dcdfe9ad8b62eaec850c7bef8a7d9a21911367ce7d7228f4ad4e6d21b633bbc98e86d745c1a961cc4ce0dccc8a94c7e3a54e64f11f38fabe360639aa93433b6ac13e3cbb8c05943c369223055c157c24f0e3f03a7f2259203a1959105a176776daaffbe0bb1edb4f020162fdd7970aeef9f5ccb3c0801d803b1874e1135d10159833ff8d6230cd602be1d2c177eadda6abe62e73da5155e4533b4b6ee23b55615cdc5181a6c4a07a072db96651c71845b9e46d6385259ca57a4974add56d745a6b20c824750cf7293bfb7c939fd3e889d9bee440ce7334b9433defc71e9bd0107d6b89ec9b357f1658c5e017cb87062040b57e5e8ac5d361fe83102cbafc70c00694a92acf961171963e0b9121698b586fdbc7a7361be71abc1aa0f8486cb0b4d8d92950dcaa123084b429cdd03ad4bf5063b7ff78f1fd3627d5e4ae9836b9c0f23428334c421d224fd5cf901637db1f2b22d07c82591bcabe05e06b65de688a3570a53928f7bff35df7f5c71ca288f80d0e011806855f9faa66f930b40c986b66002f87ec9d6b474162edb4fd4b6888905108dfc59b6aee6c8e41c8b1651f1c3e223deb5d0b7864ad46c77f8a88956e5b709ead7666882b83b48d2f2f9d39e80ca60c25c508e590da528685652f58577447132bc711479b1c8d23dd0f410c92c2c002905bf26acd265ebb4e9cc0b602ff269a3b40311647c8e6ee108c667ff7a422a7cf87552c7a9715af305511599e6f3de1633e0d701f9ed4d16038d8003c4858a5300e4b9f42cbe89ef64af17056641b77b9866a78aa8bf2f195b039d7b8e99ae15190a49b8eb0cb90c2c9eb0ba5f4f6f576c3afce9728f64094f003afd15d7b27b45ced26423bd422983508b9a05c683372203c9b3d742d5a521ebbc5095b8243b83a1b03ad0f218103cbcf9b45f26c75990e80e035d7be9cddf800015f3db1f545d9faf3a7f44dd7bebf444568da27a001258c5e49ff08f66d9d49f9dffdbd576d4bbba4e2e8187875924a3ddaac110d4c6760c97ba4b9595fd1a2a671c4864d3664fe94bff94536b2e5e41f42849d69c176c447ddaeea44fdb3722f060375e471568a420abb30584c00201ce70eac88f583cc560749b2dafe39031b7b58e2be2b842ca8e1786f177292609923b30deb9ea7935198f1e4be353178db0f1763add43ac0b4f43e9b118de27bc6163aa371b95cd9a2fa621d1c599832ab15d2e799eee00ea143bb67a5b11006bacca9585eadf8f6d9cb48a0b344d60e1e3aa480ed4d25196cfc343f893349091ff94fb5c6d1650c436ddc49117985b2dd1a8947e6eeb71f3bba7c429db5923621c683ee348774ea1e5463501d859b89977573c96e72ee5efe88a3358b800f9b478afb68be4f8fe5435d046e44b3c661813d96f4c025cc5b4cd89795d223c0361244b106d546baa06d6a484e1080bcd180d7265491bec1b32e616d853d0cc5d080f00eda201f002ee6d0997b764dcb0288cb80f45eb62edaec71071f9ef1c59ae764a356e02f186d88c2f1b393cad4044fdeba7e6da77d7e5a06ab9ad47916de1c85c54d2862f0e673192c0a863e0b106c7c5496fbce0322c8a95e275f49fe465fb10f7c0b8fad9fa6314bfbecb5d207693a05dd27272707cf986199fa0724dc33116d49f961bfa480a70ad58ddc2c09d731f79ec8495c1a940f6c93d7b45667011b18576921edc453182a7b3a57b640055a982c318cc8351a97eff24adb101949dfc480f1e946540564567c664b8309862d4eadcbf7160e678d467a8bf8725779044c4e5e8d095c6031c494eb0cf3c04fa35a7e187fe4dc9ee49e3e9507425dda7b5c95fa72a4dc5e10c9ce51193d9a10e16930121f9d54814899d8d9f37c2123191314097042212f266879371183b259ce47d74d06125eff0be937e10f1df75be47dd4ad7076c7884c0460e58ec056c9df1dd78ab0dd80f9a10429801095433229eb2f9e802bded58c82f1aadf6d7930bba69bae96de199c818db89be8eb70e3bdf2e36ec4e48da15505a379d9736938730f3c867e4643564f2e25d10c0d76cea105d1cad5024b816ce567a0b3216484f1aaf99f89437023a03c39c67d47ae322f3082eeaed759c4259d184753a1dfdc5be3e4e0a16baa0fe65e541db0daa875cfacee7e7a212e47c49334351cfdd6dd452b6f16f39a90cbfd530a3bd18082a2c1c60879cf2843252b15a0428ee20a655bc479450c2fec1b35d30de8bbd66c512c1809b89be2033b6da47f66934e46633ad6cc7583bb85ddf107d2dfb2dcd056b112b1048be0477cfc7599846ad23c33c420b7b6ba3d5a7328586beea5ac5cea0162105fbdc4c46807165b0aa970948778bb5e4583254ca7088b5990d096ccd63c0b7f2f78395bd5c32eac9e7fc046d5d78cc8f2a4811cc66dc2f2293760f87220f69dae82aacab77b9d0e18c23371577b3835bf0bf331bd6506a8c1b849429a2413472d90acdc6a123d1116f4ecc92d91dd683a0c6e534dcd15de45e6dd1359ddf467db1c087239243426c8bd17d6c63d93084539c605900e257eaa533684fc341f41b398cc27d4dcf76fd721fdb3a19bfccf1feb0ca7b08078c5f10b57dd9ca3537b84508c598663462581f9d41b6d0ae528dccf9f5e1459faf56bc93fdc14b1c1616806db1ae61379f2cf667b9c391db005a930aa0bf07e0a2a3d1db6a1388bd36ea99b7fa6bfe74c78313820e2c236a14c2524b96c8e952909ebcabcc4a41162bc31615bcebe1e84df453055c7b3ca4ca6353c9447988b526b05d88b31e0a571f34f1ee7d66b424b4769d10f5eded1c0bff8464eebe603053da73c0f57044dc2ae5d2b30e627421f421492e3042c860899af45aae760d033328469cf9e94e0f962cb87cb078f5d1505c12f3793cc10c1d7452d7f3a194b64e3a5046ca9785c75e4c78bb636e92b08c1e18eaad9b66c87d19f009557aa97cf88be694ac46e6f21319c7ce5a410df27782fbd6e401c2b07480e699b0e92572022ec87f4e6531744fc90a17111efff596bd7adedac83151c71a42e275873bd5892359075cf101b8650eeafcfed96026f77e080a6421a5c21df3e070ab117da94f6ce35211ec476f914d38d5b49215961f1b8426068b394d0ae4ef15f3d2f580cfc8a0d478684e8a45d556a809e1e7bbb063f98f250d79f5f9739739650e8fccb56c7f969ac300356f9b7a78b3c950fa7ba9341a311917149287d12fb8ecb7d14745275a694c88a7802f59c0741a871f2385329a31c4a8326b0f99c47f1aa75a712aa2137cd3e97493f13a4f155dd93b87515e2b15a07bda020ed423fd784afd882dda4eb3d3f5e90ff6c3313b21329b6d7b02f952dfed9fec2ab85246eb68c61ec62d04ac110411dcf5ced8b4434c347f1251da7f07365ffd4a13b3e64a69d07c16535f244c681c423f4c87e65133239d3e21db0b53c092e7afa44accde2b5ef3163142c0b1763216faaf880e20f33a8aa3132cbe012350c98af50f954b3e9c2a924c11f637d1bca92878902f93c4bf22a1254d674628c380451654f6c61483a5273b66f3a819ffde96e63115b9255ead05ade7bb3388b49fb12acdd0917f14b566c50f4c12abb473e9d179d9c347be9091af20560c530683a02a7367734a5243c3e209706b20df77e204bc8d2c4e02241f38a65770aff3f17c3e9878ce6f6dd0052e5b8150769fdb3489c04f31546cb2c73016be9cffef661d19c697697669783a768df00f57e1348292aac494e502b7f685f6347bc60a3c3174d5e86e9819e4df7e71b3de8318b564ea3d92ab6b5671ca4aa4e787838676878fe8f60f5923247a677e969d35a9bc5c5492a1396710beda914f3d0c7548f77bc502723a995b66507ecbca6481f88dbb79794e6dd3a0435dc33ed8ba836c1f759519ca53c92a577aab716b62e13490f9b2d908de9c20528fff10fab0886b105368b032183cdf9174c8686845a82d16cde91860792a40c3bd95f72c552eab92c4331f48a5aca0bb2f4f6cd3d0a2047797fb2db5f008d1353ccf7f36c4738476d4d00b94896b427b01aa23b1d4651fa71267a15c0f99adca4e2469b030c3259f0a53c1f6c2116b88a3e6c6f3bc9b1507aef8a84a5f759063601636fa3ccf694925860f45e67e0360e20292d92b3e9317d3ef40d777f493766d44efa61984303b4245c1a88a20894ba084fbcced671f415dfbbe9bba6f60b31eaf6a385708fd361e40d086a8fb687617e4fc69f92c986776372d188c9fd0aaf4640113be837249d815d5bc00c3c744eaac4f924617159aa95ed451c8c7166464121e2f16c1684708f3d3be75ada6d58cf61395893cebda232217fada85e1204fefc1de25828950920de508600a4053190e2f638b087111b6737ecfba7e3a0442258cc25966c1f499914791ede1885fb8eaa6bbabd10dffd9388d7c86bcc35e64dd1d2a50a8749ea1616d0b218060076e6a025a65dcb6248db8b534123843d8b266dde8e039fc19b0f687f22fd63b788120ae93662e005804d7abb681f7a7e44bf50b8ad29e7061194876427c8bd54e1fc8183e669308fc75bfafe5c424dbd609858ec967fb955b23fa6394ec332ba6433ec8264eb8ce9e7f8191ea1f8143b2a32c413a0cdb6dcd4b90477d5e785fbab70ed3c8336b105e0d61e463a4999e148c3ac7e92e63eb9b1789a1c805b4ae015d70683f110fcf7b029b42c844aa5232762b7c5a70714aa1100d4c0fffa59953385ffa3b07a384ffc777d5be8d790c11376ce7c1407e79f9c8621262a7766b8eb3ab5a35adca86fc417ec60908965022c1745eb091dd20e9ee986afe14695d0a91bbf5f400437e6c265d5d862a656de5d33497be03893fc2663403df9c06acef037ff58dff0a5c6875b60223e39bcef5549a928d66c486662fdb8b22486f8a13f5bd3306620fc5450ca8fd94091302e02e8d9f92daa53e6d83473128ad4431afddbe5d13119f0be2365dc18307c81fa3d9b8d95bd0f73ec9d1309308bb3f2f18ab49998833faf447c3cccbf3c7e685c490e7d7d0e8d3e4eaa7562350b5562ef292b07824d7c0e40c2ce7c5b6a1d9a095c8843072cfc210d81af0618de75ee7be59d0c5b924c5a7850ab2ff43f7c54e93011ebe67524877e1190a684853170ccddd64bdc6d555dc823ea71081974a4e0bf0935349ae63c81d2a480b4c2d1f4f4f3d4bbc230a1e5926bc60e2716599c3020ab978552822ef63ab758e891f5e79f99225758b5a45c2fb66e90ab58d33b4ad891ac3eddaf60ae5da90b51f1bf16274bf54c29c15c7d2734c715a7819e0dc4ce0a94f4b74cd6fd111693c0564999aae00a263deb82e1851c25b3122287c7aa7f01c3bd7ee7a7a658e94eb4722bc7cafac73e279c7fe82d24dacc0f0abde8789d765c3e3e633bd0b8062e9b107e81e3e3a1d3aef428a99f678b1dae2a0ea0f21668cb7e3125132ec8b3a8b352f83f7fd544389c4805ac78c01e0a36297ef9d78f1cb1e860375d5e493b3c9931d7716bca85acc5b0d564ee74c5f30d8c62e379fcbc7e5c5b2c7322400e4ede4a8e0cf5d04f40d44d2300bdac3a66cb9d1a48f814503a9ad0493d73774b48449aca6b692f59d1ed0b0b26694b04b97ee6e7487f2a98e4fa71fb934d89408e9680e365cdbc901b0e55e0bc35548b5b14aeb2150fe9d1782e6f53a5d14a54205b72e1a9dbdbe134becac876d25ee12c09fb09c859f21e974afd4827b4b6c7e72c48e873e930c6f5110bac6e66e8acdabf2062e4edf947a033538600bde723d64ea6c46a207d36b4ca7febb015f2d4f9d70f49babad3fd61bd88f5bc3ffb6d8b3a27995b7ddb53530340baa0b6cc6fdd542ab59eb9b71d93f4c1d11c0e7fe3621f34c235d0a0538857014a30a5b1639d2687649bd6a688c8e0a21a6f96636bb49bd7308ea44dfd4390d4a8a892c0aba0de06ce9878c3fcbaf7bfd5c03e98046215e51520a27dbaa8396d69157e76077ef6c0f1002e5300aa7d0b72e24dd6c360c660a6ae9cb65900e369699af217ec4fc6ec7b7130816b59181a13949a37324677c7ae8076a542580928c120b4716b812f33976a698c5ff3b1e27bccb5f14455b63a583ca22f8d40358fec26df8d7e856418fe4b4b8c6e0e77f06b3464b339f732e9c8da7c949adf835c97f609d0b78631d61e88728b36cfb00007ffe346173407e5a627ff994aab70aba171754377d80f72c996550f7610d4b0cfa65f4d5a6d2ea429c40d268d920ba57b3ba5e7f5adef0a4c19aedbe5962a4513ae9ff27a1071f535172d5d787d3053855b13413977b00f399fdc8a010a99aaf8302eff14c87a1fa640e6c1209cb2526cb13b5eea509d3733ea70cd61bbfc69e84bd039244480dd18bc89fdd602fe021e9c5317cb113af954d4c8a27353ddf3bbcc2dbf461d77e3d5d971d29c4f21d25704661cbb677d6674773ce84d32e9cf148a55a726f70ddde0378b59d2977307e70d845cdbabf725a87919f0e9d082e4c2eecfca446b2830abf6ed208561b798d6be6407183de9e1016f239de1f477e0eace62f7ded66ed6db917ba8b0289df5e0f0874ccece98c927d0bdd7eeff0e199ca8b12fe0dd653a7c7168ee73c7bc20cbf1b34f622e314de463cdacd62032e94350156f4501d191d494d35a38902ee1e1d328d024787fd6c1e87d487e35cf444d3045c7d42c8fa65c64ae9c31938952a9aa4084fdcc157998d6cfefcca413c80ab15527f1f56c7c9fa69684ed8e6e567ba710c73fb759914feb7d76b7ba04ed1e9fc72044c5b24263735f7dee24d98a8ffe3b0845878977cf41d549816cd06937019a547446123043e2ea451e7486f0295d8170d0d3bd26e6da427530b2c8d1135275cf8b86229bedacbab709291f3a7d805361f013558e873ac0e2a42a6879cadf790c18586de36502d22618c9e74fb50d5f4817a1e052ed6b339dfc74dea1fd6d7fad945dd26d8c5b0c6a544bdc410dd9cfd3853e54b5e25e7b480ba54ca2abaa7aeeddc3064999e5e26ff70495abc568b3f45d5f67aa2b34f3fb26c3f26c3129218a7ef7bbd167c0f75b411f9a581a77bac328499903d53145dafcbd8479ba84fb286f3ec4ffef6ac8871a6dcc8686feec0b7f3d84b53c544cd7b8b9ee49b3852107d09ecee02155df53613caf39e67a1abf51eca44245706b7c0a655a59839de1121e6b747c0b3a9e30b14085283899cab04d2555383a738ed094315fc5c72e7c4d4d004b63b5e9f8c7f8c5dfd9a3fa55f983732173f178371bd9853e87441f70faacfc0aac4bf707ed510218a4ca21e51f5bb4c8406fbd20274bdbe180d5bbd1625bcb13553ce818a3ab0f3bb15fae3c4ce62392bb2fe0706102682db7a7051d1f4891d6eb61c81be13fb5dcef9038aa81915ba032ffa2a28fbaf79e0c9033bd3e2ae60c85aa1c12740bbe191fa3e0af3c09c3ef2eb4f24bf113588894535306470b1068823bcc36636a98d96c91a14d6b05f2a80942d1d3ceab99eb8979194d4de49c7910bd461af8264060b198b6bdc479c4526621e6715a0699da01dc650c97640cb90d4aa8f54adff41a21b1e418510e9465c563b2c057e36ded5d792bfa94c5d682197a1c27abc07916c396835ed07448b78b8294e6d717966d7323913bc18330d25f53c2244d797e5eebf3f6404bd5ea6c4858a549f717bb7f5dd1cfc55a11d5af03e3dc7c65c177300f05dd6c3fafdef3e341b7890a1591dd1a2affc99f42f78d59c8c1a1f7609d7249258583ef2e4f229c75f5b9567abbbf25f4711bafc8bc15e8ce778db5f96c83f8a36bbbea5ca32d78796e8988da936689ba45c65497063355b10d5e74959816f9c5726fc8990bfd3e1c7bb82841c59688e91472f28d7aae0f5415806d259e0b8fd401b151f820dcd5f6546c2feeb4af780629bb31e9f56b016eba376fd5cd57471afc7217c19bb8258b2b740877b0d019bf48439b7af7b574ec848a9548938d3f18bb387c19b83da2e062b01a4721370def310c1ed1e82b0cc851777091f524a54a69bcb684deefda3a07559f148df2baad27ade5136c9505b3cb3f45a348ffd313351d7827e70123d4dac8a5f97e05085d0706721e9823154babb4245087f036dc1ded9d3499c397d10a63b94f8cf1a87252ffadc8eb7ab3a1ceed3eaa58eec8f3fa8f35ceec16fb2079cc1dee167767675bafb076f780760291c74bc8a7185379690db9d8f8ce306e59e8a745b5eee7a5d8b375e57834159c85ade74f2a93f07ab645ac56ec5b0b792ebfe6a706599f63eda97b42adafde1948d2319b5e3d677176a1bfa379ddd2b9dd958efd00cb8aab8378868429879360199822fde463c97ec818717728a6e04ca6fb8e43710fee4115ba05f9dcfeaac966fd1cf653be83e996d706ba705f2b2a1e63f608df44665e190ea4503d6201923280744745740cd7d7a51492d1479083cb79926c440835cafa3a039e6460def9cad8286ba6190388011a85952436363daa7a01116237903567bc6ff020ea7de36ce9416a59f99ccdc2f28635eca7cd4dae4d7c1b5af551dc85f833b8d8b30c07ccb81d2a5e8baf15c9d584990fdd5b752d8c97ddce0b51fad29db7c42b1a6b73859700ff51d48c6b95eface38be7600931658a67584a6bd90ab0454f330e6890a1cfdb949152bce12cc5257e2d536a50e7e84dfd8e080d4cf6a61b7c0e75e04b7afc1b1bf390e8d3889c6390a2d3a0f558adbbd2f70a5bf94ccabc57e8b6b3ee2a7db7b40f987ae650f1cb4fd98db85260814ba2a5b5a1105f946ee8ec87b4cfad4356dbfef32db8dbe9e92f1dbb3812447b294287ec49c65dafbd795462aa40cc15b8bfb80262e675c3a2bc7a522bed294b076da44473c43f2263233a8b9725845c39dd16157956fe920e472a5cd08077a78997e0ddf33eef0d2cabc0441c29aadf05bf210f30b32d5c96456da23db72544ee02a3f005c7d56a485aca7729fe75f525bda8246988977ae4f882f6f73a209c652897e59356782193c15f99866d14b96740298c5db0c145f90003efe4bba8e6bfea8ad96cf528403ea7751d1b95f4ccce5e629a8443b87715df22e3e88c811cfe961ae23b366511ff75cb48b9c945d9ae7a60a1d282aca0d33aabd6c294cf8b72b181a2c872ff9e77878fad38ed754606dab5f37451da493ce3885b1abd57c78deab9fffa088ae3d1925ee1b65b555a5087973fe6b2bcac7d4b2328bc77fdfe13bead9261c67a93f784c877f19b2623d5c4d8d4633e7edc70244ae8494fd2a2a8970f524d3bff00fcfe6fbc469418bde1b257df67b4346d6a68847cd373baf0f654f9420798f6870b525b20aaeb3ccb63a5e91bf653e99158ea00f68ee0bb10fd07904ef8349d666c69599702b8e212dc3c6ec3baeff9dd1b1b6380cbb40fb064ca4eacb50913277ec1ae651d62b9da7b9268c4026143c9ceaee496db41e0e278eeed89ff03ef3522d251f9a8d07693d43c4262cb3d039ada948e5bdc4a19a209f427bb64f39e90ea4a160fa34fab67345df882a89f4d9a139fc0d10f1fc2ca64583a0ff277969937e3000a450fec84676be043baee112b681446b4c591032b0f9e985f71f5031163fd8ce57bef1491e4ba5704b320e1d31923b8d189cb869be63f35a79b4d79ecf1baaf233cc9538782ca3fba10dc7fcfa63d94829b493cc2e94920422a56b357f4d9d03872b1011e637dea5c61e41321eb1bc13c747c47a73678d48525db479e769af45339970b415f9ea169ed0f296eea68bdc712e1d5c5e1e2a987be70b350cd884c2d4bcb07348f5d950372b8ae00f39f1c7179d129600f0edff422da1215490499d93af011c91c745456519c190a8644d98d1670a90e10dc9d1cb3afb0a771214c66aafb7d4899cd8fd21adf3f2498b99909e49bd58d30840627eb80d470ee536a0bb533ccd643971f7cdb18b225974322a8d448e4fd2d06764d539621036a15cdc2055d96b6d28d42b460a6e1aff0671808233d630f3ee7d394e1b949f89cddf7d18f06f38ba7b94316edfaf9f480edc524f0588c960f84bb03b6e679ec029ec7a91144fe8cbc0ec60d1654eb658ef165d3d114320fe10b8872864e9a08cd3728a0d38183653b677012c42e8ef9c4878463c12141eb461d70067cfd674bab3672e389d44ffa4237be94cd85baeba5b1fa6a0f4d121c7c63d6179e05390fdb80167b6c94356c0b51b5ea5205721754d2520ed185447f5ee2c2617bb5a324117a4868fdb8c57f5f899b629ce95c298a3b041376fe4c7e210141c279ee02427650cbe0a74471aa639fb39f8dd61f526961b5087fc06759b695ea4299c1650583e7926714daa1aadaefb1c9a3d7f2233c72cf729b787680e8ca2e8272c95a90376a54409373e877ef4662669a364e8eb15c1e820431bd2401104b05f75d065467c33fce2b9991bd8a0fe7aa6c544ab9077c2e07d7434a6ec3a30181972160694f981390c48bffb556443f26543856edb1012f04c9013248f02b0843ac5739799444fa51a87fe07124b2e02db873424ea4f7b82761e14a41dd9931f7762ce990943776c28d463f9b72b147032a549ea98774647fcb224b449cdd18f066681a7dd4000a5e7008a01470ca963f96a737389c26500aaab3955345a70d784bb6c7394f0dc474625e06c5a18c0dbec087dcf22663b584e9843eac254585e0d8bf3fe2715f11659cbe7a9d6252648763cb7c9ac4264ddb276dea76fda7de6d24021ec86021eb0c1dc49b0a62f9c453374debb55375a5b300c547a352866ad255bec620b1ce4ce74cb4c0cea0f6d411b4365c400acf16e9d961fbc385d9ec6d104a2929c829f92c9921450a3017cfb3cb673590b1286b9eda304c928f98b9af7ba5e81736d1b09428d8d09d75ef925967119fc49c6eada271500f3b1884d95227a0b912ee2ae6b33bae37a5904bea7cfc048c2d72d1453241c989c625acfccbaa08fe879fde5a89357efb7015acc3d602464ffe1794e6faa5f886f4fe43f1982a2a29c2f0ee531a2ffbbbb1713217149c6ca2574c090ee14733fc851fead60550320a6dd182b4c281365a745ad7e7a8b4230a68096662e7ecc6f1ff8ef946d86b820f397fbec1ff4ea5f7696441db07b6008f25582e15d89d5ef93277d979244aec474998816d2dd88130d18488585c5616fb83baeff4294ce75390da2dac2384f209cca5a2ce15543ceb4b4159a087c0fea59039585b7c4d819b3089b54991a92ab2dea6fdce3775e57ba506a5e30a3a31fa6d696f57253fd8298cdb2492a698a29a4d2f19bd904e2052267a4181bc4ccc9d6da7e16b315a56c3809a53410b83868474d32ae09a57105c838d0f611f8c017656dcb0b627b6320683ecef0f3e669cd891d713f24d2e630760546c7b410f3b2c0840d3d5ce48c8075c56df32cd30c9af4581998f2dd7b08aeb68d837c72a5978bde645f6443ea1a3feaf9aa6c26a7d0818fca0d6a382c2c6705b05e6809cd18326849d059f3e52e7fd5909d776ffedff3e72093e7d8bb345198cda9dade4ca00b0454a5c5f156cd7605b83de3702938103f10b4918c69ccf1f964c1b1e40faa86c4993e9fc75d43c3aba3781dec253a0194c58420d6eab78882baa8f57565f2eeff39ce821b83ba67d5339a751b1a4e4708f8017768aae82c3a8f203197b984325c9152a87607796b0ab58358250a55e2f0c48091c39c80be9ab2e82fbfaae32513db335efc28af0fe3d6219f015ba95c1e4783291790f630c65c3efff7ff2b6453e46647fab4be1e67446d62e1dbdc91846eddd9eb54386c97d68dc1a2c6d3d4de3f4ac77a9b33880da8209194d5109447cee41ed98b4b07a6d3a9854097cd807d5d10b81c4d8a550902574125f86ccca418d4c7b4f37c00d009069c80f768bc333efc89a120d26847c166bad1a0efedb444404bfe38c8dc862c9864964295927f60674173c1e3298e226a3438d59738edf44aee3b4901a42060296a2390ec5850aa309a3d73efb780d1f7be5614b0149138a7baed7dcdb3da7c70ab0e0e2cc4c58da2454beafebd99e86da23ccd86bd378e25805f4561528d381c8bf96e1271fbee00ee3f0dda43afff83d5750f5852fa834ef98bb37dbc768ec56ca3f4afced90bd8ec2f0e74e9414df05466104fe809a66340e8e4d14fc0e9751fe8acc65b1d7901eb6074a9df6fd701121926092016beae0fb13659095efaa37d112e9199ef328818b83294952e1f1a693ebffc9210a9e8af412d6d81eaa6016a7f537298acfde60a27d8d51c1497b01985021adc9666d68060ef8108718444bb3b147b060d5a1de5f5ee1241653e0a7f35a7ccfa809d28ae2480b5cbb0011aed17e99e98c50dab3c2b76b5b31f62d6ed2436aaa8333afc940a8b4cb6bc7290c91a494649b968c2424991305e7cdee34d7ec360cfdf8043001081ffce3c807063a8f5c0e1c2dbfe20a73c72ff5135d6b94f906e326cbe4ef1a92473ea46522fc1d29d678ad2a7756a818c06a85b0b1ffcdc800d571234c70765fa74e5ef5a673f014c0e98c5b823efd3777bbe20b5746f1b84aac945a9538e037e6a9fc70ffe63a1ed90caf3ce60b87d8d9a66e16ad2cb9949ccf12e4ca4b822b5e566542b6cd3632450351a2ada16d3b1c82834b2e56ac90f3f573c5ce8d6038a97d7b419db212ae0d016b9f5d4ddfafed7a5639f86d324df79dcae0a4429b64f83074c73d51dd9ffce00fbc56235126fcd2c96f70bcf9e21d98de5b0181f797c2243cbe51cd0bcb40afbf31d6fddd8f37288aa3a4a8a817628fafb4add23f7c9e1dc6ca2f991b3cef23b794e79a9256b8c24299feefd625a766796993924430566645c9ec99567c999671c7abff424022342f11371c7fa5a04d6bc6cef94affee3e22945c9b6825a62230d853697b924dd589fd20423e394d0a6c832621b10cc15468429db3fa8db77e327841b0757e7e9ae35f2c2f58c071304e85229aa4c5c2f608f4da6b93f9806a4a4cc4e9fc2c4788dd2d51e009d0f2431ea6d820c2fcdbd77188ce7dd32fe10f82a2d313083f10b18379368f4f91b9c872ffebaf6d8144780eaccb664383625247b87b3888e29f0d08d99f84ffd45fe38f1cc114e1a66ac88121240ed41b659bf73feec4828b10adb43c1f273719bc089d48c7696edc0cbf2411233353a5c6aace0bc664bedb0834be13fa823be8094c9d78e31b919fd054f413bc0527ec79bb773ec98c5d50d430d7ab703d9767909365f7a9a7030506537254f220cf023d066d3059a1d8f042c229e3f52cd44257158d7507948558780c603338e3a7610ea6367b9a7549019085a168f19792809d884f05267b445c4c86c1f012da952457c638c51e3f45a2827d554dd698f6e68536e79976f119e19edb74d6b6df3fa82fc2a0f97d90712abf23f6b04aa7b10b73c8ff7ddd78685916197ec0e6d9b2963b59fcc93f2026cb38f84db8ac379901c4baad1e0245d0a9041eb712af1180db2c1055be082a523a9820a82b446200004c3c28e09dd4b6dd53b23c02306a76358e085a8f5add8b4d14be2969aa32e0562a1635946326c8aba9db67b316b01f9572a3c347c9ed838447c1c604fcb58af4d49881e3e852b7f46b691c748002ca56ed041b51dde41d56fa4da5aa8b6fb76425ee16867db89945dabbd133aa7cc55e7e0b202573a5472d05e43a9502890b33a6b01d16cdb355bd71c83469f6cf6373f054cc7b8b74a0231240a5a65cc001d700703c213a91ef72120ac2b1c4e7395675d96bb899ec7f6469e3c9130ca9d6fe367e12d8165853f16d35b28f0591c2a5fede1f63e31225bfd3fa46ec7afaaa73b8f86fef5958b13e4df0e3f808ff3e9640ced7d8c88512a62899c1fe82f2f2776ced9303d2fb1efc48d53e025890c7c9740a7d3a1331949aa496690309d2b8a169b0c68318e58800205ab8a30d29948fa873a61edb26bf0889b0b07fb6a79d4e9dfad0bb949fabe9afda6bcc06d933327eaa06bb6b8938e25226dbeec586a00eb4c41564fec5ebea045f51225f1bd2b77187971657c323707bc282a8b3674bf2d466fb319275886fb65b98c3821c5bd82f46d0957814fa9cae2864183923199432539697897d73a905b25ba439ed9359ebf48fee6ad912c6f072e81657c537c15e84c0ef7c8b40bf55e711211eacbeeb1c6797bd7e428c026274425b3537fce88e3f809a3fbeabac5a385c1c85a255fe3d2ffbb872831d3b56c70d4784a65b988e8f195e1f20dcb90b6dd22751fc11669b382c838cffc7e82aded76eb877f0230fe5d0a5c687b36743bc5cba1f486fcac4bf5464af6aa0b2ad44ea9ab0d009241d7dbb565195cfaa186c51c953ad5422c86356c739c2917bfadda8a60dd78ebc3b3571fe9fafafb7a76b19abb56688942b6efbe4116fda9a3735318e30d6f76ce498761ca59131535fc9aaf9a0f6bea4253ab7bfb496ba1786db8bcbc43868f83c21555c59aecbe2cce481490dd6016a369383df65b93cfe3816c643a2efd5885698f6207c029fad0dac8fe9abaf8846985736c2913bc6eb84b11002b16f8403732a07a0802d4c94d7f9312d3b92bf7b4e384e4e0a4b8f6e5a20a43e79f2b05b7c16c5fbd313c3e775e02a02bfe83e62c4a26e614100d4618d049d33182a0feff2d2fcf86ac4a1082d5369874dc97c54b62044bb609431a1b53200971f6137528b06437b57d27f55fa75844601dbe6efaf3aee73e46726ac2c22929f85ec793d5128fb99445d70b442877d746a6c15445d484f33630f2ac0521338bfba11b8aaf8625091685db1a39a896cbc3753c7d2756084553f1cd86621bbc2b29a64619e8ac1d6509d5e96f9e90f4a1c9ce544e70c0751ab3161fd2d3dd3130c464d59a9ea0881f12f735e30caadc57bd935e13edcd131d24b33968998a1ad2ec61a77835b2cc2058718657a921bcd0328632196437f92747bc492fe8820bf8579d19f87607d6599f93f101f91469c8aa5c30fc680326ed93f620d728ddf14359a22a54ab2d7783cd0ed13f207d94310f52df1723dbf670a087d7021f623f27f600804e06149282b50caba5021d4d577231e8cdad97fe367c8d3f2db8d9385e8c2e2966e5858ad09a5511a4d353d0784cc2b2b025529796f4e0c754c04f8be84467081cd93290f429e55017b9808ad3a2addf2eb42d4e9595b58979b49f54227774d4154ba9b8917c1624a5500b3fb2bd030e37d7c4b1c51ceb5941b4ecb2de8eaee6981f01f33553bbe613cd87bc50b89940a51b81822d351c401f8ea9f857c967e640becb4193086bc62e185d15c6a62af37934a554ccad0dc93bbc9918d19c45121a8475c39f5a2bd436232c488567ffceee1645e03a9e52cc4a49514bdc0680f7533e23b12e9a91e2c00625c333d21b68c1a3a7921f1aae6a68eb7e09c960dd4018d2d9ca28dbba9dd6adb8203eaf1e462585585c14ccda46bea705d412d32c2a71ff9aa0e03a196b7d6500e37946c81e73c19feb532759d7ae9b5c3b155508e3807594d0cce892ffd374faf2f02e09b0acb47ddb4f15fc2ae20b439cf9a4bf6cbf65fa8261d81e506ccb3bddabdcd94f261f0427bae6aa21a595aba1a1fcbdf96702f971097bfdbf90800a1b505fcf84d26fff331a742e3832d40bf4879c54e3ecf2ecfae291a62e49815f112f39cda7eedb24ebc64e3c4ef4f0b5c462137c2093232d33f2093b72e7c6a5821076a3259c0d119554196c796ef2387beb28142a2c4804b9e4fcaf56fc64d4dac2f21c6c615eebe66e78665ad4e11cce7815420306551770ead6067473db93485a00469df3c4afcc989d7ecff6b2d82cd0e8d68028673fbd42da4020a52aec2194ca9ad16f4b6fc23731ae01f321db9c03f2c7a4b6756e004a201031ad5a65fd8093ee3dc022f567f63621e10ee742defc8260cc9835d0b801280a3bb3852d4ad25e1914fa6d3475d33b62e937fcd962ad9dbbded2c1e3e1297e0b7f5bfcd60e9e06bc37800816c7271769f2dc59b7c44885df361652f071c71c7f94b89a3e3e70b4039abb391e644bfb48400e0d925b22bbaf5600172c579c3db308e1984bcdddbc686143b92fed967186a5c300cb9dbaec111ab60ab5acf1872d8ae313afb065bef2c60ced1393a1f376601b721d2f65cc431a2f6eaf541997a10a712229ec221f9dc7ade83cb98a9ff938bc3cf85b4fe97156db583678462884703e699a06f43fd283d5c4f98000f4255525ddae3d4c80feeaaf110fc84ff24a7b924522f1a9478904b105a171ca18188bca0b1c6c84dc0213c41654a133bb5235dfb56af86eeacc9682cfa916490a3bf0d546bdc98775fae48a188c15e1d6cee5bdcff73b0491878d1e5e09172c550a2a861395adcba408697f3d03ae77f0ead6d16757c9d64cc9944b69dbe0da74edb7f691716a32870448d581462c1d9b47922d413f9b806589d636ee6fe751625c7c756b49625dc1d4cc4928ecf55d2fc1cdfab1f538efa6730de6fc8248b6b4d7d9601c5ab84ea195c56fa4dc57548933c984ab6c24bf23a2d4b3cf2099881f839f4417d49cec9660d1c90dc4a1cced46bddb59a00d3fcb3f84f68fecf8bc21ea568e46270c8705f5fd995b4e263f17806a178d43b5d7bac200ea1532a7ed81de52ae29fb264d6c04060472029824c6ad3188272e7730eb3f3450756e3b939d3d7a632ccf79fb35016545844d0ae30fbe92501b79c4279e6d154fdbfeba7a05166065b2165b02f90356742822fffbea190ac1b634772cfed91f87b00a136258c66c5f44a1684f433afef6b3a6297dce51b60cf18ecae9710e8aeae1dfd7793cd93bdc873b0b13b16b7b2b3060c35d221fa529113d3e9870e352431d4ce955fac53887dee4cdcb4ef2c8cc78128ed476e9ab78ff24c284a8f522339ab2985ad9d8e3342dbdd6c213bc231615de9790285536faa4dd3f3425c136f9f35a800aa0d8630722c15aafd3880f15906fa1ccd5952193b762ef3bc18a583b093d261fb7f1dea308e78ccc7a31bc0587d7d77ff28fc13a903f6b5e611c50fb5d9966f861b1222b7f1fbb83412fac662920acdb2eaab31e3accdd6db6bc145dba12d69b62e2c8ff987d86676e0594c442300a28dce92454761719d83a5bc78fc0a39053999271fdf4943aed9d80e742594a0107752ebdddad2b3f13e9ead4f4f052db55101d9052773d7849aea9677c54fc0ee6cc48ab1d535efc462218b18e58cedd78026a54acbf71418a33cfbd7e0f368390933a99496937e20168ca74abbabd75dd362f53f1efe6d2833a06f5e1ed3a4e6c2465bbd8ec9b4f2af9fc16c3f0fa55a92cc26cf1dcc76e8df418b1e6ca178c250aa65d011e1a5261c36d92bd445a8e345e91de7658c71d879aba4a3960e12127d5fcdb101a3c1d9f764c6c2e1ba042c1f73458bf0bbe2f30d2077cf059fad1f88a0d16290f3a20f13620348be93f541a2cbdd23ccd21a24c05d7a91647b846aff7854ff322ff2be84985a58368faa25c093fde921d380d5cb1e5910590aa8db570bc33adb936bdc62cc493e0f5c1f0795956b0382c8818aab4d56c7b756cb36419320ace3bfd19aab20fd93af7fbb680db88538545b14c236ad03a66fe1d571603dba2c108afdba5ef05424346c8f5b0eab38521ec83f9b8182aee7d99591ce8c87b064f7a7b9e337e7bbbab8d46041c841d85fe3dc9720d533b1c0ad98b1b6e51db4cfcbab117584d4d70d30b4b783c2cdfbec27be78e75c631a31f95d6a643c68632a7dc6f506358931b305b118d243643aad93de5d14e825e3b035bba980129ffc66631c4390f20ca33bb403130ba9466713570f6b0d33c1c979ef954071ccfe52acef2a333abbd07fdd7549857562f1d9deaaf499900dd644b34b0f24cd64d73ba10f92a4b514314a6fdb59dbdbe245c4f8af8423e8b1134b3c868c81c5527fc0ae1dcc5e943d1749fcdd9df5885b43316387572eb26928fa564dacc4609a4051a9f35537fdf9d5a090da02b499206a0d4376091f0a63a74e3df02ebdf65a08881a658e8eb03d59c0c2682d17227021a918299149c4d8997203accce18063306037f4061655cbada7b01792f08afa1302b45cedf15988872fa67a4d12c10ae55617673f2d68e13aca3f242f97d4ef6761e61c2cecab60e37dcddf27d3743b2c5b298670190f5a4af2649aa265d21920eae628a25804b0912be8e0ec7bc8437c302e5f94f49f7fed4c092376208eb0c6451daa7f77d2cf8572d3308e80bdec1786e04649cae9fa6e96b2772199fcbda3898866e933dd3564b5376add8a20c447364986f337861a7cfdfc8403e372d3333f7aceb6ee57e07b2679cc09e1394ba64c55d6cc4a564388a0507d80a416568ac2969e433da27aac9464b140ea11775a25011ad5121a07a933348a2460676ad64316147a0c3de54d9f8979072d4abda1ded187c5c8f87a42c44cc6c92aa4fbbcb194127f3e4230fed3b6c7fdfdc988aa4acf978eceeb1825f08858995bd4306e6561f36558068e070f681a91829f415405238f4bc240a71d74b0d1061fed692986e0a191986d894a64ce6e8934628aeba72da5e2c4abf88cd332d34ba07c6f27f0ee2fc99d836d17c1dcca6d574e77e773dbb6878fe8c19d662ecaa9b87950e61194f632500336645a4a0647e71b083a6c33131f36f1606e900a486bb22dfa27210bcdb7919fcfebe80d69a903e00379070d2c10055eabe7ac69aad067d914cb12a72bd81a4127425b44ca4cf97e0f096a5eee40e3c73e0ff604a53b57521ae81dfd3a4e8bcafb47488586db13b9a851aafb3b0217c728785e1adb0889b8fdb58a154597c3b7770f41e0f4977f139702229bbc39cf44159266c9573936cb6aeb0d6c8fa4f1a9576afdf4bcc2b5ef4e2a6e1eea4af7a4281213c140ebab2b207ce8d6601d1bd30c487019cd49eb972b59db2c344102d9ead6ad91cc213f8d8119d05effcdbff301c1897858a43367dd5df75516bb730c66dd371e5e252be759a76f89d2c5a8186a76de98762a77447d63688a12e2e4f7c57dd0ac7d5c5a363c21cb3ca6083e62d0676ebbd0d7bf585876483bf244c7f045ac85a25027e8cecbe2a4f7b018bc22022c6397269c34b3a3b9f7c3830323afea83abd335bd5a06ebb197fa4e36aef30d0cbf75f8cbede890d5ad8d23be14f9ca5278e96004490c61adfba6dec091a22e5e57ed5c5219a3879bf3806649e4ce05259e8e4abfe98e4ac224fe19415984f4743bd92019eda6ae9b9c99eda160e5a72e6914fc5e3fec73619daff6d058d6d1f633284a8de7ec36696e66f8bf2ad451694ed0f69840b26cd2d7613a160c2e4f9de2f5f0253042aea8ff6e625d6e5e80a5458b76f73e44ded3972b59635f59396966401944f4603eed5f1eb9a06ac4afc23406621151b09181f77239bdc41ee784ed5e4b7f551ab9e7694afd536bf71fd3ea3c5b4cc85ca95d95f262c192432458311d1f0a108e08c6aedd10e1a43917ceb596ce23e67e34f14de72650c153223674d1d3cb65190b12b27aaf0fad519953432fd0ee63aa5cebfc731d6b89539fdffae1e41e346767f7710a8196d44cfc81cca78bb51482a420e4acdd9e0b4d397543b0e4b7a12ea6d7cac00dc974c9a57d621d73e66e7ef9ff0d40a0e1a7c33f8178789cf24be11fb47f6d1482be7c512516a681596d2615e0bbc8d85d38d7580e30a0a412dc66ec06a7ef1787325f34070a38e556307a505846b0827cc0fcbc4f5f8e79dc4c475aef6786bbc07c638d75f13baf3681c3d70659e258290eca50b40a4824484195d6fa106a247e0df33a7f54222ea80f720847d857a67a5fb0bf1eed2586a6fb855426b8463ef04844895e1648668b38eac539be8ba3ff38ffef8aaae3e2f0bcf0bc8eadb7d06fe812d251892011eecc6c8f0010248f8870b132eafe6f26ac8f2e8356364be9544fcc68b7216ff82660d0a072c17ed8548129dba7a5341cfec2087a3bdc3063617ee4d13cff1d8d040496dbb773abd06e83e56f09af322016325710a4065b985d97e6d0b62985dd07e333e8f3a53a14da0f18541a3f99884e0031922e14d88130b04c1d69515c093fb07cf8cb9b83fa182c3cf063bd07c5743c98b445417ed34fcb9632dbdd6fbc16735888c49fa000854358cb0a66b686884eb3d41569bd1aaa609ee4cda005a9532375d832142e1e045dfcb19cd3ca6564e01a6fd9a663678c1a3a1a405ed39f927d55a4be445f610f821428d1a53545e4cfa44e269a77243eaebd9b5d2562a51a22d67d6050b7340a96f5af0d664bc2a8be7dc89907f691d07c9821b204c725a57042e8a16fc4dde3c43887a838bcf6816a0308a11d3fa0ea9ff36b2c93937608588d30d38faa7af5ca84e39799f8591cc088987fd3887aee3d2e1117f3ce2645a4de1719627ffb62e7abeeeaadd1355b4e38e4814cd106a46e0e6d65d6e214f7e91dc2732614bb558d859555e7ad3955278dca4adf125fe635f22c46b49aa644ca3e3721d270d596637325de18ce734b000a97754f81be344d07a27b0d1315f1222966e378509ab505c342de2788ad28635f63500aa50df4e7bcef03ade9cb41b91e649f62426884bb73873332b3da023f1d724fc0f0a24b32c63dd3f96b1a9cf26f4e2d172eb0bffdfc12bf13d9c189095b1715b7380befb868d7b2179d6d0c8dec75a2a4c3e2dc2badff2057a917632a4c4b4172709c9e985f8408027fc534e87865fb4c624b56ce9489c7d65a44271ee304dbdabe5a2e89591f03b99acc285929be0dce7a914ecfde4c02f4d62bed477b8229357ec5f6dba95e0a945bb4aaa3ec3a6bca66df69e23130cb12ef651ef0ef093192caae41d680ab2fde50e27ccf350c9f9de98dfc81a3b3929410184722dca746aae2eefab3514ec46f81e55850b420d90383afcf2aaaba9dae122f059ec96ac063e34e1cd38eb11a4a767a6b108415eae9c41c6dbb4c2b41ec7d2a29df0bae79c565fd0e969f80f0c4896cb87b601d970b333967497a5e0dc61140d18c82fbbf39456d3b49072de227889e9b1771925a9ffca093a536f81893d55af4c8d10a8c9dfcb684d6c0d45397714fc147b81e85aed58a11e6dc9680ef36c6e39c38e1649d78098a69725f3003f66f3581d8c8ad3c552e05d84bb622f3908ebf08d471ceaf1e6a475206e5ff51d9af1d7be2fba6e2d9263a28cc655a2747552d29fd65a3c3fbfb0eb3b58a21e0e10036a0f0dbc38682a69f98fe9b56b8f40eeb2be832d5b461e2157c6c07c0f025267c73e13b07a4b92df32639797059a5e8eae0a05f54959fe4530923751ab6651c580bb400c0224378728f7e635868230942cd76cc5079a1bb169b3b4728469844b16bc8fb67552505d734550cfb44f6b709e11fd9c0b8d6ac51001bdf250622692ce9671bebeae4f7fd1dd0d8673a4aad3376b832e5807f97b30a4737f76b78a5e26c8ff653eafbea79f8aceea5d0d09782635213b440fc5d434e70fa19c610e271c035afe8ad0517c8849824cc17bed74095ff53f0b4e3476d85088912cc2e3c364e98b2b5ca6c67a12389b20a11adfaabbea80713917d5d33bd897689d4de46d5d9387fce5e38226d41cbc4248210f7c58195306cda14fbb1c25ff8d166bdd74c236594c15db231205e6c5eabd3067af3f35286bb2bf0090608a6b4c6774aa1d8fae52fa921fe5b94b656a4ed9daa03d01c6e6dcadb7c3adcdf910ca70ce75ca90ee55859abeff365f5d92d34e4e51c0f15d1efb5ceda9ffbf935f54f328d1b7ebdb9cfa962a1635a5c449e8336be3a0ef04dd3a2eace15377ceaec4ee5556fb2ada4d1d398c76d3fc178d02571d86c95f2c3ce9528985c8192355d2c28acb315f58aa21a0da2be3861ed15f951b8c26b3fc29cd34a7667d540b8d7fc53c402b87765069a43e12a80fbd460b623e9fc0b2f3ff59c32c68e09454f75041769148eac0b8a6caf054792ab4a31efdc5a25d05a684d89cd4d62f5a2daadd21a27947bb2bbb75397846469c7a52a7474bd3d24878cabc47658fb12349dff2b5a36c8324119957a6a1111ec123c89249f2ba05a59ff4d0be87011cf602943c2196290f9fc4ecf4d05955e7eef2e368057e54491e1312e5950f181d1152ab2e32868b1c03bcdcc9dfe221b877b0ff2c9af86693749a942ce0560fda884c51e33444afa845fd46cea186709544f98e0dd896db2c26df3f7349723d0b50de80c4a4db884ec8e3e710ded83822c2e0c694d971c9ba6b21e24b04f4c4d123fccaf17c3252192b0e5788f451d7a7a1dda54d8209c44b1a1a83f68d52f6e0ae3cd16aff85878459153627d5336535c70d80d68a4da7116260ce8d075d031437e8c79209c181e110cf324cc23e2b72db2f425761c60e7854ae3ca0d8fc5d6c9811ce9721310ca314458eb6acb5d67c4d5431f914e74b290a521c6fa3e67967880a157f5e89286dede4fc1d8900003c446b3f1337bd2cbc189f7a4d92a8785c7df5b6b3694c03f8a6ed0ae2591b6ee904a295155c4dfda7e029eae88899674d4ab877e807a809346b0d74a8be1d08823ce22482c5f01575b858bb86ff4bfdc5d2667f5a3bf4d9c11944ca4d4b85543bbbcccf0dd5b0af056e1509a7d0b84bb459922ec7d3c2f905465e204c3bf9d71fdc759e19a07fd94fd95602aa982ccec83c85a56d4fa7858cf01aa3b8ece4044eea2ee99b17fe02b7517e993a0c8150eb6e92afe5a48fabe7124ab0cd4f9b98d0a0094e174e31da7da7d9999978372c68c2ffd04f795820c5b3e1047abdb151a4216d54c422512de883aff7cf8f3b222d89472cdc65f2f1d0786c984333f6f70d53621abe1fb20079ff7bd517dace4ffe9beb270bd658a7ac4ba5cf259a9467152b486eadc887786483c126323a5d7c368cfc31def42aba3632e3cb8788976b33f656d455ac2c2a4ecf08712af1355394b141517a606987132cff0d4fa30ec78ad990a302eda295b5eb77034ac36094578dc82398989a8afb680c4a55e9d38ad121abc129abd62e832bcaee5d49b10f2111053278e642535711936e0aaedb742b72b3e28c411e0b093c82bdb4bdc7cb34b72647cc65519996c7a830a3be810746d171ae0b2070ae2a5ff73c08d9c01d632360029a82997cd8906a5ad914f5b940e6a852e71f06db7104f5204f928dc0a49c971e25b4a40c6085cff6668d9d363ffdac4ecf9c1d8bc9611b411f25324cb227213590d12c47f9b3ea3113e403993d809fa10c08dbe3c64633ca282d419f8ff548554a0f85056590f536f0ab23c6c55e6abcb09f83b10867718440920ef88a09db5eefd7f0dbd95862762679fd2b8e016e0f42ea10a05989dbd44d72029d792fc1316d2a745d4703b765b6020c09d4f8b71260062c0ce4d84b4998195e9a9c766e459563c02806c3b719a382b8c7c923ddf3b58bf0877ffb54d2c987750f30e5802c0351f4240dd5d7d4f59b2d56026fea0269186811f9145fe9436a60528be14d23ed27eb5c4312d51fe3054a750be188e4e618f6a59ce37e5784ab50d6a1cba2e8648cb5d6ca91419d3ea90eee649e44a45f1e4edbb633ba2098014f6e741b043d3d9c920cfe61b7142238b2139d1024aabcf0ec92523340e177fad8f16bf78ec9708d6a33a7f82144062cfed083023553aa263f55f0a340eaa2f77b4efba6acf82a46ba821441625151c1e688350bc5fdf9ceb9da74809d440dafbc679ce243921ba8a3a3c2232419da3c64fbdabe311c4ce7746ef49dd92f4c6510e7fd1467b5d6a47b20123de62f783b71b56c273463fda0778726f36ebaf810e9d82effd347ee7ee1edf8586172ca053b5fde324069c1f729db6edc28ddad7c653658a86bb467f51591eb5da0fea90d8859a96411c59ab38f3194a4a3b8d1245be6630cc169aead6de897007c185d59bb69dcec2f3ec45db478b4da619c9807594f2c510217df83d7e1b90600383f3223148516654362324024f9f9933632f062b3806a9378717a55f031366a2e5a050d624cecba8188135ec11f59712bc10efb2b3da80693a0460d1597f3c13420626358a13dcbd5e5e2dea85bc16921d7fbe41821e8880565af677cfef4309e6896d69c6b48464f6d52aae36b565bea73cad4b7a0bd1c0839721e68102f712e06ad97e2d582595e3af245649866f4448af4aee16c6f0683c1e75c1b53002549a1e20151f8dfa5989f5f68f5d4caf93968bf6f1b835d8c054587c0fc84cf3be79e3fa717141486dae76c64d370468f0c3a4957218e3d0daafe12f57a887a0aeeb099bae4098ec213b54216ec35cd32d7e76118ce4f5327653c2c0fe3791c65c5b95e451a30a008f13dae12ce755659fcb64e1590e5ee0bed24d29599b027974a00759e4cfdc17420ea6027d439e7b6b05d5fa96e3e42da05db8ef67475e955609e7ddfb0599951c563cd087b9fdcdf71290e450cd6c7dc94aedf791ef322cf50fee64bca5069aa8e8930244060f648f04b9d974a7a143232dd162460267dc6dabbe466e0657188857d6340d34742a232fd9aba0f947c40f0e8524acdfe5e83d75af71ade6edb2f90c7c5aa352dcd8b14b96cbfed07dc4117d4dbf66095abc644d53b1fc33bfe3680237140dc20c106a2d121284151c1c74a9f7550ccb0a6c740202bb384d66c0893223c30508c6280575b8fd096b18543e4b54278d52780bce01f0a86387c72c79a06d3305f9d6dbc00fdf79827bae82270064048e0c3e95288d3707e5f59d5f5c276233ce0f4bdeae8c13f6eb7b5df1cebe1a0e9ca61bc3f9c5bfd83cbd8cf70b3ab86823ecbb8fb91ef962d205ffd523b369c3416b701dfb0da3f26ec4308691ef54f38844b0613004001a62bf61179eb068a087049071185c23fe895eb547ed087667d688478117db05c33342734e23d7c654d1cf5e70867a6a313c80f0dfb29843819df5bb93adeecd27fc0815717d523c2a900c30f606d666c9a37f89fd8405c316a09b41247022f220e4cdaff82a669a6e74047bba755547eaf5cc04756c5391ad1a52fcf51712d2b1f78369b565d3eebf96fcdbaff31208724f873dd0b6bd422821ef7e8e043d3f30fb3d1f88b77276e0128d3cc0906b7836231353886ac36c7189fe0549c63bf5f824cafac1c3e92964f04b3d55a7c74ffdb39c8a42f3cb6d11803aa6a69bacb2c288348224c6c91d76f04d16a0d4c1d88ae5bd5b2486702d161daccc2e1427dc330027d759152acaa8bf5e05a7e7baead431c129b5ecd6b2761c83234521cf8649c61d864e6f0a3a896a1ace11fa22d3d12f6cb2921c5821de2c8aac8092bf5df25aaf897083701db694d8ee88ceb6d412d71fd585212558f29e777569c67320ec44b0a659b2379375494b09257e512bb6e4347db2df731d2a45126397ae3b0f093039f93463242a0d8a03f36eeb2431e69ffd8f856576975ae10a3783714d2058bdbd0353b26f752ea5339df8fae29337573568e159bb3ac36a1cf894b52106a3111254a6dff82658c973388c075091188e40076411a91c09a1f55adc123b85345fcd965b9fc86af2ec9e78a3ab2251c5a41e5073e4b7019ff7b3e75b1cd50b615373217b15fce17aac4a56822e7d663b43678203af69a026aebfeeeb7e36402627771301d81b9881680ec6edff1dd6644f3a753a498e94df74bce23858f6d493c46808a94bb0f2c145e9735c30c1b3d30ebfa0201d23820f50071952daa1d54c9bb22601f8658127b5988ff5275a67048da6734894d6d0bfdb9491a3ac409397b1fafa8c296059fe8b3a2daa4921425736488215068b2f5993991ae4fa8aa7e1070f610923ad16999ab69c3474223ca2d2e666722a6825355d65577f1e34077cb15f06ec54f811a40fec2ef5732343c49d6de13f5647937ef234da5d9e52fbd47c169716786f254022305f38db7fd0d70124589f8501e7d63bef7009dd8cbe1241f2e9ebdc4bc18692042ec9fadeb24834ce347c97508e494a74b2fe837395c488f608b65a561119d724721842868c9bcb1b42f7b0be5ec16d3fb5851d38feee53a53c3fdd2669ed5c0eaa344063c7b55d90abff89b7be8beadbaed0d73eecc3d9665f1ed0465c3a399d2529fa947ce878a9cd6f384374593f0bd452049977c789cc2fe947cbf02dc96d95a62b007b85bf8d150b5e522ee03e6356f9a737f7876a14360b958dd734f4b235eaa627ba27380b2a05450bca496d8a5c09dc018f14f93bd18ff61a2b111aae3cb67cc65b15714400372275b9ba0533aef8bb26daf5e986369ed44c789fa95d2d7c2ad52837e201eb8a5cfa44f28422e467b94680e0985a3603bfa3764173e183caf71190be9f2a75cc3de06460a47ab87aa7d892ecdc452bca631d43294ba19475e72773c115de8f450ffcccc4f2e73879f273c3c0f73b918378d6e9bd1db008dec62db776dfa305cb30468b2aeacf94582fc68dfd972ed7d482336f56876b2e6a65ac8c0761661fe679a5ac89a6da146df6317cf7027882c6e1f21631b68b2f56b80975cca739c8f6a40cea8c477febdf47e6d5dbfa7593c3b5c139b55ebba621af3bcf89e1daddfafa10af12480fc0fac17b0add0a8437d046dadebbf5fc0dcecfb5eb291272b4f4950ac19ae076c4619e91a9082829d45115ae59e5276764183afa528d6049de18ced9e8a4a6aaf86c761f738f3ca8d53baf2a88c889b3a855f22696973701b335e6d1155f54c3a226805cac86ef5eba4832d3343631f7da8c878d435386410dd7fcb6046c62e9172972e6c85dad7ad5c7f6391cce43c4d1a633fcbbc8c5a3b6cd4d3b0df646c732d3664f55fcc4c4f3bbd12db794d6175651ecf1134086f03fc16e3a70c2ed6eff62befdd89f99c408f53c9678c64b81ebbc41519fb49a2f26d9275ab240362b1e606536195475be982bb73391292eae4b0f541a01c094d7a7ae11a8f891352ff8fff494adb038788eb77f378939d1ef8a08d4e9f6201ed659ad911b91624f7ad29cac019432159ff792a1ba2f2c5e136f4ea714bb0ba61ad62b6f4219f50bf3203c1529eefe5ecd8b7105ab68e67bfe9f1e30e695c0f00c8cf657910735fdd7d81b26e90306b8bf6d0248f99a8aad8afdd8853f92ef8ec1a852b669137a939941b9676fc590a1cd741f802a286f260e8a7a251cbf1228e9a54cf8bd4e13c6fe3b1fc85f9d745f9cfdc8e92b5f6ef4843fe8e2ac4098895c619885cdf370689a8c421897ba3db77a1a354b178f604dc3a8b0146dc0fa37d083e3f23d3fc31674f944388f4213a872fe4e03006dc3bf65fc47e00aff28aee169895c89e3efe032584fb262c48a3f35af8888380ec452b5fbfbc8f9481eda33d46e39d445ebda7d46c3a9a61874c5dfffc1f1581c54e478a7d9e007e07f959db62679128035d4ce1aff7dd7e1833c10f34d7d6480d5b1c55b8511a8c91a93229515aa7409fe004bdf7d995d4bf4198d63bc6751f5e7da6d65216bdd842083d9b509dbe591bd8571b466da304e66986d5a8cf7d1848ea1ba942ac5cc49b2b611406a53342c0706abda7b3dd152a05e7fdb257f5dea5885a9b3fe3d1042962deb25ac53f5949ea02563521e68fa722232759ace388f947f4ca9014433a656b3d2b17c6ac06e1163a65dc67b021b496eefb756123deea2dac096f284c16ea82288c56953ac49b6b5f48951fe4872e84c40bd67f2d25a72f124d66057f62a24dc03bc7810652620737cbae3433cf17bf2d2aa56eddefa7e3f574525e2493658427f31c2f895313441377b07abc042c9b364b894aaf930f68324ba38f1324c46b6a58797801470af45ff17332b0cd4b600a60c0a3d62eb6d13dced3090ff10eac67940e355039f29cf9bc32b7fa68cc506d92576f1200a3271277f34ec147363e0576a02fff06f6e1f8126a511c02a79d53eb73e949ecb8d3d497a8485844a6aa04ed0c61664556aee93bfb012036fc4e319e019d68f8a0fbcf11b53a9b5c10a07c6d8e3243930b53811e252c79f658a2ae7edff3b19a30d463d4e6c910ead0c9be64c568262c1868eb75aae8ff4e402ff144bb8751e6677c4a2a4f48164d2575232bf88b6bffe38f83939471820bdaab9f6770c6a934f5ecc6afae93e28eb6cd7dc4668b8e79b07fe6be991e3553a26e6c985c3190127855dc738c7b1bb6840fb56360582c27e7369210e864586bf1e275c31cab86c5b80eab9b8046d27af8a72b9b0f6f094e5d9af063279bd0f4650c732e13f51c61944474e196a6df6de716c0eecbe85e47fe1cffbd23f32ae70ab92f7d9c1ef48ffe7913dfb50aa4db2f391119f2b1ccabe7f8ca2fdbf8c02acc10188ba37e9a155b2ad2a1679f0d324d8ed5f1eb12d7dc901af26b59d42c3e0eb1ced61e84dc2a2a38d2ec5e62da61c757888acdfed4aade65102d07d427251433036d0f11f9a23c76c662f0a50ddee2399f5da0c24bf7f32650afdb92082d8ddb16e1a0bddb7e4a11aa02ec28197446f4a867bbadb22481958cf12b49fde4e28d3251d577bcc2447650f76ba3c99a2507aec29b0b807fc68244b28a729924e1763fbc3ffa12c76e51104582a757c0578e7fdc390e00d20fd4c52120b62f7b59f77daf6c923f37dd7237e80b79147ed7256d2e4f32efeb7f429c38c0f7407e3e5036daccae18705b76ab8807d4382e03da0f186c81d08155c37fc4218e30f2db67482ed15c5844ff71d998ce014cc8095f7799f58fbd7e196ca9dcbb678b787c36ac477ce27fad318765dcf5a8028abb2cb46c94bb96e76b06e509a6a701b7c1fc74b25311e1da417dd768cfaea657d7eea61f1f0d24f318ad3a3f51808845242612b3eb1136ba9b2277a5d0fab784dde0a8b09915b9990697658257e3ae2b3bcf111bc9861d52c0bf62003b155c5241d3449501548e30380d4b5b8a05c2fd1ac05abfda5261e2583b3becee78cd54c4538c0454cdafc4d824ea51dcb57409c2830b1a8d7119494d4e6d3ae9927304713166f9bb0ed340cacaca27aaf4dec12d1c6c62256968416efef3fe5fc01a645d7a3cd931c5bd81ee9626c119abac1ca661c599c8dc1d60287c3d5999fc0c5f7175a531cb6dc0f5d888d78b8fd776de4a53049472cb03a8f12ba5cb1a7e52b53f55a293d890cf0b7ca1c420494d0ee577c7a3b2bee037d9d8c9a0eb5f639c8a432814e1a8f2a7c30473847a0883dd6991d9aaae33603b509d13fef66a33a5a6168f8545e159193ed1d6e268827bbd78ec66ebdc29c7b0ef4732e53102ef77030370cb5088095e2ec8143d76a240f8f784f5c3cd54012ae8238394575877bdcb9c6411e24e4571c95ba33fac655adef9b48aa97f5733bacef01c148914466e335184b9cff5f6945187a2d13c9cc8294f31cfff9931d7f9b33e94992493a5d6ae8adc21dfa85f9a7680b80d77c70f7d725029b68ab3dacd2da21ca2655ef2967db828816ec1b036b716eef967e7b188aedbeccbad46f72dcd9a9c0fb27b937f4e470ff155af97f7280a0bb93e4e265532ca8625f7e4e7707003549ece65d8ddbf9f367c5022cc3fd1ca70201c88e94f8892f2ad837c2fe5b6783541c9931ef4afb907257f84553148e7e5cb400b56c2f6cac5a0fc14c1351656e692950e27ea221ffee928ad3494aae97ab8b19009a7cb8ccbfb3518930aedab57c506a01cba9d1f13f1f78101bbb0df304ff85d5c73d2366d2a3844e4929db0abf553e6789596b560e23ddc5cf003305e3331fb47718efaba583a773438e7f21d4b65d0a67ca153574fffe1504b03e03c8b7948e5554aa704d842b1ed23fde718bdcace6bea4b8f20e2a3fa54c0f4cc3f4559df05ca9954f6e3d40a07bda4808379864551a63c15a3f591ea8339d76a4d3a8d3158ebfc1152c971033756f95b66223c4f36341b7adebab2488c6e945c0475b3366211dc7eb007c61c995ce46c69a5e5b5a50dbfb2947cbfe9253362abf0797a6204a17b0d5fe404b6ab177282c3610f4797c659f2400d61bab35b173c36b574e3c056baa29aa3d461ee90974e009c56df8f1595fb7150d9b7d84b5e75fd92df3d1086de84c5a68660ac32673245ddddfb2392061860c290aa0e5a225182df9977325890e170fceb5693207cfc90bd38bd45105825b19470120a3e5ec6846745757e2bd4f0d2eb4afba92d18a9b0490cc60fab15a287a7f760d387ab72e6381f8cd0367a6175b9c8ceb85ae31e2138f444315c3d0767cc61dae5e497f7c6888d47c2a2f6c56c23ec01dd9a15b2dae925b98d84f5a989e291cba48ed3663172044253fcdc2839e9227f216184799eef5b0427db727b55c613b87c0747d77cbdeeee8f5fc0467005989eb39a028ff86741ee6e68d40730e8cee4a8bbe70bfeb24f351cb5dd9ed908e5fd80738f1129bbc3c9a6a81882f62d980ad9caf835de4c223bdaadd85431c20e55a8034ed0b74c651565b788b5104e442eb2811722f75c1ae7dc95812223cbb9c11c8b9f037e8a4af87bdf2f1cfeb7087669054b24098bfd986a5283b40b504e612849ce2e5f8e1fb6bedd6fd2c4b2076a1e9ace52381d535665e1d2c16302323fbc4f6bbf42a1eed82d48c71acdf4da1a18c1471b7889b3968266f655ea28284c3e77b861bc139edf65e70a7a0f954ca248c983965e40d93f41addc6ec844818961e5bc895b167ca15c9c3530074d435b2e799c7084878a30c85d0e7d4c0fce790d0243a69ed39b2a1bb0a5c2775b99fd8dbf75b604b4c62189c31a14809b5ae54d705f66c19521f13c71dd7098a6ccddb4f9f985a953d98f9c7e445793bb866780ed5320e91fae0b3bb0885e3dd494719aab38e18752cf23cd6df15eefbd22f8836b5ec7b293ed75b7f333333fd8f5f5c143f06bad398e34645f214df62cf8d612132a48728201f07974f785e2ecfabbfff9cc828693edb1e169d097cd9b954ff673a921136675df2ca8aeaac3e858facd1eb33e7e64a6ec169607cccc24923ea41b91d548157a146241d336096906e5f2ccce4995ddde8c52760942d620c8aaffd4a9eca4013daebb9cd04e57ac89a02bf9cd1a3a907e277525730fa33f3f49a6852fc8407f63c004d195c49ab08170d369d5dc42922cf1e9c586aee88592788a5de419e2ceefbaf432b74c63a929636ff3139315e9698268ad0d43af94273ddac83c80092539c410da233c873ab358fe2e2683fecbc4715adfd72163115fc8fa30da0162f49701ab359edd6ff30bbe4c03cd8167b79721b8e6eeeb1d5181cbeb3c02cc6c57746cf9ac4bc0931f2c4ae602dda5da2d87f59cc3eb2b7624ba76213f6994df0852bfee269fdb7a72df007f8e86b92b78f7bae21b4bd75ea5b04b4001868431073d82283defac7c8b205c1238b36039047f7a69f584506bcc56355c586482d045bfa5a38aefb88aecc059e6826f53222d2a50475da2bb255467fca488655666e4fbf7ba574a5e0a197ee3036090b6d2dd6c5909842e6786cbb6ae52ae31bb615a3d1daff485691d1b9821514b296032dace269d122335e9445dc0e803065ae560a57e8df9c8e2e18a768eeb0a8e52ed4d91fbff29f12cc5fe7bed8ffb131db538d76b074085f4683c00b36e31d3c3359944c501e0c914b1a35d1126bbd8bc357b0047cd6d5b9661012ae7b3ea0c201763374a60b08d750af6a89b89c6978a5c9da59af94f510979c9750d6bdab6a970b0c1ea72ee5d7be2a919b1ff99705d8af11d22a926fe2dbc8b40d1621dd0f7d4d6473a38e5d38bc559330e588b4b7f4ea322110bbe5ea042f5156987b102aefeaa3cf33ec258edf09ffd096be361c14ae56fe66b81ea624bb48d4822c5be12c7ed70b5035aaa95b321bb712fc02066e362b3ee87a2393599f1e4de401865443670be02f1932c0ea914561ff6b90a7641a78b842b9d6a298f601d61f3ae691374c9d3876f6f64f5f20a405d396cef8e75c3087e7ac770591b9e437995579c32121387e35215aceb5f4939d036ac6a75d99a271f9207a1a2cc96a80fdb82f0adeadbc229e3a17a69b95c9d81843254e9de942471f1d4b1242746d80982e47a00ee3d69e116014b90b4552084ae7ad59f43ef89b106dd1d8e5335c456d993f0f0bd0ceda77805a6c551faf19bcf390b2274622b2b65d37e1fada770808087a07063d4c4c8326d15556c16219546b2c7909619db8bcd5beb0cdd48f0441540134b730d453f0b0e1a4edda96e7d6cc8bfc3199ff35ea3ed205ce47aa30d503a41c6387ce7c667d1733dfe2e3865e252e97e995d5224e30afe6051f9c7b27c06be7802bfef0b4a61ebee1d0b8f49aac2ab832cbb3fbaace998b7889a556acd43f887f0fa315b61137286f00956008c5178188222365240fc0defbe3ed6a55f9e9d91e424f3706694c38d050273436ebb982c618a1a1b320ef339b731c781bf7af8d6184586406cbbf1d803f9d680bec148a7ec713f5c6e106cf60e0a86a6870862d91ee7816cb10f5d8f1a76b12ec8991ee110b51022608f13394641d5150a2250f7e86acf4d34ffa609520cc89afd8e95be4d86f5f5f70a8c0c348a2ea61155899590316ba3b17163f42943eeeedb492a685f258ed92fcf7ffbcb869e0faa8e4e8b840d1b4449e339f807a06fe23bb159e8c0d5145afe305fe7b66c6c560a1317873af00cbdd4cf9b3a4f7d6891b6284133aeb5b4bc0f80356df6e0a660377f9aed082e23fae74d1c75d5056f4bf63799d005b5b377e086c613a085ceaa105d3c45c9840a31dbc62fe1533e17af28849b9afbc221990c9672f4000a4e0afbce1d2606fc8091a44d33a78ff2b89f59d15e1e2cf8bd450f68b30aba2938a62af69d5a5562a1d6beba035a02aed21af7058ee2aaf4617b55a3df9c1523569fc7ffa9754017a54c56cb74873a05cb604a237851c4f5b025a86def61a7086bbc9807978afddbe168a7f5130266a6f6093bbd1e59c43a7b1dd898353488a65c48eaba6bef8924a1ff8e3eca519b9f39b708eddc7ace63a0927d62a409c57e905f1f071f8417910df8446601c55151b840c45fbdd831da860d4fb81a70062bdfacfcb3df08d818a5387ff31583dfa8630d07f989eefbbc97a3ebad97c82c9adb19b9f8cdb92df223d53e17b3bcbd538ca1b53e34ca5fe01b025279ac0df62975941fa3d337748cd931d59ecbf33e6c2d9cd792adc</script>
<div class="hbe hbe-content">
<div class="hbe hbe-input hbe-input-wave">
<input class="hbe hbe-input-field hbe-input-field-wave" type="password" id="hbePass">
<label class="hbe hbe-input-label hbe-input-label-wave" for="hbePass">
<span class="hbe hbe-input-label-content hbe-input-label-content-wave">加密文章,请输入密码查看</span>
</label>
<svg class="hbe hbe-graphic hbe-graphic-wave" width="300%" height="100%" viewBox="0 0 1200 60" preserveAspectRatio="none">
<path d="M0,56.5c0,0,298.666,0,399.333,0C448.336,56.5,513.994,46,597,46c77.327,0,135,10.5,200.999,10.5c95.996,0,402.001,0,402.001,0"></path>
</svg>
</div>
</div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css"></article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta"><i class="fas fa-circle-user fa-fw"></i>文章作者: </span><span class="post-copyright-info"><a href="https://wanxingge.site">牧星</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta"><i class="fas fa-square-arrow-up-right fa-fw"></i>文章链接: </span><span class="post-copyright-info"><a href="https://wanxingge.site/4f3869d.html">https://wanxingge.site/4f3869d.html</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta"><i class="fas fa-circle-exclamation fa-fw"></i>版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="external nofollow noreferrer" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来源 <a href="https://wanxingge.site" target="_blank">万星阁</a>!</span></div></div><div class="tag_share"><div class="post-meta__tag-list"><a class="post-meta__tags" href="/tags/encryptHigh/">encryptHigh</a></div><div class="post-share"><div class="social-share" data-image="/images/System/Shell/sudoers.jpg" data-sites="facebook,twitter,wechat,weibo,qq"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/butterfly-extsrc/sharejs/dist/css/share.min.css" media="print" onload="this.media='all'"><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/sharejs/dist/js/social-share.min.js" defer></script></div></div><div class="post-reward"><div class="reward-button"><i class="fas fa-qrcode"></i>赞助</div><div class="reward-main"><ul class="reward-all"><li class="reward-item"><a href="/images/wechatpay.jpg" target="_blank"><img class="post-qr-code-img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/wechatpay.jpg" alt="微信"/></a><div class="post-qr-code-desc">微信</div></li><li class="reward-item"><a href="/images/alipay.jpg" target="_blank"><img class="post-qr-code-img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/alipay.jpg" alt="支付宝"/></a><div class="post-qr-code-desc">支付宝</div></li></ul></div></div><nav class="pagination-post" id="pagination"><a class="pagination-related no-desc" href="/7be7930f.html" title="Ubuntu"><img class="cover" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/System/Linux/Ubuntu/Ubuntu.png" onerror="onerror=null;src='/images/404.jpg'" alt="cover of previous post"><div class="info"><div class="info-1"><div class="info-item-1">上一篇</div><div class="info-item-2">Ubuntu</div></div></div></a><a class="pagination-related" href="/1820e20e.html" title="接口大全"><img class="cover" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/join/2.jpg" onerror="onerror=null;src='/images/404.jpg'" alt="cover of next post"><div class="info text-right"><div class="info-1"><div class="info-item-1">下一篇</div><div class="info-item-2">接口大全</div></div><div class="info-2"><div class="info-item-1">常见的各种接口对应的专业名称,来源:公众号 芯片之家 </div></div></div></a></nav><div class="relatedPosts"><div class="headline"><i class="fas fa-thumbs-up fa-fw"></i><span>相关推荐</span></div><div class="relatedPosts-list"><a class="pagination-related no-desc" href="/41018278.html" title="系统还原"><img class="cover" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/System/Linux/CentOS/shellMount.png" alt="cover"><div class="info text-center"><div class="info-1"><div class="info-item-1"><i class="far fa-calendar-alt fa-fw"></i> 2025-09-23</div><div class="info-item-2">系统还原</div></div></div></a><a class="pagination-related no-desc" href="/b7821a57.html" title="磁盘扩容"><img class="cover" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/System/Linux/disk/lvmDisk.png" alt="cover"><div class="info text-center"><div class="info-1"><div class="info-item-1"><i class="far fa-calendar-alt fa-fw"></i> 2025-09-23</div><div class="info-item-2">磁盘扩容</div></div></div></a></div></div><hr class="custom-hr"/><div id="post-comment"><div class="comment-head"><div class="comment-headline"><i class="fas fa-comments fa-fw"></i><span> 评论</span></div></div><div class="comment-wrap"><div><div id="twikoo-wrap"></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info text-center"><div class="avatar-img"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/mx.jpg" onerror="this.onerror=null;this.src='/images/mx.jpg'" alt="avatar"/></div><div class="author-info-name">牧星</div><div class="author-info-description">高山仰止,景行行止</div><div class="site-data"><a href="/archives/"><div class="headline">文章</div><div class="length-num">14</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">18</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">5</div></a></div><div class="card-info-social-icons"><a class="social-icon" href="https://github.com/wanstarge" rel="external nofollow noreferrer" target="_blank" title="GitHub"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:wanstarge@gmail.com" rel="external nofollow noreferrer" target="_blank" title="E-Mail"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://space.bilibili.com/501936197" rel="external nofollow noreferrer" target="_blank" title="Bilibili"><i class="fab fa-bilibili"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">欢迎来到万星阁的小天地</div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span><span class="toc-percentage"></span></div><div class="toc-content toc-div-class" style="display:none"><ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%9B%91%E6%8E%A7%E5%AE%A1%E8%AE%A1"><span class="toc-number">1.</span> <span class="toc-text">监控审计</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%88%AB%E5%90%8D"><span class="toc-number">2.</span> <span class="toc-text">别名</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%AE%89%E5%85%A8"><span class="toc-number">3.</span> <span class="toc-text">安全</span></a></li></ol></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/5c8e05d2.html" title="Anaconda"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/programmer/python/conda_env.png" onerror="this.onerror=null;this.src='/images/404.jpg'" alt="Anaconda"/></a><div class="content"><a class="title" href="/5c8e05d2.html" title="Anaconda">Anaconda</a><time datetime="2025-11-06T03:51:07.755Z" title="发表于 2025-11-06 11:51:07">2025-11-06</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/369d960a.html" title="环境搭建"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/study/AI/nvidia.png" onerror="this.onerror=null;this.src='/images/404.jpg'" alt="环境搭建"/></a><div class="content"><a class="title" href="/369d960a.html" title="环境搭建">环境搭建</a><time datetime="2025-10-23T05:47:18.681Z" title="发表于 2025-10-23 13:47:18">2025-10-23</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/4d45ebbb.html" title="Vue2"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/programmer/javascript/livePeriod.png" onerror="this.onerror=null;this.src='/images/404.jpg'" alt="Vue2"/></a><div class="content"><a class="title" href="/4d45ebbb.html" title="Vue2">Vue2</a><time datetime="2025-10-18T16:28:48.181Z" title="发表于 2025-10-19 00:28:48">2025-10-19</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/3a42db2d.html" title="Vue3"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/programmer/javascript/livePeriod3.png" onerror="this.onerror=null;this.src='/images/404.jpg'" alt="Vue3"/></a><div class="content"><a class="title" href="/3a42db2d.html" title="Vue3">Vue3</a><time datetime="2025-10-18T14:32:31.253Z" title="发表于 2025-10-18 22:32:31">2025-10-18</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/7be7930f.html" title="Ubuntu"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy-src="/images/System/Linux/Ubuntu/Ubuntu.png" onerror="this.onerror=null;this.src='/images/404.jpg'" alt="Ubuntu"/></a><div class="content"><a class="title" href="/7be7930f.html" title="Ubuntu">Ubuntu</a><time datetime="2025-09-23T08:25:23.294Z" title="发表于 2025-09-23 16:25:23">2025-09-23</time></div></div></div></div></div></div></main><footer id="footer" style="background: f0f0f0;"><div class="footer-other"><div class="footer-copyright"><span class="copyright">© 2021 - 2025 By 牧星</span><span class="framework-info"><span>框架 </span><a target="_blank" rel="noopener external nofollow noreferrer" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener external nofollow noreferrer" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></span></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="日间和夜间模式切换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><a id="to_comment" href="#post-comment" title="前往评论"><i class="fas fa-comments"></i></a><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/medium-zoom/dist/medium-zoom.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js"></script><div class="js-pjax"><script>(async () => {
const showKatex = () => {
document.querySelectorAll('#article-container .katex').forEach(el => el.classList.add('katex-show'))
}
if (!window.katex_js_css) {
window.katex_js_css = true
await btf.getCSS('https://cdn.jsdelivr.net/npm/katex/dist/katex.min.css')
if (false) {
await btf.getScript('https://cdn.jsdelivr.net/npm/katex/dist/contrib/copy-tex.min.js')
}
}
showKatex()
})()</script><script>(() => {
const isShuoshuo = GLOBAL_CONFIG_SITE.pageType === 'shuoshuo'
const option = null
const getCount = () => {
const countELement = document.getElementById('twikoo-count')
if(!countELement) return
twikoo.getCommentsCount({
envId: 'https://twikoo.wanxingge.site/',
region: '',
urls: [window.location.pathname],
includeReply: false
}).then(res => {
countELement.textContent = res[0].count
}).catch(err => {
console.error(err)
})
}
const init = (el = document, path = location.pathname) => {
twikoo.init({
el: el.querySelector('#twikoo-wrap'),
envId: 'https://twikoo.wanxingge.site/',
region: '',
onCommentLoaded: () => {
btf.loadLightbox(document.querySelectorAll('#twikoo .tk-content img:not(.tk-owo-emotion)'))
},
...option,
path: isShuoshuo ? path : (option && option.path) || path
})
GLOBAL_CONFIG_SITE.pageType === 'post' && getCount()
isShuoshuo && (window.shuoshuoComment.destroyTwikoo = () => {
if (el.children.length) {
el.innerHTML = ''
el.classList.add('no-comment')
}
})
}
const loadTwikoo = (el, path) => {
if (typeof twikoo === 'object') setTimeout(() => init(el, path), 0)
else btf.getScript('https://cdn.jsdelivr.net/npm/twikoo/dist/twikoo.all.min.js').then(() => init(el, path))
}
if (isShuoshuo) {
'Twikoo' === 'Twikoo'
? window.shuoshuoComment = { loadComment: loadTwikoo }
: window.loadOtherComment = loadTwikoo
return
}
if ('Twikoo' === 'Twikoo' || !true) {
if (true) btf.loadComment(document.getElementById('twikoo-wrap'), loadTwikoo)
else loadTwikoo()
} else {
window.loadOtherComment = loadTwikoo
}
})()</script></div><script defer="defer" id="ribbon" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-ribbon.min.js" size="150" alpha="0.6" zIndex="-1" mobile="true" data-click="false"></script><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-nest.min.js"></script><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = false;
POWERMODE.mobile = true;
document.body.addEventListener('input', POWERMODE);
</script><script id="click-show-text" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/click-show-text.min.js" data-mobile="false" data-text="I,LOVE,YOU" data-fontsize="15px" data-random="false" async="async"></script><script src="https://cdn.jsdelivr.net/npm/pjax/pjax.min.js"></script><script>(() => {
const pjaxSelectors = ["head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"]
window.pjax = new Pjax({
elements: 'a:not([target="_blank"])',
selectors: pjaxSelectors,
cacheBust: false,
analytics: false,
scrollRestoration: false
})
const triggerPjaxFn = (val) => {
if (!val) return
Object.values(val).forEach(fn => {
try {
fn()
} catch (err) {
console.debug('Pjax callback failed:', err)
}
})
}
document.addEventListener('pjax:send', () => {
// removeEventListener
btf.removeGlobalFnEvent('pjaxSendOnce')
btf.removeGlobalFnEvent('themeChange')
// reset readmode
const $bodyClassList = document.body.classList
if ($bodyClassList.contains('read-mode')) $bodyClassList.remove('read-mode')
triggerPjaxFn(window.globalFn.pjaxSend)
})
document.addEventListener('pjax:complete', () => {
btf.removeGlobalFnEvent('pjaxCompleteOnce')
document.querySelectorAll('script[data-pjax]').forEach(item => {
const newScript = document.createElement('script')
const content = item.text || item.textContent || item.innerHTML || ""
Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
newScript.appendChild(document.createTextNode(content))
item.parentNode.replaceChild(newScript, item)
})
triggerPjaxFn(window.globalFn.pjaxComplete)
})
document.addEventListener('pjax:error', e => {
if (e.request.status === 404) {
const usePjax = true
true
? (usePjax ? pjax.loadUrl('/404.html') : window.location.href = '/404.html')
: window.location.href = e.request.responseURL
}
})
})()</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><i class="fas fa-spinner fa-pulse" id="loading-status" hidden="hidden"></i><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="text-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据加载中</span></div><div class="local-search-input"><input placeholder="请输入要搜索的内容" type="text"/></div><hr/><div id="local-search-results"></div><div class="ais-Pagination" id="local-search-pagination" style="display:none;"><ul class="ais-Pagination-list"></ul></div><div id="local-search-stats"></div></div><div id="search-mask"></div><script src="/js/search/local-search.js"></script></div></div></body></html>