@taole/giftstage 0.3.2 → 0.3.3
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.
- package/README.md +96 -85
- package/dist/gift-stage.cjs +609 -609
- package/dist/gift-stage.es.js +611 -610
- package/package.json +3 -3
package/dist/gift-stage.cjs
CHANGED
|
@@ -84,186 +84,186 @@ void main() {\r
|
|
|
84
84
|
vec4 c = texture(u_atlas, v_uv);\r
|
|
85
85
|
fragColor = vec4(c.rgb * v_color.rgb * v_color.a, c.a * v_color.a);\r
|
|
86
86
|
}\r
|
|
87
|
-
`,zE=`#version 300 es
|
|
88
|
-
precision highp float
|
|
89
|
-
precision highp int
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
* Table-aware SVGA instanced vertex stage
|
|
93
|
-
|
|
94
|
-
* The frame table is a RGBA32F/NEAREST texture with three texels per
|
|
95
|
-
* (sprite, frame) row
|
|
96
|
-
* texel 0 = layoutW, layoutH, a, b
|
|
97
|
-
* texel 1 = c, d, tx, ty
|
|
98
|
-
* texel 2 = alpha, 0, 0, 0
|
|
99
|
-
|
|
100
|
-
* Static sprite metadata is a second RGBA32F/NEAREST texture with two texels
|
|
101
|
-
* per row
|
|
102
|
-
* texel 0 = atlas UV min.xy / max.xy
|
|
103
|
-
* texel 1 = sourceSpriteIndex, atlasPage, flags, reserved
|
|
104
|
-
|
|
105
|
-
* One draw covers a single atlas page of one slot. \`gl_InstanceID\` selects a
|
|
106
|
-
* metadata row (\`u_spriteBase + gl_InstanceID\`), so the only per-frame CPU
|
|
107
|
-
* state is the slot transform/opacity/clip and the authoritative frame index
|
|
108
|
-
|
|
109
|
-
layout(location = 0) in vec2 a_corner
|
|
110
|
-
// Optional Hybrid scheduling row. Direct draws leave these attributes disabled
|
|
111
|
-
// and use the uniform slot state below
|
|
112
|
-
layout(location = 1) in vec4 a_instanceParent
|
|
113
|
-
layout(location = 2) in vec4 a_instanceTranslateOpacityFrame
|
|
114
|
-
layout(location = 3) in vec4 a_instanceClipRect
|
|
115
|
-
/** x=clipEnabled, y=metadataRow, z=atlasPage, w=present.
|
|
116
|
-
layout(location = 4) in vec4 a_instanceInfo
|
|
117
|
-
|
|
118
|
-
uniform mat4 u_projection
|
|
119
|
-
uniform highp sampler2D u_frameTable
|
|
120
|
-
uniform highp sampler2D u_spriteMetadata
|
|
121
|
-
|
|
122
|
-
* Canonical compact state (four RGBA32F texels / 16 floats)
|
|
123
|
-
* affine; translate+opacity+frame; clip rect; clipEnabled+metadataBase+atlasPage+track+1
|
|
124
|
-
|
|
125
|
-
uniform highp sampler2D u_slotStates
|
|
126
|
-
/** x = frameCount, y = spriteCount, z = texels per frame (3), w = default frame.
|
|
127
|
-
uniform ivec4 u_tableInfo
|
|
128
|
-
/** x/y = frame-table texture width/height in texels.
|
|
129
|
-
uniform ivec2 u_frameTableSize
|
|
130
|
-
/** x/y = sprite metadata texture width/height in texels.
|
|
131
|
-
uniform ivec2 u_spriteMetadataSize
|
|
132
|
-
uniform int u_spriteMetadataTexelsPerRow
|
|
133
|
-
uniform ivec2 u_slotStateSize
|
|
134
|
-
/** First static metadata row consumed by this slot/page draw.
|
|
135
|
-
uniform int u_spriteBase
|
|
136
|
-
/** Authoritative SVGA frame selected by RenderManager/PlaybackScope.
|
|
137
|
-
uniform int u_frameIndex
|
|
138
|
-
uniform vec4 u_parentAffine
|
|
139
|
-
uniform vec2 u_parentTranslate
|
|
140
|
-
uniform float u_slotOpacity
|
|
141
|
-
/** Atlas page for this draw; negative means metadata page filtering is disabled.
|
|
142
|
-
uniform int u_atlasPage
|
|
143
|
-
uniform vec4 u_clipRect
|
|
144
|
-
uniform float u_clipEnabled
|
|
145
|
-
/** WebGL's gl_FragCoord has a bottom-left origin; input clip rects are top-left.
|
|
146
|
-
uniform float u_canvasHeight
|
|
147
|
-
uniform float u_instanceStateEnabled
|
|
148
|
-
uniform float u_compactSlotStateEnabled
|
|
149
|
-
uniform int u_spritesPerSlot
|
|
150
|
-
|
|
151
|
-
out vec2 v_uv
|
|
152
|
-
out vec4 v_color
|
|
153
|
-
flat out vec4 v_clipRect
|
|
154
|
-
flat out float v_clipEnabled
|
|
155
|
-
out vec2 v_localPosition
|
|
156
|
-
flat out vec4 v_localClipRect
|
|
157
|
-
flat out float v_localClipEnabled
|
|
158
|
-
|
|
159
|
-
ivec2 texelCoord(int linearIndex, ivec2 textureSize) {
|
|
160
|
-
int width = max(textureSize.x, 1)
|
|
161
|
-
return ivec2(linearIndex - (linearIndex / width) * width, linearIndex / width)
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
void main() {
|
|
165
|
-
int frameCount = max(u_tableInfo.x, 1)
|
|
166
|
-
int spriteCount = max(u_tableInfo.y, 1)
|
|
167
|
-
bool instanceState = u_instanceStateEnabled > 0.5
|
|
168
|
-
bool compactSlotState = u_compactSlotStateEnabled > 0.5
|
|
169
|
-
int spritesPerSlot = max(u_spritesPerSlot, 1)
|
|
170
|
-
int slotStateIndex = gl_InstanceID / spritesPerSlot
|
|
171
|
-
int spriteWithinSlot = gl_InstanceID - slotStateIndex * spritesPerSlot
|
|
172
|
-
vec4 compactParent = vec4(0.0)
|
|
173
|
-
vec4 compactTranslateOpacityFrame = vec4(0.0)
|
|
174
|
-
vec4 compactClip = vec4(0.0)
|
|
175
|
-
vec4 compactInfo = vec4(0.0)
|
|
176
|
-
if (compactSlotState) {
|
|
177
|
-
int compactBase = slotStateIndex * 4
|
|
178
|
-
compactParent = texelFetch(u_slotStates, texelCoord(compactBase, u_slotStateSize), 0)
|
|
179
|
-
compactTranslateOpacityFrame = texelFetch(u_slotStates, texelCoord(compactBase + 1, u_slotStateSize), 0)
|
|
180
|
-
compactClip = texelFetch(u_slotStates, texelCoord(compactBase + 2, u_slotStateSize), 0)
|
|
181
|
-
compactInfo = texelFetch(u_slotStates, texelCoord(compactBase + 3, u_slotStateSize), 0)
|
|
182
|
-
}
|
|
183
|
-
int metadataRow = instanceState
|
|
184
|
-
? max(int(a_instanceInfo.y + 0.5), 0)
|
|
185
|
-
: compactSlotState
|
|
186
|
-
? max(u_spriteBase + spriteWithinSlot, 0)
|
|
187
|
-
: max(u_spriteBase + gl_InstanceID, 0)
|
|
188
|
-
int metadataStride = max(u_spriteMetadataTexelsPerRow, 2)
|
|
189
|
-
int metadataTexel = metadataRow * metadataStride
|
|
190
|
-
vec4 metadata0 = texelFetch(
|
|
191
|
-
u_spriteMetadata
|
|
192
|
-
texelCoord(metadataTexel, u_spriteMetadataSize)
|
|
193
|
-
0
|
|
194
|
-
)
|
|
195
|
-
vec4 metadata1 = texelFetch(
|
|
196
|
-
u_spriteMetadata
|
|
197
|
-
texelCoord(metadataTexel + 1, u_spriteMetadataSize)
|
|
198
|
-
0
|
|
199
|
-
)
|
|
200
|
-
vec4 metadata2 = metadataStride >= 3
|
|
201
|
-
? texelFetch(u_spriteMetadata, texelCoord(metadataTexel + 2, u_spriteMetadataSize), 0)
|
|
202
|
-
: vec4(0.0)
|
|
203
|
-
// Metadata carries the source sprite index so a page-specific range can
|
|
204
|
-
// represent non-contiguous atlas pages. Its y component is the atlas page
|
|
205
|
-
int spriteIndex = clamp(int(max(metadata1.x, 0.0) + 0.5), 0, spriteCount - 1)
|
|
206
|
-
int frameIndex = instanceState
|
|
207
|
-
? int(a_instanceTranslateOpacityFrame.w + 0.5)
|
|
208
|
-
: compactSlotState
|
|
209
|
-
? int(compactTranslateOpacityFrame.w + 0.5)
|
|
210
|
-
: u_frameIndex
|
|
211
|
-
if (frameIndex < 0) frameIndex = u_tableInfo.w
|
|
212
|
-
frameIndex = clamp(frameIndex, 0, frameCount - 1)
|
|
213
|
-
|
|
214
|
-
int row = spriteIndex * frameCount + frameIndex
|
|
215
|
-
int frameTexel = row * u_tableInfo.z
|
|
216
|
-
vec4 frame0 = texelFetch(u_frameTable, texelCoord(frameTexel, u_frameTableSize), 0)
|
|
217
|
-
vec4 frame1 = texelFetch(u_frameTable, texelCoord(frameTexel + 1, u_frameTableSize), 0)
|
|
218
|
-
vec4 frame2 = texelFetch(u_frameTable, texelCoord(frameTexel + 2, u_frameTableSize), 0)
|
|
219
|
-
|
|
220
|
-
float layoutW = frame0.x
|
|
221
|
-
float layoutH = frame0.y
|
|
222
|
-
vec2 local = vec2(
|
|
223
|
-
frame0.z * layoutW * a_corner.x + frame1.x * layoutH * a_corner.y + frame1.z
|
|
224
|
-
frame0.w * layoutW * a_corner.x + frame1.y * layoutH * a_corner.y + frame1.w
|
|
225
|
-
)
|
|
226
|
-
|
|
227
|
-
vec4 parentAffine = instanceState
|
|
228
|
-
? a_instanceParent
|
|
229
|
-
: compactSlotState ? compactParent : u_parentAffine
|
|
230
|
-
vec2 parentTranslate = instanceState
|
|
231
|
-
? a_instanceTranslateOpacityFrame.xy
|
|
232
|
-
: compactSlotState ? compactTranslateOpacityFrame.xy : u_parentTranslate
|
|
233
|
-
float slotOpacity = instanceState
|
|
234
|
-
? a_instanceTranslateOpacityFrame.z
|
|
235
|
-
: compactSlotState ? compactTranslateOpacityFrame.z : u_slotOpacity
|
|
236
|
-
int atlasPage = instanceState
|
|
237
|
-
? int(a_instanceInfo.z + 0.5)
|
|
238
|
-
: compactSlotState
|
|
239
|
-
? (compactInfo.z < -0.5 ? -1 : int(compactInfo.z + 0.5))
|
|
240
|
-
: u_atlasPage
|
|
241
|
-
vec4 clipRect = instanceState
|
|
242
|
-
? a_instanceClipRect
|
|
243
|
-
: compactSlotState ? compactClip : u_clipRect
|
|
244
|
-
float clipEnabled = instanceState
|
|
245
|
-
? a_instanceInfo.x
|
|
246
|
-
: compactSlotState ? compactInfo.x : u_clipEnabled
|
|
247
|
-
vec2 world = vec2(
|
|
248
|
-
parentAffine.x * local.x + parentAffine.z * local.y + parentTranslate.x
|
|
249
|
-
parentAffine.y * local.x + parentAffine.w * local.y + parentTranslate.y
|
|
250
|
-
)
|
|
251
|
-
|
|
252
|
-
gl_Position = u_projection * vec4(world, 0.0, 1.0)
|
|
253
|
-
v_uv = mix(metadata0.xy, metadata0.zw, a_corner)
|
|
254
|
-
bool pageMatches = atlasPage < 0 || int(max(metadata1.y, 0.0) + 0.5) == atlasPage
|
|
255
|
-
int metadataFlags = int(max(metadata1.z, 0.0) + 0.5)
|
|
256
|
-
bool metadataPresent = (metadataFlags & 1) == 0
|
|
257
|
-
float pageAlpha = pageMatches && metadataPresent ? 1.0 : 0.0
|
|
258
|
-
float effectiveAlpha = frame2.x * slotOpacity * pageAlpha
|
|
259
|
-
// Match the CPU reference's strict \`< 0.05\` visibility cutoff
|
|
260
|
-
v_color = vec4(1.0, 1.0, 1.0, effectiveAlpha >= 0.05 ? effectiveAlpha : 0.0)
|
|
261
|
-
v_clipRect = clipRect
|
|
262
|
-
v_clipEnabled = clipEnabled
|
|
263
|
-
v_localPosition = vec2(layoutW * a_corner.x, layoutH * a_corner.y)
|
|
264
|
-
v_localClipRect = metadata2
|
|
265
|
-
v_localClipEnabled = (metadataFlags & 2) != 0 ? 1.0 : 0.0
|
|
266
|
-
}
|
|
87
|
+
`,zE=`#version 300 es\r
|
|
88
|
+
precision highp float;\r
|
|
89
|
+
precision highp int;\r
|
|
90
|
+
\r
|
|
91
|
+
/**\r
|
|
92
|
+
* Table-aware SVGA instanced vertex stage.\r
|
|
93
|
+
*\r
|
|
94
|
+
* The frame table is a RGBA32F/NEAREST texture with three texels per\r
|
|
95
|
+
* (sprite, frame) row:\r
|
|
96
|
+
* texel 0 = layoutW, layoutH, a, b\r
|
|
97
|
+
* texel 1 = c, d, tx, ty\r
|
|
98
|
+
* texel 2 = alpha, 0, 0, 0\r
|
|
99
|
+
*\r
|
|
100
|
+
* Static sprite metadata is a second RGBA32F/NEAREST texture with two texels\r
|
|
101
|
+
* per row:\r
|
|
102
|
+
* texel 0 = atlas UV min.xy / max.xy\r
|
|
103
|
+
* texel 1 = sourceSpriteIndex, atlasPage, flags, reserved\r
|
|
104
|
+
*\r
|
|
105
|
+
* One draw covers a single atlas page of one slot. \`gl_InstanceID\` selects a\r
|
|
106
|
+
* metadata row (\`u_spriteBase + gl_InstanceID\`), so the only per-frame CPU\r
|
|
107
|
+
* state is the slot transform/opacity/clip and the authoritative frame index.\r
|
|
108
|
+
*/\r
|
|
109
|
+
layout(location = 0) in vec2 a_corner;\r
|
|
110
|
+
// Optional Hybrid scheduling row. Direct draws leave these attributes disabled\r
|
|
111
|
+
// and use the uniform slot state below.\r
|
|
112
|
+
layout(location = 1) in vec4 a_instanceParent;\r
|
|
113
|
+
layout(location = 2) in vec4 a_instanceTranslateOpacityFrame;\r
|
|
114
|
+
layout(location = 3) in vec4 a_instanceClipRect;\r
|
|
115
|
+
/** x=clipEnabled, y=metadataRow, z=atlasPage, w=present. */\r
|
|
116
|
+
layout(location = 4) in vec4 a_instanceInfo;\r
|
|
117
|
+
\r
|
|
118
|
+
uniform mat4 u_projection;\r
|
|
119
|
+
uniform highp sampler2D u_frameTable;\r
|
|
120
|
+
uniform highp sampler2D u_spriteMetadata;\r
|
|
121
|
+
/**\r
|
|
122
|
+
* Canonical compact state (four RGBA32F texels / 16 floats):\r
|
|
123
|
+
* affine; translate+opacity+frame; clip rect; clipEnabled+metadataBase+atlasPage+track+1.\r
|
|
124
|
+
*/\r
|
|
125
|
+
uniform highp sampler2D u_slotStates;\r
|
|
126
|
+
/** x = frameCount, y = spriteCount, z = texels per frame (3), w = default frame. */\r
|
|
127
|
+
uniform ivec4 u_tableInfo;\r
|
|
128
|
+
/** x/y = frame-table texture width/height in texels. */\r
|
|
129
|
+
uniform ivec2 u_frameTableSize;\r
|
|
130
|
+
/** x/y = sprite metadata texture width/height in texels. */\r
|
|
131
|
+
uniform ivec2 u_spriteMetadataSize;\r
|
|
132
|
+
uniform int u_spriteMetadataTexelsPerRow;\r
|
|
133
|
+
uniform ivec2 u_slotStateSize;\r
|
|
134
|
+
/** First static metadata row consumed by this slot/page draw. */\r
|
|
135
|
+
uniform int u_spriteBase;\r
|
|
136
|
+
/** Authoritative SVGA frame selected by RenderManager/PlaybackScope. */\r
|
|
137
|
+
uniform int u_frameIndex;\r
|
|
138
|
+
uniform vec4 u_parentAffine;\r
|
|
139
|
+
uniform vec2 u_parentTranslate;\r
|
|
140
|
+
uniform float u_slotOpacity;\r
|
|
141
|
+
/** Atlas page for this draw; negative means metadata page filtering is disabled. */\r
|
|
142
|
+
uniform int u_atlasPage;\r
|
|
143
|
+
uniform vec4 u_clipRect;\r
|
|
144
|
+
uniform float u_clipEnabled;\r
|
|
145
|
+
/** WebGL's gl_FragCoord has a bottom-left origin; input clip rects are top-left. */\r
|
|
146
|
+
uniform float u_canvasHeight;\r
|
|
147
|
+
uniform float u_instanceStateEnabled;\r
|
|
148
|
+
uniform float u_compactSlotStateEnabled;\r
|
|
149
|
+
uniform int u_spritesPerSlot;\r
|
|
150
|
+
\r
|
|
151
|
+
out vec2 v_uv;\r
|
|
152
|
+
out vec4 v_color;\r
|
|
153
|
+
flat out vec4 v_clipRect;\r
|
|
154
|
+
flat out float v_clipEnabled;\r
|
|
155
|
+
out vec2 v_localPosition;\r
|
|
156
|
+
flat out vec4 v_localClipRect;\r
|
|
157
|
+
flat out float v_localClipEnabled;\r
|
|
158
|
+
\r
|
|
159
|
+
ivec2 texelCoord(int linearIndex, ivec2 textureSize) {\r
|
|
160
|
+
int width = max(textureSize.x, 1);\r
|
|
161
|
+
return ivec2(linearIndex - (linearIndex / width) * width, linearIndex / width);\r
|
|
162
|
+
}\r
|
|
163
|
+
\r
|
|
164
|
+
void main() {\r
|
|
165
|
+
int frameCount = max(u_tableInfo.x, 1);\r
|
|
166
|
+
int spriteCount = max(u_tableInfo.y, 1);\r
|
|
167
|
+
bool instanceState = u_instanceStateEnabled > 0.5;\r
|
|
168
|
+
bool compactSlotState = u_compactSlotStateEnabled > 0.5;\r
|
|
169
|
+
int spritesPerSlot = max(u_spritesPerSlot, 1);\r
|
|
170
|
+
int slotStateIndex = gl_InstanceID / spritesPerSlot;\r
|
|
171
|
+
int spriteWithinSlot = gl_InstanceID - slotStateIndex * spritesPerSlot;\r
|
|
172
|
+
vec4 compactParent = vec4(0.0);\r
|
|
173
|
+
vec4 compactTranslateOpacityFrame = vec4(0.0);\r
|
|
174
|
+
vec4 compactClip = vec4(0.0);\r
|
|
175
|
+
vec4 compactInfo = vec4(0.0);\r
|
|
176
|
+
if (compactSlotState) {\r
|
|
177
|
+
int compactBase = slotStateIndex * 4;\r
|
|
178
|
+
compactParent = texelFetch(u_slotStates, texelCoord(compactBase, u_slotStateSize), 0);\r
|
|
179
|
+
compactTranslateOpacityFrame = texelFetch(u_slotStates, texelCoord(compactBase + 1, u_slotStateSize), 0);\r
|
|
180
|
+
compactClip = texelFetch(u_slotStates, texelCoord(compactBase + 2, u_slotStateSize), 0);\r
|
|
181
|
+
compactInfo = texelFetch(u_slotStates, texelCoord(compactBase + 3, u_slotStateSize), 0);\r
|
|
182
|
+
}\r
|
|
183
|
+
int metadataRow = instanceState\r
|
|
184
|
+
? max(int(a_instanceInfo.y + 0.5), 0)\r
|
|
185
|
+
: compactSlotState\r
|
|
186
|
+
? max(u_spriteBase + spriteWithinSlot, 0)\r
|
|
187
|
+
: max(u_spriteBase + gl_InstanceID, 0);\r
|
|
188
|
+
int metadataStride = max(u_spriteMetadataTexelsPerRow, 2);\r
|
|
189
|
+
int metadataTexel = metadataRow * metadataStride;\r
|
|
190
|
+
vec4 metadata0 = texelFetch(\r
|
|
191
|
+
u_spriteMetadata,\r
|
|
192
|
+
texelCoord(metadataTexel, u_spriteMetadataSize),\r
|
|
193
|
+
0\r
|
|
194
|
+
);\r
|
|
195
|
+
vec4 metadata1 = texelFetch(\r
|
|
196
|
+
u_spriteMetadata,\r
|
|
197
|
+
texelCoord(metadataTexel + 1, u_spriteMetadataSize),\r
|
|
198
|
+
0\r
|
|
199
|
+
);\r
|
|
200
|
+
vec4 metadata2 = metadataStride >= 3\r
|
|
201
|
+
? texelFetch(u_spriteMetadata, texelCoord(metadataTexel + 2, u_spriteMetadataSize), 0)\r
|
|
202
|
+
: vec4(0.0);\r
|
|
203
|
+
// Metadata carries the source sprite index so a page-specific range can\r
|
|
204
|
+
// represent non-contiguous atlas pages. Its y component is the atlas page.\r
|
|
205
|
+
int spriteIndex = clamp(int(max(metadata1.x, 0.0) + 0.5), 0, spriteCount - 1);\r
|
|
206
|
+
int frameIndex = instanceState\r
|
|
207
|
+
? int(a_instanceTranslateOpacityFrame.w + 0.5)\r
|
|
208
|
+
: compactSlotState\r
|
|
209
|
+
? int(compactTranslateOpacityFrame.w + 0.5)\r
|
|
210
|
+
: u_frameIndex;\r
|
|
211
|
+
if (frameIndex < 0) frameIndex = u_tableInfo.w;\r
|
|
212
|
+
frameIndex = clamp(frameIndex, 0, frameCount - 1);\r
|
|
213
|
+
\r
|
|
214
|
+
int row = spriteIndex * frameCount + frameIndex;\r
|
|
215
|
+
int frameTexel = row * u_tableInfo.z;\r
|
|
216
|
+
vec4 frame0 = texelFetch(u_frameTable, texelCoord(frameTexel, u_frameTableSize), 0);\r
|
|
217
|
+
vec4 frame1 = texelFetch(u_frameTable, texelCoord(frameTexel + 1, u_frameTableSize), 0);\r
|
|
218
|
+
vec4 frame2 = texelFetch(u_frameTable, texelCoord(frameTexel + 2, u_frameTableSize), 0);\r
|
|
219
|
+
\r
|
|
220
|
+
float layoutW = frame0.x;\r
|
|
221
|
+
float layoutH = frame0.y;\r
|
|
222
|
+
vec2 local = vec2(\r
|
|
223
|
+
frame0.z * layoutW * a_corner.x + frame1.x * layoutH * a_corner.y + frame1.z,\r
|
|
224
|
+
frame0.w * layoutW * a_corner.x + frame1.y * layoutH * a_corner.y + frame1.w\r
|
|
225
|
+
);\r
|
|
226
|
+
\r
|
|
227
|
+
vec4 parentAffine = instanceState\r
|
|
228
|
+
? a_instanceParent\r
|
|
229
|
+
: compactSlotState ? compactParent : u_parentAffine;\r
|
|
230
|
+
vec2 parentTranslate = instanceState\r
|
|
231
|
+
? a_instanceTranslateOpacityFrame.xy\r
|
|
232
|
+
: compactSlotState ? compactTranslateOpacityFrame.xy : u_parentTranslate;\r
|
|
233
|
+
float slotOpacity = instanceState\r
|
|
234
|
+
? a_instanceTranslateOpacityFrame.z\r
|
|
235
|
+
: compactSlotState ? compactTranslateOpacityFrame.z : u_slotOpacity;\r
|
|
236
|
+
int atlasPage = instanceState\r
|
|
237
|
+
? int(a_instanceInfo.z + 0.5)\r
|
|
238
|
+
: compactSlotState\r
|
|
239
|
+
? (compactInfo.z < -0.5 ? -1 : int(compactInfo.z + 0.5))\r
|
|
240
|
+
: u_atlasPage;\r
|
|
241
|
+
vec4 clipRect = instanceState\r
|
|
242
|
+
? a_instanceClipRect\r
|
|
243
|
+
: compactSlotState ? compactClip : u_clipRect;\r
|
|
244
|
+
float clipEnabled = instanceState\r
|
|
245
|
+
? a_instanceInfo.x\r
|
|
246
|
+
: compactSlotState ? compactInfo.x : u_clipEnabled;\r
|
|
247
|
+
vec2 world = vec2(\r
|
|
248
|
+
parentAffine.x * local.x + parentAffine.z * local.y + parentTranslate.x,\r
|
|
249
|
+
parentAffine.y * local.x + parentAffine.w * local.y + parentTranslate.y\r
|
|
250
|
+
);\r
|
|
251
|
+
\r
|
|
252
|
+
gl_Position = u_projection * vec4(world, 0.0, 1.0);\r
|
|
253
|
+
v_uv = mix(metadata0.xy, metadata0.zw, a_corner);\r
|
|
254
|
+
bool pageMatches = atlasPage < 0 || int(max(metadata1.y, 0.0) + 0.5) == atlasPage;\r
|
|
255
|
+
int metadataFlags = int(max(metadata1.z, 0.0) + 0.5);\r
|
|
256
|
+
bool metadataPresent = (metadataFlags & 1) == 0;\r
|
|
257
|
+
float pageAlpha = pageMatches && metadataPresent ? 1.0 : 0.0;\r
|
|
258
|
+
float effectiveAlpha = frame2.x * slotOpacity * pageAlpha;\r
|
|
259
|
+
// Match the CPU reference's strict \`< 0.05\` visibility cutoff.\r
|
|
260
|
+
v_color = vec4(1.0, 1.0, 1.0, effectiveAlpha >= 0.05 ? effectiveAlpha : 0.0);\r
|
|
261
|
+
v_clipRect = clipRect;\r
|
|
262
|
+
v_clipEnabled = clipEnabled;\r
|
|
263
|
+
v_localPosition = vec2(layoutW * a_corner.x, layoutH * a_corner.y);\r
|
|
264
|
+
v_localClipRect = metadata2;\r
|
|
265
|
+
v_localClipEnabled = (metadataFlags & 2) != 0 ? 1.0 : 0.0;\r
|
|
266
|
+
}\r
|
|
267
267
|
`,_E=`#version 300 es
|
|
268
268
|
precision highp float;
|
|
269
269
|
|
|
@@ -790,67 +790,67 @@ void main() {\r
|
|
|
790
790
|
float coverage = 1.0 - smoothstep(0.45, 1.0, distanceToCenter);\r
|
|
791
791
|
outColor = v_color * coverage;\r
|
|
792
792
|
}\r
|
|
793
|
-
`,hi=`#version 300 es
|
|
794
|
-
precision highp float
|
|
795
|
-
|
|
796
|
-
layout(location = 0) in vec2 a_corner
|
|
797
|
-
layout(location = 1) in vec4 a_birthLifePosition
|
|
798
|
-
layout(location = 2) in vec4 a_velocityAcceleration
|
|
799
|
-
layout(location = 3) in vec4 a_scaleRotation
|
|
800
|
-
layout(location = 4) in vec4 a_color
|
|
801
|
-
layout(location = 5) in vec4 a_sizeAnchor
|
|
802
|
-
layout(location = 6) in vec4 a_uvRect
|
|
803
|
-
|
|
804
|
-
uniform mat4 u_projection
|
|
805
|
-
uniform float u_time
|
|
806
|
-
uniform float u_globalAlpha
|
|
807
|
-
uniform float u_sizeEnvelope
|
|
808
|
-
uniform float u_fadeMode
|
|
809
|
-
uniform vec2 u_cssScale
|
|
810
|
-
|
|
811
|
-
out vec2 v_uv
|
|
812
|
-
out vec4 v_modulation
|
|
813
|
-
|
|
814
|
-
void main() {
|
|
815
|
-
float age = u_time - a_birthLifePosition.x
|
|
816
|
-
float life = max(a_birthLifePosition.y, 0.0001)
|
|
817
|
-
bool alive = age >= 0.0 && age <= life
|
|
818
|
-
float safeAge = max(age, 0.0)
|
|
819
|
-
vec2 position = a_birthLifePosition.zw
|
|
820
|
-
+ a_velocityAcceleration.xy * safeAge
|
|
821
|
-
+ 0.5 * a_velocityAcceleration.zw * safeAge * safeAge
|
|
822
|
-
float scale = max(0.04, a_scaleRotation.x + a_scaleRotation.y * safeAge) * u_sizeEnvelope
|
|
823
|
-
vec2 unitCorner = a_corner + 0.5
|
|
824
|
-
vec2 local = (unitCorner - a_sizeAnchor.zw) * a_sizeAnchor.xy * scale
|
|
825
|
-
float angle = a_scaleRotation.z + a_scaleRotation.w * safeAge
|
|
826
|
-
float c = cos(angle)
|
|
827
|
-
float s = sin(angle)
|
|
828
|
-
vec2 rotated = vec2(c * local.x - s * local.y, s * local.x + c * local.y)
|
|
829
|
-
float progress = clamp(safeAge / life, 0.0, 1.0)
|
|
830
|
-
float fade = u_fadeMode > 0.5
|
|
831
|
-
? min(safeAge / 0.04, 1.0) * pow(1.0 - progress, 0.78)
|
|
832
|
-
: 1.0
|
|
833
|
-
if (!alive) {
|
|
834
|
-
position = vec2(-100000.0)
|
|
835
|
-
fade = 0.0
|
|
836
|
-
}
|
|
837
|
-
gl_Position = u_projection * vec4((position + rotated) * u_cssScale, 0.0, 1.0)
|
|
838
|
-
v_uv = mix(a_uvRect.xy, a_uvRect.zw, unitCorner)
|
|
839
|
-
float alpha = a_color.a * fade * u_globalAlpha
|
|
840
|
-
v_modulation = vec4(a_color.rgb * alpha, alpha)
|
|
841
|
-
}
|
|
842
|
-
`,ci=`#version 300 es
|
|
843
|
-
precision highp float
|
|
844
|
-
|
|
845
|
-
uniform sampler2D u_atlas
|
|
846
|
-
in vec2 v_uv
|
|
847
|
-
in vec4 v_modulation
|
|
848
|
-
out vec4 outColor
|
|
849
|
-
|
|
850
|
-
void main() {
|
|
851
|
-
vec4 sampled = texture(u_atlas, v_uv)
|
|
852
|
-
outColor = vec4(sampled.rgb * v_modulation.rgb, sampled.a * v_modulation.a)
|
|
853
|
-
}
|
|
793
|
+
`,hi=`#version 300 es\r
|
|
794
|
+
precision highp float;\r
|
|
795
|
+
\r
|
|
796
|
+
layout(location = 0) in vec2 a_corner;\r
|
|
797
|
+
layout(location = 1) in vec4 a_birthLifePosition;\r
|
|
798
|
+
layout(location = 2) in vec4 a_velocityAcceleration;\r
|
|
799
|
+
layout(location = 3) in vec4 a_scaleRotation;\r
|
|
800
|
+
layout(location = 4) in vec4 a_color;\r
|
|
801
|
+
layout(location = 5) in vec4 a_sizeAnchor;\r
|
|
802
|
+
layout(location = 6) in vec4 a_uvRect;\r
|
|
803
|
+
\r
|
|
804
|
+
uniform mat4 u_projection;\r
|
|
805
|
+
uniform float u_time;\r
|
|
806
|
+
uniform float u_globalAlpha;\r
|
|
807
|
+
uniform float u_sizeEnvelope;\r
|
|
808
|
+
uniform float u_fadeMode;\r
|
|
809
|
+
uniform vec2 u_cssScale;\r
|
|
810
|
+
\r
|
|
811
|
+
out vec2 v_uv;\r
|
|
812
|
+
out vec4 v_modulation;\r
|
|
813
|
+
\r
|
|
814
|
+
void main() {\r
|
|
815
|
+
float age = u_time - a_birthLifePosition.x;\r
|
|
816
|
+
float life = max(a_birthLifePosition.y, 0.0001);\r
|
|
817
|
+
bool alive = age >= 0.0 && age <= life;\r
|
|
818
|
+
float safeAge = max(age, 0.0);\r
|
|
819
|
+
vec2 position = a_birthLifePosition.zw\r
|
|
820
|
+
+ a_velocityAcceleration.xy * safeAge\r
|
|
821
|
+
+ 0.5 * a_velocityAcceleration.zw * safeAge * safeAge;\r
|
|
822
|
+
float scale = max(0.04, a_scaleRotation.x + a_scaleRotation.y * safeAge) * u_sizeEnvelope;\r
|
|
823
|
+
vec2 unitCorner = a_corner + 0.5;\r
|
|
824
|
+
vec2 local = (unitCorner - a_sizeAnchor.zw) * a_sizeAnchor.xy * scale;\r
|
|
825
|
+
float angle = a_scaleRotation.z + a_scaleRotation.w * safeAge;\r
|
|
826
|
+
float c = cos(angle);\r
|
|
827
|
+
float s = sin(angle);\r
|
|
828
|
+
vec2 rotated = vec2(c * local.x - s * local.y, s * local.x + c * local.y);\r
|
|
829
|
+
float progress = clamp(safeAge / life, 0.0, 1.0);\r
|
|
830
|
+
float fade = u_fadeMode > 0.5\r
|
|
831
|
+
? min(safeAge / 0.04, 1.0) * pow(1.0 - progress, 0.78)\r
|
|
832
|
+
: 1.0;\r
|
|
833
|
+
if (!alive) {\r
|
|
834
|
+
position = vec2(-100000.0);\r
|
|
835
|
+
fade = 0.0;\r
|
|
836
|
+
}\r
|
|
837
|
+
gl_Position = u_projection * vec4((position + rotated) * u_cssScale, 0.0, 1.0);\r
|
|
838
|
+
v_uv = mix(a_uvRect.xy, a_uvRect.zw, unitCorner);\r
|
|
839
|
+
float alpha = a_color.a * fade * u_globalAlpha;\r
|
|
840
|
+
v_modulation = vec4(a_color.rgb * alpha, alpha);\r
|
|
841
|
+
}\r
|
|
842
|
+
`,ci=`#version 300 es\r
|
|
843
|
+
precision highp float;\r
|
|
844
|
+
\r
|
|
845
|
+
uniform sampler2D u_atlas;\r
|
|
846
|
+
in vec2 v_uv;\r
|
|
847
|
+
in vec4 v_modulation;\r
|
|
848
|
+
out vec4 outColor;\r
|
|
849
|
+
\r
|
|
850
|
+
void main() {\r
|
|
851
|
+
vec4 sampled = texture(u_atlas, v_uv);\r
|
|
852
|
+
outColor = vec4(sampled.rgb * v_modulation.rgb, sampled.a * v_modulation.a);\r
|
|
853
|
+
}\r
|
|
854
854
|
`,Di=`/** SVGA atlas variant for premultiplied RGBA atlas textures. */\r
|
|
855
855
|
struct Uniforms {\r
|
|
856
856
|
projection: mat4x4f,\r
|
|
@@ -1356,78 +1356,78 @@ fn fs(input: VOut) -> @location(0) vec4f {\r
|
|
|
1356
1356
|
let coverage = 1.0 - smoothstep(0.45, 1.0, distanceToCenter);\r
|
|
1357
1357
|
return input.color * coverage;\r
|
|
1358
1358
|
}\r
|
|
1359
|
-
`,Mi=`struct Globals {
|
|
1360
|
-
projection: mat4x4f
|
|
1361
|
-
}
|
|
1362
|
-
|
|
1363
|
-
@group(0) @binding(0) var<uniform> globals: Globals
|
|
1364
|
-
@group(0) @binding(1) var<storage, read> instanceData: array<f32
|
|
1365
|
-
@group(1) @binding(0) var atlasTexture: texture_2d<f32
|
|
1366
|
-
@group(1) @binding(1) var atlasSampler: sampler
|
|
1367
|
-
|
|
1368
|
-
struct VIn {
|
|
1369
|
-
@location(0) corner: vec2f
|
|
1370
|
-
}
|
|
1371
|
-
|
|
1372
|
-
struct VOut {
|
|
1373
|
-
@builtin(position) position: vec4f
|
|
1374
|
-
@location(0) uv: vec2f
|
|
1375
|
-
@location(1) modulation: vec4f
|
|
1376
|
-
}
|
|
1377
|
-
|
|
1378
|
-
@vertex
|
|
1379
|
-
fn vs(input: VIn, @builtin(instance_index) instance: u32) -> VOut {
|
|
1380
|
-
let base = 8u + instance * 24u
|
|
1381
|
-
let birth = instanceData[base]
|
|
1382
|
-
let life = max(instanceData[base + 1u], 0.0001)
|
|
1383
|
-
let age = instanceData[0] - birth
|
|
1384
|
-
let safeAge = max(age, 0.0)
|
|
1385
|
-
var position = vec2f(instanceData[base + 2u], instanceData[base + 3u])
|
|
1386
|
-
+ vec2f(instanceData[base + 4u], instanceData[base + 5u]) * safeAge
|
|
1387
|
-
+ 0.5 * vec2f(instanceData[base + 6u], instanceData[base + 7u]) * safeAge * safeAge
|
|
1388
|
-
let scale = max(0.04, instanceData[base + 8u] + instanceData[base + 9u] * safeAge)
|
|
1389
|
-
* instanceData[2]
|
|
1390
|
-
let unitCorner = input.corner + vec2f(0.5)
|
|
1391
|
-
let anchor = vec2f(instanceData[base + 18u], instanceData[base + 19u])
|
|
1392
|
-
let spriteSize = vec2f(instanceData[base + 16u], instanceData[base + 17u])
|
|
1393
|
-
let local = (unitCorner - anchor) * spriteSize * scale
|
|
1394
|
-
let angle = instanceData[base + 10u] + instanceData[base + 11u] * safeAge
|
|
1395
|
-
let c = cos(angle)
|
|
1396
|
-
let s = sin(angle)
|
|
1397
|
-
let rotated = vec2f(c * local.x - s * local.y, s * local.x + c * local.y)
|
|
1398
|
-
let progress = clamp(safeAge / life, 0.0, 1.0)
|
|
1399
|
-
var fade = select(
|
|
1400
|
-
1.0
|
|
1401
|
-
min(safeAge / 0.04, 1.0) * pow(1.0 - progress, 0.78)
|
|
1402
|
-
instanceData[3] > 0.5
|
|
1403
|
-
)
|
|
1404
|
-
if (age < 0.0 || age > life) {
|
|
1405
|
-
position = vec2f(-100000.0)
|
|
1406
|
-
fade = 0.0
|
|
1407
|
-
}
|
|
1408
|
-
let cssScale = vec2f(instanceData[4], instanceData[5])
|
|
1409
|
-
let alpha = instanceData[base + 15u] * fade * instanceData[1]
|
|
1410
|
-
var output: VOut
|
|
1411
|
-
output.position = globals.projection * vec4f((position + rotated) * cssScale, 0.0, 1.0)
|
|
1412
|
-
output.uv = mix(
|
|
1413
|
-
vec2f(instanceData[base + 20u], instanceData[base + 21u])
|
|
1414
|
-
vec2f(instanceData[base + 22u], instanceData[base + 23u])
|
|
1415
|
-
unitCorner
|
|
1416
|
-
)
|
|
1417
|
-
output.modulation = vec4f(
|
|
1418
|
-
instanceData[base + 12u] * alpha
|
|
1419
|
-
instanceData[base + 13u] * alpha
|
|
1420
|
-
instanceData[base + 14u] * alpha
|
|
1421
|
-
alpha
|
|
1422
|
-
)
|
|
1423
|
-
return output
|
|
1424
|
-
}
|
|
1425
|
-
|
|
1426
|
-
@fragment
|
|
1427
|
-
fn fs(input: VOut) -> @location(0) vec4f {
|
|
1428
|
-
let sampled = textureSample(atlasTexture, atlasSampler, input.uv)
|
|
1429
|
-
return vec4f(sampled.rgb * input.modulation.rgb, sampled.a * input.modulation.a)
|
|
1430
|
-
}
|
|
1359
|
+
`,Mi=`struct Globals {\r
|
|
1360
|
+
projection: mat4x4f,\r
|
|
1361
|
+
}\r
|
|
1362
|
+
\r
|
|
1363
|
+
@group(0) @binding(0) var<uniform> globals: Globals;\r
|
|
1364
|
+
@group(0) @binding(1) var<storage, read> instanceData: array<f32>;\r
|
|
1365
|
+
@group(1) @binding(0) var atlasTexture: texture_2d<f32>;\r
|
|
1366
|
+
@group(1) @binding(1) var atlasSampler: sampler;\r
|
|
1367
|
+
\r
|
|
1368
|
+
struct VIn {\r
|
|
1369
|
+
@location(0) corner: vec2f,\r
|
|
1370
|
+
}\r
|
|
1371
|
+
\r
|
|
1372
|
+
struct VOut {\r
|
|
1373
|
+
@builtin(position) position: vec4f,\r
|
|
1374
|
+
@location(0) uv: vec2f,\r
|
|
1375
|
+
@location(1) modulation: vec4f,\r
|
|
1376
|
+
}\r
|
|
1377
|
+
\r
|
|
1378
|
+
@vertex\r
|
|
1379
|
+
fn vs(input: VIn, @builtin(instance_index) instance: u32) -> VOut {\r
|
|
1380
|
+
let base = 8u + instance * 24u;\r
|
|
1381
|
+
let birth = instanceData[base];\r
|
|
1382
|
+
let life = max(instanceData[base + 1u], 0.0001);\r
|
|
1383
|
+
let age = instanceData[0] - birth;\r
|
|
1384
|
+
let safeAge = max(age, 0.0);\r
|
|
1385
|
+
var position = vec2f(instanceData[base + 2u], instanceData[base + 3u])\r
|
|
1386
|
+
+ vec2f(instanceData[base + 4u], instanceData[base + 5u]) * safeAge\r
|
|
1387
|
+
+ 0.5 * vec2f(instanceData[base + 6u], instanceData[base + 7u]) * safeAge * safeAge;\r
|
|
1388
|
+
let scale = max(0.04, instanceData[base + 8u] + instanceData[base + 9u] * safeAge)\r
|
|
1389
|
+
* instanceData[2];\r
|
|
1390
|
+
let unitCorner = input.corner + vec2f(0.5);\r
|
|
1391
|
+
let anchor = vec2f(instanceData[base + 18u], instanceData[base + 19u]);\r
|
|
1392
|
+
let spriteSize = vec2f(instanceData[base + 16u], instanceData[base + 17u]);\r
|
|
1393
|
+
let local = (unitCorner - anchor) * spriteSize * scale;\r
|
|
1394
|
+
let angle = instanceData[base + 10u] + instanceData[base + 11u] * safeAge;\r
|
|
1395
|
+
let c = cos(angle);\r
|
|
1396
|
+
let s = sin(angle);\r
|
|
1397
|
+
let rotated = vec2f(c * local.x - s * local.y, s * local.x + c * local.y);\r
|
|
1398
|
+
let progress = clamp(safeAge / life, 0.0, 1.0);\r
|
|
1399
|
+
var fade = select(\r
|
|
1400
|
+
1.0,\r
|
|
1401
|
+
min(safeAge / 0.04, 1.0) * pow(1.0 - progress, 0.78),\r
|
|
1402
|
+
instanceData[3] > 0.5,\r
|
|
1403
|
+
);\r
|
|
1404
|
+
if (age < 0.0 || age > life) {\r
|
|
1405
|
+
position = vec2f(-100000.0);\r
|
|
1406
|
+
fade = 0.0;\r
|
|
1407
|
+
}\r
|
|
1408
|
+
let cssScale = vec2f(instanceData[4], instanceData[5]);\r
|
|
1409
|
+
let alpha = instanceData[base + 15u] * fade * instanceData[1];\r
|
|
1410
|
+
var output: VOut;\r
|
|
1411
|
+
output.position = globals.projection * vec4f((position + rotated) * cssScale, 0.0, 1.0);\r
|
|
1412
|
+
output.uv = mix(\r
|
|
1413
|
+
vec2f(instanceData[base + 20u], instanceData[base + 21u]),\r
|
|
1414
|
+
vec2f(instanceData[base + 22u], instanceData[base + 23u]),\r
|
|
1415
|
+
unitCorner,\r
|
|
1416
|
+
);\r
|
|
1417
|
+
output.modulation = vec4f(\r
|
|
1418
|
+
instanceData[base + 12u] * alpha,\r
|
|
1419
|
+
instanceData[base + 13u] * alpha,\r
|
|
1420
|
+
instanceData[base + 14u] * alpha,\r
|
|
1421
|
+
alpha,\r
|
|
1422
|
+
);\r
|
|
1423
|
+
return output;\r
|
|
1424
|
+
}\r
|
|
1425
|
+
\r
|
|
1426
|
+
@fragment\r
|
|
1427
|
+
fn fs(input: VOut) -> @location(0) vec4f {\r
|
|
1428
|
+
let sampled = textureSample(atlasTexture, atlasSampler, input.uv);\r
|
|
1429
|
+
return vec4f(sampled.rgb * input.modulation.rgb, sampled.a * input.modulation.a);\r
|
|
1430
|
+
}\r
|
|
1431
1431
|
`,Ni=`struct Globals {\r
|
|
1432
1432
|
projection: mat4x4f,\r
|
|
1433
1433
|
}\r
|
|
@@ -1731,292 +1731,292 @@ fn applyMotionPoint(point: vec2f, center: vec2f, scale: vec2f, cosine: f32, sine
|
|
|
1731
1731
|
)) { discard; }
|
|
1732
1732
|
return vec4f(0.0);
|
|
1733
1733
|
}
|
|
1734
|
-
`,P={svgaBatchPremul:{vert:XE,frag:PE},svgaInstancedPremul:{vert:OE,frag:jE},svgaFrameTableInstancedPremul:{vert:zE,frag:_E},svgaFrameTableShape:{vert:$E,frag:Ai},svgaFrameTableClipMask:{vert:gi,frag:Ii},vap:{vert:Bi,frag:HC},vapMixOverlay:{vert:Ci,frag:Qi},vapInstanced:{vert:ai,frag:HC},alphaVideo:{vert:Ei,frag:xC},alphaVideoInstanced:{vert:ti,frag:xC},rgbaTextured:{vert:ii,frag:ei},clipMask:{vert:oi,frag:bC},clipMaskInstanced:{vert:si,frag:bC},particleInstanced:{vert:ni,frag:ri},particleSpriteInstanced:{vert:hi,frag:ci}},lA={svgaBatchPremul:Di,svgaInstancedPremul:Si,vap:li,vapMixOverlay:wi,vapInstanced:di,alphaVideo:Fi,alphaVideoInstanced:Gi,rgbaTextured:yi,clipMask:Ri,clipMaskInstanced:ui,particleInstanced:fi,particleSpriteInstanced:Mi,svgaMotionInstancedPremul:Ni,svgaFrameTableShape:Ui,svgaFrameTableClipMask:ki},Yi=`/// SVGA timeline/table variant for premultiplied RGBA atlas textures
|
|
1735
|
-
|
|
1736
|
-
/// The frame table and sprite metadata are resident storage buffers. A draw
|
|
1737
|
-
/// submits one instance per sprite. Direct draws derive the sprite index from
|
|
1738
|
-
/// the GPU instance index and only upload the slot/global uniform. Hybrid
|
|
1739
|
-
/// draws can additionally bind compact CPU-precompiled scheduling rows that
|
|
1740
|
-
/// omit the SVGA child matrix and alpha fetched from the frame table
|
|
1741
|
-
|
|
1742
|
-
/// Frame table: three vec4 values per (sprite, frame)
|
|
1743
|
-
/// 0: layoutW, layoutH, a, b
|
|
1744
|
-
/// 1: c, d, tx, ty
|
|
1745
|
-
/// 2: alpha, reserved, reserved, reserved
|
|
1746
|
-
|
|
1747
|
-
/// Sprite metadata: two vec4 values per draw sprite
|
|
1748
|
-
/// 0: atlas UV min.xy / max.xy
|
|
1749
|
-
/// 1: source sprite index, atlas page, flags, reserved
|
|
1750
|
-
|
|
1751
|
-
/// Uniform layout
|
|
1752
|
-
/// projection mat4x4f (64 bytes)
|
|
1753
|
-
/// parentAffine vec4f (a, b, c, d)
|
|
1754
|
-
/// translateOpacityFrame vec4f (tx, ty, opacity, frameIndex)
|
|
1755
|
-
/// clipRect vec4f (top-left x0, y0, x1, y1)
|
|
1756
|
-
/// drawInfo vec4u (metadataBase, drawSpriteCount, clipEnabled, trackIndex+1)
|
|
1757
|
-
/// tableInfo vec4u (frameCount, spriteCount, vec4sPerFrame, 0)
|
|
1758
|
-
/// batchInfo vec4u (spritesPerSlot, metadataVec4Stride, stateMode, 0)
|
|
1759
|
-
|
|
1760
|
-
struct Globals {
|
|
1761
|
-
projection: mat4x4f
|
|
1762
|
-
parentAffine: vec4f
|
|
1763
|
-
translateOpacityFrame: vec4f
|
|
1764
|
-
clipRect: vec4f
|
|
1765
|
-
drawInfo: vec4u
|
|
1766
|
-
tableInfo: vec4u
|
|
1767
|
-
batchInfo: vec4u
|
|
1768
|
-
}
|
|
1769
|
-
|
|
1770
|
-
struct MotionGlobals {
|
|
1771
|
-
timeMs: f32
|
|
1772
|
-
sampleIntervalMs: f32
|
|
1773
|
-
sampleCount: f32
|
|
1774
|
-
cssScaleX: f32
|
|
1775
|
-
cssScaleY: f32
|
|
1776
|
-
pad0: f32
|
|
1777
|
-
pad1: f32
|
|
1778
|
-
pad2: f32
|
|
1779
|
-
}
|
|
1780
|
-
|
|
1781
|
-
@group(0) @binding(0) var<uniform> globals: Globals
|
|
1782
|
-
@group(0) @binding(1) var<storage, read> frameTable: array<vec4f
|
|
1783
|
-
@group(0) @binding(2) var<storage, read> spriteMetadata: array<vec4f
|
|
1784
|
-
@group(0) @binding(3) var<storage, read> motionData: array<f32
|
|
1785
|
-
@group(0) @binding(4) var<uniform> motionGlobals: MotionGlobals
|
|
1786
|
-
// Canonical four-vec4 / 16-float slot row: affine; translate+opacity+frame
|
|
1787
|
-
// clip rect; clipEnabled+metadataBase+atlasPage+motionTrack+1
|
|
1788
|
-
// Optional Hybrid scheduling rows use this exact schema per draw instance
|
|
1789
|
-
// Direct draws bind a harmless dummy slice and leave drawInfo bit 1 clear
|
|
1790
|
-
@group(0) @binding(5) var<storage, read> hybridInstances: array<vec4f
|
|
1791
|
-
@group(1) @binding(0) var atlasTex: texture_2d<f32
|
|
1792
|
-
@group(1) @binding(1) var atlasSampler: sampler
|
|
1793
|
-
|
|
1794
|
-
struct VIn {
|
|
1795
|
-
@location(0) corner: vec2f
|
|
1796
|
-
}
|
|
1797
|
-
|
|
1798
|
-
struct VOut {
|
|
1799
|
-
@builtin(position) pos: vec4f
|
|
1800
|
-
@location(0) uv: vec2f
|
|
1801
|
-
@location(1) color: vec4f
|
|
1802
|
-
@location(2) @interpolate(flat) clipRect: vec4f
|
|
1803
|
-
@location(3) @interpolate(flat) clipEnabled: f32
|
|
1804
|
-
@location(4) localPosition: vec2f
|
|
1805
|
-
@location(5) @interpolate(flat) localClipRect: vec4f
|
|
1806
|
-
@location(6) @interpolate(flat) localClipEnabled: f32
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
|
-
fn readFrameValue(index: u32) -> vec4f {
|
|
1810
|
-
return frameTable[index]
|
|
1811
|
-
}
|
|
1812
|
-
|
|
1813
|
-
fn sampleMotion(track: u32, channel: u32) -> f32 {
|
|
1814
|
-
let sampleCount = max(u32(motionGlobals.sampleCount), 1u)
|
|
1815
|
-
let samplePosition = clamp(
|
|
1816
|
-
motionGlobals.timeMs / max(motionGlobals.sampleIntervalMs, 0.001)
|
|
1817
|
-
0.0
|
|
1818
|
-
f32(sampleCount - 1u)
|
|
1819
|
-
)
|
|
1820
|
-
let left = u32(floor(samplePosition))
|
|
1821
|
-
let right = min(sampleCount - 1u, left + 1u)
|
|
1822
|
-
let trackBase = track * sampleCount * 8u
|
|
1823
|
-
let leftBase = trackBase + left * 8u
|
|
1824
|
-
let rightBase = trackBase + right * 8u
|
|
1825
|
-
let interpolate = left != right && motionData[leftBase + 7u] > 0.5 && channel < 6u
|
|
1826
|
-
if (!interpolate) {
|
|
1827
|
-
return motionData[leftBase + channel]
|
|
1828
|
-
}
|
|
1829
|
-
let progress = samplePosition - f32(left)
|
|
1830
|
-
return mix(motionData[leftBase + channel], motionData[rightBase + channel], progress)
|
|
1831
|
-
}
|
|
1832
|
-
|
|
1833
|
-
fn applyMotionPoint(
|
|
1834
|
-
point: vec2f
|
|
1835
|
-
center: vec2f
|
|
1836
|
-
scale: vec2f
|
|
1837
|
-
cosine: f32
|
|
1838
|
-
sine: f32
|
|
1839
|
-
) -> vec2f {
|
|
1840
|
-
let scaled = point * scale
|
|
1841
|
-
return center + vec2f(
|
|
1842
|
-
cosine * scaled.x - sine * scaled.y
|
|
1843
|
-
sine * scaled.x + cosine * scaled.y
|
|
1844
|
-
)
|
|
1845
|
-
}
|
|
1846
|
-
|
|
1847
|
-
@vertex
|
|
1848
|
-
fn vs(input: VIn, @builtin(instance_index) instance: u32) -> VOut {
|
|
1849
|
-
let safeInstance = min(instance, max(globals.drawInfo.y, 1u) - 1u)
|
|
1850
|
-
let hybrid = (globals.drawInfo.z & 2u) != 0u
|
|
1851
|
-
let compactSlots = (globals.drawInfo.z & 4u) != 0u
|
|
1852
|
-
let spritesPerSlot = max(globals.batchInfo.x, 1u)
|
|
1853
|
-
let slotStateIndex = select(safeInstance, safeInstance / spritesPerSlot, compactSlots)
|
|
1854
|
-
let hybridBase = slotStateIndex * 4u
|
|
1855
|
-
var hybridParent = vec4f(0.0)
|
|
1856
|
-
var hybridTranslateOpacityFrame = vec4f(0.0)
|
|
1857
|
-
var hybridClip = vec4f(0.0)
|
|
1858
|
-
var hybridInfo = vec4f(0.0)
|
|
1859
|
-
if (hybrid || compactSlots) {
|
|
1860
|
-
hybridParent = hybridInstances[hybridBase]
|
|
1861
|
-
hybridTranslateOpacityFrame = hybridInstances[hybridBase + 1u]
|
|
1862
|
-
hybridClip = hybridInstances[hybridBase + 2u]
|
|
1863
|
-
hybridInfo = hybridInstances[hybridBase + 3u]
|
|
1864
|
-
}
|
|
1865
|
-
let spriteWithinSlot = select(safeInstance, safeInstance % spritesPerSlot, compactSlots)
|
|
1866
|
-
let metadataIndex = select(
|
|
1867
|
-
globals.drawInfo.x + spriteWithinSlot
|
|
1868
|
-
u32(max(hybridInfo.y, 0.0))
|
|
1869
|
-
hybrid
|
|
1870
|
-
)
|
|
1871
|
-
let metadataStride = max(globals.batchInfo.y, 2u)
|
|
1872
|
-
let metadataBase = metadataIndex * metadataStride
|
|
1873
|
-
let metadataUv = spriteMetadata[metadataBase]
|
|
1874
|
-
let metadataSprite = spriteMetadata[metadataBase + 1u]
|
|
1875
|
-
var metadataClip = vec4f(0.0)
|
|
1876
|
-
if (metadataStride >= 3u) {
|
|
1877
|
-
metadataClip = spriteMetadata[metadataBase + 2u]
|
|
1878
|
-
}
|
|
1879
|
-
let metadataPage = metadataSprite.y
|
|
1880
|
-
let metadataFlags = u32(max(metadataSprite.z, 0.0))
|
|
1881
|
-
// The source sprite index is explicit so a page-specific metadata range
|
|
1882
|
-
// can represent non-contiguous atlas pages without duplicating frame rows
|
|
1883
|
-
// A page mismatch is made transparent so an invalid plan cannot sample a
|
|
1884
|
-
// sprite into the wrong atlas page
|
|
1885
|
-
let spriteIndex = u32(max(metadataSprite.x, 0.0))
|
|
1886
|
-
|
|
1887
|
-
let frameCount = max(globals.tableInfo.x, 1u)
|
|
1888
|
-
let spriteCount = max(globals.tableInfo.y, 1u)
|
|
1889
|
-
let safeSprite = min(spriteIndex, spriteCount - 1u)
|
|
1890
|
-
let selectedFrame = select(
|
|
1891
|
-
globals.translateOpacityFrame.w
|
|
1892
|
-
hybridTranslateOpacityFrame.w
|
|
1893
|
-
hybrid || compactSlots
|
|
1894
|
-
)
|
|
1895
|
-
let safeFrame = min(
|
|
1896
|
-
u32(max(selectedFrame, 0.0))
|
|
1897
|
-
frameCount - 1u
|
|
1898
|
-
)
|
|
1899
|
-
let tableBase = (safeSprite * frameCount + safeFrame) * globals.tableInfo.z
|
|
1900
|
-
let frame0 = readFrameValue(tableBase)
|
|
1901
|
-
let frame1 = readFrameValue(tableBase + 1u)
|
|
1902
|
-
let frame2 = readFrameValue(tableBase + 2u)
|
|
1903
|
-
|
|
1904
|
-
let layoutW = frame0.x
|
|
1905
|
-
let layoutH = frame0.y
|
|
1906
|
-
let local = vec2f(
|
|
1907
|
-
frame0.z * layoutW * input.corner.x + frame1.x * layoutH * input.corner.y + frame1.z
|
|
1908
|
-
frame0.w * layoutW * input.corner.x + frame1.y * layoutH * input.corner.y + frame1.w
|
|
1909
|
-
)
|
|
1910
|
-
|
|
1911
|
-
let instanceSlotState = hybrid || compactSlots
|
|
1912
|
-
let parent = select(globals.parentAffine, hybridParent, instanceSlotState)
|
|
1913
|
-
let parentTranslate = select(
|
|
1914
|
-
globals.translateOpacityFrame.xy
|
|
1915
|
-
hybridTranslateOpacityFrame.xy
|
|
1916
|
-
instanceSlotState
|
|
1917
|
-
)
|
|
1918
|
-
let parentLocal = vec2f(
|
|
1919
|
-
parent.x * local.x + parent.z * local.y + parentTranslate.x
|
|
1920
|
-
parent.y * local.x + parent.w * local.y + parentTranslate.y
|
|
1921
|
-
)
|
|
1922
|
-
let instanceTrack = u32(max(hybridInfo.w, 0.0))
|
|
1923
|
-
let selectedTrack = select(globals.drawInfo.w, instanceTrack, compactSlots)
|
|
1924
|
-
let hasParentMotion = selectedTrack > 0u
|
|
1925
|
-
var world = parentLocal
|
|
1926
|
-
var outerClip = select(globals.clipRect, hybridClip, instanceSlotState)
|
|
1927
|
-
let outerClipEnabled = select(
|
|
1928
|
-
f32(globals.drawInfo.z & 1u)
|
|
1929
|
-
hybridInfo.x
|
|
1930
|
-
instanceSlotState
|
|
1931
|
-
)
|
|
1932
|
-
var parentOpacity = select(
|
|
1933
|
-
globals.translateOpacityFrame.z
|
|
1934
|
-
hybridTranslateOpacityFrame.z
|
|
1935
|
-
instanceSlotState
|
|
1936
|
-
)
|
|
1937
|
-
if (hasParentMotion) {
|
|
1938
|
-
let track = selectedTrack - 1u
|
|
1939
|
-
let scale = vec2f(sampleMotion(track, 2u), sampleMotion(track, 3u))
|
|
1940
|
-
let angle = sampleMotion(track, 4u)
|
|
1941
|
-
let cosine = cos(angle)
|
|
1942
|
-
let sine = sin(angle)
|
|
1943
|
-
let center = vec2f(
|
|
1944
|
-
sampleMotion(track, 0u) * motionGlobals.cssScaleX
|
|
1945
|
-
sampleMotion(track, 1u) * motionGlobals.cssScaleY
|
|
1946
|
-
)
|
|
1947
|
-
world = applyMotionPoint(parentLocal, center, scale, cosine, sine)
|
|
1948
|
-
let clip0 = applyMotionPoint(outerClip.xy, center, scale, cosine, sine)
|
|
1949
|
-
let clip1 = applyMotionPoint(vec2f(outerClip.z, outerClip.y), center, scale, cosine, sine)
|
|
1950
|
-
let clip2 = applyMotionPoint(outerClip.zw, center, scale, cosine, sine)
|
|
1951
|
-
let clip3 = applyMotionPoint(vec2f(outerClip.x, outerClip.w), center, scale, cosine, sine)
|
|
1952
|
-
outerClip = vec4f(
|
|
1953
|
-
min(min(clip0.x, clip1.x), min(clip2.x, clip3.x))
|
|
1954
|
-
min(min(clip0.y, clip1.y), min(clip2.y, clip3.y))
|
|
1955
|
-
max(max(clip0.x, clip1.x), max(clip2.x, clip3.x))
|
|
1956
|
-
max(max(clip0.y, clip1.y), max(clip2.y, clip3.y))
|
|
1957
|
-
)
|
|
1958
|
-
let visible = sampleMotion(track, 6u)
|
|
1959
|
-
parentOpacity = sampleMotion(track, 5u) * select(0.0, 1.0, visible > 0.5)
|
|
1960
|
-
}
|
|
1961
|
-
|
|
1962
|
-
var output: VOut
|
|
1963
|
-
output.pos = globals.projection * vec4f(world, 0.0, 1.0)
|
|
1964
|
-
output.uv = mix(metadataUv.xy, metadataUv.zw, input.corner)
|
|
1965
|
-
var pageMatchesValue = globals.tableInfo.w == 0xffffffffu
|
|
1966
|
-
u32(max(metadataPage, 0.0)) == globals.tableInfo.w
|
|
1967
|
-
if (hybrid || compactSlots) {
|
|
1968
|
-
pageMatchesValue = hybridInfo.z < -0.5
|
|
1969
|
-
i32(round(metadataPage)) == i32(round(hybridInfo.z))
|
|
1970
|
-
}
|
|
1971
|
-
let pageMatches = select(
|
|
1972
|
-
0.0
|
|
1973
|
-
1.0
|
|
1974
|
-
pageMatchesValue
|
|
1975
|
-
)
|
|
1976
|
-
let metadataPresent = select(1.0, 0.0, (metadataFlags & 1u) != 0u)
|
|
1977
|
-
// Keep the table path's visibility cutoff identical to the CPU reference
|
|
1978
|
-
// renderer: rows below 0.05 are culled before issuing meaningful color
|
|
1979
|
-
// Exactly 0.05 remains visible (the reference uses a strict \`< 0.05\` test)
|
|
1980
|
-
let effectiveAlpha = frame2.x * parentOpacity * pageMatches * metadataPresent
|
|
1981
|
-
let visibleAlpha = select(0.0, effectiveAlpha, effectiveAlpha >= 0.05)
|
|
1982
|
-
output.color = vec4f(visibleAlpha)
|
|
1983
|
-
output.clipRect = outerClip
|
|
1984
|
-
output.clipEnabled = outerClipEnabled
|
|
1985
|
-
output.localPosition = vec2f(layoutW * input.corner.x, layoutH * input.corner.y)
|
|
1986
|
-
output.localClipRect = metadataClip
|
|
1987
|
-
output.localClipEnabled = select(0.0, 1.0, (metadataFlags & 2u) != 0u)
|
|
1988
|
-
return output
|
|
1989
|
-
}
|
|
1990
|
-
|
|
1991
|
-
@fragment
|
|
1992
|
-
fn fs(input: VOut) -> @location(0) vec4f {
|
|
1993
|
-
if (input.color.a < 0.05) {
|
|
1994
|
-
discard
|
|
1995
|
-
}
|
|
1996
|
-
if (input.clipEnabled > 0.5) {
|
|
1997
|
-
if (
|
|
1998
|
-
input.pos.x < input.clipRect.x
|
|
1999
|
-
input.pos.y < input.clipRect.y
|
|
2000
|
-
input.pos.x >= input.clipRect.z
|
|
2001
|
-
input.pos.y >= input.clipRect.w
|
|
2002
|
-
) {
|
|
2003
|
-
discard
|
|
2004
|
-
}
|
|
2005
|
-
}
|
|
2006
|
-
if (
|
|
2007
|
-
input.localClipEnabled > 0.5
|
|
2008
|
-
(
|
|
2009
|
-
input.localPosition.x < input.localClipRect.x
|
|
2010
|
-
input.localPosition.y < input.localClipRect.y
|
|
2011
|
-
input.localPosition.x >= input.localClipRect.z
|
|
2012
|
-
input.localPosition.y >= input.localClipRect.w
|
|
2013
|
-
)
|
|
2014
|
-
) {
|
|
2015
|
-
discard
|
|
2016
|
-
}
|
|
2017
|
-
let color = textureSample(atlasTex, atlasSampler, input.uv)
|
|
2018
|
-
return vec4f(color.rgb * input.color.a, color.a * input.color.a)
|
|
2019
|
-
}
|
|
1734
|
+
`,P={svgaBatchPremul:{vert:XE,frag:PE},svgaInstancedPremul:{vert:OE,frag:jE},svgaFrameTableInstancedPremul:{vert:zE,frag:_E},svgaFrameTableShape:{vert:$E,frag:Ai},svgaFrameTableClipMask:{vert:gi,frag:Ii},vap:{vert:Bi,frag:HC},vapMixOverlay:{vert:Ci,frag:Qi},vapInstanced:{vert:ai,frag:HC},alphaVideo:{vert:Ei,frag:xC},alphaVideoInstanced:{vert:ti,frag:xC},rgbaTextured:{vert:ii,frag:ei},clipMask:{vert:oi,frag:bC},clipMaskInstanced:{vert:si,frag:bC},particleInstanced:{vert:ni,frag:ri},particleSpriteInstanced:{vert:hi,frag:ci}},lA={svgaBatchPremul:Di,svgaInstancedPremul:Si,vap:li,vapMixOverlay:wi,vapInstanced:di,alphaVideo:Fi,alphaVideoInstanced:Gi,rgbaTextured:yi,clipMask:Ri,clipMaskInstanced:ui,particleInstanced:fi,particleSpriteInstanced:Mi,svgaMotionInstancedPremul:Ni,svgaFrameTableShape:Ui,svgaFrameTableClipMask:ki},Yi=`/// SVGA timeline/table variant for premultiplied RGBA atlas textures.\r
|
|
1735
|
+
///\r
|
|
1736
|
+
/// The frame table and sprite metadata are resident storage buffers. A draw\r
|
|
1737
|
+
/// submits one instance per sprite. Direct draws derive the sprite index from\r
|
|
1738
|
+
/// the GPU instance index and only upload the slot/global uniform. Hybrid\r
|
|
1739
|
+
/// draws can additionally bind compact CPU-precompiled scheduling rows that\r
|
|
1740
|
+
/// omit the SVGA child matrix and alpha fetched from the frame table.\r
|
|
1741
|
+
///\r
|
|
1742
|
+
/// Frame table: three vec4 values per (sprite, frame):\r
|
|
1743
|
+
/// 0: layoutW, layoutH, a, b\r
|
|
1744
|
+
/// 1: c, d, tx, ty\r
|
|
1745
|
+
/// 2: alpha, reserved, reserved, reserved\r
|
|
1746
|
+
///\r
|
|
1747
|
+
/// Sprite metadata: two vec4 values per draw sprite:\r
|
|
1748
|
+
/// 0: atlas UV min.xy / max.xy\r
|
|
1749
|
+
/// 1: source sprite index, atlas page, flags, reserved\r
|
|
1750
|
+
///\r
|
|
1751
|
+
/// Uniform layout:\r
|
|
1752
|
+
/// projection mat4x4f (64 bytes)\r
|
|
1753
|
+
/// parentAffine vec4f (a, b, c, d)\r
|
|
1754
|
+
/// translateOpacityFrame vec4f (tx, ty, opacity, frameIndex)\r
|
|
1755
|
+
/// clipRect vec4f (top-left x0, y0, x1, y1)\r
|
|
1756
|
+
/// drawInfo vec4u (metadataBase, drawSpriteCount, clipEnabled, trackIndex+1)\r
|
|
1757
|
+
/// tableInfo vec4u (frameCount, spriteCount, vec4sPerFrame, 0)\r
|
|
1758
|
+
/// batchInfo vec4u (spritesPerSlot, metadataVec4Stride, stateMode, 0)\r
|
|
1759
|
+
\r
|
|
1760
|
+
struct Globals {\r
|
|
1761
|
+
projection: mat4x4f,\r
|
|
1762
|
+
parentAffine: vec4f,\r
|
|
1763
|
+
translateOpacityFrame: vec4f,\r
|
|
1764
|
+
clipRect: vec4f,\r
|
|
1765
|
+
drawInfo: vec4u,\r
|
|
1766
|
+
tableInfo: vec4u,\r
|
|
1767
|
+
batchInfo: vec4u,\r
|
|
1768
|
+
}\r
|
|
1769
|
+
\r
|
|
1770
|
+
struct MotionGlobals {\r
|
|
1771
|
+
timeMs: f32,\r
|
|
1772
|
+
sampleIntervalMs: f32,\r
|
|
1773
|
+
sampleCount: f32,\r
|
|
1774
|
+
cssScaleX: f32,\r
|
|
1775
|
+
cssScaleY: f32,\r
|
|
1776
|
+
pad0: f32,\r
|
|
1777
|
+
pad1: f32,\r
|
|
1778
|
+
pad2: f32,\r
|
|
1779
|
+
}\r
|
|
1780
|
+
\r
|
|
1781
|
+
@group(0) @binding(0) var<uniform> globals: Globals;\r
|
|
1782
|
+
@group(0) @binding(1) var<storage, read> frameTable: array<vec4f>;\r
|
|
1783
|
+
@group(0) @binding(2) var<storage, read> spriteMetadata: array<vec4f>;\r
|
|
1784
|
+
@group(0) @binding(3) var<storage, read> motionData: array<f32>;\r
|
|
1785
|
+
@group(0) @binding(4) var<uniform> motionGlobals: MotionGlobals;\r
|
|
1786
|
+
// Canonical four-vec4 / 16-float slot row: affine; translate+opacity+frame;\r
|
|
1787
|
+
// clip rect; clipEnabled+metadataBase+atlasPage+motionTrack+1.\r
|
|
1788
|
+
// Optional Hybrid scheduling rows use this exact schema per draw instance.\r
|
|
1789
|
+
// Direct draws bind a harmless dummy slice and leave drawInfo bit 1 clear.\r
|
|
1790
|
+
@group(0) @binding(5) var<storage, read> hybridInstances: array<vec4f>;\r
|
|
1791
|
+
@group(1) @binding(0) var atlasTex: texture_2d<f32>;\r
|
|
1792
|
+
@group(1) @binding(1) var atlasSampler: sampler;\r
|
|
1793
|
+
\r
|
|
1794
|
+
struct VIn {\r
|
|
1795
|
+
@location(0) corner: vec2f,\r
|
|
1796
|
+
}\r
|
|
1797
|
+
\r
|
|
1798
|
+
struct VOut {\r
|
|
1799
|
+
@builtin(position) pos: vec4f,\r
|
|
1800
|
+
@location(0) uv: vec2f,\r
|
|
1801
|
+
@location(1) color: vec4f,\r
|
|
1802
|
+
@location(2) @interpolate(flat) clipRect: vec4f,\r
|
|
1803
|
+
@location(3) @interpolate(flat) clipEnabled: f32,\r
|
|
1804
|
+
@location(4) localPosition: vec2f,\r
|
|
1805
|
+
@location(5) @interpolate(flat) localClipRect: vec4f,\r
|
|
1806
|
+
@location(6) @interpolate(flat) localClipEnabled: f32,\r
|
|
1807
|
+
}\r
|
|
1808
|
+
\r
|
|
1809
|
+
fn readFrameValue(index: u32) -> vec4f {\r
|
|
1810
|
+
return frameTable[index];\r
|
|
1811
|
+
}\r
|
|
1812
|
+
\r
|
|
1813
|
+
fn sampleMotion(track: u32, channel: u32) -> f32 {\r
|
|
1814
|
+
let sampleCount = max(u32(motionGlobals.sampleCount), 1u);\r
|
|
1815
|
+
let samplePosition = clamp(\r
|
|
1816
|
+
motionGlobals.timeMs / max(motionGlobals.sampleIntervalMs, 0.001),\r
|
|
1817
|
+
0.0,\r
|
|
1818
|
+
f32(sampleCount - 1u),\r
|
|
1819
|
+
);\r
|
|
1820
|
+
let left = u32(floor(samplePosition));\r
|
|
1821
|
+
let right = min(sampleCount - 1u, left + 1u);\r
|
|
1822
|
+
let trackBase = track * sampleCount * 8u;\r
|
|
1823
|
+
let leftBase = trackBase + left * 8u;\r
|
|
1824
|
+
let rightBase = trackBase + right * 8u;\r
|
|
1825
|
+
let interpolate = left != right && motionData[leftBase + 7u] > 0.5 && channel < 6u;\r
|
|
1826
|
+
if (!interpolate) {\r
|
|
1827
|
+
return motionData[leftBase + channel];\r
|
|
1828
|
+
}\r
|
|
1829
|
+
let progress = samplePosition - f32(left);\r
|
|
1830
|
+
return mix(motionData[leftBase + channel], motionData[rightBase + channel], progress);\r
|
|
1831
|
+
}\r
|
|
1832
|
+
\r
|
|
1833
|
+
fn applyMotionPoint(\r
|
|
1834
|
+
point: vec2f,\r
|
|
1835
|
+
center: vec2f,\r
|
|
1836
|
+
scale: vec2f,\r
|
|
1837
|
+
cosine: f32,\r
|
|
1838
|
+
sine: f32,\r
|
|
1839
|
+
) -> vec2f {\r
|
|
1840
|
+
let scaled = point * scale;\r
|
|
1841
|
+
return center + vec2f(\r
|
|
1842
|
+
cosine * scaled.x - sine * scaled.y,\r
|
|
1843
|
+
sine * scaled.x + cosine * scaled.y,\r
|
|
1844
|
+
);\r
|
|
1845
|
+
}\r
|
|
1846
|
+
\r
|
|
1847
|
+
@vertex\r
|
|
1848
|
+
fn vs(input: VIn, @builtin(instance_index) instance: u32) -> VOut {\r
|
|
1849
|
+
let safeInstance = min(instance, max(globals.drawInfo.y, 1u) - 1u);\r
|
|
1850
|
+
let hybrid = (globals.drawInfo.z & 2u) != 0u;\r
|
|
1851
|
+
let compactSlots = (globals.drawInfo.z & 4u) != 0u;\r
|
|
1852
|
+
let spritesPerSlot = max(globals.batchInfo.x, 1u);\r
|
|
1853
|
+
let slotStateIndex = select(safeInstance, safeInstance / spritesPerSlot, compactSlots);\r
|
|
1854
|
+
let hybridBase = slotStateIndex * 4u;\r
|
|
1855
|
+
var hybridParent = vec4f(0.0);\r
|
|
1856
|
+
var hybridTranslateOpacityFrame = vec4f(0.0);\r
|
|
1857
|
+
var hybridClip = vec4f(0.0);\r
|
|
1858
|
+
var hybridInfo = vec4f(0.0);\r
|
|
1859
|
+
if (hybrid || compactSlots) {\r
|
|
1860
|
+
hybridParent = hybridInstances[hybridBase];\r
|
|
1861
|
+
hybridTranslateOpacityFrame = hybridInstances[hybridBase + 1u];\r
|
|
1862
|
+
hybridClip = hybridInstances[hybridBase + 2u];\r
|
|
1863
|
+
hybridInfo = hybridInstances[hybridBase + 3u];\r
|
|
1864
|
+
}\r
|
|
1865
|
+
let spriteWithinSlot = select(safeInstance, safeInstance % spritesPerSlot, compactSlots);\r
|
|
1866
|
+
let metadataIndex = select(\r
|
|
1867
|
+
globals.drawInfo.x + spriteWithinSlot,\r
|
|
1868
|
+
u32(max(hybridInfo.y, 0.0)),\r
|
|
1869
|
+
hybrid,\r
|
|
1870
|
+
);\r
|
|
1871
|
+
let metadataStride = max(globals.batchInfo.y, 2u);\r
|
|
1872
|
+
let metadataBase = metadataIndex * metadataStride;\r
|
|
1873
|
+
let metadataUv = spriteMetadata[metadataBase];\r
|
|
1874
|
+
let metadataSprite = spriteMetadata[metadataBase + 1u];\r
|
|
1875
|
+
var metadataClip = vec4f(0.0);\r
|
|
1876
|
+
if (metadataStride >= 3u) {\r
|
|
1877
|
+
metadataClip = spriteMetadata[metadataBase + 2u];\r
|
|
1878
|
+
}\r
|
|
1879
|
+
let metadataPage = metadataSprite.y;\r
|
|
1880
|
+
let metadataFlags = u32(max(metadataSprite.z, 0.0));\r
|
|
1881
|
+
// The source sprite index is explicit so a page-specific metadata range\r
|
|
1882
|
+
// can represent non-contiguous atlas pages without duplicating frame rows.\r
|
|
1883
|
+
// A page mismatch is made transparent so an invalid plan cannot sample a\r
|
|
1884
|
+
// sprite into the wrong atlas page.\r
|
|
1885
|
+
let spriteIndex = u32(max(metadataSprite.x, 0.0));\r
|
|
1886
|
+
\r
|
|
1887
|
+
let frameCount = max(globals.tableInfo.x, 1u);\r
|
|
1888
|
+
let spriteCount = max(globals.tableInfo.y, 1u);\r
|
|
1889
|
+
let safeSprite = min(spriteIndex, spriteCount - 1u);\r
|
|
1890
|
+
let selectedFrame = select(\r
|
|
1891
|
+
globals.translateOpacityFrame.w,\r
|
|
1892
|
+
hybridTranslateOpacityFrame.w,\r
|
|
1893
|
+
hybrid || compactSlots,\r
|
|
1894
|
+
);\r
|
|
1895
|
+
let safeFrame = min(\r
|
|
1896
|
+
u32(max(selectedFrame, 0.0)),\r
|
|
1897
|
+
frameCount - 1u,\r
|
|
1898
|
+
);\r
|
|
1899
|
+
let tableBase = (safeSprite * frameCount + safeFrame) * globals.tableInfo.z;\r
|
|
1900
|
+
let frame0 = readFrameValue(tableBase);\r
|
|
1901
|
+
let frame1 = readFrameValue(tableBase + 1u);\r
|
|
1902
|
+
let frame2 = readFrameValue(tableBase + 2u);\r
|
|
1903
|
+
\r
|
|
1904
|
+
let layoutW = frame0.x;\r
|
|
1905
|
+
let layoutH = frame0.y;\r
|
|
1906
|
+
let local = vec2f(\r
|
|
1907
|
+
frame0.z * layoutW * input.corner.x + frame1.x * layoutH * input.corner.y + frame1.z,\r
|
|
1908
|
+
frame0.w * layoutW * input.corner.x + frame1.y * layoutH * input.corner.y + frame1.w,\r
|
|
1909
|
+
);\r
|
|
1910
|
+
\r
|
|
1911
|
+
let instanceSlotState = hybrid || compactSlots;\r
|
|
1912
|
+
let parent = select(globals.parentAffine, hybridParent, instanceSlotState);\r
|
|
1913
|
+
let parentTranslate = select(\r
|
|
1914
|
+
globals.translateOpacityFrame.xy,\r
|
|
1915
|
+
hybridTranslateOpacityFrame.xy,\r
|
|
1916
|
+
instanceSlotState,\r
|
|
1917
|
+
);\r
|
|
1918
|
+
let parentLocal = vec2f(\r
|
|
1919
|
+
parent.x * local.x + parent.z * local.y + parentTranslate.x,\r
|
|
1920
|
+
parent.y * local.x + parent.w * local.y + parentTranslate.y,\r
|
|
1921
|
+
);\r
|
|
1922
|
+
let instanceTrack = u32(max(hybridInfo.w, 0.0));\r
|
|
1923
|
+
let selectedTrack = select(globals.drawInfo.w, instanceTrack, compactSlots);\r
|
|
1924
|
+
let hasParentMotion = selectedTrack > 0u;\r
|
|
1925
|
+
var world = parentLocal;\r
|
|
1926
|
+
var outerClip = select(globals.clipRect, hybridClip, instanceSlotState);\r
|
|
1927
|
+
let outerClipEnabled = select(\r
|
|
1928
|
+
f32(globals.drawInfo.z & 1u),\r
|
|
1929
|
+
hybridInfo.x,\r
|
|
1930
|
+
instanceSlotState,\r
|
|
1931
|
+
);\r
|
|
1932
|
+
var parentOpacity = select(\r
|
|
1933
|
+
globals.translateOpacityFrame.z,\r
|
|
1934
|
+
hybridTranslateOpacityFrame.z,\r
|
|
1935
|
+
instanceSlotState,\r
|
|
1936
|
+
);\r
|
|
1937
|
+
if (hasParentMotion) {\r
|
|
1938
|
+
let track = selectedTrack - 1u;\r
|
|
1939
|
+
let scale = vec2f(sampleMotion(track, 2u), sampleMotion(track, 3u));\r
|
|
1940
|
+
let angle = sampleMotion(track, 4u);\r
|
|
1941
|
+
let cosine = cos(angle);\r
|
|
1942
|
+
let sine = sin(angle);\r
|
|
1943
|
+
let center = vec2f(\r
|
|
1944
|
+
sampleMotion(track, 0u) * motionGlobals.cssScaleX,\r
|
|
1945
|
+
sampleMotion(track, 1u) * motionGlobals.cssScaleY,\r
|
|
1946
|
+
);\r
|
|
1947
|
+
world = applyMotionPoint(parentLocal, center, scale, cosine, sine);\r
|
|
1948
|
+
let clip0 = applyMotionPoint(outerClip.xy, center, scale, cosine, sine);\r
|
|
1949
|
+
let clip1 = applyMotionPoint(vec2f(outerClip.z, outerClip.y), center, scale, cosine, sine);\r
|
|
1950
|
+
let clip2 = applyMotionPoint(outerClip.zw, center, scale, cosine, sine);\r
|
|
1951
|
+
let clip3 = applyMotionPoint(vec2f(outerClip.x, outerClip.w), center, scale, cosine, sine);\r
|
|
1952
|
+
outerClip = vec4f(\r
|
|
1953
|
+
min(min(clip0.x, clip1.x), min(clip2.x, clip3.x)),\r
|
|
1954
|
+
min(min(clip0.y, clip1.y), min(clip2.y, clip3.y)),\r
|
|
1955
|
+
max(max(clip0.x, clip1.x), max(clip2.x, clip3.x)),\r
|
|
1956
|
+
max(max(clip0.y, clip1.y), max(clip2.y, clip3.y)),\r
|
|
1957
|
+
);\r
|
|
1958
|
+
let visible = sampleMotion(track, 6u);\r
|
|
1959
|
+
parentOpacity = sampleMotion(track, 5u) * select(0.0, 1.0, visible > 0.5);\r
|
|
1960
|
+
}\r
|
|
1961
|
+
\r
|
|
1962
|
+
var output: VOut;\r
|
|
1963
|
+
output.pos = globals.projection * vec4f(world, 0.0, 1.0);\r
|
|
1964
|
+
output.uv = mix(metadataUv.xy, metadataUv.zw, input.corner);\r
|
|
1965
|
+
var pageMatchesValue = globals.tableInfo.w == 0xffffffffu ||\r
|
|
1966
|
+
u32(max(metadataPage, 0.0)) == globals.tableInfo.w;\r
|
|
1967
|
+
if (hybrid || compactSlots) {\r
|
|
1968
|
+
pageMatchesValue = hybridInfo.z < -0.5 ||\r
|
|
1969
|
+
i32(round(metadataPage)) == i32(round(hybridInfo.z));\r
|
|
1970
|
+
}\r
|
|
1971
|
+
let pageMatches = select(\r
|
|
1972
|
+
0.0,\r
|
|
1973
|
+
1.0,\r
|
|
1974
|
+
pageMatchesValue,\r
|
|
1975
|
+
);\r
|
|
1976
|
+
let metadataPresent = select(1.0, 0.0, (metadataFlags & 1u) != 0u);\r
|
|
1977
|
+
// Keep the table path's visibility cutoff identical to the CPU reference\r
|
|
1978
|
+
// renderer: rows below 0.05 are culled before issuing meaningful color.\r
|
|
1979
|
+
// Exactly 0.05 remains visible (the reference uses a strict \`< 0.05\` test).\r
|
|
1980
|
+
let effectiveAlpha = frame2.x * parentOpacity * pageMatches * metadataPresent;\r
|
|
1981
|
+
let visibleAlpha = select(0.0, effectiveAlpha, effectiveAlpha >= 0.05);\r
|
|
1982
|
+
output.color = vec4f(visibleAlpha);\r
|
|
1983
|
+
output.clipRect = outerClip;\r
|
|
1984
|
+
output.clipEnabled = outerClipEnabled;\r
|
|
1985
|
+
output.localPosition = vec2f(layoutW * input.corner.x, layoutH * input.corner.y);\r
|
|
1986
|
+
output.localClipRect = metadataClip;\r
|
|
1987
|
+
output.localClipEnabled = select(0.0, 1.0, (metadataFlags & 2u) != 0u);\r
|
|
1988
|
+
return output;\r
|
|
1989
|
+
}\r
|
|
1990
|
+
\r
|
|
1991
|
+
@fragment\r
|
|
1992
|
+
fn fs(input: VOut) -> @location(0) vec4f {\r
|
|
1993
|
+
if (input.color.a < 0.05) {\r
|
|
1994
|
+
discard;\r
|
|
1995
|
+
}\r
|
|
1996
|
+
if (input.clipEnabled > 0.5) {\r
|
|
1997
|
+
if (\r
|
|
1998
|
+
input.pos.x < input.clipRect.x ||\r
|
|
1999
|
+
input.pos.y < input.clipRect.y ||\r
|
|
2000
|
+
input.pos.x >= input.clipRect.z ||\r
|
|
2001
|
+
input.pos.y >= input.clipRect.w\r
|
|
2002
|
+
) {\r
|
|
2003
|
+
discard;\r
|
|
2004
|
+
}\r
|
|
2005
|
+
}\r
|
|
2006
|
+
if (\r
|
|
2007
|
+
input.localClipEnabled > 0.5 &&\r
|
|
2008
|
+
(\r
|
|
2009
|
+
input.localPosition.x < input.localClipRect.x ||\r
|
|
2010
|
+
input.localPosition.y < input.localClipRect.y ||\r
|
|
2011
|
+
input.localPosition.x >= input.localClipRect.z ||\r
|
|
2012
|
+
input.localPosition.y >= input.localClipRect.w\r
|
|
2013
|
+
)\r
|
|
2014
|
+
) {\r
|
|
2015
|
+
discard;\r
|
|
2016
|
+
}\r
|
|
2017
|
+
let color = textureSample(atlasTex, atlasSampler, input.uv);\r
|
|
2018
|
+
return vec4f(color.rgb * input.color.a, color.a * input.color.a);\r
|
|
2019
|
+
}\r
|
|
2020
2020
|
`,tg=Object.freeze({submitted:!0});function $(C,A){return A?{submitted:!1,reason:C,message:A}:{submitted:!1,reason:C}}function Tg(C,A){if(!C.submitted)throw new Error(`${A} rejected (${C.reason})${C.message?`: ${C.message}`:""}`)}const $A=16,Ng=Object.freeze({parentA:0,parentB:1,parentC:2,parentD:3,translateX:4,translateY:5,opacity:6,frame:7,clipX0:8,clipY0:9,clipX1:10,clipY1:11,clipEnabled:12,metadataBase:13,atlasPage:14,motionTrackPlusOne:15});var pi=Object.defineProperty,Ki=(C,A,g)=>A in C?pi(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,p=(C,A,g)=>Ki(C,typeof A!="symbol"?A+"":A,g);const qC=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),mi=new Float32Array([0,0,1,1]),Lg=16*1024*1024,vQ=12,uI=8,Ji=uI*Float32Array.BYTES_PER_ELEMENT,bB=160,vC="svga-frame-table-instanced-premul";function QI(C,A){const g=Math.max(1,Math.floor(A));return Math.ceil(Math.max(0,C)/g)*g}const hg=class CA{constructor(A,g,I=!0){p(this,"type","webgpu"),p(this,"supportsAtomicFrameReplay",!0),p(this,"canvas"),p(this,"maxTextureSize"),p(this,"adapter"),p(this,"device"),p(this,"context"),p(this,"format"),p(this,"encoder",null),p(this,"passEncoder",null),p(this,"nextId",1),p(this,"buffers",new Map),p(this,"textures",new Map),p(this,"pipelines",new Map),p(this,"sampler"),p(this,"uniformBuffer"),p(this,"texturedBindGroupLayout"),p(this,"dualTexturedBindGroupLayout"),p(this,"instancedTextureBindGroupLayout"),p(this,"uniformOnlyBindGroupLayout"),p(this,"svgaFrameTableBindGroupLayout",null),p(this,"uniformSlotStride",256),p(this,"maxUniformSlots",8192),p(this,"uniformSlotIndex",0),p(this,"uniformShadow",new Uint8Array(this.uniformSlotStride*this.maxUniformSlots)),p(this,"uniformShadowDirtyMin",1/0),p(this,"uniformShadowDirtyMax",0),p(this,"lastDrawPipeline",null),p(this,"lastStencilRef",-1),p(this,"frameUsesStencil",!1),p(this,"lastVertexBufferId",-1),p(this,"lastIndexBufferId",-1),p(this,"uniformScratch160",new Float32Array(40)),p(this,"uniformScratch128",new Float32Array(32)),p(this,"svgaFrameTableUniformScratch",new Float32Array(bB/Float32Array.BYTES_PER_ELEMENT)),p(this,"svgaFrameTableUniformWords",new Uint32Array(this.svgaFrameTableUniformScratch.buffer)),p(this,"uniformOpacityScratch",new Float32Array(4)),p(this,"depthStencilTexture",null),p(this,"depthStencilView",null),p(this,"msaaColorTexture",null),p(this,"msaaColorView",null),p(this,"lastCanvasWidth",0),p(this,"lastCanvasHeight",0),p(this,"lastDepthStencilSampleCount",0),p(this,"msaaSampleCount",1),p(this,"wantAntialias"),p(this,"configuredCanvasWidth",0),p(this,"configuredCanvasHeight",0),p(this,"dummyTexture"),p(this,"dummyTextureView"),p(this,"videoUploadCanvas",null),p(this,"videoUploadCtx",null),p(this,"videoElementPreferCanvasBridge",!1),p(this,"videoFramePreferCanvasBridge",!1),p(this,"texturedBindGroupCache",new Map),p(this,"dualTexturedBindGroupCache",new Map),p(this,"instancedTextureBindGroupCache",new Map),p(this,"particleDataBindGroupCache",new Map),p(this,"motionDataBindGroupCache",new Map),p(this,"svgaFrameTableDataBindGroupCache",new Map),p(this,"instancedProjectionBuffer",null),p(this,"instancedStorageBuffer",null),p(this,"storageBindOffsetAlign",256),p(this,"instancedStorageRingOffset",0),p(this,"svgaCompactSlotStateUploadId",-1),p(this,"svgaCompactSlotStateStorageBase",-1),p(this,"svgaCompactSlotStateByteLength",0),p(this,"instancedStorageShadow",new Uint8Array(0)),p(this,"instancedStorageShadowDirtyMax",0),p(this,"instancedProjectionCache",new Float32Array(16)),p(this,"instancedProjectionValid",!1),p(this,"lastClipMaskStorageBase",-1),p(this,"lastClipMaskStorageByteLength",0),p(this,"lastInstancedTextureBindGroup",null),p(this,"performanceBufferWrites",0),p(this,"performanceBufferWriteBytes",0),p(this,"performanceStorageBufferWrites",0),p(this,"performanceStorageBufferWriteBytes",0),p(this,"performanceSubmittedDrawCalls",0),p(this,"performanceRejectedDrawCalls",0),p(this,"performanceSVGADynamicUploadWrites",0),p(this,"performanceSVGADynamicUploadBytes",0),p(this,"runtimeSubmittedDrawCalls",0),p(this,"runtimeRejectedDrawCalls",0),p(this,"currentDrawResult",$("invalid-command","WebGPU draw has not been submitted")),p(this,"currentDrawRecorded",!1),p(this,"runtimeUncapturedErrors",0),p(this,"runtimeBackendLosses",0),p(this,"runtimeDiagnosticHandler",null),p(this,"deviceLost",!1),p(this,"uncapturedErrorRequiresQuarantine",!1),p(this,"deviceLostHandler",null),p(this,"handleDeviceLoss",()=>{var B,Q;this.deviceLost=!0,this.runtimeBackendLosses++,(B=this.runtimeDiagnosticHandler)==null||B.call(this,{type:"backend-lost"}),this.passEncoder=null,this.encoder=null,this.buffers.clear(),this.textures.clear(),this.texturedBindGroupCache.clear(),this.dualTexturedBindGroupCache.clear(),this.instancedTextureBindGroupCache.clear(),this.svgaFrameTableDataBindGroupCache.clear(),this.particleDataBindGroupCache.clear(),this.motionDataBindGroupCache.clear(),(Q=this.deviceLostHandler)==null||Q.call(this)}),p(this,"handleUncapturedError",B=>{var Q;this.uncapturedErrorRequiresQuarantine=!0,this.runtimeUncapturedErrors++,(Q=this.runtimeDiagnosticHandler)==null||Q.call(this,{type:"gpu-uncaptured-error",message:B.error.message}),console.error("[WebGPU Error]",B.error.message)}),this.canvas=A,this.adapter=g,this.maxTextureSize=g.limits.maxTextureDimension2D,this.wantAntialias=I}async init(){this.device=await this.adapter.requestDevice(),this.device.lost.then(this.handleDeviceLoss),this.device.onuncapturederror=this.handleUncapturedError,this.context=this.canvas.getContext("webgpu"),this.format=navigator.gpu.getPreferredCanvasFormat(),this.msaaSampleCount=this.wantAntialias?4:1,this.configureCanvasContext(),this.sampler=this.device.createSampler({magFilter:"linear",minFilter:"linear"}),this.uniformSlotStride=this.device.limits.minUniformBufferOffsetAlignment,this.storageBindOffsetAlign=this.device.limits.minStorageBufferOffsetAlignment,this.uniformBuffer=this.device.createBuffer({size:this.uniformSlotStride*this.maxUniformSlots,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.uniformShadow=new Uint8Array(this.uniformSlotStride*this.maxUniformSlots),this.dummyTexture=this.device.createTexture({size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),this.dummyTextureView=this.dummyTexture.createView(),this.initPipelines()}configureCanvasContext(){this.context.configure({device:this.device,format:this.format,alphaMode:"premultiplied"}),this.configuredCanvasWidth=this.canvas.width,this.configuredCanvasHeight=this.canvas.height}ensureFrameAttachments(A,g,I){var B,Q;(this.lastCanvasWidth!==A||this.lastCanvasHeight!==g||this.lastDepthStencilSampleCount!==this.msaaSampleCount)&&((B=this.depthStencilTexture)==null||B.destroy(),this.depthStencilTexture=null,this.depthStencilView=null,(Q=this.msaaColorTexture)==null||Q.destroy(),this.msaaColorTexture=null,this.msaaColorView=null,this.msaaSampleCount>1&&(this.msaaColorTexture=this.device.createTexture({size:[A,g],format:this.format,sampleCount:this.msaaSampleCount,usage:GPUTextureUsage.RENDER_ATTACHMENT}),this.msaaColorView=this.msaaColorTexture.createView()),this.lastCanvasWidth=A,this.lastCanvasHeight=g,this.lastDepthStencilSampleCount=this.msaaSampleCount),I&&!this.depthStencilTexture&&(this.depthStencilTexture=this.device.createTexture({size:[A,g],format:"depth24plus-stencil8",sampleCount:this.msaaSampleCount,usage:GPUTextureUsage.RENDER_ATTACHMENT}),this.depthStencilView=this.depthStencilTexture.createView())}initPipelines(){const A=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform",hasDynamicOffset:!0,minBindingSize:160}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{}}]});this.texturedBindGroupLayout=A;const g=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform",hasDynamicOffset:!0,minBindingSize:160}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{}}]});this.dualTexturedBindGroupLayout=g,this.instancedTextureBindGroupLayout=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{}}]});const I=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",hasDynamicOffset:!0,minBindingSize:128}}]});this.uniformOnlyBindGroupLayout=I,this.createTexturedPipeline("svga-batch-premul:none",lA.svgaBatchPremul,A,[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x4"},{shaderLocation:2,offset:28,format:"float32x2"}],36,"none"),this.createTexturedPipeline("vap:none",lA.vap,A,[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"},{shaderLocation:2,offset:16,format:"float32x2"}],24,"none"),this.createTexturedPipeline("vap-mix-overlay:none",lA.vapMixOverlay,g,[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}],16,"none",2),this.createTexturedPipeline("alpha-video:none",lA.alphaVideo,A,[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}],16,"none"),this.createTexturedPipeline("rgba-textured:none",lA.rgbaTextured,A,[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}],16,"none")}ensureStencilPipelines(){this.pipelines.has("svga-batch-premul:pass")||this.createTexturedPipeline("svga-batch-premul:pass",lA.svgaBatchPremul,this.texturedBindGroupLayout,[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x4"},{shaderLocation:2,offset:28,format:"float32x2"}],36,"pass"),this.pipelines.has("svga-batch-premul:test")||this.createTexturedPipeline("svga-batch-premul:test",lA.svgaBatchPremul,this.texturedBindGroupLayout,[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x4"},{shaderLocation:2,offset:28,format:"float32x2"}],36,"test"),this.pipelines.has("vap:pass")||this.createTexturedPipeline("vap:pass",lA.vap,this.texturedBindGroupLayout,[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"},{shaderLocation:2,offset:16,format:"float32x2"}],24,"pass"),this.pipelines.has("vap-mix-overlay:pass")||this.createTexturedPipeline("vap-mix-overlay:pass",lA.vapMixOverlay,this.dualTexturedBindGroupLayout,[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}],16,"pass",2);for(const[A,g]of[["alpha-video:pass",lA.alphaVideo],["rgba-textured:pass",lA.rgbaTextured]])this.pipelines.has(A)||this.createTexturedPipeline(A,g,this.texturedBindGroupLayout,[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}],16,"pass");this.pipelines.has("clip-mask:write")||this.createClipMaskPipeline(this.uniformOnlyBindGroupLayout)}ensureInstancedProjectionBuffer(){return this.instancedProjectionBuffer||(this.instancedProjectionBuffer=this.device.createBuffer({size:256,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.instancedProjectionValid=!1),this.instancedProjectionBuffer}ensureInstancedStorageBuffer(){return this.instancedStorageBuffer||(this.instancedStorageBuffer=this.device.createBuffer({size:Lg,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})),this.instancedStorageBuffer}ensureInstancedDataBindGroup(A,g){let I=A.instancedDataBindGroups;I||(I=new Map,A.instancedDataBindGroups=I);let B=I.get(g);return B||(B=this.device.createBindGroup({layout:A.bindGroupLayout,entries:[{binding:0,resource:{buffer:this.ensureInstancedProjectionBuffer(),offset:0,size:256}},{binding:1,resource:{buffer:this.ensureInstancedStorageBuffer(),offset:0,size:g}}]}),I.set(g,B),B)}ensureInstancedSvgaPipeline(A="none"){const g=`svga-instanced-premul:${A}`;let I=this.pipelines.get(g);return I||(this.createInstancedSvgaPipeline(g,lA.svgaInstancedPremul,A),I=this.pipelines.get(g)),I}ensureInstancedClipMaskPipeline(){const A="clip-mask-instanced:write";let g=this.pipelines.get(A);return g||(this.createInstancedClipMaskPipeline(),g=this.pipelines.get(A)),g}ensureInstancedAlphaPipeline(){const A=this.frameUsesStencil?"pass":"none",g=`alpha-video-instanced:${A}`;let I=this.pipelines.get(g);return I||(this.createInstancedAlphaVideoPipeline(A),I=this.pipelines.get(g)),I}ensureInstancedVapPipeline(){const A=this.frameUsesStencil?"pass":"none",g=`vap-instanced:${A}`;let I=this.pipelines.get(g);return I||(this.createVapInstancedPipeline(A),I=this.pipelines.get(g)),I}ensureSVGAFrameTableDataLayout(){return this.svgaFrameTableBindGroupLayout?this.svgaFrameTableBindGroupLayout:(this.svgaFrameTableBindGroupLayout=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",hasDynamicOffset:!0,minBindingSize:bB}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",minBindingSize:CA.SVGA_FRAME_TABLE_ROW_BYTES}},{binding:2,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",minBindingSize:Ji}},{binding:3,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",minBindingSize:32}},{binding:4,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",minBindingSize:32}},{binding:5,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",hasDynamicOffset:!0,minBindingSize:CA.SVGA_FRAME_TABLE_ROW_BYTES}}]}),this.svgaFrameTableBindGroupLayout)}ensureSVGAFrameTablePipeline(A="none"){const g=`${vC}:${A}`;let I=this.pipelines.get(g);if(I)return I;const B=this.ensureSVGAFrameTableDataLayout(),Q=this.device.createShaderModule({code:Yi}),E=A==="test"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilReadMask:255,stencilWriteMask:0}:A==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0;return I={pipeline:this.device.createRenderPipeline({label:`svga-frame-table-instanced:${A}`,layout:this.device.createPipelineLayout({bindGroupLayouts:[B,this.instancedTextureBindGroupLayout]}),vertex:{module:Q,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:Q,entryPoint:"fs",targets:[{format:this.format,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:E,multisample:{count:this.msaaSampleCount}}),bindGroupLayout:B,textureCount:1},this.pipelines.set(g,I),I}ensureSVGAFrameTableMeshPipeline(A,g){const I=A==="svga-frame-table-clip-mask"?"write":g==="clear"?"none":g,B=`${A}:${I}`;let Q=this.pipelines.get(B);if(Q)return Q;const E=this.ensureSVGAFrameTableDataLayout(),i=this.device.createShaderModule({code:A==="svga-frame-table-shape-premul"?lA.svgaFrameTableShape:lA.svgaFrameTableClipMask}),e=A==="svga-frame-table-clip-mask";let t;return e?t={format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"replace",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"replace",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:255}:I==="test"?t={format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilReadMask:255,stencilWriteMask:0}:I==="pass"&&(t={format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}),Q={pipeline:this.device.createRenderPipeline({label:`${A}:${I}`,layout:this.device.createPipelineLayout({bindGroupLayouts:[E,this.instancedTextureBindGroupLayout]}),vertex:{module:i,entryPoint:"vs",buffers:A==="svga-frame-table-shape-premul"?[{arrayStride:36,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x4"},{shaderLocation:2,offset:28,format:"float32x2"}]}]:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:i,entryPoint:"fs",targets:[{format:this.format,writeMask:e?0:GPUColorWrite.ALL,...e?{}:{blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}}]},primitive:{topology:"triangle-list"},depthStencil:t,multisample:{count:this.msaaSampleCount}}),bindGroupLayout:E,textureCount:1},this.pipelines.set(B,Q),Q}ensureMotionSvgaPipeline(){const A=this.frameUsesStencil?"pass":"none",g=`svga-motion-instanced-premul:${A}`;let I=this.pipelines.get(g);if(I)return I;this.ensureInstancedProjectionBuffer(),this.ensureInstancedStorageBuffer();const B=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",minBindingSize:64}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",hasDynamicOffset:!0,minBindingSize:CA.SVGA_INSTANCED_STRIDE}},{binding:2,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",minBindingSize:32}},{binding:3,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",minBindingSize:32}}]}),Q=this.device.createShaderModule({code:lA.svgaMotionInstancedPremul});return I={pipeline:this.device.createRenderPipeline({layout:this.device.createPipelineLayout({bindGroupLayouts:[B,this.instancedTextureBindGroupLayout]}),vertex:{module:Q,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:Q,entryPoint:"fs",targets:[{format:this.format,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:A==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0,multisample:{count:this.msaaSampleCount}}),bindGroupLayout:B,textureCount:1},this.pipelines.set(g,I),I}ensureParticlePipeline(A){const g=this.frameUsesStencil?"pass":"none",I=`particle-instanced:${A}:${g}`;let B=this.pipelines.get(I);if(B)return B;this.ensureInstancedProjectionBuffer();const Q=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",minBindingSize:64}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",minBindingSize:80}}]}),E=this.device.createShaderModule({code:lA.particleInstanced}),i=A==="additive";return B={pipeline:this.device.createRenderPipeline({label:`particle-instanced:${A}:${g}`,layout:this.device.createPipelineLayout({bindGroupLayouts:[Q]}),vertex:{module:E,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:E,entryPoint:"fs",targets:[{format:this.format,blend:i?{color:{srcFactor:"one",dstFactor:"one"},alpha:{srcFactor:"one",dstFactor:"one"}}:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:g==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0,multisample:{count:this.msaaSampleCount}}),bindGroupLayout:Q,textureCount:0},this.pipelines.set(I,B),B}ensureParticleSpritePipeline(A){const g=this.frameUsesStencil?"pass":"none",I=`particle-sprite-instanced:${A}:${g}`;let B=this.pipelines.get(I);if(B)return B;this.ensureInstancedProjectionBuffer();const Q=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",minBindingSize:64}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",minBindingSize:128}}]}),E=this.device.createShaderModule({code:lA.particleSpriteInstanced}),i=A==="additive";return B={pipeline:this.device.createRenderPipeline({label:I,layout:this.device.createPipelineLayout({bindGroupLayouts:[Q,this.instancedTextureBindGroupLayout]}),vertex:{module:E,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:E,entryPoint:"fs",targets:[{format:this.format,blend:i?{color:{srcFactor:"one",dstFactor:"one"},alpha:{srcFactor:"one",dstFactor:"one"}}:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:g==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0,multisample:{count:this.msaaSampleCount}}),bindGroupLayout:Q,textureCount:1},this.pipelines.set(I,B),B}createInstancedSvgaPipeline(A,g,I){this.ensureInstancedProjectionBuffer(),this.ensureInstancedStorageBuffer();const B=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",hasDynamicOffset:!1,minBindingSize:64}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",hasDynamicOffset:!0,minBindingSize:CA.SVGA_INSTANCED_STRIDE}}]}),Q=this.instancedTextureBindGroupLayout,E=this.device.createShaderModule({code:g}),i=I==="test"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilReadMask:255,stencilWriteMask:0}:I==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0,e=this.device.createRenderPipeline({layout:this.device.createPipelineLayout({bindGroupLayouts:[B,Q]}),vertex:{module:E,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:E,entryPoint:"fs",targets:[{format:this.format,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:i,multisample:{count:this.msaaSampleCount}});this.pipelines.set(A,{pipeline:e,bindGroupLayout:B,textureCount:1})}createInstancedClipMaskPipeline(){this.ensureInstancedProjectionBuffer(),this.ensureInstancedStorageBuffer();const A=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",hasDynamicOffset:!1,minBindingSize:64}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",hasDynamicOffset:!0,minBindingSize:CA.CLIP_MASK_INSTANCED_STRIDE}}]}),g=this.device.createShaderModule({code:lA.clipMaskInstanced}),I=this.device.createRenderPipeline({layout:this.device.createPipelineLayout({bindGroupLayouts:[A]}),vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:this.format,writeMask:0}]},primitive:{topology:"triangle-list"},depthStencil:{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"replace",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"replace",failOp:"keep",depthFailOp:"keep"},stencilReadMask:255,stencilWriteMask:255},multisample:{count:this.msaaSampleCount}});this.pipelines.set("clip-mask-instanced:write",{pipeline:I,bindGroupLayout:A,textureCount:0})}createVapInstancedPipeline(A){this.ensureInstancedProjectionBuffer(),this.ensureInstancedStorageBuffer();const g=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",hasDynamicOffset:!1,minBindingSize:64}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",hasDynamicOffset:!0,minBindingSize:CA.VAP_INSTANCED_STRIDE}}]}),I=this.instancedTextureBindGroupLayout,B=this.device.createShaderModule({code:lA.vapInstanced}),Q=this.device.createRenderPipeline({layout:this.device.createPipelineLayout({bindGroupLayouts:[g,I]}),vertex:{module:B,entryPoint:"vs",buffers:[{arrayStride:16,attributes:[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}]}]},fragment:{module:B,entryPoint:"fs",targets:[{format:this.format,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:A==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0,multisample:{count:this.msaaSampleCount}});this.pipelines.set(`vap-instanced:${A}`,{pipeline:Q,bindGroupLayout:g,textureCount:1})}createInstancedAlphaVideoPipeline(A){this.ensureInstancedProjectionBuffer(),this.ensureInstancedStorageBuffer();const g=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.VERTEX,buffer:{type:"uniform",hasDynamicOffset:!1,minBindingSize:64}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage",hasDynamicOffset:!0,minBindingSize:CA.ALPHA_INSTANCED_STRIDE}}]}),I=this.instancedTextureBindGroupLayout,B=this.device.createShaderModule({code:lA.alphaVideoInstanced}),Q=this.device.createRenderPipeline({layout:this.device.createPipelineLayout({bindGroupLayouts:[g,I]}),vertex:{module:B,entryPoint:"vs",buffers:[{arrayStride:16,attributes:[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:1,offset:8,format:"float32x2"}]}]},fragment:{module:B,entryPoint:"fs",targets:[{format:this.format,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:A==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0,multisample:{count:this.msaaSampleCount}});this.pipelines.set(`alpha-video-instanced:${A}`,{pipeline:Q,bindGroupLayout:g,textureCount:1})}createTexturedPipeline(A,g,I,B,Q,E,i=1){const e=this.device.createShaderModule({code:g}),t=E==="test"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"equal",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilReadMask:255,stencilWriteMask:0}:E==="pass"?{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"keep",failOp:"keep",depthFailOp:"keep"},stencilWriteMask:0}:void 0,a=this.device.createRenderPipeline({layout:this.device.createPipelineLayout({bindGroupLayouts:[I]}),vertex:{module:e,entryPoint:"vs",buffers:[{arrayStride:Q,attributes:B}]},fragment:{module:e,entryPoint:"fs",targets:[{format:this.format,blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"},depthStencil:t,multisample:{count:this.msaaSampleCount}});this.pipelines.set(A,{pipeline:a,bindGroupLayout:I,textureCount:i})}createClipMaskPipeline(A){const g=this.device.createShaderModule({code:lA.clipMask}),I=this.device.createRenderPipeline({layout:this.device.createPipelineLayout({bindGroupLayouts:[A]}),vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:this.format,writeMask:0}]},primitive:{topology:"triangle-list"},depthStencil:{format:"depth24plus-stencil8",depthWriteEnabled:!1,depthCompare:"always",stencilFront:{compare:"always",passOp:"replace",failOp:"keep",depthFailOp:"keep"},stencilBack:{compare:"always",passOp:"replace",failOp:"keep",depthFailOp:"keep"},stencilReadMask:255,stencilWriteMask:255},multisample:{count:this.msaaSampleCount}});this.pipelines.set("clip-mask:write",{pipeline:I,bindGroupLayout:A,textureCount:0})}beginFrame(A={}){if(this.deviceLost)return $("backend-lost","WebGPU device is lost");if(this.uncapturedErrorRequiresQuarantine)return $("validation-error","WebGPU reported an uncaptured error after the previous submission");try{const g=this.canvas.width,I=this.canvas.height;(g!==this.configuredCanvasWidth||I!==this.configuredCanvasHeight)&&this.configureCanvasContext();const B=A.stencil===!0;this.frameUsesStencil=B,this.ensureFrameAttachments(g,I,B),B&&this.ensureStencilPipelines(),this.encoder=this.device.createCommandEncoder();const Q=this.context.getCurrentTexture().createView(),E=this.msaaSampleCount>1&&this.msaaColorView?{view:this.msaaColorView,resolveTarget:Q,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"discard"}:{view:Q,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"};this.uniformSlotIndex=0,this.instancedStorageRingOffset=0,this.svgaCompactSlotStateUploadId=-1,this.svgaCompactSlotStateStorageBase=-1,this.svgaCompactSlotStateByteLength=0,this.instancedStorageShadowDirtyMax=0,this.lastClipMaskStorageBase=-1,this.lastClipMaskStorageByteLength=0,this.uniformShadowDirtyMin=1/0,this.uniformShadowDirtyMax=0,this.lastDrawPipeline=null,this.lastStencilRef=-1,this.lastVertexBufferId=-1,this.lastIndexBufferId=-1,this.lastInstancedTextureBindGroup=null;const i={colorAttachments:[E]};return B&&(i.depthStencilAttachment={view:this.depthStencilView,stencilClearValue:0,stencilLoadOp:"clear",stencilStoreOp:"discard",depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"discard"}),this.passEncoder=this.encoder.beginRenderPass(i),tg}catch(g){return this.passEncoder=null,this.encoder=null,$("submission-error",this.errorMessage(g))}}endFrame(){if(this.deviceLost)return $("backend-lost","WebGPU device is lost");if(!this.passEncoder||!this.encoder)return $("invalid-command","WebGPU frame is not active");try{return this.passEncoder.end(),this.flushUniformShadow(),this.flushInstancedStorageShadow(),this.device.queue.submit([this.encoder.finish()]),this.passEncoder=null,this.encoder=null,tg}catch(A){return this.passEncoder=null,this.encoder=null,$("submission-error",this.errorMessage(A))}}abortFrame(){if(this.deviceLost)return $("backend-lost","WebGPU device is lost");const A=this.uncapturedErrorRequiresQuarantine;if(this.passEncoder)try{this.passEncoder.end()}catch(g){return this.passEncoder=null,this.encoder=null,$("submission-error",this.errorMessage(g))}return this.passEncoder=null,this.encoder=null,this.instancedStorageShadowDirtyMax=0,this.uniformShadowDirtyMin=1/0,this.uniformShadowDirtyMax=0,this.lastDrawPipeline=null,this.lastStencilRef=-1,this.lastVertexBufferId=-1,this.lastIndexBufferId=-1,A?$("validation-error","WebGPU backend is quarantined after an uncaptured error"):(this.lastInstancedTextureBindGroup=null,this.svgaCompactSlotStateUploadId=-1,this.svgaCompactSlotStateStorageBase=-1,this.svgaCompactSlotStateByteLength=0,tg)}errorMessage(A){return A instanceof Error?A.message:String(A)}getPerformanceSnapshot(){return{bufferWrites:this.performanceBufferWrites,bufferWriteBytes:this.performanceBufferWriteBytes,storageBufferWrites:this.performanceStorageBufferWrites,storageBufferWriteBytes:this.performanceStorageBufferWriteBytes,submittedDrawCalls:this.performanceSubmittedDrawCalls,rejectedDrawCalls:this.performanceRejectedDrawCalls,svgaDynamicUploadWrites:this.performanceSVGADynamicUploadWrites,svgaDynamicUploadBytes:this.performanceSVGADynamicUploadBytes}}resetPerformanceSnapshot(){this.performanceBufferWrites=0,this.performanceBufferWriteBytes=0,this.performanceStorageBufferWrites=0,this.performanceStorageBufferWriteBytes=0,this.performanceSubmittedDrawCalls=0,this.performanceRejectedDrawCalls=0,this.performanceSVGADynamicUploadWrites=0,this.performanceSVGADynamicUploadBytes=0}getRuntimeDiagnosticsSnapshot(){return{submittedDrawCalls:this.runtimeSubmittedDrawCalls,rejectedDrawCalls:this.runtimeRejectedDrawCalls,webgpuUncapturedErrors:this.runtimeUncapturedErrors,backendLosses:this.runtimeBackendLosses}}setRuntimeDiagnosticHandler(A){this.runtimeDiagnosticHandler=A}setDeviceLostHandler(A){this.deviceLostHandler=A}recordSubmittedDraw(){this.currentDrawResult=tg,this.currentDrawRecorded=!0,this.performanceSubmittedDrawCalls++,this.runtimeSubmittedDrawCalls++}rejectSVGAFastPathDraw(){this.currentDrawRecorded=!0,this.currentDrawResult.submitted&&(this.currentDrawResult=$("invalid-command","WebGPU draw was rejected")),this.performanceRejectedDrawCalls++,this.runtimeRejectedDrawCalls++}writeBuffer(A,g,I,B,Q,E="generic"){const i=(ArrayBuffer.isView(I),I.byteLength),e=Number(B!=null?B:0),t=Number(Q!=null?Q:Math.max(0,i-e));this.performanceBufferWrites++,this.performanceBufferWriteBytes+=t,E==="storage"&&(this.performanceStorageBufferWrites++,this.performanceStorageBufferWriteBytes+=t),this.device.queue.writeBuffer(A,g,I,B,Q)}flushUniformShadow(){if(this.uniformShadowDirtyMax<=this.uniformShadowDirtyMin)return;const A=this.uniformShadow,g=this.uniformShadowDirtyMin,I=this.uniformShadowDirtyMax;this.writeBuffer(this.uniformBuffer,g,A.buffer,A.byteOffset+g,I-g),this.uniformShadowDirtyMin=1/0,this.uniformShadowDirtyMax=0}flushInstancedStorageShadow(){const A=this.instancedStorageShadowDirtyMax;if(A<=0)return;const g=this.instancedStorageShadow;this.writeBuffer(this.ensureInstancedStorageBuffer(),0,g.buffer,g.byteOffset,A,"storage"),this.instancedStorageShadowDirtyMax=0}writeInstancedStorageShadow(A,g,I){const B=A+I;if(this.instancedStorageShadow.byteLength<B){let Q=Math.max(256,this.instancedStorageShadow.byteLength);for(;Q<B;)Q=Math.min(Lg,Q*2);const E=new Uint8Array(Q);E.set(this.instancedStorageShadow),this.instancedStorageShadow=E}this.instancedStorageShadow.set(new Uint8Array(g.buffer,g.byteOffset,I),A),B>this.instancedStorageShadowDirtyMax&&(this.instancedStorageShadowDirtyMax=B)}writeUniformShadow(A,g,I){this.uniformShadow.set(new Uint8Array(g.buffer,g.byteOffset,I),A),A<this.uniformShadowDirtyMin&&(this.uniformShadowDirtyMin=A);const B=A+I;B>this.uniformShadowDirtyMax&&(this.uniformShadowDirtyMax=B)}ensureInstancedProjection(A){if(A.length<16)return;if(this.instancedProjectionValid){let I=!0;for(let B=0;B<16;B++)if(this.instancedProjectionCache[B]!==A[B]){I=!1;break}if(I)return}const g=this.ensureInstancedProjectionBuffer();this.instancedProjectionCache.set(A.length===16?A:A.subarray(0,16)),this.instancedProjectionValid=!0,this.writeBuffer(g,0,A.buffer,A.byteOffset,64)}gpuBufferUsage(A){let g=GPUBufferUsage.COPY_DST;return A==="vertex"?g|=GPUBufferUsage.VERTEX:A==="index"?g|=GPUBufferUsage.INDEX:A==="storage"?g|=GPUBufferUsage.STORAGE:g|=GPUBufferUsage.UNIFORM,g}bufferSourceByteLength(A){return ArrayBuffer.isView(A),A.byteLength}mappedUploadView(A){if(A instanceof ArrayBuffer)return new Uint8Array(A);if(typeof SharedArrayBuffer!="undefined"&&A instanceof SharedArrayBuffer)return new Uint8Array(new Uint8Array(A));const g=A,I=new Uint8Array(g.buffer,g.byteOffset,g.byteLength);return typeof SharedArrayBuffer!="undefined"&&g.buffer instanceof SharedArrayBuffer?new Uint8Array(I):I}writeBufferSource(A,g,I){if(I instanceof ArrayBuffer){this.writeBuffer(A,g,I);return}if(typeof SharedArrayBuffer!="undefined"&&I instanceof SharedArrayBuffer){this.writeBuffer(A,g,new Uint8Array(new Uint8Array(I)));return}const B=I;if(typeof SharedArrayBuffer!="undefined"&&B.buffer instanceof SharedArrayBuffer){this.writeBuffer(A,g,new Uint8Array(new Uint8Array(B.buffer,B.byteOffset,B.byteLength)));return}this.writeBuffer(A,g,B.buffer,B.byteOffset,B.byteLength)}createSVGAFrameTable(A,g){var I,B;const Q=this.mappedUploadView(A);if(Q.byteLength<CA.SVGA_FRAME_TABLE_ROW_BYTES||Q.byteLength%CA.SVGA_FRAME_TABLE_ROW_BYTES!==0)throw new RangeError(`SVGA frame table byte length must be a positive multiple of ${CA.SVGA_FRAME_TABLE_ROW_BYTES}, got ${Q.byteLength}`);const E=Math.floor(g.spriteCount),i=Math.floor(g.frameCount),e=E*i;if(!Number.isSafeInteger(E)||!Number.isSafeInteger(i)||E<1||i<1||!Number.isSafeInteger(e)||e*CA.SVGA_FRAME_TABLE_ROW_BYTES!==Q.byteLength)throw new RangeError(`SVGA frame table dimensions do not match byte length: ${E}x${i}, ${Q.byteLength} bytes`);const t=(I=g.spriteMetadata)!=null?I:g.metadata,a=g.hybridSpriteMetadata;let o=null;if(t){const w=E*4,l=E*uI;if(t.length===w){o=new Float32Array(l);for(let F=0;F<E;F++){const d=F*4,y=F*uI;o.set(t.subarray(d,d+4),y),o[y+4]=F}}else{if(t.length!==l)throw new RangeError(`SVGA sprite metadata requires ${w} or ${l} floats, got ${t.length}`);o=t}}const s=(B=this.device.limits)==null?void 0:B.maxStorageBufferBindingSize;if(typeof s=="number"&&Number.isFinite(s)&&(Q.byteLength>s||o&&o.byteLength>s||a&&a.byteLength>s))throw new RangeError(`SVGA frame table exceeds maxStorageBufferBindingSize=${s}; use CPU/hybrid fallback`);const n=this.createBuffer(Q,"storage");let r,h;try{if(r=o?this.createBuffer(o,"storage"):void 0,a){if(a.length<II||a.length%II!==0)throw new RangeError("SVGA Hybrid sprite metadata must contain complete 12-float rows");h=this.createBuffer(a,"storage")}}catch(w){throw h&&this.deleteBuffer(h),r&&this.deleteBuffer(r),this.deleteBuffer(n),w}const c=g.atlasPageCount,D=Number.isFinite(c)&&c>0?Math.floor(c):1;return{backend:"webgpu",kind:"webgpu-buffer",buffer:n,...r?{spriteMetadataBuffer:r}:{},...h?{hybridSpriteMetadataBuffer:h}:{},spriteCount:E,frameCount:i,atlasPageCount:D,strideFloats:vQ,byteLength:Q.byteLength}}deleteSVGAFrameTable(A){var g;A.backend==="webgpu"&&(A.spriteMetadataBuffer&&A.spriteMetadataBuffer.id!==A.buffer.id&&this.deleteBuffer(A.spriteMetadataBuffer),A.hybridSpriteMetadataBuffer&&A.hybridSpriteMetadataBuffer.id!==A.buffer.id&&A.hybridSpriteMetadataBuffer.id!==((g=A.spriteMetadataBuffer)==null?void 0:g.id)&&this.deleteBuffer(A.hybridSpriteMetadataBuffer),this.deleteBuffer(A.buffer))}createBuffer(A,g){const I=this.mappedUploadView(A),B=this.device.createBuffer({size:Math.max(I.byteLength,4),usage:this.gpuBufferUsage(g),mappedAtCreation:!0});new Uint8Array(B.getMappedRange()).set(I),B.unmap();const Q=this.nextId++;return this.buffers.set(Q,{buffer:B,usage:g}),{id:Q,usage:g}}updateBuffer(A,g,I=0){const B=this.buffers.get(A.id);if(!B)return;const Q=Math.max(0,Math.floor(I)),E=this.bufferSourceByteLength(g),i=Math.max(4,Q+E);i>B.buffer.size&&(B.buffer.destroy(),B.buffer=this.device.createBuffer({size:i,usage:this.gpuBufferUsage(B.usage)}),B.usage==="vertex"&&this.lastVertexBufferId===A.id&&(this.lastVertexBufferId=-1),B.usage==="index"&&this.lastIndexBufferId===A.id&&(this.lastIndexBufferId=-1)),this.writeBufferSource(B.buffer,Q,g)}deleteBuffer(A){const g=this.buffers.get(A.id);if(g){g.buffer.destroy(),this.buffers.delete(A.id),this.motionDataBindGroupCache.clear();for(const I of Array.from(this.svgaFrameTableDataBindGroupCache.keys()))I.split(":").includes(String(A.id))&&this.svgaFrameTableDataBindGroupCache.delete(I);for(const I of Array.from(this.particleDataBindGroupCache.keys()))I.split(":").includes(String(A.id))&&this.particleDataBindGroupCache.delete(I)}}copyHtmlVideoToTextureDirect(A,g,I,B){if(this.videoElementPreferCanvasBridge)return!1;try{return this.device.queue.copyExternalImageToTexture({source:B,flipY:!0},{texture:A},[g,I]),!0}catch(Q){return this.videoElementPreferCanvasBridge=!0,console.debug("[WebGPU] copyExternalImageToTexture(<video>) failed; using canvas bridge.",Q),!1}}copyVideoFrameToTextureDirect(A,g,I,B){if(this.videoFramePreferCanvasBridge)return!1;try{return this.device.queue.copyExternalImageToTexture({source:B,flipY:!0},{texture:A},[g,I]),!0}catch(Q){return this.videoFramePreferCanvasBridge=!0,console.debug("[WebGPU] copyExternalImageToTexture(VideoFrame) failed; using canvas bridge.",Q),!1}}drawVideoLikeSourceToTexture(A,g,I,B){this.videoUploadCanvas||(this.videoUploadCanvas=document.createElement("canvas"),this.videoUploadCtx=this.videoUploadCanvas.getContext("2d"));const Q=this.videoUploadCanvas,E=this.videoUploadCtx;E&&((Q.width!==g||Q.height!==I)&&(Q.width=g,Q.height=I),E.drawImage(B,0,0,g,I),this.device.queue.copyExternalImageToTexture({source:Q,flipY:!0},{texture:A},[g,I]))}copyImageSourceToTexture(A,g,I,B,Q=!1){if(typeof VideoFrame!="undefined"&&B instanceof VideoFrame){const E=B,i=E.displayWidth||E.codedWidth,e=E.displayHeight||E.codedHeight;if(!i||!e||!g||!I||this.copyVideoFrameToTextureDirect(A,g,I,E))return;this.drawVideoLikeSourceToTexture(A,g,I,E);return}if(B instanceof HTMLVideoElement){const E=B,i=E.videoWidth,e=E.videoHeight;if(E.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||!i||!e||!g||!I)return;if(E.readyState<HTMLMediaElement.HAVE_ENOUGH_DATA){this.drawVideoLikeSourceToTexture(A,g,I,E);return}if(this.copyHtmlVideoToTextureDirect(A,g,I,E))return;this.drawVideoLikeSourceToTexture(A,g,I,E);return}this.device.queue.copyExternalImageToTexture({source:B},{texture:A,premultipliedAlpha:Q},[g,I])}createTexture(A,g){var I,B;const Q=(I=g.width)!=null?I:1,E=(B=g.height)!=null?B:1,i=this.device.createTexture({size:[Q,E],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});if(A instanceof ArrayBuffer){const t=Q*4,a=Math.ceil(t/256)*256;if(a===t||E===1)this.device.queue.writeTexture({texture:i},A,{bytesPerRow:t},[Q,E]);else{const o=new Uint8Array(A),s=new Uint8Array(a*E);for(let n=0;n<E;n++)s.set(o.subarray(n*t,(n+1)*t),n*a);this.device.queue.writeTexture({texture:i},s,{bytesPerRow:a},[Q,E])}}else this.copyImageSourceToTexture(i,Q,E,A,g.premultiplyAlpha===!0);const e=this.nextId++;return this.textures.set(e,{texture:i,view:i.createView(),width:Q,height:E}),{id:e,width:Q,height:E}}createEmptyTexture(A,g,I={}){const B=Math.max(1,Math.floor(A)),Q=Math.max(1,Math.floor(g)),E=this.device.createTexture({size:[B,Q],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),i=this.nextId++;return this.textures.set(i,{texture:E,view:E.createView(),width:B,height:Q}),{id:i,width:B,height:Q}}updateTexture(A,g){const I=this.textures.get(A.id);I&&this.copyImageSourceToTexture(I.texture,I.width,I.height,g)}updateTextureRegion(A,g,I,B,Q,E){const i=this.textures.get(A.id);if(!i)return;const e={texture:i.texture,origin:{x:Math.floor(I),y:Math.floor(B)}};if(typeof VideoFrame!="undefined"&&g instanceof VideoFrame){const s=g,n=s.displayWidth||s.codedWidth,r=s.displayHeight||s.codedHeight;if(!n||!r)return;const h=Q!=null?Q:n,c=E!=null?E:r;if(h!==n||c!==r){this.drawVideoLikeSourceToTextureRegion(i.texture,h,c,s,e.origin.x,e.origin.y);return}if(this.copyVideoFrameToTextureRegionDirect(i.texture,n,r,s,e.origin.x,e.origin.y))return;this.drawVideoLikeSourceToTextureRegion(i.texture,n,r,s,e.origin.x,e.origin.y);return}if(g instanceof HTMLVideoElement){const s=g,n=s.videoWidth,r=s.videoHeight;if(s.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||!n||!r)return;const h=Q!=null?Q:n,c=E!=null?E:r;if(h!==n||c!==r){this.drawVideoLikeSourceToTextureRegion(i.texture,h,c,s,e.origin.x,e.origin.y);return}if(s.readyState<HTMLMediaElement.HAVE_ENOUGH_DATA){this.drawVideoLikeSourceToTextureRegion(i.texture,n,r,s,e.origin.x,e.origin.y);return}if(this.copyHtmlVideoToTextureRegionDirect(i.texture,n,r,s,e.origin.x,e.origin.y))return;this.drawVideoLikeSourceToTextureRegion(i.texture,n,r,s,e.origin.x,e.origin.y);return}const t=g,a=Q!=null?Q:t.width,o=E!=null?E:t.height;if(a!==t.width||o!==t.height){this.drawVideoLikeSourceToTextureRegion(i.texture,a,o,t,e.origin.x,e.origin.y);return}this.device.queue.copyExternalImageToTexture({source:t},e,[t.width,t.height])}copyHtmlVideoToTextureRegionDirect(A,g,I,B,Q,E){if(this.videoElementPreferCanvasBridge)return!1;try{return this.device.queue.copyExternalImageToTexture({source:B,flipY:!0},{texture:A,origin:{x:Q,y:E}},[g,I]),!0}catch(i){return this.videoElementPreferCanvasBridge=!0,console.debug("[WebGPU] copyExternalImageToTexture(<video> region) failed; using canvas bridge.",i),!1}}copyVideoFrameToTextureRegionDirect(A,g,I,B,Q,E){if(this.videoFramePreferCanvasBridge)return!1;try{return this.device.queue.copyExternalImageToTexture({source:B,flipY:!0},{texture:A,origin:{x:Q,y:E}},[g,I]),!0}catch(i){return this.videoFramePreferCanvasBridge=!0,console.debug("[WebGPU] copyExternalImageToTexture(VideoFrame region) failed; using canvas bridge.",i),!1}}drawVideoLikeSourceToTextureRegion(A,g,I,B,Q,E){this.videoUploadCanvas||(this.videoUploadCanvas=document.createElement("canvas"),this.videoUploadCtx=this.videoUploadCanvas.getContext("2d"));const i=this.videoUploadCanvas,e=this.videoUploadCtx;e&&((i.width!==g||i.height!==I)&&(i.width=g,i.height=I),e.drawImage(B,0,0,g,I),this.device.queue.copyExternalImageToTexture({source:i,flipY:!0},{texture:A,origin:{x:Q,y:E}},[g,I]))}deleteTexture(A){const g=this.textures.get(A.id);if(g){g.texture.destroy(),this.textures.delete(A.id),this.texturedBindGroupCache.delete(A.id),this.dualTexturedBindGroupCache.delete(A.id);for(const[I,B]of this.dualTexturedBindGroupCache)B.delete(A.id),B.size===0&&this.dualTexturedBindGroupCache.delete(I);this.instancedTextureBindGroupCache.delete(A.id);for(const I of Array.from(this.particleDataBindGroupCache.keys()))I.endsWith(`:${A.id}`)&&this.particleDataBindGroupCache.delete(I)}}draw(A){const g=A.shader;if(this.currentDrawResult=$("invalid-command",`WebGPU rejected ${g}`),this.currentDrawRecorded=!1,this.deviceLost)return this.currentDrawResult=$("backend-lost","WebGPU device is lost"),this.rejectSVGAFastPathDraw(),this.currentDrawResult;if(!this.passEncoder)return this.rejectSVGAFastPathDraw(),this.currentDrawResult=$("invalid-command","WebGPU frame is not active"),this.currentDrawResult;if((A.stencil!=null&&A.stencil!=="none"||g==="clip-mask"||g==="clip-mask-instanced"||g==="svga-frame-table-clip-mask")&&!this.frameUsesStencil)return this.rejectSVGAFastPathDraw(),this.currentDrawResult=$("invalid-command",`WebGPU ${g} requires a depth-stencil attachment in the active frame`),this.currentDrawResult;try{this.drawInternal(A)}catch(B){return this.currentDrawResult=$("submission-error",this.errorMessage(B)),this.currentDrawRecorded||this.rejectSVGAFastPathDraw(),this.currentDrawResult}return this.currentDrawRecorded||this.rejectSVGAFastPathDraw(),this.currentDrawResult}drawInternal(A){var g,I,B,Q,E,i,e;const t=A.shader;if(t===vC||t==="svga-timeline-instanced-premul"||t==="svga-frame-table-shape-premul"||t==="svga-frame-table-clip-mask"){this.drawSVGAFrameTableInstanced(A);return}if(A.shader==="svga-instanced-premul"){this.drawInstancedSvga(A);return}if(A.shader==="svga-motion-instanced-premul"){this.drawMotionInstancedSvga(A);return}if(A.shader==="clip-mask-instanced"){this.drawInstancedClipMask(A);return}if(A.shader==="alpha-video-instanced"){this.drawInstancedAlpha(A);return}if(A.shader==="vap-instanced"){this.drawInstancedVap(A);return}if(A.shader==="particle-instanced"||A.shader==="particle-sprite-instanced"){this.drawInstancedParticles(A);return}const a=(g=A.stencil)!=null?g:"none",o=A.shader==="clip-mask"||a==="clear"?"clip-mask:write":`${A.shader}:${a==="none"&&this.frameUsesStencil?"pass":a}`,s=this.pipelines.get(o);if(!s)return;const n=this.passEncoder,r=s.pipeline;this.lastDrawPipeline!==r&&(n.setPipeline(r),this.lastDrawPipeline=r,this.lastInstancedTextureBindGroup=null);let h=0;a==="clear"?h=0:(a==="write"||A.shader==="clip-mask"||a==="test")&&(h=1),this.frameUsesStencil&&this.lastStencilRef!==h&&(n.setStencilReference(h),this.lastStencilRef=h);const c=this.uniformSlotIndex++;if(c>=this.maxUniformSlots){console.warn("[WebGPU] uniform slot overflow; increase maxUniformSlots");return}const D=c*this.uniformSlotStride,w=A.uniforms.u_projection;if(s.textureCount>0){const G=A.uniforms.u_transform,f=G instanceof Float32Array&&G.length>=16?G:qC,u=A.uniforms.u_atlasRemap,R=u instanceof Float32Array&&u.length>=4?u:mi,M=typeof A.uniforms.u_opacity=="number"?A.uniforms.u_opacity:1,N=typeof A.uniforms.u_rgbPremultiplied=="number"?A.uniforms.u_rgbPremultiplied:1;if(w instanceof Float32Array&&w.length>=16){const S=this.uniformScratch160;S.set(w.length===16?w:w.subarray(0,16),0),S.set(f.length===16?f:f.subarray(0,16),16),S.set(R.length===4?R:R.subarray(0,4),32),S[36]=M,S[37]=N,S[38]=0,S[39]=0,this.writeUniformShadow(D,S,160)}else{this.writeUniformShadow(D+64,f,64),this.writeUniformShadow(D+128,R,16);const S=this.uniformOpacityScratch;S[0]=M,S[1]=N,S[2]=0,S[3]=0,this.writeUniformShadow(D+144,S,S.byteLength)}}else if(w instanceof Float32Array&&w.length>=16){const G=A.uniforms.u_transform,f=G instanceof Float32Array&&G.length>=16?G:qC,u=this.uniformScratch128;u.set(w.length===16?w:w.subarray(0,16),0),u.set(f.length===16?f:f.subarray(0,16),16),this.writeUniformShadow(D,u,128)}if(s.textureCount===1){const G=A.textures.length>0?A.textures[0]:null,f=G?this.textures.get(G.id):null,u=(I=f==null?void 0:f.view)!=null?I:this.dummyTextureView,R=(B=G==null?void 0:G.id)!=null?B:0;let M=this.texturedBindGroupCache.get(R);M||(M=this.device.createBindGroup({layout:this.texturedBindGroupLayout,entries:[{binding:0,resource:{buffer:this.uniformBuffer,offset:0,size:160}},{binding:1,resource:u},{binding:2,resource:this.sampler}]}),this.texturedBindGroupCache.set(R,M)),n.setBindGroup(0,M,[D])}else if(s.textureCount===2){const G=A.textures[0],f=A.textures[1],u=G?this.textures.get(G.id):null,R=f?this.textures.get(f.id):null,M=(Q=G==null?void 0:G.id)!=null?Q:0,N=(E=f==null?void 0:f.id)!=null?E:0;let S=this.dualTexturedBindGroupCache.get(M);S||(S=new Map,this.dualTexturedBindGroupCache.set(M,S));let Y=S.get(N);Y||(Y=this.device.createBindGroup({layout:this.dualTexturedBindGroupLayout,entries:[{binding:0,resource:{buffer:this.uniformBuffer,offset:0,size:160}},{binding:1,resource:(i=u==null?void 0:u.view)!=null?i:this.dummyTextureView},{binding:2,resource:(e=R==null?void 0:R.view)!=null?e:this.dummyTextureView},{binding:3,resource:this.sampler}]}),S.set(N,Y)),n.setBindGroup(0,Y,[D])}else s.uniformOnlyBindGroup||(s.uniformOnlyBindGroup=this.device.createBindGroup({layout:s.bindGroupLayout,entries:[{binding:0,resource:{buffer:this.uniformBuffer,offset:0,size:128}}]})),n.setBindGroup(0,s.uniformOnlyBindGroup,[D]);const l=this.buffers.get(A.vertexBuffer.id),F=this.buffers.get(A.indexBuffer.id);if(!l||!F)return;const d=A.vertexBuffer.id,y=A.indexBuffer.id;this.lastVertexBufferId!==d&&(n.setVertexBuffer(0,l.buffer),this.lastVertexBufferId=d),this.lastIndexBufferId!==y&&(n.setIndexBuffer(F.buffer,"uint32"),this.lastIndexBufferId=y),n.drawIndexed(A.indexCount),this.recordSubmittedDraw()}drawInstancedSvga(A){var g,I,B;const Q=this.passEncoder,E=(g=A.instanceCount)!=null?g:0,i=A.instanceData,e=CA.SVGA_INSTANCED_STRIDE/4;if(E<1||!i||i.length<E*e)return;if(E>CA.SVGA_INSTANCED_MAX){console.warn("[WebGPU] svga-instanced-premul: instanceCount exceeds max",E);return}const t=A.stencil==="test"?"test":this.frameUsesStencil?"pass":"none",a=this.ensureInstancedSvgaPipeline(t),o=a.pipeline;this.lastDrawPipeline!==o&&(Q.setPipeline(o),this.lastDrawPipeline=o,this.lastInstancedTextureBindGroup=null);const s=t==="test"?1:0;this.frameUsesStencil&&this.lastStencilRef!==s&&(Q.setStencilReference(s),this.lastStencilRef=s);const n=A.uniforms.u_projection;if(!(n instanceof Float32Array)||n.length<16)return;const r=this.buffers.get(A.vertexBuffer.id),h=this.buffers.get(A.indexBuffer.id);if(!r||!h)return;this.ensureInstancedProjection(n);const c=E*CA.SVGA_INSTANCED_STRIDE,D=this.instancedStorageRingOffset;if(D+c>Lg){console.warn("[WebGPU] instanced SVGA storage ring full");return}this.instancedStorageRingOffset+=QI(c,this.storageBindOffsetAlign),this.writeInstancedStorageShadow(D,i,c),this.performanceSVGADynamicUploadWrites++,this.performanceSVGADynamicUploadBytes+=c;const w=A.textures[0],l=w?this.textures.get(w.id):null,F=(I=l==null?void 0:l.view)!=null?I:this.dummyTextureView,d=(B=w==null?void 0:w.id)!=null?B:0;let y=this.instancedTextureBindGroupCache.get(d);y||(y=this.device.createBindGroup({layout:this.instancedTextureBindGroupLayout,entries:[{binding:0,resource:F},{binding:1,resource:this.sampler}]}),this.instancedTextureBindGroupCache.set(d,y)),Q.setBindGroup(0,this.ensureInstancedDataBindGroup(a,c),[D]),this.lastInstancedTextureBindGroup!==y&&(Q.setBindGroup(1,y),this.lastInstancedTextureBindGroup=y);const G=A.vertexBuffer.id,f=A.indexBuffer.id;this.lastVertexBufferId!==G&&(Q.setVertexBuffer(0,r.buffer),this.lastVertexBufferId=G),this.lastIndexBufferId!==f&&(Q.setIndexBuffer(h.buffer,"uint32"),this.lastIndexBufferId=f),Q.drawIndexed(A.indexCount,E,0,0,0),this.recordSubmittedDraw()}drawInstancedClipMask(A){var g;const I=this.passEncoder,B=(g=A.instanceCount)!=null?g:0,Q=A.instanceData;if(B<1||!Q||Q.length<B*6)return;if(B>CA.CLIP_MASK_INSTANCED_MAX){console.warn("[WebGPU] clip-mask-instanced: instanceCount exceeds max",B);return}const E=this.ensureInstancedClipMaskPipeline(),i=E.pipeline;this.lastDrawPipeline!==i&&(I.setPipeline(i),this.lastDrawPipeline=i,this.lastInstancedTextureBindGroup=null);const e=A.stencil==="clear",t=e?0:1;this.lastStencilRef!==t&&(I.setStencilReference(t),this.lastStencilRef=t);const a=A.uniforms.u_projection;if(!(a instanceof Float32Array)||a.length<16)return;const o=this.buffers.get(A.vertexBuffer.id),s=this.buffers.get(A.indexBuffer.id);if(!o||!s)return;this.ensureInstancedProjection(a);const n=B*CA.CLIP_MASK_INSTANCED_STRIDE;let r=this.lastClipMaskStorageBase;if(!e||r<0||this.lastClipMaskStorageByteLength!==n){if(r=this.instancedStorageRingOffset,r+n>Lg){console.warn("[WebGPU] instanced clip-mask storage ring full");return}this.instancedStorageRingOffset+=QI(n,this.storageBindOffsetAlign),this.writeInstancedStorageShadow(r,Q,n),this.lastClipMaskStorageBase=r,this.lastClipMaskStorageByteLength=n}I.setBindGroup(0,this.ensureInstancedDataBindGroup(E,n),[r]),this.lastVertexBufferId!==A.vertexBuffer.id&&(I.setVertexBuffer(0,o.buffer),this.lastVertexBufferId=A.vertexBuffer.id),this.lastIndexBufferId!==A.indexBuffer.id&&(I.setIndexBuffer(s.buffer,"uint32"),this.lastIndexBufferId=A.indexBuffer.id),I.drawIndexed(A.indexCount,B,0,0,0),this.recordSubmittedDraw(),e&&(this.lastClipMaskStorageBase=-1,this.lastClipMaskStorageByteLength=0)}drawSVGAFrameTableInstanced(A){var g,I,B,Q,E,i,e,t,a,o,s,n,r,h,c,D;const w=this.passEncoder,l=A.shader==="svga-frame-table-shape-premul"||A.shader==="svga-frame-table-clip-mask",F=Math.floor((g=A.instanceCount)!=null?g:l?1:0);if(F<1||F>CA.SVGA_FRAME_TABLE_INSTANCE_MAX){F>CA.SVGA_FRAME_TABLE_INSTANCE_MAX&&console.warn("[WebGPU] svga-frame-table-instanced-premul: sprite count exceeds max",F);return}const d=(I=A.svgaFrameTable)!=null?I:null,y=d&&typeof d=="object"&&"backend"in d?d:null,G=(y==null?void 0:y.backend)==="webgpu"?y.buffer:d&&"id"in d?d:(Q=(B=A.svgaFrameTableBuffer)!=null?B:A.frameTableBuffer)!=null?Q:null;if(!G||G.usage!=="storage")return;const f=this.buffers.get(G.id);if(!f||f.usage!=="storage"||f.buffer.size<CA.SVGA_FRAME_TABLE_ROW_BYTES||f.buffer.size%CA.SVGA_FRAME_TABLE_ROW_BYTES!==0)return;const u=(t=(e=(i=(E=A.svgaSpriteMetadataBuffer)!=null?E:A.svgaSpriteMetadata)!=null?i:A.spriteMetadataBuffer)!=null?e:(y==null?void 0:y.backend)==="webgpu"?y.spriteMetadataBuffer:null)!=null?t:null;if(!u||u.usage!=="storage")return;const R=this.buffers.get(u.id);if(!R||R.usage!=="storage")return;const M=Math.floor((a=A.svgaSpriteMetadataStrideFloats)!=null?a:uI),N=M*Float32Array.BYTES_PER_ELEMENT;if(M<uI||M%4!==0||R.buffer.size<N||R.buffer.size%N!==0)return;const S=(o=A.svgaFrameTableFrameCount)!=null?o:A.frameTableFrameCount,Y=(s=A.svgaFrameTableSpriteCount)!=null?s:A.frameTableSpriteCount,U=Math.floor(Number.isFinite(S)?S:(y==null?void 0:y.backend)==="webgpu"?y.frameCount:0),k=Math.floor(f.buffer.size/CA.SVGA_FRAME_TABLE_ROW_BYTES),m=Math.floor(Number.isFinite(Y)?Y:(y==null?void 0:y.backend)==="webgpu"?y.spriteCount:U>0?k/U:0);if(U<1||m<1||U*m>k||!Number.isSafeInteger(U)||!Number.isSafeInteger(m))return;const J=A.instanceData,q=A.svgaFrameTableSlotStates,_=Math.floor((n=A.svgaFrameTableSlotStateCount)!=null?n:0),Z=Math.floor((r=A.svgaFrameTableSpritesPerSlot)!=null?r:0),x=q!=null&&_>0&&Z>0&&_*Z===F&&q.length>=_*$A,X=!x&&J!=null&&J.length>=F*$A,T=this.resolveSVGAFrameTableSlotUniform(A,F,U);if(!T)return;let gA=T.metadataBase;if(x)gA+=Z;else if(X){let hA=-1;for(let aA=0;aA<F;aA++){const nA=Math.floor((h=J[aA*$A+Ng.metadataBase])!=null?h:-1);nA>hA&&(hA=nA)}gA=hA+1}else gA+=F;if(T.metadataBase<0||!l&&(gA<1||gA>R.buffer.size/N))return;const UA=x?q:J,rA=X||x?(x?_:F)*$A*Float32Array.BYTES_PER_ELEMENT:Math.min(64,f.buffer.size),BA=(c=A.svgaFrameTableSlotStateUploadId)!=null?c:-1,Ig=x&&BA>=0&&BA===this.svgaCompactSlotStateUploadId&&rA===this.svgaCompactSlotStateByteLength,QA=Ig?this.svgaCompactSlotStateStorageBase:X||x?this.instancedStorageRingOffset:0;if((X||x)&&(QA<0||QA+rA>Lg))return;(X||x)&&!Ig&&(this.instancedStorageRingOffset+=QI(rA,this.storageBindOffsetAlign),this.writeInstancedStorageShadow(QA,UA,rA),this.performanceSVGADynamicUploadWrites++,this.performanceSVGADynamicUploadBytes+=rA,x&&BA>=0&&(this.svgaCompactSlotStateUploadId=BA,this.svgaCompactSlotStateStorageBase=QA,this.svgaCompactSlotStateByteLength=rA));const V=A.motionTrackIndex,YA=A.motionTrackBuffer,kA=A.motionTrackGlobalsBuffer,W=YA?this.buffers.get(YA.id):null,pA=kA?this.buffers.get(kA.id):null,LA=Math.floor((D=A.motionTrackSampleCount)!=null?D:0),ag=Math.floor(V!=null?V:-1),OA=(ag+1)*LA*8*4,KA=ag>=0&&LA>=1&&(W==null?void 0:W.usage)==="storage"&&(pA==null?void 0:pA.usage)==="uniform"&&W.buffer.size>=OA&&pA.buffer.size>=32,vA=A.stencil==="test"?"test":A.stencil==="write"?"write":A.stencil==="clear"?"clear":this.frameUsesStencil?"pass":"none",sA=l?this.ensureSVGAFrameTableMeshPipeline(A.shader,vA):this.ensureSVGAFrameTablePipeline(vA==="test"?"test":vA==="pass"?"pass":"none");this.lastDrawPipeline!==sA.pipeline&&(w.setPipeline(sA.pipeline),this.lastDrawPipeline=sA.pipeline,this.lastInstancedTextureBindGroup=null);const L=vA==="test"||vA==="write"?1:0;this.frameUsesStencil&&this.lastStencilRef!==L&&(w.setStencilReference(L),this.lastStencilRef=L);const EA=A.uniforms.u_projection;if(!(EA instanceof Float32Array)||EA.length<16)return;const Bg=this.buffers.get(A.vertexBuffer.id),AA=this.buffers.get(A.indexBuffer.id);if(!Bg||!AA)return;const DA=A.textures[0];if(!DA)return;const IA=this.textures.get(DA.id);if(!IA)return;const mg=this.reserveSVGAFrameTableUniform(EA,T,U,m,F,KA?ag:null,x?2:X?1:0,Z,M/4);if(mg==null)return;const Jg=KA?W.buffer:f.buffer,Cg=KA?pA.buffer:this.uniformBuffer,GA=X||x?this.ensureInstancedStorageBuffer():f.buffer;if(GA.size<rA)return;const fA=x?"slots":X?"hybrid":"direct",dA=`${G.id}:${u.id}:${KA?YA.id:0}:${KA?kA.id:0}:${fA}:${rA}`;let iA=this.svgaFrameTableDataBindGroupCache.get(dA);iA||(iA=this.device.createBindGroup({layout:sA.bindGroupLayout,entries:[{binding:0,resource:{buffer:this.uniformBuffer,offset:0,size:this.uniformSlotStride}},{binding:1,resource:{buffer:f.buffer,offset:0,size:f.buffer.size}},{binding:2,resource:{buffer:R.buffer,offset:0,size:R.buffer.size}},{binding:3,resource:{buffer:Jg,offset:0,size:Jg.size}},{binding:4,resource:{buffer:Cg,offset:0,size:32}},{binding:5,resource:{buffer:GA,offset:0,size:rA}}]}),this.svgaFrameTableDataBindGroupCache.set(dA,iA)),w.setBindGroup(0,iA,[mg,QA]);const eA=DA.id;let tA=this.instancedTextureBindGroupCache.get(eA);tA||(tA=this.device.createBindGroup({layout:this.instancedTextureBindGroupLayout,entries:[{binding:0,resource:IA.view},{binding:1,resource:this.sampler}]}),this.instancedTextureBindGroupCache.set(eA,tA)),w.setBindGroup(1,tA),this.lastVertexBufferId!==A.vertexBuffer.id&&(w.setVertexBuffer(0,Bg.buffer),this.lastVertexBufferId=A.vertexBuffer.id),this.lastIndexBufferId!==A.indexBuffer.id&&(w.setIndexBuffer(AA.buffer,"uint32"),this.lastIndexBufferId=A.indexBuffer.id),w.drawIndexed(A.indexCount,F,0,0,0),this.recordSubmittedDraw()}resolveSVGAFrameTableSlotUniform(A,g,I){var B,Q,E,i,e,t,a,o,s,n,r,h,c,D,w,l,F,d,y,G,f,u,R,M,N,S,Y,U,k,m,J,q,_,Z,x,X,T,gA,UA,yA,rA,BA,Ig,QA,V,YA,kA,W,pA,LA,ag,OA,KA,vA,sA;const L=(Q=(B=A.svgaFrameTableSlotState)!=null?B:A.svgaSlotState)!=null?Q:A.uniforms.u_svgaSlotState instanceof Float32Array?A.uniforms.u_svgaSlotState:A.uniforms.u_slotState instanceof Float32Array?A.uniforms.u_slotState:null,EA=A.uniforms.u_transform,Bg=A.uniforms.u_clipRect,AA=A.svgaFrameTableParentAffine,DA=A.svgaFrameTableParentTranslate,IA=A.svgaFrameTableClipRect,mg=A.svgaFrameIndex!=null||A.svgaFrameTableFrameIndex!=null||A.frameTableFrameIndex!=null,Jg=A.svgaFrameTableOpacity!=null||typeof A.uniforms.u_opacity=="number",Cg=A.uniforms.u_projection;if(!(Cg instanceof Float32Array)||Cg.length<16)return null;let GA=1,fA=0,dA=0,iA=1,eA=0,tA=0,hA=(E=A.svgaFrameTableOpacity)!=null?E:typeof A.uniforms.u_opacity=="number"?A.uniforms.u_opacity:1,aA=(t=(e=(i=A.svgaFrameIndex)!=null?i:A.svgaFrameTableFrameIndex)!=null?e:A.frameTableFrameIndex)!=null?t:0,nA=0,RA=0,uA=this.canvas.width,TA=this.canvas.height,Qg=0,Og=(a=A.svgaFrameTableAtlasPage)!=null?a:-1,PA=(h=(r=(n=(s=(o=A.svgaFrameTableMetadataBase)!=null?o:A.svgaFrameTableSpriteBase)!=null?s:A.frameTableSpriteBase)!=null?n:A.svgaSpriteMetadataBase)!=null?r:A.svgaSpriteBase)!=null?h:0;if(AA&&AA.length>=4)GA=(c=AA[0])!=null?c:GA,fA=(D=AA[1])!=null?D:fA,dA=(w=AA[2])!=null?w:dA,iA=(l=AA[3])!=null?l:iA,DA&&DA.length>=2&&(eA=(F=DA[0])!=null?F:eA,tA=(d=DA[1])!=null?d:tA),IA&&IA.length>=4&&(nA=(y=IA[0])!=null?y:nA,RA=(G=IA[1])!=null?G:RA,uA=(f=IA[2])!=null?f:uA,TA=(u=IA[3])!=null?u:TA,Qg=1);else if(L&&L.length>=13)GA=(R=L[0])!=null?R:GA,fA=(M=L[1])!=null?M:fA,dA=(N=L[2])!=null?N:dA,iA=(S=L[3])!=null?S:iA,eA=(Y=L[4])!=null?Y:eA,tA=(U=L[5])!=null?U:tA,Jg||(hA=(k=L[6])!=null?k:hA),mg||(aA=(m=L[7])!=null?m:aA),nA=(J=L[8])!=null?J:nA,RA=(q=L[9])!=null?q:RA,uA=(_=L[10])!=null?_:uA,TA=(Z=L[11])!=null?Z:TA,Qg=((x=L[12])!=null?x:0)>.5?1:0,A.svgaFrameTableMetadataBase==null&&A.svgaFrameTableSpriteBase==null&&A.frameTableSpriteBase==null&&A.svgaSpriteMetadataBase==null&&A.svgaSpriteBase==null&&L.length>=14&&(PA=(X=L[13])!=null?X:PA);else if(EA instanceof Float32Array&&EA.length>=16){GA=(T=EA[0])!=null?T:GA,fA=(gA=EA[1])!=null?gA:fA,dA=(UA=EA[4])!=null?UA:dA,iA=(yA=EA[5])!=null?yA:iA,eA=(rA=EA[12])!=null?rA:eA,tA=(BA=EA[13])!=null?BA:tA;const CI=Bg instanceof Float32Array&&Bg.length>=4?Bg:IA;CI&&CI.length>=4&&(nA=(Ig=CI[0])!=null?Ig:nA,RA=(QA=CI[1])!=null?QA:RA,uA=(V=CI[2])!=null?V:uA,TA=(YA=CI[3])!=null?YA:TA,Qg=typeof A.uniforms.u_clipEnabled=="number"?A.uniforms.u_clipEnabled>.5?1:0:1)}return AA&&L&&L.length>=13&&(DA||(eA=(kA=L[4])!=null?kA:eA,tA=(W=L[5])!=null?W:tA),Jg||(hA=(pA=L[6])!=null?pA:hA),mg||(aA=(LA=L[7])!=null?LA:aA),IA||(nA=(ag=L[8])!=null?ag:nA,RA=(OA=L[9])!=null?OA:RA,uA=(KA=L[10])!=null?KA:uA,TA=(vA=L[11])!=null?vA:TA,Qg=((sA=L[12])!=null?sA:0)>.5?1:0)),Number.isFinite(hA)||(hA=1),Number.isFinite(aA)||(aA=0),Number.isFinite(PA)||(PA=0),Number.isFinite(Og)||(Og=-1),aA=Math.max(0,Math.min(I-1,Math.floor(aA))),PA=Math.max(0,Math.floor(PA)),![GA,fA,dA,iA,eA,tA,hA].every(Number.isFinite)||g<1?null:{parentA:GA,parentB:fA,parentC:dA,parentD:iA,tx:eA,ty:tA,opacity:hA,frameIndex:aA,clipX0:nA,clipY0:RA,clipX1:uA,clipY1:TA,clipEnabled:Qg,metadataBase:PA,atlasPage:Math.max(-1,Math.floor(Og))}}reserveSVGAFrameTableUniform(A,g,I,B,Q,E,i,e=0,t=2){if(!g)return null;const a=this.uniformSlotIndex++;if(a>=this.maxUniformSlots)return console.warn("[WebGPU] uniform slot overflow; increase maxUniformSlots"),null;const o=this.svgaFrameTableUniformScratch;o.fill(0),o.set(A.length===16?A:A.subarray(0,16),0),o[16]=g.parentA,o[17]=g.parentB,o[18]=g.parentC,o[19]=g.parentD,o[20]=g.tx,o[21]=g.ty,o[22]=g.opacity,o[23]=g.frameIndex,o[24]=g.clipX0,o[25]=g.clipY0,o[26]=g.clipX1,o[27]=g.clipY1;const s=this.svgaFrameTableUniformWords;s[28]=Math.max(0,Math.floor(g.metadataBase)),s[29]=Math.max(1,Math.floor(Q)),s[30]=(g.clipEnabled>.5?1:0)|(i===1?2:0)|(i===2?4:0),s[31]=E==null?0:Math.max(1,Math.floor(E)+1),s[32]=Math.max(1,Math.floor(I)),s[33]=Math.max(1,Math.floor(B)),s[34]=3,s[35]=g.atlasPage>=0?Math.floor(g.atlasPage):4294967295,s[36]=i===2?Math.max(1,Math.floor(e)):0,s[37]=Math.max(2,Math.floor(t)),s[38]=i;const n=a*this.uniformSlotStride;return this.writeUniformShadow(n,o,bB),n}drawMotionInstancedSvga(A){var g,I,B;const Q=this.passEncoder,E=(g=A.instanceCount)!=null?g:0,i=A.instanceData,e=A.motionTrackBuffer,t=A.motionTrackGlobalsBuffer;if(!i||!e||!t||E<1)return;const a=this.buffers.get(e.id),o=this.buffers.get(t.id),s=this.buffers.get(A.vertexBuffer.id),n=this.buffers.get(A.indexBuffer.id);if(!a||!o||!s||!n)return;const r=this.ensureMotionSvgaPipeline();this.lastDrawPipeline!==r.pipeline&&(Q.setPipeline(r.pipeline),this.lastDrawPipeline=r.pipeline,this.lastInstancedTextureBindGroup=null);const h=A.uniforms.u_projection;if(!(h instanceof Float32Array)||h.length<16)return;this.ensureInstancedProjection(h);const c=E*CA.SVGA_INSTANCED_STRIDE,D=this.instancedStorageRingOffset;if(D+c>Lg)return;this.instancedStorageRingOffset+=QI(c,this.storageBindOffsetAlign),this.writeInstancedStorageShadow(D,i,c),this.performanceSVGADynamicUploadWrites++,this.performanceSVGADynamicUploadBytes+=c;const w=`${c}:${e.id}:${t.id}:${this.frameUsesStencil?1:0}`;let l=this.motionDataBindGroupCache.get(w);l||(l=this.device.createBindGroup({layout:r.bindGroupLayout,entries:[{binding:0,resource:{buffer:this.ensureInstancedProjectionBuffer(),size:64}},{binding:1,resource:{buffer:this.ensureInstancedStorageBuffer(),offset:0,size:c}},{binding:2,resource:{buffer:a.buffer,size:a.buffer.size}},{binding:3,resource:{buffer:o.buffer,size:32}}]}),this.motionDataBindGroupCache.set(w,l)),Q.setBindGroup(0,l,[D]);const F=A.textures[0],d=F?this.textures.get(F.id):null,y=(I=F==null?void 0:F.id)!=null?I:0;let G=this.instancedTextureBindGroupCache.get(y);G||(G=this.device.createBindGroup({layout:this.instancedTextureBindGroupLayout,entries:[{binding:0,resource:(B=d==null?void 0:d.view)!=null?B:this.dummyTextureView},{binding:1,resource:this.sampler}]}),this.instancedTextureBindGroupCache.set(y,G)),Q.setBindGroup(1,G),Q.setVertexBuffer(0,s.buffer),Q.setIndexBuffer(n.buffer,"uint32"),this.lastVertexBufferId=A.vertexBuffer.id,this.lastIndexBufferId=A.indexBuffer.id,Q.drawIndexed(A.indexCount,E,0,0,0),this.recordSubmittedDraw()}drawInstancedParticles(A){var g,I,B,Q;const E=this.passEncoder,i=(g=A.instanceCount)!=null?g:0,e=A.instanceBuffer;if(!e||i<1||i>CA.PARTICLE_INSTANCED_MAX)return;const t=this.buffers.get(e.id),a=this.buffers.get(A.vertexBuffer.id),o=this.buffers.get(A.indexBuffer.id);if(!t||!a||!o)return;const s=(I=A.particleBlend)!=null?I:"additive",n=A.shader==="particle-sprite-instanced",r=n?this.ensureParticleSpritePipeline(s):this.ensureParticlePipeline(s);this.lastDrawPipeline!==r.pipeline&&(E.setPipeline(r.pipeline),this.lastDrawPipeline=r.pipeline,this.lastInstancedTextureBindGroup=null);const h=A.uniforms.u_projection;if(!(h instanceof Float32Array)||h.length<16)return;this.ensureInstancedProjection(h);const c=n&&(Q=(B=A.textures[0])==null?void 0:B.id)!=null?Q:0;if(n&&!this.textures.has(c))return;const D=`${n?"sprite-v2":"ballistic-v1"}:${this.frameUsesStencil?"pass":"none"}:${s}:${e.id}:${c}`;let w=this.particleDataBindGroupCache.get(D);if(w||(w=this.device.createBindGroup({layout:r.bindGroupLayout,entries:[{binding:0,resource:{buffer:this.ensureInstancedProjectionBuffer(),offset:0,size:64}},{binding:1,resource:{buffer:t.buffer,offset:0,size:t.buffer.size}}]}),this.particleDataBindGroupCache.set(D,w)),E.setBindGroup(0,w),n){const l=this.textures.get(c);let F=this.instancedTextureBindGroupCache.get(c);F||(F=this.device.createBindGroup({layout:this.instancedTextureBindGroupLayout,entries:[{binding:0,resource:l.view},{binding:1,resource:this.sampler}]}),this.instancedTextureBindGroupCache.set(c,F)),E.setBindGroup(1,F)}this.lastVertexBufferId!==A.vertexBuffer.id&&(E.setVertexBuffer(0,a.buffer),this.lastVertexBufferId=A.vertexBuffer.id),this.lastIndexBufferId!==A.indexBuffer.id&&(E.setIndexBuffer(o.buffer,"uint32"),this.lastIndexBufferId=A.indexBuffer.id),E.drawIndexed(A.indexCount,i,0,0,0),this.recordSubmittedDraw()}drawInstancedAlpha(A){var g,I,B;const Q=this.passEncoder,E=(g=A.instanceCount)!=null?g:0,i=A.instanceData;if(E<1||!i||i.length<E*12)return;if(E>CA.ALPHA_INSTANCED_MAX){console.warn("[WebGPU] alpha-video-instanced: instanceCount exceeds max",E);return}const t=this.ensureInstancedAlphaPipeline(),a=t.pipeline;this.lastDrawPipeline!==a&&(Q.setPipeline(a),this.lastDrawPipeline=a,this.lastInstancedTextureBindGroup=null),this.frameUsesStencil&&this.lastStencilRef!==0&&(Q.setStencilReference(0),this.lastStencilRef=0);const o=A.uniforms.u_projection;if(!(o instanceof Float32Array)||o.length<16)return;const s=this.buffers.get(A.vertexBuffer.id),n=this.buffers.get(A.indexBuffer.id);if(!s||!n)return;this.ensureInstancedProjection(o);const r=E*CA.ALPHA_INSTANCED_STRIDE,h=this.instancedStorageRingOffset;if(h+r>Lg){console.warn("[WebGPU] instanced alpha storage ring full");return}this.instancedStorageRingOffset+=QI(r,this.storageBindOffsetAlign),this.writeInstancedStorageShadow(h,i,r);const c=A.textures[0],D=c?this.textures.get(c.id):null,w=(I=D==null?void 0:D.view)!=null?I:this.dummyTextureView,l=(B=c==null?void 0:c.id)!=null?B:0;let F=this.instancedTextureBindGroupCache.get(l);F||(F=this.device.createBindGroup({layout:this.instancedTextureBindGroupLayout,entries:[{binding:0,resource:w},{binding:1,resource:this.sampler}]}),this.instancedTextureBindGroupCache.set(l,F)),Q.setBindGroup(0,this.ensureInstancedDataBindGroup(t,r),[h]),this.lastInstancedTextureBindGroup!==F&&(Q.setBindGroup(1,F),this.lastInstancedTextureBindGroup=F);const d=A.vertexBuffer.id,y=A.indexBuffer.id;this.lastVertexBufferId!==d&&(Q.setVertexBuffer(0,s.buffer),this.lastVertexBufferId=d),this.lastIndexBufferId!==y&&(Q.setIndexBuffer(n.buffer,"uint32"),this.lastIndexBufferId=y),Q.drawIndexed(A.indexCount,E,0,0,0),this.recordSubmittedDraw()}drawInstancedVap(A){var g,I,B;const Q=this.passEncoder,E=(g=A.instanceCount)!=null?g:0,i=A.instanceData;if(E<1||!i||i.length<E*32)return;if(E>CA.VAP_INSTANCED_MAX){console.warn("[WebGPU] vap-instanced: instanceCount exceeds max",E);return}const t=this.ensureInstancedVapPipeline(),a=t.pipeline;this.lastDrawPipeline!==a&&(Q.setPipeline(a),this.lastDrawPipeline=a,this.lastInstancedTextureBindGroup=null),this.frameUsesStencil&&this.lastStencilRef!==0&&(Q.setStencilReference(0),this.lastStencilRef=0);const o=A.uniforms.u_projection;if(!(o instanceof Float32Array)||o.length<16)return;const s=this.buffers.get(A.vertexBuffer.id),n=this.buffers.get(A.indexBuffer.id);if(!s||!n)return;this.ensureInstancedProjection(o);const r=E*CA.VAP_INSTANCED_STRIDE,h=this.instancedStorageRingOffset;if(h+r>Lg){console.warn("[WebGPU] instanced VAP storage ring full");return}this.instancedStorageRingOffset+=QI(r,this.storageBindOffsetAlign),this.writeInstancedStorageShadow(h,i,r);const c=A.textures[0],D=c?this.textures.get(c.id):null,w=(I=D==null?void 0:D.view)!=null?I:this.dummyTextureView,l=(B=c==null?void 0:c.id)!=null?B:0;let F=this.instancedTextureBindGroupCache.get(l);F||(F=this.device.createBindGroup({layout:this.instancedTextureBindGroupLayout,entries:[{binding:0,resource:w},{binding:1,resource:this.sampler}]}),this.instancedTextureBindGroupCache.set(l,F)),Q.setBindGroup(0,this.ensureInstancedDataBindGroup(t,r),[h]),this.lastInstancedTextureBindGroup!==F&&(Q.setBindGroup(1,F),this.lastInstancedTextureBindGroup=F);const d=A.vertexBuffer.id,y=A.indexBuffer.id;this.lastVertexBufferId!==d&&(Q.setVertexBuffer(0,s.buffer),this.lastVertexBufferId=d),this.lastIndexBufferId!==y&&(Q.setIndexBuffer(n.buffer,"uint32"),this.lastIndexBufferId=y),Q.drawIndexed(A.indexCount,E,0,0,0),this.recordSubmittedDraw()}clearStencil(){}setScissor(A,g,I,B){if(!this.passEncoder)return;const Q=this.canvas.width,E=this.canvas.height,i=Math.max(0,Math.min(Q,Math.floor(A))),e=Math.max(0,Math.min(E,Math.floor(g))),t=Math.max(i,Math.min(Q,Math.ceil(A+I))),a=Math.max(e,Math.min(E,Math.ceil(g+B)));this.passEncoder.setScissorRect(i,e,t-i,a-e)}resetScissor(){this.passEncoder&&this.passEncoder.setScissorRect(0,0,this.canvas.width,this.canvas.height)}destroy(){var A,g,I,B,Q,E,i;this.deviceLostHandler=null,this.runtimeDiagnosticHandler=null,this.device&&(this.device.onuncapturederror=null);for(const[,e]of this.buffers)e.buffer.destroy();for(const[,e]of this.textures)e.texture.destroy();(A=this.uniformBuffer)==null||A.destroy(),(g=this.instancedProjectionBuffer)==null||g.destroy(),(I=this.instancedStorageBuffer)==null||I.destroy(),(B=this.depthStencilTexture)==null||B.destroy(),(Q=this.msaaColorTexture)==null||Q.destroy(),(E=this.dummyTexture)==null||E.destroy(),(i=this.device)==null||i.destroy(),this.buffers.clear(),this.textures.clear(),this.texturedBindGroupCache.clear(),this.dualTexturedBindGroupCache.clear(),this.instancedTextureBindGroupCache.clear(),this.particleDataBindGroupCache.clear(),this.motionDataBindGroupCache.clear(),this.pipelines.clear()}};p(hg,"SVGA_INSTANCED_MAX",2048);p(hg,"SVGA_INSTANCED_STRIDE",52);p(hg,"SVGA_FRAME_TABLE_INSTANCE_MAX",2048);p(hg,"SVGA_FRAME_TABLE_ROW_BYTES",vQ*Float32Array.BYTES_PER_ELEMENT);p(hg,"CLIP_MASK_INSTANCED_MAX",2048);p(hg,"CLIP_MASK_INSTANCED_STRIDE",24);p(hg,"ALPHA_INSTANCED_MAX",1024);p(hg,"ALPHA_INSTANCED_STRIDE",48);p(hg,"VAP_INSTANCED_MAX",1024);p(hg,"VAP_INSTANCED_STRIDE",128);p(hg,"PARTICLE_INSTANCED_MAX",8192);let TQ=hg;function TC(C,A,g){const I=C.createShader(A);if(!I)throw new Error("Failed to create shader");if(C.shaderSource(I,g),C.compileShader(I),!C.getShaderParameter(I,C.COMPILE_STATUS)){const B=C.getShaderInfoLog(I);throw C.deleteShader(I),new Error(`Shader compile failed: ${B}`)}return I}function WA(C,A,g){const I=TC(C,C.VERTEX_SHADER,A),B=TC(C,C.FRAGMENT_SHADER,g),Q=C.createProgram();if(!Q)throw C.deleteShader(I),C.deleteShader(B),new Error("Failed to create program");if(C.attachShader(Q,I),C.attachShader(Q,B),C.linkProgram(Q),!C.getProgramParameter(Q,C.LINK_STATUS)){const E=C.getProgramInfoLog(Q);throw C.deleteProgram(Q),C.deleteShader(I),C.deleteShader(B),new Error(`Program link failed: ${E}`)}return C.deleteShader(I),C.deleteShader(B),Q}function WC(C,A=C.LINEAR,g=C.CLAMP_TO_EDGE){const I=C.createTexture();if(!I)throw new Error("Failed to create texture");return C.bindTexture(C.TEXTURE_2D,I),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,A),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,A),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,g),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,g),I}function Li(C=typeof navigator!="undefined"?navigator:null){var A,g;const I=(A=C==null?void 0:C.userAgent)!=null?A:"";return/iPad|iPhone|iPod/i.test(I)||/Macintosh/i.test(I)&&((g=C==null?void 0:C.maxTouchPoints)!=null?g:0)>1}function vI(C){const A=C;return typeof A.displayWidth=="number"&&A.displayWidth>0?A.displayWidth:typeof A.codedWidth=="number"&&A.codedWidth>0?A.codedWidth:typeof A.videoWidth=="number"&&A.videoWidth>0?A.videoWidth:typeof A.naturalWidth=="number"&&A.naturalWidth>0?A.naturalWidth:typeof A.width=="number"&&A.width>0?A.width:0}function TI(C){const A=C;return typeof A.displayHeight=="number"&&A.displayHeight>0?A.displayHeight:typeof A.codedHeight=="number"&&A.codedHeight>0?A.codedHeight:typeof A.videoHeight=="number"&&A.videoHeight>0?A.videoHeight:typeof A.naturalHeight=="number"&&A.naturalHeight>0?A.naturalHeight:typeof A.height=="number"&&A.height>0?A.height:0}var Hi=Object.defineProperty,xi=(C,A,g)=>A in C?Hi(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,H=(C,A,g)=>xi(C,typeof A!="symbol"?A+"":A,g);const gB="svga-frame-table-instanced-premul",VC=8,bi=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),qi=new Float32Array([1,1]),SA=class bA{constructor(A,g=!0){H(this,"type","webgl2"),H(this,"supportsAtomicFrameReplay",!0),H(this,"canvas"),H(this,"maxTextureSize",4096),H(this,"antialias"),H(this,"gl"),H(this,"nextId",1),H(this,"buffers",new Map),H(this,"textures",new Map),H(this,"frameTables",new Map),H(this,"ownedFrameTableMetadataIds",new Set),H(this,"programs",new Map),H(this,"vertexArrays",new Map),H(this,"cachedDrawProgram",null),H(this,"cachedTex0Id",null),H(this,"cachedFrameTableId",null),H(this,"cachedFrameMetadataId",null),H(this,"cachedProjectionRef",null),H(this,"cachedProjectionShader",null),H(this,"videoUploadCanvas",null),H(this,"videoUploadCtx",null),H(this,"videoElementPreferCanvasBridge",Li()),H(this,"videoElementDirectUploadValidated",!1),H(this,"maxVertexTextureImageUnits",0),H(this,"svgaFrameTableSupported",!1),H(this,"instancedSvgaInstanceGLBuffer",null),H(this,"svgaSlotStateTexture",null),H(this,"svgaSlotStateTextureWidth",0),H(this,"svgaSlotStateTextureHeight",0),H(this,"svgaSlotStateUploadScratch",new Float32Array(0)),H(this,"svgaSlotStateUploadId",-1),H(this,"svgaTableInfoScratch",new Int32Array(4)),H(this,"svgaTableSizeScratch",new Int32Array(2)),H(this,"svgaMetadataSizeScratch",new Int32Array(2)),H(this,"instancedClipMaskGLBuffer",null),H(this,"instancedAlphaInstanceGLBuffer",null),H(this,"performanceBufferWrites",0),H(this,"performanceBufferWriteBytes",0),H(this,"performanceStorageBufferWrites",0),H(this,"performanceStorageBufferWriteBytes",0),H(this,"performanceSubmittedDrawCalls",0),H(this,"performanceRejectedDrawCalls",0),H(this,"performanceSVGADynamicUploadWrites",0),H(this,"performanceSVGADynamicUploadBytes",0),H(this,"runtimeSubmittedDrawCalls",0),H(this,"runtimeRejectedDrawCalls",0),H(this,"currentDrawResult",$("invalid-command","WebGL2 draw has not been submitted")),H(this,"currentDrawRecorded",!1),H(this,"runtimeBackendLosses",0),H(this,"runtimeDiagnosticHandler",null),H(this,"contextLost",!1),H(this,"deviceLostHandler",null),H(this,"onContextLost",I=>{var B,Q;I.preventDefault(),this.contextLost=!0,this.runtimeBackendLosses++,(B=this.runtimeDiagnosticHandler)==null||B.call(this,{type:"backend-lost"}),this.svgaFrameTableSupported=!1,this.buffers.clear(),this.textures.clear(),this.frameTables.clear(),this.programs.clear(),this.vertexArrays.clear(),this.ownedFrameTableMetadataIds.clear(),this.instancedSvgaInstanceGLBuffer=null,this.instancedClipMaskGLBuffer=null,this.instancedAlphaInstanceGLBuffer=null,this.instancedVapInstanceGLBuffer=null,this.svgaSlotStateTexture=null,(Q=this.deviceLostHandler)==null||Q.call(this)}),H(this,"instancedVapInstanceGLBuffer",null),this.canvas=A,this.antialias=g}async init(){const A=this.canvas.getContext("webgl2",{alpha:!0,premultipliedAlpha:!0,antialias:this.antialias,depth:!1,stencil:!0});if(!A)throw new Error("WebGL2 not available");this.gl=A,this.canvas.addEventListener("webglcontextlost",this.onContextLost),this.maxTextureSize=A.getParameter(A.MAX_TEXTURE_SIZE)||this.maxTextureSize,this.maxVertexTextureImageUnits=A.getParameter(A.MAX_VERTEX_TEXTURE_IMAGE_UNITS)||0,A.enable(A.BLEND),A.blendFunc(A.ONE,A.ONE_MINUS_SRC_ALPHA),A.clearColor(0,0,0,0),A.pixelStorei(A.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),A.pixelStorei(A.UNPACK_COLORSPACE_CONVERSION_WEBGL,A.NONE),this.initPrograms()}getPerformanceSnapshot(){return{bufferWrites:this.performanceBufferWrites,bufferWriteBytes:this.performanceBufferWriteBytes,storageBufferWrites:this.performanceStorageBufferWrites,storageBufferWriteBytes:this.performanceStorageBufferWriteBytes,submittedDrawCalls:this.performanceSubmittedDrawCalls,rejectedDrawCalls:this.performanceRejectedDrawCalls,svgaDynamicUploadWrites:this.performanceSVGADynamicUploadWrites,svgaDynamicUploadBytes:this.performanceSVGADynamicUploadBytes}}getRuntimeDiagnosticsSnapshot(){return{submittedDrawCalls:this.runtimeSubmittedDrawCalls,rejectedDrawCalls:this.runtimeRejectedDrawCalls,webgpuUncapturedErrors:0,backendLosses:this.runtimeBackendLosses}}setRuntimeDiagnosticHandler(A){this.runtimeDiagnosticHandler=A}resetPerformanceSnapshot(){this.performanceBufferWrites=0,this.performanceBufferWriteBytes=0,this.performanceStorageBufferWrites=0,this.performanceStorageBufferWriteBytes=0,this.performanceSubmittedDrawCalls=0,this.performanceRejectedDrawCalls=0,this.performanceSVGADynamicUploadWrites=0,this.performanceSVGADynamicUploadBytes=0}setDeviceLostHandler(A){this.deviceLostHandler=A}recordSubmittedDraw(){this.currentDrawResult=tg,this.currentDrawRecorded=!0,this.performanceSubmittedDrawCalls++,this.runtimeSubmittedDrawCalls++}rejectSVGAFastPathDraw(){this.currentDrawRecorded=!0,this.currentDrawResult.submitted&&(this.currentDrawResult=$("invalid-command","WebGL2 draw was rejected")),this.performanceRejectedDrawCalls++,this.runtimeRejectedDrawCalls++}initPrograms(){const A=this.gl,g=WA(A,P.svgaBatchPremul.vert,P.svgaBatchPremul.frag);this.programs.set("svga-batch-premul",this.makeProgramEntry(g,{transform:!0,opacity:!0})),this.bindProgramSamplers(g,{u_atlas:0});const I=WA(A,P.svgaInstancedPremul.vert,P.svgaInstancedPremul.frag);if(this.programs.set("svga-instanced-premul",this.makeProgramEntry(I)),this.bindProgramSamplers(I,{u_atlas:0}),this.maxVertexTextureImageUnits>=2&&this.maxTextureSize>=3)try{const n=WA(A,P.svgaFrameTableInstancedPremul.vert,P.svgaFrameTableInstancedPremul.frag);this.programs.set(gB,this.makeProgramEntry(n,{frameTable:!0,spriteMetadata:!0,tableInfo:!0,frameTableSize:!0,spriteMetadataSize:!0,spriteMetadataStride:!0,spriteBase:!0,frameIndex:!0,parentAffine:!0,parentTranslate:!0,slotOpacity:!0,atlasPage:!0,clipRect:!0,clipEnabled:!0,canvasHeight:!0,instanceStateEnabled:!0,slotStates:!0,slotStateSize:!0,compactSlotStateEnabled:!0,spritesPerSlot:!0})),this.bindProgramSamplers(n,{u_atlas:0,u_frameTable:1,u_spriteMetadata:2,u_slotStates:3});const r=WA(A,P.svgaFrameTableShape.vert,P.svgaFrameTableShape.frag);this.programs.set("svga-frame-table-shape-premul",this.makeProgramEntry(r,{frameTable:!0,tableInfo:!0,frameTableSize:!0,spriteBase:!0,frameIndex:!0,parentAffine:!0,parentTranslate:!0,slotOpacity:!0,clipRect:!0,clipEnabled:!0,canvasHeight:!0,slotStates:!0,slotStateSize:!0,compactSlotStateEnabled:!0})),this.bindProgramSamplers(r,{u_frameTable:0,u_slotStates:3});const h=WA(A,P.svgaFrameTableClipMask.vert,P.svgaFrameTableClipMask.frag);this.programs.set("svga-frame-table-clip-mask",this.makeProgramEntry(h,{frameTable:!0,tableInfo:!0,frameTableSize:!0,spriteBase:!0,frameIndex:!0,parentAffine:!0,parentTranslate:!0,clipRect:!0,clipEnabled:!0,canvasHeight:!0,slotStates:!0,slotStateSize:!0,compactSlotStateEnabled:!0})),this.bindProgramSamplers(h,{u_frameTable:0,u_slotStates:3}),this.svgaFrameTableSupported=!0}catch(n){this.svgaFrameTableSupported=!1,console.warn("[WebGL2] SVGA frame-table shader unavailable; using CPU reference path.",n)}const B=WA(A,P.vap.vert,P.vap.frag);this.programs.set("vap",this.makeProgramEntry(B,{transform:!0,atlasRemap:!0,opacity:!0,rgbPremultiplied:!0})),this.bindProgramSamplers(B,{u_video:0});const Q=WA(A,P.vapMixOverlay.vert,P.vapMixOverlay.frag);this.programs.set("vap-mix-overlay",this.makeProgramEntry(Q,{transform:!0,atlasRemap:!0,opacity:!0})),this.bindProgramSamplers(Q,{u_resource:0,u_video:1});const E=WA(A,P.alphaVideo.vert,P.alphaVideo.frag);this.programs.set("alpha-video",this.makeProgramEntry(E,{transform:!0,atlasRemap:!0,opacity:!0,rgbPremultiplied:!0})),this.bindProgramSamplers(E,{u_video:0});const i=WA(A,P.rgbaTextured.vert,P.rgbaTextured.frag);this.programs.set("rgba-textured",this.makeProgramEntry(i,{transform:!0,atlasRemap:!0,opacity:!0})),this.bindProgramSamplers(i,{u_video:0});const e=WA(A,P.alphaVideoInstanced.vert,P.alphaVideoInstanced.frag);this.programs.set("alpha-video-instanced",this.makeProgramEntry(e)),this.bindProgramSamplers(e,{u_video:0});const t=WA(A,P.vapInstanced.vert,P.vapInstanced.frag);this.programs.set("vap-instanced",this.makeProgramEntry(t)),this.bindProgramSamplers(t,{u_video:0});const a=WA(A,P.clipMask.vert,P.clipMask.frag);this.programs.set("clip-mask",this.makeProgramEntry(a,{transform:!0}));const o=WA(A,P.clipMaskInstanced.vert,P.clipMaskInstanced.frag);this.programs.set("clip-mask-instanced",this.makeProgramEntry(o));const s=WA(A,P.particleInstanced.vert,P.particleInstanced.frag);this.programs.set("particle-instanced",this.makeProgramEntry(s))}ensureParticleSpriteProgram(){let A=this.programs.get("particle-sprite-instanced");if(A)return A;const g=WA(this.gl,P.particleSpriteInstanced.vert,P.particleSpriteInstanced.frag);return A=this.makeProgramEntry(g,{particleSprite:!0}),this.programs.set("particle-sprite-instanced",A),this.bindProgramSamplers(g,{u_atlas:0}),A}makeProgramEntry(A,g={}){const I=this.gl;return{program:A,projLoc:I.getUniformLocation(A,"u_projection"),transformLoc:g.transform?I.getUniformLocation(A,"u_transform"):null,atlasRemapLoc:g.atlasRemap?I.getUniformLocation(A,"u_atlasRemap"):null,opacityLoc:g.opacity?I.getUniformLocation(A,"u_opacity"):null,rgbPremultipliedLoc:g.rgbPremultiplied?I.getUniformLocation(A,"u_rgbPremultiplied"):null,frameTableLoc:g.frameTable?I.getUniformLocation(A,"u_frameTable"):null,spriteMetadataLoc:g.spriteMetadata?I.getUniformLocation(A,"u_spriteMetadata"):null,tableInfoLoc:g.tableInfo?I.getUniformLocation(A,"u_tableInfo"):null,frameTableSizeLoc:g.frameTableSize?I.getUniformLocation(A,"u_frameTableSize"):null,spriteMetadataSizeLoc:g.spriteMetadataSize?I.getUniformLocation(A,"u_spriteMetadataSize"):null,spriteMetadataStrideLoc:g.spriteMetadataStride?I.getUniformLocation(A,"u_spriteMetadataTexelsPerRow"):null,spriteBaseLoc:g.spriteBase?I.getUniformLocation(A,"u_spriteBase"):null,frameIndexLoc:g.frameIndex?I.getUniformLocation(A,"u_frameIndex"):null,parentAffineLoc:g.parentAffine?I.getUniformLocation(A,"u_parentAffine"):null,parentTranslateLoc:g.parentTranslate?I.getUniformLocation(A,"u_parentTranslate"):null,slotOpacityLoc:g.slotOpacity?I.getUniformLocation(A,"u_slotOpacity"):null,atlasPageLoc:g.atlasPage?I.getUniformLocation(A,"u_atlasPage"):null,clipRectLoc:g.clipRect?I.getUniformLocation(A,"u_clipRect"):null,clipEnabledLoc:g.clipEnabled?I.getUniformLocation(A,"u_clipEnabled"):null,canvasHeightLoc:g.canvasHeight?I.getUniformLocation(A,"u_canvasHeight"):null,instanceStateEnabledLoc:g.instanceStateEnabled?I.getUniformLocation(A,"u_instanceStateEnabled"):null,slotStatesLoc:g.slotStates?I.getUniformLocation(A,"u_slotStates"):null,slotStateSizeLoc:g.slotStateSize?I.getUniformLocation(A,"u_slotStateSize"):null,compactSlotStateEnabledLoc:g.compactSlotStateEnabled?I.getUniformLocation(A,"u_compactSlotStateEnabled"):null,spritesPerSlotLoc:g.spritesPerSlot?I.getUniformLocation(A,"u_spritesPerSlot"):null,particleTimeLoc:g.particleSprite?I.getUniformLocation(A,"u_time"):null,particleGlobalAlphaLoc:g.particleSprite?I.getUniformLocation(A,"u_globalAlpha"):null,particleSizeEnvelopeLoc:g.particleSprite?I.getUniformLocation(A,"u_sizeEnvelope"):null,particleFadeModeLoc:g.particleSprite?I.getUniformLocation(A,"u_fadeMode"):null,particleCssScaleLoc:g.particleSprite?I.getUniformLocation(A,"u_cssScale"):null,lastOpacity:null,lastRgbPremultiplied:null}}applyIdentityTransform(A){A.transformLoc&&this.gl.uniformMatrix4fv(A.transformLoc,!1,bi)}bindProgramSamplers(A,g){const I=this.gl;I.useProgram(A);for(const B in g){const Q=I.getUniformLocation(A,B);Q&&I.uniform1i(Q,g[B])}}applyProjectionUniform(A,g,I){!A.projLoc||!(I instanceof Float32Array)||I.length<16||this.cachedProjectionShader===g&&this.cachedProjectionRef===I||(this.gl.uniformMatrix4fv(A.projLoc,!1,I),this.cachedProjectionShader=g,this.cachedProjectionRef=I)}applyDrawUniforms(A,g,I){const B=this.gl;if(this.applyProjectionUniform(A,g,I.uniforms.u_projection),A.transformLoc){const Q=I.uniforms.u_transform;Q instanceof Float32Array?B.uniformMatrix4fv(A.transformLoc,!1,Q):this.applyIdentityTransform(A)}if(A.atlasRemapLoc){const Q=I.uniforms.u_atlasRemap;Q instanceof Float32Array&&B.uniform4fv(A.atlasRemapLoc,Q)}if(A.opacityLoc){const Q=I.uniforms.u_opacity,E=typeof Q=="number"?Q:1;A.lastOpacity!==E&&(B.uniform1f(A.opacityLoc,E),A.lastOpacity=E)}if(A.rgbPremultipliedLoc){const Q=I.uniforms.u_rgbPremultiplied;typeof Q=="number"&&A.lastRgbPremultiplied!==Q&&(B.uniform1f(A.rgbPremultipliedLoc,Q),A.lastRgbPremultiplied=Q)}}beginFrame(A={}){const g=this.gl;if(this.contextLost)return $("backend-lost","WebGL2 context is lost");try{return g.viewport(0,0,this.canvas.width,this.canvas.height),g.colorMask(!0,!0,!0,!0),g.stencilMask(255),g.disable(g.STENCIL_TEST),g.disable(g.SCISSOR_TEST),g.clearColor(0,0,0,0),g.clearStencil(0),g.clear(g.COLOR_BUFFER_BIT|(A.stencil?g.STENCIL_BUFFER_BIT:0)),this.cachedDrawProgram=null,this.cachedTex0Id=null,this.cachedFrameTableId=null,this.cachedFrameMetadataId=null,this.cachedProjectionRef=null,this.cachedProjectionShader=null,this.svgaSlotStateUploadId=-1,tg}catch(I){return $("submission-error",this.errorMessage(I))}}endFrame(){if(this.contextLost)return $("backend-lost","WebGL2 context is lost");try{return this.gl.flush(),tg}catch(A){return $("submission-error",this.errorMessage(A))}}abortFrame(){const A=this.gl;if(this.contextLost)return $("backend-lost","WebGL2 context is lost");try{return A.colorMask(!0,!0,!0,!0),A.stencilMask(255),A.disable(A.STENCIL_TEST),A.disable(A.SCISSOR_TEST),A.clearColor(0,0,0,0),A.clearStencil(0),A.clear(A.COLOR_BUFFER_BIT|A.STENCIL_BUFFER_BIT),A.flush(),this.cachedDrawProgram=null,this.cachedTex0Id=null,this.cachedFrameTableId=null,this.cachedFrameMetadataId=null,this.cachedProjectionRef=null,this.cachedProjectionShader=null,this.svgaSlotStateUploadId=-1,tg}catch(g){return $("submission-error",this.errorMessage(g))}}errorMessage(A){return A instanceof Error?A.message:String(A)}getBufferSourceByteLength(A){return ArrayBuffer.isView(A),A.byteLength}createBuffer(A,g){const I=this.gl,B=I.createBuffer();if(!B)throw new Error("Failed to create buffer");I.bindVertexArray(null);const Q=g==="index"?I.ELEMENT_ARRAY_BUFFER:I.ARRAY_BUFFER;I.bindBuffer(Q,B),I.bufferData(Q,A,I.DYNAMIC_DRAW);const E=this.nextId++;return this.buffers.set(E,{buffer:B,usage:g,byteLength:this.getBufferSourceByteLength(A)}),{id:E,usage:g}}updateBuffer(A,g,I=0){const B=this.buffers.get(A.id);if(!B)return;const Q=this.gl;Q.bindVertexArray(null);const E=B.usage==="index"?Q.ELEMENT_ARRAY_BUFFER:Q.ARRAY_BUFFER;Q.bindBuffer(E,B.buffer);const i=this.getBufferSourceByteLength(g);I===0&&i<=B.byteLength?Q.bufferSubData(E,0,g):(Q.bufferData(E,g,Q.DYNAMIC_DRAW),B.byteLength=i)}deleteBuffer(A){const g=this.buffers.get(A.id);g&&(this.gl.bindVertexArray(null),this.deleteVertexArraysForBuffer(A.id),this.gl.deleteBuffer(g.buffer),this.buffers.delete(A.id))}uploadVideoFrameToTexture(A,g,I){const B=this.gl,Q=g.videoWidth,E=g.videoHeight;if(g.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||Q<=0||E<=0)return!1;if(!this.videoElementPreferCanvasBridge){B.bindTexture(B.TEXTURE_2D,A),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,1);try{if(I?B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,g):B.texSubImage2D(B.TEXTURE_2D,0,0,0,B.RGBA,B.UNSIGNED_BYTE,g),!this.videoElementDirectUploadValidated){const t=B.getError();if(t!==B.NO_ERROR)throw new Error(`WebGL video upload error: 0x${t.toString(16)}`);this.videoElementDirectUploadValidated=!0}return!0}catch(t){this.videoElementPreferCanvasBridge=!0,console.debug("[WebGL2] direct HTMLVideo upload failed; using canvas bridge.",t)}finally{B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,0)}}this.videoUploadCanvas||(this.videoUploadCanvas=document.createElement("canvas"),this.videoUploadCtx=this.videoUploadCanvas.getContext("2d"));const i=this.videoUploadCanvas,e=this.videoUploadCtx;return e?((i.width!==Q||i.height!==E)&&(i.width=Q,i.height=E),e.drawImage(g,0,0,Q,E),B.bindTexture(B.TEXTURE_2D,A),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,1),I?B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,i):B.texSubImage2D(B.TEXTURE_2D,0,0,0,B.RGBA,B.UNSIGNED_BYTE,i),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,0),!0):!1}createTexture(A,g){var I,B;const Q=this.gl;Q.activeTexture(Q.TEXTURE0),this.cachedTex0Id=null;const E=g.filter==="nearest"?Q.NEAREST:Q.LINEAR,i=WC(Q,E),e=g.premultiplyAlpha===!0;let t=(I=g.width)!=null?I:1,a=(B=g.height)!=null?B:1;if(A instanceof ArrayBuffer)Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,t,a,0,Q.RGBA,Q.UNSIGNED_BYTE,new Uint8Array(A));else if(typeof VideoFrame!="undefined"&&A instanceof VideoFrame){const s=A;Q.bindTexture(Q.TEXTURE_2D,i),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,1),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e?1:0),Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,Q.RGBA,Q.UNSIGNED_BYTE,s),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,0),t=s.displayWidth||s.codedWidth||t,a=s.displayHeight||s.codedHeight||a}else if(A instanceof HTMLVideoElement)Q.bindTexture(Q.TEXTURE_2D,i),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e?1:0),this.uploadVideoFrameToTexture(i,A,!0),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),t=A.videoWidth||t,a=A.videoHeight||a;else{const s=e,n=g.sourcePremultiplied===!0,r=s&&!n?1:0;Q.bindTexture(Q.TEXTURE_2D,i),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,0),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,Q.RGBA,Q.UNSIGNED_BYTE,A),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,0),"width"in A&&(t=A.width,a=A.height)}const o=this.nextId++;return this.textures.set(o,{texture:i,width:t,height:a}),{id:o,width:t,height:a}}canCreateSVGAFrameTable(){return this.svgaFrameTableSupported&&this.maxVertexTextureImageUnits>=2&&this.maxTextureSize>=3}assertSVGAFrameTableSupport(){if(!this.canCreateSVGAFrameTable())throw new Error(`WebGL2 SVGA frame table unsupported (vertexTextureUnits=${this.maxVertexTextureImageUnits}, maxTextureSize=${this.maxTextureSize}, shader=${this.svgaFrameTableSupported?"ready":"unavailable"})`)}createFloatTableTexture(A,g,I,B){const Q=this.gl,E=Math.floor(g),i=Math.floor(I);if(E<1||i<1||E>this.maxTextureSize||i>this.maxTextureSize)throw new RangeError(`[WebGL2] ${B} dimensions ${E}x${i} exceed MAX_TEXTURE_SIZE=${this.maxTextureSize}`);if(A.length!==E*i*4)throw new RangeError(`[WebGL2] ${B} data length ${A.length} does not match ${E}x${i} RGBA texels`);Q.activeTexture(Q.TEXTURE0),this.cachedTex0Id=null;const e=Q.createTexture();if(!e)throw new Error(`[WebGL2] failed to create ${B} texture`);Q.bindTexture(Q.TEXTURE_2D,e),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_MIN_FILTER,Q.NEAREST),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_MAG_FILTER,Q.NEAREST),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_WRAP_S,Q.CLAMP_TO_EDGE),Q.texParameteri(Q.TEXTURE_2D,Q.TEXTURE_WRAP_T,Q.CLAMP_TO_EDGE);const t=Q.getParameter(Q.UNPACK_ALIGNMENT);Q.pixelStorei(Q.UNPACK_ALIGNMENT,1);try{Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA32F,E,i,0,Q.RGBA,Q.FLOAT,A);const a=Q.getError();if(a!==Q.NO_ERROR)throw new Error(`GL error 0x${a.toString(16)} while uploading ${B}`)}catch(a){throw Q.deleteTexture(e),a}finally{Q.pixelStorei(Q.UNPACK_ALIGNMENT,t||4)}return{texture:e,width:E,height:i}}createLinearFloatTableTexture(A,g,I,B){const Q=Math.floor(g),E=Math.max(1,Math.floor(I));if(Q<1||A.length!==Q*4)throw new RangeError(`[WebGL2] ${B} requires ${Q*4} floats, got ${A.length}`);const i=this.maxTextureSize-this.maxTextureSize%E;if(i<E)throw new RangeError(`[WebGL2] ${B} cannot fit a ${E}-texel record in MAX_TEXTURE_SIZE=${this.maxTextureSize}`);const e=Math.max(E,Math.min(i,Q-Q%E||E)),t=Math.ceil(Q/e);if(t>this.maxTextureSize)throw new RangeError(`[WebGL2] ${B} dimensions ${e}x${t} exceed MAX_TEXTURE_SIZE=${this.maxTextureSize}`);const a=e*t===Q?A:new Float32Array(e*t*4);return a!==A&&a.set(A),this.createFloatTableTexture(a,e,t,B)}createSVGAFrameTableMetadata(A,g,I=VC){this.assertSVGAFrameTableSupport();const B=Math.floor(g);if(B<1||!Number.isFinite(B))throw new RangeError(`[WebGL2] invalid SVGA sprite metadata count: ${g}`);const Q=Math.floor(I);if(Q<8||Q%4!==0)throw new RangeError(`[WebGL2] invalid SVGA metadata stride: ${I}`);const E=new Float32Array(B*Q);if(A.length===B*4)for(let t=0;t<B;t++){const a=t*4,o=t*Q;E.set(A.subarray(a,a+4),o),E[o+4]=t,E[o+5]=0}else if(A.length===E.length)E.set(A);else throw new RangeError(`[WebGL2] SVGA sprite metadata requires ${B*4} or ${E.length} floats, got ${A.length}`);const i=this.createLinearFloatTableTexture(E,B*(Q/4),Q/4,"SVGA sprite metadata"),e=this.nextId++;return this.textures.set(e,{texture:i.texture,width:i.width,height:i.height}),{id:e,width:i.width,height:i.height}}createSVGAFrameTable(A,g){var I,B,Q,E,i,e;this.assertSVGAFrameTableSupport();const t=Math.floor(g.spriteCount),a=Math.floor(g.frameCount);if(t<1||a<1||!Number.isFinite(t)||!Number.isFinite(a))throw new RangeError(`[WebGL2] invalid SVGA frame table dimensions ${t}x${a}`);const o=t*a;if(!Number.isSafeInteger(o)||A.length!==o*Vg)throw new RangeError(`[WebGL2] SVGA frame table requires ${o*Vg} floats, got ${A.length}`);const s=this.createLinearFloatTableTexture(A,o*3,3,"SVGA frame table"),n=this.nextId++,r={id:n,width:s.width,height:s.height};this.textures.set(n,{texture:s.texture,width:s.width,height:s.height});let h=g.metadataTexture,c;try{if(h&&!this.textures.has(h.id))throw new Error(`WebGL2 SVGA sprite metadata texture ${h.id} is not owned by this backend`);if(h=h!=null?h:((I=g.spriteMetadata)!=null?I:g.metadata)?this.createSVGAFrameTableMetadata((B=g.spriteMetadata)!=null?B:g.metadata,t):void 0,!g.metadataTexture&&h&&this.ownedFrameTableMetadataIds.add(h.id),g.hybridSpriteMetadata){const F=g.hybridSpriteMetadata.length/II;if(!Number.isSafeInteger(F)||F<1)throw new RangeError("SVGA Hybrid sprite metadata must contain complete 12-float rows");c=this.createSVGAFrameTableMetadata(g.hybridSpriteMetadata,F,II),this.ownedFrameTableMetadataIds.add(c.id)}}catch(F){this.gl.deleteTexture(s.texture),this.textures.delete(n);for(const d of[h,c]){if(!d||!this.ownedFrameTableMetadataIds.has(d.id))continue;const y=this.textures.get(d.id);y&&this.gl.deleteTexture(y.texture),this.textures.delete(d.id),this.ownedFrameTableMetadataIds.delete(d.id)}throw F}const D=g.atlasPageCount,w=Number.isFinite(D)&&D>0?Math.floor(D):1,l={backend:"webgl2",kind:"webgl2-texture",texture:r,textureWidth:s.width,textureHeight:s.height,spriteCount:t,frameCount:a,atlasPageCount:w,strideFloats:Vg,byteLength:A.byteLength,...h?{spriteMetadataTexture:h}:{},...c?{hybridSpriteMetadataTexture:c}:{}};return this.frameTables.set(n,{texture:s.texture,width:s.width,height:s.height,metadataTexture:h&&(E=(Q=this.textures.get(h.id))==null?void 0:Q.texture)!=null?E:null,metadataWidth:(i=h==null?void 0:h.width)!=null?i:0,metadataHeight:(e=h==null?void 0:h.height)!=null?e:0,metadataOwned:!g.metadataTexture&&!!h,binding:l}),l}deleteSVGAFrameTable(A){var g,I,B,Q,E;if(!A||A.backend!=="webgl2")return;const i=A.texture.id,e=this.frameTables.get(i);if(e){this.gl.deleteTexture(e.texture),this.textures.delete(i);const t=(g=e.binding.spriteMetadataTexture)==null?void 0:g.id;if(e.metadataOwned&&t!=null&&t!==i){const o=this.textures.get(t);o&&this.gl.deleteTexture(o.texture),this.textures.delete(t),this.ownedFrameTableMetadataIds.delete(t)}const a=(I=e.binding.hybridSpriteMetadataTexture)==null?void 0:I.id;if(a!=null&&a!==i){const o=this.textures.get(a);o&&this.gl.deleteTexture(o.texture),this.textures.delete(a),this.ownedFrameTableMetadataIds.delete(a)}this.frameTables.delete(i)}else{const t=this.textures.get(i);t&&(this.gl.deleteTexture(t.texture),this.textures.delete(i));const a=(B=A.spriteMetadataTexture)==null?void 0:B.id;if(a!=null&&this.ownedFrameTableMetadataIds.has(a)){const s=this.textures.get(a);s&&this.gl.deleteTexture(s.texture),this.textures.delete(a),this.ownedFrameTableMetadataIds.delete(a)}const o=(Q=A.hybridSpriteMetadataTexture)==null?void 0:Q.id;if(o!=null&&this.ownedFrameTableMetadataIds.has(o)){const s=this.textures.get(o);s&&this.gl.deleteTexture(s.texture),this.textures.delete(o),this.ownedFrameTableMetadataIds.delete(o)}}this.cachedFrameTableId===i&&(this.cachedFrameTableId=null),this.cachedFrameMetadataId===((E=A.spriteMetadataTexture)==null?void 0:E.id)&&(this.cachedFrameMetadataId=null)}createEmptyTexture(A,g,I={}){const B=this.gl;B.activeTexture(B.TEXTURE0),this.cachedTex0Id=null;const Q=I.filter==="nearest"?B.NEAREST:B.LINEAR,E=WC(B,Q),i=Math.max(1,Math.floor(A)),e=Math.max(1,Math.floor(g));B.bindTexture(B.TEXTURE_2D,E),B.texImage2D(B.TEXTURE_2D,0,B.RGBA,i,e,0,B.RGBA,B.UNSIGNED_BYTE,null);const t=this.nextId++;return this.textures.set(t,{texture:E,width:i,height:e}),{id:t,width:i,height:e}}updateTexture(A,g){const I=this.textures.get(A.id);if(!I)return;if(this.gl.activeTexture(this.gl.TEXTURE0),this.cachedTex0Id=null,typeof VideoFrame!="undefined"&&g instanceof VideoFrame){const e=this.gl,t=vI(g),a=TI(g),o=t===I.width&&a===I.height;e.bindTexture(e.TEXTURE_2D,I.texture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),o?e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,g):(e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,g),t>0&&a>0&&(I.width=t,I.height=a)),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}if(g instanceof HTMLVideoElement){const e=g.videoWidth,t=g.videoHeight,a=e!==I.width||t!==I.height;this.uploadVideoFrameToTexture(I.texture,g,a)&&a&&(I.width=e,I.height=t);return}const B=this.gl,Q=vI(g),E=TI(g),i=Q===I.width&&E===I.height;B.bindTexture(B.TEXTURE_2D,I.texture),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,0),i?B.texSubImage2D(B.TEXTURE_2D,0,0,0,B.RGBA,B.UNSIGNED_BYTE,g):(B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,g),Q>0&&E>0&&(I.width=Q,I.height=E)),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,0)}updateTextureRegion(A,g,I,B,Q,E){const i=this.textures.get(A.id);if(!i)return;const e=this.gl;e.activeTexture(e.TEXTURE0),this.cachedTex0Id=null,e.bindTexture(e.TEXTURE_2D,i.texture);let t,a;if(typeof VideoFrame!="undefined"&&g instanceof VideoFrame)t=g.displayWidth||g.codedWidth,a=g.displayHeight||g.codedHeight;else if(g instanceof HTMLVideoElement){if(g.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)return;t=g.videoWidth,a=g.videoHeight}else{const n=g;t=n.width,a=n.height}if(!t||!a)return;const o=Q!=null?Q:t,s=E!=null?E:a;if(o!==t||s!==a){this.videoUploadCanvas||(this.videoUploadCanvas=document.createElement("canvas"),this.videoUploadCtx=this.videoUploadCanvas.getContext("2d"));const n=this.videoUploadCanvas,r=this.videoUploadCtx;if(!r)return;(n.width!==o||n.height!==s)&&(n.width=o,n.height=s),r.drawImage(g,0,0,o,s),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,n),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}if(typeof VideoFrame!="undefined"&&g instanceof VideoFrame){e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,g),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}if(g instanceof HTMLVideoElement){e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,g),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,g),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0)}deleteTexture(A){const g=this.textures.get(A.id);g&&(this.gl.deleteTexture(g.texture),this.textures.delete(A.id),this.cachedTex0Id===A.id&&(this.cachedTex0Id=null))}draw(A){var g;const I=A.shader;if(this.currentDrawResult=$("invalid-command",`WebGL2 rejected ${I}`),this.currentDrawRecorded=!1,this.contextLost)return this.currentDrawResult=$("backend-lost","WebGL2 context is lost"),this.rejectSVGAFastPathDraw(),this.currentDrawResult;try{if(I===gB||I==="svga-timeline-instanced-premul")return this.drawSVGAFrameTableGL(A),this.completeDrawResult();if(I==="svga-frame-table-shape-premul"||I==="svga-frame-table-clip-mask")return this.drawSVGAFrameTableMeshGL(A),this.completeDrawResult();if(A.shader==="svga-instanced-premul")return this.drawInstancedSvgaGL(A),this.completeDrawResult();if(A.shader==="clip-mask-instanced")return this.drawInstancedClipMaskGL(A),this.completeDrawResult();if(A.shader==="alpha-video-instanced")return this.drawInstancedAlphaGL(A),this.completeDrawResult();if(A.shader==="vap-instanced")return this.drawInstancedVapGL(A),this.completeDrawResult();if(A.shader==="particle-instanced")return this.drawInstancedParticlesGL(A),this.completeDrawResult();if(A.shader==="particle-sprite-instanced")return this.drawInstancedParticleSpritesGL(A),this.completeDrawResult();const B=this.gl,Q=(g=A.stencil)!=null?g:"none",E=A.shader==="clip-mask"||Q==="clear"?"clip-mask":A.shader,i=this.programs.get(E);if(!i)return this.rejectDrawResult("invalid-command",`WebGL2 shader unavailable: ${E}`);Q==="clear"?(B.enable(B.STENCIL_TEST),B.stencilFunc(B.ALWAYS,0,255),B.stencilOp(B.KEEP,B.KEEP,B.REPLACE),B.stencilMask(255),B.colorMask(!1,!1,!1,!1)):Q==="write"||A.shader==="clip-mask"?(B.enable(B.STENCIL_TEST),B.stencilFunc(B.ALWAYS,1,255),B.stencilOp(B.KEEP,B.KEEP,B.REPLACE),B.stencilMask(255),B.colorMask(!1,!1,!1,!1)):Q==="test"?(B.enable(B.STENCIL_TEST),B.stencilFunc(B.EQUAL,1,255),B.stencilOp(B.KEEP,B.KEEP,B.KEEP),B.stencilMask(0),B.colorMask(!0,!0,!0,!0)):(B.disable(B.STENCIL_TEST),B.colorMask(!0,!0,!0,!0)),this.cachedDrawProgram!==E&&(B.useProgram(i.program),this.cachedDrawProgram=E);for(let a=0;a<A.textures.length;a++){const o=A.textures[a].id;if(a===0&&this.cachedTex0Id===o)continue;const s=this.textures.get(o);if(!s)return this.rejectDrawResult("missing-resource",`WebGL2 texture ${o} is unavailable`);B.activeTexture(B.TEXTURE0+a),B.bindTexture(B.TEXTURE_2D,s.texture),a===0&&(this.cachedTex0Id=o)}this.applyDrawUniforms(i,E,A);const e=this.buffers.get(A.vertexBuffer.id),t=this.buffers.get(A.indexBuffer.id);return!e||!t?this.rejectDrawResult("missing-resource","WebGL2 draw buffer is unavailable"):(this.bindCachedVertexArray(E,A.vertexBuffer.id,A.indexBuffer.id)&&(B.bindBuffer(B.ARRAY_BUFFER,e.buffer),B.bindBuffer(B.ELEMENT_ARRAY_BUFFER,t.buffer),this.setupAttributes(E)),B.drawElements(B.TRIANGLES,A.indexCount,B.UNSIGNED_INT,0),this.recordSubmittedDraw(),(Q!=="none"||A.shader==="clip-mask")&&(B.disable(B.STENCIL_TEST),B.colorMask(!0,!0,!0,!0)),tg)}catch(B){return this.rejectDrawResult("submission-error",this.errorMessage(B))}}completeDrawResult(){return this.currentDrawRecorded||this.rejectSVGAFastPathDraw(),this.currentDrawResult}rejectDrawResult(A,g){return this.currentDrawResult=$(A,g),this.rejectSVGAFastPathDraw(),this.currentDrawResult}clearStencil(){const A=this.gl;A.stencilMask(255),A.clear(A.STENCIL_BUFFER_BIT)}setScissor(A,g,I,B){const Q=this.gl,E=this.canvas.width,i=this.canvas.height,e=Math.max(0,Math.min(E,Math.floor(A))),t=Math.max(0,Math.min(i,Math.floor(g))),a=Math.max(e,Math.min(E,Math.ceil(A+I))),o=Math.max(t,Math.min(i,Math.ceil(g+B)));Q.enable(Q.SCISSOR_TEST),Q.scissor(e,i-o,a-e,o-t)}resetScissor(){this.gl.disable(this.gl.SCISSOR_TEST)}setupAttributes(A){const g=this.gl;if(A===gB){g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,g.FLOAT,!1,8,0);for(let B=1;B<=9;B++)g.vertexAttribDivisor(B,0),g.disableVertexAttribArray(B)}else if(A==="svga-batch-premul"||A==="svga-frame-table-shape-premul")g.enableVertexAttribArray(0),g.vertexAttribPointer(0,3,g.FLOAT,!1,36,0),g.enableVertexAttribArray(1),g.vertexAttribPointer(1,4,g.FLOAT,!1,36,12),g.enableVertexAttribArray(2),g.vertexAttribPointer(2,2,g.FLOAT,!1,36,28);else if(A==="vap")g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,g.FLOAT,!1,24,0),g.enableVertexAttribArray(1),g.vertexAttribPointer(1,2,g.FLOAT,!1,24,8),g.enableVertexAttribArray(2),g.vertexAttribPointer(2,2,g.FLOAT,!1,24,16);else if(A==="clip-mask"||A==="svga-frame-table-clip-mask")g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,g.FLOAT,!1,8,0),g.disableVertexAttribArray(1),g.disableVertexAttribArray(2);else{g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,g.FLOAT,!1,16,0),g.enableVertexAttribArray(1),g.vertexAttribPointer(1,2,g.FLOAT,!1,16,8);for(let B=2;B<=9;B++)g.vertexAttribDivisor(B,0),g.disableVertexAttribArray(B)}}bindCachedVertexArray(A,g,I){const B=this.gl;let Q=this.vertexArrays.get(A);Q||(Q=new Map,this.vertexArrays.set(A,Q));let E=Q.get(g);E||(E=new Map,Q.set(g,E));const i=E.get(I);if(i)return B.bindVertexArray(i),!1;const e=B.createVertexArray();if(!e)throw new Error("Failed to create vertex array");return E.set(I,e),B.bindVertexArray(e),!0}deleteVertexArraysForBuffer(A){const g=this.gl;for(const[I,B]of this.vertexArrays){for(const[Q,E]of B){if(Q===A){for(const e of E.values())g.deleteVertexArray(e);B.delete(Q);continue}const i=E.get(A);i&&(g.deleteVertexArray(i),E.delete(A)),E.size===0&&B.delete(Q)}B.size===0&&this.vertexArrays.delete(I)}}deleteAllVertexArrays(){for(const A of this.vertexArrays.values())for(const g of A.values())for(const I of g.values())this.gl.deleteVertexArray(I);this.vertexArrays.clear()}ensureInstancedSvgaInstanceBuffer(){const A=this.gl;if(!this.instancedSvgaInstanceGLBuffer){const g=A.createBuffer();if(!g)throw new Error("createBuffer failed");A.bindVertexArray(null),A.bindBuffer(A.ARRAY_BUFFER,g),A.bufferData(A.ARRAY_BUFFER,bA.INST_SVGA_GL_BYTES,A.DYNAMIC_DRAW),this.instancedSvgaInstanceGLBuffer=g}return this.instancedSvgaInstanceGLBuffer}uploadSVGASlotStates(A,g,I=-1){const B=this.gl,Q=g*4;if(g<1||A.length<g*$A||Q<1)return null;const E=Math.min(this.maxTextureSize,Math.max(4,2**Math.ceil(Math.log2(Q)))),i=Math.ceil(Q/E);if(i>this.maxTextureSize||!this.svgaSlotStateTexture&&(this.svgaSlotStateTexture=B.createTexture(),!this.svgaSlotStateTexture))return null;if(B.activeTexture(B.TEXTURE3),B.bindTexture(B.TEXTURE_2D,this.svgaSlotStateTexture),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_MIN_FILTER,B.NEAREST),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_MAG_FILTER,B.NEAREST),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_WRAP_S,B.CLAMP_TO_EDGE),B.texParameteri(B.TEXTURE_2D,B.TEXTURE_WRAP_T,B.CLAMP_TO_EDGE),(this.svgaSlotStateTextureWidth!==E||this.svgaSlotStateTextureHeight!==i)&&(B.texImage2D(B.TEXTURE_2D,0,B.RGBA32F,E,i,0,B.RGBA,B.FLOAT,null),this.svgaSlotStateTextureWidth=E,this.svgaSlotStateTextureHeight=i),I>=0&&this.svgaSlotStateUploadId===I)return{width:E,height:i};const e=E*i*4,t=A.subarray(0,g*$A);let a=t;return e!==t.length&&(this.svgaSlotStateUploadScratch.length<e&&(this.svgaSlotStateUploadScratch=new Float32Array(e)),this.svgaSlotStateUploadScratch.fill(0,0,e),this.svgaSlotStateUploadScratch.set(t),a=this.svgaSlotStateUploadScratch.subarray(0,e)),B.texSubImage2D(B.TEXTURE_2D,0,0,0,E,i,B.RGBA,B.FLOAT,a,0),this.performanceSVGADynamicUploadWrites++,this.performanceSVGADynamicUploadBytes+=g*$A*Float32Array.BYTES_PER_ELEMENT,this.svgaSlotStateUploadId=I,{width:E,height:i}}resolveSVGAFrameTableSlotState(A,g){var I,B,Q,E,i,e,t,a,o,s,n,r,h,c,D,w,l,F,d,y,G,f,u,R,M,N,S,Y,U,k,m,J,q,_,Z,x,X,T,gA,UA,yA,rA,BA,Ig,QA,V,YA,kA,W,pA,LA,ag,OA,KA,vA;const sA=A.uniforms,L=(B=(I=A.svgaFrameTableSlotState)!=null?I:A.svgaSlotState)!=null?B:sA.u_svgaSlotState instanceof Float32Array?sA.u_svgaSlotState:sA.u_slotState instanceof Float32Array?sA.u_slotState:null,EA=sA.u_transform,Bg=sA.u_clipRect,AA=A.svgaFrameTableParentAffine,DA=A.svgaFrameTableParentTranslate,IA=A.svgaFrameTableClipRect,mg=A.svgaFrameIndex!=null||A.svgaFrameTableFrameIndex!=null||A.frameTableFrameIndex!=null,Jg=A.svgaFrameTableOpacity!=null||typeof sA.u_opacity=="number";let Cg=1,GA=0,fA=0,dA=1,iA=0,eA=0,tA=(Q=A.svgaFrameTableOpacity)!=null?Q:typeof sA.u_opacity=="number"?sA.u_opacity:1,hA=(e=(i=(E=A.svgaFrameIndex)!=null?E:A.svgaFrameTableFrameIndex)!=null?i:A.frameTableFrameIndex)!=null?e:0,aA=0,nA=0,RA=this.canvas.width,uA=this.canvas.height,TA=0,Qg=(n=(s=(o=(a=(t=A.svgaFrameTableMetadataBase)!=null?t:A.svgaFrameTableSpriteBase)!=null?a:A.frameTableSpriteBase)!=null?o:A.svgaSpriteMetadataBase)!=null?s:A.svgaSpriteBase)!=null?n:0,Og=(r=A.svgaFrameTableAtlasPage)!=null?r:-1;if(AA&&AA.length>=4)Cg=(h=AA[0])!=null?h:Cg,GA=(c=AA[1])!=null?c:GA,fA=(D=AA[2])!=null?D:fA,dA=(w=AA[3])!=null?w:dA,DA&&DA.length>=2&&(iA=(l=DA[0])!=null?l:iA,eA=(F=DA[1])!=null?F:eA),IA&&IA.length>=4&&(aA=(d=IA[0])!=null?d:aA,nA=(y=IA[1])!=null?y:nA,RA=(G=IA[2])!=null?G:RA,uA=(f=IA[3])!=null?f:uA,TA=1);else if(L&&L.length>=13)Cg=(u=L[0])!=null?u:Cg,GA=(R=L[1])!=null?R:GA,fA=(M=L[2])!=null?M:fA,dA=(N=L[3])!=null?N:dA,iA=(S=L[4])!=null?S:iA,eA=(Y=L[5])!=null?Y:eA,Jg||(tA=(U=L[6])!=null?U:tA),mg||(hA=(k=L[7])!=null?k:hA),aA=(m=L[8])!=null?m:aA,nA=(J=L[9])!=null?J:nA,RA=(q=L[10])!=null?q:RA,uA=(_=L[11])!=null?_:uA,TA=((Z=L[12])!=null?Z:0)>.5?1:0,A.svgaFrameTableMetadataBase==null&&A.svgaFrameTableSpriteBase==null&&A.frameTableSpriteBase==null&&A.svgaSpriteMetadataBase==null&&A.svgaSpriteBase==null&&L.length>=14&&(Qg=(x=L[13])!=null?x:Qg);else if(EA instanceof Float32Array&&EA.length>=16){Cg=(X=EA[0])!=null?X:Cg,GA=(T=EA[1])!=null?T:GA,fA=(gA=EA[4])!=null?gA:fA,dA=(UA=EA[5])!=null?UA:dA,iA=(yA=EA[12])!=null?yA:iA,eA=(rA=EA[13])!=null?rA:eA;const PA=Bg instanceof Float32Array&&Bg.length>=4?Bg:IA;PA&&PA.length>=4&&(aA=(BA=PA[0])!=null?BA:aA,nA=(Ig=PA[1])!=null?Ig:nA,RA=(QA=PA[2])!=null?QA:RA,uA=(V=PA[3])!=null?V:uA,TA=typeof sA.u_clipEnabled=="number"?sA.u_clipEnabled>.5?1:0:1)}return AA&&L&&L.length>=13&&(DA||(iA=(YA=L[4])!=null?YA:iA,eA=(kA=L[5])!=null?kA:eA),Jg||(tA=(W=L[6])!=null?W:tA),mg||(hA=(pA=L[7])!=null?pA:hA),IA||(aA=(LA=L[8])!=null?LA:aA,nA=(ag=L[9])!=null?ag:nA,RA=(OA=L[10])!=null?OA:RA,uA=(KA=L[11])!=null?KA:uA,TA=((vA=L[12])!=null?vA:0)>.5?1:0)),Number.isFinite(tA)||(tA=1),Number.isFinite(hA)||(hA=0),Number.isFinite(Qg)||(Qg=0),Number.isFinite(Og)||(Og=-1),hA=Math.max(0,Math.min(Math.max(1,g)-1,Math.floor(hA))),Qg=Math.max(0,Math.floor(Qg)),[Cg,GA,fA,dA,iA,eA,tA,aA,nA,RA,uA].every(Number.isFinite)?{parentA:Cg,parentB:GA,parentC:fA,parentD:dA,tx:iA,ty:eA,opacity:tA,frameIndex:hA,clipX0:aA,clipY0:nA,clipX1:RA,clipY1:uA,clipEnabled:TA,metadataBase:Qg,atlasPage:Math.max(-1,Math.floor(Og))}:null}drawSVGAFrameTableGL(A){var g,I,B,Q,E,i,e,t,a,o,s,n,r,h,c,D,w,l,F,d,y,G,f,u;const R=this.gl;if(!this.svgaFrameTableSupported){this.rejectSVGAFastPathDraw();return}const M=(g=A.svgaFrameTable)!=null?g:null,N=M&&typeof M=="object"&&"backend"in M?M:null,S=(E=(Q=(B=(I=(N==null?void 0:N.backend)==="webgl2"?N.texture:null)!=null?I:M&&"id"in M?M:null)!=null?B:A.svgaFrameTableTexture)!=null?Q:A.frameTableTexture)!=null?E:null;if(!S){this.rejectSVGAFastPathDraw();return}const Y=this.frameTables.get(S.id);if(!Y){this.rejectSVGAFastPathDraw();return}const U=(a=(e=(i=A.svgaSpriteMetadataTexture)!=null?i:A.svgaSpriteMetadata)!=null?e:A.spriteMetadataTexture)!=null?a:(N==null?void 0:N.backend)==="webgl2"&&(t=N.spriteMetadataTexture)!=null?t:null;if(!U){this.rejectSVGAFastPathDraw();return}const k=this.textures.get(U.id);if(!k){this.rejectSVGAFastPathDraw();return}const m=(o=A.svgaFrameTableFrameCount)!=null?o:A.frameTableFrameCount,J=(s=A.svgaFrameTableSpriteCount)!=null?s:A.frameTableSpriteCount,q=Math.floor(Number.isFinite(m)?m:(N==null?void 0:N.backend)==="webgl2"?N.frameCount:0),_=Math.floor(Number.isFinite(J)?J:(N==null?void 0:N.backend)==="webgl2"?N.spriteCount:0),Z=Math.floor((n=A.instanceCount)!=null?n:0),x=A.instanceData,X=A.svgaFrameTableSlotStates,T=Math.floor((r=A.svgaFrameTableSlotStateCount)!=null?r:0),gA=Math.floor((h=A.svgaFrameTableSpritesPerSlot)!=null?h:0),UA=X!=null&&T>0&&gA>0&&T*gA===Z&&X.length>=T*$A,yA=!UA&&x!=null&&x.length>=Z*$A,rA=Y.width*Y.height,BA=k.width*k.height,QA=Math.floor((c=A.svgaSpriteMetadataStrideFloats)!=null?c:VC)/4,V=this.resolveSVGAFrameTableSlotState(A,q);let YA=(D=V==null?void 0:V.metadataBase)!=null?D:-1;if(V)if(UA)YA+=gA;else if(yA){let AA=-1;for(let DA=0;DA<Z;DA++){const IA=Math.floor((w=x[DA*$A+Ng.metadataBase])!=null?w:-1);IA>AA&&(AA=IA)}YA=AA+1}else YA+=Z;if(Z<1||Z>2048||q<1||_<1||!Number.isSafeInteger(q)||!Number.isSafeInteger(_)||!Number.isSafeInteger(QA)||QA<2||q*_*3>rA||!V||V.metadataBase<0||YA<1||YA*QA>BA){this.rejectSVGAFastPathDraw();return}const kA=gB,W=this.programs.get(kA);if(!W){this.rejectSVGAFastPathDraw();return}const pA=A.textures[0],LA=pA?this.textures.get(pA.id):null;if(!LA){this.rejectSVGAFastPathDraw();return}const ag=(l=A.stencil)!=null?l:"none";ag==="test"?(R.enable(R.STENCIL_TEST),R.stencilFunc(R.EQUAL,1,255),R.stencilOp(R.KEEP,R.KEEP,R.KEEP),R.stencilMask(0),R.colorMask(!0,!0,!0,!0)):(R.disable(R.STENCIL_TEST),R.colorMask(!0,!0,!0,!0)),this.cachedDrawProgram!==kA&&(R.useProgram(W.program),this.cachedDrawProgram=kA),R.activeTexture(R.TEXTURE0),this.cachedTex0Id!==pA.id&&(R.bindTexture(R.TEXTURE_2D,LA.texture),this.cachedTex0Id=pA.id),R.activeTexture(R.TEXTURE1),this.cachedFrameTableId!==S.id&&(R.bindTexture(R.TEXTURE_2D,Y.texture),this.cachedFrameTableId=S.id),R.activeTexture(R.TEXTURE2),this.cachedFrameMetadataId!==U.id&&(R.bindTexture(R.TEXTURE_2D,k.texture),this.cachedFrameMetadataId=U.id);let OA=null;if(UA&&(OA=this.uploadSVGASlotStates(X,T,A.svgaFrameTableSlotStateUploadId),!OA)){this.rejectSVGAFastPathDraw();return}this.applyProjectionUniform(W,kA,A.uniforms.u_projection);const KA=this.svgaTableInfoScratch;KA[0]=q,KA[1]=_,KA[2]=3,KA[3]=0;const vA=this.svgaTableSizeScratch;vA[0]=Y.width,vA[1]=Y.height;const sA=this.svgaMetadataSizeScratch;sA[0]=k.width,sA[1]=k.height;const L=R;if(W.tableInfoLoc&&((F=L.uniform4iv)==null||F.call(L,W.tableInfoLoc,KA)),W.frameTableSizeLoc&&((d=L.uniform2iv)==null||d.call(L,W.frameTableSizeLoc,vA)),W.spriteMetadataSizeLoc&&((y=L.uniform2iv)==null||y.call(L,W.spriteMetadataSizeLoc,sA)),W.spriteMetadataStrideLoc&&R.uniform1i(W.spriteMetadataStrideLoc,QA),W.spriteBaseLoc&&R.uniform1i(W.spriteBaseLoc,V.metadataBase),W.frameIndexLoc&&R.uniform1i(W.frameIndexLoc,V.frameIndex),W.parentAffineLoc&&R.uniform4f(W.parentAffineLoc,V.parentA,V.parentB,V.parentC,V.parentD),W.parentTranslateLoc&&R.uniform2f(W.parentTranslateLoc,V.tx,V.ty),W.slotOpacityLoc&&R.uniform1f(W.slotOpacityLoc,V.opacity),W.atlasPageLoc&&R.uniform1i(W.atlasPageLoc,V.atlasPage),W.clipRectLoc&&R.uniform4f(W.clipRectLoc,V.clipX0,V.clipY0,V.clipX1,V.clipY1),W.clipEnabledLoc&&R.uniform1f(W.clipEnabledLoc,V.clipEnabled),W.canvasHeightLoc&&R.uniform1f(W.canvasHeightLoc,this.canvas.height),W.instanceStateEnabledLoc&&R.uniform1f(W.instanceStateEnabledLoc,yA?1:0),W.compactSlotStateEnabledLoc&&R.uniform1f(W.compactSlotStateEnabledLoc,UA?1:0),W.spritesPerSlotLoc&&R.uniform1i(W.spritesPerSlotLoc,UA?gA:1),W.slotStateSizeLoc){const AA=new Int32Array([(G=OA==null?void 0:OA.width)!=null?G:1,(f=OA==null?void 0:OA.height)!=null?f:1]);(u=L.uniform2iv)==null||u.call(L,W.slotStateSizeLoc,AA)}const EA=this.buffers.get(A.vertexBuffer.id),Bg=this.buffers.get(A.indexBuffer.id);if(!EA||!Bg){this.rejectSVGAFastPathDraw();return}if(this.bindCachedVertexArray(kA,A.vertexBuffer.id,A.indexBuffer.id)&&(R.bindBuffer(R.ARRAY_BUFFER,EA.buffer),R.bindBuffer(R.ELEMENT_ARRAY_BUFFER,Bg.buffer),this.setupAttributes(kA)),yA){const AA=this.ensureInstancedSvgaInstanceBuffer();R.bindBuffer(R.ARRAY_BUFFER,AA),R.bufferSubData(R.ARRAY_BUFFER,0,x,0,Z*$A),this.performanceSVGADynamicUploadWrites++,this.performanceSVGADynamicUploadBytes+=Z*$A*Float32Array.BYTES_PER_ELEMENT;const DA=16*Float32Array.BYTES_PER_ELEMENT;for(let IA=1;IA<=4;IA++)R.enableVertexAttribArray(IA),R.vertexAttribPointer(IA,4,R.FLOAT,!1,DA,(IA-1)*4*Float32Array.BYTES_PER_ELEMENT),R.vertexAttribDivisor(IA,1)}else for(let AA=1;AA<=4;AA++)R.disableVertexAttribArray(AA),R.vertexAttribDivisor(AA,0);R.drawElementsInstanced(R.TRIANGLES,A.indexCount,R.UNSIGNED_INT,0,Z),this.recordSubmittedDraw(),ag!=="none"&&(R.disable(R.STENCIL_TEST),R.colorMask(!0,!0,!0,!0))}drawSVGAFrameTableMeshGL(A){var g,I,B,Q,E,i,e,t,a,o,s,n,r,h;const c=this.gl;if(!this.svgaFrameTableSupported)return;const D=(g=A.svgaFrameTable)!=null?g:null,w=D&&typeof D=="object"&&"backend"in D?D:null,l=(w==null?void 0:w.backend)==="webgl2"?w.texture:(I=A.svgaFrameTableTexture)!=null?I:null;if(!l)return;const F=this.frameTables.get(l.id);if(!F)return;const d=Math.floor((Q=(B=A.svgaFrameTableFrameCount)!=null?B:w==null?void 0:w.frameCount)!=null?Q:0),y=Math.floor((i=(E=A.svgaFrameTableSpriteCount)!=null?E:w==null?void 0:w.spriteCount)!=null?i:0),G=Math.floor((e=A.instanceCount)!=null?e:1),f=A.svgaFrameTableSlotStates,u=Math.floor((t=A.svgaFrameTableSlotStateCount)!=null?t:0),R=f!=null&&u===G&&A.svgaFrameTableSpritesPerSlot===1&&f.length>=u*$A,M=this.resolveSVGAFrameTableSlotState(A,d);if(!M||d<1||y<1||G<1||G>2048)return;const N=A.shader,S=this.programs.get(N);if(!S)return;const Y=(a=A.stencil)!=null?a:"none";Y==="clear"?(c.enable(c.STENCIL_TEST),c.stencilFunc(c.ALWAYS,0,255),c.stencilOp(c.KEEP,c.KEEP,c.REPLACE),c.stencilMask(255),c.colorMask(!1,!1,!1,!1)):Y==="write"?(c.enable(c.STENCIL_TEST),c.stencilFunc(c.ALWAYS,1,255),c.stencilOp(c.KEEP,c.KEEP,c.REPLACE),c.stencilMask(255),c.colorMask(!1,!1,!1,!1)):Y==="test"?(c.enable(c.STENCIL_TEST),c.stencilFunc(c.EQUAL,1,255),c.stencilOp(c.KEEP,c.KEEP,c.KEEP),c.stencilMask(0),c.colorMask(!0,!0,!0,!0)):(c.disable(c.STENCIL_TEST),c.colorMask(!0,!0,!0,!0)),this.cachedDrawProgram!==N&&(c.useProgram(S.program),this.cachedDrawProgram=N),c.activeTexture(c.TEXTURE0),this.cachedTex0Id!==l.id&&(c.bindTexture(c.TEXTURE_2D,F.texture),this.cachedTex0Id=l.id),this.applyProjectionUniform(S,N,A.uniforms.u_projection),this.svgaTableInfoScratch[0]=d,this.svgaTableInfoScratch[1]=y,this.svgaTableInfoScratch[2]=3,this.svgaTableInfoScratch[3]=0,this.svgaTableSizeScratch[0]=F.width,this.svgaTableSizeScratch[1]=F.height;const U=c;S.tableInfoLoc&&((o=U.uniform4iv)==null||o.call(U,S.tableInfoLoc,this.svgaTableInfoScratch)),S.frameTableSizeLoc&&((s=U.uniform2iv)==null||s.call(U,S.frameTableSizeLoc,this.svgaTableSizeScratch)),S.spriteBaseLoc&&c.uniform1i(S.spriteBaseLoc,M.metadataBase),S.frameIndexLoc&&c.uniform1i(S.frameIndexLoc,M.frameIndex),S.parentAffineLoc&&c.uniform4f(S.parentAffineLoc,M.parentA,M.parentB,M.parentC,M.parentD),S.parentTranslateLoc&&c.uniform2f(S.parentTranslateLoc,M.tx,M.ty),S.slotOpacityLoc&&c.uniform1f(S.slotOpacityLoc,M.opacity),S.clipRectLoc&&c.uniform4f(S.clipRectLoc,M.clipX0,M.clipY0,M.clipX1,M.clipY1),S.clipEnabledLoc&&c.uniform1f(S.clipEnabledLoc,M.clipEnabled),S.canvasHeightLoc&&c.uniform1f(S.canvasHeightLoc,this.canvas.height);let k=null;if(R&&(k=this.uploadSVGASlotStates(f,u,A.svgaFrameTableSlotStateUploadId),!k))return;S.compactSlotStateEnabledLoc&&c.uniform1f(S.compactSlotStateEnabledLoc,R?1:0),S.slotStateSizeLoc&&(this.svgaTableSizeScratch[0]=(n=k==null?void 0:k.width)!=null?n:1,this.svgaTableSizeScratch[1]=(r=k==null?void 0:k.height)!=null?r:1,(h=U.uniform2iv)==null||h.call(U,S.slotStateSizeLoc,this.svgaTableSizeScratch));const m=this.buffers.get(A.vertexBuffer.id),J=this.buffers.get(A.indexBuffer.id);!m||!J||(this.bindCachedVertexArray(N,A.vertexBuffer.id,A.indexBuffer.id)&&(c.bindBuffer(c.ARRAY_BUFFER,m.buffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,J.buffer),this.setupAttributes(N)),c.drawElementsInstanced(c.TRIANGLES,A.indexCount,c.UNSIGNED_INT,0,G),this.recordSubmittedDraw(),Y!=="none"&&(c.disable(c.STENCIL_TEST),c.colorMask(!0,!0,!0,!0)))}drawInstancedParticlesGL(A){var g;const I=this.gl,B=(g=A.instanceCount)!=null?g:0;if(B<1||!A.instanceBuffer)return;const Q=this.buffers.get(A.instanceBuffer.id),E=this.buffers.get(A.vertexBuffer.id),i=this.buffers.get(A.indexBuffer.id),e=this.programs.get("particle-instanced");if(!Q||!E||!i||!e)return;I.useProgram(e.program),this.cachedDrawProgram="particle-instanced",this.applyProjectionUniform(e,"particle-instanced",A.uniforms.u_projection);const t=A.uniforms.u_time,a=A.uniforms.u_particleSize,o=A.uniforms.u_globalAlpha;I.uniform1f(I.getUniformLocation(e.program,"u_time"),typeof t=="number"?t:0),I.uniform1f(I.getUniformLocation(e.program,"u_particleSize"),typeof a=="number"?a:8),I.uniform1f(I.getUniformLocation(e.program,"u_globalAlpha"),typeof o=="number"?o:1),I.bindVertexArray(null),I.bindBuffer(I.ARRAY_BUFFER,E.buffer),I.enableVertexAttribArray(0),I.vertexAttribPointer(0,2,I.FLOAT,!1,8,0),I.vertexAttribDivisor(0,0),I.bindBuffer(I.ARRAY_BUFFER,Q.buffer);const s=64;for(let n=1;n<=4;n++)I.enableVertexAttribArray(n),I.vertexAttribPointer(n,4,I.FLOAT,!1,s,16+(n-1)*16),I.vertexAttribDivisor(n,1);I.bindBuffer(I.ELEMENT_ARRAY_BUFFER,i.buffer),I.blendFunc(I.ONE,A.particleBlend==="additive"?I.ONE:I.ONE_MINUS_SRC_ALPHA),I.drawElementsInstanced(I.TRIANGLES,A.indexCount,I.UNSIGNED_INT,0,B),this.recordSubmittedDraw(),I.blendFunc(I.ONE,I.ONE_MINUS_SRC_ALPHA)}drawInstancedParticleSpritesGL(A){var g;const I=this.gl,B=(g=A.instanceCount)!=null?g:0;if(B<1||!A.instanceBuffer||!A.textures[0])return;const Q=this.buffers.get(A.instanceBuffer.id),E=this.buffers.get(A.vertexBuffer.id),i=this.buffers.get(A.indexBuffer.id),e=this.textures.get(A.textures[0].id);if(!Q||!E||!i||!e)return;const t=this.ensureParticleSpriteProgram();I.useProgram(t.program),this.cachedDrawProgram="particle-sprite-instanced",this.applyProjectionUniform(t,"particle-sprite-instanced",A.uniforms.u_projection);const a=A.uniforms.u_time,o=A.uniforms.u_globalAlpha,s=A.uniforms.u_sizeEnvelope,n=A.uniforms.u_fadeMode,r=A.uniforms.u_cssScale;t.particleTimeLoc&&I.uniform1f(t.particleTimeLoc,typeof a=="number"?a:0),t.particleGlobalAlphaLoc&&I.uniform1f(t.particleGlobalAlphaLoc,typeof o=="number"?o:1),t.particleSizeEnvelopeLoc&&I.uniform1f(t.particleSizeEnvelopeLoc,typeof s=="number"?s:1),t.particleFadeModeLoc&&I.uniform1f(t.particleFadeModeLoc,typeof n=="number"?n:1),t.particleCssScaleLoc&&I.uniform2fv(t.particleCssScaleLoc,r instanceof Float32Array&&r.length>=2?r:qi),I.activeTexture(I.TEXTURE0),I.bindTexture(I.TEXTURE_2D,e.texture),this.cachedTex0Id=A.textures[0].id,I.bindVertexArray(null),I.bindBuffer(I.ARRAY_BUFFER,E.buffer),I.enableVertexAttribArray(0),I.vertexAttribPointer(0,2,I.FLOAT,!1,8,0),I.vertexAttribDivisor(0,0),I.bindBuffer(I.ARRAY_BUFFER,Q.buffer);const h=96;for(let c=1;c<=6;c++)I.enableVertexAttribArray(c),I.vertexAttribPointer(c,4,I.FLOAT,!1,h,32+(c-1)*16),I.vertexAttribDivisor(c,1);I.bindBuffer(I.ELEMENT_ARRAY_BUFFER,i.buffer),I.blendFunc(I.ONE,A.particleBlend==="additive"?I.ONE:I.ONE_MINUS_SRC_ALPHA),I.drawElementsInstanced(I.TRIANGLES,A.indexCount,I.UNSIGNED_INT,0,B),this.recordSubmittedDraw(),I.blendFunc(I.ONE,I.ONE_MINUS_SRC_ALPHA)}drawInstancedSvgaGL(A){var g,I;const B=this.gl,Q=(g=A.instanceCount)!=null?g:0,E=A.instanceData;if(Q<1||!E||E.length<Q*bA.INST_SVGA_GL_FLOATS)return;if(Q>bA.INST_SVGA_GL_MAX){console.warn("[WebGL2] svga-instanced-premul: instanceCount exceeds max",Q);return}const i=(I=A.stencil)!=null?I:"none";i==="test"?(B.enable(B.STENCIL_TEST),B.stencilFunc(B.EQUAL,1,255),B.stencilOp(B.KEEP,B.KEEP,B.KEEP),B.stencilMask(0),B.colorMask(!0,!0,!0,!0)):(B.disable(B.STENCIL_TEST),B.colorMask(!0,!0,!0,!0));const e="svga-instanced-premul",t=this.programs.get(e);if(!t)return;this.cachedDrawProgram!==e&&(B.useProgram(t.program),this.cachedDrawProgram=e);for(let n=0;n<A.textures.length;n++){const r=A.textures[n].id;if(n===0&&this.cachedTex0Id===r)continue;const h=this.textures.get(r);h&&(B.activeTexture(B.TEXTURE0+n),B.bindTexture(B.TEXTURE_2D,h.texture),n===0&&(this.cachedTex0Id=r))}this.applyProjectionUniform(t,e,A.uniforms.u_projection);const a=this.buffers.get(A.vertexBuffer.id),o=this.buffers.get(A.indexBuffer.id);if(!a||!o)return;const s=this.ensureInstancedSvgaInstanceBuffer();if(B.bindBuffer(B.ARRAY_BUFFER,s),B.bufferSubData(B.ARRAY_BUFFER,0,E,0,Q*bA.INST_SVGA_GL_FLOATS),this.performanceSVGADynamicUploadWrites++,this.performanceSVGADynamicUploadBytes+=Q*bA.INST_SVGA_GL_FLOATS*Float32Array.BYTES_PER_ELEMENT,this.bindCachedVertexArray(e,A.vertexBuffer.id,A.indexBuffer.id)){const n=bA.INST_SVGA_GL_STRIDE;B.bindBuffer(B.ARRAY_BUFFER,s),B.enableVertexAttribArray(1),B.vertexAttribPointer(1,4,B.FLOAT,!1,n,0),B.vertexAttribDivisor(1,1),B.enableVertexAttribArray(2),B.vertexAttribPointer(2,3,B.FLOAT,!1,n,16),B.vertexAttribDivisor(2,1),B.enableVertexAttribArray(3),B.vertexAttribPointer(3,4,B.FLOAT,!1,n,28),B.vertexAttribDivisor(3,1),B.enableVertexAttribArray(4),B.vertexAttribIPointer(4,2,B.UNSIGNED_INT,n,44),B.vertexAttribDivisor(4,1),B.bindBuffer(B.ARRAY_BUFFER,a.buffer),B.enableVertexAttribArray(0),B.vertexAttribPointer(0,2,B.FLOAT,!1,8,0),B.vertexAttribDivisor(0,0),B.bindBuffer(B.ELEMENT_ARRAY_BUFFER,o.buffer)}B.drawElementsInstanced(B.TRIANGLES,A.indexCount,B.UNSIGNED_INT,0,Q),this.recordSubmittedDraw(),i!=="none"&&(B.disable(B.STENCIL_TEST),B.colorMask(!0,!0,!0,!0))}ensureInstancedClipMaskBuffer(){const A=this.gl;if(!this.instancedClipMaskGLBuffer){const g=A.createBuffer();if(!g)throw new Error("createBuffer failed");A.bindVertexArray(null),A.bindBuffer(A.ARRAY_BUFFER,g),A.bufferData(A.ARRAY_BUFFER,bA.INST_CLIP_MASK_GL_BYTES,A.DYNAMIC_DRAW),this.instancedClipMaskGLBuffer=g}return this.instancedClipMaskGLBuffer}drawInstancedClipMaskGL(A){var g,I;const B=this.gl,Q=(g=A.instanceCount)!=null?g:0,E=A.instanceData;if(Q<1||!E||E.length<Q*bA.INST_CLIP_MASK_GL_FLOATS)return;if(Q>bA.INST_CLIP_MASK_GL_MAX){console.warn("[WebGL2] clip-mask-instanced: instanceCount exceeds max",Q);return}const i="clip-mask-instanced",e=this.programs.get(i);if(!e)return;const t=this.buffers.get(A.vertexBuffer.id),a=this.buffers.get(A.indexBuffer.id);if(!t||!a)return;const o=(I=A.stencil)!=null?I:"write";B.enable(B.STENCIL_TEST),B.stencilFunc(B.ALWAYS,o==="clear"?0:1,255),B.stencilOp(B.KEEP,B.KEEP,B.REPLACE),B.stencilMask(255),B.colorMask(!1,!1,!1,!1),this.cachedDrawProgram!==i&&(B.useProgram(e.program),this.cachedDrawProgram=i),this.applyProjectionUniform(e,i,A.uniforms.u_projection);const s=this.ensureInstancedClipMaskBuffer();if(B.bindBuffer(B.ARRAY_BUFFER,s),o!=="clear"&&B.bufferSubData(B.ARRAY_BUFFER,0,E,0,Q*bA.INST_CLIP_MASK_GL_FLOATS),this.bindCachedVertexArray(i,A.vertexBuffer.id,A.indexBuffer.id)){const n=bA.INST_CLIP_MASK_GL_STRIDE;B.bindBuffer(B.ARRAY_BUFFER,s),B.enableVertexAttribArray(1),B.vertexAttribPointer(1,4,B.FLOAT,!1,n,0),B.vertexAttribDivisor(1,1),B.enableVertexAttribArray(2),B.vertexAttribPointer(2,2,B.FLOAT,!1,n,16),B.vertexAttribDivisor(2,1),B.bindBuffer(B.ARRAY_BUFFER,t.buffer),B.enableVertexAttribArray(0),B.vertexAttribPointer(0,2,B.FLOAT,!1,8,0),B.vertexAttribDivisor(0,0),B.bindBuffer(B.ELEMENT_ARRAY_BUFFER,a.buffer)}B.drawElementsInstanced(B.TRIANGLES,A.indexCount,B.UNSIGNED_INT,0,Q),this.recordSubmittedDraw(),B.disable(B.STENCIL_TEST),B.colorMask(!0,!0,!0,!0)}ensureInstancedAlphaInstanceBuffer(){const A=this.gl;if(!this.instancedAlphaInstanceGLBuffer){const g=A.createBuffer();if(!g)throw new Error("createBuffer failed");A.bindVertexArray(null),A.bindBuffer(A.ARRAY_BUFFER,g),A.bufferData(A.ARRAY_BUFFER,bA.INST_ALPHA_GL_BYTES,A.DYNAMIC_DRAW),this.instancedAlphaInstanceGLBuffer=g}return this.instancedAlphaInstanceGLBuffer}drawInstancedAlphaGL(A){var g;const I=this.gl,B=(g=A.instanceCount)!=null?g:0,Q=A.instanceData;if(B<1||!Q||Q.length<B*12)return;if(B>bA.INST_ALPHA_GL_MAX){console.warn("[WebGL2] alpha-video-instanced: instanceCount exceeds max",B);return}I.disable(I.STENCIL_TEST),I.colorMask(!0,!0,!0,!0);const E="alpha-video-instanced",i=this.programs.get("alpha-video-instanced");if(!i)return;this.cachedDrawProgram!==E&&(I.useProgram(i.program),this.cachedDrawProgram=E);for(let o=0;o<A.textures.length;o++){const s=A.textures[o].id;if(o===0&&this.cachedTex0Id===s)continue;const n=this.textures.get(s);n&&(I.activeTexture(I.TEXTURE0+o),I.bindTexture(I.TEXTURE_2D,n.texture),o===0&&(this.cachedTex0Id=s))}this.applyProjectionUniform(i,E,A.uniforms.u_projection);const e=this.buffers.get(A.vertexBuffer.id),t=this.buffers.get(A.indexBuffer.id);if(!e||!t)return;const a=this.ensureInstancedAlphaInstanceBuffer();if(I.bindBuffer(I.ARRAY_BUFFER,a),I.bufferSubData(I.ARRAY_BUFFER,0,Q,0,B*12),this.bindCachedVertexArray(E,A.vertexBuffer.id,A.indexBuffer.id)){I.bindBuffer(I.ARRAY_BUFFER,a);for(let n=0;n<3;n++){const r=2+n;I.enableVertexAttribArray(r),I.vertexAttribPointer(r,4,I.FLOAT,!1,48,n*16),I.vertexAttribDivisor(r,1)}I.bindBuffer(I.ARRAY_BUFFER,e.buffer);const s=16;I.enableVertexAttribArray(0),I.vertexAttribPointer(0,2,I.FLOAT,!1,s,0),I.vertexAttribDivisor(0,0),I.enableVertexAttribArray(1),I.vertexAttribPointer(1,2,I.FLOAT,!1,s,8),I.vertexAttribDivisor(1,0),I.bindBuffer(I.ELEMENT_ARRAY_BUFFER,t.buffer)}I.drawElementsInstanced(I.TRIANGLES,A.indexCount,I.UNSIGNED_INT,0,B),this.recordSubmittedDraw()}ensureInstancedVapInstanceBuffer(){const A=this.gl;if(!this.instancedVapInstanceGLBuffer){const g=A.createBuffer();if(!g)throw new Error("createBuffer failed");A.bindVertexArray(null),A.bindBuffer(A.ARRAY_BUFFER,g),A.bufferData(A.ARRAY_BUFFER,bA.INST_VAP_GL_BYTES,A.DYNAMIC_DRAW),this.instancedVapInstanceGLBuffer=g}return this.instancedVapInstanceGLBuffer}drawInstancedVapGL(A){var g;const I=this.gl,B=(g=A.instanceCount)!=null?g:0,Q=A.instanceData;if(B<1||!Q||Q.length<B*32)return;if(B>bA.INST_VAP_GL_MAX){console.warn("[WebGL2] vap-instanced: instanceCount exceeds max",B);return}I.disable(I.STENCIL_TEST),I.colorMask(!0,!0,!0,!0);const E="vap-instanced",i=this.programs.get("vap-instanced");if(!i)return;this.cachedDrawProgram!==E&&(I.useProgram(i.program),this.cachedDrawProgram=E);for(let o=0;o<A.textures.length;o++){const s=A.textures[o].id;if(o===0&&this.cachedTex0Id===s)continue;const n=this.textures.get(s);n&&(I.activeTexture(I.TEXTURE0+o),I.bindTexture(I.TEXTURE_2D,n.texture),o===0&&(this.cachedTex0Id=s))}this.applyProjectionUniform(i,E,A.uniforms.u_projection);const e=this.buffers.get(A.vertexBuffer.id),t=this.buffers.get(A.indexBuffer.id);if(!e||!t)return;const a=this.ensureInstancedVapInstanceBuffer();if(I.bindBuffer(I.ARRAY_BUFFER,a),I.bufferSubData(I.ARRAY_BUFFER,0,Q,0,B*32),this.bindCachedVertexArray(E,A.vertexBuffer.id,A.indexBuffer.id)){I.bindBuffer(I.ARRAY_BUFFER,a);for(let n=0;n<8;n++){const r=2+n;I.enableVertexAttribArray(r),I.vertexAttribPointer(r,4,I.FLOAT,!1,128,n*16),I.vertexAttribDivisor(r,1)}I.bindBuffer(I.ARRAY_BUFFER,e.buffer);const s=16;I.enableVertexAttribArray(0),I.vertexAttribPointer(0,2,I.FLOAT,!1,s,0),I.vertexAttribDivisor(0,0),I.enableVertexAttribArray(1),I.vertexAttribPointer(1,2,I.FLOAT,!1,s,8),I.vertexAttribDivisor(1,0),I.bindBuffer(I.ELEMENT_ARRAY_BUFFER,t.buffer)}I.drawElementsInstanced(I.TRIANGLES,A.indexCount,I.UNSIGNED_INT,0,B),this.recordSubmittedDraw()}destroy(){this.deviceLostHandler=null,this.canvas.removeEventListener("webglcontextlost",this.onContextLost),this.runtimeDiagnosticHandler=null;const A=this.gl;A.bindVertexArray(null),this.deleteAllVertexArrays(),this.instancedSvgaInstanceGLBuffer&&(A.deleteBuffer(this.instancedSvgaInstanceGLBuffer),this.instancedSvgaInstanceGLBuffer=null),this.svgaSlotStateTexture&&(A.deleteTexture(this.svgaSlotStateTexture),this.svgaSlotStateTexture=null,this.svgaSlotStateTextureWidth=0,this.svgaSlotStateTextureHeight=0),this.instancedClipMaskGLBuffer&&(A.deleteBuffer(this.instancedClipMaskGLBuffer),this.instancedClipMaskGLBuffer=null),this.instancedAlphaInstanceGLBuffer&&(A.deleteBuffer(this.instancedAlphaInstanceGLBuffer),this.instancedAlphaInstanceGLBuffer=null),this.instancedVapInstanceGLBuffer&&(A.deleteBuffer(this.instancedVapInstanceGLBuffer),this.instancedVapInstanceGLBuffer=null);for(const[,I]of this.buffers)A.deleteBuffer(I.buffer);for(const[,I]of this.textures)A.deleteTexture(I.texture);for(const[,I]of this.programs)A.deleteProgram(I.program);this.buffers.clear(),this.frameTables.clear(),this.ownedFrameTableMetadataIds.clear(),this.textures.clear(),this.programs.clear();const g=A.getExtension("WEBGL_lose_context");g==null||g.loseContext()}};H(SA,"INST_SVGA_GL_MAX",2048);H(SA,"INST_SVGA_GL_FLOATS",13);H(SA,"INST_SVGA_GL_STRIDE",SA.INST_SVGA_GL_FLOATS*4);H(SA,"INST_SVGA_GL_BYTES",SA.INST_SVGA_GL_MAX*16*Float32Array.BYTES_PER_ELEMENT);H(SA,"INST_CLIP_MASK_GL_MAX",2048);H(SA,"INST_CLIP_MASK_GL_FLOATS",6);H(SA,"INST_CLIP_MASK_GL_STRIDE",SA.INST_CLIP_MASK_GL_FLOATS*4);H(SA,"INST_CLIP_MASK_GL_BYTES",SA.INST_CLIP_MASK_GL_MAX*SA.INST_CLIP_MASK_GL_STRIDE);H(SA,"INST_ALPHA_GL_MAX",1024);H(SA,"INST_ALPHA_GL_BYTES",SA.INST_ALPHA_GL_MAX*48);H(SA,"INST_VAP_GL_MAX",1024);H(SA,"INST_VAP_GL_BYTES",SA.INST_VAP_GL_MAX*128);let WQ=SA;var vi=Object.defineProperty,Ti=(C,A,g)=>A in C?vi(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,mA=(C,A,g)=>Ti(C,typeof A!="symbol"?A+"":A,g);function Wi(C,A){let g=C.replace(/^#version\s+300\s+es\s*/m,"");return A==="vertex"?(g=g.replace(/layout\s*\(location\s*=\s*\d+\)\s*in\s+/g,"attribute "),g=g.replace(/\bout\s+/g,"varying ")):(g=g.replace(/\bin\s+/g,"varying "),g=g.replace(/out\s+vec4\s+fragColor\s*;\s*/g,""),g=g.replace(/\bfragColor\b/g,"gl_FragColor"),g=g.replace(/\btexture\s*\(/g,"texture2D(")),g}function ZC(C,A,g,I){const B=C.createShader(A);if(!B)throw new Error("Failed to create shader");if(C.shaderSource(B,Wi(g,I)),C.compileShader(B),!C.getShaderParameter(B,C.COMPILE_STATUS)){const Q=C.getShaderInfoLog(B);throw C.deleteShader(B),new Error(`Shader compile failed: ${Q}`)}return B}function dI(C,A,g,I){const B=ZC(C,C.VERTEX_SHADER,A,"vertex"),Q=ZC(C,C.FRAGMENT_SHADER,g,"fragment"),E=C.createProgram();if(!E)throw C.deleteShader(B),C.deleteShader(Q),new Error("Failed to create program");C.attachShader(E,B),C.attachShader(E,Q);for(const[i,e]of Object.entries(I))C.bindAttribLocation(E,e,i);if(C.linkProgram(E),!C.getProgramParameter(E,C.LINK_STATUS)){const i=C.getProgramInfoLog(E);throw C.deleteProgram(E),C.deleteShader(B),C.deleteShader(Q),new Error(`Program link failed: ${i}`)}return C.deleteShader(B),C.deleteShader(Q),E}function XC(C,A=C.LINEAR,g=C.CLAMP_TO_EDGE){const I=C.createTexture();if(!I)throw new Error("Failed to create texture");return C.bindTexture(C.TEXTURE_2D,I),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,A),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,A),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,g),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,g),I}const Vi=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);class aC{constructor(A,g=!0){mA(this,"type","webgl1"),mA(this,"canvas"),mA(this,"maxTextureSize",4096),mA(this,"antialias"),mA(this,"gl"),mA(this,"nextId",1),mA(this,"buffers",new Map),mA(this,"textures",new Map),mA(this,"programs",new Map),mA(this,"cachedDrawProgram",null),mA(this,"cachedTex0Id",null),mA(this,"cachedProjectionRef",null),mA(this,"cachedProjectionShader",null),mA(this,"lastDrawSubmitted",!1),mA(this,"videoUploadCanvas",null),mA(this,"videoUploadCtx",null),mA(this,"supportsUintIndices",!1),this.canvas=A,this.antialias=g}async init(){const A=this.canvas.getContext("webgl",{alpha:!0,premultipliedAlpha:!0,antialias:this.antialias,depth:!1,stencil:!0});if(!A)throw new Error("WebGL1 not available");this.gl=A,this.maxTextureSize=A.getParameter(A.MAX_TEXTURE_SIZE)||this.maxTextureSize,this.supportsUintIndices=!!A.getExtension("OES_element_index_uint"),A.enable(A.BLEND),A.blendFunc(A.ONE,A.ONE_MINUS_SRC_ALPHA),A.clearColor(0,0,0,0),A.pixelStorei(A.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),A.pixelStorei(A.UNPACK_COLORSPACE_CONVERSION_WEBGL,A.NONE),this.initPrograms()}initPrograms(){const A=this.gl,g=dI(A,P.svgaBatchPremul.vert,P.svgaBatchPremul.frag,{a_position:0,a_color:1,a_uv:2});this.programs.set("svga-batch-premul",this.makeProgramEntry(g,{transform:!0,opacity:!0})),this.bindProgramSamplers(g,{u_atlas:0});const I=dI(A,P.vap.vert,P.vap.frag,{a_position:0,a_rgbUV:1,a_alphaUV:2});this.programs.set("vap",this.makeProgramEntry(I,{transform:!0,atlasRemap:!0,opacity:!0,rgbPremultiplied:!0})),this.bindProgramSamplers(I,{u_video:0});const B=dI(A,P.alphaVideo.vert,P.alphaVideo.frag,{a_position:0,a_uv:1});this.programs.set("alpha-video",this.makeProgramEntry(B,{transform:!0,atlasRemap:!0,opacity:!0,rgbPremultiplied:!0})),this.bindProgramSamplers(B,{u_video:0});const Q=dI(A,P.rgbaTextured.vert,P.rgbaTextured.frag,{a_position:0,a_uv:1});this.programs.set("rgba-textured",this.makeProgramEntry(Q,{transform:!0,atlasRemap:!0,opacity:!0})),this.bindProgramSamplers(Q,{u_video:0});const E=dI(A,P.clipMask.vert,P.clipMask.frag,{a_position:0});this.programs.set("clip-mask",this.makeProgramEntry(E,{transform:!0}))}makeProgramEntry(A,g={}){const I=this.gl;return{program:A,projLoc:I.getUniformLocation(A,"u_projection"),transformLoc:g.transform?I.getUniformLocation(A,"u_transform"):null,atlasRemapLoc:g.atlasRemap?I.getUniformLocation(A,"u_atlasRemap"):null,opacityLoc:g.opacity?I.getUniformLocation(A,"u_opacity"):null,rgbPremultipliedLoc:g.rgbPremultiplied?I.getUniformLocation(A,"u_rgbPremultiplied"):null,lastOpacity:null,lastRgbPremultiplied:null}}applyIdentityTransform(A){A.transformLoc&&this.gl.uniformMatrix4fv(A.transformLoc,!1,Vi)}bindProgramSamplers(A,g){const I=this.gl;I.useProgram(A);for(const B in g){const Q=I.getUniformLocation(A,B);Q&&I.uniform1i(Q,g[B])}}applyDrawUniforms(A,g,I){const B=this.gl,Q=I.uniforms.u_projection;if(A.projLoc&&Q instanceof Float32Array&&Q.length>=16&&(this.cachedProjectionShader!==g||this.cachedProjectionRef!==Q)&&(B.uniformMatrix4fv(A.projLoc,!1,Q),this.cachedProjectionShader=g,this.cachedProjectionRef=Q),A.transformLoc){const E=I.uniforms.u_transform;E instanceof Float32Array?B.uniformMatrix4fv(A.transformLoc,!1,E):this.applyIdentityTransform(A)}if(A.atlasRemapLoc){const E=I.uniforms.u_atlasRemap;E instanceof Float32Array&&B.uniform4fv(A.atlasRemapLoc,E)}if(A.opacityLoc){const E=I.uniforms.u_opacity,i=typeof E=="number"?E:1;A.lastOpacity!==i&&(B.uniform1f(A.opacityLoc,i),A.lastOpacity=i)}if(A.rgbPremultipliedLoc){const E=I.uniforms.u_rgbPremultiplied;typeof E=="number"&&A.lastRgbPremultiplied!==E&&(B.uniform1f(A.rgbPremultipliedLoc,E),A.lastRgbPremultiplied=E)}}beginFrame(A={}){const g=this.gl;try{return g.viewport(0,0,this.canvas.width,this.canvas.height),g.colorMask(!0,!0,!0,!0),g.stencilMask(255),g.disable(g.STENCIL_TEST),g.disable(g.SCISSOR_TEST),g.clearColor(0,0,0,0),g.clearStencil(0),g.clear(g.COLOR_BUFFER_BIT|(A.stencil?g.STENCIL_BUFFER_BIT:0)),this.cachedDrawProgram=null,this.cachedTex0Id=null,this.cachedProjectionRef=null,this.cachedProjectionShader=null,tg}catch(I){return $("submission-error",this.errorMessage(I))}}endFrame(){try{return this.gl.flush(),tg}catch(A){return $("submission-error",this.errorMessage(A))}}abortFrame(){const A=this.gl;try{return A.colorMask(!0,!0,!0,!0),A.stencilMask(255),A.disable(A.STENCIL_TEST),A.disable(A.SCISSOR_TEST),A.clearColor(0,0,0,0),A.clearStencil(0),A.clear(A.COLOR_BUFFER_BIT|A.STENCIL_BUFFER_BIT),A.flush(),this.cachedDrawProgram=null,this.cachedTex0Id=null,this.cachedProjectionRef=null,this.cachedProjectionShader=null,tg}catch(g){return $("submission-error",this.errorMessage(g))}}errorMessage(A){return A instanceof Error?A.message:String(A)}getBufferSourceByteLength(A){return ArrayBuffer.isView(A),A.byteLength}normalizeIndexSource(A){if(this.supportsUintIndices)return A;if(ArrayBuffer.isView(A)){if(A instanceof Uint16Array)return A;if("length"in A)return Uint16Array.from(A);const g=new Uint8Array(A.buffer,A.byteOffset,A.byteLength);return new Uint16Array(g.buffer.slice(g.byteOffset,g.byteOffset+g.byteLength))}return new Uint16Array(A)}createBuffer(A,g){const I=this.gl,B=I.createBuffer();if(!B)throw new Error("Failed to create buffer");const Q=g==="index"?this.normalizeIndexSource(A):A,E=g==="index"?I.ELEMENT_ARRAY_BUFFER:I.ARRAY_BUFFER;I.bindBuffer(E,B),I.bufferData(E,Q,I.DYNAMIC_DRAW);const i=this.nextId++;return this.buffers.set(i,{buffer:B,usage:g,byteLength:this.getBufferSourceByteLength(Q)}),{id:i,usage:g}}updateBuffer(A,g,I=0){const B=this.buffers.get(A.id);if(!B)return;const Q=this.gl,E=B.usage==="index"?this.normalizeIndexSource(g):g,i=B.usage==="index"?Q.ELEMENT_ARRAY_BUFFER:Q.ARRAY_BUFFER;Q.bindBuffer(i,B.buffer);const e=this.getBufferSourceByteLength(E);I===0&&e<=B.byteLength?Q.bufferSubData(i,0,E):(Q.bufferData(i,E,Q.DYNAMIC_DRAW),B.byteLength=e)}deleteBuffer(A){const g=this.buffers.get(A.id);g&&(this.gl.deleteBuffer(g.buffer),this.buffers.delete(A.id))}ensureVideoUploadCanvas(A,g){return this.videoUploadCanvas||(this.videoUploadCanvas=document.createElement("canvas"),this.videoUploadCtx=this.videoUploadCanvas.getContext("2d")),!this.videoUploadCtx||!this.videoUploadCanvas?null:((this.videoUploadCanvas.width!==A||this.videoUploadCanvas.height!==g)&&(this.videoUploadCanvas.width=A,this.videoUploadCanvas.height=g),this.videoUploadCtx)}uploadVideoFrameToTexture(A,g,I){const B=this.gl,Q=g.videoWidth,E=g.videoHeight;if(g.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||Q<=0||E<=0)return!1;const i=this.ensureVideoUploadCanvas(Q,E);return!i||!this.videoUploadCanvas?!1:(i.drawImage(g,0,0,Q,E),B.bindTexture(B.TEXTURE_2D,A),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,1),I?B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,this.videoUploadCanvas):B.texSubImage2D(B.TEXTURE_2D,0,0,0,B.RGBA,B.UNSIGNED_BYTE,this.videoUploadCanvas),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,0),!0)}createTexture(A,g){var I,B;const Q=this.gl,E=g.filter==="nearest"?Q.NEAREST:Q.LINEAR,i=XC(Q,E),e=g.premultiplyAlpha===!0;let t=(I=g.width)!=null?I:1,a=(B=g.height)!=null?B:1;if(A instanceof ArrayBuffer)Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,t,a,0,Q.RGBA,Q.UNSIGNED_BYTE,new Uint8Array(A));else if(typeof VideoFrame!="undefined"&&A instanceof VideoFrame)Q.bindTexture(Q.TEXTURE_2D,i),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,1),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e?1:0),Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,Q.RGBA,Q.UNSIGNED_BYTE,A),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,0),t=A.displayWidth||A.codedWidth||t,a=A.displayHeight||A.codedHeight||a;else if(A instanceof HTMLVideoElement)Q.bindTexture(Q.TEXTURE_2D,i),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e?1:0),this.uploadVideoFrameToTexture(i,A,!0),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),t=A.videoWidth||t,a=A.videoHeight||a;else{const s=e,n=g.sourcePremultiplied===!0,r=s&&!n?1:0;Q.bindTexture(Q.TEXTURE_2D,i),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,0),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,Q.RGBA,Q.UNSIGNED_BYTE,A),Q.pixelStorei(Q.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),Q.pixelStorei(Q.UNPACK_FLIP_Y_WEBGL,0),"width"in A&&(t=A.width,a=A.height)}const o=this.nextId++;return this.textures.set(o,{texture:i,width:t,height:a}),{id:o,width:t,height:a}}createEmptyTexture(A,g,I={}){const B=this.gl,Q=I.filter==="nearest"?B.NEAREST:B.LINEAR,E=XC(B,Q),i=Math.max(1,Math.floor(A)),e=Math.max(1,Math.floor(g));B.bindTexture(B.TEXTURE_2D,E),B.texImage2D(B.TEXTURE_2D,0,B.RGBA,i,e,0,B.RGBA,B.UNSIGNED_BYTE,null);const t=this.nextId++;return this.textures.set(t,{texture:E,width:i,height:e}),{id:t,width:i,height:e}}updateTexture(A,g){const I=this.textures.get(A.id);if(!I)return;if(typeof VideoFrame!="undefined"&&g instanceof VideoFrame){const e=this.gl,t=vI(g),a=TI(g),o=t===I.width&&a===I.height;e.bindTexture(e.TEXTURE_2D,I.texture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),o?e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,g):(e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,g),t>0&&a>0&&(I.width=t,I.height=a)),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}if(g instanceof HTMLVideoElement){const e=g.videoWidth,t=g.videoHeight,a=e!==I.width||t!==I.height;this.uploadVideoFrameToTexture(I.texture,g,a)&&a&&(I.width=e,I.height=t);return}const B=this.gl,Q=vI(g),E=TI(g),i=Q===I.width&&E===I.height;B.bindTexture(B.TEXTURE_2D,I.texture),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,0),i?B.texSubImage2D(B.TEXTURE_2D,0,0,0,B.RGBA,B.UNSIGNED_BYTE,g):(B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,g),Q>0&&E>0&&(I.width=Q,I.height=E)),B.pixelStorei(B.UNPACK_FLIP_Y_WEBGL,0)}updateTextureRegion(A,g,I,B,Q,E){const i=this.textures.get(A.id);if(!i)return;const e=this.gl;e.bindTexture(e.TEXTURE_2D,i.texture);let t,a;if(typeof VideoFrame!="undefined"&&g instanceof VideoFrame)t=g.displayWidth||g.codedWidth,a=g.displayHeight||g.codedHeight;else if(g instanceof HTMLVideoElement){if(g.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)return;t=g.videoWidth,a=g.videoHeight}else{const n=g;t=n.width,a=n.height}if(!t||!a)return;const o=Q!=null?Q:t,s=E!=null?E:a;if(o!==t||s!==a){const n=this.ensureVideoUploadCanvas(o,s);if(!n||!this.videoUploadCanvas)return;n.drawImage(g,0,0,o,s),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,this.videoUploadCanvas),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}if(typeof VideoFrame!="undefined"&&g instanceof VideoFrame){e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,g),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}if(g instanceof HTMLVideoElement){e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,g),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0);return}e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0),e.texSubImage2D(e.TEXTURE_2D,0,I,B,e.RGBA,e.UNSIGNED_BYTE,g)}deleteTexture(A){const g=this.textures.get(A.id);g&&(this.gl.deleteTexture(g.texture),this.textures.delete(A.id),this.cachedTex0Id===A.id&&(this.cachedTex0Id=null))}draw(A){this.lastDrawSubmitted=!1;const g=A.stencil==="clear"||A.shader==="clip-mask"?"clip-mask":A.shader;if(!this.programs.has(g))return $("invalid-command",`WebGL1 shader unavailable: ${g}`);if(!this.buffers.has(A.vertexBuffer.id)||!this.buffers.has(A.indexBuffer.id))return $("missing-resource","WebGL1 draw buffer is unavailable");for(const I of A.textures)if(!this.textures.has(I.id))return $("missing-resource",`WebGL1 texture ${I.id} is unavailable`);try{this.drawInternal(A)}catch(I){return $("submission-error",this.errorMessage(I))}return this.lastDrawSubmitted?tg:$("invalid-command",`WebGL1 rejected ${A.shader}`)}drawInternal(A){var g;const I=this.gl,B=(g=A.stencil)!=null?g:"none",Q=A.shader==="clip-mask"||B==="clear"?"clip-mask":A.shader;if(Q==="svga-instanced-premul"||Q==="alpha-video-instanced"||Q==="vap-instanced")throw new Error(`WebGL1 backend does not support instanced shader: ${Q}`);const E=this.programs.get(Q);if(!E)return;B==="clear"?(I.enable(I.STENCIL_TEST),I.stencilFunc(I.ALWAYS,0,255),I.stencilOp(I.KEEP,I.KEEP,I.REPLACE),I.stencilMask(255),I.colorMask(!1,!1,!1,!1)):B==="write"||A.shader==="clip-mask"?(I.enable(I.STENCIL_TEST),I.stencilFunc(I.ALWAYS,1,255),I.stencilOp(I.KEEP,I.KEEP,I.REPLACE),I.stencilMask(255),I.colorMask(!1,!1,!1,!1)):B==="test"?(I.enable(I.STENCIL_TEST),I.stencilFunc(I.EQUAL,1,255),I.stencilOp(I.KEEP,I.KEEP,I.KEEP),I.stencilMask(0),I.colorMask(!0,!0,!0,!0)):(I.disable(I.STENCIL_TEST),I.colorMask(!0,!0,!0,!0)),this.cachedDrawProgram!==Q&&(I.useProgram(E.program),this.cachedDrawProgram=Q);for(let t=0;t<A.textures.length;t++){const a=A.textures[t].id;if(t===0&&this.cachedTex0Id===a)continue;const o=this.textures.get(a);o&&(I.activeTexture(I.TEXTURE0+t),I.bindTexture(I.TEXTURE_2D,o.texture),t===0&&(this.cachedTex0Id=a))}this.applyDrawUniforms(E,Q,A);const i=this.buffers.get(A.vertexBuffer.id),e=this.buffers.get(A.indexBuffer.id);!i||!e||(I.bindBuffer(I.ARRAY_BUFFER,i.buffer),I.bindBuffer(I.ELEMENT_ARRAY_BUFFER,e.buffer),this.setupAttributes(Q),I.drawElements(I.TRIANGLES,A.indexCount,this.supportsUintIndices?I.UNSIGNED_INT:I.UNSIGNED_SHORT,0),this.lastDrawSubmitted=!0,(B!=="none"||A.shader==="clip-mask")&&(I.disable(I.STENCIL_TEST),I.colorMask(!0,!0,!0,!0)))}clearStencil(){const A=this.gl;A.stencilMask(255),A.clear(A.STENCIL_BUFFER_BIT)}setScissor(A,g,I,B){const Q=this.gl,E=this.canvas.width,i=this.canvas.height,e=Math.max(0,Math.min(E,Math.floor(A))),t=Math.max(0,Math.min(i,Math.floor(g))),a=Math.max(e,Math.min(E,Math.ceil(A+I))),o=Math.max(t,Math.min(i,Math.ceil(g+B)));Q.enable(Q.SCISSOR_TEST),Q.scissor(e,i-o,a-e,o-t)}resetScissor(){this.gl.disable(this.gl.SCISSOR_TEST)}setupAttributes(A){const g=this.gl;g.disableVertexAttribArray(0),g.disableVertexAttribArray(1),g.disableVertexAttribArray(2),A==="svga-batch-premul"?(g.enableVertexAttribArray(0),g.vertexAttribPointer(0,3,g.FLOAT,!1,36,0),g.enableVertexAttribArray(1),g.vertexAttribPointer(1,4,g.FLOAT,!1,36,12),g.enableVertexAttribArray(2),g.vertexAttribPointer(2,2,g.FLOAT,!1,36,28)):A==="vap"?(g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,g.FLOAT,!1,24,0),g.enableVertexAttribArray(1),g.vertexAttribPointer(1,2,g.FLOAT,!1,24,8),g.enableVertexAttribArray(2),g.vertexAttribPointer(2,2,g.FLOAT,!1,24,16)):A==="clip-mask"?(g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,g.FLOAT,!1,8,0)):(g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,g.FLOAT,!1,16,0),g.enableVertexAttribArray(1),g.vertexAttribPointer(1,2,g.FLOAT,!1,16,8))}destroy(){const A=this.gl;for(const[,I]of this.buffers)A.deleteBuffer(I.buffer);for(const[,I]of this.textures)A.deleteTexture(I.texture);for(const[,I]of this.programs)A.deleteProgram(I.program);this.buffers.clear(),this.textures.clear(),this.programs.clear();const g=A.getExtension("WEBGL_lose_context");g==null||g.loseContext()}}function VQ(){return typeof GPUQueue!="undefined"&&typeof GPUQueue.prototype.copyExternalImageToTexture=="function"}function Zi(){return typeof navigator!="undefined"&&"gpu"in navigator&&VQ()}function Xi(){if(typeof document=="undefined")return!1;try{return document.createElement("canvas").getContext("webgl2")!==null}catch(C){return!1}}function Oi(){if(typeof document=="undefined")return!1;try{return document.createElement("canvas").getContext("webgl")!==null}catch(C){return!1}}function Pi(){return typeof SharedArrayBuffer!="undefined"&&typeof Atomics!="undefined"&&globalThis.crossOriginIsolated===!0}function ZQ(){return typeof OffscreenCanvas!="undefined"}async function XQ(C,A=!0,g=!0,I=!1){const B=g,Q=g;if(I){const i=new aC(C,Q);return await i.init(),i}if(A&&typeof navigator!="undefined"&&"gpu"in navigator&&VQ())try{const i=await navigator.gpu.requestAdapter({powerPreference:"high-performance"});if(i){const e=new TQ(C,i,B);return await e.init(),e}else console.warn("[GiftStage] WebGPU unavailable: requestAdapter returned null, fallback to WebGL2/WebGL1.")}catch(i){console.warn(`[GiftStage] WebGPU init failed: ${i instanceof Error?i.message:String(i)}, fallback to WebGL2/WebGL1.`)}else A&&typeof navigator!="undefined"&&"gpu"in navigator&&console.warn("[GiftStage] WebGPU unavailable: GPUQueue.copyExternalImageToTexture is not supported, fallback to WebGL2/WebGL1.");try{const i=new WQ(C,Q);return await i.init(),i}catch(i){console.warn(`[GiftStage] WebGL2 init failed: ${i instanceof Error?i.message:String(i)}, fallback to WebGL1.`)}const E=new aC(C,Q);return await E.init(),E}const ji={width:1920,height:1080},zi={width:2560,height:1440};function _i(C=typeof navigator!="undefined"?navigator:void 0){var A;if(!(C!=null&&C.userAgent))return!1;const g=C.userAgent;return!!(/Android|iPhone|iPod|Mobile/i.test(g)||/iPad/i.test(g)||/Macintosh/i.test(g)&&((A=C.maxTouchPoints)!=null?A:0)>1)}function $i(C){return _i(C)?ji:zi}function Ae(C,A,g){const I=C.clientWidth||C.getBoundingClientRect().width||0,B=C.clientHeight||C.getBoundingClientRect().height||0,Q=A>0&&Number.isFinite(A)?A:1;let E=Math.max(1,Math.round(I*Q)),i=Math.max(1,Math.round(B*Q));if(g!==!1){const e=g!=null?g:$i(),t=Math.max(e.width,e.height),a=Math.min(e.width,e.height);if(t>0&&a>0){const o=Math.min(1,t/Math.max(E,i),a/Math.min(E,i));o<1&&(E=Math.max(1,Math.round(E*o)),i=Math.max(1,Math.round(i*o)))}}(C.width!==E||C.height!==i)&&(C.width=E,C.height=i)}function Xg(C){const A=C.clientWidth||C.getBoundingClientRect().width||1,g=C.clientHeight||C.getBoundingClientRect().height||1;return{sx:C.width/Math.max(1,A),sy:C.height/Math.max(1,g)}}const $g=9,ge={a:1,b:0,c:0,d:1,tx:0,ty:0};function OQ(C,A,g){return(C*g+A)*$g}function Ie(C,A,g){var I,B;const Q=(I=C.shapesIndex[A*C.frameCount+g])!=null?I:-1;return Q<0?null:(B=C.shapesTable[Q])!=null?B:null}function PQ(C,A){var g,I,B,Q,E,i,e;const t=C.length;let a=A!=null?A:0;if(a<=0)for(const l of C)a=Math.max(a,l.frames.length);const o=C.map(l=>l.imageKey),s=new Float32Array(t*a*$g),n=[],r=new Map,h=new Int32Array(t*a).fill(-1),c=[],D=new Int32Array(t*a).fill(-1);let w=!1;for(let l=0;l<t;l++){const F=C[l];let d=null,y=-1;for(let G=0;G<a;G++){const f=F.frames[G],u=OQ(l,G,a);if(!f){s[u+2]=1,s[u+5]=1;continue}const R=(I=(g=f.layout)==null?void 0:g.width)!=null?I:0,M=(Q=(B=f.layout)==null?void 0:B.height)!=null?Q:0,N=(E=f.transform)!=null?E:ge;s[u]=R,s[u+1]=M,s[u+2]=N.a,s[u+3]=N.b,s[u+4]=N.c,s[u+5]=N.d,s[u+6]=N.tx,s[u+7]=N.ty,s[u+8]=f.alpha;const S=(i=f.clipPath)!=null?i:"";if(S.length>0){let k=r.get(S);k===void 0&&(k=n.length,n.push(S),r.set(S,k)),h[l*a+G]=k}const Y=f.shapes;if(!Y||Y.length===0){d=null,y=-1;continue}if(((e=Y[0])==null?void 0:e.kind)==="keep"){y>=0&&(D[l*a+G]=y,w=!0);continue}if(d!==null&&Y===d&&y>=0){D[l*a+G]=y,w=!0;continue}const U=Y.every(k=>k.kind!=="keep")?Y:Y.filter(k=>k.kind!=="keep");if(U.length===0){d=null,y=-1;continue}d=U,y=c.length,c.push(U),D[l*a+G]=y,w=!0}}return{spriteCount:t,frameCount:a,imageKeys:o,frameData:s,clipPaths:n,clipPathIndex:h,shapesTable:c,shapesIndex:D,hasAnyShapes:w}}function Wg(C,A){if(A.allFramesInsideViewBox!==void 0)return A.allFramesInsideViewBox;const g=C.viewBoxWidth,I=C.viewBoxHeight;let B=g>0&&I>0&&!A.hasAnyShapes;const Q=B?Math.max(g,I)*.001+.001:0;A:for(let E=0;B&&E<A.spriteCount;E++)for(let i=0;i<A.frameCount;i++){const e=OQ(E,i,A.frameCount),t=A.frameData[e],a=A.frameData[e+1];if(t<=0||a<=0)continue;const o=A.frameData[e+2],s=A.frameData[e+3],n=A.frameData[e+4],r=A.frameData[e+5],h=A.frameData[e+6],c=A.frameData[e+7],D=o*t+h,w=s*t+c,l=o*t+n*a+h,F=s*t+r*a+c,d=n*a+h,y=r*a+c;if(Math.min(h,D,l,d)<-Q||Math.min(c,w,F,y)<-Q||Math.max(h,D,l,d)>g+Q||Math.max(c,w,F,y)>I+Q){B=!1;break A}}return A.allFramesInsideViewBox=B,B}function hB(C,A,g){const I=Math.floor(C.length/_g),B=Math.floor(A.length/(nI*ug)),Q=Math.floor(g.length/YI),E=Math.min(I,B,Q);for(let i=0;i<E;i++){const e=i*_g,t=C[e],a=C[e+1],o=C[e+2],s=C[e+3],n=C[e+4],r=C[e+5],h=C[e+6],c=C[e+7],D=C[e+8],w=C[e+9],l=C[e+10],F=C[e+11],d=C[e+12],y=h,G=c,f=o*t+h,u=s*t+c,R=o*t+n*a+h,M=s*t+r*a+c,N=n*a+h,S=r*a+c,Y=i*nI*ug;A[Y]=y,A[Y+1]=G,A[Y+2]=0,A[Y+3]=1,A[Y+4]=1,A[Y+5]=1,A[Y+6]=D,A[Y+7]=w,A[Y+8]=l;const U=Y+ug;A[U]=f,A[U+1]=u,A[U+2]=0,A[U+3]=1,A[U+4]=1,A[U+5]=1,A[U+6]=D,A[U+7]=F,A[U+8]=l;const k=Y+2*ug;A[k]=R,A[k+1]=M,A[k+2]=0,A[k+3]=1,A[k+4]=1,A[k+5]=1,A[k+6]=D,A[k+7]=F,A[k+8]=d;const m=Y+3*ug;A[m]=N,A[m+1]=S,A[m+2]=0,A[m+3]=1,A[m+4]=1,A[m+5]=1,A[m+6]=D,A[m+7]=w,A[m+8]=d;const J=i*YI,q=i*nI;g[J]=q,g[J+1]=q+1,g[J+2]=q+2,g[J+3]=q,g[J+4]=q+2,g[J+5]=q+3}return E}function Be(C,A,g){const I=PC(C,z.__wbindgen_malloc),B=qA;var Q=PC(A,z.__wbindgen_malloc),E=qA,i=$Q(g,z.__wbindgen_malloc),e=qA;return z.build_batch_vertices(I,B,Q,E,A,i,e,g)>>>0}function Ce(C){const A=JB(C,z.__wbindgen_malloc),g=qA,I=z.decode_svga(A,g);if(I[2])throw WI(I[1]);return WI(I[0])}function Qe(C){const A=JB(C,z.__wbindgen_malloc),g=qA,I=z.decode_svga_payload(A,g);if(I[3])throw WI(I[2]);var B=mB(I[0],I[1]).slice();return z.__wbindgen_free(I[0],I[1]*1,1),B}function Ee(C){const A=JB(C,z.__wbindgen_malloc),g=qA,I=z.decode_svga_payload_profiled(A,g);if(I[3])throw WI(I[2]);var B=mB(I[0],I[1]).slice();return z.__wbindgen_free(I[0],I[1]*1,1),B}function ie(C){const A=JB(C,z.__wbindgen_malloc),g=qA,I=z.inflate(A,g);if(I[3])throw WI(I[2]);var B=mB(I[0],I[1]).slice();return z.__wbindgen_free(I[0],I[1]*1,1),B}function jQ(){z.init()}function ee(){return z.take_svga_payload_profile()}function te(C,A){const g=ne(C,z.__wbindgen_malloc),I=qA,B=$Q(A,z.__wbindgen_malloc),Q=qA,E=z.triangulate_clip_polygons(g,I,B,Q);var i=ae(E[0],E[1]).slice();return z.__wbindgen_free(E[0],E[1]*4,4),i}function zQ(){return{__proto__:null,"./gift_stage_wasm_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(A,g){return Error(qB(A,g))},__wbg_String_8564e559799eccda:function(A,g){const I=String(g),B=re(I,z.__wbindgen_malloc,z.__wbindgen_realloc),Q=qA;OC().setInt32(A+4,Q,!0),OC().setInt32(A+0,B,!0)},__wbg___wbindgen_copy_to_typed_array_a4db337751e0b328:function(A,g,I){new Uint8Array(I.buffer,I.byteOffset,I.byteLength).set(mB(A,g))},__wbg___wbindgen_is_string_b29b5c5a8065ba1a:function(A){return typeof A=="string"},__wbg___wbindgen_throw_81fc77679af83bc6:function(A,g){throw new Error(qB(A,g))},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_99cabae501c0a8a0:function(){return new Map},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_now_008d9b84600b5c19:function(){return performance.now()},__wbg_set_08463b1df38a7e29:function(A,g,I){return A.set(g,I)},__wbg_set_6be42768c690e380:function(A,g,I){A[g]=I},__wbg_set_6c60b2e8ad0e9383:function(A,g,I){A[g>>>0]=I},__wbindgen_cast_0000000000000001:function(A){return A},__wbindgen_cast_0000000000000002:function(A,g){return qB(A,g)},__wbindgen_cast_0000000000000003:function(A){return BigInt.asUintN(64,A)},__wbindgen_init_externref_table:function(){const A=z.__wbindgen_externrefs,g=A.grow(4);A.set(0,void 0),A.set(g+0,void 0),A.set(g+1,null),A.set(g+2,!0),A.set(g+3,!1)}}}}function ae(C,A){return C=C>>>0,_Q().subarray(C/4,C/4+A)}function mB(C,A){return C=C>>>0,rI().subarray(C/1,C/1+A)}let jg=null;function OC(){return(jg===null||jg.buffer.detached===!0||jg.buffer.detached===void 0&&jg.buffer!==z.memory.buffer)&&(jg=new DataView(z.memory.buffer)),jg}let SI=null;function oe(){return(SI===null||SI.byteLength===0)&&(SI=new Float32Array(z.memory.buffer)),SI}let fI=null;function se(){return(fI===null||fI.byteLength===0)&&(fI=new Float64Array(z.memory.buffer)),fI}function qB(C,A){return C=C>>>0,ce(C,A)}let MI=null;function _Q(){return(MI===null||MI.byteLength===0)&&(MI=new Uint32Array(z.memory.buffer)),MI}let NI=null;function rI(){return(NI===null||NI.byteLength===0)&&(NI=new Uint8Array(z.memory.buffer)),NI}function $Q(C,A){const g=A(C.length*4,4)>>>0;return _Q().set(C,g/4),qA=C.length,g}function JB(C,A){const g=A(C.length*1,1)>>>0;return rI().set(C,g/1),qA=C.length,g}function PC(C,A){const g=A(C.length*4,4)>>>0;return oe().set(C,g/4),qA=C.length,g}function ne(C,A){const g=A(C.length*8,8)>>>0;return se().set(C,g/8),qA=C.length,g}function re(C,A,g){if(g===void 0){const i=pI.encode(C),e=A(i.length,1)>>>0;return rI().subarray(e,e+i.length).set(i),qA=i.length,e}let I=C.length,B=A(I,1)>>>0;const Q=rI();let E=0;for(;E<I;E++){const i=C.charCodeAt(E);if(i>127)break;Q[B+E]=i}if(E!==I){E!==0&&(C=C.slice(E)),B=g(B,I,I=E+C.length*3,1)>>>0;const i=rI().subarray(B+E,B+I),e=pI.encodeInto(C,i);E+=e.written,B=g(B,I,E,1)>>>0}return qA=E,B}function WI(C){const A=z.__wbindgen_externrefs.get(C);return z.__externref_table_dealloc(C),A}let cB=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});cB.decode();const he=2146435072;let vB=0;function ce(C,A){return vB+=A,vB>=he&&(cB=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),cB.decode(),vB=A),cB.decode(rI().subarray(C,C+A))}const pI=new TextEncoder;"encodeInto"in pI||(pI.encodeInto=function(C,A){const g=pI.encode(C);return A.set(g),{read:C.length,written:g.length}});let qA=0,z;function AE(C,A){return z=C.exports,jg=null,SI=null,fI=null,MI=null,NI=null,z.__wbindgen_start(),z}async function De(C,A){if(typeof Response=="function"&&C instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(C,A)}catch(B){if(C.ok&&g(C.type)&&C.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",B);else throw B}const I=await C.arrayBuffer();return await WebAssembly.instantiate(I,A)}else{const I=await WebAssembly.instantiate(C,A);return I instanceof WebAssembly.Instance?{instance:I,module:C}:I}function g(I){switch(I){case"basic":case"cors":case"default":return!0}return!1}}function le(C){if(z!==void 0)return z;C!==void 0&&(Object.getPrototypeOf(C)===Object.prototype?{module:C}=C:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const A=zQ();C instanceof WebAssembly.Module||(C=new WebAssembly.Module(C));const g=new WebAssembly.Instance(C,A);return AE(g)}async function gE(C){if(z!==void 0)return z;C!==void 0&&(Object.getPrototypeOf(C)===Object.prototype?{module_or_path:C}=C:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),C===void 0&&(C=new URL("data:application/wasm;base64,AGFzbQEAAAAB6gI0YAJ/fwF/YAR/f39/AGADf39/AGACf38AYAN/f38Bf2AFf39/f38AYAF/AGABfwF/YAAAYAZ/f39/f38AYAR/f39/AX9gAAR/f39/YAABb2AFf39/f38Bf2ACf38Ef39/f2ACf38Bb2AGf39/f39/AX9gAn9/AX5gAAF/YAV/f31/fwBgBX9/fn9/AGAFf398f38AYAJ9fQF9YAJ8fAF8YAADf39/YAACf39gAAF8YANvf28AYANvb28Bb2ADb29vAGACf28AYAFvAX9gA39/bwBgAXwBb2ABfgFvYAh/f39/f39/fwBgBn9/f3x8fABgCHx8fHx8fHx8AX9gA39/fgBgBn9/f31/fwBgBn9/f35/fwBgBn9/f3x/fwBgAn9/A39/f2AEf39/fwJ/f2AIf39/f29/f28Bf2AEf35/fwBgBH99f38AYAR/fH9/AGADf399AGAHf39/f39/fwBgAXwBf2ADf398AAKmBxAXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMaX193Ymdfbm93XzAwOGQ5Yjg0NjAwYjVjMTkAGhcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwAbFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzGl9fd2JnX3NldF8wODQ2M2IxZGYzOGE3ZTI5ABwXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAHRcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcx1fX3diZ19TdHJpbmdfODU2NGU1NTk3OTllY2NkYQAeFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzGl9fd2JnX25ld185OWNhYmFlNTAxYzBhOGEwAAwXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMaX193YmdfbmV3X2YzYzlkZjRmMzhmM2Y3OTgADBcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcxpfX3diZ19uZXdfNGY5ZmFmYmIzOTA5YWY3MgAMFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgADFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMADxcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX3N0cmluZ19iMjliNWM1YTgwNjViYTFhAB8XLi9naWZ0X3N0YWdlX3dhc21fYmcuanM1X193YmdfX193YmluZGdlbl9jb3B5X3RvX3R5cGVkX2FycmF5X2E0ZGIzMzc3NTFlMGIzMjgAIBcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlAAgXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAIRcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAPFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAzACIDzgHMAQEjJAcBAgIJAAMEEAYCAgMDAQUECgAKACUREQMBBQICAAICAwQAEgMAAQIDBgABAAEABgEEAQEDBQAGCQUCCQkCBQIDAAIIASYCAwEGBQYCCQYFAQEFBQUFAQEACScoKQUBAQIEBAUBBAAAAAcCAwEBBgIAAA0AAAoABg4ODiorLBAHDQUUExUGBgEKBAEIAgYWFxcWAAADAwMDAgAwAwIxAgQCMjMFABIKAwABAQMAAAMAAAICBwcIAgQEBgwAAAgDAwAEAAMAAwcIAgQJAnABZmZvAIAIBQMBABEGCQF/AUGAgMAACwe6Ag8GbWVtb3J5AgALZGVjb2RlX3N2Z2EAjgETZGVjb2RlX3N2Z2FfcGF5bG9hZACMARxkZWNvZGVfc3ZnYV9wYXlsb2FkX3Byb2ZpbGVkAIsBGXRha2Vfc3ZnYV9wYXlsb2FkX3Byb2ZpbGUAzQEHaW5mbGF0ZQCNARRidWlsZF9iYXRjaF92ZXJ0aWNlcwCQARl0cmlhbmd1bGF0ZV9jbGlwX3BvbHlnb25zAI8BBGluaXQA2gERX193YmluZGdlbl9tYWxsb2MAgwESX193YmluZGdlbl9yZWFsbG9jAIgBFV9fd2JpbmRnZW5fZXh0ZXJucmVmcwEBGV9f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oAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIAo2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABayAKSQRAIARBoAJqIAEgCkEBQQEQTCAEKAKoAiEBCyAKBEAgBCgCpAIgAWogCSAK/AoAAAsgBCAEKAKoAiAKaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAMAQsgBSgCCCIJQQJHBEAgBCgCoAIgAUYEQCAEQaACahBhCyAEKAKkAiABakEBOgAAIAQgAUEBaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIMQwAAAAAgCUEBcRshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIUQwAAAAAgBSgCEBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIcQwAAAAAgBSgCGBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIkQwAAAAAgBSgCIBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIsQwAAAAAgBSgCKBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAMAQsgBSgCMCIJQQJGDQIgBCgCoAIgAUYEQCAEQaACahBhCyAEKAKkAiABakECOgAAIAQgAUEBaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgI0QwAAAAAgCUEBcRshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgI8QwAAAAAgBSgCOBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgJEQwAAAAAgBSgCQBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgJMQwAAAAAgBSgCSBsMAQsgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJq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ZkUgLCAroiApICaiZkVyDQAgHSAHQQhqKwMAoSAJKwMAIByhoiAcIAcrAwChIAlBCGorAwAgHaGioUQAAAAAAAAAAGYNAgsgCiAPRw0ACwwGCyABIAhHDQALCwJAAkAgC0H/AXFBAWsOAgQBAAsgDEEcaiENIAEgDGohBiABIQoDQCAKIQgCQANAIAwgBigCJCIBaiEHIAYoAhBBAE4EQCAGKAIgIQogBisDACAHKwMAYgR/QQAFIAYrAwggBysDCGELDQIgBkEIaisDACIcIAogDGoiCUEIaisDAKEgBysDACAGKwMAIh2hoiAdIAkrAwChIAdBCGorAwAgHKGioUQAAAAAAAAAAGENAgsgByEGIAEgCEcNAAtBASELIAghAQwICyAGKAIcIQggBigCGCEJIAogDGoiBiABNgIkAkAgCUUNACAJIApHBEAgCSANaiAINgIADAELIAYgCDYCHAsgByAKNgIgIAgEQCAHIAggDGogASAIRhsgCTYCGAtBASELIAEgCkcNAAsMBgsgDEEkaiEYIAEgDGohCyABIQgDQCAMIAsoAiQiD2ohByAPIBhqKAIAIg0gCygCICIZRwRAIAwgGWohFiALKAIQIhBB/////wdxIRoDQAJAIAwgDSIOaiIRKAIQIgYgEHNB/////wdxRQRAIA0gGGooAgAhDQwBCyARKAIkIQ0gBkH/////B3EiFyAHKAIQQf////8HcUYNACAWKAIQQf////8HcSAXRg0AIAwgESgCIGohFCAMIA1qIRMgESsDCCEeIBErAwAhHyALKwMIIR0gCysDACEhIBAhCSALIQYDQCAJIRICQCAMIAYiCigCJGoiBigCECIJQf////8HcSIbIBdGDQAgEkH/////B3EiEiAaRiASIBdGciAaIBtGcg0AIAorAwAgCkEIaisDACAGKwMAIAZBCGorAwAgISAdIB8gHhAoDQILIAYgC0cNAAsgHyAhoSEiIB4gHaEhIwJAAkAgHSAWQQhqKwMAIhyhIiggBysDACIkICGhIieiIikgISAWKwMAIiChIiogB0EIaisDACIlIB2hIiaiIitjRQRAICMgICAfoaIgIiAcIB6homMNASAfICShICaiICcgHiAloaJjRQ0CDAELICMgJCAfoaIgIiAlIB6hoqFEAAAAAAAAAABmRSAfICChIBwgHaGiICAg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AAseACAARQRAENABAAsgACACIAMgBCAFIAEoAhARDQALIAEBf0EBIQEgACgCACIAQQFxBH8gAQUgACgCCEEBRgsLHAAgAEUEQBDQAQALIAAgAiADIAQgASgCEBEKAAscACAARQRAENABAAsgACACIAMgBCABKAIQEQEACxwAIABFBEAQ0AEACyAAIAIgAyAEIAEoAhARLQALHAAgAEUEQBDQAQALIAAgAiADIAQgASgCEBEuAAscACAARQRAENABAAsgACACIAMgBCABKAIQES8ACygBAX8gACgCACIBQYCAgIB4ckGAgICAeEcEQCAAKAIEIAFBARDEAQsLCgBBCCAAENIBAAsaACAARQRAENABAAsgACACIAMgASgCEBECAAsaACAARQRAENABAAsgACACIAMgASgCEBEEAAsYACAARQRAENABAAsgACACIAEoAhARAAALIQAgAEEANgIMIAAgAzYCCCAAIAI2AgQgAEH4scAANgIACxIAQfjQwABBOUGU0cAAEIIBAAslAQFvEAYhAxA2IgIgAyYBIABBADYCCCAAIAI2AgQgACABNgIACxoBAX8gACgCACIBBEAgACgCBCABQQEQxAELCxQAIAAgACABIAAgAV0bIAEgAVwbCxQAIAAgACABIAAgAWMbIAEgAWIbCxQAIAEgASAAIAAgAWMbIAAgAGIbCxQAIAEgASAAIAAgAV0bIAAgAFwbCx0AIAEgAC0AAEECdCIAKALMrEAgACgCtKxAELIBCx0AIAEgAC0AAEECdCIAKAKArkAgACgC6K1AELIBCx8AIABBCGpBxLTAACkCADcCACAAQby0wAApAgA3AgALHwAgAEEIakGcxsAAKQIANwIAIABBlMbAACkCADcCAAsfACAAQQhqQazGwAApAgA3AgAgAEGkxsAAKQIANwIACx8AIAAEQCAAIAEQ0gEAC0G80sAAQSNB0NLAABCCAQALEgAgACABQQF0QQFyIAIQggEACxYBAW8gACABEA4hAhA2IgAgAiYBIAALFAAgACACuxC0ATYCBCAAQQA2AgALFAAgACABtxC0ATYCBCAAQQA2AgALFQAgACABIAIQrAE2AgQgAEEANgIAC9MLAQ5/IAAhDyMAQRBrIggkACABKAIQIQcgBkH/AXFBAnQoAoi1QCEKIwBBEGsiBiQAAkACQAJAAkACQAJA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aW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAIWNhbm5vdCBhZHZhbmNlIHBhc3QgYHJlbWFpbmluZ2A6IMAEIDw9IMAAE2ludmFsaWQga2V5IHZhbHVlOiDAABlpbnZhbGlkIHdpcmUgdHlwZSB2YWx1ZTogwAASU2VyaWFsaXplIGZhaWxlZDogwAAQSW5mbGF0ZSBmYWlsZWQ6IMAAGFByb3RvYnVmIGRlY29kZSBmYWlsZWQ6IMAAwAI6IMAAc3JjXHZlcnRleC5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXGJ5dGVzLTEuMTEuMVxzcmNcYnl0ZXNfbXV0LnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC9zaGFyZWQvc21hbGxzb3J0LnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC9zdGFibGUvcXVpY2tzb3J0LnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXGJ5dGVzLTEuMTEuMVxzcmNcYnl0ZXMucnMAL3J1c3RjL2U0MDg5NDdiZmQyMDBhZjQyZGIzMjJkYWYwZmFkZmU3ZTI2ZDNiZDEvbGlicmFyeS9zdGQvc3JjL3N5cy90aHJlYWRfbG9jYWwvbm9fdGhyZWFkcy5ycwAvcnVzdGMvZTQwODk0N2JmZDIwMGFmNDJkYjMyMmRhZjBmYWRmZTdlMjZkM2JkMS9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL2l0ZXIucnMAQzpcVXNlcnNcU2FyZ2VyYXNcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxtaW5pel9veGlkZS0wLjguOVxzcmNcaW5mbGF0ZVxvdXRwdXRfYnVmZmVyLnJzAEM6XFVzZXJzXFNhcmdlcmFzXC5jYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2ZcZmxhdGUyLTEuMS45XHNyY1xidWZyZWFkZXIucnMAc3JjXGNsaXAucnMAL3J1c3RjL2U0MDg5NDdiZmQyMDBhZjQyZGIzMjJkYWYwZmFkZmU3ZTI2ZDNiZDEvbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAEM6XFVzZXJzXFNhcmdlcmFzXC5jYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2ZcbWluaXpfb3hpZGUtMC44Ljlcc3JjXGluZmxhdGVcc3RyZWFtLnJzAHNyY1xwcm90b2J1Zi5ycwAvcnVzdGMvZTQwODk0N2JmZDIwMGFmNDJkYjMyMmRhZjBmYWRmZTdlMjZkM2JkMS9saWJyYXJ5L2NvcmUvc3JjL2lvL2JvcnJvd2VkX2J1Zi5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHdhc20tYmluZGdlbi0wLjIuMTE3XHNyY1xleHRlcm5yZWYucnMAQzpcVXNlcnNcU2FyZ2VyYXNcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxtaW5pel9veGlkZS0wLjguOVxzcmNcaW5mbGF0ZVxjb3JlLnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvcnVzdGMvZTQwODk0N2JmZDIwMGFmNDJkYjMyMmRhZjBmYWRmZTdlMjZkM2JkMS9saWJyYXJ5L3N0ZC9zcmMvaW8vbW9kLnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjExL3NyYy9kbG1hbGxvYy5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXGVhcmN1dC0wLjQuOVxzcmNcbGliLnJzAEM6XFVzZXJzXFNhcmdlcmFzXC5jYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Zcc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41XHNyY1xsaWIucnMAQzpcVXNlcnNcU2FyZ2VyYXNcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxieXRlcy0xLjExLjFcc3JjXGxpYi5ycwDALCBjYW4ndCBiZSByZXByZXNlbnRlZCBhcyBhIEphdmFTY3JpcHQgbnVtYmVyACZjb3B5X2Zyb21fc2xpY2U6IHNvdXJjZSBzbGljZSBsZW5ndGggKMArKSBkb2VzIG5vdCBtYXRjaCBkZXN0aW5hdGlvbiBzbGljZSBsZW5ndGggKMABKQDACyAob3MgZXJyb3IgwAEpABNpbnZhbGlkIHdpcmUgdHlwZTogwAsgKGV4cGVjdGVkIMABKQDAAS7AAjogAHJlY3RlbGxpcHNlegYQAA8AAAAiAAAAEwAAAERlY29kZWRUcmFuc2Zvcm1hYmNkdHh0eURlY29kZWRTaGFwZVN0eWxlZmlsbHN0cm9rZXN0cm9rZV93aWR0aGxpbmVfY2FwbGluZV9qb2lubWl0ZXJfbGltaXRsaW5lX2Rhc2hTVkdBUGF5bG9hZFByb2ZpbGVpbnB1dEJ5dGVzb3V0cHV0Qnl0ZXNwcm9zdERlY29kZU1zbWV0YWRhdGFBbmRJbWFnZXNNc2ZyYW1lVGFibGVNc2ZpbmFsaXplTXNwYXlsb2FkQnVpbGRNc3J1c3RUb3RhbE1zaW1hZ2VCeXRlc2ltYWdlQ291bnRzcHJpdGVDb3VudGZyYW1lQ291bnRjZWxsQ291bnRjbGlwUGF0aENvdW50c2hhcGVDb3VudHNoYXBlR3JvdXBDb3VudHNoYXBlQnl0ZXN3cml0ZXJJbml0aWFsQ2FwYWNpdHl3cml0ZXJGaW5hbENhcGFjaXR5RGVjb2RlZFJlY3R4eXdpZHRoaGVpZ2h0Y29ybmVyX3JhZGl1c0RlY29kZWRBdWRpb2F1ZGlvX2tleXN0YXJ0X2ZyYW1lZW5kX2ZyYW1lc3RhcnRfdGltZXRvdGFsX3RpbWVEZWNvZGVkQ29sb3JyZ0RlY29kZWRGcmFtZWFscGhhbGF5b3V0dHJhbnNmb3JtY2xpcF9wYXRoc2hhcGVzRGVjb2RlZE1vdmlldmVyc2lvbnBhcmFtc2ltYWdlc3Nwcml0ZXNhdWRpb3NEZWNvZGVkU2hhcGVraW5kcGF0aF9kYXRhc3R5bGVEZWNvZGVkTGF5b3V0RGVjb2RlZFBhcmFtc3ZpZXdfYm94X3dpZHRodmlld19ib3hfaGVpZ2h0ZnBzZnJhbWVzRGVjb2RlZFNwcml0ZWltYWdlX2tleURlY29kZWRFbGxpcHNlcmFkaXVzX3hyYWRpdXNfeQAAAP//////////GA4QAEGwnMAAC/MDegYQAA8AAABKAwAAIwAAAHoGEAAPAAAAaQMAACkAAAB6BhAADwAAAFIDAAApAAAASwkQAF4AAACFAgAAKAAAAEsJEABeAAAAbgQAABwAAABLCRAAXgAAAN0CAAAhAAAASwkQAF4AAADpAAAAJgAAAEsJEABeAAAABgEAAB0AAABLCRAAXgAAAHoEAAAzAAAASwkQAF4AAAB7BAAAMwAAAGludmFsaWQgdGFnIHZhbHVlOiAwaW52YWxpZCB2YXJpbnRMYXlvdXR4eXdpZHRoaGVpZ2h0VHJhbnNmb3JtYWJjZHR4dHlBdWRpb0VudGl0eWF1ZGlvX2tleXN0YXJ0X2ZyYW1lZW5kX2ZyYW1lc3RhcnRfdGltZXRvdGFsX3RpbWVGcmFtZUVu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ciB1bmRlcmZsb3dpbnZhbGlkIHZhcmludHJlY3Vyc2lvbiBsaW1pdCByZWFjaGVkVmFyaW50U2l4dHlGb3VyQml0TGVuZ3RoRGVsaW1pdGVkU3RhcnRHcm91cEVuZEdyb3VwVGhpcnR5VHdvQml0TgUQAGQAAABiAAAAFQAAAAYAAAAMAAAADwAAAAoAAAAIAAAADAAAAJkWEACfFhAAqxYQALoWEADEFhAAzBYQAGFzc2VydGlvbiBmYWlsZWQ6IG4gPD0gc2VsZi5idWYuaW5pdCAtIHNlbGYuYnVmLmZpbGxlZAAAigYQAFMAAAAVAQAACQAAAIUIEABJAAAAsgEAADEAAABSZ2JhQ29sb3JyZ2JhU2hhcGVBcmdzZFNoYXBlU3R5bGVmaWxsc3Ryb2tlc3Ryb2tlX3dpZHRobGluZV9jYXBsaW5lX2pvaW5taXRlcl9saW1pdGxpbmVfZGFzaF9pbGluZV9kYXNoX2lpbGluZV9kYXNoX2lpaUVsbGlwc2VBcmdzeHlyYWRpdXNfeHJhZGl1c195UmVjdEFyZ3N3aWR0aGhlaWdodGNvcm5lcl9yYWRpdXOqCRAAagAAADUAAAAOAAAAAAAAAP//////////OBgQAEHQsMAAC80BQXR0ZW1wdGVkIHRvIGluaXRpYWxpemUgdGhyZWFkLWxvY2FsIHdoaWxlIGl0IGlzIGJlaW5nIGRyb3BwZWQAACoEEABeAAAAawAAAA0AAABjbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgYWZ0ZXIgYmVpbmcgZHJvcHBlZGZhaWxlZCB0byBkZWNvZGUgUHJvdG9idWYgbWVzc2FnZTogAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgBBqLLAAAvdAgEAAAAvAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQDJAxAAYAAAADoFAAAyAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAAzAAAAOAAAAMkDEABgAAAASAUAAEkAAABMYXlvdXRFcnJvcm92ZXJmbG93AFsCEABkAAAAvQIAAB0AAABbAhAAZAAAAKkCAAAVAAAAOQAAADoAAAA7AAAAPAAAAD0AAAAVChAAXgAA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bAAAAEQEAAAjAAAASwcQAGwAAABEBAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG91dF9wb3MgKyAxIDwgb3V0X3NsaWNlLmxlbigpAEsHEABsAAAARgQAAA0AAABhc3NlcnRpb24gZmFpbGVkOiAoc291cmNlX3BvcyArIDEpICYgb3V0X2J1Zl9zaXplX21hc2sgPCBvdXRfc2xpY2UubGVuKClLBxAAbAAAAEcEAAANAAAASwcQAGwAAABIBAAAIgAAAEsHEABsAAAASAQAAA0AAABhc3NlcnRpb24gZmFpbGVkOiBvdXRfcG9zICsgMiA8IG91dF9zbGljZS5sZW4oKQBLBxAAbAAAAEwEAAANAAAAYXNzZXJ0aW9uIGZhaWxlZDogKHNvdXJjZV9wb3MgKyAyKSAmIG91dF9idWZfc2l6ZV9tYXNrIDwgb3V0X3NsaWNlLmxlbigpSwcQAGwAAABNBAAADQAAAEsHEABsAAAATgQAACIAAABLBxAAbAAAAE4EAAANAAAASwcQAGwAAABPBAAAJgAAAEsHEABsAAAATwQAAA0AAABLBxAAbAAAACwEAAAXAAAAZGVzdCBpcyBvdXQgb2YgYm91bmRzAAAACwYQAG4AAABCAQAAHAAAAAsGEABuAAAAdgEAADAAAADeBhAAbAAAAHwAAAARAAAA3gYQAGwAAACJAAAAEQAAAG1dy9YsUOtjeEGmV3Ebi7mauO6RURSWWM+WAOjSnxKKZW50aXR5IG5vdCBmb3VuZHBlcm1pc3Npb24gZGVuaWVkY29ubmVjdGlvbiByZWZ1c2VkY29ubmVjdGlvbiByZXNldGhvc3QgdW5yZWFjaGFibGVuZXR3b3JrIHVucmVhY2hhYmxlY29ubmVjdGlvbiBhYm9ydGVkbm90IGNvbm5lY3RlZGFkZHJlc3MgaW4gdXNlYWRkcmVzcyBub3QgYXZhaWxhYmxlbmV0d29yayBkb3duYnJva2VuIHBpcGVlbnRpdHkgYWxyZWFkeSBleGlzdHNvcGVyYXRpb24gd291bGQgYmxvY2tub3QgYSBkaXJlY3RvcnlpcyBhIGRpcmVjdG9yeWRpcmVjdG9yeSBub3QgZW1wdHlyZWFkLW9ubHkgZmlsZXN5c3RlbSBvciBzdG9yYWdlIG1lZGl1bWZpbGVzeXN0ZW0gbG9vcCBv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",typeof document=="undefined"?require("url").pathToFileURL(__filename).href:sI&&sI.tagName.toUpperCase()==="SCRIPT"&&sI.src||new URL("gift-stage.cjs",document.baseURI).href));const A=zQ();(typeof C=="string"||typeof Request=="function"&&C instanceof Request||typeof URL=="function"&&C instanceof URL)&&(C=fetch(C));const{instance:g,module:I}=await De(await C,A);return AE(g)}const we=Object.freeze(Object.defineProperty({__proto__:null,build_batch_vertices:Be,decode_svga:Ce,decode_svga_payload:Qe,decode_svga_payload_profiled:Ee,default:gE,inflate:ie,init:jQ,initSync:le,take_svga_payload_profile:ee,triangulate_clip_polygons:te},Symbol.toStringTag,{value:"Module"})),TB="data:application/wasm;base64,AGFzbQEAAAAB6gI0YAJ/fwF/YAR/f39/AGADf39/AGACf38AYAN/f38Bf2AFf39/f38AYAF/AGABfwF/YAAAYAZ/f39/f38AYAR/f39/AX9gAAR/f39/YAABb2AFf39/f38Bf2ACf38Ef39/f2ACf38Bb2AGf39/f39/AX9gAn9/AX5gAAF/YAV/f31/fwBgBX9/fn9/AGAFf398f38AYAJ9fQF9YAJ8fAF8YAADf39/YAACf39gAAF8YANvf28AYANvb28Bb2ADb29vAGACf28AYAFvAX9gA39/bwBgAXwBb2ABfgFvYAh/f39/f39/fwBgBn9/f3x8fABgCHx8fHx8fHx8AX9gA39/fgBgBn9/f31/fwBgBn9/f35/fwBgBn9/f3x/fwBgAn9/A39/f2AEf39/fwJ/f2AIf39/f29/f28Bf2AEf35/fwBgBH99f38AYAR/fH9/AGADf399AGAHf39/f39/fwBgAXwBf2ADf398AAKmBxAXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMaX193Ymdfbm93XzAwOGQ5Yjg0NjAwYjVjMTkAGhcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwAbFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzGl9fd2JnX3NldF8wODQ2M2IxZGYzOGE3ZTI5ABwXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAHRcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcx1fX3diZ19TdHJpbmdfODU2NGU1NTk3OTllY2NkYQAeFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzGl9fd2JnX25ld185OWNhYmFlNTAxYzBhOGEwAAwXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMaX193YmdfbmV3X2YzYzlkZjRmMzhmM2Y3OTgADBcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcxpfX3diZ19uZXdfNGY5ZmFmYmIzOTA5YWY3MgAMFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgADFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMADxcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX3N0cmluZ19iMjliNWM1YTgwNjViYTFhAB8XLi9naWZ0X3N0YWdlX3dhc21fYmcuanM1X193YmdfX193YmluZGdlbl9jb3B5X3RvX3R5cGVkX2FycmF5X2E0ZGIzMzc3NTFlMGIzMjgAIBcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlAAgXLi9naWZ0X3N0YWdlX3dhc21fYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAIRcuL2dpZnRfc3RhZ2Vfd2FzbV9iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAPFy4vZ2lmdF9zdGFnZV93YXNtX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAzACIDzgHMAQEjJAcBAgIJAAMEEAYCAgMDAQUECgAKACUREQMBBQICAAICAwQAEgMAAQIDBgABAAEABgEEAQEDBQAGCQUCCQkCBQIDAAIIASYCAwEGBQYCCQYFAQEFBQUFAQEACScoKQUBAQIEBAUBBAAAAAcCAwEBBgIAAA0AAAoABg4ODiorLBAHDQUUExUGBgEKBAEIAgYWFxcWAAADAwMDAgAwAwIxAgQCMjMFABIKAwABAQMAAAMAAAICBwcIAgQEBgwAAAgDAwAEAAMAAwcIAgQJAnABZmZvAIAIBQMBABEGCQF/AUGAgMAACwe6Ag8GbWVtb3J5AgALZGVjb2RlX3N2Z2EAjgETZGVjb2RlX3N2Z2FfcGF5bG9hZACMARxkZWNvZGVfc3ZnYV9wYXlsb2FkX3Byb2ZpbGVkAIsBGXRha2Vfc3ZnYV9wYXlsb2FkX3Byb2ZpbGUAzQEHaW5mbGF0ZQCNARRidWlsZF9iYXRjaF92ZXJ0aWNlcwCQARl0cmlhbmd1bGF0ZV9jbGlwX3BvbHlnb25zAI8BBGluaXQA2gERX193YmluZGdlbl9tYWxsb2MAgwESX193YmluZGdlbl9yZWFsbG9jAIgBFV9fd2JpbmRnZW5fZXh0ZXJucmVmcwEBGV9f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oAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIAo2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABayAKSQRAIARBoAJqIAEgCkEBQQEQTCAEKAKoAiEBCyAKBEAgBCgCpAIgAWogCSAK/AoAAAsgBCAEKAKoAiAKaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAMAQsgBSgCCCIJQQJHBEAgBCgCoAIgAUYEQCAEQaACahBhCyAEKAKkAiABakEBOgAAIAQgAUEBaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIMQwAAAAAgCUEBcRshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIUQwAAAAAgBSgCEBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIcQwAAAAAgBSgCGBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIkQwAAAAAgBSgCIBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgIsQwAAAAAgBSgCKBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAMAQsgBSgCMCIJQQJGDQIgBCgCoAIgAUYEQCAEQaACahBhCyAEKAKkAiABakECOgAAIAQgAUEBaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqQQA2AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgI0QwAAAAAgCUEBcRshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgI8QwAAAAAgBSgCOBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgJEQwAAAAAgBSgCQBshQSAEKAKgAiABa0EDTQR/IARBoAJqIAFBBEEBQQEQTCAEKAKoAgUgAQsgBCgCpAJqIEE4AAAgBCAEKAKoAkEEaiIBNgKoAiAFKgJMQwAAAAAgBSgCSBsMAQsgBCAEKAKoAkEEaiIBNgKoAiAEKAKgAiABa0EDTQR/IARBoAJq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ZkUgLCAroiApICaiZkVyDQAgHSAHQQhqKwMAoSAJKwMAIByhoiAcIAcrAwChIAlBCGorAwAgHaGioUQAAAAAAAAAAGYNAgsgCiAPRw0ACwwGCyABIAhHDQALCwJAAkAgC0H/AXFBAWsOAgQBAAsgDEEcaiENIAEgDGohBiABIQoDQCAKIQgCQANAIAwgBigCJCIBaiEHIAYoAhBBAE4EQCAGKAIgIQogBisDACAHKwMAYgR/QQAFIAYrAwggBysDCGELDQIgBkEIaisDACIcIAogDGoiCUEIaisDAKEgBysDACAGKwMAIh2hoiAdIAkrAwChIAdBCGorAwAgHKGioUQAAAAAAAAAAGENAgsgByEGIAEgCEcNAAtBASELIAghAQwICyAGKAIcIQggBigCGCEJIAogDGoiBiABNgIkAkAgCUUNACAJIApHBEAgCSANaiAINgIADAELIAYgCDYCHAsgByAKNgIgIAgEQCAHIAggDGogASAIRhsgCTYCGAtBASELIAEgCkcNAAsMBgsgDEEkaiEYIAEgDGohCyABIQgDQCAMIAsoAiQiD2ohByAPIBhqKAIAIg0gCygCICIZRwRAIAwgGWohFiALKAIQIhBB/////wdxIRoDQAJAIAwgDSIOaiIRKAIQIgYgEHNB/////wdxRQRAIA0gGGooAgAhDQwBCyARKAIkIQ0gBkH/////B3EiFyAHKAIQQf////8HcUYNACAWKAIQQf////8HcSAXRg0AIAwgESgCIGohFCAMIA1qIRMgESsDCCEeIBErAwAhHyALKwMIIR0gCysDACEhIBAhCSALIQYDQCAJIRICQCAMIAYiCigCJGoiBigCECIJQf////8HcSIbIBdGDQAgEkH/////B3EiEiAaRiASIBdGciAaIBtGcg0AIAorAwAgCkEIaisDACAGKwMAIAZBCGorAwAgISAdIB8gHhAoDQILIAYgC0cNAAsgHyAhoSEiIB4gHaEhIwJAAkAgHSAWQQhqKwMAIhyhIiggBysDACIkICGhIieiIikgISAWKwMAIiChIiogB0EIaisDACIlIB2hIiaiIitjRQRAICMgICAfoaIgIiAcIB6homMNASAfICShICaiICcgHiAloaJjRQ0CDAELICMgJCAfoaIgIiAlIB6hoqFEAAAAAAAAAABmRSAfICChIBwgHaGiICAgIaEgHiAcoaKhRAAAAAAAAAAAZkVyDQELICEgH6EhHCAdIB6hISACQCAeIBRBCGorAwAiIqEiJyATKwMAIiQgH6EiJqIgHyAUKwMAIiOhIiwgE0EIaisDACIlIB6hIi2iY0UEQCAgICMgIaGiIBwgIiAdoaJjDQEgISAkoSAtoiAmIB0gJaGiY0UNAgwBCyAgICQgIaGiIBwgJSAdoaKhRAAAAAAAAAAAZkUgISAjoSAiIB6hoiAjIB+hIB0gIqGioUQAAAAAAAAAAGZFcg0BCyAdIB6gRAAAAAAAAOA/oiEkICEgH6BEAAAAAAAA4D+iISVBACEKIB0hHCALIQYDQAJ/QQAgHCIgIAwgBiIJKAIkaiIGKwMIIhxhDQAaQQAgICAkZCAcICRkc0UNABogJSAJKwMAIiYgJCAgoSAGKwMAICahoiAcICCho6BjCyAKcyEKIAYgC0cNAAsgCkEBcUUNACAjICGhIhwgKKIgIiAdoSIdICqioUQAAAAAAAAAAGIgLCAdoiAcICeioUQAAAAAAAAAAGJyDQYLIAsrAwAgESsDAGIEf0EABSALKwMIIBErAwhhC0UgKSArZEVyDQAgHiAUQQhqKwMAoSATKwMAIB+hoiAfIBQrAwChIBNBCGorAwAgHqGiZA0FCyANIBlHDQALCyAHIQsgDyIIIAFHDQALCyAVQSBqJAAPCyAIIAxqIgEoAhAhCyAAKAIIIQYgASgCJCEHIAEgDjYCJCABKQMAIS4gAUEIaikDACEvIBEoAiAhCiARIAg2AiAgEUEIaikDACEwIBEoAhAhDyARKQMAITEgByAMaiAGQShsIgk2AiAgFUEYaiIQIC83AwAgFUEIaiIOIDA3AwAgCiAMaiAJQShqIg02AiQgFSAuNwMQIBUgMTcDACAAKAIAIAAoAggiBmtBAU0EQCAAIAZBAkEIQSgQTCAAKAIIIQYLIAAoAgQgBkEobGoiASAVKQMQNwMAIAEgBzYCJCABIA02AiAgAUEANgIcIAFCADcCFCABIAtB/////wdxNgIQIAEgFSkDADcDKCABIAk2AkwgASAKNgJIIAFBADYCRCABQgA3AjwgASAPQf////8HcTYCOCABQQhqIBApAwA3AwAgAUEwaiAOKQMANwMAIAAgBkECajYCCCAAKAIEIgpBHGohDyAIIApqIgYoAiQiCSELA0ACQCAJIApqIQcCQAJAIAYoAhBBAE4EQCAGKAIgIQEgBisDACAHKwMAYgR/QQAFIAYrAwggBysDCGELDQEgBkEIaisDACIcIAEgCmoiCEEIaisDAKEgBysDACAGKwMAIh2hoiAdIAgrAwChIAdBCGorAwAgHKGioUQAAAAAAAAAAGENAQsgCSALRw0BDAILIAYoAhwhCCAGKAIYIQsgASAKaiIGIAk2AiQCQCALRQ0AIAEgC0cEQCALIA9qIAg2AgAMAQsgBiAINgIcCyAHIAE2AiAgCARAIAcgCCAKaiAIIAlGGyALNgIYCyAGIQcgASILIAlGDQELIAcoAiQhCSAHIQYMAQsLIAAoAgQiCkEcaiEPIAogDWoiBigCJCIBIQsDQAJAIAEgCmohBwJAAkAgBigCEEEATgRAIAYoAiAhCCAGKwMAIAcrAwBiBH9BAAUgBisDCCAHKwMIYQsNASAGQQhqKwMAIhwgCCAKaiINQQhqKwMAoSAHKwMAIAYrAwAiHaGiIB0gDSsDAKEgB0EIaisDACAcoaKhRAAAAAAAAAAAYQ0BCyABIAtHDQEMAgsgBigCHCELIAYoAhghDSAIIApqIgYgATYCJAJAIA1FDQAgCCANRwRAIA0gD2ogCzYCAAwBCyAGIAs2AhwLIAcgCDYCICALBEAgByAKIAtqIAEgC0YbIA02AhgLIAYhByAIIgsgAUYNAQsgBygCJCEBIAchBgwBCwtBACELIAAgCSACIAMgBCAFEBIMAwsgDEEcaiELIAEgDGohCQNAIAEhCAJAAkADQCAMIAkoAiQiBmohByAJKAIQQQBOBEAgCSgCICEBIAkrAwAgBysDAGIEf0EABSAJKwMIIAcrAwhhCw0CIAlBCGorAwAiHCABIAxqIgpBCGorAwChIAcrAwAgCSsDACIdoaIgHSAKKwMAoSAHQQhqKwMAIByhoqFEAAAAAAAAAABhDQILIAchCSAGIAhHDQALIAghBgwBCyAJKAIcIQggCSgCGCEKIAEgDGoiCSAGNgIkAkAgCkUNACABIApHBEAgCiALaiAINgIADAELIAkgCDYCHAsgByABNgIgIAgEQCAHIAggDGogBiAIRhsgCjYCGAsgASAGRw0BCwsgACgCBCIKQRxqIQ8gBiEOA0ACQCAKIAYgCmoiCCgCIGoiCSsDACAKIAogCCgCJCIGaiILKAIkIgFqIgcrAwBhBEAgCSsDCCAHKwMIYQ0BCyAJKwMAIhwgCUEIaisDACIdIAgrAwAgCEEIaisDACALKwMAIAtBCGorAwAgBysDACIgIAdBCGorAwAiHhAoRQ0AICAgHKEhIiAeIB2hISMCQCAdIAogCSgCIGoiDUEIaisDACIfoSAKIAkoAiRqIhArAwAiJCAcoSIooiAcIA0rAwAiIaEgEEEIaisDACIlIB2hIieiY0UEQCAjICEgIKGiICIgHyAeoaJjICAgJKEgJ6IgKCAeICWhomNyDQEMAgsgIyAkICChoiAiICUgHqGioUQAAAAAAAAAAGZFICAgIaEgHyAdoaIgISAcoSAeIB+hoqFEAAAAAAAAAABmRXINAQsgHCAgoSEiIB0gHqEhIwJAIB4gCiAHKAIgaiINQQhqKwMAIh+hIAogBygCJGoiECsDACIkICChIiiiICAgDSsDACIhoSAQQQhqKwMAIiUgHqEiJ6JjRQRAICMgISAcoaIgIiAfIB2homMgHCAkoSAnoiAoIB0gJaGiY3INAQwCCyAjICQgHKGiICIgJSAdoaKhRAAAAAAAAAAAZkUgHCAhoSAfIB6hoiAhICChIB0gH6GioUQAAAAAAAAAAGZFcg0BCyAHKAIQQf////8HcSENIAgoAhBB/////wdxIRAgCSgCEEH/////B3EhDiACKAIAIAIoAggiBmtBAk0EQCACIAZBA0EEQQQQTCACKAIIIQYLIAIoAgQgBkECdGoiCSANNgIIIAkgEDYCBCAJIA42AgAgAiAGQQNqNgIIIAgoAhwhCSAIKAIYIQ0gBygCJCEGIAogCCgCICIHaiIQIAgoAiQiCDYCJAJAIA1FDQAgByANRwRAIA0gD2ogCTYCAAwBCyAQIAk2AhwLIAggCmoiECAHNgIgIAkEQCAQIAkgCmogCCAJRhsgDTYCGAsgCygCHCEIIAsoAhghByAKIAsoAiAiCWoiDSALKAIkIgs2AiQCQCAHRQ0AIAcgCUcEQCAHIA9qIAg2AgAMAQsgDSAINgIcCyAKIAtqIg0gCTYCICAIBEAgDSAIIApqIAggC0YbIAc2AhgLIAEhDgsgBiAORw0ACyAGIApqIQkDQCAGIQgCQANAIAogCSgCJCIBaiEHIAkoAhBBAE4EQCAJKAIgIQYgCSsDACAHKwMAYgR/QQAFIAkrAwggBysDCGELDQIgCUEIaisDACIcIAYgCmoiC0EIaisDAKEgBysDACAJKwMAIh2hoiAdIAsrAwChIAdBCGorAwAgHKGioUQAAAAAAAAAAGENAgsgByEJIAEgCEcNAAtBAiELIAghAQwECyAJKAIcIQggCSgCGCELIAYgCmoiCSABNgIkAkAgC0UNACAGIAtHBEAgCyAPaiAINgIADAELIAkgCDYCHAsgByAGNgIgIAgEQCAHIAggCmogASAIRhsgCzYCGAtBAiELIAEgBkcNAAsMAgsgDigCEEH/////B3EhByAKIA1qKAIAQf////8HcSEKIAggDGoiASgCEEH/////B3EhCSABKAIkIQEgAigCACACKAIIIgZrQQJNBEAgAiAGQQNBBEEEEEwgAigCCCEGCyACKAIEIAZBAnRqIgggCTYCCCAIIAc2AgQgCCAKNgIAIAIgBkEDajYCCCAOKAIcIQYgDigCGCEIIAwgDigCICIHaiIJIA4oAiQiCjYCJCAIBEAgCSAIIAxqIAcgCEYbIAY2AhwLIAogDGoiCSAHNgIgIAZFDQAgCSAGIAxqIAYgCkYbIAg2AhgMAAsACwALySUCCX8BfiMAQRBrIggkAAJAAkACQAJAAkAgAEH1AU8EQCAAQcz/e0sEQEEAIQAMBgsgAEELaiICQXhxIQVB5O/AACgCACIJRQ0EQR8hBkEAIAVrIQMgAEH0//8HTQRAIAVBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBgsgBkECdEHI7MAAaigCACICRQRAQQAhAAwCCyAFQRkgBkEBdmtBACAGQR9HG3QhBEEAIQADQAJAIAIoAgRBeHEiByAFSQ0AIAcgBWsiByADTw0AIAIhASAHIgMNAEEAIQMgASEADAQLIAIoAhQiByAAIAcgAiAEQR12QQRxaigCECICRxsgACAHGyEAIARBAXQhBCACDQALDAELAkACQAJAAkACQEHg78AAKAIAIgRBECAAQQtqQfgDcSAAQQtJGyIFQQN2IgB2IgFBA3EEQCABQX9zQQFxIABqIgdBA3QiAUHY7cAAaiIAIAFB4O3AAGooAgAiAigCCCIDRg0BIAMgADYCDCAAIAM2AggMAgsgBUHo78AAKAIATQ0IIAENAkHk78AAKAIAIgBFDQggAGhBAnRByOzAAGooAgAiAigCBEF4cSAFayEDIAIhAQNAAkAgASgCECIADQAgASgCFCIADQAgAigCGCEGAkACQCACIAIoAgwiAEYEQCACQRRBECACKAIUIgAbaigCACIBDQFBACEADAILIAIoAggiASAANgIMIAAgATYCCAwBCyACQRRqIAJBEGogABshBANAIAQhByABIgBBFGogAEEQaiAAKAIUIgEbIQQgAEEUQRAgARtqKAIAIgENAAsgB0EANgIACyAGRQ0GAkAgAigCHEECdEHI7MAAaiIBKAIAIAJHBEAgAiAGKAIQRwRAIAYgADYCFCAADQIMCQsgBiAANgIQIAANAQwICyABIAA2AgAgAEUNBgsgACAGNgIYIAIoAhAiAQRAIAAgATYCECABIAA2AhgLIAIoAhQiAUUNBiAAIAE2AhQgASAANgIYDAYLIAAoAgRBeHEgBWsiASADIAEgA0kiARshAyAAIAIgARshAiAAIQEMAAsAC0Hg78AAIARBfiAHd3E2AgALIAJBCGohACACIAFBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMBwsCQEECIAB0IgJBACACa3IgASAAdHFoIgdBA3QiAUHY7cAAaiICIAFB4O3AAGooAgAiACgCCCIDRwRAIAMgAjYCDCACIAM2AggMAQtB4O/AACAEQX4gB3dxNgIACyAAIAVBA3I2AgQgACAFaiIGIAEgBWsiB0EBcjYCBCAAIAFqIAc2AgBB6O/AACgCACICBEBB8O/AACgCACEBAkBB4O/AACgCACIEQQEgAkEDdnQiA3FFBEBB4O/AACADIARyNgIAIAJBeHFB2O3AAGoiAyEEDAELIAJBeHEiAkHY7cAAaiEEIAJB4O3AAGooAgAhAwsgBCABNgIIIAMgATYCDCABIAQ2AgwgASADNgIICyAAQQhqIQBB8O/AACAGNgIAQejvwAAgBzYCAAwGC0Hk78AAQeTvwAAoAgBBfiACKAIcd3E2AgALAkACQCADQRBPBEAgAiAFQQNyNgIEIAIgBWoiByADQQFyNgIEIAMgB2ogAzYCAEHo78AAKAIAIgFFDQFB8O/AACgCACEAAkBB4O/AACgCACIEQQEgAUEDdnQiBnFFBEBB4O/AACAEIAZyNgIAIAFBeHFB2O3AAGoiBCEBDAELIAFBeHEiBEHY7cAAaiEBIARB4O3AAGooAgAhBAsgASAANgIIIAQgADYCDCAAIAE2AgwgACAENgIIDAELIAIgAyAFaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDAELQfDvwAAgBzYCAEHo78AAIAM2AgALIAJBCGoiAEUNAwwECyAAIAFyRQRAQQAhAUECIAZ0IgBBACAAa3IgCXEiAEUNAyAAaEECdEHI7MAAaigCACEACyAARQ0BCwNAIAMgACgCBEF4cSICIAVrIgQgAyADIARLIgQbIAIgBUkiAhshAyABIAAgASAEGyACGyEBIAAoAhAiAgR/IAIFIAAoAhQLIgANAAsLIAFFDQAgBUHo78AAKAIAIgBNIAMgACAFa09xDQAgASgCGCEGAkACQCABIAEoAgwiAEYEQCABQRRBECABKAIUIgAbaigCACICDQFBACEADAILIAEoAggiAiAANgIMIAAgAjYCCAwBCyABQRRqIAFBEGogABshBANAIAQhByACIgBBFGogAEEQaiAAKAIUIgIbIQQgAEEUQRAgAhtqKAIAIgINAAsgB0EANgIACwJAIAZFDQACQAJAIAEoAhxBAnRByOzAAGoiAigCACABRwRAIAEgBigCEEcEQCAGIAA2AhQgAA0CDAQLIAYgADYCECAADQEMAwsgAiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIAI2AhAgAiAANgIYCyABKAIUIgJFDQEgACACNgIUIAIgADYCGAwBC0Hk78AAQeTvwAAoAgBBfiABKAIcd3E2AgALAkAgA0EQTwRAIAEgBUEDcjYCBCABIAVqIgAgA0EBcjYCBCAAIANqIAM2AgAgA0GAAk8EQCAAIAMQNwwCCwJAQeDvwAAoAgAiAkEBIANBA3Z0IgRxRQRAQeDvwAAgAiAEcjYCACADQfgBcUHY7cAAaiIDIQIMAQsgA0H4AXEiBEHY7cAAaiECIARB4O3AAGooAgAhAwsgAiAANgIIIAMgADYCDCAAIAI2AgwgACADNgIIDAELIAEgAyAFaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIECyABQQhqIgANAQsCQAJAAkACQAJAIAVB6O/AACgCACIBSwRAIAVB7O/AACgCACIATwRAIAhBBGohAAJ/IAVBr4AEakGAgHxxIgFBEHYgAUH//wNxQQBHaiIBQAAiBEF/RgRAQQAhAUEADAELIAFBEHQiAkEQayACIARBEHQiAUEAIAJrRhsLIQIgAEEANgIIIAAgAjYCBCAAIAE2AgAgCCgCBCIBRQRAQQAhAAwICyAIKAIMIQdB+O/AACAIKAIIIgRB+O/AACgCAGoiADYCAEH878AAIABB/O/AACgCACICIAAgAksbNgIAAkACQEH078AAKAIAIgIEQEHI7cAAIQADQCABIAAoAgAiAyAAKAIEIgZqRg0CIAAoAggiAA0ACwwCC0GE8MAAKAIAIgBBACAAIAFNG0UEQEGE8MAAIAE2AgALQYjwwABB/x82AgBB1O3AACAHNgIAQcztwAAgBDYCAEHI7cAAIAE2AgBB5O3AAEHY7cAANgIAQeztwABB4O3AADYCAEHg7cAAQdjtwAA2AgBB9O3AAEHo7cAANgIAQejtwABB4O3AADYCAEH87cAAQfDtwAA2AgBB8O3AAEHo7cAANgIAQYTuwABB+O3AADYCAEH47cAAQfDtwAA2AgBBjO7AAEGA7sAANgIAQYDuwABB+O3AADYCAEGU7sAAQYjuwAA2AgBBiO7AAEGA7sAANgIAQZzuwABBkO7AADYCAEGQ7sAAQYjuwAA2AgBBpO7AAEGY7sAANgIAQZjuwABBkO7AADYCAEGg7sAAQZjuwAA2AgBBrO7AAEGg7sAANgIAQajuwABBoO7AADYCAEG07sAAQajuwAA2AgBBsO7AAEGo7sAANgIAQbzuwABBsO7AADYCAEG47sAAQbDuwAA2AgBBxO7AAEG47sAANgIAQcDuwABBuO7AADYCAEHM7sAAQcDuwAA2AgBByO7AAEHA7sAANgIAQdTuwABByO7AADYCAEHQ7sAAQcjuwAA2AgBB3O7AAEHQ7sAANgIAQdjuwABB0O7AADYCAEHk7sAAQdjuwAA2AgBB7O7AAEHg7sAANgIAQeDuwABB2O7AADYCAEH07sAAQejuwAA2AgBB6O7AAEHg7sAANgIAQfzuwABB8O7AADYCAEHw7sAAQejuwAA2AgBBhO/AAEH47sAANgIAQfjuwABB8O7AADYCAEGM78AAQYDvwAA2AgBBgO/AAEH47sAANgIAQZTvwABBiO/AADYCAEGI78AAQYDvwAA2AgBBnO/AAEGQ78AANgIAQZDvwABBiO/AADYCAEGk78AAQZjvwAA2AgBBmO/AAEGQ78AANgIAQazvwABBoO/AADYCAEGg78AAQZjvwAA2AgBBtO/AAEGo78AANgIAQajvwABBoO/AADYCAEG878AAQbDvwAA2AgBBsO/AAEGo78AANgIAQcTvwABBuO/AADYCAEG478AAQbDvwAA2AgBBzO/AAEHA78AANgIAQcDvwABBuO/AADYCAEHU78AAQcjvwAA2AgBByO/AAEHA78AANgIAQdzvwABB0O/AADYCAEHQ78AAQcjvwAA2AgBB9O/AACABQQ9qQXhxIgBBCGsiAjYCAEHY78AAQdDvwAA2AgBB7O/AACAEQShrIgQgASAAa2pBCGoiADYCACACIABBAXI2AgQgASAEakEoNgIEQYDwwABBgICAATYCAAwICyACIANJIAEgAk1yDQAgACgCDCIDQQFxDQAgA0EBdiAHRg0DC0GE8MAAQYTwwAAoAgAiACABIAAgAUkbNgIAIAEgBGohA0HI7cAAIQACQAJAA0AgAyAAKAIAIgZHBEAgACgCCCIADQEMAgsLIAAoAgwiA0EBcQ0AIANBAXYgB0YNAQtByO3AACEAA0ACQCACIAAoAgAiA08EQCACIAMgACgCBGoiBkkNAQsgACgCCCEADAELC0H078AAIAFBD2pBeHEiAEEIayIDNgIAQezvwAAgBEEoayIJIAEgAGtqQQhqIgA2AgAgAyAAQQFyNgIEIAEgCWpBKDYCBEGA8MAAQYCAgAE2AgAgAiAGQSBrQXhxQQhrIgAgACACQRBqSRsiA0EbNgIEQcjtwAApAgAhCiADQRBqQdDtwAApAgA3AgAgA0EIaiIAIAo3AgBB1O3AACAHNgIAQcztwAAgBDYCAEHI7cAAIAE2AgBB0O3AACAANgIAIANBHGohAANAIABBBzYCACAAQQRqIgAgBkkNAAsgAiADRg0HIAMgAygCBEF+cTYCBCACIAMgAmsiAEEBcjYCBCADIAA2AgAgAEGAAk8EQCACIAAQNwwICwJAQeDvwAAoAgAiAUEBIABBA3Z0IgRxRQRAQeDvwAAgASAEcjYCACAAQfgBcUHY7cAAaiIAIQEMAQsgAEH4AXEiAEHY7cAAaiEBIABB4O3AAGooAgAhAAsgASACNgIIIAAgAjYCDCACIAE2AgwgAiAANgIIDAcLIAAgATYCACAAIAAoAgQgBGo2AgQgAUEPakF4cUEIayIEIAVBA3I2AgQgBkEPakF4cUEIayIDIAQgBWoiAGshBSADQfTvwAAoAgBGDQMgA0Hw78AAKAIARg0EIAMoAgQiAkEDcUEBRgRAIAMgAkF4cSIBEDMgASAFaiEFIAEgA2oiAygCBCECCyADIAJBfnE2AgQgACAFQQFyNgIEIAAgBWogBTYCACAFQYACTwRAIAAgBRA3DAYLAkBB4O/AACgCACIBQQEgBUEDdnQiAnFFBEBB4O/AACABIAJyNgIAIAVB+AFxQdjtwABqIgUhAwwBCyAFQfgBcSIBQdjtwABqIQMgAUHg7cAAaigCACEFCyADIAA2AgggBSAANgIMIAAgAzYCDCAAIAU2AggMBQtB7O/AACAAIAVrIgE2AgBB9O/AAEH078AAKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohAAwGC0Hw78AAKAIAIQACQCABIAVrIgJBD00EQEHw78AAQQA2AgBB6O/AAEEANgIAIAAgAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwBC0Ho78AAIAI2AgBB8O/AACAAIAVqIgQ2AgAgBCACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQLIABBCGohAAwFCyAAIAQgBmo2AgRB9O/AAEH078AAKAIAIgBBD2pBeHEiAUEIayICNgIAQezvwABB7O/AACgCACAEaiIEIAAgAWtqQQhqIgE2AgAgAiABQQFyNgIEIAAgBGpBKDYCBEGA8MAAQYCAgAE2AgAMAwtB9O/AACAANgIAQezvwABB7O/AACgCACAFaiIBNgIAIAAgAUEBcjYCBAwBC0Hw78AAIAA2AgBB6O/AAEHo78AAKAIAIAVqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAAsgBEEIaiEADAELQQAhAEHs78AAKAIAIgEgBU0NAEHs78AAIAEgBWsiATYCAEH078AAQfTvwAAoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEACyAIQRBqJAAgAAvTDQIQfwJ+IwBBIGsiCyQAAkACQCABKAIMIgkgAmoiBCAJTwRAIAEoAgQiDiAOQQFqIgdBA3YiBkEHbCAOQQhJGyICQQF2IARJBEACQAJAAn8gAkEBaiICIAQgAiAESxsiAkEPTwRAIAJB/////wFLDQJBfyACQQN0QQduQQFrZ3ZBAWoMAQtBBCACQQhxQQhqIAJBBEkbCyICrUIYfiIUQiCIpw0EIBSnIgUgAkEIaiIGaiIHIAVJIAdB+P///wdLcg0EIAdBCBDOASIEDQEgBxCZASALKAIUIQIgCygCECEEDAULEJ4BIAsoAhwhAiALKAIYIQQMBAsgBCAFaiEMIAYEQCAMQf8BIAb8CwALIAJBAWsiDyACQQN2QQdsIA9BCEkbIRMCQCAJRQRAIAEoAgAhBQwBCyAMQQhqIQggASgCACIFQRhrIQ0gBSkDAEJ/hUKAgYKEiJCgwIB/gyEVQQAhAiAJIQYgBSEEA0AgFVAEQANAIAJBCGohAiAEQQhqIgQpAwBCgIGChIiQoMCAf4MiFEKAgYKEiJCgwIB/UQ0ACyAUQoCBgoSIkKDAgH+FIRULIAwgDyADIA0gFXqnQQN2IAJqIhFBaGxqECqnIhBxIgpqKQAAQoCBgoSIkKDAgH+DIhRQBEBBCCESA0AgCiASaiEHIBJBCGohEiAMIAcgD3EiCmopAABCgIGChIiQoMCAf4MiFFANAAsLIBVCAX0gFYMhFSAMIBR6p0EDdiAKaiAPcSIKaiwAAEEATgRAIAwpAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIAxqIBBBGXYiBzoAACAIIApBCGsgD3FqIAc6AAAgDCAKQX9zQRhsaiIQQRBqIAUgEUF/c0EYbGoiB0EQaikAADcAACAQQQhqIAdBCGopAAA3AAAgECAHKQAANwAAIAZBAWsiBg0ACwsgASAPNgIEIAEgDDYCACABIBMgCWs2AghBgYCAgHghBCAORQ0DIA4gDkEYbEEfakF4cSICakEJaiIBRQ0DIAUgAmsgAUEIEMQBDAMLIAEgBwR/IAEoAgAhBEEAIQIgBiAHQQdxQQBHaiIGQQFxIAZBAUcEQCAGQf7///8DcSEKA0AgAiAEaiIGIAYpAwAiFEJ/hUIHiEKBgoSIkKDAgAGDIBRC//79+/fv37//AIR8NwMAIAZBCGoiBiAGKQMAIhRCf4VCB4hCgYKEiJCgwIABgyAUQv/+/fv379+//wCEfDcDACACQRBqIQIgCkECayIKDQALCwRAIAIgBGoiAiACKQMAIhRCf4VCB4hCgYKEiJCgwIABgyAUQv/+/fv379+//wCEfDcDAAsCQCAHQQhPBEAgBCAHaiAEKQAANwAADAELIAdFDQAgBEEIaiAEIAf8CgAAC0EAIQIDQAJAIAIgBGotAABBgAFHDQBBACACayEQIAQgAkF/c0EYbGohCAJAA0AgAyAEIBBBGGxqQRhrECohFCABKAIEIg0gFKciEXEiByEJIAQgB2opAABCgIGChIiQoMCAf4MiFVAEQEEIIQUDQCAFIAlqIQYgBUEIaiEFIAQgBiANcSIJaikAAEKAgYKEiJCgwIB/gyIVUA0ACwsgBCAVeqdBA3YgCWogDXEiCWosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhCQsgCSAHayACIAdrcyANcUEITwRAIAQgCWoiBi0AACAGIBFBGXYiBToAACABKAIAIgYgCUEIayANcWpBCGogBToAACAEIAlBf3NBGGxqIQVB/wFGDQIgCCgAACEEIAggBSgAADYAACAFIAQ2AAAgBSgABCEEIAUgCCgABDYABCAIIAQ2AAQgCCgACCEEIAggBSgACDYACCAFIAQ2AAggBSgADCEEIAUgCCgADDYADCAIIAQ2AAwgCCgAECEEIAggBSgAEDYAECAFIAQ2ABAgBSgAFCEEIAUgCCgAFDYAFCAIIAQ2ABQgASgCACEEDAELCyACIARqIBFBGXYiBjoAACABKAIAIgQgDSACQQhrcWpBCGogBjoAAAwBCyACIAZqQf8BOgAAIAYgASgCBCACQQhrcWpBCGpB/wE6AAAgBUEQaiAIQRBqKQAANwAAIAVBCGogCEEIaikAADcAACAFIAgpAAA3AAAgBiEECyACIA5GIAJBAWohAkUNAAsgASgCDCEJIAEoAgQiASABQQFqQQN2QQdsIAFBCEkbBUEACyICIAlrNgIIQYGAgIB4IQQMAgsQngEgCygCBCECIAsoAgAhBAwBCxCeASALKAIMIQIgCygCCCEECyAAIAI2AgQgACAENgIAIAtBIGokAAvpfAIbfwJ+IwBBkAJrIggkACAIIAI2AgwgCCABNgIIQaDwwAAtAABBAUcEQBBWCyAIQThqQaigwAApAwA3AwBBkPDAAEGQ8MAAKQMAIh5CAXw3AwAgCEGAgICAeDYCaCAIQQI2AhAgCEIENwNgIAhCADcDWCAIQoCAgIDAADcDUCAIQaCgwAApAwA3AzAgCEGY8MAAKQMANwNIIAggHjcDQCAIIAhBCGo2AuQBIAhB3ABqIRogCEHQAGohGyAIQTBqIRwgCEHoAGohHQJAAkACQAJAA0ACQAJAAkACQAJAIAgoAuQBIgQoAgQiBwRAIAQoAgAiBiwAACIBQQBODQEgB0EKSw0CIAYgB2pBAWssAABBAE4NAiAIQfgAaiAIQeQBahA7IAgoAngEQCAIKAJ8IQIMCQsgCCkDgAEhHwwDCyAAIAhBEGpB6AD8CgAADAgLIAGtQv8BgyEfIAQgB0EBazYCBCAEIAZBAWo2AgAMAgsgAUH/AXEgBiwAASIBQf8BcUEHdGpBgAFrIQICQAJAAkACQAJAAkACQAJAAkAgAUEASARAIAIgBiwAAiIBQf8BcUEOdGpBgIABayECIAFBAE4NASACIAYsAAMiAUH/AXFBFXRqQYCAgAFrIQIgAUEATg0CIAJBgICAgAFrrSEeIAYsAAQiAUEATg0DIAFB/wFxIAYsAAUiAUH/AXFBB3RqQYABayECIAFBAE4NBCACIAYsAAYiAUH/AXFBDnRqQYCAAWshAiABQQBODQUgAiAGLAAHIgFB/wFxQRV0akGAgIABayECIAFBAE4NBiACQYCAgIABa61CHIYgHnwhHiAGLAAIIgJBAE4NByAGLQAJIgFBAk8NCCACQf8AcSABQQd0cq1COIYgHnwhH0EKIQIMCQsgAq0hH0ECIQIMCAsgAq0hH0EDIQIMBwsgAq0hH0EEIQIMBgsgAa1C/wGDQhyGIB58IR9BBSECDAULIAKtQhyGIB58IR9BBiECDAQLIAKtQhyGIB58IR9BByECDAMLIAKtQhyGIB58IR9BCCECDAILIAKtQv8Bg0I4hiAefCEfQQkhAgwBC0HkncAAQQ4QhgEhAgwGCyAEIAcgAms2AgQgBCACIAZqNgIACyAIIB83A+gBIB9C/////w9WDQELIAggH0IHgyIeNwPwASAeQgZaBEAgCCAIQfABaq1CgICAgDCENwP4ASAIQfgAaiIBQeiDwAAgCEH4AWoQWSABEHwhAgwECyAfQgdYBEBB0J3AAEEUEIYBIQIMBAsgHqchAgJ/AkACQAJAAkACQAJAAkACQAJAIB+nQQN2IgFBAWsOBQABBQIDCAsgCCgCaEGAgICAeEYEQCAIQQA2AnAgCEKAgICAEDcDaAsgAiAdIAhB5AFqEEQiAQ0DQQAMCAsgCCgCEEECRgRAIAhBADYCKCAIQQA2AiAgCEEANgIYIAhBADYCEAsgCCACOgD4ASAIQQI6APABQQQgAnZBAXFFBEAgCCAIQfABaq1CgICAgMAAhDcDgAEgCCAIQfgBaq1CgICAgMAAhDcDeCAIQYQCaiIBIAhB+ABqEFogARB8IQIMCwsgCEEQaiELIwBBQGoiCiQAIApBEGogCEHkAWoiBhAfAkAgCigCEEEBRgRAIAooAhQhAgwBCwJAIAopAxgiHiAGKAIAQQRqKAIAIgGtWARAIAEgHqdrIQQDQCAEIAYoAgBBBGooAgAiAU8EQEEAIQIgASAERg0EQfegwABBGRCGASECDAQLIApBEGogBhAfIAooAhBBAUYEQCAKKAIUIQIMBAsgCiAKKQMYIh83AwggH0L/////D1YNAiAKIB9CB4MiHjcDMCAeQgZaBEAgCiAKQTBqrUKAgICAMIQ3AzggCkEQaiIBQeiDwAAgCkE4ahBZIAEQfCECDAQLIB9CB1gEQEHjoMAAQRQQhgEhAgwECyAepyECIwBBIGsiDiQAAn8CQAJAAkACQAJAAkACQAJAAkAgH6dBA3YiAUEBaw4EAQIDBAALIAIgASAGQeMAECQMCAsgCygCAEUEQCALQgE3AgALIA4gAjoAAyAOQQU6AAIgAkH/AXFBBUcEQCAOIA5BAmqtQoCAgIDAAIQ3AxggDiAOQQNqrUKAgICAwACENwMQIA5BBGoiASAOQRBqEFogARB8IQIMBwsgBigCACIHQQRqIgIoAgAiAUEDTQRAQeSswABBEBCGASECDAcLIAIgAUEEazYCACAHIAcoAgAiAUEEajYCACALIAEqAAA4AgQMAwsgCygCCEUEQCALQgE3AggLIA4gAjoAAyAOQQU6AAIgAkH/AXFBBUcEQCAOIA5BAmqtQoCAgIDAAIQ3AxggDiAOQQNqrUKAgICAwACENwMQIA5BBGoiASAOQRBqEFogARB8IQIMBQsgBigCACIHQQRqIgIoAgAiAUEDTQRAQeSswABBEBCGASECDAULIAIgAUEEazYCACAHIAcoAgAiAUEEajYCACALIAEqAAA4AgwMAgsgCygCEEUEQCALQgE3AhALIAIgC0EUaiAGEBoiAUUNASAOIAE2AhAgDkEQakGrn8AAQQtB05/AAEEDEHYgDigCEAwFCyALKAIYRQRAIAtCATcCGAsgAiALQRxqIAYQGiIBDQELQQAMAwsgDiABNgIQIA5BEGpBq5/AAEELQdafwABBBhB2IA4oAhAMAgsgDiACNgIQIA5BEGpBq5/AAEELQcSfwABBDxB2IA4oAhAMAQsgDiACNgIQIA5BEGpBq5/AAEELQbafwABBDhB2IA4oAhALIQIgDkEgaiQAIAJFDQALDAILQZChwABBEBCGASECDAELIAogCkEIaq1CgICAgDCENwMQIApBJGoiAUHSg8AAIApBEGoQWSABEHwhAgsgCkFAayQAIAINCkEADAcLIAhB5AFqIQcjAEFAaiITJAAgEyACOgA/IBNBAjoAPgJAIAJB/wFxQQJHBEAgEyATQT5qrUKAgICAwACENwMoIBMgE0E/aq1CgICAgMAAhDcDICATQQhqIgEgE0EgahBaIAEQfCEBDAELIBNCgICAgMAANwIIIBNCgICAgICAgICAfzcCECATQQhqIQ8jAEFAaiIWJAAgFkEQaiAHEB8CQCAWKAIQQQFGBEAgFigCFCEBDAELAkAgFikDGCIeIAcoAgBBBGooAgAiAa1YBEAgASAep2shGQNAIBkgBygCAEEEaigCACICTwRAQQAhASACIBlGDQRB96DAAEEZEIYBIQEMBAsgFkEQaiAHEB8gFigCEEEBRgRAIBYoAhQhAQwECyAWIBYpAxgiHzcDCCAfQv////8PVg0CIBYgH0IHgyIeNwMwIB5CBloEQCAWIBZBMGqtQoCAgIAwhDcDOCAWQRBqIgFB6IPAACAWQThqEFkgARB8IQEMBAsgH0IHWARAQeOgwABBFBCGASEBDAQLIB6nIQIjAEEQayINJAACfwJAAkACQAJAAkAgH6dBA3YiAUEBaw4CAQIACyACIAEgB0HjABAkDAQLIA8oAgxBgICAgHhGBEAgD0EANgIUIA9CgICAgBA3AgwLIAIgD0EMaiAHEEQiAQ0BQQAMAwsjAEHwAWsiFCQAIBQgAjoA7wEgFEECOgDuAQJAIAJB/wFxQQJHBEAgFCAUQe4Baq1CgICAgMAAhDcDgAEgFCAUQe8Baq1CgICAgMAAhDcDeCAUQQhqIgEgFEH4AGoQWiABEHwhAQwBCyAUQQI2AjAgFEECNgIQIBRBADYCCCAUQoCAgICAgICAgH83AmggFEKAgICAwAA3AmAgFEEIaiECIwBBQGoiFyQAIBdBEGogBxAfAkAgFygCEEEBRgRAIBcoAhQhAQwBCwJAIBcpAxgiHiAHKAIAQQRqKAIAIgGtWARAIAEgHqdrIQ4DQCAOIAcoAgBBBGooAgAiBE8EQEEAIQEgBCAORg0EQfegwABBGRCGASEBDAQLIBdBEGogBxAfIBcoAhBBAUYEQCAXKAIUIQEMBAsgFyAXKQMYIh83AwggH0L/////D1YNAiAXIB9CB4MiHjcDMCAeQgZaBEAgFyAXQTBqrUKAgICAMIQ3AzggF0EQaiIBQeiDwAAgF0E4ahBZIAEQfCEBDAQLIB9CB1gEQEHjoMAAQRQQhgEhAQwECyAepyEEIwBBIGsiECQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAIB+nQQN2IgFBAWsOBQECAwQFAAsgBCABIAdB4gAQJAwKCyACKAIARQRAIAJCATcCAAsgECAEOgADIBBBBToAAiAEQf8BcUEFRwRAIBAgEEECaq1CgICAgMAAhDcDGCAQIBBBA2qtQoCAgIDAAIQ3AxAgEEEEaiIBIBBBEGoQWiABEHwhAQwJCyAHKAIAIgZBBGoiBCgCACIBQQNNBEBB5KzAAEEQEIYBIQEMCQsgBCABQQRrNgIAIAYgBigCACIBQQRqNgIAIAIgASoAADgCBAwECyACKAIIQQJGBEAgAkEANgIgIAJBADYCGCACQQA2AhAgAkEANgIICyAQIAQ6AAMgEEECOgACIARB/wFxQQJHBEAgECAQQQJqrUKAgICAwACENwMYIBAgEEEDaq1CgICAgMAAhDcDECAQQQRqIgEgEEEQahBaIAEQfCEBDAcLIAJBCGohCiMAQUBqIhEkACARQRBqIAcQHwJAIBEoAhBBAUYEQCARKAIUIQEMAQsCQCARKQMYIh4gBygCAEEEaigCACIBrVgEQCABIB6nayELA0AgCyAHKAIAQQRqKAIAIgRPBEBBACEBIAQgC0YNBEH3oMAAQRkQhgEhAQwECyARQRBqIAcQHyARKAIQQQFGBEAgESgCFCEBDAQLIBEgESkDGCIfNwMIIB9C/////w9WDQIgESAfQgeDIh43AzAgHkIGWgRAIBEgEUEwaq1CgICAgDCENwM4IBFBEGoiAUHog8AAIBFBOGoQWSABEHwhAQwECyAfQgdYBEBB46DAAEEUEIYBIQEMBAsgHqchBCMAQSBrIgUkAAJ/AkACQAJAAkACQAJAAkACQAJAAkAgH6dBA3YiAUEBaw4EAQIDBAALIAQgASAHQeEAECQMCQsgCigCAEUEQCAKQgE3AgALIAUgBDoAAyAFQQU6AAIgBEH/AXFBBUcEQCAFIAVBAmqtQoCAgIDAAIQ3AxggBSAFQQNqrUKAgICAwACENwMQIAVBBGoiASAFQRBqEFogARB8IQEMCAsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAgLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAKIAEqAAA4AgQMAwsgCigCCEUEQCAKQgE3AggLIAUgBDoAAyAFQQU6AAIgBEH/AXFBBUcEQCAFIAVBAmqtQoCAgIDAAIQ3AxggBSAFQQNqrUKAgICAwACENwMQIAVBBGoiASAFQRBqEFogARB8IQEMBgsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAYLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAKIAEqAAA4AgwMAgsgCigCEEUEQCAKQgE3AhALIAUgBDoAAyAFQQU6AAIgBEH/AXFBBUcEQCAFIAVBAmqtQoCAgIDAAIQ3AxggBSAFQQNqrUKAgICAwACENwMQIAVBBGoiASAFQRBqEFogARB8IQEMBAsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAQLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAKIAEqAAA4AhQMAQsgCigCGEUEQCAKQgE3AhgLIAUgBDoAAyAFQQU6AAIgBEH/AXFBBUcEQCAFIAVBAmqtQoCAgIDAAIQ3AxggBSAFQQNqrUKAgICAwACENwMQIAVBBGoiASAFQRBqEFogARB8IQEMAgsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAILIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAKIAEqAAA4AhwLQQAMBAsgBSABNgIQIAVBEGpB8p3AAEEGQf+dwABBBhB2IAUoAhAMAwsgBSABNgIQIAVBEGpB8p3AAEEGQfqdwABBBRB2IAUoAhAMAgsgBSABNgIQIAVBEGpB8p3AAEEGQfmdwABBARB2IAUoAhAMAQsgBSABNgIQIAVBEGpB8p3AAEEGQfidwABBARB2IAUoAhALIQEgBUEgaiQAIAFFDQALDAILQZChwABBEBCGASEBDAELIBEgEUEIaq1CgICAgDCENwMQIBFBJGoiAUHSg8AAIBFBEGoQWSABEHwhAQsgEUFAayQAIAENBgwDCyACKAIoQQJGBEAgAkEANgJQIAJBADYCSCACQQA2AkAgAkEANgI4IAJBADYCMCACQQA2AigLIBAgBDoAAyAQQQI6AAIgBEH/AXFBAkcEQCAQIBBBAmqtQoCAgIDAAIQ3AxggECAQQQNqrUKAgICAwACENwMQIBBBBGoiASAQQRBqEFogARB8IQEMBQsgAkEoaiAHQeEAEDQiAQ0EDAILIAIoAmRBgICAgHhGBEAgAkEANgJsIAJCgICAgBA3AmQLIAQgAkHkAGogBxBEIgFFDQEgECABNgIQIBBBEGpB0p7AAEELQfGewABBCRB2IBAoAhAMBgsgAkHYAGohESMAQZAEayIVJAAgFSAEOgCPBCAVQQI6AI4EAkAgBEH/AXFBAkcEQCAVIBVBjgRqrUKAgICAwACENwOQAiAVIBVBjwRqrUKAgICAwACENwOIAiAVQQRqIgEgFUGIAmoQWiABEHwhAQwBCyAVQYGAgIB4NgL8ASAVQQA2AgQgFUECNgLMASAVQQI2AlQgFUECNgI0IBVBAjYCDCAVQQRqIRIjAEFAaiIYJAAgGEEQaiAHEB8CQCAYKAIQQQFGBEAgGCgCFCEBDAELAkAgGCkDGCIeIAcoAgBBBGooAgAiAa1YBEAgASAep2shCgNAIAogBygCAEEEaigCACIETwRAQQAhASAEIApGDQRB96DAAEEZEIYBIQEMBAsgGEEQaiAHEB8gGCgCEEEBRgRAIBgoAhQhAQwECyAYIBgpAxgiHzcDCCAfQv////8PVg0CIBggH0IHgyIeNwMwIB5CBloEQCAYIBhBMGqtQoCAgIAwhDcDOCAYQRBqIgFB6IPAACAYQThqEFkgARB8IQEMBAsgH0IHWARAQeOgwABBFBCGASEBDAQLIB6nIQQjAEEgayIMJAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgH6dBA3YiAUEBaw4LAQIDBAAAAAAABQYACyAEIAEgB0HhABAkDA0LIBIoAgBFBEAgEkIBNwIACyAEIBJBBGogBxAaIgENBUEADAwLIBJB+AFqIQsgEigC+AFBgYCAgHhGBEAgC0GAgICAeDYCAAsgDCAEOgADIAxBAjoAAiAEQf8BcUECRwRAIAwgDEECaq1CgICAgMAAhDcDGCAMIAxBA2qtQoCAgIDAAIQ3AxAgDEEEaiIBIAxBEGoQWiABEHwhAQwKCyMAQUBqIgUkACAFQRBqIAcQHwJAIAUoAhBBAUYEQCAFKAIUIQEMAQsCQCAFKQMYIh4gBygCAEEEaigCACIBrVgEQCABIB6nayEGA0AgBiAHKAIAQQRqKAIAIgRPBEBBACEBIAQgBkYNBEH3oMAAQRkQhgEhAQwECyAFQRBqIAcQHyAFKAIQQQFGBEAgBSgCFCEBDAQLIAUgBSkDGCIfNwMIIB9C/////w9WDQIgBSAfQgeDIh43AzAgHkIGWgRAIAUgBUEwaq1CgICAgDCENwM4IAVBEGoiAUHog8AAIAVBOGoQWSABEHwhAQwECyAfQgdYBEBB46DAAEEUEIYBIQEMBAsgHqchBAJ/IB+nQQN2IgFBAUYEQCALKAIAQYCAgIB4RgRAIAtBADYCCCALQoCAgIAQNwIAC0EAIAQgCyAHEEQiAUUNARogBSABNgIQIAVBEGpB/a7AAEEJQYavwABBARB2IAUoAhAhAQwFCyAEIAEgB0HgABAkCyIBRQ0ACwwCC0GQocAAQRAQhgEhAQwBCyAFIAVBCGqtQoCAgIAwhDcDECAFQSRqIgFB0oPAACAFQRBqEFkgARB8IQELIAVBQGskACABDQlBAAwLCyASKAIIQQJGBEAgEkEANgIoIBJBADYCICASQQA2AhggEkEANgIQIBJBADYCCAsgDCAEOgADIAxBAjoAAiAEQf8BcUECRwRAIAwgDEECaq1CgICAgMAAhDcDGCAMIAxBA2qtQoCAgIDAAIQ3AxAgDEEEaiIBIAxBEGoQWiABEHwhAQwICyASQQhqIQUjAEFAaiIJJAAgCUEQaiAHEB8CQCAJKAIQQQFGBEAgCSgCFCEBDAELAkAgCSkDGCIeIAcoAgBBBGooAgAiAa1YBEAgASAep2shCwNAIAsgBygCAEEEaigCACIETwRAQQAhASAEIAtGDQRB96DAAEEZEIYBIQEMBAsgCUEQaiAHEB8gCSgCEEEBRgRAIAkoAhQhAQwECyAJIAkpAxgiHzcDCCAfQv////8PVg0CIAkgH0IHgyIeNwMwIB5CBloEQCAJIAlBMGqtQoCAgIAwhDcDOCAJQRBqIgFB6IPAACAJQThqEFkgARB8IQEMBAsgH0IHWARAQeOgwABBFBCGASEBDAQLIB6nIQQjAEEgayIDJAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQCAfp0EDdiIBQQFrDgUBAgMEBQALIAQgASAHQeAAECQMCwsgBSgCAEUEQCAFQgE3AgALIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMCgsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAoLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAFIAEqAAA4AgQMBAsgBSgCCEUEQCAFQgE3AggLIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMCAsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAgLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAFIAEqAAA4AgwMAwsgBSgCEEUEQCAFQgE3AhALIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMBgsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAYLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAFIAEqAAA4AhQMAgsgBSgCGEUEQCAFQgE3AhgLIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMBAsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAQLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAFIAEqAAA4AhwMAQsgBSgCIEUEQCAFQgE3AiALIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMAgsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAILIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAFIAEqAAA4AiQLQQAMBQsgAyABNgIQIANBEGpBhLDAAEEIQZewwABBDRB2IAMoAhAMBAsgAyABNgIQIANBEGpBhLDAAEEIQZGwwABBBhB2IAMoAhAMAwsgAyABNgIQIANBEGpBhLDAAEEIQYywwABBBRB2IAMoAhAMAgsgAyABNgIQIANBEGpBhLDAAEEIQfOvwABBARB2IAMoAhAMAQsgAyABNgIQIANBEGpBhLDAAEEIQfKvwABBARB2IAMoAhALIQEgA0EgaiQAIAFFDQALDAILQZChwABBEBCGASEBDAELIAkgCUEIaq1CgICAgDCENwMQIAlBJGoiAUHSg8AAIAlBEGoQWSABEHwhAQsgCUFAayQAIAENB0EADAoLIBIoAjBBAkYEQCASQQA2AkggEkEANgJAIBJBADYCOCASQQA2AjALIAwgBDoAAyAMQQI6AAIgBEH/AXFBAkcEQCAMIAxBAmqtQoCAgIDAAIQ3AxggDCAMQQNqrUKAgICAwACENwMQIAxBBGoiASAMQRBqEFogARB8IQEMBgsgEkEwaiEFIwBBQGoiCSQAIAlBEGogBxAfAkAgCSgCEEEBRgRAIAkoAhQhAQwBCwJAIAkpAxgiHiAHKAIAQQRqKAIAIgGtWARAIAEgHqdrIQsDQCALIAcoAgBBBGooAgAiBE8EQEEAIQEgBCALRg0EQfegwABBGRCGASEBDAQLIAlBEGogBxAfIAkoAhBBAUYEQCAJKAIUIQEMBAsgCSAJKQMYIh83AwggH0L/////D1YNAiAJIB9CB4MiHjcDMCAeQgZaBEAgCSAJQTBqrUKAgICAMIQ3AzggCUEQaiIBQeiDwAAgCUE4ahBZIAEQfCEBDAQLIB9CB1gEQEHjoMAAQRQQhgEhAQwECyAepyEEIwBBIGsiAyQAAn8CQAJAAkACQAJAAkACQAJAAkACQCAfp0EDdiIBQQFrDgQBAgMEAAsgBCABIAdB4AAQJAwJCyAFKAIARQRAIAVCATcCAAsgAyAEOgADIANBBToAAiAEQf8BcUEFRwRAIAMgA0ECaq1CgICAgMAAhDcDGCADIANBA2qtQoCAgIDAAIQ3AxAgA0EEaiIBIANBEGoQWiABEHwhAQwICyAHKAIAIgZBBGoiBCgCACIBQQNNBEBB5KzAAEEQEIYBIQEMCAsgBCABQQRrNgIAIAYgBigCACIBQQRqNgIAIAUgASoAADgCBAwDCyAFKAIIRQRAIAVCATcCCAsgAyAEOgADIANBBToAAiAEQf8BcUEFRwRAIAMgA0ECaq1CgICAgMAAhDcDGCADIANBA2qtQoCAgIDAAIQ3AxAgA0EEaiIBIANBEGoQWiABEHwhAQwGCyAHKAIAIgZBBGoiBCgCACIBQQNNBEBB5KzAAEEQEIYBIQEMBgsgBCABQQRrNgIAIAYgBigCACIBQQRqNgIAIAUgASoAADgCDAwCCyAFKAIQRQRAIAVCATcCEAsgAyAEOgADIANBBToAAiAEQf8BcUEFRwRAIAMgA0ECaq1CgICAgMAAhDcDGCADIANBA2qtQoCAgIDAAIQ3AxAgA0EEaiIBIANBEGoQWiABEHwhAQwECyAHKAIAIgZBBGoiBCgCACIBQQNNBEBB5KzAAEEQEIYBIQEMBAsgBCABQQRrNgIAIAYgBigCACIBQQRqNgIAIAUgASoAADgCFAwBCyAFKAIYRQRAIAVCATcCGAsgAyAEOgADIANBBToAAiAEQf8BcUEFRwRAIAMgA0ECaq1CgICAgMAAhDcDGCADIANBA2qtQoCAgIDAAIQ3AxAgA0EEaiIBIANBEGoQWiABEHwhAQwCCyAHKAIAIgZBBGoiBCgCACIBQQNNBEBB5KzAAEEQEIYBIQEMAgsgBCABQQRrNgIAIAYgBigCACIBQQRqNgIAIAUgASoAADgCHAtBAAwECyADIAE2AhAgA0EQakHnr8AAQQtB/K/AAEEIEHYgAygCEAwDCyADIAE2AhAgA0EQakHnr8AAQQtB9K/AAEEIEHYgAygCEAwCCyADIAE2AhAgA0EQakHnr8AAQQtB86/AAEEBEHYgAygCEAwBCyADIAE2AhAgA0EQakHnr8AAQQtB8q/AAEEBEHYgAygCEAshASADQSBqJAAgAUUNAAsMAgtBkKHAAEEQEIYBIQEMAQsgCSAJQQhqrUKAgICAMIQ3AxAgCUEkaiIBQdKDwAAgCUEQahBZIAEQfCEBCyAJQUBrJAAgAQ0FQQAMCQsgEigCUEECRgRAIBJBAjYCqAEgEkECNgKIASASQQA2AoABIBJBADYCeCASQQA2AnAgEkEANgJoIBJBADYCYCASQQA2AlggEkEANgJQCyAMIAQ6AAMgDEECOgACIARB/wFxQQJHBEAgDCAMQQJqrUKAgICAwACENwMYIAwgDEEDaq1CgICAgMAAhDcDECAMQQRqIgEgDEEQahBaIAEQfCEBDAQLIBJB0ABqIQkjAEFAaiIFJAAgBUEQaiAHEB8CQCAFKAIQQQFGBEAgBSgCFCEBDAELAkAgBSkDGCIeIAcoAgBBBGooAgAiAa1YBEAgASAep2shCwNAIAsgBygCAEEEaigCACIETwRAQQAhASAEIAtGDQRB96DAAEEZEIYBIQEMBAsgBUEQaiAHEB8gBSgCEEEBRgRAIAUoAhQhAQwECyAFIAUpAxgiHzcDCCAfQv////8PVg0CIAUgH0IHgyIeNwMwIB5CBloEQCAFIAVBMGqtQoCAgIAwhDcDOCAFQRBqIgFB6IPAACAFQThqEFkgARB8IQEMBAsgH0IHWARAQeOgwABBFBCGASEBDAQLIB6nIQQjAEEgayIDJAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAfp0EDdiIBQQFrDgkBAgMEBQYHCAkACyAEIAEgB0HgABAkDBELIAkoAjhBAkYEQCAJQQA2AlAgCUEANgJIIAlBADYCQCAJQQA2AjgLIAMgBDoAAyADQQI6AAIgBEH/AXFBAkcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMEAsgCUE4aiAHEDUiAQ0PDAgLIAkoAlhBAkYEQCAJQQA2AnAgCUEANgJoIAlBADYCYCAJQQA2AlgLIAMgBDoAAyADQQI6AAIgBEH/AXFBAkcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMDgsgCUHYAGogBxA1IgENDQwHCyAJKAIARQRAIAlCATcCAAsgAyAEOgADIANBBToAAiAEQf8BcUEFRwRAIAMgA0ECaq1CgICAgMAAhDcDGCADIANBA2qtQoCAgIDAAIQ3AxAgA0EEaiIBIANBEGoQWiABEHwhAQwMCyAHKAIAIgZBBGoiBCgCACIBQQNNBEBB5KzAAEEQEIYBIQEMDAsgBCABQQRrNgIAIAYgBigCACIBQQRqNgIAIAkgASoAADgCBAwGCyAJKAIIRQRAIAlCATcCCAsgBCAJQQxqIAcQGiIBRQ0FIAMgATYCECADQRBqQYevwABBCkGnr8AAQQgQdiADKAIQDA0LIAkoAhBFBEAgCUIBNwIQCyAEIAlBFGogBxAaIgFFDQQgAyABNgIQIANBEGpBh6/AAEEKQa+vwABBCRB2IAMoAhAMDAsgCSgCGEUEQCAJQgE3AhgLIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMCAsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAgLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAJIAEqAAA4AhwMAwsgCSgCIEUEQCAJQgE3AiALIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMBgsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAYLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAJIAEqAAA4AiQMAgsgCSgCKEUEQCAJQgE3AigLIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMBAsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAQLIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAJIAEqAAA4AiwMAQsgCSgCMEUEQCAJQgE3AjALIAMgBDoAAyADQQU6AAIgBEH/AXFBBUcEQCADIANBAmqtQoCAgIDAAIQ3AxggAyADQQNqrUKAgICAwACENwMQIANBBGoiASADQRBqEFogARB8IQEMAgsgBygCACIGQQRqIgQoAgAiAUEDTQRAQeSswABBEBCGASEBDAILIAQgAUEEazYCACAGIAYoAgAiAUEEajYCACAJIAEqAAA4AjQLQQAMBwsgAyABNgIQIANBEGpBh6/AAEEKQdqvwABBDRB2IAMoAhAMBgsgAyABNgIQIANBEGpBh6/AAEEKQc6vwABBDBB2IAMoAhAMBQsgAyABNgIQIANBEGpBh6/AAEEKQcOvwABBCxB2IAMoAhAMBAsgAyABNgIQIANBEGpBh6/AAEEKQbivwABBCxB2IAMoAhAMAwsgAyABNgIQIANBEGpBh6/AAEEKQZuvwABBDBB2IAMoAhAMAgsgAyABNgIQIANBEGpBh6/AAEEKQZWvwABBBhB2IAMoAhAMAQsgAyABNgIQIANBEGpBh6/AAEEKQZGvwABBBBB2IAMoAhALIQEgA0EgaiQAIAFFDQALDAILQZChwABBEBCGASEBDAELIAUgBUEIaq1CgICAgDCENwMQIAVBJGoiAUHSg8AAIAVBEGoQWSABEHwhAQsgBUFAayQAIAENA0EADAgLIBIoAsgBQQJGBEAgEkEANgLwASASQQA2AugBIBJBADYC4AEgEkEANgLYASASQQA2AtABIBJBADYCyAELIAwgBDoAAyAMQQI6AAIgBEH/AXFBAkcEQCAMIAxBAmqtQoCAgIDAAIQ3AxggDCAMQQNqrUKAgICAwACENwMQIAxBBGoiASAMQRBqEFogARB8IQEMAgsgEkHIAWogB0HgABA0IgENAUEADAcLIAwgATYCECAMQRBqQdyfwABBC0Hnn8AAQQYQdgwFCyAMIAE2AhAgDEEQakHcn8AAQQtB6J7AAEEJEHYMBAsgDCABNgIQIAxBEGpB3J/AAEELQf2fwABBBhB2DAMLIAwgATYCECAMQRBqQdyfwABBC0H2n8AAQQcQdgwCCyAMIAE2AhAgDEEQakHcn8AAQQtB8p/AAEEEEHYMAQsgDCABNgIQIAxBEGpB3J/AAEELQe2fwABBBRB2CyAMKAIQCyEBIAxBIGokACABRQ0ACwwCC0GQocAAQRAQhgEhAQwBCyAYIBhBCGqtQoCAgIAwhDcDECAYQSRqIgFB0oPAACAYQRBqEFkgARB8IQELIBhBQGskACABBEAgFSgC/AEiBEGCgICAeEggBEVyDQEgFSgCgAIgBEEBEMQBDAELIBVBiAJqIBVBBGpBhAL8CgAAIBEoAggiBiARKAIARgRAIwBBEGsiCyQAIAtBBGogESgCACIBIBEoAgRBBCABQQF0IgEgAUEETRsiBEEEQYQCEEsgCygCBEEBRgRAIAsoAgggCygCDBCqAQALIAsoAgghASARIAQ2AgAgESABNgIEIAtBEGokAAsgESgCBCAGQYQCbGogFUGIAmpBhAL8CgAAIBEgBkEBajYCCEEAIQELIBVBkARqJAAgAQ0BC0EADAQLIBAgATYCECAQQRBqQdKewABBC0H6nsAAQQYQdiAQKAIQDAMLIBAgATYCECAQQRBqQdKewABBC0HonsAAQQkQdiAQKAIQDAILIBAgATYCECAQQRBqQdKewABBC0HinsAAQQYQdiAQKAIQDAELIBAgATYCECAQQRBqQdKewABBC0HdnsAAQQUQdiAQKAIQCyEBIBBBIGokACABRQ0ACwwCC0GQocAAQRAQhgEhAQwBCyAXIBdBCGqtQoCAgIAwhDcDECAXQSRqIgFB0oPAACAXQRBqEFkgARB8IQELIBdBQGskACABBEAgFCgCbCICQYCAgIB4RiACRXJFBEAgFCgCcCACQQEQxAELIBQoAmgiEQRAIBQoAmRB/AFqIQQDQCAEQQRrKAIAIgJBgoCAgHhIIAJFckUEQCAEKAIAIAJBARDEAQsgBEGEAmohBCARQQFrIhENAAsLIBQoAmAiAkUNASAUKAJkIAJBhAJsQQQQxAEMAQsgFEH4AGogFEEIakHwAPwKAAAgDygCCCIGIA8oAgBGBEAjAEEQayIBJAAgAUEEaiAPKAIAIgIgDygCBEEEIAJBAXQiAiACQQRNGyIEQQRB8AAQSyABKAIEQQFGDRYgASgCCCECIA8gBDYCACAPIAI2AgQgAUEQaiQACyAPKAIEIAZB8ABsaiAUQfgAakHwAPwKAAAgDyAGQQFqNgIIQQAhAQsgFEHwAWokACABDQFBAAwCCyANIAE2AgggDUEIakGDoMAAQQxBj6DAAEEJEHYgDSgCCAwBCyANIAE2AgwgDUEMakGDoMAAQQxB1p/AAEEGEHYgDSgCDAshASANQRBqJAAgAUUNAAsMAgtBkKHAAEEQEIYBIQEMAQsgFiAWQQhqrUKAgICAMIQ3AxAgFkEkaiIBQdKDwAAgFkEQahBZIAEQfCEBCyAWQUBrJAAgAQRAIBMoAhQiAkGAgICAeEYgAkVyRQRAIBMoAhggAkEBEMQBCyATQQhqEEogEygCCCICRQ0BIBMoAgwgAkHwAGxBBBDEAQwBCyATQTBqIgYgE0EYaikCADcDACATQShqIgQgE0EQaikCADcDACATIBMpAgg3AyAgGygCCCILIBsoAgBGBEAjAEEQayIBJAAgAUEEaiAbKAIAIgIgGygCBEEEIAJBAXQiAiACQQRNGyIHQQRBGBBLIAEoAgRBAUYNDiABKAIIIQIgGyAHNgIAIBsgAjYCBCABQRBqJAALIBsoAgQgC0EYbGoiASATKQMgNwIAIAFBEGogBikDADcCACABQQhqIAQpAwA3AgAgGyALQQFqNgIIQQAhAQsgE0FAayQAIAENA0EADAYLIAhB5AFqIQQjAEHgAGsiDSQAIA0gAjoAXyANQQI6AF4CQCACQf8BcUECRwRAIA0gDUHeAGqtQoCAgIDAAIQ3AzggDSANQd8Aaq1CgICAgMAAhDcDMCANQQRqIgEgDUEwahBaIAEQfCEBDAELIA1BADYCHCANQQA2AhQgDUEANgIMIA1BADYCBCANQYCAgIB4NgIkIA1BBGohCyMAQUBqIgokACAKQRBqIAQQHwJAIAooAhBBAUYEQCAKKAIUIQIMAQsCQCAKKQMYIh4gBCgCAEEEaigCACIBrVgEQCABIB6nayEHA0AgByAEKAIAQQRqKAIAIgFPBEBBACECIAEgB0YNBEH3oMAAQRkQhgEhAgwECyAKQRBqIAQQHyAKKAIQQQFGBEAgCigCFCECDAQLIAogCikDGCIfNwMIIB9C/////w9WDQIgCiAfQgeDIh43AzAgHkIGWgRAIAogCkEwaq1CgICAgDCENwM4IApBEGoiAUHog8AAIApBOGoQWSABEHwhAgwECyAfQgdYBEBB46DAAEEUEIYBIQIMBAsgHqchAiMAQRBrIgYkAAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAIB+nQQN2IgFBAWsOBQECAwQFAAsgAiABIARB4wAQJAwLCyALKAIgQYCAgIB4RgRAIAtBADYCKCALQoCAgIAQNwIgCyACIAtBIGogBBBEIgENBEEADAoLIAsoAgBFBEAgC0IBNwIACyACIAtBBGogBBAaIgENBEEADAkLIAsoAghFBEAgC0IBNwIICyACIAtBDGogBBAaIgENBEEADAgLIAsoAhBFBEAgC0IBNwIQCyACIAtBFGogBBAaIgENBEEADAcLIAsoAhhFBEAgC0IBNwIYCyACIAtBHGogBBAaIgENBEEADAYLIAYgATYCDCAGQQxqQZaewABBC0GhnsAAQQkQdgwECyAGIAE2AgwgBkEMakGWnsAAQQtBqp7AAEELEHYMAwsgBiABNgIMIAZBDGpBlp7AAEELQbWewABBCRB2DAILIAYgATYCDCAGQQxqQZaewABBC0G+nsAAQQoQdgwBCyAGIAE2AgwgBkEMakGWnsAAQQtByJ7AAEEKEHYLIAYoAgwLIQIgBkEQaiQAIAJFDQALDAILQZChwABBEBCGASECDAELIAogCkEIaq1CgICAgDCENwMQIApBJGoiAUHSg8AAIApBEGoQWSABEHwhAgsgCkFAayQAIAIiAQRAIA0oAiQiAkGAgICAeEYgAkVyDQEgDSgCKCACQQEQxAEMAQsgDUHYAGoiDiANQSxqKAIANgIAIA1B0ABqIgogDUEkaikCADcDACANQcgAaiILIA1BHGopAgA3AwAgDUFAayIGIA1BFGopAgA3AwAgDUE4aiIEIA1BDGopAgA3AwAgDSANKQIENwMwIBooAggiGSAaKAIARgRAIwBBEGsiASQAIAFBBGogGigCACICIBooAgRBBCACQQF0IgIgAkEETRsiB0EEQSwQSyABKAIEQQFGDQ0gASgCCCECIBogBzYCACAaIAI2AgQgAUEQaiQACyAaKAIEIBlBLGxqIgEgDSkDMDcCACABQShqIA4oAgA2AgAgAUEgaiAKKQMANwIAIAFBGGogCykDADcCACABQRBqIAYpAwA3AgAgAUEIaiAEKQMANwIAIBogGUEBajYCCEEAIQELIA1B4ABqJAAgAQ0DQQAMBQsgCCABNgJ4IAhB+ABqQYCfwABBC0GLn8AAQQcQdiAIKAJ4IQIMCAsgCEEANgKAASAIQoCAgIAQNwJ4IwBB0ABrIg8kACAPQQA2AhQgD0KAgICAEDcCDCAPQSBqIAhB+ABqIgYiAUEIaigCADYCACAPIAEpAgA3AxggDyAPQRhqNgJEIA8gD0EMajYCQCAPQUBrIQcjAEFAaiIFJAAgBUEQaiAIQeQBaiIOEB8CQCAFKAIQQQFGBEAgBSgCFCEBDAELAkAgBSkDGCIeIA4oAgBBBGooAgAiAa1YBEAgASAep2shCyAHKAIEIQIgBygCACEEA0AgCyAOKAIAQQRqKAIAIgdPBEBBACEBIAcgC0YNBEH3oMAAQRkQhgEhAQwECyAFQRBqIA4QHyAFKAIQQQFGBEAgBSgCFCEBDAQLIAUgBSkDGCIfNwMIIB9C/////w9WDQIgBSAfQgeDIh43AzAgHkIGWgRAIAUgBUEwaq1CgICAgDCENwM4IAVBEGoiAUHog8AAIAVBOGoQWSABEHwhAQwECyAfQgdYBEBB46DAAEEUEIYBIQEMBAsgHqchBwJAAkACQCAfp0EDdiIBQQFrDgIBAgALIAcgASAOQeMAECQiAUUNAgwFCyAHIAQgDhBEIgFFDQEMBAsjAEEgayINJAAgDSAHOgADIA1BAjoAAgJ/IAdB/wFxQQJHBEAgDSANQQJqrUKAgICA8ACENwMYIA0gDUEDaq1CgICAgPAAhDcDECANQQRqIgEgDUEQahBaIAEQfAwBCyANQRBqIA4QICANKAIQQQFGBEAgDSgCFAwBCyANKQMYIh4gDigCACIBQQRqNQIAWARAIA1BEGoiByABIB6nEC5BACEKIwBBEGsiGSQAIAJBADYCCCAHKAIIIgEgAigCACIRSwRAIAJBACABQQFBARBMIAIoAgAhESACKAIIIQoLIBlBCGogB0EIaikCACIeNwMAIBkgBykCADcDAAJ/AkAgHqciASARIAprSwRAIAIgCiABQQFBARBMIBkoAgQhCgwBCyAZKAIEIgogAUUNARoLIAIoAgAgAigCCCIRayABSQRAIAIgESABQQFBARBMIAIoAgghEQsgAQRAIAIoAgQgEWogCiAB/AoAAAsgAiABIBFqNgIIIAEgCmoLIQEgGUEANgIIIBkgATYCBCAZQQxqIAFBACAZKAIAKAIQEQIAIBlBEGokAEEADAELQZCrwABBEBCGAQshASANQSBqJAAgAUUNAAsMAgtBkKHAAEEQEIYBIQEMAQsgBSAFQQhqrUKAgICAMIQ3AxAgBUEkaiIBQdKDwAAgBUEQahBZIAEQfCEBCyAFQUBrJAACQCABBEAgDygCGCICBEAgDygCHCACQQEQxAELIA8oAgwiAkUNASAPKAIQIAJBARDEAQwBCyAPQThqIA9BFGooAgA2AgAgDyAPKQIMNwMwIA9ByABqIA9BIGooAgA2AgAgDyAPKQMYNwNAIA9BJGogHCAPQTBqIA9BQGsQISAPKAIkIgFBgICAgHhGIAFFckUEQCAPKAIoIAFBARDEAQtBACEBCyAPQdAAaiQAQQAgAUUNAxogCCABNgJ4IAZBgJ/AAEELQZifwABBBhB2IAgoAnghAgwHCyAIIAE2AnggCEH4AGpBgJ/AAEELQZ6fwABBBxB2IAgoAnghAgwGCyAIIAE2AnggCEH4AGpBgJ/AAEELQaWfwABBBhB2IAgoAnghAgwFCyACIAEgCEHkAWpB5AAQJAsiAkUNAQwDCwsgCCAIQegBaq1CgICAgDCENwN4IAhBhAJqIgFB0oPAACAIQfgAahBZIAEQfCECDAELIAggAjYCeCAIQfgAakGAn8AAQQtBkp/AAEEGEHYgCCgCeCECCyAIQfgAaiAIQRBqQegA/AoAACAAQQM2AgAgACACNgIEIAgoAtABIgBBgICAgHhGIABFckUEQCAIKALUASAAQQEQxAELIAhBmAFqEEIgCEG4AWoQPCAIKAK4ASIABEAgCCgCvAEgAEEYbEEEEMQBCyAIKALIASEHIAgoAswBIgEEQCAHQSRqIQIDQCACQQRrKAIAIgBBgICAgHhGIABFckUEQCACKAIAIABBARDEAQsgAkEsaiECIAFBAWsiAQ0ACwsgCCgCxAEiAEUNACAHIABBLGxBBBDEAQsgCEGQAmokAA8LIAEoAgggASgCDBCqAQALvQsBGX8gAUHk0QBqIRUgAUGABGohFiABQYDPAGohFyABQaDRAGohGCABQYA2aiEZIAFB7dEAaiEaIwBB8ABrIgdBMGohGyABLQDrUSEDIAdBIGohEiAHQRhqIRMgB0EQaiEUAkACQANAQaACIQUgFyERAkACQAJAAkACQAJAIANB/wFxIgQOAwEAAgQLQSAhBSAYIRELIBJCADcDACATQgA3AwAgFEIANwMAIAdCADcDCCAHQSxqQQBBxAD8CwAgASAEQYAZbCIDaiEGIAMgFmohDEGAcCEDA0AgAyAGaiIKQYgUakKehviY4OOAjwM3AgAgCkGAFGpCnob4mODjgI8DNwIAIANBEGoiAw0ACyAMQYAQakEAQYAJ/AsADAELIBJCADcDACATQgA3AwAgFEIANwMAIAdCADcDCCAHQSxqQQBBxAD8CwBBgHAhAwNAIAEgA2oiBUGIxgBqQp6G+Jjg44CPAzcCACAFQYDGAGpCnob4mODjgI8DNwIAIANBEGoiAw0AC0ETIQUgGiERIBkhDAtBHCENIBUgBEEBdGovAQAiCiAFSwRAQQMhCQwFCyARIQMgCiIGRQ0BA0AgAy0AACIFQQ9NBEAgB0EIaiAFQQF0aiIFIAUvAQBBAWo7AQAgA0EBaiEDIAZBAWsiBg0BDAMLC0EDIQkMBAtBAyEJDAMLIAcgBy8BCiIFQQF0IgY2AjRBAiEDA0AgA0EPS0UEQCAbIANBAnRqIAYgB0EIaiADQQF0ai8BACILakEBdCIGNgIAIAUgC2ohBSADIANBEElqIQMMAQsLQQEhCSAEQQJGIAVB//8DcUEBS3IgBkGAgARHcQ0CAkAgCkUNACAMQYAQaiEOQf//AyEEQQAhCwNAIAsiD0EBaiELAkAgDyARai0AAEEPcSIIRQ0AIAdBLGogCEECdGoiAyADKAIAIgNBAWo2AgACfyADQX9BICAIa3ZxIgNBgARPBEAgA0EIdCADQYD+A3FBCHZyIgNBBHZBjx5xIANBjx5xQQR0ciIDQQJ2QbPmAHEgA0Gz5gBxQQJ0ciIDQQF2QdWqAXEgA0HVqgFxQQF0cgwBCyADQQF0LwGEuEALQf//A3FBECAIa3YhBiAIQQtJBEAgBkH/B0sNASAIQQl0IA9yIQVBASAIdCIPQQF0IQggDCAGQQF0aiEDA0AgAyAFOwEAIAMgCGohAyAGIA9qIgZBgAhJDQALDAELIAwgBkH/B3FBAXRqIgMvAQAiBUGeBkYEQCADIAQ7AQAgBCEFIARBAmshBAsCQCAIQQtGBEAgBkEJdiEQDAELQQohDSAGQQp2IhBBAXEgBUF/c2pB//8DcSIDQb8ESwRAQQMhCQwHCyAOIANBAXRqIgMvAQAiBQR/IAQFIAMgBDsBACAEIQUgBEECawshAyAIQQ1JBEAgAyEEDAELIAZBC3YiEEEBcSAFQX9zakH//wNxIgRBvwRLBEBBAyEJDAcLIA4gBEEBdGoiBC8BACIFBH8gAwUgBCADOwEAIAMhBSADQQJrCyEEIAhBDUYNACAGQQx2IhBBAXEgBUF/c2pB//8DcSIDQb8ESwRAQQMhCQwHCyAOIANBAXRqIgMvAQAiBQR/IAQFIAMgBDsBACAEIQUgBEECawshAyAIQQ9HBEAgAyEEDAELIAZBDXYiEEEBcSAFQX9zakH//wNxIgRBvwRLBEBBAyEJDAcLIA4gBEEBdGoiBC8BACIFBEAgAyEEDAELIAQgAzsBACADQQJrIQQgAyEFCyAQQQF2QQFxIAVBf3NqQf//A3EiA0G/BEsEQEEKIQ1BAyEJDAYLIA4gA0EBdGogDzsBACAKIAtLDQEMAgsgCiALRw0ACwsCQAJAIAEtAOtRIgQOAwEAAwALIAEgBEEBayIDOgDrUQwBCwsgAkEANgIMQQwhDQwBCyACQQA2AgxBCiENCyAAIA06AAEgACAJOgAAC54IAQd/IARBfHEiCCADaiEGAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACIANPIgogBUF/RiACIARqQQNrIAFJciIJRXJFIAIgA2sgAyACayIHIAIgA0sbQQFGcUUEQCABQQNrIghBACABIAhPGyIIIAYgBiAISxshCCAKIAlFckUgB0EDS3ENASADIAhJDQIgAyEGDA4LIANBAWsiAiABTw0DIAEgBkkgAyAGS3INBCAIBEAgACADaiAAIAJqLQAAIAj8CwALIAZBAWshAgwNCyADIAhJDQEgAyEGDAwLIAAgA2ohC0EAIQcDQCADIAdqQQNqIAFPDQQgAiAHaiIGQQNqIAVxIgwgAU8NBSAFIAZxIgkgAU8NBiAHIAtqIgogACAJai0AADoAACAGQQFqIAVxIgkgAU8NByAKQQFqIAAgCWotAAA6AAAgASAGQQJqIAVxIgZLBEAgCkECaiAAIAZqLQAAOgAAIApBA2ogACAMai0AADoAACADIAdBBGoiB2oiBiAITw0MDAELCyAGIAFB7MHAABBzAAsgAUEEayEHIAMhBgNAIAJBA2ogAU8NByACQXxPDQggBiAHSw0JIAAgBmogACACaigAADYAACACQQRqIQIgCCAGQQRqIgZLDQALDAoLIAIgAUGUwMAAEHMACyADIAYgAUGkwMAAEDkAC0G0wMAAQS9B5MDAABCrAQALQfTAwABByABBvMHAABCrAQALIAkgAUHMwcAAEHMACyAJIAFB3MHAABBzAAtBACACQQNqIAFBrMXAABA5AAsgAiACQQRqIAFBrMXAABA5AAtBvMXAAEErQazFwAAQggEACyACIAdqIQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIARBA3FBAWsOAwABAg4LIAIgBXEiAyABSQ0KIAMgAUH8wcAAEHMACyAGQQFqIgcgAU8NASACQQFqIAVxIgMgAU8NAiACIAVxIgIgAU8NAyABIAZLDQogBiABQcTDwAAQcwALIAZBAmoiByABTw0DIAJBAmogBXEiAyABTw0EIAIgBXEiBCABTw0FIAEgBk0NBiAAIAZqIAAgBGotAAA6AAAgAkEBaiAFcSICIAFPDQcgBkEBaiIGIAFJDQkgBiABQZzFwAAQcwALQZzCwABBL0HMwsAAEKsBAAtB3MLAAEHIAEGkw8AAEKsBAAsgAiABQbTDwAAQcwALQdTDwABBL0GExMAAEKsBAAtBlMTAAEHIAEHcxMAAEKsBAAsgBCABQezEwAAQcwALIAYgAUH8xMAAEHMACyACIAFBjMXAABBzAAsgASAGSwRAIAYhBwwCCyAGIAFBjMLAABBzAAsgACAGaiAAIAJqLQAAOgAACyAAIAdqIAAgA2otAAA6AAALC8YGAQd/AkACQCABIABBA2pBfHEiBCAAayIHSQ0AIAEgB2siBkEESQ0AQQAhASAAIARHBEAgACAEayIEQXxNBEADQCABIAAgA2oiAiwAAEG/f0pqIAJBAWosAABBv39KaiACQQJqLAAAQb9/SmogAkEDaiwAAEG/f0pqIQEgA0EEaiIDDQALCyAAIANqIQIDQCABIAIsAABBv39KaiEBIAJBAWohAiAEQQFqIgQNAAsLIAAgB2ohBAJAIAZBA3EiAEUNACAEIAZB/P///wdxaiIDLAAAQb9/SiEFIABBAUYNACAFIAMsAAFBv39KaiEFIABBAkYNACAFIAMsAAJBv39KaiEFCyAGQQJ2IQYgASAFaiEDA0AgBCEAIAZFDQJBwAEgBiAGQcABTxsiBUEDcSEHAkAgBUECdCIEQfAHcSIBRQRAQQAhAgwBCyAAIAFqIQhBACECIAAhAQNAIAIgASgCACICQX9zQQd2IAJBBnZyQYGChAhxaiABQQRqKAIAIgJBf3NBB3YgAkEGdnJBgYKECHFqIAFBCGooAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWogAUEMaigCACICQX9zQQd2IAJBBnZyQYGChAhxaiECIAFBEGoiASAIRw0ACwsgBiAFayEGIAAgBGohBCACQQh2Qf+B/AdxIAJB/4H8B3FqQYGABGxBEHYgA2ohAyAHRQ0ACwJ/IAAgBUH8AXFBAnRqIgAoAgAiAUF/c0EHdiABQQZ2ckGBgoQIcSIBIAdBAUYNABogASAAKAIEIgFBf3NBB3YgAUEGdnJBgYKECHFqIgEgB0ECRg0AGiAAKAIIIgBBf3NBB3YgAEEGdnJBgYKECHEgAWoLIgFBCHZB/4EccSABQf+B/AdxakGBgARsQRB2IANqIQMMAQsgAUUEQEEADwsgAUEDcSEEAkAgAUEESQRADAELIAFBfHEhBQNAIAMgACACaiIBLAAAQb9/SmogAUEBaiwAAEG/f0pqIAFBAmosAABBv39KaiABQQNqLAAAQb9/SmohAyAFIAJBBGoiAkcNAAsLIARFDQAgACACaiEBA0AgAyABLAAAQb9/SmohAyABQQFqIQEgBEEBayIEDQALCyADC/gFAQh/IwBBEGsiBSQAIAAoAgQhAgJAAkACQAJAAkACQAJAIAAoAgwiA0EBcUUEQCABIAJqIgEgAkkNAyADKAIQQQFGDQIMAQsgACgCCCIIIANBBXYiBGohByACIARNIAcgAmsgAU9xDQMMBAtBASEGQQEgAygCDCIHQQlqdCICIAEgASACSRsgASAHGyIBQQBIDQQgAQRAQQEhBCABQQEQzgEiBkUNBQtBACEEIAVBADYCDCAFIAY2AgggBSABNgIEIAAoAgAhCCABIAAoAgQiAkkEQCAFQQRqQQAgAkEBQQEQTCAFKAIMIQQgBSgCCCEGCyACBEAgBCAGaiAIIAL8CgAACyADIAMoAhAiAUEBazYCECAFIAIgBGo2AgwgAUEBRgRAIAMoAgAiAQRAIAMoAgQgAUEBEMQBCyADQRRBBBDEAQsgACAFKAIINgIAIAAgBSgCBDYCCCAAIAdBAnRBAXI2AgwMBQsCQAJAAkACQCAAKAIAIgkgAygCBCIGayIEIAFqIgggBE8EQCADKAIAIgcgCE8NASABIAdNIAIgBE1xDQIMAwsMAwsgACABNgIIDAcLIAIEQCAGIAkgAvwKAAALIAAgBjYCACAAIAMoAgA2AggMBgsgAyACIARqIgE2AgggACAIIAdBAXQiAiACIAhJGyABayICIAcgAWtLBH8gAyABIAJBAUEBEEwgAygCBCEGIAMoAgAFIAcLIARrNgIIIAAgBCAGajYCAAwFC0Gvs8AAQRFBuLPAABCCAQALQa+zwABBEUHIs8AAEIIBAAsgACgCACIGIARrIQEgAgRAIAEgBiAC/AoAAAsgACADQR9xNgIMIAAgATYCACAAIAc2AggMAgsgBSAHNgIEIAUgAiAEaiIDNgIMIAUgACgCACAEayIGNgIIIAAgCCACayABSQR/IAVBBGogAyABQQFBARBMIAUoAgghBiAFKAIEBSAHCyAEazYCCCAAIAQgBmo2AgAMAQsgBCABEKoBAAsgBUEQaiQAC8QFAgF+BH8jAEEgayIFJAAgBUEAOgACIAUgADoAAwJ/IABB/wFxBEAgBSAFQQJqrUKAgICAwACENwMYIAUgBUEDaq1CgICAgMAAhDcDECAFQQRqIgAgBUEQahBaIAAQfAwBCwJAAn8CQAJAAkACQAJAAkACQAJAIAIoAgAiBkEEaigCACIHRQ0AAkAgBigCACIALAAAIgRBAEgEQCAHQQpLDQEgACAHakEBaywAAEEATg0BIAVBEGogAhA7IAUoAhBBAUYEQCAFKAIUDA0LIAUpAxghAwwLCyAErUL/AYMhAyAGQQRqIAdBAWs2AgAgBiAAQQFqNgIADAoLIARB/wFxIAAsAAEiBEH/AXFBB3RqQYABayECIARBAEgEQCACIAAsAAIiBEH/AXFBDnRqQYCAAWshAiAEQQBODQIgAiAALAADIgRB/wFxQRV0akGAgIABayECIARBAE4NAyACQYCAgIABa60hAyAALAAEIgJBAE4NBCACQf8BcSAALAAFIgRB/wFxQQd0akGAAWshAiAEQQBODQUgAiAALAAGIgRB/wFxQQ50akGAgAFrIQIgBEEATg0GIAIgACwAByIEQf8BcUEVdGpBgICAAWshAiAEQQBODQcgAkGAgICAAWutQhyGIAN8IQMgACwACCICQQBODQggAC0ACSIEQQJPDQEgAkH/AHEgBEEHdHKtQjiGIAN8IQNBCgwJCyACrSEDQQIMCAtB9KzAAEEOEIYBDAkLIAKtIQNBAwwGCyACrSEDQQQMBQsgAq1C/wGDQhyGIAN8IQNBBQwECyACrUIchiADfCEDQQYMAwsgAq1CHIYgA3whA0EHDAILIAKtQhyGIAN8IQNBCAwBCyACrUL/AYNCOIYgA3whA0EJCyECIAZBBGogByACazYCACAGIAAgAmo2AgALIAEgAz4CAEEACyAFQSBqJAAL2gUCB38BfgJ/IAFFBEAgACgCCCEHQS0hCyAFQQFqDAELQStBgIDEACAAKAIIIgdBgICAAXEiARshCyABQRV2IAVqCyEJAkAgB0GAgIAEcUUEQEEAIQIMAQsCQCADQRBPBEAgAiADEBghAQwBCyADRQRAQQAhAQwBCyADQQNxIQoCQCADQQRJBEBBACEBDAELIANBDHEhDEEAIQEDQCABIAIgCGoiBiwAAEG/f0pqIAZBAWosAABBv39KaiAGQQJqLAAAQb9/SmogBkEDaiwAAEG/f0pqIQEgDCAIQQRqIghHDQALCyAKRQ0AIAIgCGohBgNAIAEgBiwAAEG/f0pqIQEgBkEBaiEGIApBAWsiCg0ACwsgASAJaiEJCwJAIAAvAQwiCCAJSwRAAkACQCAHQYCAgAhxRQRAIAggCWshCEEAIQFBACEJAkACQAJAIAdBHXZBA3FBAWsOAwABAAILIAghCQwBCyAIQf7/A3FBAXYhCQsgB0H///8AcSEKIAAoAgQhByAAKAIAIQADQCABQf//A3EgCUH//wNxTw0CQQEhBiABQQFqIQEgACAKIAcoAhARAABFDQALDAQLIAAgACkCCCINp0GAgID/eXFBsICAgAJyNgIIQQEhBiAAKAIAIgcgACgCBCIKIAsgAiADEIUBDQNBACEBIAggCWtB//8DcSECA0AgAUH//wNxIAJPDQIgAUEBaiEBIAdBMCAKKAIQEQAARQ0ACwwDC0EBIQYgACAHIAsgAiADEIUBDQIgACAEIAUgBygCDBEEAA0CQQAhASAIIAlrQf//A3EhAgNAIAFB//8DcSIDIAJJIQYgAiADTQ0DIAFBAWohASAAIAogBygCEBEAAEUNAAsMAgsgByAEIAUgCigCDBEEAA0BIAAgDTcCCEEADwtBASEGIAAoAgAiASAAKAIEIgAgCyACIAMQhQENACABIAQgBSAAKAIMEQQAIQYLIAYLlAYBBX8gAEEIayIBIABBBGsoAgAiA0F4cSIAaiECAkACQCADQQFxDQAgA0ECcUUNASABKAIAIgMgAGohACABIANrIgFB8O/AACgCAEYEQCACKAIEQQNxQQNHDQFB6O/AACAANgIAIAIgAigCBEF+cTYCBCABIABBAXI2AgQgAiAANgIADwsgASADEDMLAkACQAJAAkACQCACKAIEIgNBAnFFBEAgAkH078AAKAIARg0CIAJB8O/AACgCAEYNAyACIANBeHEiAhAzIAEgACACaiIAQQFyNgIEIAAgAWogADYCACABQfDvwAAoAgBHDQFB6O/AACAANgIADwsgAiADQX5xNgIEIAEgAEEBcjYCBCAAIAFqIAA2AgALIABBgAJJDQIgASAAEDdBACEBQYjwwABBiPDAACgCAEEBayIANgIAIAANBEHQ7cAAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQYjwwABB/x8gASABQf8fTRs2AgAPC0H078AAIAE2AgBB7O/AAEHs78AAKAIAIABqIgA2AgAgASAAQQFyNgIEQfDvwAAoAgAgAUYEQEHo78AAQQA2AgBB8O/AAEEANgIACyAAQYDwwAAoAgAiA00NA0H078AAKAIAIgJFDQNBACEAQezvwAAoAgAiBEEpSQ0CQcjtwAAhAQNAIAIgASgCACIFTwRAIAIgBSABKAIEakkNBAsgASgCCCEBDAALAAtB8O/AACABNgIAQejvwABB6O/AACgCACAAaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAPCwJAQeDvwAAoAgAiAkEBIABBA3Z0IgNxRQRAQeDvwAAgAiADcjYCACAAQfgBcUHY7cAAaiIAIQIMAQsgAEH4AXEiAEHY7cAAaiECIABB4O3AAGooAgAhAAsgAiABNgIIIAAgATYCDCABIAI2AgwgASAANgIIDwtB0O3AACgCACIBBEADQCAAQQFqIQAgASgCCCIBDQALC0GI8MAAQf8fIAAgAEH/H00bNgIAIAMgBE8NAEGA8MAAQX82AgALC7YOAQd/IwBBIGsiBiQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HQRBBACABQaudBE8bIgIgAkEIciIDIAFBC3QiAiADQQJ0KAKI3kBBC3RJGyIDIANBBHIiAyADQQJ0KAKI3kBBC3QgAksbIgMgA0ECciIDIANBAnQoAojeQEELdCACSxsiAyADQQFqIgMgA0ECdCgCiN5AQQt0IAJLGyIDIANBAWoiAyADQQJ0KAKI3kBBC3QgAksbIgNBAnQoAojeQEELdCIFIAJGIAIgBUtqIANqIgVBAnQiAkGI3sAAaiEIIAIoAojeQEEVdiECQf8FIQMCQCAFQR9NBEAgCCgCBEEVdiEDIAVFDQELIAhBBGsoAgBB////AHEhBAsCQCADIAJBf3NqRQ0AIAEgBGshBCADQQFrIQVBACEDA0AgAyACQeDSwABqLQAAaiIDIARLDQEgBSACQQFqIgJHDQALCyACQQFxRQ0HIAZBDmpBADoAACAGQQA7AQwgBiABQRR2LQDY2kA6AA8gBiABQQR2QQ9xLQDY2kA6ABMgBiABQQh2QQ9xLQDY2kA6ABIgBiABQQx2QQ9xLQDY2kA6ABEgBiABQRB2QQ9xLQDY2kA6ABAgAUEBcmdBAnYiAiAGQQxqIgNqIgRB+wA6AAAgBEEBa0H1ADoAACADIAJBAmsiAmpB3AA6AAAgBkEUaiIDIAFBD3EtANjaQDoAACAAIAYpAQw3AAAgBkH9ADoAFQwICyAAQgA3AQIgAEHc4AA7AQAMCgsgAEIANwECIABB3OgBOwEADAkLIABCADcBAiAAQdzkATsBAAwICyAAQgA3AQIgAEHc3AE7AQAMBwsgAEIANwECIABB3LgBOwEADAYLIAJBgAJxRQ0BIABCADcBAiAAQdzOADsBAAwFCyACQf///wdxQYCABE8NAwtBACECQQAhAwJAIAEiBEEgSQ0AIARB/wBJBEBBASECDAELAkACQCAEQYCABE8EQCAEQYCACEkNASAEQf7//wBxIgJBrp0LRyAEQeD//wBxQeDNCkcgAkGe8ApHcXEgBEHw1wtrQXFJcSAEQYDwC2tB3mxJcSAEQYCADGtBnnRJcSAEQdCmDGtBe0lxIARBgII4a0H65lRJcSAEQfCDOElxIQIMAwsgBEEIdkH/AXEhCQNAIAJBAmohCCADIAItALXlQCIHaiEFIAkgAi0AtOVAIgJHBEAgAiAJSw0DIAUhAyAIIgJBzABHDQEMAwsCQAJAIAMgBUsgBUGcAktyRQRAIAdFDQIgA0GA5sAAaiECDAELIAMgBUGcAkHA6sAAEDkACwNAIAItAAAgBEH/AXFHBEAgAkEBaiECIAdBAWsiBw0BDAILC0EAIQIMBAsgBSEDIAgiAkHMAEcNAAsMAQsgBEEIdkH/AXEhCQNAAkAgAkECaiEIIAMgAi0Ajd9AIgdqIQUgCSACLQCM30AiAkcEQCACIAlLDQEgBSEDIAgiAkHcAEcNAgwBCwJAAkAgAyAFSyAFQdQBS3JFBEAgB0UNAiADQejfwABqIQIMAQsgAyAFQdQBQcDqwAAQOQALA0AgAi0AACAEQf8BcUcEQCACQQFqIQIgB0EBayIHDQEMAgsLQQAhAgwECyAFIQMgCCICQdwARw0BCwsgBEH//wNxIQVBASECQQAhBANAIARBAWohAwJAIAQsALzhQCIHQQBOBEAgAyEEDAELIANB+ANHBEAgBEG94cAAai0AACAHQf8AcUEIdHIhByAEQQJqIQQMAQtB0OrAABDMAQALIAUgB2siBUEASA0CIAJBAXMhAiAEQfgDRw0ACwwBC0EBIQJBACEHA0AgB0EBaiEDAkAgBywAnOhAIgVBAE4EQCADIQcMAQsgA0GkAkcEQCAHQZ3owABqLQAAIAVB/wBxQQh0ciEFIAdBAmohBwwBC0HQ6sAAEMwBAAsgBCAFayIEQQBIDQEgAkEBcyECIAdBpAJHDQALCyACQQFxDQEgBkEYakEAOgAAIAZBADsBFiAGIAFBFHYtANjaQDoAGSAGIAFBBHZBD3EtANjaQDoAHSAGIAFBCHZBD3EtANjaQDoAHCAGIAFBDHZBD3EtANjaQDoAGyAGIAFBEHZBD3EtANjaQDoAGiABQQFyZ0ECdiICIAZBFmoiA2oiBEH7ADoAACAEQQFrQfUAOgAAIAMgAkECayICakHcADoAACAGQR5qIgMgAUEPcS0A2NpAOgAAIAAgBikBFjcAACAGQf0AOgAfCyAAQQhqIAMvAQA7AABBCgwDCyAAIAE2AgBBgAEhAkGBAQwCCyAAQgA3AQIgAEHcxAA7AQALQQAhAkECCzoADSAAIAI6AAwgBkEgaiQAC9MEAgZ+BH8gACAAKAI4IAJqNgI4AkAgACgCPCILRQRADAELQQQhCQJ+QQggC2siCiACIAIgCksbIgxBBEkEQEEAIQlCAAwBCyABNQAACyEDIAwgCUEBcksEQCABIAlqMwAAIAlBA3SthiADhCEDIAlBAnIhCQsgACAAKQMwIAkgDEkEfiABIAlqMQAAIAlBA3SthiADhAUgAwsgC0EDdEE4ca2GhCIDNwMwIAIgCk8EQCAAIAApAxggA4UiBCAAKQMIfCIGIAApAxAiBUINiSAFIAApAwB8IgWFIgd8IgggB0IRiYU3AxAgACAIQiCJNwMIIAAgBiAEQhCJhSIEQhWJIAQgBUIgiXwiBIU3AxggACADIASFNwMADAELIAAgAiALajYCPA8LIAIgCmsiAkEHcSEJIAJBeHEiAiAKSwRAIAApAwghBCAAKQMQIQMgACkDGCEGIAApAwAhBQNAIAQgASAKaikAACIHIAaFIgR8IgYgAyAFfCIFIANCDYmFIgN8IgggA0IRiYUhAyAGIARCEImFIgRCFYkgBCAFQiCJfCIFhSEGIAhCIIkhBCAFIAeFIQUgCkEIaiIKIAJJDQALIAAgAzcDECAAIAY3AxggACAENwMIIAAgBTcDAAtBBCECAn4gCUEESQRAQQAhAkIADAELIAEgCmo1AAALIQMgCSACQQFySwRAIAEgCmogAmozAAAgAkEDdK2GIAOEIQMgAkECciECCyAAIAIgCUkEfiABIAIgCmpqMQAAIAJBA3SthiADhAUgAws3AzAgACAJNgI8C+MEAgF+BH8CQCABKAIAIgVBBGooAgAiBkUEQAwBCwJAIAUoAgAiBCwAACIDQQBIBEAgBkEKSw0BIAQgBmpBAWssAABBAE4NASAAIAEQOw8LIAAgA61C/wGDNwMIIABBADYCACAFQQRqIAZBAWs2AgAgBSAEQQFqNgIADwsgA0H/AXEgBCwAASIDQf8BcUEHdGpBgAFrIQECfwJAAkACQAJAAkACQAJAIANBAEgEQCABIAQsAAIiA0H/AXFBDnRqQYCAAWshASADQQBODQEgASAELAADIgNB/wFxQRV0akGAgIABayEBIANBAE4NAiABQYCAgIABa60hAiAELAAEIgFBAE4NAyABQf8BcSAELAAFIgNB/wFxQQd0akGAAWshASADQQBODQQgASAELAAGIgNB/wFxQQ50akGAgAFrIQEgA0EATg0FIAEgBCwAByIDQf8BcUEVdGpBgICAAWshASADQQBODQYgAUGAgICAAWutQhyGIAJ8IQIgBCwACCIBQQBODQcgBC0ACSIDQQJJBEAgAUH/AHEgA0EHdHKtQjiGIAJ8IQJBCgwJCwwJCyABrSECQQIMBwsgAa0hAkEDDAYLIAGtIQJBBAwFCyABrUL/AYNCHIYgAnwhAkEFDAQLIAGtQhyGIAJ8IQJBBgwDCyABrUIchiACfCECQQcMAgsgAa1CHIYgAnwhAkEIDAELIAGtQv8Bg0I4hiACfCECQQkLIQEgACACNwMIIABBADYCACAFQQRqIAYgAWs2AgAgBSABIARqNgIADwtBz6HAAEEOEIYBIQEgAEEBNgIAIAAgATYCBAvjBAIBfgR/AkAgASgCACIFQQRqKAIAIgZFBEAMAQsCQCAFKAIAIgQsAAAiA0EASARAIAZBCksNASAEIAZqQQFrLAAAQQBODQEgACABEDsPCyAAIAOtQv8BgzcDCCAAQQA2AgAgBUEEaiAGQQFrNgIAIAUgBEEBajYCAA8LIANB/wFxIAQsAAEiA0H/AXFBB3RqQYABayEBAn8CQAJAAkACQAJAAkACQCADQQBIBEAgASAELAACIgNB/wFxQQ50akGAgAFrIQEgA0EATg0BIAEgBCwAAyIDQf8BcUEVdGpBgICAAWshASADQQBODQIgAUGAgICAAWutIQIgBCwABCIBQQBODQMgAUH/AXEgBCwABSIDQf8BcUEHdGpBgAFrIQEgA0EATg0EIAEgBCwABiIDQf8BcUEOdGpBgIABayEBIANBAE4NBSABIAQsAAciA0H/AXFBFXRqQYCAgAFrIQEgA0EATg0GIAFBgICAgAFrrUIchiACfCECIAQsAAgiAUEATg0HIAQtAAkiA0ECSQRAIAFB/wBxIANBB3RyrUI4hiACfCECQQoMCQsMCQsgAa0hAkECDAcLIAGtIQJBAwwGCyABrSECQQQMBQsgAa1C/wGDQhyGIAJ8IQJBBQwECyABrUIchiACfCECQQYMAwsgAa1CHIYgAnwhAkEHDAILIAGtQhyGIAJ8IQJBCAwBCyABrUL/AYNCOIYgAnwhAkEJCyEBIAAgAjcDCCAAQQA2AgAgBUEEaiAGIAFrNgIAIAUgASAEajYCAA8LQc+rwABBDhCGASEBIABBATYCACAAIAE2AgQL/gQCBH4KfyMAQSBrIgokACABQRBqIgggAhAqIQQgASgCCEUEQCAKIAFBASAIEBQLIAEoAgQiDCAEp3EhCCAEQhmIIgZC/wCDQoGChIiQoMCAAX4hByACKAIEIREgAigCCCEOIAEoAgAhCQNAAn8CQAJAAkAgCCAJaikAACIFIAeFIgRCf4UgBEKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIEUEUEQANAIAkgBHqnQQN2IAhqIAxxQWhsaiIQQRBrKAIAIA5GBEAgESAQQRRrKAIAIA4QdUUNAwsgBEIBfSAEgyIEUEUNAAsLIAVCgIGChIiQoMCAf4MhBCANRQRAIARQDQMgBHqnQQN2IAhqIAxxIQsLQQEgBCAFQgGGg1ANAxogCSALaiwAACIIQQBOBEAgCSAJKQMAQoCBgoSIkKDAgH+DeqdBA3YiC2otAAAhCAsgAkEIaigCACENIAIpAgAhBCAJIAtqIAanQf8AcSICOgAAIAkgC0EIayAMcWpBCGogAjoAACAKQRBqIgIgDTYCACAKQRxqIANBCGooAgA2AgAgASABKAIIIAhBAXFrNgIIIAEgASgCDEEBajYCDCAJIAtBaGxqQRhrIgEgBDcCACAKIAMpAgA3AhQgAUEIaiACKQMANwIAIAFBEGogCkEYaikDADcCACAAQYCAgIB4NgIADAELIBBBDGsiASkCACEEIAEgAykCADcCACABQQhqIgEoAgAhCCABIANBCGooAgA2AgAgACAENwIAIABBCGogCDYCACACKAIAIgBFDQAgAigCBCAAQQEQxAELIApBIGokAA8LQQALIQ0gD0EIaiIPIAhqIAxxIQgMAAsAC/4FAgp/An4jAEEQayIJJAACQAJAAkAgBARAIAEoAgQhByABKAIIIQwgASgCDCEIIAEoAgAhCyABKAIUIQUgASgCECEGA0AgBSAGRgRAAkAgByAIIAcgCEkbIgVBAUYEQCAMIAstAAA6AAAMAQsgBUUNACAMIAsgBfwKAAALIAEgBTYCFCABIAcgBWsiBzYCBCABIAUgC2oiCzYCAEEAIQYLIAUgCE0gBSAGT3FFBEAgBiAFIAhB2K3AABA5AAsgAikDCCEPIAIpAwAhECAJQQhqIAIgBiAMaiAFIAZrIAMgBEEEQQAgBSAGRiINGxCwASAJLQAMIQ4gCSgCCCABIAUgBiACKQMAIBB9p2oiBiAFIAZJGyIGNgIQQQJHDQIgAikDCCAPfachCgJAAkAgDkEBaw4CAQUACyANDQQgCkUNAQwECyANDQMgCkUNAAsMAgsCQCABKAIQIgYgASgCFCIFRwRAIAEoAgwhBAwBCyABKAIAIQYgASgCCCEHAkAgASgCBCIIIAEoAgwiBCAEIAhLGyIFQQFGBEAgByAGLQAAOgAADAELIAVFDQAgByAGIAX8CgAACyABIAU2AhQgASAIIAVrNgIEIAEgBSAGajYCAEEAIQYLIAUgBk8gBCAFT3FFBEAgBiAFIARB2K3AABA5AAsgAikDCCEPIAIpAwAhECAJQQhqIAIgASgCCCAGaiAFIAZrIANBAEEEQQAgBSAGRhsQsAEgCSgCCCABIAUgBiACKQMAIBB9p2oiASABIAVLGzYCEEECRw0AIAIpAwggD32nIQoMAQsCQAJAQRZBARDOASICBEAgAkHdq8AAQRb8CgAAQQxBBBDOASIBRQ0BIAFBFjYCCCABIAI2AgQgAUEWNgIAQQxBBBDOASICRQRAQQRBDBDSAQALIAJBFDoACCACQdy0wAA2AgQgAiABNgIAIAAgAq1CIIZCA4Q3AgAMAgtBAUEWEKoBAAtBBEEMENIBAAsMAQsgAEEEOgAAIAAgCjYCBAsgCUEQaiQAC9sEAQZ/AkACQCAAKAIIIgdBgICAwAFxRQ0AAkACQAJAAkAgB0GAgICAAXEEQCAALwEOIgMNAUEAIQIMAgsgAkEQTwRAIAEgAhAYIQMMBAsgAkUEQAwECyACQQNxIQYCQCACQQRJBEAMAQsgAkEMcSEIA0AgAyABIAVqIgQsAABBv39KaiAEQQFqLAAAQb9/SmogBEECaiwAAEG/f0pqIARBA2osAABBv39KaiEDIAggBUEEaiIFRw0ACwsgBkUNAyABIAVqIQQDQCADIAQsAABBv39KaiEDIARBAWohBCAGQQFrIgYNAAsMAwsgASACaiEIQQAhAiABIQQgAyEFA0AgBCIGIAhGDQICfyAGQQFqIAYsAAAiBEEATg0AGiAGQQJqIARBYEkNABogBkEDaiAEQXBJDQAaIAZBBGoLIgQgBmsgAmohAiAFQQFrIgUNAAsLQQAhBQsgAyAFayEDCyADIAAvAQwiBE8NACAEIANrIQZBACEDQQAhBQJAAkACQCAHQR12QQNxQQFrDgIAAQILIAYhBQwBCyAGQf7/A3FBAXYhBQsgB0H///8AcSEIIAAoAgQhByAAKAIAIQADQCADQf//A3EgBUH//wNxSQRAQQEhBCADQQFqIQMgACAIIAcoAhARAABFDQEMAwsLQQEhBCAAIAEgAiAHKAIMEQQADQFBACEDIAYgBWtB//8DcSEBA0AgA0H//wNxIgIgAUkhBCABIAJNDQIgA0EBaiEDIAAgCCAHKAIQEQAARQ0ACwwBCyAAKAIAIAEgAiAAKAIEKAIMEQQAIQQLIAQL5gQCAX8CfiMAQdAAayIEJAACQCADRQRAQaChwABBFxCGASEDDAELQgghBQJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBQcEAAEDAgsgA0EBayEAAkADQCAEQSBqIAIQHyAEKAIgQQFGBEAgBCgCJCEDDA0LIAQgBCkDKCIFNwMYAkACQAJAAkAgBUL/////D1gEQCAEIAVCB4MiBjcDQCAGQgVWDQFBACEDAkACQAJAIAanQQFrDgUFAAEHAgYLQQIhAwwFC0EDIQMMBAtBBSEDDAMLIAQgBEEYaq1CgICAgDCENwMgIARBNGoiAEHSg8AAIARBIGoQWSAAEHwhAwwQCyAEIARBQGutQoCAgIAwhDcDSCAEQSBqIgBB6IPAACAEQcgAahBZIAAQfCEDDA8LQQEhAwsgBUIIVA0CIAMgBadBA3YgAiAAECQiA0UNAQwNCwsgBUIHVg0FC0HjoMAAQRQQhgEhAwwKC0G3ocAAQRgQhgEhAwwJCyAEQQhqIAIQHyAEKAIIDQcMBQtCBCEFDAMLIARBIGogAhAfIAQoAiANASAEKQMoIQUMAgsgBadBA3YgAUYNAkG3ocAAQRgQhgEhAwwFCyAEKAIkIQMMBAsgBSACKAIAIgBBBGoiASgCACICrVgNAUGQocAAQRAQhgEhAwwDCyACKAIAIgBBBGoiASgCACECQgAhBQsgBaciAyACTQRAIAEgAiADazYCACAAIAAoAgAgA2o2AgBBACEDDAILIAQgAjYCJCAEIAM2AiAgBEEgahCBAQALIAQoAgwhAwsgBEHQAGokACADC44UAhR/A34jAEEQayISJABBvOzAAC0AAEEBRwRAAkACQAJAAkBBvOzAAC0AAEEBaw4CAAIBC0G87MAAQQI6AABBsOzAACgCACIERQ0AQbjswAAoAgAiBQRAQazswAAoAgAiAkEIaiEDIAIpAwBCf4VCgIGChIiQoMCAf4MhFgNAIBZQBEADQCACQeAAayECIAMpAwAgA0EIaiEDQoCBgoSIkKDAgH+DIhZCgIGChIiQoMCAf1ENAAsgFkKAgYKEiJCgwIB/hSEWCyACIBZ6p0EDdkF0bGpBBGsoAgAiC0GECE8EQCALEFwLIBZCAX0gFoMhFiAFQQFrIgUNAAsLIAQgBEEMbEETakF4cSICakEJaiIDRQ0AQazswAAoAgAgAmsgA0EIEMQBC0G87MAAQQE6AABBrOzAAEHAsMAAKQIANwIAQbTswABByLDAACkCADcCAEGo7MAAQQA2AgAMAQtB0LDAAEH9AEGQscAAEIIBAAsLAkACQEGo7MAAKAIARQRAQajswABBfzYCAEGw7MAAKAIAIgQgAHEhAiAAQRl2IhOtQoGChIiQoMCAAX4hGEGs7MAAKAIAIQUDQCACIAVqKQAAIhcgGIUiFkJ/hSAWQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIhZQRQRAA0AgACAFIBZ6p0EDdiACaiAEcUF0bGoiA0EMaygCAEYEQCADQQhrKAIAIAFGDQYLIBZCAX0gFoMiFlBFDQALCyAXIBdCAYaDQoCBgoSIkKDAgH+DUEUNAiACIAZBCGoiBmogBHEhAgwACwALQaSwwAAQigEAC0G07MAAKAIARQRAIBJBCGohFCMAQSBrIgwkAAJAQbjswAAoAgAiC0EBaiICIAtPBEBBsOzAACgCACIJIAlBAWoiBEEDdiIDQQdsIAlBCEkbIg1BAXYgAkkEQAJAAkACQAJAAkACfyANQQFqIgMgAiACIANJGyICQQ9PBEAgAkH/////AUsNAkF/IAJBA3RBB25BAWtndkEBagwBC0EEIAJBCHFBCGogAkEESRsLIgKtQgx+IhZCIIinDQIgFqciA0F4Sw0CIANBB2pBeHEiBCACQQhqIgVqIgMgBEkgA0H4////B0tyDQIgA0EIEM4BIgYNASADEJkBIAwoAhQhAiAMKAIQIQMMBwsQngEgDCgCHCECIAwoAhghAwwGCyAEIAZqIQggBQRAIAhB/wEgBfwLAAsgAkEBayIKIAJBA3ZBB2wgCkEISRshDiALDQFBrOzAACgCACEGDAILEJ4BIAwoAgwhAiAMKAIIIQMMBAsgCEEMayEPIAhBCGohEEGs7MAAKAIAIgZBDGshDSAGKQMAQn+FQoCBgoSIkKDAgH+DIRZBACECIAshBCAGIQMDQCAWUARAA0AgAkEIaiECIANBCGoiAykDAEKAgYKEiJCgwIB/gyIWQoCBgoSIkKDAgH9RDQALIBZCgIGChIiQoMCAf4UhFgsgCCANIBZ6p0EDdiACaiIRQXRsaiIFKAIAIgcgBSgCBCAHGyIVIApxIgVqKQAAQoCBgoSIkKDAgH+DIhdQBEBBCCEHA0AgBSAHaiEFIAdBCGohByAIIAUgCnEiBWopAABCgIGChIiQoMCAf4MiF1ANAAsLIBZCAX0gFoMhFiAIIBd6p0EDdiAFaiAKcSIFaiwAAEEATgRAIAgpAwBCgIGChIiQoMCAf4N6p0EDdiEFCyAFIAhqIBVBGXYiBzoAACAQIAVBCGsgCnFqIAc6AAAgDyAFQXRsaiIFQQhqIA0gEUF0bGoiB0EIaigAADYAACAFIAcpAAA3AAAgBEEBayIEDQALC0Gw7MAAIAo2AgBBrOzAACAINgIAQbTswAAgDiALazYCAEGBgICAeCEDIAlFDQIgCSAJQQxsQRNqQXhxIgJqQQlqIgRFDQIgBiACayAEQQgQxAEMAgsgBARAQazswAAoAgAhBkEAIQIgAyAEQQdxQQBHaiIDQQFxIANBAUcEQCADQf7///8DcSEDA0AgAiAGaiIFIAUpAwAiFkJ/hUIHiEKBgoSIkKDAgAGDIBZC//79+/fv37//AIR8NwMAIAVBCGoiBSAFKQMAIhZCf4VCB4hCgYKEiJCgwIABgyAWQv/+/fv379+//wCEfDcDACACQRBqIQIgA0ECayIDDQALCwRAIAIgBmoiAiACKQMAIhZCf4VCB4hCgYKEiJCgwIABgyAWQv/+/fv379+//wCEfDcDAAsgBkEIaiEIAkAgBEEITwRAIAQgBmogBikAADcAAAwBCyAERQ0AIAggBiAE/AoAAAsgBkEMayEOQQAhBQNAIAUiAkEBaiEFAkAgAiAGaiIPLQAAQYABRw0AIAYgBUF0bGohAyAOIAJBdGxqIRACQANAIBAoAgAiBCAQKAIEIAQbIhEgCXEiCiEEIAYgCmopAABCgIGChIiQoMCAf4MiFlAEQEEIIQcDQCAEIAdqIQQgB0EIaiEHIAYgBCAJcSIEaikAAEKAgYKEiJCgwIB/gyIWUA0ACwsgBiAWeqdBA3YgBGogCXEiBGosAABBAE4EQCAGKQMAQoCBgoSIkKDAgH+DeqdBA3YhBAsgBCAKayACIAprcyAJcUEITwRAIAQgBmoiBy0AACAHIBFBGXYiBzoAACAIIARBCGsgCXFqIAc6AAAgDiAEQXRsaiEEQf8BRg0CIAMoAAAhByADIAQoAAA2AAAgBCAHNgAAIAQoAAQhByAEIAMoAAQ2AAQgAyAHNgAEIAMoAAghByADIAQoAAg2AAggBCAHNgAIDAELCyAPIBFBGXYiAzoAACAIIAJBCGsgCXFqIAM6AAAMAQsgD0H/AToAACAIIAJBCGsgCXFqQf8BOgAAIARBCGogA0EIaigAADYAACAEIAMpAAA3AAALIAIgCUcNAAsLQbTswAAgDSALazYCAEGBgICAeCEDDAELEJ4BIAwoAgQhAiAMKAIAIQMLIBQgAjYCBCAUIAM2AgAgDEEgaiQACyAAIAEQrAEhC0Gs7MAAKAIAIgNBsOzAACgCACIFIABxIgJqKQAAQoCBgoSIkKDAgH+DIhZQBEBBCCEEA0AgAiAEaiECIARBCGohBCADIAIgBXEiAmopAABCgIGChIiQoMCAf4MiFlANAAsLIAMgFnqnQQN2IAJqIAVxIgJqLAAAIgRBAE4EQCADIAMpAwBCgIGChIiQoMCAf4N6p0EDdiICai0AACEECyACIANqIBM6AAAgAyACQQhrIAVxakEIaiATOgAAQbTswABBtOzAACgCACAEQQFxazYCAEG47MAAQbjswAAoAgBBAWo2AgAgAyACQXRsaiIDQQRrIAs2AgAgA0EIayABNgIAIANBDGsgADYCAAsgA0EEaygCACEAEDYiASAAJQEmAUGo7MAAQajswAAoAgBBAWo2AgAgEkEQaiQAIAEL+wMBCH8jAEEQayIGJAACfwJAIANBAXFFBEAgAi0AACIFDQFBAAwCCyAAIAIgA0EBdiABKAIMEQQADAELIAEoAgwhCgNAIAJBAWohBAJAAkACQAJAIAXAQQBIBEAgBUH/AXEiCEGAAUYNASAIQcABRw0DIAYgATYCBCAGIAA2AgAgBkKggICABjcCCCADIAdBA3RqIgIoAgAgBiACKAIEEQAARQ0CQQEMBgsgACAEIAVB/wFxIgIgChEEAEUEQCACIARqIQIMBAtBAQwFCyAAIAJBA2oiBCACLwABIgIgChEEAEUEQCACIARqIQIMAwtBAQwECyAHQQFqIQcgBCECDAELQaCAgIAGIQsgBUEBcQRAIAIoAAEhCyACQQVqIQQLQQAhCAJ/IAVBAnFFBEBBACEJIAQMAQsgBC8AACEJIARBAmoLIQIgBUEEcQR/IAIvAAAhCCACQQJqBSACCyEEIAVBCHEEfyAELwAAIQcgBEECagUgBAshAiAFQRBxBEAgAyAJQQN0ai8BBCEJCyAGIAVBIHEEfyADIAhBA3RqLwEEBSAICzsBDiAGIAk7AQwgBiALNgIIIAYgATYCBCAGIAA2AgBBASADIAdBA3RqIgQoAgAgBiAEKAIEEQAADQIaIAdBAWohBwsgAi0AACIFDQALQQALIAZBEGokAAv3AwEKf0EKIQIgACIEQegHTwRAIAFBBGshBiAEIQMCQAJAA0AgAyADQZDOAG4iBEGQzgBsayIJQf//A3FB5ABuIQcCQCAFQQpqIgJBBGtBCkkEQCAGQQpqIgggB0EBdCIKLQCA2UA6AAAgAkEDayILQQpJDQEgC0EKQcjawAAQcwALIAJBBGtBCkHI2sAAEHMACyAIQQFqIApBgdnAAGotAAA6AAAgAkECa0EKSQRAIAhBAmogCSAHQeQAbGtBAXRB/v8HcSIHLQCA2UA6AAAgAkEBa0EKTw0CIAhBA2ogB0GB2cAAai0AADoAACAGQQRrIQYgBUEEayEFIANB/6ziBEsgBCEDRQ0DDAELCyACQQJrQQpByNrAABBzAAsgAkEBa0EKQcjawAAQcwALIAVBCmohAgsCQCAEQQlNBEAgBCEFIAIhAwwBCyAEQf//A3FB5ABuIQUCQCACQQJrIgNBCkkEQCABIANqIAQgBUHkAGxrQf//A3FBAXQiBi0AgNlAOgAAIAJBAWsiBEEKTw0BIAEgBGogBkGB2cAAai0AADoAAAwCCyADQQpByNrAABBzAAsgBEEKQcjawAAQcwALQQAgACAFG0UEQCADQQFrIgNBCk8EQCADQQpByNrAABBzAAsgASADaiAFQQF0LQCB2UA6AAALIAML2wMCA3wFfyACIAahIAcgBaEiCKIgBiAEoSIJIAMgB6GioSIKRAAAAAAAAAAAZCAKRAAAAAAAAAAAY2shDCAAIAahIAiiIAkgASAHoaKhIghEAAAAAAAAAABkIAhEAAAAAAAAAABjayENQQEhCwJAIAMgAaEiCCAEIAKhoiACIAChIgkgBSADoaKhIgpEAAAAAAAAAABkIApEAAAAAAAAAABjayIOIAggBiACoaIgCSAHIAOhoqEiCEQAAAAAAAAAAGQgCEQAAAAAAAAAAGNrIg9HIAwgDUdxDQACQCANDQAgBCAGEKMBIABmRSAFIAcQowEgAWZFcg0AIAQgBhCiASEIIAUgBxCiASEJIAAgCGZFDQAgASAJZg0BCwJAIAwNACAEIAYQowEgAmZFIAUgBxCjASADZkVyDQAgBCAGEKIBIQggBSAHEKIBIQkgAiAIZkUNACADIAlmDQELAkAgDw0AIAAgAhCjASAGZkUgASADEKMBIAdmRXINACAAIAIQogEhCCABIAMQogEhCSAGIAhmRQ0AIAcgCWYNAQtBACELIA4NACAAIAIQowEgBGZFIAEgAxCjASAFZkVyDQAgASADEKIBIQEgACACEKIBIARlIAEgBWVxIQsLIAsLzQMCBn4CfyMAQdAAayIIJAAgCEFAayIJQgA3AwAgCEIANwM4IAggACkDCCICNwMwIAggACkDACIDNwMoIAggAkLzytHLp4zZsvQAhTcDICAIIAJC7d6R85bM3LfkAIU3AxggCCADQuHklfPW7Nm87ACFNwMQIAggA0L1ys2D16zbt/MAhTcDCCAIQQhqIgAgASgCACABKAIEEB4gCEH/AToATyAAIAhBzwBqQQEQHiAIKQMIIQMgCCkDGCECIAk1AgAhBiAIKQM4IQQgCCkDICAIKQMQIQcgCEHQAGokACAEIAZCOIaEIgaFIgRCEIkgBCAHfCIEhSIFQhWJIAUgAiADfCIDQiCJfCIFhSIHQhCJIAcgBCACQg2JIAOFIgJ8IgNCIIlC/wGFfCIEhSIHQhWJIAcgAyACQhGJhSICIAUgBoV8IgNCIIl8IgaFIgVCEIkgBSADIAJCDYmFIgIgBHwiA0IgiXwiBIUiBUIViSAFIAMgAkIRiYUiAiAGfCIDQiCJfCIGhSIFQhCJIAUgAkINiSADhSICIAR8IgNCIIl8IgSFQhWJIAJCEYkgA4UiAkINiSACIAZ8hSICQhGJhSACIAR8IgJCIImFIAKFC80DAgZ+An8jAEHQAGsiCCQAIAhBQGsiCUIANwMAIAhCADcDOCAIIAApAwgiAjcDMCAIIAApAwAiAzcDKCAIIAJC88rRy6eM2bL0AIU3AyAgCCACQu3ekfOWzNy35ACFNwMYIAggA0Lh5JXz1uzZvOwAhTcDECAIIANC9crNg9es27fzAIU3AwggCEEIaiIAIAEoAgQgASgCCBAeIAhB/wE6AE8gACAIQc8AakEBEB4gCCkDCCEDIAgpAxghAiAJNQIAIQYgCCkDOCEEIAgpAyAgCCkDECEHIAhB0ABqJAAgBCAGQjiGhCIGhSIEQhCJIAQgB3wiBIUiBUIViSAFIAIgA3wiA0IgiXwiBYUiB0IQiSAHIAQgAkINiSADhSICfCIDQiCJQv8BhXwiBIUiB0IViSAHIAMgAkIRiYUiAiAFIAaFfCIDQiCJfCIGhSIFQhCJIAUgAyACQg2JhSICIAR8IgNCIIl8IgSFIgVCFYkgBSADIAJCEYmFIgIgBnwiA0IgiXwiBoUiBUIQiSAFIAJCDYkgA4UiAiAEfCIDQiCJfCIEhUIViSACQhGJIAOFIgJCDYkgAiAGfIUiAkIRiYUgAiAEfCICQiCJhSAChQuPBAECfyAAIAFqIQICQAJAIAAoAgQiA0EBcQ0AIANBAnFFDQEgACgCACIDIAFqIQEgACADayIAQfDvwAAoAgBGBEAgAigCBEEDcUEDRw0BQejvwAAgATYCACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAIgATYCAAwCCyAAIAMQMwsCQAJAAkAgAigCBCIDQQJxRQRAIAJB9O/AACgCAEYNAiACQfDvwAAoAgBGDQMgAiADQXhxIgIQMyAAIAEgAmoiAUEBcjYCBCAAIAFqIAE2AgAgAEHw78AAKAIARw0BQejvwAAgATYCAA8LIAIgA0F+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQYACTwRAIAAgARA3DwsCQEHg78AAKAIAIgJBASABQQN2dCIDcUUEQEHg78AAIAIgA3I2AgAgAUH4AXFB2O3AAGoiASECDAELIAFB+AFxIgFB2O3AAGohAiABQeDtwABqKAIAIQELIAIgADYCCCABIAA2AgwgACACNgIMIAAgATYCCA8LQfTvwAAgADYCAEHs78AAQezvwAAoAgAgAWoiATYCACAAIAFBAXI2AgQgAEHw78AAKAIARw0BQejvwABBADYCAEHw78AAQQA2AgAPC0Hw78AAIAA2AgBB6O/AAEHo78AAKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAAsLvgMBBX8jAEEQayIIJAACQAJAAkACQAJAIAEoAghBAUYEQCABKAIAIQQgASgCBCEFIAFBDEEEEMQBQQdBICAFQQp2Z2siASABQQdPG0ECdEEBciEHIAIgBGsiBiADaiEDIAIgBEYEQCAHIQEMBgsgBkGAgIDAAE8EQEEUQQQQzgEiAUUNAiABQQE2AhAgASADNgIIIAEgBDYCBCABIAU2AgAgASAHQQJ2QQdxNgIMDAULIAZBBXQgB2ohAQwECyADQQBIDQECQCADRQRAQQEhBAwBC0EBIQUgA0EBEM4BIgRFDQILIAMEQCAEIAIgA/wKAAALIAEgASgCCCICQQFrNgIIIAJBAUYEQCABQQRqKAIAIgJBAEgNAyABKAIAIAJBARDEASABQQxBBBDEAQtBB0EgIANBCnZnayIBIAFBB08bQQJ0QQFyIQEgAyEFDAQLQQRBFBDSAQALIAUgAxCqAQALQbCywABBKyAIQQ9qQaCywABBlLPAABBoAAsgAyAGayICQQAgAiADTRshAyAFIAZrIQUgBCAGaiEECyAAIAE2AgwgACAFNgIIIAAgAzYCBCAAIAQ2AgAgCEEQaiQAC5wDAQl/IAJB//8DcSEFIAFB//8DcSEGAkAgBCAEQbArcCIIayIHQbArSQ0AIAMhAiAHIQpBACEBA0AgBiABIAJqIgktAABqIgsgCUEBai0AAGoiDCAJQQJqLQAAaiINIAlBA2otAABqIgYgDSAMIAUgC2pqamohBSABQQRqIgFBsCtHDQAgBUHx/wNwIQUgBkHx/wNwIQYgAkGwK2ohAiAKQbArayIKQbArSQ0BQQAhAQwACwALAkAgCEUNACADIAdqIQIgCEEHcSIHBEAgAiEBA0AgBiABLQAAaiIGIAVqIQUgAUEBaiICIQEgB0EBayIHDQALCyAIQQhJDQAgAyAEaiEBA0AgBiACLQAAaiIDIAJBAWotAABqIgQgAkECai0AAGoiByACQQNqLQAAaiIKIAJBBGotAABqIgggAkEFai0AAGoiCSACQQZqLQAAaiILIAJBB2otAABqIgYgCyAJIAggCiAHIAQgAyAFampqampqamohBSACQQhqIgIgAUcNAAsLIAAgBUHx/wNwOwECIAAgBkHx/wNwOwEAC54KAgl/An4jAEHQAGsiBCQAAkACQCACIAEoAgQiA00EQEEAIQMgAkEASA0BQQEhBSACBEBBASEDIAJBARDOASIFRQ0CCyAEIAI2AhQgBEEANgIQIAQgBTYCDCAEQQdBICACQQp2Z2siAyADQQdPG0ECdEEBcjYCGCAEQQxqIQMjAEFAaiIFJAACQAJAAkACQAJAAkAgAiABKAIEIgcgAiAHSRsiBkUNACADKAIIIghFBEAgBUEEaiICIAEgBhAuIwBBEGsiASQAIAVBFGoiBgJ/IAJBDGogAigCACgCDBEHAEUEQCAGIAIpAgA3AgQgBkEMaiACQQhqKQIANwIAQQEMAQsgAUEIaiACQQhqKQIAIgw3AwAgASACKQIAIg03AwAgBkEEaiABQQxqIAEoAgQgDKcgDacoAggRAQBBAAs2AgAgAUEQaiQAIAUoAhQEQCAFQTBqIAVBIGopAgAiDDcDACAFIAUpAhg3AyggBSgCLCEGIAynIgEgAygCCCADKAIEIgJrSwRAIAMgARAZIAMoAgQhAgsgAQRAIAMoAgAgAmogBiAB/AoAAAsgASADKAIIIAMoAgQiAmsiB0sNAyADIAEgAmo2AgQgBUE0aiAGIAEgBSgCKCgCEBECAAwCCwJAIAMoAgwiAUEBcQRAIAFBBXYiASADKAIIaiICRQ0BIAMoAgAgAWsgAkEBEMQBDAELIAEgASgCECICQQFrNgIQIAJBAUcNACABKAIAIgIEQCABKAIEIAJBARDEAQsgAUEUQQQQxAELIANBCGogBUEgaikCADcCACADIAUpAhg3AgAMAQsgCCADKAIEayAGSQRAIAMgBhAZCyADKAIIIQogAygCBCEIIAEoAgAhCQNAIAogCGsgBkkEQCADIAYQGSADKAIEIQgLIAYEQCADKAIAIAhqIAkgBvwKAAALIAYgAygCCCIKIAMoAgQiCGsiC0sNAyADIAYgCGoiCDYCBCAGIAdLDQQgASAHIAZrIgc2AgQgASAGIAlqIgk2AgAgAiAGayICIAcgAiAHSRsiBg0ACwsgBUFAayQADAQLIAUgBzYCPCAFIAE2AjggBUE4ahCBAQALIAUgCzYCGAwBCyAFIAc2AhgLIAUgBjYCFCAFQRRqEIEBAAsgBCgCECEBIAQoAgwhAgJAIAQoAhgiA0EBcUUEQCAAIAM2AgwgACABNgIIIAAgAjYCBCAAQdizwAA2AgAMAQsgBCgCFCEFIAQgASADQQV2IgNqNgIkIAQgAiADazYCICAEIAMgBWo2AhwgBEEoaiEFIARBHGoiASgCBCECAn8CQCABKAIIIgYgASgCACIHRwRAQQxBBBDOASIBDQFBBEEMENIBAAsgBkUEQEEAIQFBASECQfixwAAMAgsgAkEBcQRAIAIhAUHsssAADAILIAJBAXIhAUGAs8AADAELIAFBATYCCCABIAc2AgQgASACNgIAQYyywAALIQcgBSABNgIMIAUgBjYCCCAFIAI2AgQgBSAHNgIAIAQgAzYCOCAEKAIwIgEgA0kNAyAEQTBqIgIgASADazYCACAEIAQoAiwgA2o2AiwgAEEIaiACKQIANwIAIAAgBCkCKDcCAAsgBEHQAGokAA8LIAQgAzYCRCAEIAI2AkAgBEFAaxCBAQALIAMgAhCqAQALIAQgATYCPCAEIARBPGqtQoCAgIDgAIQ3A0ggBCAEQThqrUKAgICA4ACENwNAQaiDwAAgBEFAa0GUqsAAEIIBAAuIAwEGfyMAQRBrIgUkAAJAAkACQAJAAkACQCACQQFxBEAgAkEBdiEDDAELIAEtAAAiA0UNASABIQQDQCAEQQFqIQQCQCADwEEASARAIANB/wFxQYABRgRAIAYgBC8AACIDaiEGIAMgBGpBAmohBAwCCyAEIANBA3FBGHciCEEFdEGAgICABHEgCEGAgICAAnEgCEGAgIAIcUEHdHJyQR12aiADQQF2QQJxaiADQQJ2QQJxaiEEIAZFIAdyIQcMAQsgBCADQf8BcSIDaiEEIAMgBmohBgsgBC0AACIDDQALQQAhAyAHIAZBEElxDQBBACEHIAZBAXQiA0EASA0ECyADDQELQQEhBEEAIQMMAQtBASEHIANBARDOASIERQ0BCyAFQQA2AgggBSAENgIEIAUgAzYCACAFQazRwAAgASACECZFDQFB1NHAAEHWACAFQQ9qQcTRwABBrNLAABBoAAsgByADEKoBAAsgACAFKQIANwIAIABBCGogBUEIaigCADYCACAFQRBqJAAL5wIBBX8CQCABQc3/e0EQIAAgAEEQTRsiAGtPDQAgAEEQIAFBC2pBeHEgAUELSRsiBGpBDGoQEyICRQ0AIAJBCGshAQJAIABBAWsiAyACcUUEQCABIQAMAQsgAkEEayIFKAIAIgZBeHEgAiADakEAIABrcUEIayICIABBACACIAFrQRBNG2oiACABayICayEDIAZBA3EEQCAAIAMgACgCBEEBcXJBAnI2AgQgACADaiIDIAMoAgRBAXI2AgQgBSACIAUoAgBBAXFyQQJyNgIAIAEgAmoiAyADKAIEQQFyNgIEIAEgAhArDAELIAEoAgAhASAAIAM2AgQgACABIAJqNgIACwJAIAAoAgQiAUEDcUUNACABQXhxIgIgBEEQak0NACAAIAQgAUEBcXJBAnI2AgQgACAEaiIBIAIgBGsiBEEDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAQQKwsgAEEIaiEDCyADC/oDAQR/IwBBQGoiAyQAIANBOGogAhC6ASADKAI8IQICQCADKAI4IgRFBEBBASEBDAELIAMgAjYCPCADIAQ2AjggA0EwaiAEIAEqAgAQrQECfyADKAI0IgUgAygCMEEBcQ0AGiADQTxqIgZB5JbAAEEBECUgBRDFASADQShqIAQgASoCBBCtASADKAIsIgUgAygCKEEBcQ0AGiAGQeWWwABBARAlIAUQxQEgA0EgaiAEIAEqAggQrQEgAygCJCIFIAMoAiBBAXENABogBkHmlsAAQQEQJSAFEMUBIANBGGogBCABKgIMEK0BIAMoAhwiBSADKAIYQQFxDQAaIAZB55bAAEEBECUgBRDFASADQRBqIAQgASoCEBCtASADKAIUIgQgAygCEEEBcQ0AGiAGQeiWwABBAhAlIAQQxQEgA0EIaiEEIwBBEGsiAiQAIAJBCGogA0E4aiIFKAIAIAFBFGoqAgAQrQFBASEBIAIoAgwhBiACKAIIQQFxRQRAIAVBBGpB6pbAAEECECUgBhDFAUEAIQELIAQgBjYCBCAEIAE2AgAgAkEQaiQAIAMoAjwhAiADKAIIQQFxRQRAQQAhAQwCCyADKAIMCyEEQQEhASACQYQISQRAIAQhAgwBCyACEFwgBCECCyAAIAI2AgQgACABNgIAIANBQGskAAuIAwEGfyMAQTBrIgMkACADQSBqQgA3AwAgA0EYakIANwMAIANBEGpCADcDACADQgA3AwggA0EoaiABIAFBGGoiCCADQQhqQSAQIgJAAkACQCADLQAoIgRBBEYNAANAAkACQAJAAkACQCAEQQFrDgMBAAIECyADKAIsLQAIQSNHDQMMAgsgAy0AKUEjRg0BDAILIAMoAiwiBC0ACEEjRw0BIAQoAgAhBiAEQQRqKAIAIgcoAgAiBQRAIAYgBREGAAsgBygCBCIFBEAgBiAFIAcoAggQxAELIARBDEEEEMQBCyADQShqIAEgCCADQQhqQSAQIiADLQAoIgRBBEcNAQwCCwsgACADKQMoNwIADAELIAMoAiwiBEEhTw0BIAIoAgAgAigCCCIBayAESQRAIAIgASAEQQFBARBMIAIoAgghAQsgBARAIAIoAgQgAWogA0EIaiAE/AoAAAsgACAENgIEIAIgASAEajYCCCAAQQQ6AAALIANBMGokAA8LQQAgBEEgQeCuwAAQOQALggMBBH8gACgCDCECAkACQAJAIAFBgAJPBEAgACgCGCEDAkACQCAAIAJGBEAgAEEUQRAgACgCFCICG2ooAgAiAQ0BQQAhAgwCCyAAKAIIIgEgAjYCDCACIAE2AggMAQsgAEEUaiAAQRBqIAIbIQQDQCAEIQUgASICQRRqIAJBEGogAigCFCIBGyEEIAJBFEEQIAEbaigCACIBDQALIAVBADYCAAsgA0UNAgJAIAAoAhxBAnRByOzAAGoiASgCACAARwRAIAMoAhAgAEYNASADIAI2AhQgAg0DDAQLIAEgAjYCACACRQ0EDAILIAMgAjYCECACDQEMAgsgACgCCCIAIAJHBEAgACACNgIMIAIgADYCCA8LQeDvwABB4O/AACgCAEF+IAFBA3Z3cTYCAA8LIAIgAzYCGCAAKAIQIgEEQCACIAE2AhAgASACNgIYCyAAKAIUIgBFDQAgAiAANgIUIAAgAjYCGA8LDwtB5O/AAEHk78AAKAIAQX4gACgCHHdxNgIAC6oNAgZ/An4jAEFAaiIFJAAgBUEQaiABEB8CQCAFKAIQQQFGBEAgBSgCFCEDDAELAkAgBSkDGCIJIAEoAgBBBGooAgAiA61YBEAgAyAJp2shCANAIAggASgCAEEEaigCACIETwRAQQAhAyAEIAhGDQRB96DAAEEZEIYBIQMMBAsgBUEQaiABEB8gBSgCEEEBRgRAIAUoAhQhAwwECyAFIAUpAxgiCTcDCCAJQv////8PVg0CIAUgCUIHgyIKNwMwIApCBloEQCAFIAVBMGqtQoCAgIAwhDcDOCAFQRBqIgBB6IPAACAFQThqEFkgABB8IQMMBAsgCUIHWARAQeOgwABBFBCGASEDDAQLIAqnIQQjAEEgayIDJAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCadBA3YiBkEBaw4GAQIDBAUGAAsgBCAGIAEgAhAkDA0LIAAoAgBFBEAgAEIBNwIACyADIAQ6AAMgA0EFOgACIARB/wFxQQVHBEAgAyADQQJqrUKAgICAwACENwMYIAMgA0EDaq1CgICAgMAAhDcDECADQQRqIgQgA0EQahBaIAQQfCEEDAwLIAEoAgAiBEEEaiIGKAIAIgdBA00EQEHkrMAAQRAQhgEhBAwMCyAGIAdBBGs2AgAgBCAEKAIAIgRBBGo2AgAgACAEKgAAOAIEDAULIAAoAghFBEAgAEIBNwIICyADIAQ6AAMgA0EFOgACIARB/wFxQQVHBEAgAyADQQJqrUKAgICAwACENwMYIAMgA0EDaq1CgICAgMAAhDcDECADQQRqIgQgA0EQahBaIAQQfCEEDAoLIAEoAgAiBEEEaiIGKAIAIgdBA00EQEHkrMAAQRAQhgEhBAwKCyAGIAdBBGs2AgAgBCAEKAIAIgRBBGo2AgAgACAEKgAAOAIMDAQLIAAoAhBFBEAgAEIBNwIQCyADIAQ6AAMgA0EFOgACIARB/wFxQQVHBEAgAyADQQJqrUKAgICAwACENwMYIAMgA0EDaq1CgICAgMAAhDcDECADQQRqIgQgA0EQahBaIAQQfCEEDAgLIAEoAgAiBEEEaiIGKAIAIgdBA00EQEHkrMAAQRAQhgEhBAwICyAGIAdBBGs2AgAgBCAEKAIAIgRBBGo2AgAgACAEKgAAOAIUDAMLIAAoAhhFBEAgAEIBNwIYCyADIAQ6AAMgA0EFOgACIARB/wFxQQVHBEAgAyADQQJqrUKAgICAwACENwMYIAMgA0EDaq1CgICAgMAAhDcDECADQQRqIgQgA0EQahBaIAQQfCEEDAYLIAEoAgAiBEEEaiIGKAIAIgdBA00EQEHkrMAAQRAQhgEhBAwGCyAGIAdBBGs2AgAgBCAEKAIAIgRBBGo2AgAgACAEKgAAOAIcDAILIAAoAiBFBEAgAEIBNwIgCyADIAQ6AAMgA0EFOgACIARB/wFxQQVHBEAgAyADQQJqrUKAgICAwACENwMYIAMgA0EDaq1CgICAgMAAhDcDECADQQRqIgQgA0EQahBaIAQQfCEEDAQLIAEoAgAiBEEEaiIGKAIAIgdBA00EQEHkrMAAQRAQhgEhBAwECyAGIAdBBGs2AgAgBCAEKAIAIgRBBGo2AgAgACAEKgAAOAIkDAELIAAoAihFBEAgAEIBNwIoCyADIAQ6AAMgA0EFOgACIARB/wFxQQVHBEAgAyADQQJqrUKAgICAwACENwMYIAMgA0EDaq1CgICAgMAAhDcDECADQQRqIgQgA0EQahBaIAQQfCEEDAILIAEoAgAiBEEEaiIGKAIAIgdBA00EQEHkrMAAQRAQhgEhBAwCCyAGIAdBBGs2AgAgBCAEKAIAIgRBBGo2AgAgACAEKgAAOAIsC0EADAYLIAMgBDYCECADQRBqQYWewABBCUGUnsAAQQIQdiADKAIQDAULIAMgBDYCECADQRBqQYWewABBCUGSnsAAQQIQdiADKAIQDAQLIAMgBDYCECADQRBqQYWewABBCUGRnsAAQQEQdiADKAIQDAMLIAMgBDYCECADQRBqQYWewABBCUGQnsAAQQEQdiADKAIQDAILIAMgBDYCECADQRBqQYWewABBCUGPnsAAQQEQdiADKAIQDAELIAMgBDYCECADQRBqQYWewABBCUGOnsAAQQEQdiADKAIQCyADQSBqJAAiA0UNAAsMAgtBkKHAAEEQEIYBIQMMAQsgBSAFQQhqrUKAgICAMIQ3AxAgBUEkaiIAQdKDwAAgBUEQahBZIAAQfCEDCyAFQUBrJAAgAwv3CQIGfwJ+IwBBQGoiBCQAIARBEGogARAfAkAgBCgCEEEBRgRAIAQoAhQhAgwBCwJAIAQpAxgiCCABKAIAQQRqKAIAIgKtWARAIAIgCKdrIQcDQCAHIAEoAgBBBGooAgAiA08EQEEAIQIgAyAHRg0EQfegwABBGRCGASECDAQLIARBEGogARAfIAQoAhBBAUYEQCAEKAIUIQIMBAsgBCAEKQMYIgg3AwggCEL/////D1YNAiAEIAhCB4MiCTcDMCAJQgZaBEAgBCAEQTBqrUKAgICAMIQ3AzggBEEQaiIAQeiDwAAgBEE4ahBZIAAQfCECDAQLIAhCB1gEQEHjoMAAQRQQhgEhAgwECyAJpyEDIwBBIGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQCAIp0EDdiIFQQFrDgQBAgMEAAsgAyAFIAFB3wAQJAwJCyAAKAIARQRAIABCATcCAAsgAiADOgADIAJBBToAAiADQf8BcUEFRwRAIAIgAkECaq1CgICAgMAAhDcDGCACIAJBA2qtQoCAgIDAAIQ3AxAgAkEEaiIDIAJBEGoQWiADEHwhAwwICyABKAIAIgNBBGoiBSgCACIGQQNNBEBB5KzAAEEQEIYBIQMMCAsgBSAGQQRrNgIAIAMgAygCACIDQQRqNgIAIAAgAyoAADgCBAwDCyAAKAIIRQRAIABCATcCCAsgAiADOgADIAJBBToAAiADQf8BcUEFRwRAIAIgAkECaq1CgICAgMAAhDcDGCACIAJBA2qtQoCAgIDAAIQ3AxAgAkEEaiIDIAJBEGoQWiADEHwhAwwGCyABKAIAIgNBBGoiBSgCACIGQQNNBEBB5KzAAEEQEIYBIQMMBgsgBSAGQQRrNgIAIAMgAygCACIDQQRqNgIAIAAgAyoAADgCDAwCCyAAKAIQRQRAIABCATcCEAsgAiADOgADIAJBBToAAiADQf8BcUEFRwRAIAIgAkECaq1CgICAgMAAhDcDGCACIAJBA2qtQoCAgIDAAIQ3AxAgAkEEaiIDIAJBEGoQWiADEHwhAwwECyABKAIAIgNBBGoiBSgCACIGQQNNBEBB5KzAAEEQEIYBIQMMBAsgBSAGQQRrNgIAIAMgAygCACIDQQRqNgIAIAAgAyoAADgCFAwBCyAAKAIYRQRAIABCATcCGAsgAiADOgADIAJBBToAAiADQf8BcUEFRwRAIAIgAkECaq1CgICAgMAAhDcDGCACIAJBA2qtQoCAgIDAAIQ3AxAgAkEEaiIDIAJBEGoQWiADEHwhAwwCCyABKAIAIgNBBGoiBSgCACIGQQNNBEBB5KzAAEEQEIYBIQMMAgsgBSAGQQRrNgIAIAMgAygCACIDQQRqNgIAIAAgAyoAADgCHAtBAAwECyACIAM2AhAgAkEQakHwrsAAQQlB/K7AAEEBEHYgAigCEAwDCyACIAM2AhAgAkEQakHwrsAAQQlB+67AAEEBEHYgAigCEAwCCyACIAM2AhAgAkEQakHwrsAAQQlB+q7AAEEBEHYgAigCEAwBCyACIAM2AhAgAkEQakHwrsAAQQlB+a7AAEEBEHYgAigCEAsgAkEgaiQAIgJFDQALDAILQZChwABBEBCGASECDAELIAQgBEEIaq1CgICAgDCENwMQIARBJGoiAEHSg8AAIARBEGoQWSAAEHwhAgsgBEFAayQAIAIL8wIBBX8jAEEQayIDJAACQEGU68AAKAIARQRAQZTrwABBfzYCAEGk68AAKAIAIgBBoOvAACgCACIBRgRAAn8gACAAQZjrwAAoAgAiAkcNABrQb0GAASAAIABBgAFNGyIE/A8BIgJBf0YNAwJAQajrwAAoAgAiAUUEQEGo68AAIAI2AgAMAQsgACABaiACRw0EC0GY68AAKAIAIgEgAGsgBE8EQCABIQIgAAwBCyADQQRqIAFBnOvAACgCACAAIARqIgJBBEEEEEsgAygCBEEBRg0DQZzrwAAgAygCCDYCAEGY68AAIAI2AgBBoOvAACgCAAsiASACTw0CQZzrwAAoAgAgAUECdGogAEEBajYCAEGg68AAIAFBAWoiATYCAAsgACABTw0BQaTrwABBnOvAACgCACAAQQJ0aigCADYCAEGU68AAQZTrwAAoAgBBAWo2AgBBqOvAACgCACEBIANBEGokACAAIAFqDwtB9MXAABCKAQsAC8QCAQR/IABCADcCECAAAn9BACABQYACSQ0AGkEfIAFB////B0sNABogAUEmIAFBCHZnIgNrdkEBcSADQQF0a0E+agsiAjYCHCACQQJ0QcjswABqIQRBASACdCIDQeTvwAAoAgBxRQRAIAQgADYCACAAIAQ2AhggACAANgIMIAAgADYCCEHk78AAQeTvwAAoAgAgA3I2AgAPCwJAAkAgASAEKAIAIgMoAgRBeHFGBEAgAyECDAELIAFBGSACQQF2a0EAIAJBH0cbdCEFA0AgAyAFQR12QQRxaiIEKAIQIgJFDQIgBUEBdCEFIAIhAyACKAIEQXhxIAFHDQALCyACKAIIIgEgADYCDCACIAA2AgggAEEANgIYIAAgAjYCDCAAIAE2AggPCyAEQRBqIAA2AgAgACADNgIYIAAgADYCDCAAIAA2AggL6AIBAX8jAEEgayICJAACQAJAAkACQAJAAkAgAC0AAEEBaw4DAQIDAAsgAiAAKAIENgIAQRRBARDOASIARQ0EIABBEGpBsczAACgAADYAACAAQQhqQanMwAApAAA3AAAgAEGhzMAAKQAANwAAIAJBFDYCDCACIAA2AgggAkEUNgIEIAIgAq1CgICAgJAJhDcDGCACIAJBBGqtQoCAgICgCYQ3AxAgASgCACABKAIEQfuVwAAgAkEQahAmIQAgAigCBCIBRQ0DIAIoAgggAUEBEMQBDAMLIAIgAC0AAUECdCIAKAKozkA2AgggAiAAKALQz0A2AgQgAiACQQRqrUKAgICAsAmENwMQIAEoAgAgASgCBEHLhMAAIAJBEGoQJiEADAILIAAoAgQiACgCACAAKAIEIAEQ1AEhAAwBCyAAKAIEIgAoAgAgASAAKAIEKAIQEQAAIQALIAJBIGokACAADwtBAUEUEKoBAAuRAgIBfwF+IwBBIGsiBCQAAkACQAJAIAAgAk0EQCABIAJLDQFCgICAgOAHIQUgACABTQ0CIAQgADYCCCAEIAE2AgwgBCAFIARBDGqthDcDGCAEIAUgBEEIaq2ENwMQQdmBwAAgBEEQaiADEIIBAAsgBCAANgIIIAQgAjYCDCAEQoCAgIDgByIFIARBDGqthDcDGCAEIAUgBEEIaq2ENwMQQbiCwAAgBEEQaiADEIIBAAsgBCABNgIIIAQgAjYCDCAEQoCAgIDgByIFIARBDGqthDcDGAwBCyAEIAE2AgggBCACNgIMIAQgBSAEQQxqrYQ3AxgLIAQgBSAEQQhqrYQ3AxBB8YLAACAEQRBqIAMQggEAC74CAQV/IwBBMGsiAyQAIANBKGogAhC6ASADKAIsIQICQCADKAIoIgVFBEBBASEGDAELIAMgAjYCLCADIAU2AiggA0EgaiAFIAEqAgAQrQFBASEGIAMoAiQhBAJAIAMoAiBBAXENACADQSxqIgdBpprAAEEBECUgBBDFASADQRhqIAUgASoCBBCtASADKAIcIQQgAygCGEEBcQ0AIAdBp5rAAEEBECUgBBDFASADQRBqIAUgASoCCBCtASADKAIUIQQgAygCEEEBcQ0AIAdB5ZbAAEEBECUgBBDFASADQQhqIAUgASoCDBCtASADKAIMIQQgAygCCEEBcQ0AIAdB5JbAAEEBECUgBBDFAUEAIQYMAQsgAkGECEkEQCAEIQIMAQsgAhBcIAQhAgsgACACNgIEIAAgBjYCACADQTBqJAALnwICB38DfiABKAIAIgJBBGooAgAiAwRAIAIoAgAiBEEKIAMgA0EKTxsiAWohBiADIAFrIQcgAa1CB35CB30hC0EAIQECQAJAA0ACQCABIARqIggsAAAiBUH/AHGtIAmGIAqEIQogBUEATg0AIAkgC1ENAyAJQgd8IQkgAUEBaiIBIANHDQEMAgsLIAJBBGogAUF/cyADajYCACACIAhBAWo2AgAgBUEBSyAJQj9RcUUEQCAAIAo3AwggAEEANgIADwsgAEHPq8AAQQ4QhgE2AgQgAEEBNgIADwsgAkEEakEANgIAIAIgAyAEajYCAEGMqsAAEIEBAAsgAiAGNgIAIAJBBGogBzYCAAsgAEHPq8AAQQ4QhgE2AgQgAEEBNgIAC58CAQp/IAAoAggiBwRAIAAoAgQhCANAIAggA0EYbGoiASgCDCIAQYCAgIB4RiAARXJFBEAgASgCECAAQQEQxAELIAEoAggiCQRAIAEoAgQhCkEAIQQDQCAKIARB8ABsaiICKAJkIgBBgICAgHhGIABFckUEQCACKAJoIABBARDEAQsgAigCYCIFBEAgAigCXEH8AWohAANAIABBBGsoAgAiBkGCgICAeEggBkVyRQRAIAAoAgAgBkEBEMQBCyAAQYQCaiEAIAVBAWsiBQ0ACwsgAigCWCIABEAgAigCXCAAQYQCbEEEEMQBCyAEQQFqIgQgCUcNAAsLIAEoAgAiAARAIAEoAgQgAEHwAGxBBBDEAQsgA0EBaiIDIAdHDQALCwv/AQEDfyMAQRBrIgMkAAJ/AkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENASABQQFBAUEAIAAoAgAgA0EGaiIBECciACABakEKIABrEBsMAgsgACgCACEAQQAhAgNAIAIgA2pBDWogAEEPcS0A2NpAOgAAIAJBAWshAiAAQQ9LIABBBHYhAA0ACyABQQFB6NrAAEECIAIgA2pBDmpBACACaxAbDAELIAAoAgAhAEEAIQIDQCACIANqQQ1qIABBD3EtAOraQDoAACACQQFrIQIgAEEPSyAAQQR2IQANAAsgAUEBQejawABBAiACIANqQQ5qQQAgAmsQGwsgA0EQaiQAC50CAQJ/AkACQCABKAIAIgEoAhBBAUcEQCADQQBOBEAgA0UEQEEBIQQMAwtBASEFIANBARDOASIEDQILIAUgAxCqAQALIAAgASkCADcCACABQoCAgIAQNwIAIABBCGogAUEIaiIEKAIANgIAIARBADYCACABIAEoAhAiBEEBazYCECAEQQFGBEAgASgCACIEBEAgASgCBCAEQQEQxAELIAFBFEEEEMQBCyADBEAgACgCBCACIAP8CgAACyAAIAM2AggMAQsgACAENgIEIAAgAzYCACADBEAgBCACIAP8CgAACyAAIAM2AgggASABKAIQIgBBAWs2AhAgAEEBRw0AIAEoAgAiAARAIAEoAgQgAEEBEMQBCyABQRRBBBDEAQsLiAIBBn8gACgCCCIEIQICf0EBIAFBgAFJDQAaQQIgAUGAEEkNABpBA0EEIAFBgIAESRsLIgYgACgCACAEa0sEfyAAIAQgBhBSIAAoAggFIAILIAAoAgRqIQICQCABQYABTwRAIAFBP3FBgH9yIQUgAUEGdiEDIAFBgBBJBEAgAiAFOgABIAIgA0HAAXI6AAAMAgsgAUEMdiEHIANBP3FBgH9yIQMgAUH//wNNBEAgAiAFOgACIAIgAzoAASACIAdB4AFyOgAADAILIAIgBToAAyACIAM6AAIgAiAHQT9xQYB/cjoAASACIAFBEnZBcHI6AAAMAQsgAiABOgAACyAAIAQgBmo2AghBAAucAgEDfyMAQRBrIgYkACABIAEoAggiBEEAIARBAUcbNgIIAkACQAJAIARBAUYEQCABKAIEIQUgASgCACEEIAFBDEEEEMQBIAMEQCAEIAIgA/wKAAALIAAgAzYCCCAAIAQ2AgQgACAFNgIADAELIANBAEgNAQJAIANFBEBBASEEDAELQQEhBSADQQEQzgEiBEUNAgsgACAENgIEIAAgAzYCACADBEAgBCACIAP8CgAACyAAIAM2AgggASABKAIIIgBBAWs2AgggAEEBRw0AIAFBBGooAgAiAEEASA0CIAEoAgAgAEEBEMQBIAFBDEEEEMQBCyAGQRBqJAAPCyAFIAMQqgEAC0GwssAAQSsgBkEPakGgssAAQZSzwAAQaAALiAIBBn8gACgCCCIEIQICf0EBIAFBgAFJDQAaQQIgAUGAEEkNABpBA0EEIAFBgIAESRsLIgYgACgCACAEa0sEfyAAIAQgBhBVIAAoAggFIAILIAAoAgRqIQICQCABQYABTwRAIAFBP3FBgH9yIQUgAUEGdiEDIAFBgBBJBEAgAiAFOgABIAIgA0HAAXI6AAAMAgsgAUEMdiEHIANBP3FBgH9yIQMgAUH//wNNBEAgAiAFOgACIAIgAzoAASACIAdB4AFyOgAADAILIAIgBToAAyACIAM6AAIgAiAHQT9xQYB/cjoAASACIAFBEnZBcHI6AAAMAQsgAiABOgAACyAAIAQgBmo2AghBAAuHAgIBfgZ/AkAgACgCBCIGRQ0AIAAoAgwiBwRAIAAoAgAiAkEIaiEDIAIpAwBCf4VCgIGChIiQoMCAf4MhAQNAIAFQBEADQCACQcABayECIAMpAwAgA0EIaiEDQoCBgoSIkKDAgH+DIgFCgIGChIiQoMCAf1ENAAsgAUKAgYKEiJCgwIB/hSEBCyACIAF6p0EDdkFobGoiBEEYaygCACIFBEAgBEEUaygCACAFQQEQxAELIARBDGsoAgAiBQRAIARBCGsoAgAgBUEBEMQBCyABQgF9IAGDIQEgB0EBayIHDQALCyAGQRhsIgMgBmpBIWoiAkUNACAAKAIAIANrQRhrIAJBCBDEAQsL7AEBA38CQAJAAkACQCABKAIAIgFBAXEEQEEHQSAgAiABQX5xIgVrIgYgA2oiAUEKdmdrIgQgBEEHTxtBAnRBAXIhBCACIAVGBEAgBCECIAEhAwwFCyAGQYCAgMAASQ0CQRRBBBDOASICRQ0BIAJBATYCECACIAE2AgggAiAFNgIEIAIgATYCACACIARBAnZBB3E2AgwMAwsgACABIAIgAxAsDwtBBEEUENIBAAsgBkEFdCAEaiECCyABIAZrIgRBACABIARPGyEBIAUgBmohBQsgACACNgIMIAAgAzYCCCAAIAE2AgQgACAFNgIAC4YKAgh/An4jAEEgayIFJAAgBSAAOgADIAVBAjoAAgJAAkACfyAAQf8BcUECRwRAIAUgBUECaq1CgICAgPAAhDcDGCAFIAVBA2qtQoCAgIDwAIQ3AxAgBUEEaiIAIAVBEGoQWiAAEHwMAQsgBUEQaiACECAgBSgCEEEBRgRAIAUoAhQMAQsgBSkDGCILIAIoAgBBBGo1AgBYDQFBkKvAAEEQEIYBCyEAIAFBADYCCAwBCyMAQRBrIgckACABQQA2AgggC6ciAyACKAIAIgJBBGoiCCgCACIAIAAgA0sbIgAgASgCACIGSwRAIAFBACAAQQFBARBMIAEoAgAhBiABKAIIIQQgAyAIKAIAIgAgACADSxshAAsgBiAEayAASQRAIAEgBCAAQQFBARBMIAMgAkEEaigCACIAIAAgA0sbIQALAkACQCAABEAgASgCCCEEIAIoAgAhBiACQQRqIQgDQCABKAIAIARrIABJBEAgASAEIABBAUEBEEwgASgCCCEECyAABEAgASgCBCAEaiAGIAD8CgAACyABIAAgBGoiBDYCCCAIKAIAIgYgAEkNAiAIIAYgAGsiCTYCACACIAIoAgAgAGoiBjYCACADIABrIgMgCSADIAlJGyIADQALCyAHQRBqJAAMAQsgByAGNgIMIAcgADYCCCAHQQhqEIEBAAsgBUEQaiEGIAEoAgQhAgJAAkAgASgCCCIERQ0AIARBB2siAEEAIAAgBE0bIQkgAkEDakF8cSACayEKQQAhAANAAkACQAJAIAAgAmotAAAiB8AiCEEATgRAIAogAGtBA3ENASAAIAlPDQIDQCAAIAJqIgNBBGooAgAgAygCAHJBgIGChHhxDQMgAEEIaiIAIAlJDQALDAILQoCAgICAICEMQoCAgIAQIQsCQAJAAn4CQAJAAkACQAJAAkACQAJAAkAgBy0A+tpAQQJrDgMAAQIKCyAAQQFqIgMgBEkNAkIAIQxCACELDAkLQgAhDCAAQQFqIgMgBEkNAkIAIQsMCAtCACEMIABBAWoiAyAESQ0CQgAhCwwHCyACIANqLAAAQb9/Sg0GDAcLIAIgA2osAAAhAwJAAkAgB0HgAWsiBwRAIAdBDUYEQAwCBQwDCwALIANBYHFBoH9GDQQMAwsgA0Gff0oNAgwDCyAIQR9qQf8BcUEMTwRAIAhBfnFBbkcNAiADQUBIDQMMAgsgA0FASA0CDAELIAIgA2osAAAhAwJAAkACQAJAIAdB8AFrDgUBAAAAAgALIAhBD2pB/wFxQQJLIANBQE5yDQMMAgsgA0HwAGpB/wFxQTBPDQIMAQsgA0GPf0oNAQsgBCAAQQJqIgNNBEBCACELDAULIAIgA2osAABBv39KDQJCACELIABBA2oiAyAETw0EIAIgA2osAABBQEgNBUKAgICAgOAADAMLQoCAgICAIAwCC0IAIQsgAEECaiIDIARPDQIgAiADaiwAAEG/f0wNAwtCgICAgIDAAAshDEKAgICAECELCyAGIAwgAK2EIAuENwIEIAZBATYCAAwGCyADQQFqIQAMAgsgAEEBaiEADAELIAAgBE8NAANAIAAgAmosAABBAEgNASAEIABBAWoiAEcNAAsMAgsgACAESQ0ACwsgBiAENgIIIAYgAjYCBCAGQQA2AgALQQAhACAFKAIQQQFHDQBBoKvAAEEvEIYBIQAgAUEANgIICyAFQSBqJAAgAAvnAQEDfwJAAkACQAJAIAEoAgAiAUEBcQRAQQdBICACIAFrIgYgA2oiBEEKdmdrIgUgBUEHTxtBAnRBAXIhBSABIAJGBEAgBSECIAQhAwwFCyAGQYCAgMAASQ0CQRRBBBDOASICRQ0BIAJBATYCECACIAQ2AgggAiABNgIEIAIgBDYCACACIAVBAnZBB3E2AgwMAwsgACABIAIgAxAsDwtBBEEUENIBAAsgBkEFdCAFaiECCyAEIAZrIgVBACAEIAVPGyEEIAEgBmohAQsgACACNgIMIAAgAzYCCCAAIAQ2AgQgACABNgIAC+ABAQJ/AkACQCABKAIAIgEoAhBBAUcEQCADQQBIDQECQCADRQRAQQEhBAwBC0EBIQUgA0EBEM4BIgRFDQILIAMEQCAEIAIgA/wKAAALIAEgASgCECICQQFrNgIQIAJBAUYEQCABKAIAIgIEQCABKAIEIAJBARDEAQsgAUEUQQQQxAELQQdBICADQQp2Z2siASABQQdPG0ECdEEBciEBIAMhBQwCCyABKAIEIAEoAgAgAmtqIQUgAiEEDAELIAUgAxCqAQALIAAgATYCDCAAIAU2AgggACADNgIEIAAgBDYCAAv8AQIDfwF+IwBBMGsiAiQAIAEoAgBBgICAgHhGBEAgASgCDCEDIAJBLGoiBEEANgIAIAJCgICAgBA3AiQgAkEkakG4zMAAIAMoAgAiAygCACADKAIEECYaIAJBIGogBCgCACIDNgIAIAIgAikCJCIFNwMYIAFBCGogAzYCACABIAU3AgALIAEpAgAhBSABQoCAgIAQNwIAIAJBEGoiAyABQQhqIgEoAgA2AgAgAUEANgIAIAIgBTcDCEEMQQQQzgEiAUUEQEEEQQwQ0gEACyABIAIpAwg3AgAgAUEIaiADKAIANgIAIABBmM7AADYCBCAAIAE2AgAgAkEwaiQAC5QCAQJ/IwBBIGsiBSQAQbjwwABBuPDAACgCACIGQQFqNgIAAkACf0EAIAZBAEgNABpBAUG08MAALQAADQAaQbTwwABBAToAAEGw8MAAQbDwwAAoAgBBAWo2AgBBAgtB/wFxIgZBAkcEQCAGQQFxRQ0BIAVBCGogACABKAIYEQMADAELQbzwwAAoAgAiBkEASA0AQbzwwAAgBkEBajYCAEHA8MAAKAIABEAgBSAAIAEoAhQRAwAgBSAEOgAdIAUgAzoAHCAFIAI2AhggBSAFKQMANwIQQcDwwAAoAgAgBUEQakHE8MAAKAIAKAIUEQMAC0G88MAAQbzwwAAoAgBBAWs2AgBBtPDAAEEAOgAAIANFDQAACwALwgECBH8CfiMAQSBrIgIkAEEBIQUCQCABQdKxwABBIxCyAQ0AIAAoAgAiAygCCCIEBEAgAygCBCIAIARBBHRqIQRCgICAgMAEIgYgAkEIaq2EIQcgBiACrYQhBgNAIAIgACkCADcCACACIABBCGopAgA3AgggAiAHNwMYIAIgBjcDECABKAIAIAEoAgRBsZbAACACQRBqECYNAiAAQRBqIgAgBEcNAAsLIAEgAygCECADKAIUELIBIQULIAJBIGokACAFC7cBAQZ/IAAoAggiBQRAIAAoAgQhBgNAIAYgAkHwAGxqIgEoAmQiAEGAgICAeEYgAEVyRQRAIAEoAmggAEEBEMQBCyABKAJgIgMEQCABKAJcQfwBaiEAA0AgAEEEaygCACIEQYKAgIB4SCAERXJFBEAgACgCACAEQQEQxAELIABBhAJqIQAgA0EBayIDDQALCyABKAJYIgAEQCABKAJcIABBhAJsQQQQxAELIAJBAWoiAiAFRw0ACwsLqgECAn8BfkEBIQdBBCEGAkAgBCAFakEBa0EAIARrca0gA61+IghCIIhQRQRAQQAhAwwBCyAIpyIDQYCAgIB4IARrSwRAQQAhAwwBCwJAAkACfyABBEAgAiABIAVsIAQgAxC5AQwBCyADRQRAIAQhBgwCCyADIAQQzgELIgYNACAAIAQ2AgQMAQsgACAGNgIEQQAhBwtBCCEGCyAAIAZqIAM2AgAgACAHNgIAC6oBAQF/IwBBEGsiBSQAIARFBEBBAEEAEKoBAAsgAiABIAJqIgFLBEBBAEEAEKoBAAsgBUEEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyIBQQhBBEEBIARBgQhJGyAEQQFGGyICIAEgAksbIgEgAyAEEEsgBSgCBEEBRgRAIAUoAgggBSgCDBCqAQALIAUoAgghAiAAIAE2AgAgACACNgIEIAVBEGokAAu2AQEBfyMAQRBrIgMkAAJAAkACQCAAKAIAIgBBAXEEQCABIABBfnEiAGsgAmoiAUEASA0CIAAgAUEBEMQBDAELIAAgACgCCCIBQQFrNgIIIAFBAUcNACAAQQRqKAIAIgFBAEgNAiAAKAIAIAFBARDEASAAQQxBBBDEAQsgA0EQaiQADwtBsLLAAEErIANBD2pBoLLAAEHcssAAEGgAC0GwssAAQSsgA0EPakGgssAAQZSzwAAQaAALtQEBAX8CQEEMQQQQzgEiBgRAIAZBAjYCCCAGIAM2AgAgBiAEIANrIAVqNgIEIAEgBiABKAIAIgEgASACRiICGzYCACACRQRAIAEgASgCCCICQQFqNgIIIAJBAEgNAiAAIAE2AgwgACAFNgIIIAAgBDYCBCAAQYyywAA2AgAgBkEMQQQQxAEPCyAAIAY2AgwgACAFNgIIIAAgBDYCBCAAQYyywAA2AgAPC0EEQQwQ0gEACxDIAQALogEBAX8jAEEQayIGJAACQCABBEAgBkEEaiABIAMgBCAFIAIoAhARBQACQCAGKAIEIgIgBigCDCIBTQRAIAYoAgghBQwBCyACQQJ0IQIgBigCCCEDIAFFBEBBBCEFIAMgAkEEEMQBDAELIAMgAkEEIAFBAnQiAhC5ASIFRQ0CCyAAIAE2AgQgACAFNgIAIAZBEGokAA8LENABAAtBBCACEKoBAAuxAQEBfyMAQRBrIgMkAAJAAkACQCAAKAIAIgBBAXEEQCABIABrIAJqIgFBAEgNAiAAIAFBARDEAQwBCyAAIAAoAggiAUEBazYCCCABQQFHDQAgAEEEaigCACIBQQBIDQIgACgCACABQQEQxAEgAEEMQQQQxAELIANBEGokAA8LQbCywABBKyADQQ9qQaCywABB3LLAABBoAAtBsLLAAEErIANBD2pBoLLAAEGUs8AAEGgAC6ABAQF/IwBBEGsiBSQAAkAgAQRAIAVBBGogASADIAQgAigCEBEBAAJAIAUoAgQiAiAFKAIMIgFNBEAgBSgCCCEEDAELIAJBAnQhAiAFKAIIIQMgAUUEQEEEIQQgAyACQQQQxAEMAQsgAyACQQQgAUECdCICELkBIgRFDQILIAAgATYCBCAAIAQ2AgAgBUEQaiQADwsQ0AEAC0EEIAIQqgEAC4kBAQF/IwBBEGsiAyQAIAIgASACaiIBSwRAQQBBABCqAQALIANBBGogACgCACICIAAoAgRBCCABIAJBAXQiAiABIAJLGyIBIAFBCE0bIgFBAUEBEEsgAygCBEEBRgRAIAMoAgggAygCDBCqAQALIAMoAgghAiAAIAE2AgAgACACNgIEIANBEGokAAucAQIDfwF+IwBBIGsiAiQAIAEoAgBBgICAgHhGBEAgASgCDCEDIAJBHGoiBEEANgIAIAJCgICAgBA3AhQgAkEUakG4zMAAIAMoAgAiAygCACADKAIEECYaIAJBEGogBCgCACIDNgIAIAIgAikCFCIFNwMIIAFBCGogAzYCACABIAU3AgALIABBmM7AADYCBCAAIAE2AgAgAkEgaiQAC40BAQR/IwBBEGsiAiQAAn9BASABKAIAIgNBJyABKAIEIgUoAhAiAREAAA0AGiACIAAoAgBBgQIQHQJAIAItAA0iAEGBAU8EQCADIAIoAgAgAREAAEUNAUEBDAILIAMgAiACLQAMIgRqIAAgBGsgBSgCDBEEAEUNAEEBDAELIANBJyABEQAACyACQRBqJAALhQEBAX8jAEEQayIDJAAgAiABIAJqIgFLBEBBAEEAEKoBAAsgA0EEaiAAKAIAIgIgACgCBEEIIAEgAkEBdCICIAEgAksbIgEgAUEITRsiARBXIAMoAgRBAUYEQCADKAIIIAMoAgwQqgEACyADKAIIIQIgACABNgIAIAAgAjYCBCADQRBqJAALqQECA38CfiMAQRBrIgAkACMAQRBrIgEkACABQQA6AA9BAUEBEM4BIgJFBEBBAUEBENIBAAsgACABQQ9qrTcDACAAIAKtNwMIIAJBAUEBEMQBIAFBEGokACAAKQMAIQMgACkDCCEEQaDwwAAtAABBAkYEQEHAqsAAQf0AQYCrwAAQggEAC0Gg8MAAQQE6AABBmPDAACAENwMAQZDwwAAgAzcDACAAQRBqJAALcgACfyADQQBIBEBBASEBQQAhA0EEDAELAn8CQAJ/IAEEQCACIAFBASADELkBDAELIANFBEBBASEBDAILIANBARDOAQsiAQ0AIABBATYCBEEBDAELIAAgATYCBEEACyEBQQgLIABqIAM2AgAgACABNgIAC5YCAgV/AW8jAEEQayIFJAAgBSACNwMAIAACfyABLQACRQRAIAJCgICAgICAgBBaBEAgBSAFrUKAgICAMIQ3AwhBASEBAn8jAEEQayIGJABBASEHAkACfyAFQQhqIgRBAXEEQCAEQQF2IQMgBEECTwRAIANBARDOASIHRQ0DCyADBEAgB0H0lMAAIAP8CgAACyADDAELIAZBBGpB9JTAACAEEC8gBigCDCEDIAYoAgghByAGKAIECyEEIAcgAxDXASAEBEAgByAEQQEQxAELIAZBEGokAAwBC0EBIAMQqgEACwwCC0EAIQEgAroQtAEMAQtBACEBIAIQDyEIEDYiAyAIJgEgAws2AgQgACABNgIAIAVBEGokAAtoAQN/QQEhBAJAIAJBAXEEQCACQQF2IQMgAkECTwRAIANBARDOASIERQ0CIAMhBQsgAwRAIAQgASAD/AoAAAsgACADNgIIIAAgBDYCBCAAIAU2AgAPCyAAIAEgAhAvDwtBASADEKoBAAtuAQN/QQEhAwJAIAFBAXEEQCABQQF2IQIgAUECTwRAIAJBARDOASIDRQ0CIAIhBAsgAgRAIANBjJbAACAC/AoAAAsgACACNgIIIAAgAzYCBCAAIAQ2AgAPCyAAQYyWwAAgARAvDwtBASACEKoBAAtrAAJAAkAgA0UEQEEBIQEMAQsgA0EBEM4BIgFFDQELIAMEQCABIAIgA/wKAAALIAAgAzYCCCAAIAM2AgQgACABNgIAIABBB0EgIANBCnZnayIAIABBB08bQQJ0QQFyNgIMDwtBASADEKoBAAuPAQEBfwJAAkAgAEGECE8EQCAA0G8mAUGU68AAKAIADQJBlOvAAEF/NgIAIABBqOvAACgCACIBSQ0BIAAgAWsiAEGg68AAKAIATw0BQZzrwAAoAgAgAEECdGpBpOvAACgCADYCAEGk68AAIAA2AgBBlOvAAEGU68AAKAIAQQFqNgIACw8LAAtBhMbAABCKAQALaAEBfyMAQRBrIgUkACABRQRAENABAAsgBUEIaiABIAMgBCACKAIQEQEAIAAgBSgCCCICQQJGIgE2AgggACAFKAIMIgNBACABGzYCBCAAQQAgA0GACCACQQFxGyABGzYCACAFQRBqJAALagEDfyMAQRBrIgEkACABQQRqIAAoAgAiAiAAKAIEQQQgAkEBdCICIAJBBE0bIgJBCEEoEEsgASgCBEEBRgRAIAEoAgggASgCDBCqAQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtvACMAQRBrIgEkACAAKAIAIgAgACgCCCICQQFrNgIIAkAgAkEBRgRAIABBBGooAgAiAkEASA0BIAAoAgAgAkEBEMQBIABBDEEEEMQBCyABQRBqJAAPC0GwssAAQSsgAUEPakGgssAAQZSzwAAQaAALYwEBfyMAQRBrIgYkACABRQRAENABAAsgBkEIaiABIAMgBCAFIAIoAhARBQAgBigCDCEBIAAgBigCCCICNgIIIAAgAUEAIAJBAXEiAhs2AgQgAEEAIAEgAhs2AgAgBkEQaiQAC2YBA38jAEEQayIBJAAgAUEEaiAAKAIAIgIgACgCBEEIIAJBAXQiAiACQQhNGyICEFcgASgCBEEBRgRAIAEoAgggASgCDBCqAQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAthAQF/IwBBEGsiBSQAIAFFBEAQ0AEACyAFQQhqIAEgAyAEIAIoAhARAQAgBSgCDCEBIAAgBSgCCCICNgIIIAAgAUEAIAJBAXEiAhs2AgQgAEEAIAEgAhs2AgAgBUEQaiQAC1oBAX8CQCADQQBIDQACQCADRQRAQQEhAQwBC0EBIQQgA0EBEM4BIgFFDQELIAAgATYCBCAAIAM2AgAgAwRAIAEgAiAD/AoAAAsgACADNgIIDwsgBCADEKoBAAteAQF/IAEoAgAiBEEBcQRAIAAgASAEIARBfnEgAiADEE4PCyAEIAQoAggiAUEBajYCCCABQQBOBEAgACAENgIMIAAgAzYCCCAAIAI2AgQgAEGMssAANgIADwsQyAEAC14BAn8jAEEQayIFJAAgBUEIaiABKAIAIAQ1AgAQWEEBIQQgBSgCDCEGIAUoAghBAXFFBEAgAUEEaiACIAMQJSAGEMUBQQAhBAsgACAGNgIEIAAgBDYCACAFQRBqJAALXwECfyMAQRBrIgUkACAFQQhqIAEoAgAgBCsDABC1AUEBIQQgBSgCDCEGIAUoAghBAXFFBEAgAUEEaiACIAMQJSAGEMUBQQAhBAsgACAGNgIEIAAgBDYCACAFQRBqJAALWwEBfyMAQRBrIgUkACABRQRAENABAAsgBUEIaiABIAMgBCACKAIQEQEAIAAgBS0ACCIBNgIIIAAgBSgCDEEAIAEbNgIEIABBACAFLQAJIAEbNgIAIAVBEGokAAtcAQF/IwBBIGsiBSQAIAUgATYCBCAFIAA2AgAgBSADNgIMIAUgAjYCCCAFIAVBCGqtQoCAgIDQDIQ3AxggBSAFrUKAgICAkAyENwMQQceEwAAgBUEQaiAEEIIBAAtZAQF/IwBBEGsiBCQAIAFFBEAQ0AEACyAEQQhqIAEgAyACKAIQEQIAIAAgBC0ACCIBNgIIIAAgBCgCDEEAIAEbNgIEIABBACAELQAJIAEbNgIAIARBEGokAAtbAQF/IAEoAgAiBEEBcQRAIAAgASAEIAQgAiADEE4PCyAEIAQoAggiAUEBajYCCCABQQBOBEAgACAENgIMIAAgAzYCCCAAIAI2AgQgAEGMssAANgIADwsQyAEAC0kBAX8jAEEQayICJAAgASAAKAIAIgBBf3NBH3ZBAUEAIAAgAEEfdSIBcyABayACQQZqIgEQJyIAIAFqQQogAGsQGyACQRBqJAALVQEBfyMAQRBrIgYkACABRQRAENABAAsgBkEIaiABIAMgBCAFIAIoAhARBQAgBigCDCEBIAAgBigCCCICNgIEIAAgAUEAIAJBAXEbNgIAIAZBEGokAAtVAQF/IwBBEGsiBiQAIAFFBEAQ0AEACyAGQQhqIAEgAyAEIAUgAigCEBETACAGKAIMIQEgACAGKAIIIgI2AgQgACABQQAgAkEBcRs2AgAgBkEQaiQAC1UBAX8jAEEQayIGJAAgAUUEQBDQAQALIAZBCGogASADIAQgBSACKAIQERQAIAYoAgwhASAAIAYoAggiAjYCBCAAIAFBACACQQFxGzYCACAGQRBqJAALVQEBfyMAQRBrIgYkACABRQRAENABAAsgBkEIaiABIAMgBCAFIAIoAhARFQAgBigCDCEBIAAgBigCCCICNgIEIAAgAUEAIAJBAXEbNgIAIAZBEGokAAtTAQF/IwBBEGsiBSQAIAFFBEAQ0AEACyAFQQhqIAEgAyAEIAIoAhARAQAgBSgCDCEBIAAgBSgCCCICNgIEIAAgAUEAIAJBAXEbNgIAIAVBEGokAAtRAQF/IwBBEGsiBCQAIAFFBEAQ0AEACyAEQQhqIAEgAyACKAIQEQIAIAQoAgwhASAAIAQoAggiAjYCBCAAIAFBACACQQFxGzYCACAEQRBqJAALSwAgASgCACIBQQFxBEAgAUF+cSEBIAMEQCABIAIgA/wKAAALIAAgAzYCCCAAIAE2AgQgACACIAFrIANqNgIADwsgACABIAIgAxBAC1ACAX8BfiMAQSBrIgMkACADIAE2AgwgAyAANgIIIANCgICAgOAHIgQgA0EIaq2ENwMYIAMgBCADQQxqrYQ3AxBBgYLAACADQRBqIAIQggEAC0cBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQUiAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBAWsiAg0BDAILCyAEIAVrIQMLIAMLkAMBCn8gACgCACIAKAIIIgwgACgCAEYEQCMAQRBrIgkkACAJQQhqIQ0gACgCACEFIwBBEGsiCCQAIAhBBGohBiAAIgcoAgQhDgJAAkBBBCAFQQFqIgUgBygCACIKQQF0IgsgBSALSxsiBSAFQQRNGyILIgVB/////wBNBEAgBUEEdCIFQf3///8HSQ0BCyAGQQA2AgQgBkEBNgIADAELAn8gCgRAIA4gCkEEdEEEIAUQuQEMAQsgBUEEEM4BCyIKRQRAIAYgBTYCCCAGQQQ2AgQgBkEBNgIADAELIAYgBTYCCCAGIAo2AgQgBkEANgIACwJ/IAgoAgQEQCAIKAIMIQcgCCgCCAwBCyAIKAIIIQYgByALNgIAIAcgBjYCBEGBgICAeAshBiANIAc2AgQgDSAGNgIAIAhBEGokACAJKAIIIgdBgYCAgHhHBEAgByAJKAIMEKoBAAsgCUEQaiQACyAAKAIEIAxBBHRqIgcgBDYCDCAHIAM2AgggByACNgIEIAcgATYCACAAIAxBAWo2AggLRAAgASgCACIBQQFxBEAgAwRAIAEgAiAD/AoAAAsgACADNgIIIAAgATYCBCAAIAIgAWsgA2o2AgAPCyAAIAEgAiADEEALRwEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhBVIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALQwECfyMAQRBrIgIkACACQQhqIAAoAgAlARAEIAIoAggiAyACKAIMIgAgARDUASAABEAgAyAAQQEQxAELIAJBEGokAAs2AQF/IwBBEGsiAiQAIAFBAUEBQQAgACgCACACQQZqIgEQJyIAIAFqQQogAGsQGyACQRBqJAALsgQCCH8DfiMAQSBrIgYkACABQQFBAUEAIAZBDGohBEEAIQFBFCECIAApAwAiDCIKQugHWgRAIARBBGshAiAKIQsCQAJAA0AgCyALQpDOAIAiCkKQzgB+faciB0H//wNxQeQAbiEFAkAgAUEUaiIAQQRrQRRJBEAgAkEUaiIDIAVBAXQiCC0AgNlAOgAAIABBA2siCUEUSQ0BIAlBFEHI2sAAEHMACyAAQQRrQRRByNrAABBzAAsgA0EBaiAIQYHZwABqLQAAOgAAIABBAmtBFEkEQCADQQJqIAcgBUHkAGxrQQF0Qf7/B3EiBS0AgNlAOgAAIABBAWtBFE8NAiADQQNqIAVBgdnAAGotAAA6AAAgAkEEayECIAFBBGshASALQv+s4gRWIAohC0UNAwwBCwsgAEECa0EUQcjawAAQcwALIABBAWtBFEHI2sAAEHMACyABQRRqIQILAkAgCkIJWARAIAIhAQwBCyAKpyIDQf//A3FB5ABuIQACQCACQQJrIgFBFEkEQCABIARqIAMgAEHkAGxrQf//A3FBAXQiAy0AgNlAOgAAIAJBAWsiAkEUTw0BIACtIQogAiAEaiADQYHZwABqLQAAOgAADAILIAFBFEHI2sAAEHMACyACQRRByNrAABBzAAsgDFBFIApQcUUEQCABQQFrIgFBFE8EQCABQRRByNrAABBzAAsgASAEaiAKp0EBdC0AgdlAOgAACyABIARqQRQgAWsQGyAGQSBqJAALSAEBf0EYQQQQzgEiAUUEQEEEQRgQ0gEACyABQQA2AgggAUKAgICAwAA3AgAgASAAKQIANwIMIAFBFGogAEEIaigCADYCACABCz0AIAAoAgAiACAAKAIQIgFBAWs2AhAgAUEBRgRAIAAoAgAiAQRAIAAoAgQgAUEBEMQBCyAAQRRBBBDEAQsLRgECfyABKAIEIQIgASgCACEDQQhBBBDOASIBRQRAQQRBCBDSAQALIAEgAjYCBCABIAM2AgAgAEGIzcAANgIEIAAgATYCAAtDAQF/IAEoAgAiASABKAIIIgRBAWo2AgggBEEASARAEMgBAAsgACABNgIMIAAgAzYCCCAAIAI2AgQgAEGMssAANgIAC0MBAX8gASgCACIBIAEoAhAiBEEBajYCECAEQQBIBEAQyAEACyAAIAE2AgwgACADNgIIIAAgAjYCBCAAQdizwAA2AgALPwIBfwF+IwBBEGsiASQAIAFCgICAgOAHIgIgAK2ENwMIIAEgAiAAQQRqrYQ3AwBBoIHAACABQeyzwAAQggEAC94BAgF/AX4jAEEgayIDJAAgAyABNgIQIAMgADYCDCADQQE7ARwgAyACNgIYIAMgA0EMajYCFCMAQRBrIgEkACADQRRqIgApAgAhBCABIAA2AgwgASAENwIEIwBBEGsiACQAIAFBBGoiASgCACICKAIEIgNBAXEEQCACKAIAIQIgACADQQF2NgIEIAAgAjYCACAAQdDMwAAgASgCBCABKAIIIgAtAAggAC0ACRBIAAsgAEGAgICAeDYCACAAIAE2AgwgAEHszMAAIAEoAgQgASgCCCIALQAIIAAtAAkQSAALLwACQCABaUEBRyAAQYCAgIB4IAFrS3INACAABEAgACABEM4BIgFFDQELIAEPCwALPwAgACgCAEGAgICAeEcEQCABIAAoAgQgACgCCBCyAQ8LIAEoAgAgASgCBCAAKAIMKAIAIgAoAgAgACgCBBAmCzgAAkAgAkGAgMQARg0AIAAgAiABKAIQEQAARQ0AQQEPCyADRQRAQQAPCyAAIAMgBCABKAIMEQQAC0UBAX9BGEEEEM4BIgJFBEBBBEEYENIBAAsgAiABNgIUIAIgADYCECACQoCAgICAgICAgH83AgggAkKAgICAwAA3AgAgAgvtAQEDfyABKAIIIgJBgICAEHFFBEAgAkGAgIAgcUUEQCAAIAEQeg8LQQAhAiMAQRBrIgMkACAAKAIAIQADQCACIANqQQ9qIABBD3EtAOraQDoAACACQQFrIQIgAEEPSyAAQQR2IQANAAsgAUEBQejawABBAiACIANqQRBqQQAgAmsQGyADQRBqJAAPC0EAIQIjAEEQayIDJAAgACgCACEAA0AgAiADakEPaiAAQQ9xLQDY2kA6AAAgAkEBayECIABBD0sgAEEEdiEADQALIAFBAUHo2sAAQQIgAiADakEQakEAIAJrEBsgA0EQaiQACy4AAkAgA2lBAUcgAUGAgICAeCADa0tyDQAgACABIAMgAhC5ASIARQ0AIAAPCwALOQEBf0EBIQICQCAAIAEQPQ0AIAEoAgBB+erAAEECIAEoAgQoAgwRBAANACAAQQRqIAEQPSECCyACCy0BAX8jAEEQayIBJAAgASABQQ9qrUKAgICAwAyENwMAQcuEwAAgASAAEIIBAAvoAQEEfyMAQRBrIgIkACMAQRBrIgMkACADQQRqIAAgAUEBEBAgAQRAIAAgAUEBEMQBCwJAAkAgAgJ/IAMoAgQiBUGAgICAeEYEQEEAIQEgAygCCCEAQQEMAQsgAygCCCEAAkAgAygCDCIEIAVPBEAgACEBDAELIARFBEBBASEBIAAgBUEBEMQBDAELIAAgBUEBIAQQuQEiAUUNAgtBACEAQQALNgIMIAIgADYCCCACIAQ2AgQgAiABNgIAIANBEGokAAwBC0EBIAQQqgEACyACKAIAIAIoAgQgAigCCCACKAIMIAJBEGokAAvoAQEEfyMAQRBrIgIkACMAQRBrIgMkACADQQRqIAAgAUEAEBAgAQRAIAAgAUEBEMQBCwJAAkAgAgJ/IAMoAgQiBUGAgICAeEYEQEEAIQEgAygCCCEAQQEMAQsgAygCCCEAAkAgAygCDCIEIAVPBEAgACEBDAELIARFBEBBASEBIAAgBUEBEMQBDAELIAAgBUEBIAQQuQEiAUUNAgtBACEAQQALNgIMIAIgADYCCCACIAQ2AgQgAiABNgIAIANBEGokAAwBC0EBIAQQqgEACyACKAIAIAIoAgQgAigCCCACKAIMIAJBEGokAAu1DgIYfwF+IwBBEGsiCyQAIwBBEGsiESQAIBFBBGohEiMAQfAAayIDJAACQAJAAkAgAUEBTQRAQfChwABBFxDXASECIBJBgICAgHg2AgAgEiACNgIEDAELAkBBgIACEBMiAkUNACACQQRrLQAAQQNxRQ0AIAJBAEGAgAL8CwALIAJFDQECf0GQ0gJBBBDOASIEBEAgBEEAQYnSAvwLACAEQQE7AY7SAiAEQQE6AIzSAiAEQQI6AI3SAiAEDAELQQRBkNICENIBAAshDCADQSBqIgRBCGpCADcDACAEQgA3AwAgBCAMNgIQIANBADYCHCADQoCAAjcCFCADIAI2AhAgAyABQQJrNgIMIAMgAEECajYCCCADQQA2AkQgA0KAgICAEDcCPCADQcgAaiEHIANBCGohEyMAQRBrIgUkAEGAwAAhDgJAAkAgA0E8aiIJKAIAIhUgCSgCCCIMa0EgTwRAIBUhAiAMIQQMAQsgBSATIAkQMiAFLQAAQQRHBEAgByAFKQMAIhpCIIg+AgQgByAaPAAAIAdBA2ogGqciAkEYdjoAACAHIAJBCHY7AAEMAgsgBSgCBARAIAkoAgAhAiAJKAIIIQQMAQsgB0EEOgAAIAdBADYCBAwBCyATQRhqIRgDQAJAIAIgBEcgAiAVR3INACAFIBMgCRAyIAUtAABBBEcEQCAHIAUpAwAiGkIgiD4CBCAHIBo8AAAgB0EDaiAapyICQRh2OgAAIAcgAkEIdjsAAQwDCyAJKAIIIQQgBSgCBARAIAkoAgAhAgwBCyAHQQQ6AAAgByAEIAxrNgIEDAILIAIgBEYEQCAFIAIgCSgCBCACQSBqIgYgAkEBdCICIAIgBkkbIgJBAUEBEEsgBSgCAEEBRgRAIAdCgcwANwIADAMLIAUoAgQhBiAJIAI2AgAgCSAGNgIECyAJKAIEIARqIRcgDiACIARrIhkgDiAZSRsiFCAIayIGBEAgCCAXakEAIAb8CwALIAUgEyAYIBcgFBAiAkACQAJAAn8CQAJAAkACQAJ/IAUtAABBBEcEQCAFKQMAIhpCIIinIQpBACEGIBqnDAELIAUoAgQiBiAUSw0GIA1BgH5xQQRyCyINQf8BcUEBaw4EAgEABgcLIAotAAhBI0cNBiAKKAIAIQggCkEEaigCACIPKAIAIhAEQCAIIBARBgALIA8oAgQiEARAIAggECAPKAIIEMQBC0EADAMLIAotAAhBI0YNAQwFCyANQYD+A3FBgMYARw0EC0EBCyEIA0ACQAJAIAhFBEAgCkEMQQQQxAEMAQsgBSATIBggBiAXaiAUIAZrIggQIgJAAkACfyAFLQAAQQRHBEAgBSkDACIaQiCIpyEKIBqnDAELIAggBSgCBCIPSQ0GIAYgD2ohBiANQYB+cUEEcgsiDUH/AXFBAWsOBAABAwYHCyANQYD+A3FBgMYARg0BDAYLIAotAAhBI0cNBQtBASEIDAELIAotAAhBI0cNAyAKKAIAIQggCkEEaigCACIPKAIAIhAEQCAIIBARBgALIA8oAgQiEARAIAggECAPKAIIEMQBC0EAIQgMAAsAC0GYrsAAQTZB0K7AABCrAQALIAkgBCAGaiIENgIIIAZFBEAgB0EEOgAAIAcgBCAMazYCBAwDCyAUIAZrIQggBiAURyAOIBlLcg0BIA5BAEggDkEBdCEORQ0BQX8hDgwBCwsgByAKNgIEIAcgDTYCACAJIAQgBmo2AggLIAVBEGokACADLQBIQQRHBEAgAyADKQNINwNQIAMgA0HQAGqtQoCAgIDQAIQ3A2ggA0HcAGpBmYTAACADQegAahAvIAMoAmAiAiADKAJkENcBIRUgAygCXCIEBEAgAiAEQQEQxAELIAMtAFBBA0YEQCADKAJUIgIoAgAhBCACQQRqKAIAIgwoAgAiBQRAIAQgBREGAAsgDCgCBCIFBEAgBCAFIAwoAggQxAELIAJBDEEEEMQBCyASQYCAgIB4NgIAIBIgFTYCBCADKAI8IgIEQCADKAJAIAJBARDEAQsgAygCFCICBEAgAygCECACQQEQxAELIAMoAjBBkNICQQQQxAEMAQsgEiADKQI8NwIAIBJBCGogA0HEAGooAgA2AgAgAygCFCICBEAgAygCECACQQEQxAELIAMoAjBBkNICQQQQxAELIANB8ABqJAAMAQtBAUGAgAIQqgEACyABBEAgACABQQEQxAELAkACQCALAn8gESgCBCICQYCAgIB4RgRAQQAhASARKAIIIQBBAQwBCyARKAIIIQACQCARKAIMIhYgAk8EQCAAIQEMAQsgFkUEQEEBIQEgACACQQEQxAEMAQsgACACQQEgFhC5ASIBRQ0CC0EAIQBBAAs2AgwgCyAANgIIIAsgFjYCBCALIAE2AgAgEUEQaiQADAELQQEgFhCqAQALIAsoAgAgCygCBCALKAIIIAsoAgwgC0EQaiQAC61vBE5/BH4ofQFvIwBBEGsiMCQAIwBBEGsiNSQAIDVBCGohRSMAQZACayIFJAAgBUEwaiAAIAEQFQJAIAUoAjAiAkEDRgRAIAUgBSgCNDYCvAEgBSAFQbwBaq1CgICAgBCENwPAASAFQeABakGshMAAIAVBwAFqEC8gBSgC5AEiAyAFKALoARDXASEHIAUoAuABIgIEQCADIAJBARDEAQsgBSgCvAEiAygCDCICQYCAgIB4RiACRXJFBEAgAygCECACQQEQxAELIAMoAgAiAgRAIAMoAgQgAkEEdEEEEMQBCyADQRhBBBDEAUEBIRsMAQsgBSgCVCEHIAUoAlAhBCACQQJGBH9BAAUgBSgCTEEAIAUoAkhBAXEbIUYgBSgCREEUIAUoAkBBAXEbIUcgBSoCPEMAAAAAIAUoAjhBAXEbIW4gBSoCNEMAAAAAIAJBAXEbIW9BAQshSCAFKAJcIQMgBCkDACFSIAcEQCAEIAdBGGwiAmtBGGshCSACIAdqQSFqIQ5BCCEbCyAFKAKQASEcIAUoAowBIQwgBSgCiAEhSSAFKAKEASEgIAUoAoABIT8gBSgCfCEmIAUoAnghEyAFKAJ0IREgBSgCcCEQQaDwwAAtAABBAUcEQBBWC0GQ8MAAQZDwwAApAwAiUUIBfDcDAEGY8MAAKQMAIVAgBUHIAWoiFUG4qsAAKQMANwMAIAVBsKrAACkDADcDwAEgBSBQNwPYASAFIFE3A9ABIAUgCTYCiAIgBSAONgKEAiAFIBs2AoACIAMEQCAFQShqIAVBwAFqIAMgBUHQAWoQFAsgBSADNgL4ASAFIAQ2AvABIAUgBCAHakEBajYC7AEgBSAEQQhqNgLoASAFIFJCf4VCgIGChIiQoMCAf4M3A+ABIAVBwAFqIQhBACEDIwBB4ABrIgokACAKQShqIAVB4AFqIiciAkEoaikDADcDACAKQSBqIAJBIGopAwA3AwAgCkEYaiACQRhqKQMAIlE3AwAgCkEQaiACQRBqKQMANwMAIApBCGogAkEIaikDADcDACAKIAIpAwAiUDcDAAJAIFGnIgdFBEBBACEHDAELIApBPGohBCAKKAIIIQkgCigCECEOAkADQCAHQQFrIQcgUFAEQANAIA5BwAFrIQ4gCSkDACAJQQhqIQlCgIGChIiQoMCAf4MiUEKAgYKEiJCgwIB/UQ0ACyBQQoCBgoSIkKDAgH+FIVALIFAgUCJRQgF9gyFQIA4gUXqnQQN2QWhsaiIaQRhrKAIAIhJBgICAgHhGDQFBACEbAkAgGkEEaygCACICQQBOBEAgGkEIaygCACEPIBpBDGsoAgAhDSAaQRRrKQIAIVEgAkUEQEEBIQMMAgtBASEbIAJBARDOASIDDQEgAiEDCyAbIAMQqgEACyACBEAgAyAPIAL8CgAACyANBEAgDyANQQEQxAELIAogAjYCRCAKIAM2AkAgCiACNgI8IAogUTcCNCAKIBI2AjAgCiBRNwJMIAogEjYCSCAKQdQAaiAIIApByABqIAQQISAKKAJUIgJBgICAgHhGIAJFckUEQCAKKAJYIAJBARDEAQsgBw0AC0EAIQcLIAogCTYCCCAKIA42AhALIAogUDcDACAKIAc2AhggCigCGCIHBEAgCigCCCEDIAooAhAhAiAKKQMAIVADQCBQUARAA0AgAkHAAWshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/gyJQQoCBgoSIkKDAgH9RDQALIAogAjYCECAKIAM2AgggUEKAgYKEiJCgwIB/hSFQCyAKIAdBAWsiBzYCGCAKIFBCAX0gUIMiUTcDACACIFB6p0EDdkFobGoiCEEYaygCACIEBEAgCEEUaygCACAEQQEQxAELIAhBDGsoAgAiBARAIAhBCGsoAgAgBEEBEMQBCyBRIVAgBw0ACwsCQCAKKAIgIgNFDQAgCigCJCICRQ0AIAooAiggAiADEMQBCyAKQeAAaiQAIAVBOGogFSkDADcDACAFQUBrIAVB0AFqKQMANwMAIAVByABqIAVB2AFqKQMANwMAIAUgBSkDwAE3AzAgBSARIBNBGGxqNgKoASAFIBA2AqQBIAUgETYCoAEgBSARNgKcASMAQTBrIiUkACAFQZwBaiIqKAIAIRUgKigCCCEoAkAgKigCBCICICooAgwiQEYEQCAVIRMMAQsgJUEUaiFBIBUhEwNAIAJBEGopAgAhUyACQQxqKAIAIUogAigCACEDICUgAkEEaigCACIHIAJBCGooAgBB8ABsajYCLCAlIAM2AiggJSAHNgIkICUgBzYCIEEAITEjAEEQayJCJAAgJUEgaiIjKAIIIUsgIygCACIQIQ0gIygCDBpDAAAAACFwQwAAAAAhcUMAAAAAIXJDAAAAACFzQwAAAAAhdEMAAAAAIWgjAEEgayIpJAAgIygCBCIOICMoAgwiH0cEQANAIA5B6ABqKQIAIVIgDkHkAGooAgAhTCAOQdQAaioCACF1IA5B0ABqKAIAISwgDkHMAGoqAgAhdiAOQcgAaigCACEYIA5BxABqKgIAIXcgDkFAaygCACEyIA5BPGoqAgAheCAOQThqKAIAITYgDkE0aioCACF5IA5BMGooAgAhNyAOQSxqKgIAIXogDkEoaigCACFNIA5BJGoqAgAhaSAOQSBqKAIAITggDkEcaioCACFqIA5BGGooAgAhOSAOQRRqKgIAIWsgDkEQaigCACE6IA5BDGoqAgAhbCAOQQRqKgIAIXsgDkEIaigCACFOIA5B2ABqKAIAIQcgDkHcAGooAgAhBCAOQeAAaigCACEDIA4oAgAhOyAjIA5B8ABqIg42AgQgKSAEIANBhAJsajYCHCApIAc2AhggKSAENgIUICkgBDYCECMAQbADayIGJAAgKUEQaiIzKAIIIiFBhAJsIjRBrAFuIU8gMygCACEHAkAgMygCBCIEIDMoAgwiPEYEQCAHIQMMAQsgByEDA0AgBkGsAWoiCyAEQYQC/AoAACAzIARBhAJqIgQ2AgRBACESQQAhFkMAAAAAIVdDAAAAACFYQwAAAAAhWUMAAAAAIVVCACFQQwAAAAAhX0EAIT1BACEtQQAhLkEAIS9BACE+QwAAAAAhYEMAAAAAIWFDAAAAACFiQwAAAAAhY0MAAAAAIWRDAAAAACFlIwBBQGoiHSQAAkACQAJAAkACQCALKAIAQQFGBEAgCygCBEEDRg0BCwJ9IAsoAlAiQ0ECRgRAQYCAgIB4IQhDAAAAAAwBCyALKgLEASFaIAsoAsABIUQgCyoCvAEhViALKAK4ASEUIAsqArQBIVsgCygCsAEhIiALKgKsASFtIAsoAqgBIRcgCyoCpAEhVyALKAKgASEKIAsqApwBIVggCygCmAEhGiALKgKUASFZIAsoApABIREgCyoCjAEhVSALKAKIASEZIAsqAoQBIVwgCygCgAEhDyALKgJ8IV0gCygCeCEJIAsqAnQhVCALKAJwIQggCyoCbCFfIAsoAmghPSALKAJkIS0gCygCYCEuIAsoAlwhLyALKAJYIT4gCyoCVCAdQQI2AjggHUECNgIwIB0gXDgCLCAdIA82AiggHSBdOAIkIB0gCTYCICAdIFQ4AhwgHSAINgIYIB1BAzYCFCAdQgE3AgwjAEHQAGsiHiQAAkACQAJAAkACQCAdQQxqIhIoAgBBAUcNACASKAIEIgggEigCCCIJRg0AIAhBA3QgEmpBEGohKwNAICtBBGsoAgBBAUYEQCArKgIAIlRDAAAAAF4NAwsgK0EIaiErIAkgCEEBaiIIRw0ACwsgHUEANgIIIB1CgICAgMAANwIADAELIBIgCEEBajYCBEEQQQQQzgEiFkUNASAWIFQ4AgAgHiAWNgIQIB5BBDYCDCAeQQE2AhQgHkHIAGogEkEwaigCADYCACAeQUBrIBJBKGopAgA3AwAgHkE4aiASQSBqKQIANwMAIB5BMGogEkEYaikCADcDACAeQShqIg8gEkEQaikCADcDACAeQSBqIBJBCGopAgA3AwAgHiASKQIAIlE3AxgCQCBRp0EBcUUNACAeKAIcIhIgHigCICIbRg0AIBtBAWshCUEBISQDQCAPIBJBA3RqISsgEiEIA0ACQCArQQRrKAIAQQFGBEAgKyoCACJUQwAAAABeDQELICtBCGohKyAbIAhBAWoiCEcNAQwDCwsgCEEBaiESIB4oAgwgJEYEQCAeQQxqICRBAUEEQQQQTCAeKAIQIRYLIBYgJEECdGogVDgCACAeICRBAWoiJDYCFCAIIAlHDQALCyAdIB4pAgw3AgAgHUEIaiAeQRRqKAIANgIACyAeQdAAaiQADAELQQRBEBCqAQALQQAhFkEAIRIgGUECRwRAIFdDAAAAACAKQQFxGyFgIFhDAAAAACAaQQFxGyFhIFlDAAAAACARQQFxGyFiIFVDAAAAACAZQQFxGyFjQQEhEgsgF0ECRwRAIFZDAAAAACAUQQFxGyFZIFtDAAAAACAiQQFxGyFYIG1DAAAAACAXQQFxGyFXQQEhFiBaQwAAAAAgREEBcRshVQsgQ0EBcSEPAkAgHSgCCEUEQEGAgICAeCEIIB0oAgAiCUUNASAdKAIEIAlBAnRBBBDEAQwBCyAdKQIEIVAgHSgCACEIC0MAAAAAIA8bCyFbQwAAgD8hZkMAAIA/IWdDAAAAACFaQwAAAAAhViALKALIASIJQQJHBEAgCyoC7AFDAAAAACALKALoAUEBcRshWiALKgLkAUMAAIA/IAsoAuABQQFxGyFnIAsqAtQBQwAAAAAgCygC0AFBAXEbIWUgCyoCzAFDAACAPyAJQQFxGyFmIAsqAtwBQwAAAAAgCygC2AFBAXEbIWQgCyoC9AFDAAAAACALKALwAUEBcRshVgsgCygC+AEiGkGCgICAeEgNASALKAL8ASERIAspAvwBQv////8PWARAIBpFDQIgESAaQQEQxAEMAgsgCygCgAIhCUEEQQEQzgEiD0UNAyAGIAk2ApABIAYgETYCjAEgBiAaNgKIASAPQfDC0cMGNgAAIAYgVjgCqAEgBiBaOAKkASAGIGc4AqABIAYgZDgCnAEgBiBlOAKYASAGIGY4ApQBIAZBBDYChAEgBiAPNgKAASAGQQQ2AnwgBiBbOAJ4IAYgUDcCcCAGIAg2AmwgBiBfOAJoIAYgPTYCZCAGIC02AmAgBiAuNgJcIAYgLzYCWCAGID42AlQgBiBVOAJQIAYgWTgCTCAGIFg4AkggBiBXOAJEIAYgFjYCQCAGIGA4AjwgBiBhOAI4IAYgYjgCNCAGIGM4AjAgBiASNgIsIAZBADYCGCAGQQA2AgAMAgtBBEEBEM4BIghFDQIgBkIANwKkASAGQoCAgICAgIDAPzcCnAEgBkKAgID8AzcClAEgBkKEgICAgICAgIB/NwKEASAGIAg2AoABIAZCgICAgMAANwJ4IAZBgICAgHg2AmwgBkEANgJkIAZBADYCXCAGQQA2AlQgBkEANgJAIAZBADYCLCAGQQA2AhggBkEANgIAIAhB68qVgwc2AAAgCygC+AEiCEGCgICAeEggCEVyDQEgCygC/AEgCEEBEMQBDAELIAsoAggiCkECRwRAIAsqAiwhbSALKAIoIRogCyoCJCFcIAsoAiAhESALKgIcIV0gCygCGCEPIAsqAhQhXiALKAIQIQkgCyoCDCFUQQRBARDOASIiRQ0CIAYgVjgCqAEgBiBaOAKkASAGIGc4AqABIAYgZDgCnAEgBiBlOAKYASAGIGY4ApQBIAZChICAgICAgICAfzcChAEgBiAiNgKAASAGQQQ2AnwgBiBbOAJ4IAYgUDcCcCAGIAg2AmwgBiBfOAJoIAYgPTYCZCAGIC02AmAgBiAuNgJcIAYgLzYCWCAGID42AlQgBiBVOAJQIAYgWTgCTCAGIFg4AkggBiBXOAJEIAYgFjYCQCAGIGA4AjwgBiBhOAI4IAYgYjgCNCAGIGM4AjAgBiASNgIsIAZBADYCGCAGQQE2AgAgIkHyyo2jBzYAACAGIG1DAAAAACAaGzgCFCAGIFxDAAAAACARGzgCECAGIF1DAAAAACAPGzgCDCAGIF5DAAAAACAJGzgCCCAGIFRDAAAAACAKQQFxGzgCBAwBCyBQpyEKAkAgCygCMCIaQQJHBEAgCyoCTCFcIAsoAkghESALKgJEIV0gCygCQCEPIAsqAjwhXiALKAI4IQkgCyoCNCFUQQdBARDOASIiRQ0BIAYgWzgCeCAGIFBCIIg+AnQgBiAKNgJwIAYgCDYCbCAGIF84AmggBiA9NgJkIAYgLTYCYCAGIC42AlwgBiAvNgJYIAYgPjYCVCAGIFU4AlAgBiBZOAJMIAYgWDgCSCAGIFc4AkQgBiAWNgJAIAYgYDgCPCAGIGE4AjggBiBiOAI0IAYgYzgCMCAGIBI2AiwgIkEDakHAlsAAKAAANgAAICJBvZbAACgAADYAACAGIFY4AqgBIAYgWjgCpAEgBiBnOAKgASAGIGQ4ApwBIAYgZTgCmAEgBiBmOAKUASAGQoeAgICAgICAgH83AoQBIAYgIjYCgAEgBkEHNgJ8IAYgXEMAAAAAIBFBAXEbOAIoIAYgXUMAAAAAIA9BAXEbOAIkIAYgXkMAAAAAIAlBAXEbOAIgIAYgVEMAAAAAIBpBAXEbOAIcIAZBATYCGCAGQQA2AgAMAgsgBkECNgIAIAhBgICAgHhyQYCAgIB4Rg0BIAogCEECdEEEEMQBDAELQQFBBxCqAQALIB1BQGskAAwBC0EBQQQQqgEACyAGKAIAQQJHBEAgAyAGQawB/AoAACADQawBaiEDCyAEIDxHDQALIDMoAgwhPCAzKAIEIQQLIDwgBGtBhAJuIRYgBCA8RwRAIARB/AFqIQQDQCAEQQRrKAIAIghBgoCAgHhIIAhFckUEQCAEKAIAIAhBARDEAQsgBEGEAmohBCAWQQFrIhYNAAsLIClBBGohCSAHIQQCQCAhRQ0AIDQgT0GsAWwiCEYNACA0QasBTQRAQQQhBCA0RQ0BIAcgNEEEEMQBDAELIAcgNEEEIAgQuQEiBA0AQQQgCBDSAQALIAkgBDYCBCAJIE82AgAgCSADIAdrQawBbjYCCCAGQbADaiQAQQAhBCBOQQJHBEAgaUMAAAAAIDhBAXEbIXAgakMAAAAAIDlBAXEbIXEga0MAAAAAIDpBAXEbIXIgbEMAAAAAIE5BAXEbIXNBASEECyApKQIIIVAgKSgCBCEHICkoAgwhA0EAIRYgTUECRwRAIHVDAAAAACAsQQFxGyF0IHdDAACAPyAyQQFxGyFsIHhDAAAAACA2QQFxGyFrIHlDAAAAACA3QQFxGyFqIHpDAACAPyBNQQFxGyFpQQEhFiB2QwAAAAAgGEEBcRshaAsCQCADBEAgByEDDAELQYCAgIB4IQMgBwRAIFCnIAdBrAFsQQQQxAELCyANQUBrIFA3AgAgDUE8aiADNgIAIA1BLGogdDgCACANQShqIGg4AgAgDUEkaiBsOAIAIA1BIGogazgCACANQRxqIGo4AgAgDUEYaiBpOAIAIA1BFGogFjYCACANQRBqIHA4AgAgDUEMaiBxOAIAIA1BCGogcjgCACANQQRqIHM4AgAgDSAENgIAIA1ByABqIHtDAAAAACA7QQFxGzgCACANQTRqQgEgUiBMQYCAgIB4RiIDGzcCACANQTBqQQAgTCADGzYCACANQcwAaiENIA4gH0cNAAsLIEJBCGoiAyANNgIEIAMgEDYCACApQSBqJAAgQigCDCEEICMoAgwhAyAjQoCAgIDAADcCCCAjKAIEIQggI0KEgICAwAA3AgAgAyAIRwRAIAMgCGtB8ABuIQcDQCAIIDFB8ABsaiIJKAJkIgNBgICAgHhGIANFckUEQCAJKAJoIANBARDEAQsgCSgCYCINBEAgCSgCXEH8AWohFgNAIBZBBGsoAgAiA0GCgICAeEggA0VyRQRAIBYoAgAgA0EBEMQBCyAWQYQCaiEWIA1BAWsiDQ0ACwsgCSgCWCIDBEAgCSgCXCADQYQCbEEEEMQBCyAxQQFqIjEgB0cNAAsLIEtB8ABsIghBzABuIQcgECENAkAgS0UNACAIIAdBzABsIgNGDQAgCEHLAE0EQEEEIQ0gCEUNASAQIAhBBBDEAQwBCyAQIAhBBCADELkBIg0NAEEEIAMQ0gEACyBBIA02AgQgQSAHNgIAIEEgBCAQa0HMAG42AghBACEQICMoAgwiAyAjKAIEIgRrQfAAbiEHIAMgBEcEQANAIAQgEEHwAGxqIggoAmQiA0GAgICAeEYgA0VyRQRAIAgoAmggA0EBEMQBCyAIKAJgIjEEQCAIKAJcQfwBaiENA0AgDUEEaygCACIDQYKAgIB4SCADRXJFBEAgDSgCACADQQEQxAELIA1BhAJqIQ0gMUEBayIxDQALCyAIKAJYIgMEQCAIKAJcIANBhAJsQQQQxAELIBBBAWoiECAHRw0ACwsgIygCCCIDBEAgIygCACADQfAAbEEEEMQBCyBCQRBqJAAgJUIBIFMgSkGAgICAeEYiAxs3AgwgJUEAIEogAxs2AgggE0EQaiAlQRhqKQIANwIAIBNBCGogJUEQaikCADcCACATICUpAgg3AgAgE0EYaiETIAJBGGoiAiBARw0ACwsgKkKEgICAwAA3AgAgKkKAgICAwAA3AgggQCACa0EYbiEJIAIgQEcEQANAIAJBDGooAgAiA0GAgICAeEYgA0VyRQRAIAJBEGooAgAgA0EBEMQBCyACEEogAigCACIDBEAgAkEEaigCACADQfAAbEEEEMQBCyACQRhqIQIgCUEBayIJDQALCyAFQdwAaiIsIBU2AgQgLCAoNgIAICwgEyAVa0EYbjYCCCAqKAIMIgIgKigCBCITa0EYbiEDIAIgE0cEQANAIBNBDGooAgAiAkGAgICAeEYgAkVyRQRAIBNBEGooAgAgAkEBEMQBCyATEEogEygCACICBEAgE0EEaigCACACQfAAbEEEEMQBCyATQRhqIRMgA0EBayIDDQALCyAqKAIIIgIEQCAqKAIAIAJBGGxBBBDEAQsgJUEwaiQAIAUgPyAgQSxsajYCuAEgBSAmNgK0ASAFID82ArABIAUgPzYCrAEgBUHoAGoiNiEaIAVBrAFqIgMoAggiDUEsbCIKQRxuIRIgAygCACEHAkAgAygCBCICIAMoAgwiEUYEQCAHIQMMAQsgByEDA0AgAkEkaikCACFQIAJBIGooAgAhDyACQQxqKAIAIQkgAkEIaigCACETIAJBFGooAgAhECACQRBqKAIAIRUgAkEcaigCACEIIAJBGGooAgAhBCADQQxqIAJBBGooAgBBACACKAIAQQFxGzYCACADQRhqIAhBACAEQQFxGzYCACADQRRqIBBBACAVQQFxGzYCACADQRBqIAlBACATQQFxGzYCACADQQRqQgEgUCAPQYCAgIB4RiIEGzcCACADQQAgDyAEGzYCACADQRxqIQMgAkEsaiICIBFHDQALCyARIAJrQSxuIQQgAiARRwRAIAJBJGohAgNAIAJBBGsoAgAiCEGAgICAeEYgCEVyRQRAIAIoAgAgCEEBEMQBCyACQSxqIQIgBEEBayIEDQALCyAHIQICQCANRQ0AIAogEkEcbCIERg0AIApBG00EQEEEIQIgCkUNASAHIApBBBDEAQwBCyAHIApBBCAEELkBIgINAEEEIAQQ0gEACyAaIAI2AgQgGiASNgIAIBogAyAHa0EcbjYCCCAFIEY2AoQBIAUgRzYCgAEgBSBuOAJ8IAUgbzgCeCAFIEg2AnQgBUEAIBwgSUGAgICAeEYiAxsiBzYCWCAFQQEgDCADGyICNgJUIAVBACBJIAMbIhM2AlAgBUEANgK8ASAnIAVBvAFqELoBIAUoAuQBIQMCfwJAAkAgBSgC4AEiCEUNACAFIAM2AsQBIAUgCDYCwAEgBUEgaiACIAcQrwEgBSgCJCEDAkAgBSgCIEEBcQ0AIAVBxAFqIgdB45rAAEEHECUgAxDFAQJ/IEgEQCAFQRhqIQQgBUH4AGohECMAQTBrIgkkACAJQShqIAgQugEgCSgCLCECAkAgCSgCKCIVRQRAQQEhGwwBCyAJIAI2AiwgCSAVNgIoIAlBIGogFSAQKgIAEK0BQQEhGyAJKAIkIQMCQCAJKAIgQQFxDQAgCUEsaiIIQbubwABBDhAlIAMQxQEgCUEYaiAVIBAqAgQQrQEgCSgCHCEDIAkoAhhBAXENACAIQcmbwABBDxAlIAMQxQEgCUEQaiAQKAIIEK4BIAkoAhQhAyAJKAIQQQFxDQAgCEHYm8AAQQMQJSADEMUBIAlBCGogECgCDBCuASAJKAIMIQMgCSgCCEEBcQ0AIAhB25vAAEEGECUgAxDFAUEAIRsMAQsgAkGECEkEQCADIQIMAQsgAhBcIAMhAgsgBCACNgIEIAQgGzYCACAJQTBqJAAgBSgCHCEDIAUoAhgMAQtBgQhBgAggCC0AABshA0EAC0EBcQ0AIAdB6prAAEEGECUgAxDFASMAQdAAayIUJAAgBUEwaiICKAIAIg4pAwAhUCAUQThqIQQgAigCDCEWAn8gBUHAAWoiCigCACIHLQABRQRAEAUhfBA2IgIgfCYBQQAMAQsQuAEhAkEBCyEDIAQgBzYCECAEQQA2AgggBCACNgIEIAQgAzYCAAJ/IBQoAjhBAkYEQCAUKAI8IQNBAQwBCyAUQTBqIhogFEHIAGoiESgCACISNgIAIBRBKGoiDyAUQUBrIg0pAgA3AwAgFCAUKQI4IlE3AyAgFgRAIBRBIGpBBHIhFSAOQQhqIQkgFCgCKEEARyEEIFBCf4VCgIGChIiQoMCAf4MhUCAUKAIkISIgFCgCLCECIFGnQQFxIQgDQCACIQcgUFAEQANAIA5BwAFrIQ4gCSkDACAJQQhqIQlCgIGChIiQoMCAf4MiUEKAgYKEiJCgwIB/UQ0ACyBQQoCBgoSIkKDAgH+FIVALIA4gUHqnQQN2QWhsaiICQQRrKAIAIRAgAkEIaygCACEbIBRBGGogAkEUaygCACACQRBrKAIAEK8BIBQoAhwhAgJAAkACQCAUKAIYQQFxBEAgAiEDDAELIAdBgwhLIARxBEAgBxBcCyAUQQA2AiggFCACNgIsIBRBOGogEiAQEJ8BIBQoAjwhAwJAAkACQAJAIBQoAjgEQAJAIBAEQCAUKAJAIQQDQCAUQRBqIgcgGy0AALgQtAE2AgQgB0EANgIAIBQoAhQhByAUKAIQQQFxDQIgAyAEIAcQswEgBEEBaiEEIBtBAWohGyAQQQFrIhANAAsLIAhFDQQgFCACNgI4IBRBOGooAgAlARAKDQcCf0EzQQEQzgEiBARAIARBsKDAAEEz/AoAACAEQTMQ1wEgBEEzQQEQxAEMAQtBAUEzEKoBAAshCCACQYQITwRAIAIQXAsgA0GDCE0NBSADIQkgCCEDDAILIANBhAhPBEAgAxBcCyAHIQMLIAJBgwhNDQEgAiEJCyAJEFwLQQAhBCACIQcMAgsgIiUBIAIlASADJQEQAiF8EDYiByB8JgEgB0GECE8EQCAHEFwLIANBhAhPBEAgAxBcCyACQYQISQ0DIAIQXAwDC0EAIQQgAiEHIAghAwsgIkGECE8EQCAiEFwLIAdBgwhLIARxBEAgBxBcC0EBDAQLIBUgAiADEMUBCyBQQgF9IFCDIVBBACEEIBZBAWsiFg0ACwsgESAaKAIANgIAIA0gDykDADcDACAUIBQpAyA3AzggFEEIaiEHIBRBOGoiAigCBCEDAkAgAigCCEUNACACKAIMIgJBhAhJDQAgAhBcCyAHIAM2AgQgB0EANgIAIBQoAgwhAyAUKAIIC0EBIQlBAXFFBEAgCkEEakHwmsAAQQYQJSADEMUBQQAhCQsgBUEQaiICIAM2AgQgAiAJNgIAIBRB0ABqJAAgBSgCEEEBcQRAIAUoAhQhAwwBCyAFQQhqITcjAEEgayImJAAgLCgCBCEOQQEhCSAmQRRqIAVBwAFqIkMoAgAgLCgCCCICEJ8BICYoAhghAwJAICYoAhQiREUNAAJAIAIEQCACQRhsIQkgJigCHCEbA0AgJkEIaiE4IwBBIGsiICQAICBBGGogRBC6ASAgKAIcIQICQCAgKAIYIgdFBEBBASENDAELICAgAjYCHCAgIAc2AhggIEEQaiAOKAIEIA4oAggQrwEgICgCFCEHICAoAhBBAXFFBEAgIEEcakHum8AAQQkQJSAHEMUBICBBCGohOSMAQSBrIickACAOQQxqIgIoAgQhD0EBIRYgJ0EUaiAgQRhqIhQoAgAgAigCCCICEJ8BICcoAhghDQJAICcoAhQiIkUNAAJAIAIEQCACQcwAbCEWICcoAhwhLQNAICdBCGohOkEAIQcjAEEwayIcJAAgHEEoaiAiELoBIBwoAiwhBAJAIBwoAigiGkUEQEEBIRUMAQsgHCAENgIsIBwgGjYCKCAcQSBqIBogDyoCSBCtASAcKAIkIQICQCAcKAIgQQFxDQAgHEEsaiIQQbSawABBBRAlIAIQxQECfyAPKAIAQQFGBEAgHEEYaiEIIA9BBGohEiMAQTBrIgokACAKQShqIBoQugEgCigCLCEHAkAgCigCKCIRRQRAQQEhDAwBCyAKIAc2AiwgCiARNgIoIApBIGogESASKgIAEK0BQQEhDCAKKAIkIQICQCAKKAIgQQFxDQAgCkEsaiIVQcOZwABBARAlIAIQxQEgCkEYaiARIBIqAgQQrQEgCigCHCECIAooAhhBAXENACAVQcSZwABBARAlIAIQxQEgCkEQaiARIBIqAggQrQEgCigCFCECIAooAhBBAXENACAVQcWZwABBBRAlIAIQxQEgCkEIaiARIBIqAgwQrQEgCigCDCECIAooAghBAXENACAVQcqZwABBBhAlIAIQxQFBACEMDAELIAdBhAhJBEAgAiEHDAELIAcQXCACIQcLIAggBzYCBCAIIAw2AgAgCkEwaiQAIBwoAhghByAcKAIcDAELQYEIQYAIIBotAAAbCyECIAdBAXENACAQQbmawABBBhAlIAIQxQECfyAPKAIUQQFGBEAgHEEQaiAPQRhqIBoQMSAcKAIQIQcgHCgCFAwBC0EAIQdBgQhBgAggGi0AABsLIQIgB0EBcQ0AIBBBv5rAAEEJECUgAhDFASAcQQhqIA8oAjQgDygCOBCvASAcKAIMIQIgHCgCCEEBcQ0AIBBByJrAAEEJECUgAhDFASMAQSBrIigkACAcQShqIgooAgAhBAJAAkAgD0E8aiICKAIAQYCAgIB4RwRAIAIoAgQhEkEBIQcgKEEUaiAEIAIoAggiAhCfASAoKAIYIRUgKCgCFCIaRQ0CIAJFDQEgAkGsAWwhByAoKAIcIS4DQAJAIChBCGohO0EAIQQjAEFAaiIZJAAgGUE4aiAaELoBIBkoAjwhCAJAIBkoAjgiH0UEQEEBIQQMAQsgGSAINgI8IBkgHzYCOCAZQTBqIBIoAoABIBIoAoQBEK8BIBkoAjQhAgJAIBkoAjBBAXENACAZQTxqIjJBj5vAAEEEECUgAhDFAQJ/IBIoAogBQYCAgIB4RwRAIBlBKGogEigCjAEgEigCkAEQrwEgGSgCKCEEIBkoAiwMAQtBgQhBgAggHy0AABsLIQIgBEEBcQ0AIDJBk5vAAEEJECUgAhDFAQJ/IBIoAgBBAUYEQCAZQSBqIRAgEkEEaiEhIwBBMGsiDCQAIAxBKGogHxC6ASAMKAIsIQQCQCAMKAIoIhhFBEBBASEvDAELIAwgBDYCLCAMIBg2AiggDEEgaiAYICEqAgAQrQFBASEvIAwoAiQhAgJAIAwoAiBBAXENACAMQSxqIhFBw5nAAEEBECUgAhDFASAMQRhqIBggISoCBBCtASAMKAIcIQIgDCgCGEEBcQ0AIBFBxJnAAEEBECUgAhDFASAMQRBqIBggISoCCBCtASAMKAIUIQIgDCgCEEEBcQ0AIBFBxZnAAEEFECUgAhDFASAMQQhqIBggISoCDBCtASAMKAIMIQIgDCgCCEEBcQ0AIBFBypnAAEEGECUgAhDFASAMIBggISoCEBCtASAMKAIEIQIgDCgCAEEBcQ0AIBFB0JnAAEENECUgAhDFAUEAIS8MAQsgBEGECEkEQCACIQQMAQsgBBBcIAIhBAsgECAENgIEIBAgLzYCACAMQTBqJAAgGSgCICEEIBkoAiQMAQtBACEEQYEIQYAIIB8tAAAbCyECIARBAXENACAyQbmWwABBBBAlIAIQxQECfyASKAIYQQFGBEAgGUEYaiEQIBJBHGohISMAQTBrIgwkACAMQShqIB8QugEgDCgCLCEEAkAgDCgCKCIYRQRAQQEhJAwBCyAMIAQ2AiwgDCAYNgIoIAxBIGogGCAhKgIAEK0BQQEhJCAMKAIkIQICQCAMKAIgQQFxDQAgDEEsaiIRQcOZwABBARAlIAIQxQEgDEEYaiAYICEqAgQQrQEgDCgCHCECIAwoAhhBAXENACARQcSZwABBARAlIAIQxQEgDEEQaiAYICEqAggQrQEgDCgCFCECIAwoAhBBAXENACARQYWcwABBCBAlIAIQxQEgDEEIaiAYICEqAgwQrQEgDCgCDCECIAwoAghBAXENACARQY2cwABBCBAlIAIQxQFBACEkDAELIARBhAhJBEAgAiEEDAELIAQQXCACIQQLIBAgBDYCBCAQICQ2AgAgDEEwaiQAIBkoAhghBCAZKAIcDAELQQAhBEGBCEGACCAfLQAAGwshAiAEQQFxDQAgMkG9lsAAQQcQJSACEMUBIBlBEGohISASQSxqIRhBACEMIwBBQGoiFyQAIBdBOGogHxC6ASAXKAI8IRACQCAXKAI4IhFFBEBBASEEDAELIBcgEDYCPCAXIBE2AjgCfyAYKAIAQQFGBEAgF0EwaiAYQQRqIBEQOiAXKAIwIQwgFygCNAwBC0GBCEGACCARLQAAGwshAgJAIAxBAXENACAXQTxqIgRB/ZbAAEEEECUgAhDFAQJ/IBgoAhRBAUYEQCAXQShqIBhBGGogERA6IBcoAighDCAXKAIsDAELQQAhDEGBCEGACCARLQAAGwshAiAMQQFxDQAgBEGBl8AAQQYQJSACEMUBIBdBIGogESAYKgJMEK0BIBcoAiQhAiAXKAIgQQFxDQAgBEGHl8AAQQwQJSACEMUBAn8gGCgCKEEBRgRAIBdBGGogGCgCLBCuASAXKAIYIQwgFygCHAwBC0EAIQxBgQhBgAggES0AABsLIQIgDEEBcQ0AIARBk5fAAEEIECUgAhDFAQJ/IBgoAjBBAUYEQCAXQRBqIBgoAjQQrgEgFygCFCECIBcoAhAMAQtBgQhBgAggES0AABshAkEAC0EBcQ0AIARBm5fAAEEJECUgAhDFASMAQRBrIhEkACAXQThqIgQoAgAhEEEBIQwCfyAYQThqIgIoAgBBAUYEQCARQQhqIBAgAioCBBCtASARKAIMIQIgESgCCAwBC0GBCEGACCAQLQAAGyECQQALQQFxRQRAIARBBGpBpJfAAEELECUgAhDFAUEAIQwLIBdBCGoiBCACNgIEIAQgDDYCACARQRBqJAAgFygCCEEBcQRAIBcoAgwhAiAXKAI8IRAMAQsjAEEgayIfJAAgF0E4aiIRKAIAIQQCQAJAIBhBQGsiAigCAEGAgICAeEcEQCACKAIEIQxBASEYIB9BFGogBCACKAIIIgIQnwEgHygCGCEEIB8oAhQiEEUNAiACRQ0BIAJBAnQhGCAfKAIcISQDQAJAIB9BCGogECAMKgIAEK0BIB8oAgwhAiAfKAIIQQFxDQAgBCAkIAIQswEgJEEBaiEkIAxBBGohDCAYQQRrIhgNAQwDCwtBASEYIARBhAhJBEAgAiEEDAMLIAQQXCACIQQMAgtBgQhBgAggBC0AABshBAsgEUEEakGvl8AAQQkQJSAEEMUBQQAhGAsgFyAENgIEIBcgGDYCACAfQSBqJAAgFygCPCEQIBcoAgBBAXFFBEBBACEEDAILIBcoAgQhAgtBASEEIBBBhAhJBEAgAiEQDAELIBAQXCACIRALICEgEDYCBCAhIAQ2AgAgF0FAayQAIBkoAhQhAiAZKAIQQQFxDQAgMkGcm8AAQQUQJSACEMUBIwBBEGsiECQAIBBBCGogEkGUAWogGUE4aiICKAIAEDFBASEEIBAoAgwhCCAQKAIIQQFxRQRAIAJBBGpBv5rAAEEJECUgCBDFAUEAIQQLIBlBCGoiAiAINgIEIAIgBDYCACAQQRBqJAAgGSgCPCEIIBkoAghBAXFFBEBBACEEDAILIBkoAgwhAgtBASEEIAhBhAhJBEAgAiEIDAELIAgQXCACIQgLIDsgCDYCBCA7IAQ2AgAgGUFAayQAICgoAgwhAiAoKAIIQQFxDQAgFSAuIAIQswEgLkEBaiEuIBJBrAFqIRIgB0GsAWsiBw0BDAMLC0EBIQcgFUGECEkEQCACIRUMAwsgFRBcIAIhFQwCC0GBCEGACCAELQAAGyEVCyAKQQRqQdGawABBBhAlIBUQxQFBACEHCyAcIBU2AgQgHCAHNgIAIChBIGokACAcKAIsIQQgHCgCAEEBcUUEQEEAIRUMAgsgHCgCBCECC0EBIRUgBEGECEkEQCACIQQMAQsgBBBcIAIhBAsgOiAENgIEIDogFTYCACAcQTBqJAAgJygCDCECICcoAghBAXENAiANIC0gAhCzASAtQQFqIS0gD0HMAGohDyAWQcwAayIWDQALCyAUQQRqQdubwABBBhAlIA0QxQFBACEWDAELQQEhFiANQYQITwRAIA0QXAsgAiENCyA5IA02AgQgOSAWNgIAICdBIGokACAgKAIcIQIgICgCCEEBcUUEQEEAIQ0MAgsgICgCDCEHC0EBIQ0gAkGECEkEQCAHIQIMAQsgAhBcIAchAgsgOCACNgIEIDggDTYCACAgQSBqJAAgJigCDCECICYoAghBAXENAiADIBsgAhCzASAbQQFqIRsgDkEYaiEOIAlBGGsiCQ0ACwsgQ0EEakH2msAAQQcQJSADEMUBQQAhCQwBC0EBIQkgA0GECE8EQCADEFwLIAIhAwsgNyADNgIEIDcgCTYCACAmQSBqJAAgBSgCCEEBcQRAIAUoAgwhAwwBCyMAQSBrIg0kACA2KAIEIQ5BASEJIA1BFGogBUHAAWoiCCgCACA2KAIIIgIQnwEgDSgCGCEDAkAgDSgCFCIERQ0AAkAgAgRAIAJBHGwhCSANKAIcIRsDQCANQQhqIRUjAEEwayIPJAAgD0EoaiAEELoBIA8oAiwhBwJAIA8oAigiAkUEQEEBIRYMAQsgDyAHNgIsIA8gAjYCKCAPQSBqIA4oAgQgDigCCBCvAUEBIRYgDygCJCECAkAgDygCIEEBcQ0AIA9BLGoiEEHpmcAAQQkQJSACEMUBIA9BGGogDigCDBCuASAPKAIcIQIgDygCGEEBcQ0AIBBB8pnAAEELECUgAhDFASAPQRBqIA4oAhAQrgEgDygCFCECIA8oAhBBAXENACAQQf2ZwABBCRAlIAIQxQEgD0EIaiAOKAIUEK4BIA8oAgwhAiAPKAIIQQFxDQAgEEGGmsAAQQoQJSACEMUBIA8gDigCGBCuASAPKAIEIQIgDygCAEEBcQ0AIBBBkJrAAEEKECUgAhDFAUEAIRYMAQsgB0GECEkEQCACIQcMAQsgBxBcIAIhBwsgFSAHNgIEIBUgFjYCACAPQTBqJAAgDSgCDCECIA0oAghBAXENAiADIBsgAhCzASAbQQFqIRsgDkEcaiEOIAlBHGsiCQ0ACwsgCEEEakH9msAAQQYQJSADEMUBQQAhCQwBC0EBIQkgA0GECE8EQCADEFwLIAIhAwsgBSADNgIEIAUgCTYCACANQSBqJAAgBSgCAEEBcUUNAiAFKAIEIQMLIAUoAsQBIgJBhAhJDQAgAhBcCyAFIAM2ArwBIAUgBUG8AWqtQoCAgIAghDcDwAEgBUHgAWpBhITAACAFQcABahAvIAUoAuQBIgMgBSgC6AEQ1wEhByAFKALgASICBEAgAyACQQEQxAELIAUoArwBIgJBhAhPBEAgAhBcCyAFKAJQIRNBAQwBCyAFKALEASEHQQALIRsgEwRAIAUoAlQgE0EBEMQBCyAFQTBqEEJBACEJICwoAggiEARAICwoAgQhFQNAIBUgCUEYbGoiDSgCACICBEAgDSgCBCACQQEQxAELIA0oAhQiCARAIA0oAhAhA0EAIQ4DQCADIA5BzABsaiIPKAIwIgIEQCAPKAI0IAJBARDEAQsCQCAPKAI8IhNBgICAgHhGDQAgDygCRCIEBEAgDygCQEHsAGohEwNAIBNBEGooAgAiAgRAIBNBFGooAgAgAkEBEMQBCyATQRxqKAIAIgJBgICAgHhGIAJFckUEQCATQSBqKAIAIAJBARDEAQsgEygCACICQYCAgIB4RiACRXJFBEAgE0EEaigCACACQQJ0QQQQxAELIBNBrAFqIRMgBEEBayIEDQALIA8oAjwhEwsgE0UNACAPKAJAIBNBrAFsQQQQxAELIA5BAWoiDiAIRw0ACwsgDSgCDCICBEAgDSgCECACQcwAbEEEEMQBCyAJQQFqIgkgEEcNAAsLIAUoAlwiAgRAIAUoAmAgAkEYbEEEEMQBCyAFKAJwIhMEQCAFKAJsIQMDQCADKAIAIgIEQCADQQRqKAIAIAJBARDEAQsgA0EcaiEDIBNBAWsiEw0ACwsgBSgCaCICRQ0AIAUoAmwgAkEcbEEEEMQBCyBFIAc2AgQgRSAbNgIAIAVBkAJqJAAgNSgCDCEDIDUoAgghAiABBEAgACABQQEQxAELIDAgAjYCCCAwIANBACACQQFxIgAbNgIEIDBBACADIAAbNgIAIDVBEGokACAwKAIAIDAoAgQgMCgCCCAwQRBqJAAL3RUCGX8MfCMAQRBrIhEkACMAQRBrIg8kACAPQQRqIRMjAEHQAGsiByQAAkAgAUEBcUEBIAMbBEAgE0EANgIIIBNCgICAgMAANwIADAELIAdBADYCCCAHQoCAgIDAADcCACAHQQA2AiwgB0KAgICAgAE3AiQgB0IINwIcIAdCADcCFCAHQoCAgICAATcCDCAHQQA2AjggB0KAgICAwAA3AjAgAUEBdiEaA0AgAiASQQJ0aigCACEUAkAgGiIEIAMgEkEBaiISSwRAIAIgEkECdGooAgAhBAsgBEkgBCAUTXIgBCAUa0ECTXINACAEQQF0IgQgFEEBdCIFSSABIARJckUEQCAHQoCAgIAgNwJIIAcgBCAFa0H+////AHEiBDYCQCAHIAAgBUEDdGoiBTYCPCAHIAUgBEEDdGo2AkQgB0EwaiEVQQAhBkQAAAAAAAAAACEeRAAAAAAAAAAAIR1EAAAAAAAAAAAhH0QAAAAAAAAAACEgQQAhECMAQSBrIhskACAHQQxqIghBADYCCAJAAn8CfwJAIAdBPGoiBCgCECIJBEAgBCgCBCIKIAluIgUgCCgCAEsEQCAIQQAgBUEIQRAQTCAIKAIIIQYLIAkgCk0EQCAJQQFGDQIgCUEDdCELIAgoAgQgBkEEdGohBSAEKAIAIQQDQCAFIAQrAwA5AwAgBUEIaiAEQQhqKwMAOQMAIAQgC2ohBCAFQRBqIQUgBkEBaiEGIAkgCiAJayIKTQ0ACwsgFUEANgIIIAggBjYCCCAGQQNJDQQgFSgCACAGTQRAIBVBACAGQQFqQQRBBBBMC0EAIQQgCEEANgIUIAhBDGohGCAGQQF2QQNsIgYgCCgCDCIFSwRAIBhBACAGQQhBKBBMIAgoAgwhBSAIKAIUIQQLIAQgBUYEQCAYEF4LIAgoAhAgBEEobGoiBUIANwMQIAVCgICAgICAgPj/ADcDCCAFQoCAgICAgID4/wA3AwAgBUKogICAgAU3AyAgBUEYakIANwMAIAggBEEBajYCFCAIKAIIDAILQeDqwABBM0HgocAAEIIBAAtBAUEBQdCpwAAQcwALIhYhBEEAIQUjAEEgayINJAACQCAIKAIIIgYgBE8EQCAEQQFrIgkgBk8NAQJAIARFDQAgCCgCBCIKIARBBHRqIQYgCiAJQQR0aiIFKwMIISEgBSsDACEiIAohBQNAIB4gIiAFKwMAIiKhICEgBUEIaisDACIhoKKgIR4gBUEQaiIFIAZHDQALAkAgHkQAAAAAAAAAAGRFBEAgBEEEdEEQayIEIQ4gCEEMaiEQIAQgCmohCiAIKAIUIgtBKGxBKGshBUEAIQQDQCANQRhqIhcgCkEIaikDADcDACANIAopAwA3AxAgBUEoaiIJIQwgCSEGIAQEQCAIKAIQIgwgBGoiGSgCJCEGIBkgCTYCJCAGIAxqIAk2AiAgBCEMCyAQKAIAIAtGBEAgEBBeCyAIKAIQIAVqIgRBMGogFykDADcDACAEQShqIA0pAxA3AwAgBEHMAGogBjYCACAEQcgAaiAMNgIAIARBxABqQQA2AgAgBEE8akIANwIAIARBOGogDkEEdjYCACAIIAtBAWoiCzYCFCAKQRBrIQogBUEoaiEFIAkhBCAOQRBrIg5BcEcNAAsMAQsgBEEEdCEMIAhBDGohFyAIKAIUIg5BKGxBKGshBUEAIQQDQCANQQhqIhkgCkEIaikDADcDACANIAopAwA3AwAgBUEoaiIJIQsgCSEGIAQEQCAIKAIQIgsgBGoiHCgCJCEGIBwgCTYCJCAGIAtqIAk2AiAgBCELCyAXKAIAIA5GBEAgFxBeCyAKQRBqIQogCCgCECAFaiIEQTBqIBkpAwA3AwAgBEEoaiANKQMANwMAIARBzABqIAY2AgAgBEHIAGogCzYCACAEQcQAakEANgIAIARBPGpCADcCACAEQThqIBA2AgAgCCAOQQFqIg42AhQgEEEBaiEQIAVBKGohBSAJIQQgDEEQayIMDQALCyAIKAIQIgkgBWoiBisDACAJIAYoAiQiBGoiCysDAGINACAGKwMIIAsrAwhiDQAgBigCHCEFIAYoAhghCiAJIAYoAiAiBmoiDCAENgIkIAoEQCAMIAkgCmogBiAKRhsgBTYCHAsgCyAGNgIgIAUEQCALIAUgCWogBCAFRhsgCjYCGAsgBCEFCyANQSBqJAAgBQwCC0EAIAQgBkGgncAAEDkACyAJIAZB8JzAABBzAAsiCUUNACAIKAIQIAlqIgQoAiQgBCgCIEYNAAJAIAgoAggiBEHQAE0NACAEIBZBAWtNBEBBASAWIARBkJ3AABA5AAsgCCgCBCIGKwMAIR0gBisDCCEeAkAgFkEBRgRAIB0hHyAeISAMAQsgBkEQaiEEAn8gFkEEdCIMQSBrIgtBMHFBMEYEQCAEIQUgHiEgIB0hHyAGDAELQQAgC0EEdkEBakEDcWshCiAeISAgHSEfA0AgBEEIaisDACEhIB0gBCsDACIiEKMBIR0gHyAiEKIBIR8gHiAhEKMBIR4gICAhEKIBISAgBEEQaiIFIQQgCkEBaiIKDQALIAVBEGsLIQQgC0EwSQ0AIAYgDGohCgNAIAVBMGoiBisDACEhIAVBIGorAwAhIiAFQRBqKwMAISMgBUE4aisDACEkIAVBKGorAwAhJSAFQRhqKwMAISYgBSsDACEnIB4gBCsDGCIoEKMBICYQowEgJRCjASAkEKMBIR4gHSAnEKMBICMQowEgIhCjASAhEKMBIR0gICAoEKIBICYQogEgJRCiASAkEKIBISAgHyAnEKIBICMQogEgIhCiASAhEKIBIR8gBiEEIAVBQGsiBSAKRw0ACwsgHSAfoSAeICChEKMBIh1EAAAAAAAAAABhDQBEAAAAAMD/30AgHaMhHQsgGCAJIBUgHyAgIB0QEgsgG0EgaiQAIAcoAjgiBCAHKAIAIAcoAggiBWtLBEAgByAFIARBBEEEEEwgBygCOCEECyAERQ0BIARBAnQhCiAHKAI0IQQgBygCCCIGQQJ0IQkDQCAEKAIAIBRqIQsgBygCACAGRgRAIwBBEGsiBSQAIAVBBGogBygCACIMIAcoAgRBBCAMQQF0IgwgDEEETRsiDEEEQQQQSyAFKAIEQQFGBEAgBSgCCCAFKAIMEKoBAAsgBSgCCCEIIAcgDDYCACAHIAg2AgQgBUEQaiQACyAEQQRqIQQgBygCBCAJaiALNgIAIAcgBkEBaiIGNgIIIAlBBGohCSAKQQRrIgoNAAsMAQsgBSAEIAFBwKnAABA5AAsgAyASRw0ACyATIAcpAgA3AgAgE0EIaiAHQQhqKAIANgIAIAcoAjAiBARAIAcoAjQgBEECdEEEEMQBCyAHKAIMIgQEQCAHKAIQIARBBHRBCBDEAQsgBygCGCIEBEAgBygCHCAEQShsQQgQxAELIAcoAiQiBEUNACAHKAIoIARBBHRBCBDEAQsgB0HQAGokACADBEAgAiADQQJ0QQQQxAELIAEEQCAAIAFBA3RBCBDEAQsCQCAPKAIEIgEgDygCDCIATQRAIA8oAgghAQwBCyABQQJ0IQIgDygCCCEDIABFBEBBBCEBIAMgAkEEEMQBDAELIAMgAkEEIABBAnQiAhC5ASIBDQBBBCACEKoBAAsgESAANgIEIBEgATYCACAPQRBqJAAgESgCACARKAIEIBFBEGokAAv3EwIRfw19EDYiEiAEJgEgAyEIEDYiAyAHJgEgBiEMIwBBIGsiDyQAIA8gEjYCECAPIAg2AgwgDyACNgIIIA8gAzYCHCAPIAw2AhggDyAFNgIUAn8gACENIAIhCiAFIQYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAMQQZuIhMgCEEkbiIUIAFBDW4iESARIBRLGyIRIBEgE0sbIhUEQCAVQSRsIRZBDCABIAFBDE0bQQ1uQSRsIRdBIyAIIAhBI00bQSRuQSRsIRhBBSAMIAxBBU0bQQZuQQ1sIRNBAyEQA0AgASALTQ0DIAtBAWogAU8NBCALQQJqIAFPDQUgC0EDaiABTw0GIAtBBGogAU8NByALQQVqIAFPDQggC0EGaiABTw0JIAtBB2ogAU8NCiALQQhqIAFPDQsgC0EJaiABTw0MIAtBCmogAU8NDSALQQtqIAFPDQ4gCSAXRg0PIAggCU0NECANKgIAIR4gDUEEaioCACEfIA1BCGoqAgAhGSANQQxqKgIAIRogDUEQaioCACEkIA1BFGoqAgAhJSANQRxqKgIAIRsgDUEgaioCACEcIA1BJGoqAgAhICANQShqKgIAISEgDUEsaioCACEiIA1BMGoqAgAhIyAKIA1BGGoqAgAiHTgCACAJQQFqIAhPDREgCkEEaiAbOAIAIAlBAmogCE8NEiAKQQhqQQA2AgAgCUEDaiAITw0TIApBDGpBgICA/AM2AgAgCUEEaiAITw0UIApBEGpBgICA/AM2AgAgCUEFaiAITw0VIApBFGpBgICA/AM2AgAgCUEGaiAITw0WIApBGGogHDgCACAJQQdqIAhPDRcgCkEcaiAgOAIAIAlBCGogCE8NGCAKQSBqICE4AgAgCUEJaiAITw0ZIApBJGogHiAZlCIZIB2SOAIAIAlBCmogCE8NGiAKQShqIB4gGpQiGiAbkjgCACAJQQtqIAhPDRsgCkEsakEANgIAIAlBDGogCE8NHCAKQTBqQYCAgPwDNgIAIAlBDWogCE8NHSAKQTRqQYCAgPwDNgIAIAlBDmogCE8NHiAKQThqQYCAgPwDNgIAIAlBD2ogCE8NHyAKQTxqIBw4AgAgCUEQaiAITw0gIApBQGsgIjgCACAJQRFqIAhPDSEgCkHEAGogITgCACAJQRJqIAhPDSIgCkHIAGogGSAfICSUIhmSIB2SOAIAIAlBE2ogCE8NIyAKQcwAaiAaIB8gJZQiGpIgG5I4AgAgCUEUaiAITw0kIApB0ABqQQA2AgAgCUEVaiAITw0lIApB1ABqQYCAgPwDNgIAIAlBFmogCE8NJiAKQdgAakGAgID8AzYCACAJQRdqIAhPDScgCkHcAGpBgICA/AM2AgAgCUEYaiAITw0oIApB4ABqIBw4AgAgCUEZaiAITw0pIApB5ABqICI4AgAgCUEaaiAITw0qIApB6ABqICM4AgAgCUEbaiAITw0rIApB7ABqIBkgHZI4AgAgCUEcaiAITw0sIApB8ABqIBogG5I4AgAgCUEdaiAITw0tIApB9ABqQQA2AgAgCUEeaiAITw0uIApB+ABqQYCAgPwDNgIAIAlBH2ogCE8NLyAKQfwAakGAgID8AzYCACAJQSBqIAhPDTAgCkGAAWpBgICA/AM2AgAgCUEhaiAITw0xIApBhAFqIBw4AgAgCUEiaiAITw0yIApBiAFqICA4AgAgCSAYRg0zIApBjAFqICM4AgAgDCAOTQ00IAYgEEEDayIUNgIAIA5BAWogDE8NNSAGQQRqIBBBAms2AgAgDkECaiAMTw02IAZBCGogEEEBayIRNgIAIA5BA2ogDE8NNyAGQQxqIBQ2AgAgDkEEaiAMTw04IAZBEGogETYCACALIBNGDQIgBkEUaiAQNgIAIA1BNGohDSAKQZABaiEKIBBBBGohECALQQ1qIQsgBkEYaiEGIA5BBmohDiAWIAlBJGoiCUcNAAsLIBUMNwsgDkEFaiAMQYCpwAAQcwALIAsgAUGgosAAEHMACyALQQFqIAFBsKLAABBzAAsgC0ECaiABQcCiwAAQcwALIAtBA2ogAUHQosAAEHMACyALQQRqIAFB4KLAABBzAAsgC0EFaiABQfCiwAAQcwALIAtBBmogAUGAo8AAEHMACyALQQdqIAFBkKPAABBzAAsgC0EIaiABQaCjwAAQcwALIAtBCWogAUGwo8AAEHMACyALQQpqIAFBwKPAABBzAAsgC0ELaiABQdCjwAAQcwALIAtBDGogAUHgo8AAEHMACyAJIAhB8KPAABBzAAsgCUEBaiAIQYCkwAAQcwALIAlBAmogCEGQpMAAEHMACyAJQQNqIAhBoKTAABBzAAsgCUEEaiAIQbCkwAAQcwALIAlBBWogCEHApMAAEHMACyAJQQZqIAhB0KTAABBzAAsgCUEHaiAIQeCkwAAQcwALIAlBCGogCEHwpMAAEHMACyAJQQlqIAhBgKXAABBzAAsgCUEKaiAIQZClwAAQcwALIAlBC2ogCEGgpcAAEHMACyAJQQxqIAhBsKXAABBzAAsgCUENaiAIQcClwAAQcwALIAlBDmogCEHQpcAAEHMACyAJQQ9qIAhB4KXAABBzAAsgCUEQaiAIQfClwAAQcwALIAlBEWogCEGApsAAEHMACyAJQRJqIAhBkKbAABBzAAsgCUETaiAIQaCmwAAQcwALIAlBFGogCEGwpsAAEHMACyAJQRVqIAhBwKbAABBzAAsgCUEWaiAIQdCmwAAQcwALIAlBF2ogCEHgpsAAEHMACyAJQRhqIAhB8KbAABBzAAsgCUEZaiAIQYCnwAAQcwALIAlBGmogCEGQp8AAEHMACyAJQRtqIAhBoKfAABBzAAsgCUEcaiAIQbCnwAAQcwALIAlBHWogCEHAp8AAEHMACyAJQR5qIAhB0KfAABBzAAsgCUEfaiAIQeCnwAAQcwALIAlBIGogCEHwp8AAEHMACyAJQSFqIAhBgKjAABBzAAsgCUEiaiAIQZCowAAQcwALIAlBI2ogCEGgqMAAEHMACyAOIAxBsKjAABBzAAsgDkEBaiAMQcCowAAQcwALIA5BAmogDEHQqMAAEHMACyAOQQNqIAxB4KjAABBzAAsgDkEEaiAMQfCowAAQcwALIAUgDEECdCIGIA9BHGoQyQEgDARAIAUgBkEEEMQBCyADQYQITwRAIAMQXAsgAiAIQQJ0IgMgD0EQahDJASAIBEAgAiADQQQQxAELIBJBhAhPBEAgEhBcCyABBEAgACABQQJ0QQQQxAELIA9BIGokAAseACAARQRAENABAAsgACACIAMgBCAFIAEoAhARDQALIAEBf0EBIQEgACgCACIAQQFxBH8gAQUgACgCCEEBRgsLHAAgAEUEQBDQAQALIAAgAiADIAQgASgCEBEKAAscACAARQRAENABAAsgACACIAMgBCABKAIQEQEACxwAIABFBEAQ0AEACyAAIAIgAyAEIAEoAhARLQALHAAgAEUEQBDQAQALIAAgAiADIAQgASgCEBEuAAscACAARQRAENABAAsgACACIAMgBCABKAIQES8ACygBAX8gACgCACIBQYCAgIB4ckGAgICAeEcEQCAAKAIEIAFBARDEAQsLCgBBCCAAENIBAAsaACAARQRAENABAAsgACACIAMgASgCEBECAAsaACAARQRAENABAAsgACACIAMgASgCEBEEAAsYACAARQRAENABAAsgACACIAEoAhARAAALIQAgAEEANgIMIAAgAzYCCCAAIAI2AgQgAEH4scAANgIACxIAQfjQwABBOUGU0cAAEIIBAAslAQFvEAYhAxA2IgIgAyYBIABBADYCCCAAIAI2AgQgACABNgIACxoBAX8gACgCACIBBEAgACgCBCABQQEQxAELCxQAIAAgACABIAAgAV0bIAEgAVwbCxQAIAAgACABIAAgAWMbIAEgAWIbCxQAIAEgASAAIAAgAWMbIAAgAGIbCxQAIAEgASAAIAAgAV0bIAAgAFwbCx0AIAEgAC0AAEECdCIAKALMrEAgACgCtKxAELIBCx0AIAEgAC0AAEECdCIAKAKArkAgACgC6K1AELIBCx8AIABBCGpBxLTAACkCADcCACAAQby0wAApAgA3AgALHwAgAEEIakGcxsAAKQIANwIAIABBlMbAACkCADcCAAsfACAAQQhqQazGwAApAgA3AgAgAEGkxsAAKQIANwIACx8AIAAEQCAAIAEQ0gEAC0G80sAAQSNB0NLAABCCAQALEgAgACABQQF0QQFyIAIQggEACxYBAW8gACABEA4hAhA2IgAgAiYBIAALFAAgACACuxC0ATYCBCAAQQA2AgALFAAgACABtxC0ATYCBCAAQQA2AgALFQAgACABIAIQrAE2AgQgAEEANgIAC9MLAQ5/IAAhDyMAQRBrIggkACABKAIQIQcgBkH/AXFBAnQoAoi1QCEKIwBBEGsiBiQAAkACQAJAAkACQAJA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aW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAIWNhbm5vdCBhZHZhbmNlIHBhc3QgYHJlbWFpbmluZ2A6IMAEIDw9IMAAE2ludmFsaWQga2V5IHZhbHVlOiDAABlpbnZhbGlkIHdpcmUgdHlwZSB2YWx1ZTogwAASU2VyaWFsaXplIGZhaWxlZDogwAAQSW5mbGF0ZSBmYWlsZWQ6IMAAGFByb3RvYnVmIGRlY29kZSBmYWlsZWQ6IMAAwAI6IMAAc3JjXHZlcnRleC5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXGJ5dGVzLTEuMTEuMVxzcmNcYnl0ZXNfbXV0LnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC9zaGFyZWQvc21hbGxzb3J0LnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC9zdGFibGUvcXVpY2tzb3J0LnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXGJ5dGVzLTEuMTEuMVxzcmNcYnl0ZXMucnMAL3J1c3RjL2U0MDg5NDdiZmQyMDBhZjQyZGIzMjJkYWYwZmFkZmU3ZTI2ZDNiZDEvbGlicmFyeS9zdGQvc3JjL3N5cy90aHJlYWRfbG9jYWwvbm9fdGhyZWFkcy5ycwAvcnVzdGMvZTQwODk0N2JmZDIwMGFmNDJkYjMyMmRhZjBmYWRmZTdlMjZkM2JkMS9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL2l0ZXIucnMAQzpcVXNlcnNcU2FyZ2VyYXNcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxtaW5pel9veGlkZS0wLjguOVxzcmNcaW5mbGF0ZVxvdXRwdXRfYnVmZmVyLnJzAEM6XFVzZXJzXFNhcmdlcmFzXC5jYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2ZcZmxhdGUyLTEuMS45XHNyY1xidWZyZWFkZXIucnMAc3JjXGNsaXAucnMAL3J1c3RjL2U0MDg5NDdiZmQyMDBhZjQyZGIzMjJkYWYwZmFkZmU3ZTI2ZDNiZDEvbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAEM6XFVzZXJzXFNhcmdlcmFzXC5jYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2ZcbWluaXpfb3hpZGUtMC44Ljlcc3JjXGluZmxhdGVcc3RyZWFtLnJzAHNyY1xwcm90b2J1Zi5ycwAvcnVzdGMvZTQwODk0N2JmZDIwMGFmNDJkYjMyMmRhZjBmYWRmZTdlMjZkM2JkMS9saWJyYXJ5L2NvcmUvc3JjL2lvL2JvcnJvd2VkX2J1Zi5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHdhc20tYmluZGdlbi0wLjIuMTE3XHNyY1xleHRlcm5yZWYucnMAQzpcVXNlcnNcU2FyZ2VyYXNcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxtaW5pel9veGlkZS0wLjguOVxzcmNcaW5mbGF0ZVxjb3JlLnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvcnVzdGMvZTQwODk0N2JmZDIwMGFmNDJkYjMyMmRhZjBmYWRmZTdlMjZkM2JkMS9saWJyYXJ5L3N0ZC9zcmMvaW8vbW9kLnJzAC9ydXN0Yy9lNDA4OTQ3YmZkMjAwYWY0MmRiMzIyZGFmMGZhZGZlN2UyNmQzYmQxL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjExL3NyYy9kbG1hbGxvYy5ycwBDOlxVc2Vyc1xTYXJnZXJhc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXGVhcmN1dC0wLjQuOVxzcmNcbGliLnJzAEM6XFVzZXJzXFNhcmdlcmFzXC5jYXJnb1xyZWdpc3RyeVxzcmNcaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Zcc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41XHNyY1xsaWIucnMAQzpcVXNlcnNcU2FyZ2VyYXNcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxieXRlcy0xLjExLjFcc3JjXGxpYi5ycwDALCBjYW4ndCBiZSByZXByZXNlbnRlZCBhcyBhIEphdmFTY3JpcHQgbnVtYmVyACZjb3B5X2Zyb21fc2xpY2U6IHNvdXJjZSBzbGljZSBsZW5ndGggKMArKSBkb2VzIG5vdCBtYXRjaCBkZXN0aW5hdGlvbiBzbGljZSBsZW5ndGggKMABKQDACyAob3MgZXJyb3IgwAEpABNpbnZhbGlkIHdpcmUgdHlwZTogwAsgKGV4cGVjdGVkIMABKQDAAS7AAjogAHJlY3RlbGxpcHNlegYQAA8AAAAiAAAAEwAAAERlY29kZWRUcmFuc2Zvcm1hYmNkdHh0eURlY29kZWRTaGFwZVN0eWxlZmlsbHN0cm9rZXN0cm9rZV93aWR0aGxpbmVfY2FwbGluZV9qb2lubWl0ZXJfbGltaXRsaW5lX2Rhc2hTVkdBUGF5bG9hZFByb2ZpbGVpbnB1dEJ5dGVzb3V0cHV0Qnl0ZXNwcm9zdERlY29kZU1zbWV0YWRhdGFBbmRJbWFnZXNNc2ZyYW1lVGFibGVNc2ZpbmFsaXplTXNwYXlsb2FkQnVpbGRNc3J1c3RUb3RhbE1zaW1hZ2VCeXRlc2ltYWdlQ291bnRzcHJpdGVDb3VudGZyYW1lQ291bnRjZWxsQ291bnRjbGlwUGF0aENvdW50c2hhcGVDb3VudHNoYXBlR3JvdXBDb3VudHNoYXBlQnl0ZXN3cml0ZXJJbml0aWFsQ2FwYWNpdHl3cml0ZXJGaW5hbENhcGFjaXR5RGVjb2RlZFJlY3R4eXdpZHRoaGVpZ2h0Y29ybmVyX3JhZGl1c0RlY29kZWRBdWRpb2F1ZGlvX2tleXN0YXJ0X2ZyYW1lZW5kX2ZyYW1lc3RhcnRfdGltZXRvdGFsX3RpbWVEZWNvZGVkQ29sb3JyZ0RlY29kZWRGcmFtZWFscGhhbGF5b3V0dHJhbnNmb3JtY2xpcF9wYXRoc2hhcGVzRGVjb2RlZE1vdmlldmVyc2lvbnBhcmFtc2ltYWdlc3Nwcml0ZXNhdWRpb3NEZWNvZGVkU2hhcGVraW5kcGF0aF9kYXRhc3R5bGVEZWNvZGVkTGF5b3V0RGVjb2RlZFBhcmFtc3ZpZXdfYm94X3dpZHRodmlld19ib3hfaGVpZ2h0ZnBzZnJhbWVzRGVjb2RlZFNwcml0ZWltYWdlX2tleURlY29kZWRFbGxpcHNlcmFkaXVzX3hyYWRpdXNfeQAAAP//////////GA4QAEGwnMAAC/MDegYQAA8AAABKAwAAIwAAAHoGEAAPAAAAaQMAACkAAAB6BhAADwAAAFIDAAApAAAASwkQAF4AAACFAgAAKAAAAEsJEABeAAAAbgQAABwAAABLCRAAXgAAAN0CAAAhAAAASwkQAF4AAADpAAAAJgAAAEsJEABeAAAABgEAAB0AAABLCRAAXgAAAHoEAAAzAAAASwkQAF4AAAB7BAAAMwAAAGludmFsaWQgdGFnIHZhbHVlOiAwaW52YWxpZCB2YXJpbnRMYXlvdXR4eXdpZHRoaGVpZ2h0VHJhbnNmb3JtYWJjZHR4dHlBdWRpb0VudGl0eWF1ZGlvX2tleXN0YXJ0X2ZyYW1lZW5kX2ZyYW1lc3RhcnRfdGltZXRvdGFsX3RpbWVGcmFtZUVu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ciB1bmRlcmZsb3dpbnZhbGlkIHZhcmludHJlY3Vyc2lvbiBsaW1pdCByZWFjaGVkVmFyaW50U2l4dHlGb3VyQml0TGVuZ3RoRGVsaW1pdGVkU3RhcnRHcm91cEVuZEdyb3VwVGhpcnR5VHdvQml0TgUQAGQAAABiAAAAFQAAAAYAAAAMAAAADwAAAAoAAAAIAAAADAAAAJkWEACfFhAAqxYQALoWEADEFhAAzBYQAGFzc2VydGlvbiBmYWlsZWQ6IG4gPD0gc2VsZi5idWYuaW5pdCAtIHNlbGYuYnVmLmZpbGxlZAAAigYQAFMAAAAVAQAACQAAAIUIEABJAAAAsgEAADEAAABSZ2JhQ29sb3JyZ2JhU2hhcGVBcmdzZFNoYXBlU3R5bGVmaWxsc3Ryb2tlc3Ryb2tlX3dpZHRobGluZV9jYXBsaW5lX2pvaW5taXRlcl9saW1pdGxpbmVfZGFzaF9pbGluZV9kYXNoX2lpbGluZV9kYXNoX2lpaUVsbGlwc2VBcmdzeHlyYWRpdXNfeHJhZGl1c195UmVjdEFyZ3N3aWR0aGhlaWdodGNvcm5lcl9yYWRpdXOqCRAAagAAADUAAAAOAAAAAAAAAP//////////OBgQAEHQsMAAC80BQXR0ZW1wdGVkIHRvIGluaXRpYWxpemUgdGhyZWFkLWxvY2FsIHdoaWxlIGl0IGlzIGJlaW5nIGRyb3BwZWQAACoEEABeAAAAawAAAA0AAABjbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgYWZ0ZXIgYmVpbmcgZHJvcHBlZGZhaWxlZCB0byBkZWNvZGUgUHJvdG9idWYgbWVzc2FnZTogAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgBBqLLAAAvdAgEAAAAvAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQDJAxAAYAAAADoFAAAyAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAAzAAAAOAAAAMkDEABgAAAASAUAAEkAAABMYXlvdXRFcnJvcm92ZXJmbG93AFsCEABkAAAAvQIAAB0AAABbAhAAZAAAAKkCAAAVAAAAOQAAADoAAAA7AAAAPAAAAD0AAAAVChAAXgAA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bAAAAEQEAAAjAAAASwcQAGwAAABEBAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG91dF9wb3MgKyAxIDwgb3V0X3NsaWNlLmxlbigpAEsHEABsAAAARgQAAA0AAABhc3NlcnRpb24gZmFpbGVkOiAoc291cmNlX3BvcyArIDEpICYgb3V0X2J1Zl9zaXplX21hc2sgPCBvdXRfc2xpY2UubGVuKClLBxAAbAAAAEcEAAANAAAASwcQAGwAAABIBAAAIgAAAEsHEABsAAAASAQAAA0AAABhc3NlcnRpb24gZmFpbGVkOiBvdXRfcG9zICsgMiA8IG91dF9zbGljZS5sZW4oKQBLBxAAbAAAAEwEAAANAAAAYXNzZXJ0aW9uIGZhaWxlZDogKHNvdXJjZV9wb3MgKyAyKSAmIG91dF9idWZfc2l6ZV9tYXNrIDwgb3V0X3NsaWNlLmxlbigpSwcQAGwAAABNBAAADQAAAEsHEABsAAAATgQAACIAAABLBxAAbAAAAE4EAAANAAAASwcQAGwAAABPBAAAJgAAAEsHEABsAAAATwQAAA0AAABLBxAAbAAAACwEAAAXAAAAZGVzdCBpcyBvdXQgb2YgYm91bmRzAAAACwYQAG4AAABCAQAAHAAAAAsGEABuAAAAdgEAADAAAADeBhAAbAAAAHwAAAARAAAA3gYQAGwAAACJAAAAEQAAAG1dy9YsUOtjeEGmV3Ebi7mauO6RURSWWM+WAOjSnxKKZW50aXR5IG5vdCBmb3VuZHBlcm1pc3Npb24gZGVuaWVkY29ubmVjdGlvbiByZWZ1c2VkY29ubmVjdGlvbiByZXNldGhvc3QgdW5yZWFjaGFibGVuZXR3b3JrIHVucmVhY2hhYmxlY29ubmVjdGlvbiBhYm9ydGVkbm90IGNvbm5lY3RlZGFkZHJlc3MgaW4gdXNlYWRkcmVzcyBub3QgYXZhaWxhYmxlbmV0d29yayBkb3duYnJva2VuIHBpcGVlbnRpdHkgYWxyZWFkeSBleGlzdHNvcGVyYXRpb24gd291bGQgYmxvY2tub3QgYSBkaXJlY3RvcnlpcyBhIGRpcmVjdG9yeWRpcmVjdG9yeSBub3QgZW1wdHlyZWFkLW9ubHkgZmlsZXN5c3RlbSBvciBzdG9yYWdlIG1lZGl1bWZpbGVzeXN0ZW0gbG9vcCBv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";let JA=null,IB=null;function jC(){return typeof performance!="undefined"?performance.now():Date.now()}function Fe(){var C;const A=globalThis.process;return(C=A==null?void 0:A.versions)!=null&&C.node&&TB.startsWith("/")?new URL(Object.assign({})[`../..${TB}`],typeof document=="undefined"?require("url").pathToFileURL(__filename).href:sI&&sI.tagName.toUpperCase()==="SCRIPT"&&sI.src||new URL("gift-stage.cjs",document.baseURI).href):TB}function hI(){return JA!==null}async function IE(){return JA?!0:IB||(IB=(async()=>{try{return await gE({module_or_path:Fe()}),jQ(),JA=we,!0}catch(C){return console.warn("[GiftStage] WASM unavailable, using JS fallback:",C),!1}})(),IB)}function ye(C){if(!JA)return null;try{return JA.inflate(C)}catch(A){return null}}function Ge(C){if(!JA)return null;try{return ue(JA.decode_svga(C))}catch(A){return null}}function de(C){if(!JA)return null;try{return JA.decode_svga_payload(C)}catch(A){return null}}function Re(C){if(!JA)return null;try{const A=jC(),g=typeof JA.decode_svga_payload_profiled=="function"?JA.decode_svga_payload_profiled(C):JA.decode_svga_payload(C),I=jC()-A,B=typeof JA.take_svga_payload_profile=="function"?JA.take_svga_payload_profile():null,Q=B&&typeof B=="object"?B:null;return{payload:g,profile:Q?{...Q,jsCallTotalMs:I,wasmBoundaryAndGlueMs:Math.max(0,I-Q.rustTotalMs)}:void 0}}catch(A){return null}}function WB(C,A,g){if(!JA)return null;try{return JA.build_batch_vertices(C,A,g)}catch(I){return null}}function ue(C){var A,g,I,B,Q,E,i;const e=C.params,t=e?{viewBoxWidth:(A=e.view_box_width)!=null?A:0,viewBoxHeight:(g=e.view_box_height)!=null?g:0,fps:(I=e.fps)!=null?I:20,frames:(B=e.frames)!=null?B:0}:{viewBoxWidth:0,viewBoxHeight:0,fps:20,frames:0},a=new Map,o=C.images;if(o instanceof Map)for(const[r,h]of o)a.set(r,h instanceof Uint8Array?h:new Uint8Array(h));else if(o&&typeof o=="object")for(const[r,h]of Object.entries(o))a.set(r,h instanceof Uint8Array?h:new Uint8Array(h));const s=((Q=C.sprites)!=null?Q:[]).map(Se),n=((E=C.audios)!=null?E:[]).map(r=>{var h,c,D,w,l;return{audioKey:(h=r.audio_key)!=null?h:"",startFrame:(c=r.start_frame)!=null?c:0,endFrame:(D=r.end_frame)!=null?D:0,startTime:(w=r.start_time)!=null?w:0,totalTime:(l=r.total_time)!=null?l:0}});return{version:(i=C.version)!=null?i:"",params:t,images:a,spriteTable:PQ(s,t.frames),audios:n}}function Se(C){var A,g;let I=null;const B=((A=C.frames)!=null?A:[]).map(Q=>{var E,i,e,t,a,o,s,n,r,h,c;const D=Array.isArray(Q.shapes)?Q.shapes:[];let w;return D.length===0?(I=null,w=null):((E=D[0])==null?void 0:E.kind)==="keep"?w=I:(w=Ne(D),I=w),{alpha:(i=Q.alpha)!=null?i:0,layout:Q.layout?{width:(e=Q.layout.width)!=null?e:0,height:(t=Q.layout.height)!=null?t:0}:null,transform:Q.transform?{a:(a=Q.transform.a)!=null?a:1,b:(o=Q.transform.b)!=null?o:0,c:(s=Q.transform.c)!=null?s:0,d:(n=Q.transform.d)!=null?n:1,tx:(r=Q.transform.tx)!=null?r:0,ty:(h=Q.transform.ty)!=null?h:0}:null,clipPath:(c=Q.clip_path)!=null?c:"",shapes:w}});return{imageKey:(g=C.image_key)!=null?g:"",frames:B}}function zC(C){var A,g,I,B;return C?{r:(A=C.r)!=null?A:0,g:(g=C.g)!=null?g:0,b:(I=C.b)!=null?I:0,a:(B=C.a)!=null?B:0}:null}function fe(C){var A,g,I,B,Q,E;const i=(A=C==null?void 0:C.line_dash)!=null?A:C==null?void 0:C.lineDash;return{fill:zC(C==null?void 0:C.fill),stroke:zC(C==null?void 0:C.stroke),strokeWidth:(I=(g=C==null?void 0:C.stroke_width)!=null?g:C==null?void 0:C.strokeWidth)!=null?I:0,lineCap:(B=C==null?void 0:C.line_cap)!=null?B:C==null?void 0:C.lineCap,lineJoin:(Q=C==null?void 0:C.line_join)!=null?Q:C==null?void 0:C.lineJoin,miterLimit:(E=C==null?void 0:C.miter_limit)!=null?E:C==null?void 0:C.miterLimit,lineDash:Array.isArray(i)&&i.length>0?i:void 0}}function Me(C){var A,g,I,B,Q,E;return{a:(A=C==null?void 0:C.a)!=null?A:1,b:(g=C==null?void 0:C.b)!=null?g:0,c:(I=C==null?void 0:C.c)!=null?I:0,d:(B=C==null?void 0:C.d)!=null?B:1,tx:(Q=C==null?void 0:C.tx)!=null?Q:0,ty:(E=C==null?void 0:C.ty)!=null?E:0}}function Ne(C){var A,g,I,B,Q,E,i,e,t,a,o,s,n;if(!Array.isArray(C)||C.length===0)return null;const r=[];for(const h of C){const c=h==null?void 0:h.kind;if(c!=="path"&&c!=="rect"&&c!=="ellipse")continue;const D={kind:c,pathData:(A=h.path_data)!=null?A:h.pathData,rect:h.rect?{x:(g=h.rect.x)!=null?g:0,y:(I=h.rect.y)!=null?I:0,width:(B=h.rect.width)!=null?B:0,height:(Q=h.rect.height)!=null?Q:0,cornerRadius:(i=(E=h.rect.corner_radius)!=null?E:h.rect.cornerRadius)!=null?i:0}:void 0,ellipse:h.ellipse?{x:(e=h.ellipse.x)!=null?e:0,y:(t=h.ellipse.y)!=null?t:0,radiusX:(o=(a=h.ellipse.radius_x)!=null?a:h.ellipse.radiusX)!=null?o:0,radiusY:(n=(s=h.ellipse.radius_y)!=null?s:h.ellipse.radiusY)!=null?n:0}:void 0,style:fe(h.style),transform:Me(h.transform)};r.push(D)}return r.length>0?r:null}var Ue=Object.defineProperty,ke=(C,A,g)=>A in C?Ue(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,VB=(C,A,g)=>ke(C,typeof A!="symbol"?A+"":A,g);class BE{constructor(){VB(this,"floatPoolA",null),VB(this,"floatPoolB",null),VB(this,"uint32Pool",null)}getFloat32(A){var g,I;if(!this.floatPoolA||this.floatPoolA.length<A){const B=Math.max(A,((I=(g=this.floatPoolA)==null?void 0:g.length)!=null?I:0)*2,1024);this.floatPoolA=new Float32Array(B)}return this.floatPoolA}getFloat32B(A){var g,I;if(!this.floatPoolB||this.floatPoolB.length<A){const B=Math.max(A,((I=(g=this.floatPoolB)==null?void 0:g.length)!=null?I:0)*2,1024);this.floatPoolB=new Float32Array(B)}return this.floatPoolB}getUint32(A){var g,I;if(!this.uint32Pool||this.uint32Pool.length<A){const B=Math.max(A,((I=(g=this.uint32Pool)==null?void 0:g.length)!=null?I:0)*2,1024);this.uint32Pool=new Uint32Array(B)}return this.uint32Pool}destroy(){this.floatPoolA=null,this.floatPoolB=null,this.uint32Pool=null}}function pg(C,A,g,I,B,Q){const E=1/(C-A),i=1/(g-I),e=1/(B-Q),t=new Float32Array(16);return t[0]=-2*E,t[5]=-2*i,t[10]=2*e,t[12]=(C+A)*E,t[13]=(I+g)*i,t[14]=(B+Q)*e,t[15]=1,t}function cg(C,A,g){return C+(A-C)*g}function DB(C,A,g){return C<A?A:C>g?g:C}let Ye=0;function SC(){return`gift_${++Ye}_${Date.now().toString(36)}`}const dB=8;function LB(C){if(!C||C.trim().length===0)return[];const A=[];let g=[],I=0,B=0,Q=0,E=0,i=0,e=0;const t=pe(C);let a=0;function o(){return a<t.length?parseFloat(t[a++]):0}for(;a<t.length;)switch(t[a++]){case"M":for(g.length>0&&(A.push(g),g=[]),I=o(),B=o(),Q=I,E=B,g.push({x:I,y:B});a<t.length&&!isNaN(parseFloat(t[a]));)I=o(),B=o(),g.push({x:I,y:B});break;case"m":for(g.length>0&&(A.push(g),g=[]),I+=o(),B+=o(),Q=I,E=B,g.push({x:I,y:B});a<t.length&&!isNaN(parseFloat(t[a]));)I+=o(),B+=o(),g.push({x:I,y:B});break;case"L":for(;a<t.length&&!isNaN(parseFloat(t[a]));)I=o(),B=o(),g.push({x:I,y:B});break;case"l":for(;a<t.length&&!isNaN(parseFloat(t[a]));)I+=o(),B+=o(),g.push({x:I,y:B});break;case"H":for(;a<t.length&&!isNaN(parseFloat(t[a]));)I=o(),g.push({x:I,y:B});break;case"h":for(;a<t.length&&!isNaN(parseFloat(t[a]));)I+=o(),g.push({x:I,y:B});break;case"V":for(;a<t.length&&!isNaN(parseFloat(t[a]));)B=o(),g.push({x:I,y:B});break;case"v":for(;a<t.length&&!isNaN(parseFloat(t[a]));)B+=o(),g.push({x:I,y:B});break;case"C":{for(;a<t.length&&!isNaN(parseFloat(t[a]));){const n=o(),r=o(),h=o(),c=o(),D=o(),w=o();BB(g,I,B,n,r,h,c,D,w),i=h,e=c,I=D,B=w}break}case"c":{for(;a<t.length&&!isNaN(parseFloat(t[a]));){const n=I+o(),r=B+o(),h=I+o(),c=B+o(),D=I+o(),w=B+o();BB(g,I,B,n,r,h,c,D,w),i=h,e=c,I=D,B=w}break}case"S":{for(;a<t.length&&!isNaN(parseFloat(t[a]));){const n=2*I-i,r=2*B-e,h=o(),c=o(),D=o(),w=o();BB(g,I,B,n,r,h,c,D,w),i=h,e=c,I=D,B=w}break}case"s":{for(;a<t.length&&!isNaN(parseFloat(t[a]));){const n=2*I-i,r=2*B-e,h=I+o(),c=B+o(),D=I+o(),w=B+o();BB(g,I,B,n,r,h,c,D,w),i=h,e=c,I=D,B=w}break}case"Q":{for(;a<t.length&&!isNaN(parseFloat(t[a]));){const n=o(),r=o(),h=o(),c=o();_C(g,I,B,n,r,h,c),i=n,e=r,I=h,B=c}break}case"q":{for(;a<t.length&&!isNaN(parseFloat(t[a]));){const n=I+o(),r=B+o(),h=I+o(),c=B+o();_C(g,I,B,n,r,h,c),i=n,e=r,I=h,B=c}break}case"Z":case"z":I=Q,B=E,g.length>0&&(A.push(g),g=[]);break}return g.length>0&&A.push(g),A}function pe(C){return C.replace(/([A-Za-z])/g," $1 ").replace(/,/g," ").trim().split(/\s+/).filter(A=>A.length>0)}function BB(C,A,g,I,B,Q,E,i,e){for(let t=1;t<=dB;t++){const a=t/dB,o=1-a,s=o*o,n=a*a;C.push({x:s*o*A+3*s*a*I+3*o*n*Q+n*a*i,y:s*o*g+3*s*a*B+3*o*n*E+n*a*e})}}function _C(C,A,g,I,B,Q,E){for(let i=1;i<=dB;i++){const e=i/dB,t=1-e;C.push({x:t*t*A+2*t*e*I+e*e*Q,y:t*t*g+2*t*e*B+e*e*E})}}function Ke(C){const A=C.length;if(A<3)return[];if(A===3)return[0,1,2];const g=[],I=Array.from({length:A},(i,e)=>e),Q=me(C)>0;let E=A*A;for(;I.length>3&&E-- >0;){let i=!1;const e=I.length;for(let t=0;t<e;t++){const a=I[(t-1+e)%e],o=I[t],s=I[(t+1)%e],n=C[a],r=C[o],h=C[s],c=(r.x-n.x)*(h.y-n.y)-(r.y-n.y)*(h.x-n.x);if(!(Q?c>0:c<0))continue;let w=!1;for(let l=0;l<e;l++)if(!(l===(t-1+e)%e||l===t||l===(t+1)%e)&&Je(C[I[l]],n,r,h)){w=!0;break}if(!w){Q?g.push(a,o,s):g.push(a,s,o),I.splice(t,1),i=!0;break}}if(!i)break}if(I.length===3){const[i,e,t]=I;Q?g.push(i,e,t):g.push(i,t,e)}return g}function me(C){let A=0;const g=C.length;for(let I=0;I<g;I++){const B=(I+1)%g;A+=C[I].x*C[B].y,A-=C[B].x*C[I].y}return A*.5}function Je(C,A,g,I){const B=ZB(C,A,g),Q=ZB(C,g,I),E=ZB(C,I,A),i=B<0||Q<0||E<0,e=B>0||Q>0||E>0;return!(i&&e)}function ZB(C,A,g){return(C.x-g.x)*(A.y-g.y)-(A.x-g.x)*(C.y-g.y)}const fC={x:0,y:0};function ng(C){var A;return C.scale*((A=C.motionScaleX)!=null?A:1)}function rg(C){var A;return C.scale*((A=C.motionScaleY)!=null?A:1)}function $C(C,A,g){if(typeof C=="string"){const I=Number.parseFloat(C);return Number.isFinite(I)?A*I/100:A*.5}if(typeof C=="number"&&Number.isFinite(C)){const I=g&&g>0?A/g:1;return C*I}return A*.5}function HB(C,A={x:0,y:0}){const g=C.options.transformOrigin;return A.x=C.x+$C(g==null?void 0:g.x,C.width,C.options.width)*ng(C),A.y=C.y+$C(g==null?void 0:g.y,C.height,C.options.height)*rg(C),A}function aI(C,A,g,I,B,Q){const E=C.rotation||0,i=Math.cos(E),e=Math.sin(E),t=HB(C,fC),a=A-t.x,o=g-t.y;return Q[0]=i*I,Q[1]=e*I,Q[2]=0,Q[3]=0,Q[4]=-e*B,Q[5]=i*B,Q[6]=0,Q[7]=0,Q[8]=0,Q[9]=0,Q[10]=1,Q[11]=0,Q[12]=t.x+i*a-e*o,Q[13]=t.y+e*a+i*o,Q[14]=0,Q[15]=1,Q}function Le(C,A,g=A){const I=C.rotation||0;if(I===0)return g!==A&&Object.assign(g,A),g;const B=Math.cos(I),Q=Math.sin(I),E=HB(C,fC),{a:i,b:e,c:t,d:a,tx:o,ty:s}=A,n=o-E.x,r=s-E.y;return g.a=B*i-Q*e,g.b=Q*i+B*e,g.c=B*t-Q*a,g.d=Q*t+B*a,g.tx=E.x+B*n-Q*r,g.ty=E.y+Q*n+B*r,g}function Sg(C,A,g,I,B,Q={x:0,y:0,w:0,h:0}){const E=C.rotation||0;if(E===0)return Q.x=A,Q.y=g,Q.w=I,Q.h=B,Q;const i=Math.cos(E),e=Math.sin(E),t=HB(C,fC),a=A-t.x,o=g-t.y,s=a+I,n=o+B,r=t.x+i*a-e*o,h=t.y+e*a+i*o,c=t.x+i*s-e*o,D=t.y+e*s+i*o,w=t.x+i*s-e*n,l=t.y+e*s+i*n,F=t.x+i*a-e*n,d=t.y+e*a+i*n,y=Math.min(r,c,w,F),G=Math.min(h,D,l,d),f=Math.max(r,c,w,F),u=Math.max(h,D,l,d);return Q.x=y,Q.y=G,Q.w=f-y,Q.h=u-G,Q}function XA(C){var A;return(A=C.options.objectFit)!=null?A:"contain"}function Fg(C,A,g,I,B=!1){const Q=I!=null?I:{scaleX:1,scaleY:1,width:0,height:0,offsetX:0,offsetY:0},E=C.width*(B?C.scale:ng(C)),i=C.height*(B?C.scale:rg(C)),e=XA(C);if(!(A>0)||!(g>0))return Q.scaleX=1,Q.scaleY=1,Q.width=E,Q.height=i,Q.offsetX=0,Q.offsetY=0,Q;if(e==="fill")return Q.scaleX=E/A,Q.scaleY=i/g,Q.width=E,Q.height=i,Q.offsetX=0,Q.offsetY=0,Q;const t=e==="cover"?Math.max(E/A,i/g):Math.min(E/A,i/g),a=A*t,o=g*t;return Q.scaleX=t,Q.scaleY=t,Q.width=a,Q.height=o,Q.offsetX=e==="cover"?(E-a)*.5:0,Q.offsetY=e==="cover"?(i-o)*.5:0,Q}function He(C,A,g=2){const I=C.length;let B=xe(C,0,I,g,!0);const Q=[];if(!B||B.next===B.prev)return Q;let E,i,e;if(C.length>80*g){E=C[0],i=C[1];let t=E,a=i;for(let o=g;o<I;o+=g){const s=C[o],n=C[o+1];s<E&&(E=s),n<i&&(i=n),s>t&&(t=s),n>a&&(a=n)}e=Math.max(t-E,a-i),e=e!==0?32767/e:0}return ZI(B,Q,g,E,i,e,0),Q}function xe(C,A,g,I,B){let Q;if(B===ze(C,A,g,I)>0)for(let E=A;E<g;E+=I)Q=AQ(E/I|0,C[E],C[E+1],Q);else for(let E=g-I;E>=A;E-=I)Q=AQ(E/I|0,C[E],C[E+1],Q);return Q&&xB(Q,Q.next)&&(XI(Q),Q=Q.next),Q}function VI(C,A){if(!C)return C;A||(A=C);let g=C,I;do if(I=!1,!g.steiner&&(xB(g,g.next)||FA(g.prev,g,g.next)===0)){if(XI(g),g=A=g.prev,g===g.next)break;I=!0}else g=g.next;while(I||g!==A);return A}function ZI(C,A,g,I,B,Q,E){if(!C)return;!E&&Q&&We(C,I,B,Q);let i=C;for(;C.prev!==C.next;){const e=C.prev,t=C.next;if(Q?qe(C,I,B,Q):be(C)){A.push(e.i,C.i,t.i),XI(C),C=t.next,i=t.next;continue}if(C=t,C===i){E?E===1?(C=ve(VI(C),A),ZI(C,A,g,I,B,Q,2)):E===2&&Te(C,A,g,I,B,Q):ZI(VI(C),A,g,I,B,Q,1);break}}}function be(C){const A=C.prev,g=C,I=C.next;if(FA(A,g,I)>=0)return!1;const B=A.x,Q=g.x,E=I.x,i=A.y,e=g.y,t=I.y,a=Math.min(B,Q,E),o=Math.min(i,e,t),s=Math.max(B,Q,E),n=Math.max(i,e,t);let r=I.next;for(;r!==A;){if(r.x>=a&&r.x<=s&&r.y>=o&&r.y<=n&&UI(B,i,Q,e,E,t,r.x,r.y)&&FA(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function qe(C,A,g,I){const B=C.prev,Q=C,E=C.next;if(FA(B,Q,E)>=0)return!1;const i=B.x,e=Q.x,t=E.x,a=B.y,o=Q.y,s=E.y,n=Math.min(i,e,t),r=Math.min(a,o,s),h=Math.max(i,e,t),c=Math.max(a,o,s),D=oC(n,r,A,g,I),w=oC(h,c,A,g,I);let l=C.prevZ,F=C.nextZ;for(;l&&l.z>=D&&F&&F.z<=w;){if(l.x>=n&&l.x<=h&&l.y>=r&&l.y<=c&&l!==B&&l!==E&&UI(i,a,e,o,t,s,l.x,l.y)&&FA(l.prev,l,l.next)>=0||(l=l.prevZ,F.x>=n&&F.x<=h&&F.y>=r&&F.y<=c&&F!==B&&F!==E&&UI(i,a,e,o,t,s,F.x,F.y)&&FA(F.prev,F,F.next)>=0))return!1;F=F.nextZ}for(;l&&l.z>=D;){if(l.x>=n&&l.x<=h&&l.y>=r&&l.y<=c&&l!==B&&l!==E&&UI(i,a,e,o,t,s,l.x,l.y)&&FA(l.prev,l,l.next)>=0)return!1;l=l.prevZ}for(;F&&F.z<=w;){if(F.x>=n&&F.x<=h&&F.y>=r&&F.y<=c&&F!==B&&F!==E&&UI(i,a,e,o,t,s,F.x,F.y)&&FA(F.prev,F,F.next)>=0)return!1;F=F.nextZ}return!0}function ve(C,A){let g=C;do{const I=g.prev,B=g.next.next;!xB(I,B)&&CE(I,g,g.next,B)&&RB(I,B)&&RB(B,I)&&(A.push(I.i,g.i,B.i),XI(g),XI(g.next),g=C=B),g=g.next}while(g!==C);return VI(g)}function Te(C,A,g,I,B,Q){let E=C;do{let i=E.next.next;for(;i!==E.prev;){if(E.i!==i.i&&Xe(E,i)){let e=je(E,i);E=VI(E,E.next),e=VI(e,e.next),ZI(E,A,g,I,B,Q,0),ZI(e,A,g,I,B,Q,0);return}i=i.next}E=E.next}while(E!==C)}function We(C,A,g,I){let B=C;do B.z===0&&(B.z=oC(B.x,B.y,A,g,I)),B.prevZ=B.prev,B.nextZ=B.next,B=B.next;while(B!==C);B.prevZ.nextZ=null,B.prevZ=null,Ve(B)}function Ve(C){let A,g=1;do{let I=C,B;C=null;let Q=null;for(A=0;I;){A++;let E=I,i=0;for(let t=0;t<g&&(i++,E=E.nextZ,!!E);t++);let e=g;for(;i>0||e>0&&E;)i!==0&&(e===0||!E||I.z<=E.z)?(B=I,I=I.nextZ,i--):(B=E,E=E.nextZ,e--),Q?Q.nextZ=B:C=B,B.prevZ=Q,Q=B;I=E}Q.nextZ=null,g*=2}while(A>1);return C}function oC(C,A,g,I,B){return C=(C-g)*B|0,A=(A-I)*B|0,C=(C|C<<8)&16711935,C=(C|C<<4)&252645135,C=(C|C<<2)&858993459,C=(C|C<<1)&1431655765,A=(A|A<<8)&16711935,A=(A|A<<4)&252645135,A=(A|A<<2)&858993459,A=(A|A<<1)&1431655765,C|A<<1}function Ze(C,A,g,I,B,Q,E,i){return(B-E)*(A-i)>=(C-E)*(Q-i)&&(C-E)*(I-i)>=(g-E)*(A-i)&&(g-E)*(Q-i)>=(B-E)*(I-i)}function UI(C,A,g,I,B,Q,E,i){return!(C===E&&A===i)&&Ze(C,A,g,I,B,Q,E,i)}function Xe(C,A){return C.next.i!==A.i&&C.prev.i!==A.i&&!Oe(C,A)&&(RB(C,A)&&RB(A,C)&&Pe(C,A)&&(FA(C.prev,C,A.prev)||FA(C,A.prev,A))||xB(C,A)&&FA(C.prev,C,C.next)>0&&FA(A.prev,A,A.next)>0)}function FA(C,A,g){return(A.y-C.y)*(g.x-A.x)-(A.x-C.x)*(g.y-A.y)}function xB(C,A){return C.x===A.x&&C.y===A.y}function CE(C,A,g,I){const B=QB(FA(C,A,g)),Q=QB(FA(C,A,I)),E=QB(FA(g,I,C)),i=QB(FA(g,I,A));return!!(B!==Q&&E!==i||B===0&&CB(C,g,A)||Q===0&&CB(C,I,A)||E===0&&CB(g,C,I)||i===0&&CB(g,A,I))}function CB(C,A,g){return A.x<=Math.max(C.x,g.x)&&A.x>=Math.min(C.x,g.x)&&A.y<=Math.max(C.y,g.y)&&A.y>=Math.min(C.y,g.y)}function QB(C){return C>0?1:C<0?-1:0}function Oe(C,A){let g=C;do{if(g.i!==C.i&&g.next.i!==C.i&&g.i!==A.i&&g.next.i!==A.i&&CE(g,g.next,C,A))return!0;g=g.next}while(g!==C);return!1}function RB(C,A){return FA(C.prev,C,C.next)<0?FA(C,A,C.next)>=0&&FA(C,C.prev,A)>=0:FA(C,A,C.prev)<0||FA(C,C.next,A)<0}function Pe(C,A){let g=C,I=!1;const B=(C.x+A.x)/2,Q=(C.y+A.y)/2;do g.y>Q!=g.next.y>Q&&g.next.y!==g.y&&B<(g.next.x-g.x)*(Q-g.y)/(g.next.y-g.y)+g.x&&(I=!I),g=g.next;while(g!==C);return I}function je(C,A){const g=sC(C.i,C.x,C.y),I=sC(A.i,A.x,A.y),B=C.next,Q=A.prev;return C.next=A,A.prev=C,g.next=B,B.prev=g,I.next=g,g.prev=I,Q.next=I,I.prev=Q,I}function AQ(C,A,g,I){const B=sC(C,A,g);return I?(B.next=I.next,B.prev=I,I.next.prev=B,I.next=B):(B.prev=B,B.next=B),B}function XI(C){C.next.prev=C.prev,C.prev.next=C.next,C.prevZ&&(C.prevZ.nextZ=C.nextZ),C.nextZ&&(C.nextZ.prevZ=C.prevZ)}function sC(C,A,g){return{i:C,x:A,y:g,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function ze(C,A,g,I){let B=0;for(let Q=A,E=g-I;Q<g;Q+=I)B+=(C[E]-C[Q])*(C[Q+1]+C[E+1]),E=Q;return B}function lB(C){const{vertices:A,indices:g}=C;if(!(A instanceof Float32Array))return"clip vertices must be Float32Array";if(!(g instanceof Uint32Array))return"clip indices must be Uint32Array integers";if(A.length<6||A.length%2!==0)return"clip vertices must contain at least three xy pairs";for(let B=0;B<A.length;B++)if(!Number.isFinite(A[B]))return`clip vertex ${B} is not finite`;if(g.length<3||g.length%3!==0)return"clip indices must contain complete triangles";const I=A.length/2;for(let B=0;B<g.length;B+=3){const Q=g[B],E=g[B+1],i=g[B+2];if(!Number.isInteger(Q)||!Number.isInteger(E)||!Number.isInteger(i))return`clip triangle ${B/3} contains a non-integer index`;if(Q>=I||E>=I||i>=I)return`clip triangle ${B/3} references an out-of-range vertex`;if(Q===E||E===i||Q===i)return`clip triangle ${B/3} is degenerate`;const e=A[Q*2],t=A[Q*2+1],a=A[E*2],o=A[E*2+1],s=A[i*2],n=A[i*2+1],r=(a-e)*(n-t)-(o-t)*(s-e);if(!Number.isFinite(r)||Math.abs(r)<=Number.EPSILON)return`clip triangle ${B/3} has zero area`}return null}function _e(C,A){const g=[],I=C.length/2;for(let B=0;B+2<A.length;B+=3){const Q=A[B],E=A[B+1],i=A[B+2];if(Q>=I||E>=I||i>=I){g.push(Q,E,i);continue}if(Q===E||E===i||Q===i)continue;const e=C[Q*2],t=C[Q*2+1],a=C[E*2],o=C[E*2+1],s=C[i*2],n=C[i*2+1],r=(a-e)*(n-t)-(o-t)*(s-e);(!Number.isFinite(r)||Math.abs(r)>Number.EPSILON)&&g.push(Q,E,i)}return g.length===A.length?A:new Uint32Array(g)}function QE(C){if(!C.trim())return"empty";const A=LB(C);if(A.length===0)return"invalid";for(const g of A)if(g.some(I=>!Number.isFinite(I.x)||!Number.isFinite(I.y)))return"invalid";for(const g of A){if(g.length===0)continue;let I=1;for(const o of g)I=Math.max(I,Math.abs(o.x),Math.abs(o.y));const B=I*1e-7,Q=B*B,E=[];for(const o of g){const s=E[E.length-1];if(s){const n=o.x-s.x,r=o.y-s.y;if(n*n+r*r<=Q)continue}E.push(o)}if(E.length>1){const o=E[0],s=E[E.length-1],n=o.x-s.x,r=o.y-s.y;n*n+r*r<=Q&&E.pop()}const i=[];for(const o of E)i.some(s=>{const n=o.x-s.x,r=o.y-s.y;return n*n+r*r<=Q})||i.push(o);if(i.length<3)continue;const e=i[0];let t=null;for(let o=1;o<i.length;o++){const s=i[o],n=s.x-e.x,r=s.y-e.y;if(n*n+r*r>Q){t={x:n,y:r};break}}if(!t)continue;const a=B*Math.max(1,Math.hypot(t.x,t.y));if(i.some(o=>Math.abs(t.x*(o.y-e.y)-t.y*(o.x-e.x))>a))return"fillable"}return"empty"}function $e(C,A){const g=LB(C);if(g.length===0)return null;const I=[],B=[],Q=[];for(const a of g)if(!(a.length<3)){Q.push(a);for(const o of a)I.push(o.x,o.y),B.push(o.x,o.y)}if(I.length===0)return null;const E=[];let i=0;for(const a of Q){const o=[];for(const n of a)o.push(n.x,n.y);const s=He(o,void 0,2);for(const n of s)E.push(n+i);i+=a.length}if(E.length===0)return null;const e=new Float32Array(I),t=_e(e,new Uint32Array(E));return t.length===0?null:{vertices:e,indices:t}}const EE=`function hA(A, I, g = 2) {
|
|
2021
2021
|
const B = A.length;
|
|
2022
2022
|
let Q = NA(A, 0, B, g, !0);
|
|
@@ -4425,18 +4425,18 @@ async function I(t, e, n, o, s) {
|
|
|
4425
4425
|
}
|
|
4426
4426
|
function v(t, e, n, o, s, i) {
|
|
4427
4427
|
if (n.w <= 0 || n.h <= 0 || i <= 0) return;
|
|
4428
|
-
const l = Math.max(1, Math.floor(i * 0.5)), a = n.x, c = n.y, h = n.w, r = n.h, f = Math.min(l, a), u = Math.min(l, c),
|
|
4429
|
-
e.imageSmoothingEnabled = !1, f > 0 && e.drawImage(t, a, c, 1, r, a - f, c, f, r),
|
|
4428
|
+
const l = Math.max(1, Math.floor(i * 0.5)), a = n.x, c = n.y, h = n.w, r = n.h, f = Math.min(l, a), u = Math.min(l, c), w = Math.min(l, o - (a + h)), d = Math.min(l, s - (c + r)), H = e.imageSmoothingEnabled;
|
|
4429
|
+
e.imageSmoothingEnabled = !1, f > 0 && e.drawImage(t, a, c, 1, r, a - f, c, f, r), w > 0 && e.drawImage(t, a + h - 1, c, 1, r, a + h, c, w, r), u > 0 && e.drawImage(t, a, c, h, 1, a, c - u, h, u), d > 0 && e.drawImage(t, a, c + r - 1, h, 1, a, c + r, h, d), f > 0 && u > 0 && e.drawImage(t, a, c, 1, 1, a - f, c - u, f, u), w > 0 && u > 0 && e.drawImage(t, a + h - 1, c, 1, 1, a + h, c - u, w, u), f > 0 && d > 0 && e.drawImage(t, a, c + r - 1, 1, 1, a - f, c + r, f, d), w > 0 && d > 0 && e.drawImage(t, a + h - 1, c + r - 1, 1, 1, a + h, c + r, w, d), e.imageSmoothingEnabled = H;
|
|
4430
4430
|
}
|
|
4431
4431
|
var E = Object.defineProperty, C = (t, e, n) => e in t ? E(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, M = (t, e, n) => C(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4432
4432
|
function g() {
|
|
4433
4433
|
return typeof performance != "undefined" ? performance.now() : Date.now();
|
|
4434
4434
|
}
|
|
4435
|
-
function
|
|
4435
|
+
function A(t) {
|
|
4436
4436
|
const e = t != null ? t : 4;
|
|
4437
4437
|
return Number.isFinite(e) ? Math.max(1, Math.min(8, e)) : 4;
|
|
4438
4438
|
}
|
|
4439
|
-
class
|
|
4439
|
+
class S {
|
|
4440
4440
|
constructor(e = 4) {
|
|
4441
4441
|
this.maxSliceMs = e, M(this, "sliceStartedAt", g());
|
|
4442
4442
|
}
|
|
@@ -4444,7 +4444,7 @@ class T {
|
|
|
4444
4444
|
g() - this.sliceStartedAt < this.maxSliceMs || (await new Promise((e) => setTimeout(e, 0)), this.sliceStartedAt = g());
|
|
4445
4445
|
}
|
|
4446
4446
|
}
|
|
4447
|
-
class
|
|
4447
|
+
class T {
|
|
4448
4448
|
constructor() {
|
|
4449
4449
|
M(this, "running", !1), M(this, "tasks", []);
|
|
4450
4450
|
}
|
|
@@ -4463,7 +4463,7 @@ class A {
|
|
|
4463
4463
|
}
|
|
4464
4464
|
}
|
|
4465
4465
|
}
|
|
4466
|
-
const m = self, Y = new
|
|
4466
|
+
const m = self, Y = new T();
|
|
4467
4467
|
async function _(t, e, n, o) {
|
|
4468
4468
|
const s = new OffscreenCanvas(t.atlasW, t.atlasH), i = s.getContext("2d");
|
|
4469
4469
|
if (!i) throw new Error("Atlas worker: 2d context unavailable");
|
|
@@ -4500,7 +4500,7 @@ async function X(t, e) {
|
|
|
4500
4500
|
}
|
|
4501
4501
|
async function $(t) {
|
|
4502
4502
|
var e;
|
|
4503
|
-
const n = [], o = new
|
|
4503
|
+
const n = [], o = new S(A(t.workerTimeSliceMs));
|
|
4504
4504
|
try {
|
|
4505
4505
|
if (typeof OffscreenCanvas == "undefined")
|
|
4506
4506
|
throw new Error("OffscreenCanvas unavailable in atlas worker");
|
|
@@ -4527,7 +4527,7 @@ async function $(t) {
|
|
|
4527
4527
|
for (const r of l) {
|
|
4528
4528
|
const f = await _(r, s, t.padding, o);
|
|
4529
4529
|
t.captureEncodedPng && c.push(B(f));
|
|
4530
|
-
const u = f
|
|
4530
|
+
const u = await createImageBitmap(f, { premultiplyAlpha: "premultiply" });
|
|
4531
4531
|
a.push({
|
|
4532
4532
|
width: r.atlasW,
|
|
4533
4533
|
height: r.atlasH,
|
|
@@ -4575,8 +4575,8 @@ m.onmessage = (t) => {
|
|
|
4575
4575
|
const e = t.data;
|
|
4576
4576
|
!e || e.type !== "build-svga-atlas" || Y.push(() => $(e));
|
|
4577
4577
|
};
|
|
4578
|
-
//# sourceMappingURL=svga-atlas-worker-
|
|
4579
|
-
`,YQ=typeof self!="undefined"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",JE],{type:"text/javascript;charset=utf-8"});function Jo(C){let A;try{if(A=YQ&&(self.URL||self.webkitURL).createObjectURL(YQ),!A)throw"";const g=new Worker(A,{type:"module",name:C==null?void 0:C.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch(g){return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(JE),{type:"module",name:C==null?void 0:C.name})}}class Zg extends Error{constructor(A,g){super(A,g),this.name="SVGAAtlasWorkerBuildError"}}let xI=null,Lo=1;const zI=new Map,bI=new Map;function qI(C){C.signal&&C.onAbort&&C.signal.removeEventListener("abort",C.onAbort)}function YB(C,A,g){xI===C&&(xI=null);try{C.terminate()}catch(I){}for(const[I,B]of zI)B.owner===C&&(zI.delete(I),qI(B),B.releaseGate(),B.reject(g==null||I===g?A:new Zg("SVGA atlas worker restarted after another request was canceled")));for(const[I,B]of bI)if(B.owner===C){bI.delete(I),qI(B),B.releaseGate();for(const Q of B.resolve)Q(null)}}function Ho(){if(!xI){const C=new Jo;xI=C,C.addEventListener("message",A=>{var g,I,B;const Q=A.data;if(!Q)return;if(Q.type==="build-svga-atlas-png-result"){const t=bI.get(Q.id);if(!t||t.owner!==C)return;const a=t.resolve[Q.pageIndex];if(!a)return;a(Q.pngBytes),t.remaining--,t.remaining<=0&&(bI.delete(Q.id),qI(t),t.releaseGate());return}if(Q.type!=="build-svga-atlas-result")return;const E=zI.get(Q.id);if(!E||E.owner!==C){for(const t of(g=Q.pages)!=null?g:[])t.bitmap.close();return}if(zI.delete(Q.id),Q.error){qI(E),E.releaseGate(),E.reject(new Zg(Q.error));return}const i=(I=Q.pages)!=null?I:[];let e;if(E.captureEncodedPng&&i.length>0){const t=[];e=i.map(()=>new Promise(a=>{t.push(a)})),bI.set(Q.id,{owner:C,remaining:i.length,releaseGate:E.releaseGate,signal:E.signal,onAbort:E.onAbort,resolve:t})}else qI(E),E.releaseGate();E.resolve({pages:i.map((t,a)=>({...t,pngBytesPromise:e==null?void 0:e[a]})),rects:(B=Q.rects)!=null?B:[]})}),C.addEventListener("error",A=>{YB(C,new Zg(A.message||"SVGA atlas worker error"))}),C.addEventListener("messageerror",()=>{YB(C,new Zg("SVGA atlas worker message deserialization failed"))})}return xI}function LE(){return typeof Worker!="undefined"&&ZQ()&&typeof OffscreenCanvas.prototype.transferToImageBitmap=="function"}async function xo(C,A){if(!LE())return Promise.reject(new Error("SVGA atlas worker unavailable"));const g=await Ct(A.signal);try{b(A.signal,"SVGA atlas worker task aborted");const I=[],B=[];for(const[i,e]of C)I.push(i),B.push(e);let Q;try{Q=Ho()}catch(i){throw g(),new Zg("SVGA atlas worker creation failed",{cause:i})}const E=Lo++;return await new Promise((i,e)=>{var t,a;const o={owner:Q,captureEncodedPng:A.captureEncodedPng,releaseGate:g,signal:A.signal,resolve:i,reject:e};if(o.onAbort=()=>{YB(Q,new Zg("SVGA atlas worker task aborted",{cause:cA("SVGA atlas worker task aborted")}),E)},zI.set(E,o),(t=A.signal)!=null&&t.aborted){o.onAbort();return}(a=A.signal)==null||a.addEventListener("abort",o.onAbort,{once:!0});try{Q.postMessage({type:"build-svga-atlas",id:E,keys:I,bitmaps:B,maxSize:A.maxSize,padding:A.padding,maxPages:A.maxPages,captureEncodedPng:A.captureEncodedPng,workerTimeSliceMs:A.workerTimeSliceMs},B)}catch(s){YB(Q,new Zg("SVGA atlas worker postMessage failed",{cause:s}))}})}catch(I){throw g(),I}}function bo(C,A){if(ZQ())return new OffscreenCanvas(C,A);if(typeof document=="undefined")throw new Error("Atlas compose needs OffscreenCanvas or DOM (document)");const g=document.createElement("canvas");return g.width=C,g.height=A,g}function qo(C){return C.getContext("2d")}async function vo(C){if(typeof OffscreenCanvas!="undefined"&&C instanceof OffscreenCanvas){if(typeof C.convertToBlob=="function")try{return await(await C.convertToBlob({type:"image/png"})).arrayBuffer()}catch(g){return null}return null}const A=C;return new Promise(g=>{try{A.toBlob(I=>{if(!I){g(null);return}I.arrayBuffer().then(g).catch(()=>g(null))},"image/png")}catch(I){g(null)}})}function HE(C,A){const g=C.map(Q=>Q.textureHandle),I=C.map(Q=>Q.encodedPngBytesPromise).filter(Q=>!!Q),B=C[0];return{textureHandle:B.textureHandle,textureHandles:g,pages:C,rects:A,atlasWidth:B.atlasWidth,atlasHeight:B.atlasHeight,encodedPngBytesPromise:B.encodedPngBytesPromise,encodedPngBytesPromises:I.length>0?I:void 0}}async function To(C,A,g,I,B){var Q;const E=gg({maxBudgetMs:B==null?void 0:B.mainThreadFrameBudgetMs}),i=async()=>{b(B==null?void 0:B.signal,"SVGA atlas build aborted"),E.shouldYield()&&await E.yield(),b(B==null?void 0:B.signal,"SVGA atlas build aborted")};b(B==null?void 0:B.signal,"SVGA atlas build aborted");const e=[];for(const[s,n]of C)e.push({key:s,width:n.width,height:n.height}),await i();const t=await Ko(e,I,g,(Q=B==null?void 0:B.maxPages)!=null?Q:4,i);if(t.length===0)throw new Error("No atlas pages built");const a=new Map,o=[];try{for(let s=0;s<t.length;s++){b(B==null?void 0:B.signal,"SVGA atlas build aborted");const n=t[s],r=bo(n.atlasW,n.atlasH),h=qo(r);if(!h)throw new Error("Atlas: 2d context unavailable");h.clearRect(0,0,n.atlasW,n.atlasH);for(let w=0;w<n.rects.length;w++){const l=n.rects[w],F=C.get(l.key);h.drawImage(F,l.x,l.y,l.w,l.h),mo(r,h,l,n.atlasW,n.atlasH,I),w+1<n.rects.length&&E.shouldYield()&&await E.yield(),b(B==null?void 0:B.signal,"SVGA atlas build aborted")}const c=(B==null?void 0:B.captureEncodedPng)===!0?vo(r):void 0;b(B==null?void 0:B.signal,"SVGA atlas build aborted");const D=A.createTexture(r,{width:n.atlasW,height:n.atlasH,filter:"linear",premultiplyAlpha:!0});for(const w of n.rects)a.set(w.key,{x:w.x/n.atlasW,y:w.y/n.atlasH,w:w.w/n.atlasW,h:w.h/n.atlasH,textureIndex:s});o.push({textureHandle:D,atlasWidth:n.atlasW,atlasHeight:n.atlasH,encodedPngBytesPromise:c})}}catch(s){for(const n of o)A.deleteTexture(n.textureHandle);throw s}return HE(o,a)}async function Wo(C,A,g,I,B){var Q;const E=await xo(C,{maxSize:g,padding:I,maxPages:(Q=B==null?void 0:B.maxPages)!=null?Q:4,captureEncodedPng:(B==null?void 0:B.captureEncodedPng)===!0,workerTimeSliceMs:B==null?void 0:B.workerTimeSliceMs,signal:B==null?void 0:B.signal}),i=new Map;for(const a of E.rects)i.set(a.key,{x:a.x,y:a.y,w:a.w,h:a.h,textureIndex:a.textureIndex});const e=[],t=gg({maxBudgetMs:B==null?void 0:B.mainThreadFrameBudgetMs});try{for(let a=0;a<E.pages.length;a++){b(B==null?void 0:B.signal,"SVGA atlas upload aborted");const o=E.pages[a],s=A.createTexture(o.bitmap,{width:o.width,height:o.height,filter:"linear",premultiplyAlpha:!0});try{o.bitmap.close()}catch(n){}e.push({textureHandle:s,atlasWidth:o.width,atlasHeight:o.height,encodedPngBytesPromise:(B==null?void 0:B.captureEncodedPng)===!0?o.pngBytesPromise:void 0}),a+1<E.pages.length&&t.shouldYield()&&await t.yield(),b(B==null?void 0:B.signal,"SVGA atlas upload aborted")}}catch(a){for(const o of E.pages)try{o.bitmap.close()}catch(s){}for(const o of e)A.deleteTexture(o.textureHandle);throw a}return HE(e,i)}async function xE(C,A,g=4096,I=2,B){var Q;if(C.size===0)throw new Error("No images to build atlas from");const E=Math.max(64,Math.min(g,(Q=A.maxTextureSize)!=null?Q:g));return(B==null?void 0:B.useWorker)!==!1&&LE()?Wo(C,A,E,I,B):To(C,A,E,I,B)}function Vo(C){return C}function Zo(C){return C*C}function Xo(C){return C*(2-C)}function Oo(C){return C<.5?2*C*C:-1+(4-2*C)*C}function bE(C){const A=C-1;return A*A*A+1}function Po(C){return C<.5?4*C*C*C:(C-1)*(2*C-2)*(2*C-2)+1}function jo(C){return 1+2.70158*Math.pow(C-1,3)+1.70158*Math.pow(C-1,2)}let nB=null;function qE(){return nB||(nB=Promise.resolve().then(()=>require("./mp4box.all-DH-U-29f.cjs")).catch(C=>{throw nB=null,C})),nB}var zo=Object.defineProperty,_o=(C,A,g)=>A in C?zo(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,Eg=(C,A,g)=>_o(C,typeof A!="symbol"?A+"":A,g);const $o=800;function As(C){return C.startsWith("avc1")||C.startsWith("avc3")}function gs(C){const A=new Uint8Array(C);if(A.byteLength<8)return C;const g=A[4],I=A[5],B=A[6],Q=A[7];return g===97&&I===118&&B===99&&Q===67?C.slice(8):C}async function Is(C){const A=C.avcC;if(!A)return;const{DataStream:g}=await qE(),I=new g;A.write(I);const B=I.byteLength;if(B<=0)return;const Q=I.buffer.slice(0,B);return gs(Q)}async function Bs(C){const{createFile:A}=await qE();return new Promise((g,I)=>{const B=A(),Q=C.slice(0);Q.fileStart=0,B.onError=E=>{I(new Error(`mp4box: ${E}`))},B.onReady=E=>{var i,e,t,a,o,s,n;const r=(i=E.videoTracks)==null?void 0:i[0];if(!r){I(new Error("mp4box: no video track"));return}if(!As(r.codec)){I(new Error(`mp4box: unsupported video codec ${r.codec}`));return}if(r.nb_samples>$o){I(new Error(`mp4box: too many samples (${r.nb_samples})`));return}const h=[];B.onSamples=(D,w,l)=>{h.push(...l)},B.setExtractionOptions(r.id,null,{nbSamples:Math.max(r.nb_samples,1)}),B.start();const c=r.timescale>0?r.duration/r.timescale:E.duration/(E.timescale||1);if(h.length===0){I(new Error("mp4box: extraction produced no samples"));return}g({codec:r.codec,timescale:r.timescale,durationSec:Number.isFinite(c)?c:0,videoWidth:(a=(t=(e=r.video)==null?void 0:e.width)!=null?t:r.track_width)!=null?a:0,videoHeight:(n=(s=(o=r.video)==null?void 0:o.height)!=null?s:r.track_height)!=null?n:0,samples:h})},B.appendBuffer(Q),B.flush()})}const pQ=25e3;async function Cs(C,A,g){const I=performance.now();let B=0;for(;C.decodeQueueSize>0;)if(await new Promise(Q=>queueMicrotask(Q)),B++,B%120===0&&await new Promise(Q=>setTimeout(Q,0)),performance.now()-I>g){console.warn("[GiftStage:WC] decodeQueue drain gave up",{label:A,decodeQueueSize:C.decodeQueueSize,spins:B});break}}async function Qs(C,A){console.info("[GiftStage:WC] VideoDecoder.flush…",A);try{await Promise.race([C.flush(),new Promise((g,I)=>{setTimeout(()=>I(new Error(`VideoDecoder.flush() timed out after ${pQ}ms (${JSON.stringify(A)})`)),pQ)})])}catch(g){try{C.close()}catch(I){}throw g}}class Es{constructor(A,g,I,B,Q,E,i,e){this.decodeOrder=A,this.presTimes=g,this.timescale=I,this.codec=B,this.description=Q,this.duration=E,this.callbacks=i,Eg(this,"decoder",null),Eg(this,"nextChunk",0),Eg(this,"chunksFed",0),Eg(this,"targetNeedIdx"),Eg(this,"lastPostedMax",-1),Eg(this,"minPosted",Number.POSITIVE_INFINITY),Eg(this,"playbackNeedFloor"),Eg(this,"freeSlots",0),Eg(this,"eosClosed",!1),Eg(this,"pumpScheduled",!1),Eg(this,"pumping",!1),Eg(this,"destroyed",!1),Eg(this,"onDecoderDequeue",()=>this.schedulePump()),this.targetNeedIdx=e,this.playbackNeedFloor=oI(g,E,0),this.freeSlots=Math.max(1,e-this.playbackNeedFloor+1),this.schedulePump()}ensure(A,g){this.destroyed||(this.targetNeedIdx=Math.max(this.targetNeedIdx,A),this.freeSlots=Math.max(0,g),this.schedulePump())}rewind(){this.destroyed||this.doRewind()}destroy(){var A,g;if(this.destroyed=!0,this.decoder&&this.decoder.state!=="closed"){(g=(A=this.decoder).removeEventListener)==null||g.call(A,"dequeue",this.onDecoderDequeue);try{this.decoder.close()}catch(I){}}this.decoder=null}schedulePump(){this.pumpScheduled||this.destroyed||(this.pumpScheduled=!0,queueMicrotask(()=>{this.pumpScheduled=!1,this.runPump()}))}async doRewind(){var A,g;if(this.decoder&&this.decoder.state!=="closed"){(g=(A=this.decoder).removeEventListener)==null||g.call(A,"dequeue",this.onDecoderDequeue);try{this.decoder.close()}catch(B){}}this.decoder=null,this.nextChunk=os(this.decodeOrder),this.chunksFed=0,this.lastPostedMax=-1,this.minPosted=Number.POSITIVE_INFINITY,this.eosClosed=!1;const I=oI(this.presTimes,this.duration,0);this.playbackNeedFloor=I,this.targetNeedIdx=Math.max(this.targetNeedIdx,Math.min(this.presTimes.length-1,Math.max(0,I))),this.freeSlots=1,this.schedulePump()}async openDecoder(){var A;if(this.decoder&&this.decoder.state!=="closed")return;const g=await ss(this.codec,this.description),I=new VideoDecoder({output:B=>{var Q,E,i,e;if((E=(Q=this.callbacks).onDecoded)==null||E.call(Q),this.destroyed){try{B.close()}catch(o){}return}const t=as(this.presTimes,B.timestamp),a=Number.isFinite(this.minPosted)&&this.minPosted<=this.playbackNeedFloor;if(this.freeSlots<=0&&a){try{B.close()}catch(o){}(e=(i=this.callbacks).onDropped)==null||e.call(i),this.schedulePump();return}this.lastPostedMax=Math.max(this.lastPostedMax,t),this.minPosted=Math.min(this.minPosted,t),this.freeSlots>0&&this.freeSlots--,this.callbacks.onFrame(t,B),this.schedulePump()},error:B=>{this.callbacks.onError?this.callbacks.onError(B):console.error("[GiftStage:WC] IncrementalH264Decoder VideoDecoder error",B)}});I.configure(g),(A=I.addEventListener)==null||A.call(I,"dequeue",this.onDecoderDequeue),this.decoder=I}feedOneChunk(){var A,g;const I=this.decoder,B=this.nextChunk;if(B>=this.decodeOrder.length)return;const Q=this.decodeOrder[B];this.nextChunk=B+1;const E=Q.data;if(!E||E.byteLength===0)return;const i=(g=(A=Q.cts)!=null?A:Q.dts)!=null?g:0,e=Math.round(i/this.timescale*1e6),t=Q.duration&&this.timescale>0?Math.round(Q.duration/this.timescale*1e6):void 0,a=new Uint8Array(E.byteLength);a.set(E);const o=new EncodedVideoChunk({type:Q.is_sync?"key":"delta",timestamp:e,duration:t,data:a});I.decode(o),this.chunksFed++}async finalizeEos(){var A,g,I;if(!this.decoder||this.eosClosed)return;const B=this.decoder;await Cs(B,"before flush",1e4);const Q=B.decodeQueueSize;await Qs(B,{chunksDecoded:this.chunksFed,outputsBeforeFlush:this.lastPostedMax+1,queueBeforeFlush:Q});try{(A=B.removeEventListener)==null||A.call(B,"dequeue",this.onDecoderDequeue),B.close()}catch(E){}this.decoder=null,this.eosClosed=!0,(I=(g=this.callbacks).onEos)==null||I.call(g)}async runPump(){if(!(this.destroyed||this.pumping)){this.pumping=!0;try{for(;!this.destroyed;){if(this.eosClosed)return;const A=this.nextChunk<this.decodeOrder.length,g=Number.isFinite(this.minPosted)&&this.minPosted<=this.playbackNeedFloor;if(!A&&!this.eosClosed){await this.finalizeEos();continue}if(this.lastPostedMax>=this.targetNeedIdx&&g||this.freeSlots<=0&&g)return;await this.openDecoder();const I=this.freeSlots>0?this.freeSlots:1,B=Math.max(1,Math.min(2,I));if(this.decoder.decodeQueueSize>=B)return;this.feedOneChunk(),this.chunksFed%2===0&&await new Promise(Q=>setTimeout(Q,0))}}finally{this.pumping=!1}}}}function oI(C,A,g){if(C.length===0)return 0;const I=C.length;if(g<=C[0])return 0;const B=C[I-1];if(g>=A||g>=B)return I-1;let Q=0,E=I-1;for(;Q+1<E;){const i=Q+E>>>1;C[i]<=g?Q=i:E=i}return Q}function is(C,A){if(A.length===0)return 1e-6;const g=A.length,I=g-1,B=A[I],Q=g>=2?A[I]-A[I-1]:1/30,E=B+Q;let i=C>0?C:E;if(!(i>0)&&g>=2){const e=(A[g-1]-A[0])/(g-1);i=A[g-1]+(e>0?e:1/30)}return i>0||(i=Math.max(E,1/30)),i}function es(C,A){var g,I;if(C.length===0)return new Float64Array(0);const B=C.map((E,i)=>i);B.sort((E,i)=>{var e,t,a,o;const s=C[E],n=C[i],r=(t=(e=s.cts)!=null?e:s.dts)!=null?t:0,h=(o=(a=n.cts)!=null?a:n.dts)!=null?o:0;return r!==h?r-h:E-i});const Q=new Float64Array(B.length);for(let E=0;E<B.length;E++){const i=C[B[E]];Q[E]=((I=(g=i.cts)!=null?g:i.dts)!=null?I:0)/A}return Q}function ts(C){return[...C].sort((A,g)=>{var I,B,Q,E;const i=((B=(I=A.dts)!=null?I:A.cts)!=null?B:0)-((E=(Q=g.dts)!=null?Q:g.cts)!=null?E:0);return i!==0?i:0})}function as(C,A){if(C.length===0)return 0;const g=A/1e6;let I=0,B=1/0;for(let Q=0;Q<C.length;Q++){const E=Math.abs(C[Q]-g);E<B&&(B=E,I=Q)}return I}function os(C){for(let A=0;A<C.length;A++)if(C[A].is_sync)return A;return 0}async function ss(C,A){var g;const I={codec:C,hardwareAcceleration:"prefer-software",...A&&A.byteLength>0?{description:A}:{}};let B=await VideoDecoder.isConfigSupported(I),Q=I;if(!B.supported){const E={codec:C,...A&&A.byteLength>0?{description:A}:{}};if(B=await VideoDecoder.isConfigSupported(E),!B.supported)throw new Error(`WebCodecs: unsupported config ${C}`);Q=E}return(g=B.config)!=null?g:Q}function ns(C){return new Worker(""+(typeof document=="undefined"?require("url").pathToFileURL(__dirname+"/assets/webcodecs-mp4.worker-DeS4ARzq.js").href:new URL("assets/webcodecs-mp4.worker-DeS4ARzq.js",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{type:"module",name:C==null?void 0:C.name})}var rs=Object.defineProperty,hs=(C,A,g)=>A in C?rs(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,NA=(C,A,g)=>hs(C,typeof A!="symbol"?A+"":A,g);const cs=28,Ds=8,_A={decodedFrames:0,postedFrames:0,closedFrames:0,residentPeak:0,workerMessages:0};class KQ{constructor(A){NA(this,"maxSize"),NA(this,"map",new Map),NA(this,"playbackHint",0),this.maxSize=Math.max(4,A)}setPlaybackHint(A){Number.isFinite(A)&&A>=0&&(this.playbackHint=A,this.evictConsumedFrames())}evictConsumedFrames(){const A=Math.max(4,Math.floor(this.maxSize*.35)),g=this.playbackHint-A;if(!(g<=0))for(const I of this.map.keys())I<g&&this.closeKey(I)}minKey(){let A;for(const g of this.map.keys())(A===void 0||g<A)&&(A=g);return A}set(A,g){const I=this.map.get(A);if(I&&I!==g)try{I.close()}catch(B){}this.map.set(A,g),_A.residentPeak=Math.max(_A.residentPeak,this.map.size),this.evictDownToCapacity()}evictDownToCapacity(){var A;const g=Math.max(4,Math.floor(this.maxSize*.35)),I=Math.max(4,this.maxSize-g-2);for(;this.map.size>this.maxSize;){const B=this.playbackHint;let Q,E,i,e=-1;for(const a of this.map.keys()){a<B-g&&(Q===void 0||a<Q)&&(Q=a),a>B+I&&(E===void 0||a>E)&&(E=a);const o=Math.abs(a-B);o>=e&&(e=o,i=a)}const t=(A=Q!=null?Q:E)!=null?A:i;if(t===void 0)return;this.closeKey(t)}}closeKey(A){const g=this.map.get(A);this.map.delete(A);try{g==null||g.close(),g&&_A.closedFrames++}catch(I){}}bestAtOrBefore(A){let g=-1;for(const I of this.map.keys())I<=A&&I>g&&(g=I);return g<0?null:this.map.get(g)}frameForDisplay(A){var g;let I=-1,B=Number.POSITIVE_INFINITY,Q=-1;for(const i of this.map.keys())i<=A&&i>I&&(I=i),i>=A&&i<B&&(B=i),i>Q&&(Q=i);const E=I>=0?I:Number.isFinite(B)?B:Q;return E>=0&&(g=this.map.get(E))!=null?g:null}clear(){for(const A of this.map.values())try{A.close()}catch(g){}this.map.clear()}get size(){return this.map.size}}function EC(C,A,g){return new Promise((I,B)=>{const Q=performance.now(),E=()=>{try{if(C()){I();return}if(performance.now()-Q>A){B(new Error(`WebCodecs: timeout waiting for ${g}`));return}setTimeout(E,0)}catch(i){B(i instanceof Error?i:new Error(String(i)))}};setTimeout(E,0)})}let ls=1;class gI{constructor(A,g,I,B,Q,E,i,e,t,a,o,s=null){NA(this,"duration"),NA(this,"videoWidth"),NA(this,"videoHeight"),NA(this,"timesSec"),NA(this,"worker"),NA(this,"workerMsgId"),NA(this,"mainThreadDecoder"),NA(this,"streaming"),NA(this,"ring"),NA(this,"frames"),NA(this,"maxDecodedFrames"),NA(this,"decodeAheadFrames"),NA(this,"lastWrapped",-1),NA(this,"lastEnsureNeedIdx",-1),NA(this,"lastEnsureFreeSlots",-1),NA(this,"destroyed",!1),this.duration=A,this.videoWidth=g,this.videoHeight=I,this.timesSec=B,this.worker=Q,this.workerMsgId=E,this.streaming=i,this.ring=e,this.frames=t,this.maxDecodedFrames=a,this.decodeAheadFrames=o,this.mainThreadDecoder=s}static async create(A,g,I){var B,Q;if(typeof VideoDecoder=="undefined")throw new Error("WebCodecs VideoDecoder not available");const E=(I==null?void 0:I.useWorker)!==!1,i=(B=I==null?void 0:I.maxDecodedFrames)!=null?B:cs,e=(Q=I==null?void 0:I.decodeAheadFrames)!=null?Q:Ds;let t;if(typeof A=="string"?t=await ws(A,g):t=A,E&&typeof Worker!="undefined"){const a=t.slice(0);try{return await gI.createViaWorker(a,i,e)}catch(o){console.warn("[GiftStage:WC] Worker decode failed, falling back to main thread",o)}}return gI.createOnMainThread(t,i,e)}static async createViaWorker(A,g,I){const B=new ns,Q=ls++,E=new KQ(g);let i=0,e=0,t=0,a=new Float64Array(0),o=!1,s=null;const n=w=>{const l=w.data;if(!(!l||l.id!==Q)){if(_A.workerMessages++,l.type==="meta"){i=l.duration,e=l.videoWidth,t=l.videoHeight;const F=l.timesSec;a=new Float64Array(F.buffer,F.byteOffset,F.length),o=!0;return}if(l.type==="frame"){_A.decodedFrames++,_A.postedFrames++,E.set(l.index,l.frame);return}l.type!=="eos"&&l.type==="error"&&(s=new Error(l.message))}},r=w=>{s=new Error(w.message||"Worker error")};B.addEventListener("message",n),B.addEventListener("error",r);const h=A;B.postMessage({type:"init",id:Q,buffer:h,maxDecodedFrames:g,decodeAheadFrames:I},[h]),_A.workerMessages++;try{if(await EC(()=>o||s!=null,6e4,"meta"),s)throw s;const w=i>0?i:1e-6,l=oI(a,w,0);if(await EC(()=>s!=null||E.bestAtOrBefore(l)!=null,6e4,"first frame"),s)throw s}catch(w){throw B.removeEventListener("message",n),B.removeEventListener("error",r),B.terminate(),E.clear(),w instanceof Error?w:new Error(String(w))}const c=a.length>0?a[0]:0,D=a.length>0?a[a.length-1]:0;return console.info(`[GiftStage:WC] worker streaming ready frames=${a.length} duration=${i.toFixed(4)}s size=${e}x${t} times=[${c.toFixed(4)} … ${D.toFixed(4)}] ring=${g}`),new gI(i,e,t,a,B,Q,!0,E,null,g,I)}static async createOnMainThread(A,g,I){console.info("[GiftStage:WC] mp4box demux (main thread)…");const B=await Bs(A);if(B.samples.length===0)throw new Error("mp4box: no samples");const E=B.samples[0].description,i=E?await Is(E):void 0,e=ts(B.samples),t=es(B.samples,B.timescale),a=is(B.durationSec,t),o=B.videoWidth||0,s=B.videoHeight||0,n=new KQ(g);let r=null;console.info("[GiftStage:WC] VideoDecoder incremental decode (main thread)…");const h=oI(t,a,0),c=Math.min(t.length-1,Math.max(0,h+Math.max(0,I))),D=new Es(e,t,B.timescale,B.codec,i,a,{onFrame:(F,d)=>{_A.postedFrames++,n.set(F,d)},onDecoded:()=>{_A.decodedFrames++},onDropped:()=>{_A.closedFrames++},onError:F=>{r=F instanceof Error?F:new Error(String(F))}},c);try{if(await EC(()=>r!=null||n.bestAtOrBefore(h)!=null,6e4,"first frame (main thread)"),r)throw r}catch(F){throw D.destroy(),n.clear(),F instanceof Error?F:new Error(String(F))}const w=t.length>0?t[0]:0,l=t.length>0?t[t.length-1]:0;return console.info(`[GiftStage:WC] main incremental decode ready frames=${t.length} duration=${a.toFixed(4)}s size=${o}x${s} times=[${w.toFixed(4)} … ${l.toFixed(4)}] ring=${g}`),new gI(a,o,s,t,null,0,!0,n,null,g,I,D)}sendRewind(){var A;this.worker?(this.worker.postMessage({type:"rewind",id:this.workerMsgId}),_A.workerMessages++):(A=this.mainThreadDecoder)==null||A.rewind()}sendEnsure(A,g){var I;this.worker?(this.worker.postMessage({type:"ensure",id:this.workerMsgId,needIdx:A,freeSlots:g}),_A.workerMessages++):(I=this.mainThreadDecoder)==null||I.ensure(A,g)}ensureDecodedThrough(A){var g,I,B,Q,E;if(this.destroyed||!this.streaming||!this.worker&&!this.mainThreadDecoder)return;const i=this.duration>0?this.duration:1e-6;if(!Number.isFinite(A)||!Number.isFinite(i))return;const e=(A%i+i)%i;if(this.lastWrapped>=0&&e<this.lastWrapped-.001&&this.lastWrapped>i*.1&&((g=this.ring)==null||g.clear(),this.lastEnsureNeedIdx=-1,this.lastEnsureFreeSlots=-1,this.sendRewind()),this.lastWrapped=e,this.timesSec.length===0)return;const t=oI(this.timesSec,i,e);(I=this.ring)==null||I.setPlaybackHint(t);const a=(B=this.ring)==null?void 0:B.minKey(),o=Math.max(4,this.decodeAheadFrames);this.ring&&a!==void 0&&a>t+o&&(this.ring.clear(),this.lastEnsureNeedIdx=-1,this.lastEnsureFreeSlots=-1,this.sendRewind());const s=Math.min(this.timesSec.length-1,Math.max(0,t+Math.max(0,this.decodeAheadFrames))),n=Math.max(0,this.maxDecodedFrames-((E=(Q=this.ring)==null?void 0:Q.size)!=null?E:0));s===this.lastEnsureNeedIdx&&n===this.lastEnsureFreeSlots||(this.lastEnsureNeedIdx=s,this.lastEnsureFreeSlots=n,this.sendEnsure(s,n))}getFrameForTime(A){var g,I,B;if(this.timesSec.length===0)return null;const Q=this.duration>0?this.duration:1e-6;if(!Number.isFinite(A)||!Number.isFinite(Q))return console.warn("[GiftStage:WC] getFrameForTime bad input",{tSec:A,clip:Q,frames:this.timesSec.length}),this.streaming&&this.ring?this.ring.frameForDisplay(0):(I=(g=this.frames)==null?void 0:g[0])!=null?I:null;const E=(A%Q+Q)%Q,i=oI(this.timesSec,Q,E);if(this.streaming&&this.ring){this.ring.setPlaybackHint(i);const t=this.ring.frameForDisplay(i);return t||console.warn("[GiftStage:WC] getFrameForTime no frame in ring",{idx:i,wrapped:E,clip:Q}),t}const e=(B=this.frames)==null?void 0:B[i];return e||console.warn("[GiftStage:WC] getFrameForTime missing frame at index",{idx:i,wrapped:E,clip:Q}),e!=null?e:null}destroy(){var A,g;if(!this.destroyed){if(this.destroyed=!0,this.worker){try{this.worker.postMessage({type:"destroy",id:this.workerMsgId}),_A.workerMessages++}catch(I){}try{this.worker.terminate()}catch(I){}}if((A=this.mainThreadDecoder)==null||A.destroy(),(g=this.ring)==null||g.clear(),this.frames){for(const I of this.frames)try{I==null||I.close(),I&&_A.closedFrames++}catch(B){}this.frames.length=0}}}}async function ws(C,A){return BI(C,A)}function mQ(C,A,g,I,B){const Q=Math.max(1,Math.floor(A)),E=Math.max(1,Math.floor(g)),i=Math.max(1,C.width*ng(C)),e=Math.max(1,C.height*rg(C));let t;const a=XA(C);if(a==="contain"||a==="cover"){let o,s;if(I==="alphaVideo")o=Q*.5,s=E;else{if(!B)return t=Math.min(1,i/Q,e/E),iC(Q,E,t);({w:o,h:s}=AI(B.info))}if(!(o>0)||!(s>0))return t=Math.min(1,i/Q,e/E),iC(Q,E,t);const n=a==="cover"?Math.max(i/o,e/s):Math.min(i/o,e/s);t=Math.min(1,n)}else t=Math.min(1,i/Q,e/E);return iC(Q,E,t)}function iC(C,A,g){const I=Math.max(1,Math.min(C,Math.ceil(C*g))),B=Math.max(1,Math.min(A,Math.ceil(A*g)));return{w:I,h:B}}var Fs=Object.defineProperty,ys=(C,A,g)=>A in C?Fs(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,ig=(C,A,g)=>ys(C,typeof A!="symbol"?A+"":A,g);const _I=9;function Gs(C,A){if(typeof document=="undefined"||typeof document.createElement!="function")throw new Error("VAP mixed rendering requires DOM canvas support");const g=document.createElement("canvas");return g.width=Math.max(1,Math.round(C)),g.height=Math.max(1,Math.round(A)),g}function pB(C,A,g,I,B,Q){return[C/B,(C+g)/B,(Q-A-I)/Q,(Q-A)/Q]}function JQ(C,A,g){const I=C.createShader(A);if(!I)throw new Error("Failed to create VAP mix shader");if(C.shaderSource(I,g),C.compileShader(I),!C.getShaderParameter(I,C.COMPILE_STATUS)){const B=C.getShaderInfoLog(I)||"unknown shader compile error";throw C.deleteShader(I),new Error(`Failed to compile VAP mix shader: ${B}`)}return I}function ds(C,A,g){const I=JQ(C,C.VERTEX_SHADER,A),B=JQ(C,C.FRAGMENT_SHADER,g),Q=C.createProgram();if(!Q)throw C.deleteShader(I),C.deleteShader(B),new Error("Failed to create VAP mix program");if(C.attachShader(Q,I),C.attachShader(Q,B),C.linkProgram(Q),!C.getProgramParameter(Q,C.LINK_STATUS)){const E=C.getProgramInfoLog(Q)||"unknown program link error";throw C.deleteProgram(Q),C.deleteShader(I),C.deleteShader(B),new Error(`Failed to link VAP mix program: ${E}`)}return C.useProgram(Q),{program:Q,vertexShader:I,fragmentShader:B}}function LQ(C,A,g,I=!1){const B=C.createTexture();if(!B)throw new Error("Failed to create VAP mix texture");return C.activeTexture(C.TEXTURE0+A),C.bindTexture(C.TEXTURE_2D,B),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,C.CLAMP_TO_EDGE),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,C.CLAMP_TO_EDGE),g?(C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,I?1:0),C.texImage2D(C.TEXTURE_2D,0,C.RGBA,C.RGBA,C.UNSIGNED_BYTE,g),C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,0)):C.texImage2D(C.TEXTURE_2D,0,C.RGBA,1,1,0,C.RGBA,C.UNSIGNED_BYTE,null),B}function Rs(C){const[A,g,I,B]=C.rgbFrame,[Q,E,i,e]=C.aFrame,t=pB(A,g,I,B,C.videoW,C.videoH),a=pB(Q,E,i,e,C.videoW,C.videoH);return new Float32Array([-1,1,t[0],t[3],a[0],a[3],1,1,t[1],t[3],a[1],a[3],-1,-1,t[0],t[2],a[0],a[2],1,-1,t[1],t[2],a[1],a[2]])}function us(C,A,g){const I=Math.max(1,A)*_I,B=[],Q=[],E=g?"texture":"texture2D";for(let e=0;e<C;e++)B.push(`uniform sampler2D u_image${e+1};`),Q.push(`if (ndx == ${e+1}) { color = ${E}(u_image${e+1}, uv); }`);const i=g?"fragColor":"gl_FragColor";return`${g?"#version 300 es":""}
|
|
4578
|
+
//# sourceMappingURL=svga-atlas-worker-CkVFsaPa.js.map
|
|
4579
|
+
`,YQ=typeof self!="undefined"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",JE],{type:"text/javascript;charset=utf-8"});function Jo(C){let A;try{if(A=YQ&&(self.URL||self.webkitURL).createObjectURL(YQ),!A)throw"";const g=new Worker(A,{type:"module",name:C==null?void 0:C.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch(g){return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(JE),{type:"module",name:C==null?void 0:C.name})}}class Zg extends Error{constructor(A,g){super(A,g),this.name="SVGAAtlasWorkerBuildError"}}let xI=null,Lo=1;const zI=new Map,bI=new Map;function qI(C){C.signal&&C.onAbort&&C.signal.removeEventListener("abort",C.onAbort)}function YB(C,A,g){xI===C&&(xI=null);try{C.terminate()}catch(I){}for(const[I,B]of zI)B.owner===C&&(zI.delete(I),qI(B),B.releaseGate(),B.reject(g==null||I===g?A:new Zg("SVGA atlas worker restarted after another request was canceled")));for(const[I,B]of bI)if(B.owner===C){bI.delete(I),qI(B),B.releaseGate();for(const Q of B.resolve)Q(null)}}function Ho(){if(!xI){const C=new Jo;xI=C,C.addEventListener("message",A=>{var g,I,B;const Q=A.data;if(!Q)return;if(Q.type==="build-svga-atlas-png-result"){const t=bI.get(Q.id);if(!t||t.owner!==C)return;const a=t.resolve[Q.pageIndex];if(!a)return;a(Q.pngBytes),t.remaining--,t.remaining<=0&&(bI.delete(Q.id),qI(t),t.releaseGate());return}if(Q.type!=="build-svga-atlas-result")return;const E=zI.get(Q.id);if(!E||E.owner!==C){for(const t of(g=Q.pages)!=null?g:[])t.bitmap.close();return}if(zI.delete(Q.id),Q.error){qI(E),E.releaseGate(),E.reject(new Zg(Q.error));return}const i=(I=Q.pages)!=null?I:[];let e;if(E.captureEncodedPng&&i.length>0){const t=[];e=i.map(()=>new Promise(a=>{t.push(a)})),bI.set(Q.id,{owner:C,remaining:i.length,releaseGate:E.releaseGate,signal:E.signal,onAbort:E.onAbort,resolve:t})}else qI(E),E.releaseGate();E.resolve({pages:i.map((t,a)=>({...t,pngBytesPromise:e==null?void 0:e[a]})),rects:(B=Q.rects)!=null?B:[]})}),C.addEventListener("error",A=>{YB(C,new Zg(A.message||"SVGA atlas worker error"))}),C.addEventListener("messageerror",()=>{YB(C,new Zg("SVGA atlas worker message deserialization failed"))})}return xI}function LE(){return typeof Worker!="undefined"&&ZQ()&&typeof createImageBitmap=="function"}async function xo(C,A){if(!LE())return Promise.reject(new Error("SVGA atlas worker unavailable"));const g=await Ct(A.signal);try{b(A.signal,"SVGA atlas worker task aborted");const I=[],B=[];for(const[i,e]of C)I.push(i),B.push(e);let Q;try{Q=Ho()}catch(i){throw g(),new Zg("SVGA atlas worker creation failed",{cause:i})}const E=Lo++;return await new Promise((i,e)=>{var t,a;const o={owner:Q,captureEncodedPng:A.captureEncodedPng,releaseGate:g,signal:A.signal,resolve:i,reject:e};if(o.onAbort=()=>{YB(Q,new Zg("SVGA atlas worker task aborted",{cause:cA("SVGA atlas worker task aborted")}),E)},zI.set(E,o),(t=A.signal)!=null&&t.aborted){o.onAbort();return}(a=A.signal)==null||a.addEventListener("abort",o.onAbort,{once:!0});try{Q.postMessage({type:"build-svga-atlas",id:E,keys:I,bitmaps:B,maxSize:A.maxSize,padding:A.padding,maxPages:A.maxPages,captureEncodedPng:A.captureEncodedPng,workerTimeSliceMs:A.workerTimeSliceMs},B)}catch(s){YB(Q,new Zg("SVGA atlas worker postMessage failed",{cause:s}))}})}catch(I){throw g(),I}}function bo(C,A){if(ZQ())return new OffscreenCanvas(C,A);if(typeof document=="undefined")throw new Error("Atlas compose needs OffscreenCanvas or DOM (document)");const g=document.createElement("canvas");return g.width=C,g.height=A,g}function qo(C){return C.getContext("2d")}async function vo(C){if(typeof OffscreenCanvas!="undefined"&&C instanceof OffscreenCanvas){if(typeof C.convertToBlob=="function")try{return await(await C.convertToBlob({type:"image/png"})).arrayBuffer()}catch(g){return null}return null}const A=C;return new Promise(g=>{try{A.toBlob(I=>{if(!I){g(null);return}I.arrayBuffer().then(g).catch(()=>g(null))},"image/png")}catch(I){g(null)}})}function HE(C,A){const g=C.map(Q=>Q.textureHandle),I=C.map(Q=>Q.encodedPngBytesPromise).filter(Q=>!!Q),B=C[0];return{textureHandle:B.textureHandle,textureHandles:g,pages:C,rects:A,atlasWidth:B.atlasWidth,atlasHeight:B.atlasHeight,encodedPngBytesPromise:B.encodedPngBytesPromise,encodedPngBytesPromises:I.length>0?I:void 0}}async function To(C,A,g,I,B){var Q;const E=gg({maxBudgetMs:B==null?void 0:B.mainThreadFrameBudgetMs}),i=async()=>{b(B==null?void 0:B.signal,"SVGA atlas build aborted"),E.shouldYield()&&await E.yield(),b(B==null?void 0:B.signal,"SVGA atlas build aborted")};b(B==null?void 0:B.signal,"SVGA atlas build aborted");const e=[];for(const[s,n]of C)e.push({key:s,width:n.width,height:n.height}),await i();const t=await Ko(e,I,g,(Q=B==null?void 0:B.maxPages)!=null?Q:4,i);if(t.length===0)throw new Error("No atlas pages built");const a=new Map,o=[];try{for(let s=0;s<t.length;s++){b(B==null?void 0:B.signal,"SVGA atlas build aborted");const n=t[s],r=bo(n.atlasW,n.atlasH),h=qo(r);if(!h)throw new Error("Atlas: 2d context unavailable");h.clearRect(0,0,n.atlasW,n.atlasH);for(let w=0;w<n.rects.length;w++){const l=n.rects[w],F=C.get(l.key);h.drawImage(F,l.x,l.y,l.w,l.h),mo(r,h,l,n.atlasW,n.atlasH,I),w+1<n.rects.length&&E.shouldYield()&&await E.yield(),b(B==null?void 0:B.signal,"SVGA atlas build aborted")}const c=(B==null?void 0:B.captureEncodedPng)===!0?vo(r):void 0;b(B==null?void 0:B.signal,"SVGA atlas build aborted");const D=A.createTexture(r,{width:n.atlasW,height:n.atlasH,filter:"linear",premultiplyAlpha:!0});for(const w of n.rects)a.set(w.key,{x:w.x/n.atlasW,y:w.y/n.atlasH,w:w.w/n.atlasW,h:w.h/n.atlasH,textureIndex:s});o.push({textureHandle:D,atlasWidth:n.atlasW,atlasHeight:n.atlasH,encodedPngBytesPromise:c})}}catch(s){for(const n of o)A.deleteTexture(n.textureHandle);throw s}return HE(o,a)}async function Wo(C,A,g,I,B){var Q;const E=await xo(C,{maxSize:g,padding:I,maxPages:(Q=B==null?void 0:B.maxPages)!=null?Q:4,captureEncodedPng:(B==null?void 0:B.captureEncodedPng)===!0,workerTimeSliceMs:B==null?void 0:B.workerTimeSliceMs,signal:B==null?void 0:B.signal}),i=new Map;for(const a of E.rects)i.set(a.key,{x:a.x,y:a.y,w:a.w,h:a.h,textureIndex:a.textureIndex});const e=[],t=gg({maxBudgetMs:B==null?void 0:B.mainThreadFrameBudgetMs});try{for(let a=0;a<E.pages.length;a++){b(B==null?void 0:B.signal,"SVGA atlas upload aborted");const o=E.pages[a],s=A.createTexture(o.bitmap,{width:o.width,height:o.height,filter:"linear",premultiplyAlpha:!0,sourcePremultiplied:!0});try{o.bitmap.close()}catch(n){}e.push({textureHandle:s,atlasWidth:o.width,atlasHeight:o.height,encodedPngBytesPromise:(B==null?void 0:B.captureEncodedPng)===!0?o.pngBytesPromise:void 0}),a+1<E.pages.length&&t.shouldYield()&&await t.yield(),b(B==null?void 0:B.signal,"SVGA atlas upload aborted")}}catch(a){for(const o of E.pages)try{o.bitmap.close()}catch(s){}for(const o of e)A.deleteTexture(o.textureHandle);throw a}return HE(e,i)}async function xE(C,A,g=4096,I=2,B){var Q;if(C.size===0)throw new Error("No images to build atlas from");const E=Math.max(64,Math.min(g,(Q=A.maxTextureSize)!=null?Q:g));return(B==null?void 0:B.useWorker)!==!1&&LE()?Wo(C,A,E,I,B):To(C,A,E,I,B)}function Vo(C){return C}function Zo(C){return C*C}function Xo(C){return C*(2-C)}function Oo(C){return C<.5?2*C*C:-1+(4-2*C)*C}function bE(C){const A=C-1;return A*A*A+1}function Po(C){return C<.5?4*C*C*C:(C-1)*(2*C-2)*(2*C-2)+1}function jo(C){return 1+2.70158*Math.pow(C-1,3)+1.70158*Math.pow(C-1,2)}let nB=null;function qE(){return nB||(nB=Promise.resolve().then(()=>require("./mp4box.all-DH-U-29f.cjs")).catch(C=>{throw nB=null,C})),nB}var zo=Object.defineProperty,_o=(C,A,g)=>A in C?zo(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,Eg=(C,A,g)=>_o(C,typeof A!="symbol"?A+"":A,g);const $o=800;function As(C){return C.startsWith("avc1")||C.startsWith("avc3")}function gs(C){const A=new Uint8Array(C);if(A.byteLength<8)return C;const g=A[4],I=A[5],B=A[6],Q=A[7];return g===97&&I===118&&B===99&&Q===67?C.slice(8):C}async function Is(C){const A=C.avcC;if(!A)return;const{DataStream:g}=await qE(),I=new g;A.write(I);const B=I.byteLength;if(B<=0)return;const Q=I.buffer.slice(0,B);return gs(Q)}async function Bs(C){const{createFile:A}=await qE();return new Promise((g,I)=>{const B=A(),Q=C.slice(0);Q.fileStart=0,B.onError=E=>{I(new Error(`mp4box: ${E}`))},B.onReady=E=>{var i,e,t,a,o,s,n;const r=(i=E.videoTracks)==null?void 0:i[0];if(!r){I(new Error("mp4box: no video track"));return}if(!As(r.codec)){I(new Error(`mp4box: unsupported video codec ${r.codec}`));return}if(r.nb_samples>$o){I(new Error(`mp4box: too many samples (${r.nb_samples})`));return}const h=[];B.onSamples=(D,w,l)=>{h.push(...l)},B.setExtractionOptions(r.id,null,{nbSamples:Math.max(r.nb_samples,1)}),B.start();const c=r.timescale>0?r.duration/r.timescale:E.duration/(E.timescale||1);if(h.length===0){I(new Error("mp4box: extraction produced no samples"));return}g({codec:r.codec,timescale:r.timescale,durationSec:Number.isFinite(c)?c:0,videoWidth:(a=(t=(e=r.video)==null?void 0:e.width)!=null?t:r.track_width)!=null?a:0,videoHeight:(n=(s=(o=r.video)==null?void 0:o.height)!=null?s:r.track_height)!=null?n:0,samples:h})},B.appendBuffer(Q),B.flush()})}const pQ=25e3;async function Cs(C,A,g){const I=performance.now();let B=0;for(;C.decodeQueueSize>0;)if(await new Promise(Q=>queueMicrotask(Q)),B++,B%120===0&&await new Promise(Q=>setTimeout(Q,0)),performance.now()-I>g){console.warn("[GiftStage:WC] decodeQueue drain gave up",{label:A,decodeQueueSize:C.decodeQueueSize,spins:B});break}}async function Qs(C,A){console.info("[GiftStage:WC] VideoDecoder.flush…",A);try{await Promise.race([C.flush(),new Promise((g,I)=>{setTimeout(()=>I(new Error(`VideoDecoder.flush() timed out after ${pQ}ms (${JSON.stringify(A)})`)),pQ)})])}catch(g){try{C.close()}catch(I){}throw g}}class Es{constructor(A,g,I,B,Q,E,i,e){this.decodeOrder=A,this.presTimes=g,this.timescale=I,this.codec=B,this.description=Q,this.duration=E,this.callbacks=i,Eg(this,"decoder",null),Eg(this,"nextChunk",0),Eg(this,"chunksFed",0),Eg(this,"targetNeedIdx"),Eg(this,"lastPostedMax",-1),Eg(this,"minPosted",Number.POSITIVE_INFINITY),Eg(this,"playbackNeedFloor"),Eg(this,"freeSlots",0),Eg(this,"eosClosed",!1),Eg(this,"pumpScheduled",!1),Eg(this,"pumping",!1),Eg(this,"destroyed",!1),Eg(this,"onDecoderDequeue",()=>this.schedulePump()),this.targetNeedIdx=e,this.playbackNeedFloor=oI(g,E,0),this.freeSlots=Math.max(1,e-this.playbackNeedFloor+1),this.schedulePump()}ensure(A,g){this.destroyed||(this.targetNeedIdx=Math.max(this.targetNeedIdx,A),this.freeSlots=Math.max(0,g),this.schedulePump())}rewind(){this.destroyed||this.doRewind()}destroy(){var A,g;if(this.destroyed=!0,this.decoder&&this.decoder.state!=="closed"){(g=(A=this.decoder).removeEventListener)==null||g.call(A,"dequeue",this.onDecoderDequeue);try{this.decoder.close()}catch(I){}}this.decoder=null}schedulePump(){this.pumpScheduled||this.destroyed||(this.pumpScheduled=!0,queueMicrotask(()=>{this.pumpScheduled=!1,this.runPump()}))}async doRewind(){var A,g;if(this.decoder&&this.decoder.state!=="closed"){(g=(A=this.decoder).removeEventListener)==null||g.call(A,"dequeue",this.onDecoderDequeue);try{this.decoder.close()}catch(B){}}this.decoder=null,this.nextChunk=os(this.decodeOrder),this.chunksFed=0,this.lastPostedMax=-1,this.minPosted=Number.POSITIVE_INFINITY,this.eosClosed=!1;const I=oI(this.presTimes,this.duration,0);this.playbackNeedFloor=I,this.targetNeedIdx=Math.max(this.targetNeedIdx,Math.min(this.presTimes.length-1,Math.max(0,I))),this.freeSlots=1,this.schedulePump()}async openDecoder(){var A;if(this.decoder&&this.decoder.state!=="closed")return;const g=await ss(this.codec,this.description),I=new VideoDecoder({output:B=>{var Q,E,i,e;if((E=(Q=this.callbacks).onDecoded)==null||E.call(Q),this.destroyed){try{B.close()}catch(o){}return}const t=as(this.presTimes,B.timestamp),a=Number.isFinite(this.minPosted)&&this.minPosted<=this.playbackNeedFloor;if(this.freeSlots<=0&&a){try{B.close()}catch(o){}(e=(i=this.callbacks).onDropped)==null||e.call(i),this.schedulePump();return}this.lastPostedMax=Math.max(this.lastPostedMax,t),this.minPosted=Math.min(this.minPosted,t),this.freeSlots>0&&this.freeSlots--,this.callbacks.onFrame(t,B),this.schedulePump()},error:B=>{this.callbacks.onError?this.callbacks.onError(B):console.error("[GiftStage:WC] IncrementalH264Decoder VideoDecoder error",B)}});I.configure(g),(A=I.addEventListener)==null||A.call(I,"dequeue",this.onDecoderDequeue),this.decoder=I}feedOneChunk(){var A,g;const I=this.decoder,B=this.nextChunk;if(B>=this.decodeOrder.length)return;const Q=this.decodeOrder[B];this.nextChunk=B+1;const E=Q.data;if(!E||E.byteLength===0)return;const i=(g=(A=Q.cts)!=null?A:Q.dts)!=null?g:0,e=Math.round(i/this.timescale*1e6),t=Q.duration&&this.timescale>0?Math.round(Q.duration/this.timescale*1e6):void 0,a=new Uint8Array(E.byteLength);a.set(E);const o=new EncodedVideoChunk({type:Q.is_sync?"key":"delta",timestamp:e,duration:t,data:a});I.decode(o),this.chunksFed++}async finalizeEos(){var A,g,I;if(!this.decoder||this.eosClosed)return;const B=this.decoder;await Cs(B,"before flush",1e4);const Q=B.decodeQueueSize;await Qs(B,{chunksDecoded:this.chunksFed,outputsBeforeFlush:this.lastPostedMax+1,queueBeforeFlush:Q});try{(A=B.removeEventListener)==null||A.call(B,"dequeue",this.onDecoderDequeue),B.close()}catch(E){}this.decoder=null,this.eosClosed=!0,(I=(g=this.callbacks).onEos)==null||I.call(g)}async runPump(){if(!(this.destroyed||this.pumping)){this.pumping=!0;try{for(;!this.destroyed;){if(this.eosClosed)return;const A=this.nextChunk<this.decodeOrder.length,g=Number.isFinite(this.minPosted)&&this.minPosted<=this.playbackNeedFloor;if(!A&&!this.eosClosed){await this.finalizeEos();continue}if(this.lastPostedMax>=this.targetNeedIdx&&g||this.freeSlots<=0&&g)return;await this.openDecoder();const I=this.freeSlots>0?this.freeSlots:1,B=Math.max(1,Math.min(2,I));if(this.decoder.decodeQueueSize>=B)return;this.feedOneChunk(),this.chunksFed%2===0&&await new Promise(Q=>setTimeout(Q,0))}}finally{this.pumping=!1}}}}function oI(C,A,g){if(C.length===0)return 0;const I=C.length;if(g<=C[0])return 0;const B=C[I-1];if(g>=A||g>=B)return I-1;let Q=0,E=I-1;for(;Q+1<E;){const i=Q+E>>>1;C[i]<=g?Q=i:E=i}return Q}function is(C,A){if(A.length===0)return 1e-6;const g=A.length,I=g-1,B=A[I],Q=g>=2?A[I]-A[I-1]:1/30,E=B+Q;let i=C>0?C:E;if(!(i>0)&&g>=2){const e=(A[g-1]-A[0])/(g-1);i=A[g-1]+(e>0?e:1/30)}return i>0||(i=Math.max(E,1/30)),i}function es(C,A){var g,I;if(C.length===0)return new Float64Array(0);const B=C.map((E,i)=>i);B.sort((E,i)=>{var e,t,a,o;const s=C[E],n=C[i],r=(t=(e=s.cts)!=null?e:s.dts)!=null?t:0,h=(o=(a=n.cts)!=null?a:n.dts)!=null?o:0;return r!==h?r-h:E-i});const Q=new Float64Array(B.length);for(let E=0;E<B.length;E++){const i=C[B[E]];Q[E]=((I=(g=i.cts)!=null?g:i.dts)!=null?I:0)/A}return Q}function ts(C){return[...C].sort((A,g)=>{var I,B,Q,E;const i=((B=(I=A.dts)!=null?I:A.cts)!=null?B:0)-((E=(Q=g.dts)!=null?Q:g.cts)!=null?E:0);return i!==0?i:0})}function as(C,A){if(C.length===0)return 0;const g=A/1e6;let I=0,B=1/0;for(let Q=0;Q<C.length;Q++){const E=Math.abs(C[Q]-g);E<B&&(B=E,I=Q)}return I}function os(C){for(let A=0;A<C.length;A++)if(C[A].is_sync)return A;return 0}async function ss(C,A){var g;const I={codec:C,hardwareAcceleration:"prefer-software",...A&&A.byteLength>0?{description:A}:{}};let B=await VideoDecoder.isConfigSupported(I),Q=I;if(!B.supported){const E={codec:C,...A&&A.byteLength>0?{description:A}:{}};if(B=await VideoDecoder.isConfigSupported(E),!B.supported)throw new Error(`WebCodecs: unsupported config ${C}`);Q=E}return(g=B.config)!=null?g:Q}function ns(C){return new Worker(""+(typeof document=="undefined"?require("url").pathToFileURL(__dirname+"/assets/webcodecs-mp4.worker-DeS4ARzq.js").href:new URL("assets/webcodecs-mp4.worker-DeS4ARzq.js",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{type:"module",name:C==null?void 0:C.name})}var rs=Object.defineProperty,hs=(C,A,g)=>A in C?rs(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,NA=(C,A,g)=>hs(C,typeof A!="symbol"?A+"":A,g);const cs=28,Ds=8,_A={decodedFrames:0,postedFrames:0,closedFrames:0,residentPeak:0,workerMessages:0};class KQ{constructor(A){NA(this,"maxSize"),NA(this,"map",new Map),NA(this,"playbackHint",0),this.maxSize=Math.max(4,A)}setPlaybackHint(A){Number.isFinite(A)&&A>=0&&(this.playbackHint=A,this.evictConsumedFrames())}evictConsumedFrames(){const A=Math.max(4,Math.floor(this.maxSize*.35)),g=this.playbackHint-A;if(!(g<=0))for(const I of this.map.keys())I<g&&this.closeKey(I)}minKey(){let A;for(const g of this.map.keys())(A===void 0||g<A)&&(A=g);return A}set(A,g){const I=this.map.get(A);if(I&&I!==g)try{I.close()}catch(B){}this.map.set(A,g),_A.residentPeak=Math.max(_A.residentPeak,this.map.size),this.evictDownToCapacity()}evictDownToCapacity(){var A;const g=Math.max(4,Math.floor(this.maxSize*.35)),I=Math.max(4,this.maxSize-g-2);for(;this.map.size>this.maxSize;){const B=this.playbackHint;let Q,E,i,e=-1;for(const a of this.map.keys()){a<B-g&&(Q===void 0||a<Q)&&(Q=a),a>B+I&&(E===void 0||a>E)&&(E=a);const o=Math.abs(a-B);o>=e&&(e=o,i=a)}const t=(A=Q!=null?Q:E)!=null?A:i;if(t===void 0)return;this.closeKey(t)}}closeKey(A){const g=this.map.get(A);this.map.delete(A);try{g==null||g.close(),g&&_A.closedFrames++}catch(I){}}bestAtOrBefore(A){let g=-1;for(const I of this.map.keys())I<=A&&I>g&&(g=I);return g<0?null:this.map.get(g)}frameForDisplay(A){var g;let I=-1,B=Number.POSITIVE_INFINITY,Q=-1;for(const i of this.map.keys())i<=A&&i>I&&(I=i),i>=A&&i<B&&(B=i),i>Q&&(Q=i);const E=I>=0?I:Number.isFinite(B)?B:Q;return E>=0&&(g=this.map.get(E))!=null?g:null}clear(){for(const A of this.map.values())try{A.close()}catch(g){}this.map.clear()}get size(){return this.map.size}}function EC(C,A,g){return new Promise((I,B)=>{const Q=performance.now(),E=()=>{try{if(C()){I();return}if(performance.now()-Q>A){B(new Error(`WebCodecs: timeout waiting for ${g}`));return}setTimeout(E,0)}catch(i){B(i instanceof Error?i:new Error(String(i)))}};setTimeout(E,0)})}let ls=1;class gI{constructor(A,g,I,B,Q,E,i,e,t,a,o,s=null){NA(this,"duration"),NA(this,"videoWidth"),NA(this,"videoHeight"),NA(this,"timesSec"),NA(this,"worker"),NA(this,"workerMsgId"),NA(this,"mainThreadDecoder"),NA(this,"streaming"),NA(this,"ring"),NA(this,"frames"),NA(this,"maxDecodedFrames"),NA(this,"decodeAheadFrames"),NA(this,"lastWrapped",-1),NA(this,"lastEnsureNeedIdx",-1),NA(this,"lastEnsureFreeSlots",-1),NA(this,"destroyed",!1),this.duration=A,this.videoWidth=g,this.videoHeight=I,this.timesSec=B,this.worker=Q,this.workerMsgId=E,this.streaming=i,this.ring=e,this.frames=t,this.maxDecodedFrames=a,this.decodeAheadFrames=o,this.mainThreadDecoder=s}static async create(A,g,I){var B,Q;if(typeof VideoDecoder=="undefined")throw new Error("WebCodecs VideoDecoder not available");const E=(I==null?void 0:I.useWorker)!==!1,i=(B=I==null?void 0:I.maxDecodedFrames)!=null?B:cs,e=(Q=I==null?void 0:I.decodeAheadFrames)!=null?Q:Ds;let t;if(typeof A=="string"?t=await ws(A,g):t=A,E&&typeof Worker!="undefined"){const a=t.slice(0);try{return await gI.createViaWorker(a,i,e)}catch(o){console.warn("[GiftStage:WC] Worker decode failed, falling back to main thread",o)}}return gI.createOnMainThread(t,i,e)}static async createViaWorker(A,g,I){const B=new ns,Q=ls++,E=new KQ(g);let i=0,e=0,t=0,a=new Float64Array(0),o=!1,s=null;const n=w=>{const l=w.data;if(!(!l||l.id!==Q)){if(_A.workerMessages++,l.type==="meta"){i=l.duration,e=l.videoWidth,t=l.videoHeight;const F=l.timesSec;a=new Float64Array(F.buffer,F.byteOffset,F.length),o=!0;return}if(l.type==="frame"){_A.decodedFrames++,_A.postedFrames++,E.set(l.index,l.frame);return}l.type!=="eos"&&l.type==="error"&&(s=new Error(l.message))}},r=w=>{s=new Error(w.message||"Worker error")};B.addEventListener("message",n),B.addEventListener("error",r);const h=A;B.postMessage({type:"init",id:Q,buffer:h,maxDecodedFrames:g,decodeAheadFrames:I},[h]),_A.workerMessages++;try{if(await EC(()=>o||s!=null,6e4,"meta"),s)throw s;const w=i>0?i:1e-6,l=oI(a,w,0);if(await EC(()=>s!=null||E.bestAtOrBefore(l)!=null,6e4,"first frame"),s)throw s}catch(w){throw B.removeEventListener("message",n),B.removeEventListener("error",r),B.terminate(),E.clear(),w instanceof Error?w:new Error(String(w))}const c=a.length>0?a[0]:0,D=a.length>0?a[a.length-1]:0;return console.info(`[GiftStage:WC] worker streaming ready frames=${a.length} duration=${i.toFixed(4)}s size=${e}x${t} times=[${c.toFixed(4)} … ${D.toFixed(4)}] ring=${g}`),new gI(i,e,t,a,B,Q,!0,E,null,g,I)}static async createOnMainThread(A,g,I){console.info("[GiftStage:WC] mp4box demux (main thread)…");const B=await Bs(A);if(B.samples.length===0)throw new Error("mp4box: no samples");const E=B.samples[0].description,i=E?await Is(E):void 0,e=ts(B.samples),t=es(B.samples,B.timescale),a=is(B.durationSec,t),o=B.videoWidth||0,s=B.videoHeight||0,n=new KQ(g);let r=null;console.info("[GiftStage:WC] VideoDecoder incremental decode (main thread)…");const h=oI(t,a,0),c=Math.min(t.length-1,Math.max(0,h+Math.max(0,I))),D=new Es(e,t,B.timescale,B.codec,i,a,{onFrame:(F,d)=>{_A.postedFrames++,n.set(F,d)},onDecoded:()=>{_A.decodedFrames++},onDropped:()=>{_A.closedFrames++},onError:F=>{r=F instanceof Error?F:new Error(String(F))}},c);try{if(await EC(()=>r!=null||n.bestAtOrBefore(h)!=null,6e4,"first frame (main thread)"),r)throw r}catch(F){throw D.destroy(),n.clear(),F instanceof Error?F:new Error(String(F))}const w=t.length>0?t[0]:0,l=t.length>0?t[t.length-1]:0;return console.info(`[GiftStage:WC] main incremental decode ready frames=${t.length} duration=${a.toFixed(4)}s size=${o}x${s} times=[${w.toFixed(4)} … ${l.toFixed(4)}] ring=${g}`),new gI(a,o,s,t,null,0,!0,n,null,g,I,D)}sendRewind(){var A;this.worker?(this.worker.postMessage({type:"rewind",id:this.workerMsgId}),_A.workerMessages++):(A=this.mainThreadDecoder)==null||A.rewind()}sendEnsure(A,g){var I;this.worker?(this.worker.postMessage({type:"ensure",id:this.workerMsgId,needIdx:A,freeSlots:g}),_A.workerMessages++):(I=this.mainThreadDecoder)==null||I.ensure(A,g)}ensureDecodedThrough(A){var g,I,B,Q,E;if(this.destroyed||!this.streaming||!this.worker&&!this.mainThreadDecoder)return;const i=this.duration>0?this.duration:1e-6;if(!Number.isFinite(A)||!Number.isFinite(i))return;const e=(A%i+i)%i;if(this.lastWrapped>=0&&e<this.lastWrapped-.001&&this.lastWrapped>i*.1&&((g=this.ring)==null||g.clear(),this.lastEnsureNeedIdx=-1,this.lastEnsureFreeSlots=-1,this.sendRewind()),this.lastWrapped=e,this.timesSec.length===0)return;const t=oI(this.timesSec,i,e);(I=this.ring)==null||I.setPlaybackHint(t);const a=(B=this.ring)==null?void 0:B.minKey(),o=Math.max(4,this.decodeAheadFrames);this.ring&&a!==void 0&&a>t+o&&(this.ring.clear(),this.lastEnsureNeedIdx=-1,this.lastEnsureFreeSlots=-1,this.sendRewind());const s=Math.min(this.timesSec.length-1,Math.max(0,t+Math.max(0,this.decodeAheadFrames))),n=Math.max(0,this.maxDecodedFrames-((E=(Q=this.ring)==null?void 0:Q.size)!=null?E:0));s===this.lastEnsureNeedIdx&&n===this.lastEnsureFreeSlots||(this.lastEnsureNeedIdx=s,this.lastEnsureFreeSlots=n,this.sendEnsure(s,n))}getFrameForTime(A){var g,I,B;if(this.timesSec.length===0)return null;const Q=this.duration>0?this.duration:1e-6;if(!Number.isFinite(A)||!Number.isFinite(Q))return console.warn("[GiftStage:WC] getFrameForTime bad input",{tSec:A,clip:Q,frames:this.timesSec.length}),this.streaming&&this.ring?this.ring.frameForDisplay(0):(I=(g=this.frames)==null?void 0:g[0])!=null?I:null;const E=(A%Q+Q)%Q,i=oI(this.timesSec,Q,E);if(this.streaming&&this.ring){this.ring.setPlaybackHint(i);const t=this.ring.frameForDisplay(i);return t||console.warn("[GiftStage:WC] getFrameForTime no frame in ring",{idx:i,wrapped:E,clip:Q}),t}const e=(B=this.frames)==null?void 0:B[i];return e||console.warn("[GiftStage:WC] getFrameForTime missing frame at index",{idx:i,wrapped:E,clip:Q}),e!=null?e:null}destroy(){var A,g;if(!this.destroyed){if(this.destroyed=!0,this.worker){try{this.worker.postMessage({type:"destroy",id:this.workerMsgId}),_A.workerMessages++}catch(I){}try{this.worker.terminate()}catch(I){}}if((A=this.mainThreadDecoder)==null||A.destroy(),(g=this.ring)==null||g.clear(),this.frames){for(const I of this.frames)try{I==null||I.close(),I&&_A.closedFrames++}catch(B){}this.frames.length=0}}}}async function ws(C,A){return BI(C,A)}function mQ(C,A,g,I,B){const Q=Math.max(1,Math.floor(A)),E=Math.max(1,Math.floor(g)),i=Math.max(1,C.width*ng(C)),e=Math.max(1,C.height*rg(C));let t;const a=XA(C);if(a==="contain"||a==="cover"){let o,s;if(I==="alphaVideo")o=Q*.5,s=E;else{if(!B)return t=Math.min(1,i/Q,e/E),iC(Q,E,t);({w:o,h:s}=AI(B.info))}if(!(o>0)||!(s>0))return t=Math.min(1,i/Q,e/E),iC(Q,E,t);const n=a==="cover"?Math.max(i/o,e/s):Math.min(i/o,e/s);t=Math.min(1,n)}else t=Math.min(1,i/Q,e/E);return iC(Q,E,t)}function iC(C,A,g){const I=Math.max(1,Math.min(C,Math.ceil(C*g))),B=Math.max(1,Math.min(A,Math.ceil(A*g)));return{w:I,h:B}}var Fs=Object.defineProperty,ys=(C,A,g)=>A in C?Fs(C,A,{enumerable:!0,configurable:!0,writable:!0,value:g}):C[A]=g,ig=(C,A,g)=>ys(C,typeof A!="symbol"?A+"":A,g);const _I=9;function Gs(C,A){if(typeof document=="undefined"||typeof document.createElement!="function")throw new Error("VAP mixed rendering requires DOM canvas support");const g=document.createElement("canvas");return g.width=Math.max(1,Math.round(C)),g.height=Math.max(1,Math.round(A)),g}function pB(C,A,g,I,B,Q){return[C/B,(C+g)/B,(Q-A-I)/Q,(Q-A)/Q]}function JQ(C,A,g){const I=C.createShader(A);if(!I)throw new Error("Failed to create VAP mix shader");if(C.shaderSource(I,g),C.compileShader(I),!C.getShaderParameter(I,C.COMPILE_STATUS)){const B=C.getShaderInfoLog(I)||"unknown shader compile error";throw C.deleteShader(I),new Error(`Failed to compile VAP mix shader: ${B}`)}return I}function ds(C,A,g){const I=JQ(C,C.VERTEX_SHADER,A),B=JQ(C,C.FRAGMENT_SHADER,g),Q=C.createProgram();if(!Q)throw C.deleteShader(I),C.deleteShader(B),new Error("Failed to create VAP mix program");if(C.attachShader(Q,I),C.attachShader(Q,B),C.linkProgram(Q),!C.getProgramParameter(Q,C.LINK_STATUS)){const E=C.getProgramInfoLog(Q)||"unknown program link error";throw C.deleteProgram(Q),C.deleteShader(I),C.deleteShader(B),new Error(`Failed to link VAP mix program: ${E}`)}return C.useProgram(Q),{program:Q,vertexShader:I,fragmentShader:B}}function LQ(C,A,g,I=!1){const B=C.createTexture();if(!B)throw new Error("Failed to create VAP mix texture");return C.activeTexture(C.TEXTURE0+A),C.bindTexture(C.TEXTURE_2D,B),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,C.LINEAR),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,C.CLAMP_TO_EDGE),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,C.CLAMP_TO_EDGE),g?(C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,I?1:0),C.texImage2D(C.TEXTURE_2D,0,C.RGBA,C.RGBA,C.UNSIGNED_BYTE,g),C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,0)):C.texImage2D(C.TEXTURE_2D,0,C.RGBA,1,1,0,C.RGBA,C.UNSIGNED_BYTE,null),B}function Rs(C){const[A,g,I,B]=C.rgbFrame,[Q,E,i,e]=C.aFrame,t=pB(A,g,I,B,C.videoW,C.videoH),a=pB(Q,E,i,e,C.videoW,C.videoH);return new Float32Array([-1,1,t[0],t[3],a[0],a[3],1,1,t[1],t[3],a[1],a[3],-1,-1,t[0],t[2],a[0],a[2],1,-1,t[1],t[2],a[1],a[2]])}function us(C,A,g){const I=Math.max(1,A)*_I,B=[],Q=[],E=g?"texture":"texture2D";for(let e=0;e<C;e++)B.push(`uniform sampler2D u_image${e+1};`),Q.push(`if (ndx == ${e+1}) { color = ${E}(u_image${e+1}, uv); }`);const i=g?"fragColor":"gl_FragColor";return`${g?"#version 300 es":""}
|
|
4580
4580
|
precision lowp float;
|
|
4581
4581
|
${g?"in":"varying"} vec2 v_texcoord;
|
|
4582
4582
|
${g?"in":"varying"} vec2 v_alpha_texCoord;
|